catch up with branch development

Signed-off-by: Ralf Mollik <ramollik@compex-commerce.com>
diff --git a/mavenizing_started b/mavenizing_started
deleted file mode 100644
index e69de29..0000000
--- a/mavenizing_started
+++ /dev/null
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 e88bfc1..a588fc2 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
@@ -44,6 +44,7 @@
 			nameMappings = new HashMap<AbstractElement, String>() {
 				private static final long serialVersionUID = 1L;
 				{
+					put(grammarAccess.getDataTransferAccess().getAlternatives(), "rule__DataTransfer__Alternatives");
 					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");
@@ -87,17 +88,17 @@
 					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.getSignalTypeEnumAccess().getAlternatives(), "rule__SignalTypeEnum__Alternatives");
-					put(grammarAccess.getSignalNotificationEnumAccess().getAlternatives(), "rule__SignalNotificationEnum__Alternatives");
 					put(grammarAccess.getSignalHandlerTypeEnumAccess().getAlternatives(), "rule__SignalHandlerTypeEnum__Alternatives");
+					put(grammarAccess.getSignalExecutionTypeEnumAccess().getAlternatives(), "rule__SignalExecutionTypeEnum__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.getSignalHandlerAccess().getGroup(), "rule__SignalHandler__Group__0");
-					put(grammarAccess.getSignalHandlerAccess().getGroup_3(), "rule__SignalHandler__Group_3__0");
-					put(grammarAccess.getSignalNotificationAccess().getGroup(), "rule__SignalNotification__Group__0");
-					put(grammarAccess.getSignalHandlingAccess().getGroup(), "rule__SignalHandling__Group__0");
+					put(grammarAccess.getListTransferAccess().getGroup(), "rule__ListTransfer__Group__0");
+					put(grammarAccess.getSignalDatainterchangeAccess().getGroup(), "rule__SignalDatainterchange__Group__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");
@@ -302,18 +303,19 @@
 					put(grammarAccess.getSignalModelAccess().getPackagesAssignment_1(), "rule__SignalModel__PackagesAssignment_1");
 					put(grammarAccess.getSignalPackageAccess().getNameAssignment_2(), "rule__SignalPackage__NameAssignment_2");
 					put(grammarAccess.getSignalPackageAccess().getWatchersAssignment_3_1(), "rule__SignalPackage__WatchersAssignment_3_1");
-					put(grammarAccess.getSignalPackageAccess().getHandlersAssignment_3_2(), "rule__SignalPackage__HandlersAssignment_3_2");
 					put(grammarAccess.getSignalWatcherAccess().getNameAssignment_2(), "rule__SignalWatcher__NameAssignment_2");
 					put(grammarAccess.getSignalWatcherAccess().getDirectoryAssignment_4(), "rule__SignalWatcher__DirectoryAssignment_4");
 					put(grammarAccess.getSignalWatcherAccess().getSignalAssignment_6(), "rule__SignalWatcher__SignalAssignment_6");
-					put(grammarAccess.getSignalHandlerAccess().getWatcherAssignment_2(), "rule__SignalHandler__WatcherAssignment_2");
-					put(grammarAccess.getSignalHandlerAccess().getHandlerAssignment_3_0(), "rule__SignalHandler__HandlerAssignment_3_0");
-					put(grammarAccess.getSignalHandlerAccess().getNotificationAssignment_3_1(), "rule__SignalHandler__NotificationAssignment_3_1");
-					put(grammarAccess.getSignalNotificationAccess().getEventAssignment_0(), "rule__SignalNotification__EventAssignment_0");
-					put(grammarAccess.getSignalNotificationAccess().getMessageAssignment_1(), "rule__SignalNotification__MessageAssignment_1");
-					put(grammarAccess.getSignalDatainterchangeAccess().getDataRefAssignment(), "rule__SignalDatainterchange__DataRefAssignment");
-					put(grammarAccess.getSignalHandlingAccess().getActionTypeAssignment_0(), "rule__SignalHandling__ActionTypeAssignment_0");
-					put(grammarAccess.getSignalHandlingAccess().getDataRefAssignment_1(), "rule__SignalHandling__DataRefAssignment_1");
+					put(grammarAccess.getSignalWatcherAccess().getHandlersAssignment_8(), "rule__SignalWatcher__HandlersAssignment_8");
+					put(grammarAccess.getSignalHandlerAccess().getNameAssignment_2(), "rule__SignalHandler__NameAssignment_2");
+					put(grammarAccess.getSignalHandlerAccess().getActionTypeAssignment_3(), "rule__SignalHandler__ActionTypeAssignment_3");
+					put(grammarAccess.getSignalHandlerAccess().getDataAssignment_4(), "rule__SignalHandler__DataAssignment_4");
+					put(grammarAccess.getSignalHandlerAccess().getFilemaskAssignment_7(), "rule__SignalHandler__FilemaskAssignment_7");
+					put(grammarAccess.getListTransferAccess().getExecutiontypeAssignment_2(), "rule__ListTransfer__ExecutiontypeAssignment_2");
+					put(grammarAccess.getListTransferAccess().getInterchangesAssignment_4(), "rule__ListTransfer__InterchangesAssignment_4");
+					put(grammarAccess.getSingleTransferAccess().getInterchangeAssignment(), "rule__SingleTransfer__InterchangeAssignment");
+					put(grammarAccess.getSignalDatainterchangeAccess().getDataActionAssignment_0(), "rule__SignalDatainterchange__DataActionAssignment_0");
+					put(grammarAccess.getSignalDatainterchangeAccess().getDataRefAssignment_1(), "rule__SignalDatainterchange__DataRefAssignment_1");
 					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 f14204e..5c3ddd1 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
@@ -163,25 +163,75 @@
 	restoreStackSize(stackSize);
 }
 
-// Entry rule entryRuleSignalNotification
-entryRuleSignalNotification
+// Entry rule entryRuleDataTransfer
+entryRuleDataTransfer
 :
-{ before(grammarAccess.getSignalNotificationRule()); }
-	 ruleSignalNotification
-{ after(grammarAccess.getSignalNotificationRule()); } 
+{ before(grammarAccess.getDataTransferRule()); }
+	 ruleDataTransfer
+{ after(grammarAccess.getDataTransferRule()); } 
 	 EOF 
 ;
 
-// Rule SignalNotification
-ruleSignalNotification 
+// Rule DataTransfer
+ruleDataTransfer 
 	@init {
 		int stackSize = keepStackSize();
 	}
 	:
 	(
-		{ before(grammarAccess.getSignalNotificationAccess().getGroup()); }
-		(rule__SignalNotification__Group__0)
-		{ after(grammarAccess.getSignalNotificationAccess().getGroup()); }
+		{ before(grammarAccess.getDataTransferAccess().getAlternatives()); }
+		(rule__DataTransfer__Alternatives)
+		{ after(grammarAccess.getDataTransferAccess().getAlternatives()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleListTransfer
+entryRuleListTransfer
+:
+{ before(grammarAccess.getListTransferRule()); }
+	 ruleListTransfer
+{ after(grammarAccess.getListTransferRule()); } 
+	 EOF 
+;
+
+// Rule ListTransfer
+ruleListTransfer 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getListTransferAccess().getGroup()); }
+		(rule__ListTransfer__Group__0)
+		{ after(grammarAccess.getListTransferAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleSingleTransfer
+entryRuleSingleTransfer
+:
+{ before(grammarAccess.getSingleTransferRule()); }
+	 ruleSingleTransfer
+{ after(grammarAccess.getSingleTransferRule()); } 
+	 EOF 
+;
+
+// Rule SingleTransfer
+ruleSingleTransfer 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getSingleTransferAccess().getInterchangeAssignment()); }
+		(rule__SingleTransfer__InterchangeAssignment)
+		{ after(grammarAccess.getSingleTransferAccess().getInterchangeAssignment()); }
 	)
 ;
 finally {
@@ -204,34 +254,9 @@
 	}
 	:
 	(
-		{ before(grammarAccess.getSignalDatainterchangeAccess().getDataRefAssignment()); }
-		(rule__SignalDatainterchange__DataRefAssignment)
-		{ after(grammarAccess.getSignalDatainterchangeAccess().getDataRefAssignment()); }
-	)
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-// Entry rule entryRuleSignalHandling
-entryRuleSignalHandling
-:
-{ before(grammarAccess.getSignalHandlingRule()); }
-	 ruleSignalHandling
-{ after(grammarAccess.getSignalHandlingRule()); } 
-	 EOF 
-;
-
-// Rule SignalHandling
-ruleSignalHandling 
-	@init {
-		int stackSize = keepStackSize();
-	}
-	:
-	(
-		{ before(grammarAccess.getSignalHandlingAccess().getGroup()); }
-		(rule__SignalHandling__Group__0)
-		{ after(grammarAccess.getSignalHandlingAccess().getGroup()); }
+		{ before(grammarAccess.getSignalDatainterchangeAccess().getGroup()); }
+		(rule__SignalDatainterchange__Group__0)
+		{ after(grammarAccess.getSignalDatainterchangeAccess().getGroup()); }
 	)
 ;
 finally {
@@ -2285,6 +2310,22 @@
 	restoreStackSize(stackSize);
 }
 
+// Rule SignalActionEnum
+ruleSignalActionEnum
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getSignalActionEnumAccess().getAlternatives()); }
+		(rule__SignalActionEnum__Alternatives)
+		{ after(grammarAccess.getSignalActionEnumAccess().getAlternatives()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
 // Rule SignalTypeEnum
 ruleSignalTypeEnum
 	@init {
@@ -2301,22 +2342,6 @@
 	restoreStackSize(stackSize);
 }
 
-// Rule SignalNotificationEnum
-ruleSignalNotificationEnum
-	@init {
-		int stackSize = keepStackSize();
-	}
-:
-	(
-		{ before(grammarAccess.getSignalNotificationEnumAccess().getAlternatives()); }
-		(rule__SignalNotificationEnum__Alternatives)
-		{ after(grammarAccess.getSignalNotificationEnumAccess().getAlternatives()); }
-	)
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
 // Rule SignalHandlerTypeEnum
 ruleSignalHandlerTypeEnum
 	@init {
@@ -2333,6 +2358,43 @@
 	restoreStackSize(stackSize);
 }
 
+// Rule SignalExecutionTypeEnum
+ruleSignalExecutionTypeEnum
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getSignalExecutionTypeEnumAccess().getAlternatives()); }
+		(rule__SignalExecutionTypeEnum__Alternatives)
+		{ after(grammarAccess.getSignalExecutionTypeEnumAccess().getAlternatives()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataTransfer__Alternatives
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getDataTransferAccess().getSingleTransferParserRuleCall_0()); }
+		ruleSingleTransfer
+		{ after(grammarAccess.getDataTransferAccess().getSingleTransferParserRuleCall_0()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getDataTransferAccess().getListTransferParserRuleCall_1()); }
+		ruleListTransfer
+		{ after(grammarAccess.getDataTransferAccess().getListTransferParserRuleCall_1()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
 rule__XImportDeclaration__Alternatives_2
 	@init {
 		int stackSize = keepStackSize();
@@ -3500,6 +3562,27 @@
 	restoreStackSize(stackSize);
 }
 
+rule__SignalActionEnum__Alternatives
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getSignalActionEnumAccess().getDATAIMPORTEnumLiteralDeclaration_0()); }
+		('Import')
+		{ after(grammarAccess.getSignalActionEnumAccess().getDATAIMPORTEnumLiteralDeclaration_0()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getSignalActionEnumAccess().getDATAEXPORTEnumLiteralDeclaration_1()); }
+		('Export')
+		{ after(grammarAccess.getSignalActionEnumAccess().getDATAEXPORTEnumLiteralDeclaration_1()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
 rule__SignalTypeEnum__Alternatives
 	@init {
 		int stackSize = keepStackSize();
@@ -3533,90 +3616,54 @@
 	restoreStackSize(stackSize);
 }
 
-rule__SignalNotificationEnum__Alternatives
-	@init {
-		int stackSize = keepStackSize();
-	}
-:
-	(
-		{ before(grammarAccess.getSignalNotificationEnumAccess().getShowOnAllEnumLiteralDeclaration_0()); }
-		('show')
-		{ after(grammarAccess.getSignalNotificationEnumAccess().getShowOnAllEnumLiteralDeclaration_0()); }
-	)
-	|
-	(
-		{ before(grammarAccess.getSignalNotificationEnumAccess().getShowOnCreateEnumLiteralDeclaration_1()); }
-		('showOnCreate')
-		{ after(grammarAccess.getSignalNotificationEnumAccess().getShowOnCreateEnumLiteralDeclaration_1()); }
-	)
-	|
-	(
-		{ before(grammarAccess.getSignalNotificationEnumAccess().getShowOnDeleteEnumLiteralDeclaration_2()); }
-		('showOnDelete')
-		{ after(grammarAccess.getSignalNotificationEnumAccess().getShowOnDeleteEnumLiteralDeclaration_2()); }
-	)
-	|
-	(
-		{ before(grammarAccess.getSignalNotificationEnumAccess().getShowOnModifyEnumLiteralDeclaration_3()); }
-		('showOnModify')
-		{ after(grammarAccess.getSignalNotificationEnumAccess().getShowOnModifyEnumLiteralDeclaration_3()); }
-	)
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
 rule__SignalHandlerTypeEnum__Alternatives
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
 	(
-		{ before(grammarAccess.getSignalHandlerTypeEnumAccess().getDoAfterEnumLiteralDeclaration_0()); }
+		{ before(grammarAccess.getSignalHandlerTypeEnumAccess().getDoafterEnumLiteralDeclaration_0()); }
 		('doAfter')
-		{ after(grammarAccess.getSignalHandlerTypeEnumAccess().getDoAfterEnumLiteralDeclaration_0()); }
+		{ after(grammarAccess.getSignalHandlerTypeEnumAccess().getDoafterEnumLiteralDeclaration_0()); }
 	)
 	|
 	(
-		{ before(grammarAccess.getSignalHandlerTypeEnumAccess().getDoAfterCreateEnumLiteralDeclaration_1()); }
-		('doAfterCreate')
-		{ after(grammarAccess.getSignalHandlerTypeEnumAccess().getDoAfterCreateEnumLiteralDeclaration_1()); }
-	)
-	|
-	(
-		{ before(grammarAccess.getSignalHandlerTypeEnumAccess().getDoAfterDeleteEnumLiteralDeclaration_2()); }
-		('doAfterDelete')
-		{ after(grammarAccess.getSignalHandlerTypeEnumAccess().getDoAfterDeleteEnumLiteralDeclaration_2()); }
-	)
-	|
-	(
-		{ before(grammarAccess.getSignalHandlerTypeEnumAccess().getDoAfterModifyEnumLiteralDeclaration_3()); }
+		{ before(grammarAccess.getSignalHandlerTypeEnumAccess().getDoaftermodifyEnumLiteralDeclaration_1()); }
 		('doAfterModify')
-		{ after(grammarAccess.getSignalHandlerTypeEnumAccess().getDoAfterModifyEnumLiteralDeclaration_3()); }
+		{ after(grammarAccess.getSignalHandlerTypeEnumAccess().getDoaftermodifyEnumLiteralDeclaration_1()); }
 	)
 	|
 	(
-		{ before(grammarAccess.getSignalHandlerTypeEnumAccess().getDoBeforeEnumLiteralDeclaration_4()); }
-		('doBefore')
-		{ after(grammarAccess.getSignalHandlerTypeEnumAccess().getDoBeforeEnumLiteralDeclaration_4()); }
+		{ before(grammarAccess.getSignalHandlerTypeEnumAccess().getDoaftercreateEnumLiteralDeclaration_2()); }
+		('doAfterCreate')
+		{ after(grammarAccess.getSignalHandlerTypeEnumAccess().getDoaftercreateEnumLiteralDeclaration_2()); }
 	)
 	|
 	(
-		{ before(grammarAccess.getSignalHandlerTypeEnumAccess().getDoBeforeCreateEnumLiteralDeclaration_5()); }
-		('doBeforeCreate')
-		{ after(grammarAccess.getSignalHandlerTypeEnumAccess().getDoBeforeCreateEnumLiteralDeclaration_5()); }
+		{ before(grammarAccess.getSignalHandlerTypeEnumAccess().getDoafterdeleteEnumLiteralDeclaration_3()); }
+		('doAfterDelete')
+		{ after(grammarAccess.getSignalHandlerTypeEnumAccess().getDoafterdeleteEnumLiteralDeclaration_3()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SignalExecutionTypeEnum__Alternatives
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getSignalExecutionTypeEnumAccess().getSYNCEnumLiteralDeclaration_0()); }
+		('synch')
+		{ after(grammarAccess.getSignalExecutionTypeEnumAccess().getSYNCEnumLiteralDeclaration_0()); }
 	)
 	|
 	(
-		{ before(grammarAccess.getSignalHandlerTypeEnumAccess().getDoBeforeModifyEnumLiteralDeclaration_6()); }
-		('doBeforeModify')
-		{ after(grammarAccess.getSignalHandlerTypeEnumAccess().getDoBeforeModifyEnumLiteralDeclaration_6()); }
-	)
-	|
-	(
-		{ before(grammarAccess.getSignalHandlerTypeEnumAccess().getDoDeforeDeleteEnumLiteralDeclaration_7()); }
-		('doBeforedelete')
-		{ after(grammarAccess.getSignalHandlerTypeEnumAccess().getDoDeforeDeleteEnumLiteralDeclaration_7()); }
+		{ before(grammarAccess.getSignalExecutionTypeEnumAccess().getASYNCEnumLiteralDeclaration_1()); }
+		('asynch')
+		{ after(grammarAccess.getSignalExecutionTypeEnumAccess().getASYNCEnumLiteralDeclaration_1()); }
 	)
 ;
 finally {
@@ -3845,7 +3892,6 @@
 	}
 :
 	rule__SignalPackage__Group_3__2__Impl
-	rule__SignalPackage__Group_3__3
 ;
 finally {
 	restoreStackSize(stackSize);
@@ -3857,35 +3903,9 @@
 	}
 :
 (
-	{ before(grammarAccess.getSignalPackageAccess().getHandlersAssignment_3_2()); }
-	(rule__SignalPackage__HandlersAssignment_3_2)*
-	{ after(grammarAccess.getSignalPackageAccess().getHandlersAssignment_3_2()); }
-)
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__SignalPackage__Group_3__3
-	@init {
-		int stackSize = keepStackSize();
-	}
-:
-	rule__SignalPackage__Group_3__3__Impl
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__SignalPackage__Group_3__3__Impl
-	@init {
-		int stackSize = keepStackSize();
-	}
-:
-(
-	{ before(grammarAccess.getSignalPackageAccess().getRightCurlyBracketKeyword_3_3()); }
+	{ before(grammarAccess.getSignalPackageAccess().getRightCurlyBracketKeyword_3_2()); }
 	'}'
-	{ after(grammarAccess.getSignalPackageAccess().getRightCurlyBracketKeyword_3_3()); }
+	{ after(grammarAccess.getSignalPackageAccess().getRightCurlyBracketKeyword_3_2()); }
 )
 ;
 finally {
@@ -4061,6 +4081,7 @@
 	}
 :
 	rule__SignalWatcher__Group__6__Impl
+	rule__SignalWatcher__Group__7
 ;
 finally {
 	restoreStackSize(stackSize);
@@ -4081,6 +4102,86 @@
 	restoreStackSize(stackSize);
 }
 
+rule__SignalWatcher__Group__7
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__SignalWatcher__Group__7__Impl
+	rule__SignalWatcher__Group__8
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SignalWatcher__Group__7__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getSignalWatcherAccess().getLeftCurlyBracketKeyword_7()); }
+	'{'
+	{ after(grammarAccess.getSignalWatcherAccess().getLeftCurlyBracketKeyword_7()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SignalWatcher__Group__8
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__SignalWatcher__Group__8__Impl
+	rule__SignalWatcher__Group__9
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SignalWatcher__Group__8__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getSignalWatcherAccess().getHandlersAssignment_8()); }
+	(rule__SignalWatcher__HandlersAssignment_8)*
+	{ after(grammarAccess.getSignalWatcherAccess().getHandlersAssignment_8()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SignalWatcher__Group__9
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__SignalWatcher__Group__9__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SignalWatcher__Group__9__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getSignalWatcherAccess().getRightCurlyBracketKeyword_9()); }
+	'}'
+	{ after(grammarAccess.getSignalWatcherAccess().getRightCurlyBracketKeyword_9()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
 
 rule__SignalHandler__Group__0
 	@init {
@@ -4127,9 +4228,9 @@
 	}
 :
 (
-	{ before(grammarAccess.getSignalHandlerAccess().getHandlerOnKeyword_1()); }
-	'handlerOn'
-	{ after(grammarAccess.getSignalHandlerAccess().getHandlerOnKeyword_1()); }
+	{ before(grammarAccess.getSignalHandlerAccess().getHandlerKeyword_1()); }
+	'handler'
+	{ after(grammarAccess.getSignalHandlerAccess().getHandlerKeyword_1()); }
 )
 ;
 finally {
@@ -4154,9 +4255,9 @@
 	}
 :
 (
-	{ before(grammarAccess.getSignalHandlerAccess().getWatcherAssignment_2()); }
-	(rule__SignalHandler__WatcherAssignment_2)
-	{ after(grammarAccess.getSignalHandlerAccess().getWatcherAssignment_2()); }
+	{ before(grammarAccess.getSignalHandlerAccess().getNameAssignment_2()); }
+	(rule__SignalHandler__NameAssignment_2)
+	{ after(grammarAccess.getSignalHandlerAccess().getNameAssignment_2()); }
 )
 ;
 finally {
@@ -4169,6 +4270,7 @@
 	}
 :
 	rule__SignalHandler__Group__3__Impl
+	rule__SignalHandler__Group__4
 ;
 finally {
 	restoreStackSize(stackSize);
@@ -4180,9 +4282,116 @@
 	}
 :
 (
-	{ before(grammarAccess.getSignalHandlerAccess().getGroup_3()); }
-	(rule__SignalHandler__Group_3__0)
-	{ after(grammarAccess.getSignalHandlerAccess().getGroup_3()); }
+	{ before(grammarAccess.getSignalHandlerAccess().getActionTypeAssignment_3()); }
+	(rule__SignalHandler__ActionTypeAssignment_3)
+	{ after(grammarAccess.getSignalHandlerAccess().getActionTypeAssignment_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SignalHandler__Group__4
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__SignalHandler__Group__4__Impl
+	rule__SignalHandler__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SignalHandler__Group__4__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getSignalHandlerAccess().getDataAssignment_4()); }
+	(rule__SignalHandler__DataAssignment_4)
+	{ after(grammarAccess.getSignalHandlerAccess().getDataAssignment_4()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SignalHandler__Group__5
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__SignalHandler__Group__5__Impl
+	rule__SignalHandler__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SignalHandler__Group__5__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getSignalHandlerAccess().getForKeyword_5()); }
+	'for'
+	{ after(grammarAccess.getSignalHandlerAccess().getForKeyword_5()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SignalHandler__Group__6
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__SignalHandler__Group__6__Impl
+	rule__SignalHandler__Group__7
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SignalHandler__Group__6__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getSignalHandlerAccess().getFileMaskKeyword_6()); }
+	'fileMask'
+	{ after(grammarAccess.getSignalHandlerAccess().getFileMaskKeyword_6()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SignalHandler__Group__7
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__SignalHandler__Group__7__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SignalHandler__Group__7__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getSignalHandlerAccess().getFilemaskAssignment_7()); }
+	(rule__SignalHandler__FilemaskAssignment_7)
+	{ after(grammarAccess.getSignalHandlerAccess().getFilemaskAssignment_7()); }
 )
 ;
 finally {
@@ -4190,53 +4399,161 @@
 }
 
 
-rule__SignalHandler__Group_3__0
+rule__ListTransfer__Group__0
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
-	rule__SignalHandler__Group_3__0__Impl
-	rule__SignalHandler__Group_3__1
+	rule__ListTransfer__Group__0__Impl
+	rule__ListTransfer__Group__1
 ;
 finally {
 	restoreStackSize(stackSize);
 }
 
-rule__SignalHandler__Group_3__0__Impl
+rule__ListTransfer__Group__0__Impl
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
 (
-	{ before(grammarAccess.getSignalHandlerAccess().getHandlerAssignment_3_0()); }
-	(rule__SignalHandler__HandlerAssignment_3_0)
-	{ after(grammarAccess.getSignalHandlerAccess().getHandlerAssignment_3_0()); }
+	{ before(grammarAccess.getListTransferAccess().getListTransferAction_0()); }
+	()
+	{ after(grammarAccess.getListTransferAccess().getListTransferAction_0()); }
 )
 ;
 finally {
 	restoreStackSize(stackSize);
 }
 
-rule__SignalHandler__Group_3__1
+rule__ListTransfer__Group__1
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
-	rule__SignalHandler__Group_3__1__Impl
+	rule__ListTransfer__Group__1__Impl
+	rule__ListTransfer__Group__2
 ;
 finally {
 	restoreStackSize(stackSize);
 }
 
-rule__SignalHandler__Group_3__1__Impl
+rule__ListTransfer__Group__1__Impl
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
 (
-	{ before(grammarAccess.getSignalHandlerAccess().getNotificationAssignment_3_1()); }
-	(rule__SignalHandler__NotificationAssignment_3_1)?
-	{ after(grammarAccess.getSignalHandlerAccess().getNotificationAssignment_3_1()); }
+	{ before(grammarAccess.getListTransferAccess().getDataTransferKeyword_1()); }
+	'DataTransfer'
+	{ after(grammarAccess.getListTransferAccess().getDataTransferKeyword_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ListTransfer__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__ListTransfer__Group__2__Impl
+	rule__ListTransfer__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ListTransfer__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getListTransferAccess().getExecutiontypeAssignment_2()); }
+	(rule__ListTransfer__ExecutiontypeAssignment_2)?
+	{ after(grammarAccess.getListTransferAccess().getExecutiontypeAssignment_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ListTransfer__Group__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__ListTransfer__Group__3__Impl
+	rule__ListTransfer__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ListTransfer__Group__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getListTransferAccess().getLeftCurlyBracketKeyword_3()); }
+	'{'
+	{ after(grammarAccess.getListTransferAccess().getLeftCurlyBracketKeyword_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ListTransfer__Group__4
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__ListTransfer__Group__4__Impl
+	rule__ListTransfer__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ListTransfer__Group__4__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getListTransferAccess().getInterchangesAssignment_4()); }
+	(rule__ListTransfer__InterchangesAssignment_4)*
+	{ after(grammarAccess.getListTransferAccess().getInterchangesAssignment_4()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ListTransfer__Group__5
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__ListTransfer__Group__5__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ListTransfer__Group__5__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getListTransferAccess().getRightCurlyBracketKeyword_5()); }
+	'}'
+	{ after(grammarAccess.getListTransferAccess().getRightCurlyBracketKeyword_5()); }
 )
 ;
 finally {
@@ -4244,107 +4561,53 @@
 }
 
 
-rule__SignalNotification__Group__0
+rule__SignalDatainterchange__Group__0
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
-	rule__SignalNotification__Group__0__Impl
-	rule__SignalNotification__Group__1
+	rule__SignalDatainterchange__Group__0__Impl
+	rule__SignalDatainterchange__Group__1
 ;
 finally {
 	restoreStackSize(stackSize);
 }
 
-rule__SignalNotification__Group__0__Impl
+rule__SignalDatainterchange__Group__0__Impl
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
 (
-	{ before(grammarAccess.getSignalNotificationAccess().getEventAssignment_0()); }
-	(rule__SignalNotification__EventAssignment_0)
-	{ after(grammarAccess.getSignalNotificationAccess().getEventAssignment_0()); }
+	{ before(grammarAccess.getSignalDatainterchangeAccess().getDataActionAssignment_0()); }
+	(rule__SignalDatainterchange__DataActionAssignment_0)
+	{ after(grammarAccess.getSignalDatainterchangeAccess().getDataActionAssignment_0()); }
 )
 ;
 finally {
 	restoreStackSize(stackSize);
 }
 
-rule__SignalNotification__Group__1
+rule__SignalDatainterchange__Group__1
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
-	rule__SignalNotification__Group__1__Impl
+	rule__SignalDatainterchange__Group__1__Impl
 ;
 finally {
 	restoreStackSize(stackSize);
 }
 
-rule__SignalNotification__Group__1__Impl
+rule__SignalDatainterchange__Group__1__Impl
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
 (
-	{ before(grammarAccess.getSignalNotificationAccess().getMessageAssignment_1()); }
-	(rule__SignalNotification__MessageAssignment_1)
-	{ after(grammarAccess.getSignalNotificationAccess().getMessageAssignment_1()); }
-)
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-rule__SignalHandling__Group__0
-	@init {
-		int stackSize = keepStackSize();
-	}
-:
-	rule__SignalHandling__Group__0__Impl
-	rule__SignalHandling__Group__1
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__SignalHandling__Group__0__Impl
-	@init {
-		int stackSize = keepStackSize();
-	}
-:
-(
-	{ before(grammarAccess.getSignalHandlingAccess().getActionTypeAssignment_0()); }
-	(rule__SignalHandling__ActionTypeAssignment_0)
-	{ after(grammarAccess.getSignalHandlingAccess().getActionTypeAssignment_0()); }
-)
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__SignalHandling__Group__1
-	@init {
-		int stackSize = keepStackSize();
-	}
-:
-	rule__SignalHandling__Group__1__Impl
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__SignalHandling__Group__1__Impl
-	@init {
-		int stackSize = keepStackSize();
-	}
-:
-(
-	{ before(grammarAccess.getSignalHandlingAccess().getDataRefAssignment_1()); }
-	(rule__SignalHandling__DataRefAssignment_1)
-	{ after(grammarAccess.getSignalHandlingAccess().getDataRefAssignment_1()); }
+	{ before(grammarAccess.getSignalDatainterchangeAccess().getDataRefAssignment_1()); }
+	(rule__SignalDatainterchange__DataRefAssignment_1)
+	{ after(grammarAccess.getSignalDatainterchangeAccess().getDataRefAssignment_1()); }
 )
 ;
 finally {
@@ -17332,21 +17595,6 @@
 	restoreStackSize(stackSize);
 }
 
-rule__SignalPackage__HandlersAssignment_3_2
-	@init {
-		int stackSize = keepStackSize();
-	}
-:
-	(
-		{ before(grammarAccess.getSignalPackageAccess().getHandlersSignalHandlerParserRuleCall_3_2_0()); }
-		ruleSignalHandler
-		{ after(grammarAccess.getSignalPackageAccess().getHandlersSignalHandlerParserRuleCall_3_2_0()); }
-	)
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
 rule__SignalWatcher__NameAssignment_2
 	@init {
 		int stackSize = keepStackSize();
@@ -17392,132 +17640,154 @@
 	restoreStackSize(stackSize);
 }
 
-rule__SignalHandler__WatcherAssignment_2
+rule__SignalWatcher__HandlersAssignment_8
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
 	(
-		{ before(grammarAccess.getSignalHandlerAccess().getWatcherSignalWatcherCrossReference_2_0()); }
-		(
-			{ before(grammarAccess.getSignalHandlerAccess().getWatcherSignalWatcherIDTerminalRuleCall_2_0_1()); }
-			RULE_ID
-			{ after(grammarAccess.getSignalHandlerAccess().getWatcherSignalWatcherIDTerminalRuleCall_2_0_1()); }
-		)
-		{ after(grammarAccess.getSignalHandlerAccess().getWatcherSignalWatcherCrossReference_2_0()); }
+		{ before(grammarAccess.getSignalWatcherAccess().getHandlersSignalHandlerParserRuleCall_8_0()); }
+		ruleSignalHandler
+		{ after(grammarAccess.getSignalWatcherAccess().getHandlersSignalHandlerParserRuleCall_8_0()); }
 	)
 ;
 finally {
 	restoreStackSize(stackSize);
 }
 
-rule__SignalHandler__HandlerAssignment_3_0
+rule__SignalHandler__NameAssignment_2
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
 	(
-		{ before(grammarAccess.getSignalHandlerAccess().getHandlerSignalHandlingParserRuleCall_3_0_0()); }
-		ruleSignalHandling
-		{ after(grammarAccess.getSignalHandlerAccess().getHandlerSignalHandlingParserRuleCall_3_0_0()); }
+		{ before(grammarAccess.getSignalHandlerAccess().getNameIDTerminalRuleCall_2_0()); }
+		RULE_ID
+		{ after(grammarAccess.getSignalHandlerAccess().getNameIDTerminalRuleCall_2_0()); }
 	)
 ;
 finally {
 	restoreStackSize(stackSize);
 }
 
-rule__SignalHandler__NotificationAssignment_3_1
+rule__SignalHandler__ActionTypeAssignment_3
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
 	(
-		{ before(grammarAccess.getSignalHandlerAccess().getNotificationSignalNotificationParserRuleCall_3_1_0()); }
-		ruleSignalNotification
-		{ after(grammarAccess.getSignalHandlerAccess().getNotificationSignalNotificationParserRuleCall_3_1_0()); }
-	)
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__SignalNotification__EventAssignment_0
-	@init {
-		int stackSize = keepStackSize();
-	}
-:
-	(
-		{ before(grammarAccess.getSignalNotificationAccess().getEventSignalNotificationEnumEnumRuleCall_0_0()); }
-		ruleSignalNotificationEnum
-		{ after(grammarAccess.getSignalNotificationAccess().getEventSignalNotificationEnumEnumRuleCall_0_0()); }
-	)
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__SignalNotification__MessageAssignment_1
-	@init {
-		int stackSize = keepStackSize();
-	}
-:
-	(
-		{ before(grammarAccess.getSignalNotificationAccess().getMessageSTRINGTerminalRuleCall_1_0()); }
-		RULE_STRING
-		{ after(grammarAccess.getSignalNotificationAccess().getMessageSTRINGTerminalRuleCall_1_0()); }
-	)
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__SignalDatainterchange__DataRefAssignment
-	@init {
-		int stackSize = keepStackSize();
-	}
-:
-	(
-		{ before(grammarAccess.getSignalDatainterchangeAccess().getDataRefDataInterchangeCrossReference_0()); }
-		(
-			{ before(grammarAccess.getSignalDatainterchangeAccess().getDataRefDataInterchangeIDTerminalRuleCall_0_1()); }
-			RULE_ID
-			{ after(grammarAccess.getSignalDatainterchangeAccess().getDataRefDataInterchangeIDTerminalRuleCall_0_1()); }
-		)
-		{ after(grammarAccess.getSignalDatainterchangeAccess().getDataRefDataInterchangeCrossReference_0()); }
-	)
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__SignalHandling__ActionTypeAssignment_0
-	@init {
-		int stackSize = keepStackSize();
-	}
-:
-	(
-		{ before(grammarAccess.getSignalHandlingAccess().getActionTypeSignalHandlerTypeEnumEnumRuleCall_0_0()); }
+		{ before(grammarAccess.getSignalHandlerAccess().getActionTypeSignalHandlerTypeEnumEnumRuleCall_3_0()); }
 		ruleSignalHandlerTypeEnum
-		{ after(grammarAccess.getSignalHandlingAccess().getActionTypeSignalHandlerTypeEnumEnumRuleCall_0_0()); }
+		{ after(grammarAccess.getSignalHandlerAccess().getActionTypeSignalHandlerTypeEnumEnumRuleCall_3_0()); }
 	)
 ;
 finally {
 	restoreStackSize(stackSize);
 }
 
-rule__SignalHandling__DataRefAssignment_1
+rule__SignalHandler__DataAssignment_4
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
 	(
-		{ before(grammarAccess.getSignalHandlingAccess().getDataRefDataInterchangeCrossReference_1_0()); }
+		{ before(grammarAccess.getSignalHandlerAccess().getDataDataTransferParserRuleCall_4_0()); }
+		ruleDataTransfer
+		{ after(grammarAccess.getSignalHandlerAccess().getDataDataTransferParserRuleCall_4_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SignalHandler__FilemaskAssignment_7
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getSignalHandlerAccess().getFilemaskSTRINGTerminalRuleCall_7_0()); }
+		RULE_STRING
+		{ after(grammarAccess.getSignalHandlerAccess().getFilemaskSTRINGTerminalRuleCall_7_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ListTransfer__ExecutiontypeAssignment_2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getListTransferAccess().getExecutiontypeSignalExecutionTypeEnumEnumRuleCall_2_0()); }
+		ruleSignalExecutionTypeEnum
+		{ after(grammarAccess.getListTransferAccess().getExecutiontypeSignalExecutionTypeEnumEnumRuleCall_2_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ListTransfer__InterchangesAssignment_4
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getListTransferAccess().getInterchangesSignalDatainterchangeParserRuleCall_4_0()); }
+		ruleSignalDatainterchange
+		{ after(grammarAccess.getListTransferAccess().getInterchangesSignalDatainterchangeParserRuleCall_4_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SingleTransfer__InterchangeAssignment
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getSingleTransferAccess().getInterchangeSignalDatainterchangeParserRuleCall_0()); }
+		ruleSignalDatainterchange
+		{ after(grammarAccess.getSingleTransferAccess().getInterchangeSignalDatainterchangeParserRuleCall_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SignalDatainterchange__DataActionAssignment_0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getSignalDatainterchangeAccess().getDataActionSignalActionEnumEnumRuleCall_0_0()); }
+		ruleSignalActionEnum
+		{ after(grammarAccess.getSignalDatainterchangeAccess().getDataActionSignalActionEnumEnumRuleCall_0_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SignalDatainterchange__DataRefAssignment_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getSignalDatainterchangeAccess().getDataRefDataInterchangeCrossReference_1_0()); }
 		(
-			{ before(grammarAccess.getSignalHandlingAccess().getDataRefDataInterchangeIDTerminalRuleCall_1_0_1()); }
+			{ before(grammarAccess.getSignalDatainterchangeAccess().getDataRefDataInterchangeIDTerminalRuleCall_1_0_1()); }
 			RULE_ID
-			{ after(grammarAccess.getSignalHandlingAccess().getDataRefDataInterchangeIDTerminalRuleCall_1_0_1()); }
+			{ after(grammarAccess.getSignalDatainterchangeAccess().getDataRefDataInterchangeIDTerminalRuleCall_1_0_1()); }
 		)
-		{ after(grammarAccess.getSignalHandlingAccess().getDataRefDataInterchangeCrossReference_1_0()); }
+		{ after(grammarAccess.getSignalDatainterchangeAccess().getDataRefDataInterchangeCrossReference_1_0()); }
 	)
 ;
 finally {
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 96ff07a..4ea768b 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,20 +1,20 @@
 '!'=40
 '!='=22
 '!=='=24
-'#'=80
+'#'=78
 '%'=39
 '%='=20
 '&&'=15
-'&'=102
-'('=76
-')'=77
+'&'=100
+'('=74
+')'=75
 '*'=36
 '**'=37
 '*='=18
 '+'=34
 '++'=41
 '+='=16
-','=78
+','=76
 '-'=35
 '--'=42
 '-='=17
@@ -24,9 +24,9 @@
 '..<'=29
 '/'=38
 '/='=19
-':'=87
-'::'=104
-';'=74
+':'=85
+'::'=102
+';'=72
 '<'=27
 '<>'=32
 '='=13
@@ -35,65 +35,63 @@
 '=>'=31
 '>'=26
 '>='=25
-'?'=101
-'?.'=105
+'?'=99
+'?.'=103
 '?:'=33
-'@'=75
-'['=81
-']'=79
-'all'=51
-'as'=83
-'case'=89
-'catch'=100
-'createSignals'=52
-'default'=88
-'deleteSignals'=54
-'directory'=71
-'do'=91
-'doAfter'=59
-'doAfterCreate'=60
-'doAfterDelete'=61
-'doAfterModify'=62
-'doBefore'=63
-'doBeforeCreate'=64
-'doBeforeModify'=65
-'doBeforedelete'=66
-'else'=85
+'@'=73
+'DataTransfer'=71
+'Export'=52
+'Import'=51
+'['=79
+']'=77
+'all'=53
+'as'=81
+'asynch'=62
+'case'=87
+'catch'=98
+'createSignals'=54
+'default'=86
+'deleteSignals'=56
+'directory'=67
+'do'=89
+'doAfter'=57
+'doAfterCreate'=59
+'doAfterDelete'=60
+'doAfterModify'=58
+'else'=83
 'extends'=45
 'extension'=48
 'false'=50
-'finally'=98
-'for'=72
-'handlerOn'=73
-'if'=84
+'fileMask'=70
+'finally'=96
+'for'=68
+'handler'=69
+'if'=82
 'import'=47
-'instanceof'=82
-'modifySignals'=53
-'new'=92
-'ns'=103
-'null'=93
-'package'=67
-'return'=96
-'show'=55
-'showOnCreate'=56
-'showOnDelete'=57
-'showOnModify'=58
+'instanceof'=80
+'modifySignals'=55
+'new'=90
+'ns'=101
+'null'=91
+'package'=63
+'return'=94
 'static'=46
 'super'=49
-'switch'=86
-'synchronized'=99
-'throw'=95
-'true'=108
-'try'=97
-'typeof'=94
+'switch'=84
+'synch'=61
+'synchronized'=97
+'throw'=93
+'true'=106
+'try'=95
+'typeof'=92
 'val'=44
-'var'=107
-'watcher'=70
-'while'=90
-'{'=68
-'|'=106
+'var'=105
+'watcher'=66
+'while'=88
+'{'=64
+'|'=104
 '||'=14
-'}'=69
+'}'=65
 RULE_ANY_OTHER=12
 RULE_DECIMAL=7
 RULE_HEX=5
@@ -110,8 +108,6 @@
 T__104=104
 T__105=105
 T__106=106
-T__107=107
-T__108=108
 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 967e5f2..5c6c990 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
@@ -107,9 +107,7 @@
     public static final int RULE_WS=11;
     public static final int RULE_ANY_OTHER=12;
     public static final int T__88=88;
-    public static final int T__108=108;
     public static final int T__89=89;
-    public static final int T__107=107;
     public static final int T__84=84;
     public static final int T__104=104;
     public static final int T__85=85;
@@ -925,10 +923,10 @@
         try {
             int _type = T__51;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:49:7: ( 'all' )
-            // InternalSignalDSL.g:49:9: 'all'
+            // InternalSignalDSL.g:49:7: ( 'Import' )
+            // InternalSignalDSL.g:49:9: 'Import'
             {
-            match("all"); 
+            match("Import"); 
 
 
             }
@@ -946,10 +944,10 @@
         try {
             int _type = T__52;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:50:7: ( 'createSignals' )
-            // InternalSignalDSL.g:50:9: 'createSignals'
+            // InternalSignalDSL.g:50:7: ( 'Export' )
+            // InternalSignalDSL.g:50:9: 'Export'
             {
-            match("createSignals"); 
+            match("Export"); 
 
 
             }
@@ -967,10 +965,10 @@
         try {
             int _type = T__53;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:51:7: ( 'modifySignals' )
-            // InternalSignalDSL.g:51:9: 'modifySignals'
+            // InternalSignalDSL.g:51:7: ( 'all' )
+            // InternalSignalDSL.g:51:9: 'all'
             {
-            match("modifySignals"); 
+            match("all"); 
 
 
             }
@@ -988,10 +986,10 @@
         try {
             int _type = T__54;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:52:7: ( 'deleteSignals' )
-            // InternalSignalDSL.g:52:9: 'deleteSignals'
+            // InternalSignalDSL.g:52:7: ( 'createSignals' )
+            // InternalSignalDSL.g:52:9: 'createSignals'
             {
-            match("deleteSignals"); 
+            match("createSignals"); 
 
 
             }
@@ -1009,10 +1007,10 @@
         try {
             int _type = T__55;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:53:7: ( 'show' )
-            // InternalSignalDSL.g:53:9: 'show'
+            // InternalSignalDSL.g:53:7: ( 'modifySignals' )
+            // InternalSignalDSL.g:53:9: 'modifySignals'
             {
-            match("show"); 
+            match("modifySignals"); 
 
 
             }
@@ -1030,10 +1028,10 @@
         try {
             int _type = T__56;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:54:7: ( 'showOnCreate' )
-            // InternalSignalDSL.g:54:9: 'showOnCreate'
+            // InternalSignalDSL.g:54:7: ( 'deleteSignals' )
+            // InternalSignalDSL.g:54:9: 'deleteSignals'
             {
-            match("showOnCreate"); 
+            match("deleteSignals"); 
 
 
             }
@@ -1051,10 +1049,10 @@
         try {
             int _type = T__57;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:55:7: ( 'showOnDelete' )
-            // InternalSignalDSL.g:55:9: 'showOnDelete'
+            // InternalSignalDSL.g:55:7: ( 'doAfter' )
+            // InternalSignalDSL.g:55:9: 'doAfter'
             {
-            match("showOnDelete"); 
+            match("doAfter"); 
 
 
             }
@@ -1072,10 +1070,10 @@
         try {
             int _type = T__58;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:56:7: ( 'showOnModify' )
-            // InternalSignalDSL.g:56:9: 'showOnModify'
+            // InternalSignalDSL.g:56:7: ( 'doAfterModify' )
+            // InternalSignalDSL.g:56:9: 'doAfterModify'
             {
-            match("showOnModify"); 
+            match("doAfterModify"); 
 
 
             }
@@ -1093,10 +1091,10 @@
         try {
             int _type = T__59;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:57:7: ( 'doAfter' )
-            // InternalSignalDSL.g:57:9: 'doAfter'
+            // InternalSignalDSL.g:57:7: ( 'doAfterCreate' )
+            // InternalSignalDSL.g:57:9: 'doAfterCreate'
             {
-            match("doAfter"); 
+            match("doAfterCreate"); 
 
 
             }
@@ -1114,10 +1112,10 @@
         try {
             int _type = T__60;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:58:7: ( 'doAfterCreate' )
-            // InternalSignalDSL.g:58:9: 'doAfterCreate'
+            // InternalSignalDSL.g:58:7: ( 'doAfterDelete' )
+            // InternalSignalDSL.g:58:9: 'doAfterDelete'
             {
-            match("doAfterCreate"); 
+            match("doAfterDelete"); 
 
 
             }
@@ -1135,10 +1133,10 @@
         try {
             int _type = T__61;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:59:7: ( 'doAfterDelete' )
-            // InternalSignalDSL.g:59:9: 'doAfterDelete'
+            // InternalSignalDSL.g:59:7: ( 'synch' )
+            // InternalSignalDSL.g:59:9: 'synch'
             {
-            match("doAfterDelete"); 
+            match("synch"); 
 
 
             }
@@ -1156,10 +1154,10 @@
         try {
             int _type = T__62;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:60:7: ( 'doAfterModify' )
-            // InternalSignalDSL.g:60:9: 'doAfterModify'
+            // InternalSignalDSL.g:60:7: ( 'asynch' )
+            // InternalSignalDSL.g:60:9: 'asynch'
             {
-            match("doAfterModify"); 
+            match("asynch"); 
 
 
             }
@@ -1177,10 +1175,10 @@
         try {
             int _type = T__63;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:61:7: ( 'doBefore' )
-            // InternalSignalDSL.g:61:9: 'doBefore'
+            // InternalSignalDSL.g:61:7: ( 'package' )
+            // InternalSignalDSL.g:61:9: 'package'
             {
-            match("doBefore"); 
+            match("package"); 
 
 
             }
@@ -1198,11 +1196,10 @@
         try {
             int _type = T__64;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:62:7: ( 'doBeforeCreate' )
-            // InternalSignalDSL.g:62:9: 'doBeforeCreate'
+            // InternalSignalDSL.g:62:7: ( '{' )
+            // InternalSignalDSL.g:62:9: '{'
             {
-            match("doBeforeCreate"); 
-
+            match('{'); 
 
             }
 
@@ -1219,11 +1216,10 @@
         try {
             int _type = T__65;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:63:7: ( 'doBeforeModify' )
-            // InternalSignalDSL.g:63:9: 'doBeforeModify'
+            // InternalSignalDSL.g:63:7: ( '}' )
+            // InternalSignalDSL.g:63:9: '}'
             {
-            match("doBeforeModify"); 
-
+            match('}'); 
 
             }
 
@@ -1240,10 +1236,10 @@
         try {
             int _type = T__66;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:64:7: ( 'doBeforedelete' )
-            // InternalSignalDSL.g:64:9: 'doBeforedelete'
+            // InternalSignalDSL.g:64:7: ( 'watcher' )
+            // InternalSignalDSL.g:64:9: 'watcher'
             {
-            match("doBeforedelete"); 
+            match("watcher"); 
 
 
             }
@@ -1261,10 +1257,10 @@
         try {
             int _type = T__67;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:65:7: ( 'package' )
-            // InternalSignalDSL.g:65:9: 'package'
+            // InternalSignalDSL.g:65:7: ( 'directory' )
+            // InternalSignalDSL.g:65:9: 'directory'
             {
-            match("package"); 
+            match("directory"); 
 
 
             }
@@ -1282,10 +1278,11 @@
         try {
             int _type = T__68;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:66:7: ( '{' )
-            // InternalSignalDSL.g:66:9: '{'
+            // InternalSignalDSL.g:66:7: ( 'for' )
+            // InternalSignalDSL.g:66:9: 'for'
             {
-            match('{'); 
+            match("for"); 
+
 
             }
 
@@ -1302,10 +1299,11 @@
         try {
             int _type = T__69;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:67:7: ( '}' )
-            // InternalSignalDSL.g:67:9: '}'
+            // InternalSignalDSL.g:67:7: ( 'handler' )
+            // InternalSignalDSL.g:67:9: 'handler'
             {
-            match('}'); 
+            match("handler"); 
+
 
             }
 
@@ -1322,10 +1320,10 @@
         try {
             int _type = T__70;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:68:7: ( 'watcher' )
-            // InternalSignalDSL.g:68:9: 'watcher'
+            // InternalSignalDSL.g:68:7: ( 'fileMask' )
+            // InternalSignalDSL.g:68:9: 'fileMask'
             {
-            match("watcher"); 
+            match("fileMask"); 
 
 
             }
@@ -1343,10 +1341,10 @@
         try {
             int _type = T__71;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:69:7: ( 'directory' )
-            // InternalSignalDSL.g:69:9: 'directory'
+            // InternalSignalDSL.g:69:7: ( 'DataTransfer' )
+            // InternalSignalDSL.g:69:9: 'DataTransfer'
             {
-            match("directory"); 
+            match("DataTransfer"); 
 
 
             }
@@ -1364,11 +1362,10 @@
         try {
             int _type = T__72;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:70:7: ( 'for' )
-            // InternalSignalDSL.g:70:9: 'for'
+            // InternalSignalDSL.g:70:7: ( ';' )
+            // InternalSignalDSL.g:70:9: ';'
             {
-            match("for"); 
-
+            match(';'); 
 
             }
 
@@ -1385,11 +1382,10 @@
         try {
             int _type = T__73;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:71:7: ( 'handlerOn' )
-            // InternalSignalDSL.g:71:9: 'handlerOn'
+            // InternalSignalDSL.g:71:7: ( '@' )
+            // InternalSignalDSL.g:71:9: '@'
             {
-            match("handlerOn"); 
-
+            match('@'); 
 
             }
 
@@ -1406,10 +1402,10 @@
         try {
             int _type = T__74;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:72:7: ( ';' )
-            // InternalSignalDSL.g:72:9: ';'
+            // InternalSignalDSL.g:72:7: ( '(' )
+            // InternalSignalDSL.g:72:9: '('
             {
-            match(';'); 
+            match('('); 
 
             }
 
@@ -1426,10 +1422,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(')'); 
 
             }
 
@@ -1446,10 +1442,10 @@
         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(','); 
 
             }
 
@@ -1466,10 +1462,10 @@
         try {
             int _type = T__77;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:75:7: ( ')' )
-            // InternalSignalDSL.g:75:9: ')'
+            // InternalSignalDSL.g:75:7: ( ']' )
+            // InternalSignalDSL.g:75:9: ']'
             {
-            match(')'); 
+            match(']'); 
 
             }
 
@@ -1486,10 +1482,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('#'); 
 
             }
 
@@ -1506,10 +1502,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('['); 
 
             }
 
@@ -1526,10 +1522,11 @@
         try {
             int _type = T__80;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:78:7: ( '#' )
-            // InternalSignalDSL.g:78:9: '#'
+            // InternalSignalDSL.g:78:7: ( 'instanceof' )
+            // InternalSignalDSL.g:78:9: 'instanceof'
             {
-            match('#'); 
+            match("instanceof"); 
+
 
             }
 
@@ -1546,10 +1543,11 @@
         try {
             int _type = T__81;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:79:7: ( '[' )
-            // InternalSignalDSL.g:79:9: '['
+            // InternalSignalDSL.g:79:7: ( 'as' )
+            // InternalSignalDSL.g:79:9: 'as'
             {
-            match('['); 
+            match("as"); 
+
 
             }
 
@@ -1566,10 +1564,10 @@
         try {
             int _type = T__82;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:80:7: ( 'instanceof' )
-            // InternalSignalDSL.g:80:9: 'instanceof'
+            // InternalSignalDSL.g:80:7: ( 'if' )
+            // InternalSignalDSL.g:80:9: 'if'
             {
-            match("instanceof"); 
+            match("if"); 
 
 
             }
@@ -1587,10 +1585,10 @@
         try {
             int _type = T__83;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:81:7: ( 'as' )
-            // InternalSignalDSL.g:81:9: 'as'
+            // InternalSignalDSL.g:81:7: ( 'else' )
+            // InternalSignalDSL.g:81:9: 'else'
             {
-            match("as"); 
+            match("else"); 
 
 
             }
@@ -1608,10 +1606,10 @@
         try {
             int _type = T__84;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:82:7: ( 'if' )
-            // InternalSignalDSL.g:82:9: 'if'
+            // InternalSignalDSL.g:82:7: ( 'switch' )
+            // InternalSignalDSL.g:82:9: 'switch'
             {
-            match("if"); 
+            match("switch"); 
 
 
             }
@@ -1629,11 +1627,10 @@
         try {
             int _type = T__85;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:83:7: ( 'else' )
-            // InternalSignalDSL.g:83:9: 'else'
+            // InternalSignalDSL.g:83:7: ( ':' )
+            // InternalSignalDSL.g:83:9: ':'
             {
-            match("else"); 
-
+            match(':'); 
 
             }
 
@@ -1650,10 +1647,10 @@
         try {
             int _type = T__86;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:84:7: ( 'switch' )
-            // InternalSignalDSL.g:84:9: 'switch'
+            // InternalSignalDSL.g:84:7: ( 'default' )
+            // InternalSignalDSL.g:84:9: 'default'
             {
-            match("switch"); 
+            match("default"); 
 
 
             }
@@ -1671,10 +1668,11 @@
         try {
             int _type = T__87;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:85:7: ( ':' )
-            // InternalSignalDSL.g:85:9: ':'
+            // InternalSignalDSL.g:85:7: ( 'case' )
+            // InternalSignalDSL.g:85:9: 'case'
             {
-            match(':'); 
+            match("case"); 
+
 
             }
 
@@ -1691,10 +1689,10 @@
         try {
             int _type = T__88;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:86:7: ( 'default' )
-            // InternalSignalDSL.g:86:9: 'default'
+            // InternalSignalDSL.g:86:7: ( 'while' )
+            // InternalSignalDSL.g:86:9: 'while'
             {
-            match("default"); 
+            match("while"); 
 
 
             }
@@ -1712,10 +1710,10 @@
         try {
             int _type = T__89;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:87:7: ( 'case' )
-            // InternalSignalDSL.g:87:9: 'case'
+            // InternalSignalDSL.g:87:7: ( 'do' )
+            // InternalSignalDSL.g:87:9: 'do'
             {
-            match("case"); 
+            match("do"); 
 
 
             }
@@ -1733,10 +1731,10 @@
         try {
             int _type = T__90;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:88:7: ( 'while' )
-            // InternalSignalDSL.g:88:9: 'while'
+            // InternalSignalDSL.g:88:7: ( 'new' )
+            // InternalSignalDSL.g:88:9: 'new'
             {
-            match("while"); 
+            match("new"); 
 
 
             }
@@ -1754,10 +1752,10 @@
         try {
             int _type = T__91;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:89:7: ( 'do' )
-            // InternalSignalDSL.g:89:9: 'do'
+            // InternalSignalDSL.g:89:7: ( 'null' )
+            // InternalSignalDSL.g:89:9: 'null'
             {
-            match("do"); 
+            match("null"); 
 
 
             }
@@ -1775,10 +1773,10 @@
         try {
             int _type = T__92;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:90:7: ( 'new' )
-            // InternalSignalDSL.g:90:9: 'new'
+            // InternalSignalDSL.g:90:7: ( 'typeof' )
+            // InternalSignalDSL.g:90:9: 'typeof'
             {
-            match("new"); 
+            match("typeof"); 
 
 
             }
@@ -1796,10 +1794,10 @@
         try {
             int _type = T__93;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:91:7: ( 'null' )
-            // InternalSignalDSL.g:91:9: 'null'
+            // InternalSignalDSL.g:91:7: ( 'throw' )
+            // InternalSignalDSL.g:91:9: 'throw'
             {
-            match("null"); 
+            match("throw"); 
 
 
             }
@@ -1817,10 +1815,10 @@
         try {
             int _type = T__94;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:92:7: ( 'typeof' )
-            // InternalSignalDSL.g:92:9: 'typeof'
+            // InternalSignalDSL.g:92:7: ( 'return' )
+            // InternalSignalDSL.g:92:9: 'return'
             {
-            match("typeof"); 
+            match("return"); 
 
 
             }
@@ -1838,10 +1836,10 @@
         try {
             int _type = T__95;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:93:7: ( 'throw' )
-            // InternalSignalDSL.g:93:9: 'throw'
+            // InternalSignalDSL.g:93:7: ( 'try' )
+            // InternalSignalDSL.g:93:9: 'try'
             {
-            match("throw"); 
+            match("try"); 
 
 
             }
@@ -1859,10 +1857,10 @@
         try {
             int _type = T__96;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:94:7: ( 'return' )
-            // InternalSignalDSL.g:94:9: 'return'
+            // InternalSignalDSL.g:94:7: ( 'finally' )
+            // InternalSignalDSL.g:94:9: 'finally'
             {
-            match("return"); 
+            match("finally"); 
 
 
             }
@@ -1880,10 +1878,10 @@
         try {
             int _type = T__97;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:95:7: ( 'try' )
-            // InternalSignalDSL.g:95:9: 'try'
+            // InternalSignalDSL.g:95:7: ( 'synchronized' )
+            // InternalSignalDSL.g:95:9: 'synchronized'
             {
-            match("try"); 
+            match("synchronized"); 
 
 
             }
@@ -1901,10 +1899,10 @@
         try {
             int _type = T__98;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:96:7: ( 'finally' )
-            // InternalSignalDSL.g:96:9: 'finally'
+            // InternalSignalDSL.g:96:7: ( 'catch' )
+            // InternalSignalDSL.g:96:9: 'catch'
             {
-            match("finally"); 
+            match("catch"); 
 
 
             }
@@ -1922,11 +1920,10 @@
         try {
             int _type = T__99;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:97:7: ( 'synchronized' )
-            // InternalSignalDSL.g:97:9: 'synchronized'
+            // InternalSignalDSL.g:97:7: ( '?' )
+            // InternalSignalDSL.g:97:9: '?'
             {
-            match("synchronized"); 
-
+            match('?'); 
 
             }
 
@@ -1943,11 +1940,10 @@
         try {
             int _type = T__100;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:98:8: ( 'catch' )
-            // InternalSignalDSL.g:98:10: 'catch'
+            // InternalSignalDSL.g:98:8: ( '&' )
+            // InternalSignalDSL.g:98:10: '&'
             {
-            match("catch"); 
-
+            match('&'); 
 
             }
 
@@ -1964,10 +1960,11 @@
         try {
             int _type = T__101;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:99:8: ( '?' )
-            // InternalSignalDSL.g:99:10: '?'
+            // InternalSignalDSL.g:99:8: ( 'ns' )
+            // InternalSignalDSL.g:99:10: 'ns'
             {
-            match('?'); 
+            match("ns"); 
+
 
             }
 
@@ -1984,10 +1981,11 @@
         try {
             int _type = T__102;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:100:8: ( '&' )
-            // InternalSignalDSL.g:100:10: '&'
+            // InternalSignalDSL.g:100:8: ( '::' )
+            // InternalSignalDSL.g:100:10: '::'
             {
-            match('&'); 
+            match("::"); 
+
 
             }
 
@@ -2004,10 +2002,10 @@
         try {
             int _type = T__103;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:101:8: ( 'ns' )
-            // InternalSignalDSL.g:101:10: 'ns'
+            // InternalSignalDSL.g:101:8: ( '?.' )
+            // InternalSignalDSL.g:101:10: '?.'
             {
-            match("ns"); 
+            match("?."); 
 
 
             }
@@ -2025,11 +2023,10 @@
         try {
             int _type = T__104;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:102:8: ( '::' )
-            // InternalSignalDSL.g:102:10: '::'
+            // InternalSignalDSL.g:102:8: ( '|' )
+            // InternalSignalDSL.g:102:10: '|'
             {
-            match("::"); 
-
+            match('|'); 
 
             }
 
@@ -2046,10 +2043,10 @@
         try {
             int _type = T__105;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:103:8: ( '?.' )
-            // InternalSignalDSL.g:103:10: '?.'
+            // InternalSignalDSL.g:103:8: ( 'var' )
+            // InternalSignalDSL.g:103:10: 'var'
             {
-            match("?."); 
+            match("var"); 
 
 
             }
@@ -2067,49 +2064,8 @@
         try {
             int _type = T__106;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:104:8: ( '|' )
-            // InternalSignalDSL.g:104:10: '|'
-            {
-            match('|'); 
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__106"
-
-    // $ANTLR start "T__107"
-    public final void mT__107() throws RecognitionException {
-        try {
-            int _type = T__107;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:105:8: ( 'var' )
-            // InternalSignalDSL.g:105:10: 'var'
-            {
-            match("var"); 
-
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__107"
-
-    // $ANTLR start "T__108"
-    public final void mT__108() throws RecognitionException {
-        try {
-            int _type = T__108;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:106:8: ( 'true' )
-            // InternalSignalDSL.g:106:10: 'true'
+            // InternalSignalDSL.g:104:8: ( 'true' )
+            // InternalSignalDSL.g:104:10: 'true'
             {
             match("true"); 
 
@@ -2122,17 +2078,17 @@
         finally {
         }
     }
-    // $ANTLR end "T__108"
+    // $ANTLR end "T__106"
 
     // $ANTLR start "RULE_HEX"
     public final void mRULE_HEX() throws RecognitionException {
         try {
             int _type = RULE_HEX;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:19985:10: ( ( '0x' | '0X' ) ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+ ( '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) ) )? )
-            // InternalSignalDSL.g:19985:12: ( '0x' | '0X' ) ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+ ( '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) ) )?
+            // InternalSignalDSL.g:20255:10: ( ( '0x' | '0X' ) ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+ ( '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) ) )? )
+            // InternalSignalDSL.g:20255:12: ( '0x' | '0X' ) ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+ ( '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) ) )?
             {
-            // InternalSignalDSL.g:19985:12: ( '0x' | '0X' )
+            // InternalSignalDSL.g:20255:12: ( '0x' | '0X' )
             int alt1=2;
             int LA1_0 = input.LA(1);
 
@@ -2160,7 +2116,7 @@
             }
             switch (alt1) {
                 case 1 :
-                    // InternalSignalDSL.g:19985:13: '0x'
+                    // InternalSignalDSL.g:20255:13: '0x'
                     {
                     match("0x"); 
 
@@ -2168,7 +2124,7 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:19985:18: '0X'
+                    // InternalSignalDSL.g:20255:18: '0X'
                     {
                     match("0X"); 
 
@@ -2178,7 +2134,7 @@
 
             }
 
-            // InternalSignalDSL.g:19985:24: ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+
+            // InternalSignalDSL.g:20255:24: ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+
             int cnt2=0;
             loop2:
             do {
@@ -2216,7 +2172,7 @@
                 cnt2++;
             } while (true);
 
-            // InternalSignalDSL.g:19985:58: ( '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) ) )?
+            // InternalSignalDSL.g:20255:58: ( '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) ) )?
             int alt4=2;
             int LA4_0 = input.LA(1);
 
@@ -2225,10 +2181,10 @@
             }
             switch (alt4) {
                 case 1 :
-                    // InternalSignalDSL.g:19985:59: '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) )
+                    // InternalSignalDSL.g:20255:59: '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) )
                     {
                     match('#'); 
-                    // InternalSignalDSL.g:19985:63: ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) )
+                    // InternalSignalDSL.g:20255:63: ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) )
                     int alt3=2;
                     int LA3_0 = input.LA(1);
 
@@ -2246,7 +2202,7 @@
                     }
                     switch (alt3) {
                         case 1 :
-                            // InternalSignalDSL.g:19985:64: ( 'b' | 'B' ) ( 'i' | 'I' )
+                            // InternalSignalDSL.g:20255:64: ( 'b' | 'B' ) ( 'i' | 'I' )
                             {
                             if ( input.LA(1)=='B'||input.LA(1)=='b' ) {
                                 input.consume();
@@ -2270,7 +2226,7 @@
                             }
                             break;
                         case 2 :
-                            // InternalSignalDSL.g:19985:84: ( 'l' | 'L' )
+                            // InternalSignalDSL.g:20255:84: ( 'l' | 'L' )
                             {
                             if ( input.LA(1)=='L'||input.LA(1)=='l' ) {
                                 input.consume();
@@ -2309,11 +2265,11 @@
         try {
             int _type = RULE_INT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:19987:10: ( '0' .. '9' ( '0' .. '9' | '_' )* )
-            // InternalSignalDSL.g:19987:12: '0' .. '9' ( '0' .. '9' | '_' )*
+            // InternalSignalDSL.g:20257:10: ( '0' .. '9' ( '0' .. '9' | '_' )* )
+            // InternalSignalDSL.g:20257:12: '0' .. '9' ( '0' .. '9' | '_' )*
             {
             matchRange('0','9'); 
-            // InternalSignalDSL.g:19987:21: ( '0' .. '9' | '_' )*
+            // InternalSignalDSL.g:20257:21: ( '0' .. '9' | '_' )*
             loop5:
             do {
                 int alt5=2;
@@ -2362,11 +2318,11 @@
         try {
             int _type = RULE_DECIMAL;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:19989:14: ( RULE_INT ( ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT )? ( ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' ) | ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' ) )? )
-            // InternalSignalDSL.g:19989:16: RULE_INT ( ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT )? ( ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' ) | ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' ) )?
+            // InternalSignalDSL.g:20259:14: ( RULE_INT ( ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT )? ( ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' ) | ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' ) )? )
+            // InternalSignalDSL.g:20259:16: RULE_INT ( ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT )? ( ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' ) | ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' ) )?
             {
             mRULE_INT(); 
-            // InternalSignalDSL.g:19989:25: ( ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT )?
+            // InternalSignalDSL.g:20259:25: ( ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT )?
             int alt7=2;
             int LA7_0 = input.LA(1);
 
@@ -2375,7 +2331,7 @@
             }
             switch (alt7) {
                 case 1 :
-                    // InternalSignalDSL.g:19989:26: ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT
+                    // InternalSignalDSL.g:20259:26: ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT
                     {
                     if ( input.LA(1)=='E'||input.LA(1)=='e' ) {
                         input.consume();
@@ -2386,7 +2342,7 @@
                         recover(mse);
                         throw mse;}
 
-                    // InternalSignalDSL.g:19989:36: ( '+' | '-' )?
+                    // InternalSignalDSL.g:20259:36: ( '+' | '-' )?
                     int alt6=2;
                     int LA6_0 = input.LA(1);
 
@@ -2419,7 +2375,7 @@
 
             }
 
-            // InternalSignalDSL.g:19989:58: ( ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' ) | ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' ) )?
+            // InternalSignalDSL.g:20259:58: ( ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' ) | ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' ) )?
             int alt8=3;
             int LA8_0 = input.LA(1);
 
@@ -2431,7 +2387,7 @@
             }
             switch (alt8) {
                 case 1 :
-                    // InternalSignalDSL.g:19989:59: ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' )
+                    // InternalSignalDSL.g:20259:59: ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' )
                     {
                     if ( input.LA(1)=='B'||input.LA(1)=='b' ) {
                         input.consume();
@@ -2455,7 +2411,7 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:19989:87: ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' )
+                    // InternalSignalDSL.g:20259: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();
@@ -2488,10 +2444,10 @@
         try {
             int _type = RULE_ID;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:19991:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '0' .. '9' )* )
-            // InternalSignalDSL.g:19991:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '0' .. '9' )*
+            // InternalSignalDSL.g:20261:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '0' .. '9' )* )
+            // InternalSignalDSL.g:20261:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '0' .. '9' )*
             {
-            // InternalSignalDSL.g:19991:11: ( '^' )?
+            // InternalSignalDSL.g:20261:11: ( '^' )?
             int alt9=2;
             int LA9_0 = input.LA(1);
 
@@ -2500,7 +2456,7 @@
             }
             switch (alt9) {
                 case 1 :
-                    // InternalSignalDSL.g:19991:11: '^'
+                    // InternalSignalDSL.g:20261:11: '^'
                     {
                     match('^'); 
 
@@ -2518,7 +2474,7 @@
                 recover(mse);
                 throw mse;}
 
-            // InternalSignalDSL.g:19991:44: ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '0' .. '9' )*
+            // InternalSignalDSL.g:20261:44: ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '0' .. '9' )*
             loop10:
             do {
                 int alt10=2;
@@ -2567,10 +2523,10 @@
         try {
             int _type = RULE_STRING;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:19993:13: ( ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )? | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )? ) )
-            // InternalSignalDSL.g:19993:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )? | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )? )
+            // InternalSignalDSL.g:20263:13: ( ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )? | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )? ) )
+            // InternalSignalDSL.g:20263:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )? | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )? )
             {
-            // InternalSignalDSL.g:19993:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )? | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )? )
+            // InternalSignalDSL.g:20263:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )? | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )? )
             int alt15=2;
             int LA15_0 = input.LA(1);
 
@@ -2588,10 +2544,10 @@
             }
             switch (alt15) {
                 case 1 :
-                    // InternalSignalDSL.g:19993:16: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )?
+                    // InternalSignalDSL.g:20263:16: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )?
                     {
                     match('\"'); 
-                    // InternalSignalDSL.g:19993:20: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )*
+                    // InternalSignalDSL.g:20263:20: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )*
                     loop11:
                     do {
                         int alt11=3;
@@ -2607,7 +2563,7 @@
 
                         switch (alt11) {
                     	case 1 :
-                    	    // InternalSignalDSL.g:19993:21: '\\\\' .
+                    	    // InternalSignalDSL.g:20263:21: '\\\\' .
                     	    {
                     	    match('\\'); 
                     	    matchAny(); 
@@ -2615,7 +2571,7 @@
                     	    }
                     	    break;
                     	case 2 :
-                    	    // InternalSignalDSL.g:19993:28: ~ ( ( '\\\\' | '\"' ) )
+                    	    // InternalSignalDSL.g:20263:28: ~ ( ( '\\\\' | '\"' ) )
                     	    {
                     	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
                     	        input.consume();
@@ -2635,7 +2591,7 @@
                         }
                     } while (true);
 
-                    // InternalSignalDSL.g:19993:44: ( '\"' )?
+                    // InternalSignalDSL.g:20263:44: ( '\"' )?
                     int alt12=2;
                     int LA12_0 = input.LA(1);
 
@@ -2644,7 +2600,7 @@
                     }
                     switch (alt12) {
                         case 1 :
-                            // InternalSignalDSL.g:19993:44: '\"'
+                            // InternalSignalDSL.g:20263:44: '\"'
                             {
                             match('\"'); 
 
@@ -2657,10 +2613,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:19993:49: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )?
+                    // InternalSignalDSL.g:20263:49: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )?
                     {
                     match('\''); 
-                    // InternalSignalDSL.g:19993:54: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )*
+                    // InternalSignalDSL.g:20263:54: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )*
                     loop13:
                     do {
                         int alt13=3;
@@ -2676,7 +2632,7 @@
 
                         switch (alt13) {
                     	case 1 :
-                    	    // InternalSignalDSL.g:19993:55: '\\\\' .
+                    	    // InternalSignalDSL.g:20263:55: '\\\\' .
                     	    {
                     	    match('\\'); 
                     	    matchAny(); 
@@ -2684,7 +2640,7 @@
                     	    }
                     	    break;
                     	case 2 :
-                    	    // InternalSignalDSL.g:19993:62: ~ ( ( '\\\\' | '\\'' ) )
+                    	    // InternalSignalDSL.g:20263:62: ~ ( ( '\\\\' | '\\'' ) )
                     	    {
                     	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='&')||(input.LA(1)>='(' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
                     	        input.consume();
@@ -2704,7 +2660,7 @@
                         }
                     } while (true);
 
-                    // InternalSignalDSL.g:19993:79: ( '\\'' )?
+                    // InternalSignalDSL.g:20263:79: ( '\\'' )?
                     int alt14=2;
                     int LA14_0 = input.LA(1);
 
@@ -2713,7 +2669,7 @@
                     }
                     switch (alt14) {
                         case 1 :
-                            // InternalSignalDSL.g:19993:79: '\\''
+                            // InternalSignalDSL.g:20263:79: '\\''
                             {
                             match('\''); 
 
@@ -2744,12 +2700,12 @@
         try {
             int _type = RULE_ML_COMMENT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:19995:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
-            // InternalSignalDSL.g:19995:19: '/*' ( options {greedy=false; } : . )* '*/'
+            // InternalSignalDSL.g:20265:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
+            // InternalSignalDSL.g:20265:19: '/*' ( options {greedy=false; } : . )* '*/'
             {
             match("/*"); 
 
-            // InternalSignalDSL.g:19995:24: ( options {greedy=false; } : . )*
+            // InternalSignalDSL.g:20265:24: ( options {greedy=false; } : . )*
             loop16:
             do {
                 int alt16=2;
@@ -2774,7 +2730,7 @@
 
                 switch (alt16) {
             	case 1 :
-            	    // InternalSignalDSL.g:19995:52: .
+            	    // InternalSignalDSL.g:20265:52: .
             	    {
             	    matchAny(); 
 
@@ -2804,12 +2760,12 @@
         try {
             int _type = RULE_SL_COMMENT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:19997:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
-            // InternalSignalDSL.g:19997:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
+            // InternalSignalDSL.g:20267:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
+            // InternalSignalDSL.g:20267:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
             {
             match("//"); 
 
-            // InternalSignalDSL.g:19997:24: (~ ( ( '\\n' | '\\r' ) ) )*
+            // InternalSignalDSL.g:20267:24: (~ ( ( '\\n' | '\\r' ) ) )*
             loop17:
             do {
                 int alt17=2;
@@ -2822,7 +2778,7 @@
 
                 switch (alt17) {
             	case 1 :
-            	    // InternalSignalDSL.g:19997:24: ~ ( ( '\\n' | '\\r' ) )
+            	    // InternalSignalDSL.g:20267: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();
@@ -2842,7 +2798,7 @@
                 }
             } while (true);
 
-            // InternalSignalDSL.g:19997:40: ( ( '\\r' )? '\\n' )?
+            // InternalSignalDSL.g:20267:40: ( ( '\\r' )? '\\n' )?
             int alt19=2;
             int LA19_0 = input.LA(1);
 
@@ -2851,9 +2807,9 @@
             }
             switch (alt19) {
                 case 1 :
-                    // InternalSignalDSL.g:19997:41: ( '\\r' )? '\\n'
+                    // InternalSignalDSL.g:20267:41: ( '\\r' )? '\\n'
                     {
-                    // InternalSignalDSL.g:19997:41: ( '\\r' )?
+                    // InternalSignalDSL.g:20267:41: ( '\\r' )?
                     int alt18=2;
                     int LA18_0 = input.LA(1);
 
@@ -2862,7 +2818,7 @@
                     }
                     switch (alt18) {
                         case 1 :
-                            // InternalSignalDSL.g:19997:41: '\\r'
+                            // InternalSignalDSL.g:20267:41: '\\r'
                             {
                             match('\r'); 
 
@@ -2894,10 +2850,10 @@
         try {
             int _type = RULE_WS;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:19999:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
-            // InternalSignalDSL.g:19999:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+            // InternalSignalDSL.g:20269:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
+            // InternalSignalDSL.g:20269:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
             {
-            // InternalSignalDSL.g:19999:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+            // InternalSignalDSL.g:20269:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
             int cnt20=0;
             loop20:
             do {
@@ -2951,8 +2907,8 @@
         try {
             int _type = RULE_ANY_OTHER;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:20001:16: ( . )
-            // InternalSignalDSL.g:20001:18: .
+            // InternalSignalDSL.g:20271:16: ( . )
+            // InternalSignalDSL.g:20271:18: .
             {
             matchAny(); 
 
@@ -2967,8 +2923,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 | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_ID | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER )
-        int alt21=105;
+        // 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 | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_ID | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER )
+        int alt21=103;
         alt21 = dfa21.predict(input);
         switch (alt21) {
             case 1 :
@@ -3630,77 +3586,63 @@
                 }
                 break;
             case 95 :
-                // InternalSignalDSL.g:1:581: T__107
-                {
-                mT__107(); 
-
-                }
-                break;
-            case 96 :
-                // InternalSignalDSL.g:1:588: T__108
-                {
-                mT__108(); 
-
-                }
-                break;
-            case 97 :
-                // InternalSignalDSL.g:1:595: RULE_HEX
+                // InternalSignalDSL.g:1:581: RULE_HEX
                 {
                 mRULE_HEX(); 
 
                 }
                 break;
-            case 98 :
-                // InternalSignalDSL.g:1:604: RULE_INT
+            case 96 :
+                // InternalSignalDSL.g:1:590: RULE_INT
                 {
                 mRULE_INT(); 
 
                 }
                 break;
-            case 99 :
-                // InternalSignalDSL.g:1:613: RULE_DECIMAL
+            case 97 :
+                // InternalSignalDSL.g:1:599: RULE_DECIMAL
                 {
                 mRULE_DECIMAL(); 
 
                 }
                 break;
-            case 100 :
-                // InternalSignalDSL.g:1:626: RULE_ID
+            case 98 :
+                // InternalSignalDSL.g:1:612: RULE_ID
                 {
                 mRULE_ID(); 
 
                 }
                 break;
-            case 101 :
-                // InternalSignalDSL.g:1:634: RULE_STRING
+            case 99 :
+                // InternalSignalDSL.g:1:620: RULE_STRING
                 {
                 mRULE_STRING(); 
 
                 }
                 break;
-            case 102 :
-                // InternalSignalDSL.g:1:646: RULE_ML_COMMENT
+            case 100 :
+                // InternalSignalDSL.g:1:632: RULE_ML_COMMENT
                 {
                 mRULE_ML_COMMENT(); 
 
                 }
                 break;
-            case 103 :
-                // InternalSignalDSL.g:1:662: RULE_SL_COMMENT
+            case 101 :
+                // InternalSignalDSL.g:1:648: RULE_SL_COMMENT
                 {
                 mRULE_SL_COMMENT(); 
 
                 }
                 break;
-            case 104 :
-                // InternalSignalDSL.g:1:678: RULE_WS
+            case 102 :
+                // InternalSignalDSL.g:1:664: RULE_WS
                 {
                 mRULE_WS(); 
 
                 }
                 break;
-            case 105 :
-                // InternalSignalDSL.g:1:686: RULE_ANY_OTHER
+            case 103 :
+                // InternalSignalDSL.g:1:672: RULE_ANY_OTHER
                 {
                 mRULE_ANY_OTHER(); 
 
@@ -3714,46 +3656,49 @@
 
     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\12\123\2\uffff\2\123\10\uffff\1\170\3\123\2\u0082\1\57\5\uffff\1\u0087\26\uffff\1\u0089\5\uffff\1\u008b\4\uffff\1\123\1\uffff\11\123\1\u0097\4\123\1\u009c\4\123\1\u00a5\2\123\2\uffff\3\123\12\uffff\2\123\1\u00ad\4\123\1\uffff\1\u0082\12\uffff\1\u00b3\1\u00b4\11\123\1\uffff\1\123\1\u00bf\1\123\1\u00c1\1\uffff\10\123\1\uffff\5\123\1\u00cf\1\123\1\uffff\2\123\1\u00d3\2\123\2\uffff\1\123\1\u00d7\2\123\1\u00db\5\123\1\uffff\1\123\1\uffff\1\123\1\u00e3\13\123\1\uffff\1\u00ef\2\123\1\uffff\1\u00f2\2\123\1\uffff\1\123\1\u00f7\1\123\1\uffff\4\123\1\u00fd\2\123\1\uffff\1\u0100\10\123\1\u0109\1\123\1\uffff\1\123\1\u010c\1\uffff\3\123\1\u0110\1\uffff\1\123\1\u0114\1\123\1\u0116\1\123\1\uffff\2\123\1\uffff\10\123\1\uffff\1\123\1\u0123\1\uffff\1\u0124\1\u0125\1\123\1\uffff\3\123\1\uffff\1\123\1\uffff\1\123\1\u012c\3\123\1\u0130\1\u0134\2\123\1\u0137\1\u0138\1\123\3\uffff\6\123\1\uffff\3\123\1\uffff\3\123\1\uffff\1\u0149\1\123\2\uffff\1\123\1\u014c\16\123\1\uffff\1\u015b\1\u015c\1\uffff\4\123\1\u0161\11\123\2\uffff\4\123\1\uffff\11\123\1\u0178\1\u0179\1\u017a\1\u017b\11\123\4\uffff\1\u0185\1\u0186\1\u0187\1\u0188\1\u0189\1\u018a\3\123\6\uffff\1\u018e\1\u018f\1\u0190\3\uffff";
+        "\1\uffff\1\65\1\67\1\71\1\74\1\100\1\103\1\107\1\111\1\113\1\115\1\117\1\121\1\124\14\126\2\uffff\3\126\10\uffff\1\175\3\126\2\u0087\1\62\5\uffff\1\u008c\26\uffff\1\u008e\5\uffff\1\u0090\4\uffff\1\126\1\uffff\10\126\1\u009b\6\126\1\u00a4\4\126\1\u00ac\2\126\2\uffff\4\126\12\uffff\2\126\1\u00b5\4\126\1\uffff\1\u0087\12\uffff\1\u00bb\1\u00bc\10\126\1\uffff\1\126\1\u00c6\4\126\1\u00cb\1\126\1\uffff\7\126\1\uffff\6\126\1\u00da\1\126\1\uffff\2\126\1\u00de\2\126\2\uffff\1\126\1\u00e2\7\126\1\uffff\4\126\1\uffff\2\126\1\u00f0\13\126\1\uffff\1\u00fc\2\126\1\uffff\1\u00ff\2\126\1\uffff\1\126\1\u0104\1\u0106\3\126\1\u010a\6\126\1\uffff\1\u0111\7\126\1\u0119\2\126\1\uffff\1\126\1\u011d\1\uffff\3\126\1\u0121\1\uffff\1\126\1\uffff\1\u0123\1\u0124\1\126\1\uffff\2\126\1\u0128\1\u0129\1\u012a\1\126\1\uffff\7\126\1\uffff\2\126\1\u0135\1\uffff\1\u0136\1\u0137\1\126\1\uffff\1\126\2\uffff\2\126\1\u013c\3\uffff\3\126\1\u0140\1\u0144\1\126\1\u0146\1\u0147\1\u0148\1\126\3\uffff\3\126\1\u014d\1\uffff\3\126\1\uffff\3\126\1\uffff\1\126\3\uffff\1\126\1\u0156\2\126\1\uffff\6\126\1\u015f\1\126\1\uffff\1\126\1\u0162\6\126\1\uffff\2\126\1\uffff\7\126\1\u0172\6\126\1\u0179\1\uffff\1\u017a\1\u017b\1\u017c\1\u017d\1\u017e\1\u017f\7\uffff";
     static final String DFA21_eofS =
-        "\u0191\uffff";
+        "\u0180\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\150\1\146\1\141\1\154\1\141\1\157\1\145\1\141\2\uffff\2\141\10\uffff\1\72\1\145\1\150\1\145\2\60\1\44\5\uffff\1\75\26\uffff\1\75\5\uffff\1\74\4\uffff\1\154\1\uffff\1\164\1\163\1\141\1\160\1\157\1\151\1\156\1\160\1\163\1\44\1\154\1\162\1\156\1\154\1\44\1\145\1\163\1\144\1\146\1\44\1\162\1\143\2\uffff\1\164\1\151\1\156\12\uffff\1\167\1\154\1\44\1\160\1\162\1\165\1\164\1\uffff\1\60\12\uffff\2\44\2\145\1\164\1\145\1\167\1\164\1\143\1\157\1\164\1\uffff\1\163\1\44\1\141\1\44\1\uffff\1\141\1\145\1\143\1\151\1\145\1\141\1\146\1\145\1\uffff\1\145\1\153\1\143\1\154\1\144\1\44\1\154\1\uffff\1\145\1\157\1\44\1\145\1\165\2\uffff\1\156\1\44\1\151\1\162\1\44\1\143\1\150\1\162\1\141\1\145\1\uffff\1\154\1\uffff\1\164\1\44\1\150\1\146\1\164\1\165\1\164\1\146\1\143\1\141\1\150\1\145\1\154\1\uffff\1\44\1\157\1\167\1\uffff\1\44\1\162\1\144\1\uffff\1\143\1\44\1\156\1\uffff\1\150\1\162\1\164\1\156\1\44\1\154\1\145\1\uffff\1\44\1\171\1\145\1\154\1\145\1\157\1\164\1\147\1\145\1\44\1\145\1\uffff\1\146\1\44\1\uffff\1\156\1\163\1\151\1\44\1\uffff\1\103\1\44\1\157\1\44\1\143\1\uffff\1\171\1\123\1\uffff\2\123\1\164\2\162\1\157\1\145\1\162\1\uffff\1\162\1\44\1\uffff\2\44\1\157\1\uffff\1\162\1\145\1\157\1\uffff\1\156\1\uffff\1\145\1\44\3\151\2\44\1\145\1\162\2\44\1\117\3\uffff\1\156\1\145\1\154\1\144\1\151\1\157\1\uffff\3\147\1\uffff\1\162\1\145\1\157\1\uffff\1\44\1\171\2\uffff\1\156\1\44\1\141\1\145\1\151\1\172\1\146\3\156\1\145\1\154\1\144\1\162\1\157\1\145\1\uffff\2\44\1\uffff\2\164\1\146\1\145\1\44\4\141\1\145\1\151\1\145\1\144\1\154\2\uffff\2\145\1\171\1\144\1\uffff\3\154\2\164\1\146\1\141\1\151\1\145\4\44\3\163\2\145\1\171\1\164\1\146\1\164\4\uffff\6\44\1\145\1\171\1\145\6\uffff\3\44\3\uffff";
+        "\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\164\1\146\1\141\1\155\1\170\1\154\1\141\1\157\1\145\1\141\2\uffff\3\141\10\uffff\1\72\1\145\1\150\1\145\2\60\1\44\5\uffff\1\75\26\uffff\1\75\5\uffff\1\74\4\uffff\1\154\1\uffff\1\164\1\163\1\141\1\160\1\156\1\151\1\160\1\163\1\44\1\154\1\162\1\154\2\160\1\154\1\44\1\145\1\163\1\144\1\146\1\44\1\162\1\143\2\uffff\1\164\1\151\1\156\1\164\12\uffff\1\167\1\154\1\44\1\160\1\162\1\165\1\164\1\uffff\1\60\12\uffff\2\44\2\145\1\164\1\145\1\143\1\164\1\157\1\164\1\uffff\1\163\1\44\1\145\1\141\2\157\1\44\1\156\1\uffff\1\141\1\145\1\143\1\151\1\145\1\141\1\146\1\uffff\1\145\1\153\1\143\1\154\1\144\1\141\1\44\1\154\1\uffff\1\145\1\157\1\44\1\145\1\165\2\uffff\1\156\1\44\1\151\1\162\1\150\1\143\1\162\1\141\1\145\1\uffff\1\115\1\154\2\162\1\uffff\1\143\1\164\1\44\1\150\1\146\1\164\1\165\1\164\1\143\1\141\1\150\1\145\1\154\1\124\1\uffff\1\44\1\157\1\167\1\uffff\1\44\1\162\1\144\1\uffff\1\143\2\44\1\150\1\164\1\156\1\44\1\141\1\154\2\164\1\150\1\145\1\uffff\1\44\1\171\1\145\1\154\1\145\1\164\1\147\1\145\1\44\1\145\1\162\1\uffff\1\146\1\44\1\uffff\1\156\1\163\1\151\1\44\1\uffff\1\157\1\uffff\2\44\1\143\1\uffff\1\163\1\171\3\44\1\123\1\uffff\2\123\1\164\1\162\1\157\1\145\1\162\1\uffff\1\162\1\141\1\44\1\uffff\2\44\1\157\1\uffff\1\156\2\uffff\1\145\1\153\1\44\3\uffff\3\151\2\44\1\162\3\44\1\156\3\uffff\1\156\1\151\1\157\1\44\1\uffff\3\147\1\uffff\1\157\1\162\1\145\1\uffff\1\171\3\uffff\1\163\1\44\1\172\1\146\1\uffff\3\156\1\144\1\145\1\154\1\44\1\146\1\uffff\1\145\1\44\3\141\1\151\1\141\1\145\1\uffff\1\145\1\144\1\uffff\3\154\1\146\2\164\1\162\1\44\3\163\1\171\2\145\1\44\1\uffff\6\44\7\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\157\1\163\1\162\2\157\1\141\2\uffff\1\150\1\141\10\uffff\1\72\1\165\1\171\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\157\1\151\1\156\1\160\1\163\1\172\1\154\1\162\1\156\1\154\1\172\1\145\1\164\1\144\1\154\1\172\1\162\1\143\2\uffff\1\164\1\151\1\156\12\uffff\1\167\1\154\1\172\1\160\1\162\1\171\1\164\1\uffff\1\154\12\uffff\2\172\2\145\1\164\1\145\1\167\1\164\1\143\1\157\1\164\1\uffff\1\163\1\172\1\141\1\172\1\uffff\1\141\1\145\1\143\1\151\1\145\1\141\1\146\1\145\1\uffff\1\145\1\153\1\143\1\154\1\144\1\172\1\154\1\uffff\1\145\1\157\1\172\1\145\1\165\2\uffff\1\156\1\172\1\151\1\162\1\172\1\143\1\150\1\162\1\141\1\145\1\uffff\1\154\1\uffff\1\164\1\172\1\150\1\146\1\164\1\165\1\164\1\146\1\143\1\141\1\150\1\145\1\154\1\uffff\1\172\1\157\1\167\1\uffff\1\172\1\162\1\163\1\uffff\1\143\1\172\1\156\1\uffff\1\150\1\162\1\164\1\156\1\172\1\154\1\145\1\uffff\1\172\1\171\1\145\1\154\1\145\1\157\1\164\1\147\1\145\1\172\1\145\1\uffff\1\146\1\172\1\uffff\1\156\1\163\1\151\1\172\1\uffff\1\115\1\172\1\157\1\172\1\143\1\uffff\1\171\1\123\1\uffff\2\123\1\164\2\162\1\157\1\145\1\162\1\uffff\1\162\1\172\1\uffff\2\172\1\157\1\uffff\1\162\1\145\1\157\1\uffff\1\156\1\uffff\1\145\1\172\3\151\2\172\1\145\1\162\2\172\1\117\3\uffff\1\156\1\145\1\154\1\144\1\151\1\157\1\uffff\3\147\1\uffff\1\162\1\145\1\157\1\uffff\1\172\1\171\2\uffff\1\156\1\172\1\141\1\145\1\151\1\172\1\146\3\156\1\145\1\154\1\144\1\162\1\157\1\145\1\uffff\2\172\1\uffff\2\164\1\146\1\145\1\172\4\141\1\145\1\151\1\145\1\144\1\154\2\uffff\2\145\1\171\1\144\1\uffff\3\154\2\164\1\146\1\141\1\151\1\145\4\172\3\163\2\145\1\171\1\164\1\146\1\164\4\uffff\6\172\1\145\1\171\1\145\6\uffff\3\172\3\uffff";
+        "\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\157\1\155\1\170\1\163\1\162\2\157\1\141\2\uffff\1\150\2\141\10\uffff\1\72\1\165\1\171\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\156\1\151\1\160\1\163\1\172\1\154\1\162\1\156\2\160\1\154\1\172\1\145\1\164\1\144\1\154\1\172\1\162\1\143\2\uffff\1\164\1\151\1\156\1\164\12\uffff\1\167\1\154\1\172\1\160\1\162\1\171\1\164\1\uffff\1\154\12\uffff\2\172\2\145\1\164\1\145\1\143\1\164\1\157\1\164\1\uffff\1\163\1\172\1\145\1\141\2\157\1\172\1\156\1\uffff\1\141\1\145\1\143\1\151\1\145\1\141\1\146\1\uffff\1\145\1\153\1\143\1\154\1\144\1\141\1\172\1\154\1\uffff\1\145\1\157\1\172\1\145\1\165\2\uffff\1\156\1\172\1\151\1\162\1\150\1\143\1\162\1\141\1\145\1\uffff\1\115\1\154\2\162\1\uffff\1\143\1\164\1\172\1\150\1\146\1\164\1\165\1\164\1\143\1\141\1\150\1\145\1\154\1\124\1\uffff\1\172\1\157\1\167\1\uffff\1\172\1\162\1\163\1\uffff\1\143\2\172\1\150\1\164\1\156\1\172\1\141\1\154\2\164\1\150\1\145\1\uffff\1\172\1\171\1\145\1\154\1\145\1\164\1\147\1\145\1\172\1\145\1\162\1\uffff\1\146\1\172\1\uffff\1\156\1\163\1\151\1\172\1\uffff\1\157\1\uffff\2\172\1\143\1\uffff\1\163\1\171\3\172\1\123\1\uffff\2\123\1\164\1\162\1\157\1\145\1\162\1\uffff\1\162\1\141\1\172\1\uffff\2\172\1\157\1\uffff\1\156\2\uffff\1\145\1\153\1\172\3\uffff\3\151\2\172\1\162\3\172\1\156\3\uffff\1\156\1\151\1\157\1\172\1\uffff\3\147\1\uffff\1\157\1\162\1\145\1\uffff\1\171\3\uffff\1\163\2\172\1\146\1\uffff\3\156\1\144\1\145\1\154\1\172\1\146\1\uffff\1\145\1\172\3\141\1\151\1\141\1\145\1\uffff\1\145\1\144\1\uffff\3\154\1\146\2\164\1\162\1\172\3\163\1\171\2\145\1\172\1\uffff\6\172\7\uffff";
     static final String DFA21_acceptS =
-        "\30\uffff\1\70\1\71\2\uffff\1\76\1\77\1\100\1\101\1\102\1\103\1\104\1\105\7\uffff\1\144\2\145\1\150\1\151\1\uffff\1\23\1\1\1\2\1\136\1\3\1\132\1\4\1\35\1\26\1\5\1\20\1\36\1\27\1\6\1\31\1\30\1\7\1\146\1\147\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\135\1\131\1\uffff\1\144\26\uffff\1\70\1\71\3\uffff\1\76\1\77\1\100\1\101\1\102\1\103\1\104\1\105\1\134\1\113\7\uffff\1\141\1\uffff\1\142\1\143\1\145\1\150\1\13\1\11\1\14\1\12\1\21\1\22\13\uffff\1\110\4\uffff\1\107\10\uffff\1\117\7\uffff\1\133\5\uffff\1\40\1\137\12\uffff\1\74\1\uffff\1\47\15\uffff\1\120\3\uffff\1\125\3\uffff\1\111\3\uffff\1\53\7\uffff\1\115\13\uffff\1\121\2\uffff\1\140\4\uffff\1\45\5\uffff\1\46\2\uffff\1\130\10\uffff\1\116\2\uffff\1\123\3\uffff\1\42\3\uffff\1\112\1\uffff\1\43\14\uffff\1\122\1\124\1\41\6\uffff\1\126\3\uffff\1\114\3\uffff\1\57\2\uffff\1\67\1\72\20\uffff\1\63\2\uffff\1\44\16\uffff\1\73\1\75\4\uffff\1\106\26\uffff\1\54\1\55\1\56\1\127\11\uffff\1\50\1\51\1\52\1\60\1\61\1\62\3\uffff\1\64\1\65\1\66";
+        "\32\uffff\1\64\1\65\3\uffff\1\74\1\75\1\76\1\77\1\100\1\101\1\102\1\103\7\uffff\1\142\2\143\1\146\1\147\1\uffff\1\23\1\1\1\2\1\134\1\3\1\130\1\4\1\35\1\26\1\5\1\20\1\36\1\27\1\6\1\31\1\30\1\7\1\144\1\145\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\133\1\127\1\uffff\1\142\27\uffff\1\64\1\65\4\uffff\1\74\1\75\1\76\1\77\1\100\1\101\1\102\1\103\1\132\1\111\7\uffff\1\137\1\uffff\1\140\1\141\1\143\1\146\1\13\1\11\1\14\1\12\1\21\1\22\12\uffff\1\106\10\uffff\1\105\7\uffff\1\115\10\uffff\1\131\5\uffff\1\40\1\135\11\uffff\1\70\4\uffff\1\51\16\uffff\1\116\3\uffff\1\123\3\uffff\1\107\15\uffff\1\113\13\uffff\1\117\2\uffff\1\136\4\uffff\1\45\1\uffff\1\61\3\uffff\1\46\6\uffff\1\126\7\uffff\1\114\3\uffff\1\121\3\uffff\1\42\1\uffff\1\110\1\43\3\uffff\1\47\1\50\1\62\12\uffff\1\120\1\122\1\41\4\uffff\1\124\3\uffff\1\112\3\uffff\1\55\1\uffff\1\63\1\66\1\71\4\uffff\1\72\10\uffff\1\44\10\uffff\1\67\2\uffff\1\104\17\uffff\1\125\6\uffff\1\73\1\52\1\53\1\54\1\56\1\57\1\60";
     static final String DFA21_specialS =
-        "\1\0\u0190\uffff}>";
+        "\1\0\u017f\uffff}>";
     static final String[] DFA21_transitionS = {
-            "\11\57\2\56\2\57\1\56\22\57\1\56\1\11\1\54\1\42\1\53\1\10\1\3\1\55\1\36\1\37\1\6\1\4\1\40\1\5\1\14\1\7\1\50\11\51\1\44\1\34\1\13\1\1\1\12\1\15\1\35\32\53\1\43\1\57\1\41\1\52\1\53\1\57\1\23\1\53\1\24\1\26\1\17\1\22\1\53\1\33\1\21\3\53\1\25\1\45\1\53\1\27\1\53\1\47\1\20\1\46\1\53\1\16\1\32\3\53\1\30\1\2\1\31\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\113",
-            "\1\115",
-            "\1\120\13\uffff\1\117",
-            "\1\122",
-            "\1\125\13\uffff\1\124",
-            "\1\130\13\uffff\1\126\1\127\1\uffff\1\131\1\uffff\1\132",
-            "\1\135\6\uffff\1\133\1\134",
-            "\1\136\7\uffff\1\140\5\uffff\1\137",
-            "\1\141\6\uffff\1\142",
-            "\1\144\20\uffff\1\143",
-            "\1\145",
-            "\1\146\3\uffff\1\150\5\uffff\1\147",
+            "\11\62\2\61\2\62\1\61\22\62\1\61\1\11\1\57\1\45\1\56\1\10\1\3\1\60\1\41\1\42\1\6\1\4\1\43\1\5\1\14\1\7\1\53\11\54\1\47\1\37\1\13\1\1\1\12\1\15\1\40\3\56\1\36\1\24\3\56\1\23\21\56\1\46\1\62\1\44\1\55\1\56\1\62\1\25\1\56\1\26\1\30\1\17\1\22\1\56\1\35\1\21\3\56\1\27\1\50\1\56\1\31\1\56\1\52\1\20\1\51\1\56\1\16\1\34\3\56\1\32\1\2\1\33\uff82\62",
+            "\1\63\1\64",
+            "\1\66",
+            "\1\70",
+            "\1\73\21\uffff\1\72",
+            "\1\77\17\uffff\1\75\1\76",
+            "\1\102\22\uffff\1\101",
+            "\1\105\4\uffff\1\106\15\uffff\1\104",
+            "\1\110",
+            "\1\112",
+            "\1\114",
+            "\1\116",
+            "\1\120",
+            "\1\123\13\uffff\1\122",
+            "\1\125",
+            "\1\130\13\uffff\1\127",
+            "\1\131\1\132\1\uffff\1\134\1\uffff\1\133",
+            "\1\137\6\uffff\1\135\1\136",
+            "\1\140\7\uffff\1\142\5\uffff\1\141",
+            "\1\143",
+            "\1\144",
+            "\1\145\6\uffff\1\146",
+            "\1\150\20\uffff\1\147",
             "\1\151",
+            "\1\152\3\uffff\1\154\5\uffff\1\153",
+            "\1\155",
             "",
             "",
-            "\1\154\6\uffff\1\155",
-            "\1\156",
+            "\1\160\6\uffff\1\161",
+            "\1\162",
+            "\1\163",
             "",
             "",
             "",
@@ -3762,19 +3707,19 @@
             "",
             "",
             "",
-            "\1\167",
-            "\1\171\15\uffff\1\173\1\uffff\1\172",
-            "\1\175\11\uffff\1\176\6\uffff\1\174",
-            "\1\177",
-            "\12\u0081\10\uffff\1\u0083\1\uffff\3\u0083\5\uffff\1\u0083\13\uffff\1\u0080\6\uffff\1\u0081\2\uffff\1\u0083\1\uffff\3\u0083\5\uffff\1\u0083\13\uffff\1\u0080",
-            "\12\u0081\10\uffff\1\u0083\1\uffff\3\u0083\5\uffff\1\u0083\22\uffff\1\u0081\2\uffff\1\u0083\1\uffff\3\u0083\5\uffff\1\u0083",
-            "\1\123\34\uffff\32\123\4\uffff\1\123\1\uffff\32\123",
+            "\1\174",
+            "\1\176\15\uffff\1\u0080\1\uffff\1\177",
+            "\1\u0082\11\uffff\1\u0083\6\uffff\1\u0081",
+            "\1\u0084",
+            "\12\u0086\10\uffff\1\u0088\1\uffff\3\u0088\5\uffff\1\u0088\13\uffff\1\u0085\6\uffff\1\u0086\2\uffff\1\u0088\1\uffff\3\u0088\5\uffff\1\u0088\13\uffff\1\u0085",
+            "\12\u0086\10\uffff\1\u0088\1\uffff\3\u0088\5\uffff\1\u0088\22\uffff\1\u0086\2\uffff\1\u0088\1\uffff\3\u0088\5\uffff\1\u0088",
+            "\1\126\34\uffff\32\126\4\uffff\1\126\1\uffff\32\126",
             "",
             "",
             "",
             "",
             "",
-            "\1\u0086",
+            "\1\u008b",
             "",
             "",
             "",
@@ -3797,65 +3742,49 @@
             "",
             "",
             "",
-            "\1\u0088",
+            "\1\u008d",
             "",
             "",
             "",
             "",
             "",
-            "\1\u008a",
-            "",
-            "",
-            "",
-            "",
-            "\1\u008c\5\uffff\1\u008d",
-            "",
-            "\1\u008e",
             "\1\u008f",
-            "\1\u0090",
-            "\1\u0091",
-            "\1\u0092",
+            "",
+            "",
+            "",
+            "",
+            "\1\u0091\5\uffff\1\u0092",
+            "",
             "\1\u0093",
             "\1\u0094",
             "\1\u0095",
             "\1\u0096",
-            "\1\123\13\uffff\12\123\7\uffff\32\123\4\uffff\1\123\1\uffff\32\123",
+            "\1\u0097",
             "\1\u0098",
             "\1\u0099",
             "\1\u009a",
-            "\1\u009b",
-            "\1\123\13\uffff\12\123\7\uffff\32\123\4\uffff\1\123\1\uffff\32\123",
+            "\1\126\13\uffff\12\126\7\uffff\32\126\4\uffff\1\126\1\uffff\32\126",
+            "\1\u009c",
             "\1\u009d",
-            "\1\u009e\1\u009f",
+            "\1\u009e\1\uffff\1\u009f",
             "\1\u00a0",
-            "\1\u00a2\5\uffff\1\u00a1",
-            "\1\123\13\uffff\12\123\7\uffff\1\u00a3\1\u00a4\30\123\4\uffff\1\123\1\uffff\32\123",
-            "\1\u00a6",
-            "\1\u00a7",
-            "",
-            "",
+            "\1\u00a1",
+            "\1\u00a2",
+            "\1\126\13\uffff\12\126\7\uffff\32\126\4\uffff\1\126\1\uffff\30\126\1\u00a3\1\126",
+            "\1\u00a5",
+            "\1\u00a6\1\u00a7",
             "\1\u00a8",
-            "\1\u00a9",
-            "\1\u00aa",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "\1\u00ab",
-            "\1\u00ac",
-            "\1\123\13\uffff\12\123\7\uffff\32\123\4\uffff\1\123\1\uffff\32\123",
+            "\1\u00aa\5\uffff\1\u00a9",
+            "\1\126\13\uffff\12\126\7\uffff\1\u00ab\31\126\4\uffff\1\126\1\uffff\32\126",
+            "\1\u00ad",
             "\1\u00ae",
+            "",
+            "",
             "\1\u00af",
-            "\1\u00b1\3\uffff\1\u00b0",
+            "\1\u00b0",
+            "\1\u00b1",
             "\1\u00b2",
             "",
-            "\12\u0081\10\uffff\1\u0083\1\uffff\3\u0083\5\uffff\1\u0083\22\uffff\1\u0081\2\uffff\1\u0083\1\uffff\3\u0083\5\uffff\1\u0083",
             "",
             "",
             "",
@@ -3865,265 +3794,261 @@
             "",
             "",
             "",
-            "",
-            "\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\u00b5",
+            "\1\u00b3",
+            "\1\u00b4",
+            "\1\126\13\uffff\12\126\7\uffff\32\126\4\uffff\1\126\1\uffff\32\126",
             "\1\u00b6",
             "\1\u00b7",
-            "\1\u00b8",
-            "\1\u00b9",
+            "\1\u00b9\3\uffff\1\u00b8",
             "\1\u00ba",
-            "\1\u00bb",
-            "\1\u00bc",
+            "",
+            "\12\u0086\10\uffff\1\u0088\1\uffff\3\u0088\5\uffff\1\u0088\22\uffff\1\u0086\2\uffff\1\u0088\1\uffff\3\u0088\5\uffff\1\u0088",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "\1\126\13\uffff\12\126\7\uffff\32\126\4\uffff\1\126\1\uffff\32\126",
+            "\1\126\13\uffff\12\126\7\uffff\32\126\4\uffff\1\126\1\uffff\32\126",
             "\1\u00bd",
-            "",
             "\1\u00be",
-            "\1\123\13\uffff\12\123\7\uffff\32\123\4\uffff\1\123\1\uffff\32\123",
+            "\1\u00bf",
             "\1\u00c0",
-            "\1\123\13\uffff\12\123\7\uffff\32\123\4\uffff\1\123\1\uffff\32\123",
-            "",
+            "\1\u00c1",
             "\1\u00c2",
             "\1\u00c3",
             "\1\u00c4",
+            "",
             "\1\u00c5",
-            "\1\u00c6",
+            "\1\126\13\uffff\12\126\7\uffff\32\126\4\uffff\1\126\1\uffff\32\126",
             "\1\u00c7",
             "\1\u00c8",
             "\1\u00c9",
-            "",
             "\1\u00ca",
-            "\1\u00cb",
+            "\1\126\13\uffff\12\126\7\uffff\32\126\4\uffff\1\126\1\uffff\32\126",
             "\1\u00cc",
+            "",
             "\1\u00cd",
             "\1\u00ce",
-            "\1\123\13\uffff\12\123\7\uffff\32\123\4\uffff\1\123\1\uffff\32\123",
+            "\1\u00cf",
             "\1\u00d0",
-            "",
             "\1\u00d1",
             "\1\u00d2",
-            "\1\123\13\uffff\12\123\7\uffff\32\123\4\uffff\1\123\1\uffff\32\123",
+            "\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\123\13\uffff\12\123\7\uffff\16\123\1\u00da\13\123\4\uffff\1\123\1\uffff\32\123",
+            "\1\126\13\uffff\12\126\7\uffff\32\126\4\uffff\1\126\1\uffff\32\126",
+            "\1\u00db",
+            "",
             "\1\u00dc",
             "\1\u00dd",
-            "\1\u00de",
+            "\1\126\13\uffff\12\126\7\uffff\32\126\4\uffff\1\126\1\uffff\32\126",
             "\1\u00df",
             "\1\u00e0",
             "",
-            "\1\u00e1",
             "",
-            "\1\u00e2",
-            "\1\123\13\uffff\12\123\7\uffff\32\123\4\uffff\1\123\1\uffff\32\123",
+            "\1\u00e1",
+            "\1\126\13\uffff\12\126\7\uffff\32\126\4\uffff\1\126\1\uffff\32\126",
+            "\1\u00e3",
             "\1\u00e4",
             "\1\u00e5",
             "\1\u00e6",
             "\1\u00e7",
             "\1\u00e8",
             "\1\u00e9",
+            "",
             "\1\u00ea",
             "\1\u00eb",
             "\1\u00ec",
             "\1\u00ed",
+            "",
             "\1\u00ee",
-            "",
-            "\1\123\13\uffff\12\123\7\uffff\32\123\4\uffff\1\123\1\uffff\32\123",
-            "\1\u00f0",
+            "\1\u00ef",
+            "\1\126\13\uffff\12\126\7\uffff\32\126\4\uffff\1\126\1\uffff\32\126",
             "\1\u00f1",
-            "",
-            "\1\123\13\uffff\12\123\7\uffff\32\123\4\uffff\1\123\1\uffff\32\123",
+            "\1\u00f2",
             "\1\u00f3",
-            "\1\u00f4\16\uffff\1\u00f5",
-            "",
+            "\1\u00f4",
+            "\1\u00f5",
             "\1\u00f6",
-            "\1\123\13\uffff\12\123\7\uffff\32\123\4\uffff\1\123\1\uffff\32\123",
+            "\1\u00f7",
             "\1\u00f8",
-            "",
             "\1\u00f9",
             "\1\u00fa",
             "\1\u00fb",
-            "\1\u00fc",
-            "\1\123\13\uffff\12\123\7\uffff\32\123\4\uffff\1\123\1\uffff\32\123",
-            "\1\u00fe",
-            "\1\u00ff",
             "",
-            "\1\123\13\uffff\12\123\7\uffff\32\123\4\uffff\1\123\1\uffff\32\123",
-            "\1\u0101",
-            "\1\u0102",
+            "\1\126\13\uffff\12\126\7\uffff\32\126\4\uffff\1\126\1\uffff\32\126",
+            "\1\u00fd",
+            "\1\u00fe",
+            "",
+            "\1\126\13\uffff\12\126\7\uffff\32\126\4\uffff\1\126\1\uffff\32\126",
+            "\1\u0100",
+            "\1\u0101\16\uffff\1\u0102",
+            "",
             "\1\u0103",
-            "\1\u0104",
-            "\1\u0105",
-            "\1\u0106",
+            "\1\126\13\uffff\12\126\7\uffff\32\126\4\uffff\1\126\1\uffff\32\126",
+            "\1\126\13\uffff\12\126\7\uffff\32\126\4\uffff\1\126\1\uffff\21\126\1\u0105\10\126",
             "\1\u0107",
             "\1\u0108",
-            "\1\123\13\uffff\12\123\7\uffff\32\123\4\uffff\1\123\1\uffff\32\123",
-            "\1\u010a",
-            "",
+            "\1\u0109",
+            "\1\126\13\uffff\12\126\7\uffff\32\126\4\uffff\1\126\1\uffff\32\126",
             "\1\u010b",
-            "\1\123\13\uffff\12\123\7\uffff\32\123\4\uffff\1\123\1\uffff\32\123",
-            "",
+            "\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\u0110",
             "",
-            "\1\u0111\1\u0112\10\uffff\1\u0113",
-            "\1\123\13\uffff\12\123\7\uffff\32\123\4\uffff\1\123\1\uffff\32\123",
+            "\1\126\13\uffff\12\126\7\uffff\32\126\4\uffff\1\126\1\uffff\32\126",
+            "\1\u0112",
+            "\1\u0113",
+            "\1\u0114",
             "\1\u0115",
-            "\1\123\13\uffff\12\123\7\uffff\32\123\4\uffff\1\123\1\uffff\32\123",
+            "\1\u0116",
             "\1\u0117",
-            "",
             "\1\u0118",
-            "\1\u0119",
-            "",
+            "\1\126\13\uffff\12\126\7\uffff\32\126\4\uffff\1\126\1\uffff\32\126",
             "\1\u011a",
             "\1\u011b",
+            "",
             "\1\u011c",
-            "\1\u011d",
+            "\1\126\13\uffff\12\126\7\uffff\32\126\4\uffff\1\126\1\uffff\32\126",
+            "",
             "\1\u011e",
             "\1\u011f",
             "\1\u0120",
-            "\1\u0121",
+            "\1\126\13\uffff\12\126\7\uffff\32\126\4\uffff\1\126\1\uffff\32\126",
             "",
             "\1\u0122",
-            "\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\126\13\uffff\12\126\7\uffff\32\126\4\uffff\1\126\1\uffff\32\126",
+            "\1\126\13\uffff\12\126\7\uffff\32\126\4\uffff\1\126\1\uffff\32\126",
+            "\1\u0125",
+            "",
             "\1\u0126",
-            "",
             "\1\u0127",
-            "\1\u0128",
-            "\1\u0129",
-            "",
-            "\1\u012a",
-            "",
+            "\1\126\13\uffff\12\126\7\uffff\32\126\4\uffff\1\126\1\uffff\32\126",
+            "\1\126\13\uffff\12\126\7\uffff\32\126\4\uffff\1\126\1\uffff\32\126",
+            "\1\126\13\uffff\12\126\7\uffff\32\126\4\uffff\1\126\1\uffff\32\126",
             "\1\u012b",
-            "\1\123\13\uffff\12\123\7\uffff\32\123\4\uffff\1\123\1\uffff\32\123",
+            "",
+            "\1\u012c",
             "\1\u012d",
             "\1\u012e",
             "\1\u012f",
-            "\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\2\123\1\u0131\1\u0132\10\123\1\u0133\15\123\4\uffff\1\123\1\uffff\32\123",
-            "\1\u0135",
-            "\1\u0136",
-            "\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\u0139",
+            "\1\u0130",
+            "\1\u0131",
+            "\1\u0132",
             "",
+            "\1\u0133",
+            "\1\u0134",
+            "\1\126\13\uffff\12\126\7\uffff\32\126\4\uffff\1\126\1\uffff\32\126",
+            "",
+            "\1\126\13\uffff\12\126\7\uffff\32\126\4\uffff\1\126\1\uffff\32\126",
+            "\1\126\13\uffff\12\126\7\uffff\32\126\4\uffff\1\126\1\uffff\32\126",
+            "\1\u0138",
+            "",
+            "\1\u0139",
             "",
             "",
             "\1\u013a",
             "\1\u013b",
-            "\1\u013c",
+            "\1\126\13\uffff\12\126\7\uffff\32\126\4\uffff\1\126\1\uffff\32\126",
+            "",
+            "",
+            "",
             "\1\u013d",
             "\1\u013e",
             "\1\u013f",
-            "",
-            "\1\u0140",
-            "\1\u0141",
-            "\1\u0142",
-            "",
-            "\1\u0143",
-            "\1\u0144",
+            "\1\126\13\uffff\12\126\7\uffff\32\126\4\uffff\1\126\1\uffff\32\126",
+            "\1\126\13\uffff\12\126\7\uffff\2\126\1\u0142\1\u0143\10\126\1\u0141\15\126\4\uffff\1\126\1\uffff\32\126",
             "\1\u0145",
+            "\1\126\13\uffff\12\126\7\uffff\32\126\4\uffff\1\126\1\uffff\32\126",
+            "\1\126\13\uffff\12\126\7\uffff\32\126\4\uffff\1\126\1\uffff\32\126",
+            "\1\126\13\uffff\12\126\7\uffff\32\126\4\uffff\1\126\1\uffff\32\126",
+            "\1\u0149",
             "",
-            "\1\123\13\uffff\12\123\7\uffff\2\123\1\u0146\11\123\1\u0147\15\123\4\uffff\1\123\1\uffff\3\123\1\u0148\26\123",
+            "",
+            "",
             "\1\u014a",
-            "",
-            "",
             "\1\u014b",
-            "\1\123\13\uffff\12\123\7\uffff\32\123\4\uffff\1\123\1\uffff\32\123",
-            "\1\u014d",
+            "\1\u014c",
+            "\1\126\13\uffff\12\126\7\uffff\32\126\4\uffff\1\126\1\uffff\32\126",
+            "",
             "\1\u014e",
             "\1\u014f",
             "\1\u0150",
+            "",
             "\1\u0151",
             "\1\u0152",
             "\1\u0153",
+            "",
             "\1\u0154",
+            "",
+            "",
+            "",
             "\1\u0155",
-            "\1\u0156",
+            "\1\126\13\uffff\12\126\7\uffff\32\126\4\uffff\1\126\1\uffff\32\126",
             "\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\u015b",
+            "\1\u015c",
             "\1\u015d",
             "\1\u015e",
-            "\1\u015f",
+            "\1\126\13\uffff\12\126\7\uffff\32\126\4\uffff\1\126\1\uffff\32\126",
             "\1\u0160",
-            "\1\123\13\uffff\12\123\7\uffff\32\123\4\uffff\1\123\1\uffff\32\123",
-            "\1\u0162",
+            "",
+            "\1\u0161",
+            "\1\126\13\uffff\12\126\7\uffff\32\126\4\uffff\1\126\1\uffff\32\126",
             "\1\u0163",
             "\1\u0164",
             "\1\u0165",
             "\1\u0166",
             "\1\u0167",
             "\1\u0168",
+            "",
             "\1\u0169",
             "\1\u016a",
             "",
-            "",
             "\1\u016b",
             "\1\u016c",
             "\1\u016d",
             "\1\u016e",
-            "",
             "\1\u016f",
             "\1\u0170",
             "\1\u0171",
-            "\1\u0172",
+            "\1\126\13\uffff\12\126\7\uffff\32\126\4\uffff\1\126\1\uffff\32\126",
             "\1\u0173",
             "\1\u0174",
             "\1\u0175",
             "\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\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\u017c",
-            "\1\u017d",
-            "\1\u017e",
-            "\1\u017f",
-            "\1\u0180",
-            "\1\u0181",
-            "\1\u0182",
-            "\1\u0183",
-            "\1\u0184",
+            "\1\u0178",
+            "\1\126\13\uffff\12\126\7\uffff\32\126\4\uffff\1\126\1\uffff\32\126",
+            "",
+            "\1\126\13\uffff\12\126\7\uffff\32\126\4\uffff\1\126\1\uffff\32\126",
+            "\1\126\13\uffff\12\126\7\uffff\32\126\4\uffff\1\126\1\uffff\32\126",
+            "\1\126\13\uffff\12\126\7\uffff\32\126\4\uffff\1\126\1\uffff\32\126",
+            "\1\126\13\uffff\12\126\7\uffff\32\126\4\uffff\1\126\1\uffff\32\126",
+            "\1\126\13\uffff\12\126\7\uffff\32\126\4\uffff\1\126\1\uffff\32\126",
+            "\1\126\13\uffff\12\126\7\uffff\32\126\4\uffff\1\126\1\uffff\32\126",
             "",
             "",
             "",
             "",
-            "\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\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\u018b",
-            "\1\u018c",
-            "\1\u018d",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "\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",
             "",
             "",
             ""
@@ -4159,7 +4084,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 | 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 | 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;
@@ -4205,63 +4130,69 @@
 
                         else if ( (LA21_0=='f') ) {s = 18;}
 
-                        else if ( (LA21_0=='a') ) {s = 19;}
+                        else if ( (LA21_0=='I') ) {s = 19;}
 
-                        else if ( (LA21_0=='c') ) {s = 20;}
+                        else if ( (LA21_0=='E') ) {s = 20;}
 
-                        else if ( (LA21_0=='m') ) {s = 21;}
+                        else if ( (LA21_0=='a') ) {s = 21;}
 
-                        else if ( (LA21_0=='d') ) {s = 22;}
+                        else if ( (LA21_0=='c') ) {s = 22;}
 
-                        else if ( (LA21_0=='p') ) {s = 23;}
+                        else if ( (LA21_0=='m') ) {s = 23;}
 
-                        else if ( (LA21_0=='{') ) {s = 24;}
+                        else if ( (LA21_0=='d') ) {s = 24;}
 
-                        else if ( (LA21_0=='}') ) {s = 25;}
+                        else if ( (LA21_0=='p') ) {s = 25;}
 
-                        else if ( (LA21_0=='w') ) {s = 26;}
+                        else if ( (LA21_0=='{') ) {s = 26;}
 
-                        else if ( (LA21_0=='h') ) {s = 27;}
+                        else if ( (LA21_0=='}') ) {s = 27;}
 
-                        else if ( (LA21_0==';') ) {s = 28;}
+                        else if ( (LA21_0=='w') ) {s = 28;}
 
-                        else if ( (LA21_0=='@') ) {s = 29;}
+                        else if ( (LA21_0=='h') ) {s = 29;}
 
-                        else if ( (LA21_0=='(') ) {s = 30;}
+                        else if ( (LA21_0=='D') ) {s = 30;}
 
-                        else if ( (LA21_0==')') ) {s = 31;}
+                        else if ( (LA21_0==';') ) {s = 31;}
 
-                        else if ( (LA21_0==',') ) {s = 32;}
+                        else if ( (LA21_0=='@') ) {s = 32;}
 
-                        else if ( (LA21_0==']') ) {s = 33;}
+                        else if ( (LA21_0=='(') ) {s = 33;}
 
-                        else if ( (LA21_0=='#') ) {s = 34;}
+                        else if ( (LA21_0==')') ) {s = 34;}
 
-                        else if ( (LA21_0=='[') ) {s = 35;}
+                        else if ( (LA21_0==',') ) {s = 35;}
 
-                        else if ( (LA21_0==':') ) {s = 36;}
+                        else if ( (LA21_0==']') ) {s = 36;}
 
-                        else if ( (LA21_0=='n') ) {s = 37;}
+                        else if ( (LA21_0=='#') ) {s = 37;}
 
-                        else if ( (LA21_0=='t') ) {s = 38;}
+                        else if ( (LA21_0=='[') ) {s = 38;}
 
-                        else if ( (LA21_0=='r') ) {s = 39;}
+                        else if ( (LA21_0==':') ) {s = 39;}
 
-                        else if ( (LA21_0=='0') ) {s = 40;}
+                        else if ( (LA21_0=='n') ) {s = 40;}
 
-                        else if ( ((LA21_0>='1' && LA21_0<='9')) ) {s = 41;}
+                        else if ( (LA21_0=='t') ) {s = 41;}
 
-                        else if ( (LA21_0=='^') ) {s = 42;}
+                        else if ( (LA21_0=='r') ) {s = 42;}
 
-                        else if ( (LA21_0=='$'||(LA21_0>='A' && LA21_0<='Z')||LA21_0=='_'||LA21_0=='b'||LA21_0=='g'||(LA21_0>='j' && LA21_0<='l')||LA21_0=='o'||LA21_0=='q'||LA21_0=='u'||(LA21_0>='x' && LA21_0<='z')) ) {s = 43;}
+                        else if ( (LA21_0=='0') ) {s = 43;}
 
-                        else if ( (LA21_0=='\"') ) {s = 44;}
+                        else if ( ((LA21_0>='1' && LA21_0<='9')) ) {s = 44;}
 
-                        else if ( (LA21_0=='\'') ) {s = 45;}
+                        else if ( (LA21_0=='^') ) {s = 45;}
 
-                        else if ( ((LA21_0>='\t' && LA21_0<='\n')||LA21_0=='\r'||LA21_0==' ') ) {s = 46;}
+                        else if ( (LA21_0=='$'||(LA21_0>='A' && LA21_0<='C')||(LA21_0>='F' && LA21_0<='H')||(LA21_0>='J' && LA21_0<='Z')||LA21_0=='_'||LA21_0=='b'||LA21_0=='g'||(LA21_0>='j' && LA21_0<='l')||LA21_0=='o'||LA21_0=='q'||LA21_0=='u'||(LA21_0>='x' && LA21_0<='z')) ) {s = 46;}
 
-                        else if ( ((LA21_0>='\u0000' && LA21_0<='\b')||(LA21_0>='\u000B' && LA21_0<='\f')||(LA21_0>='\u000E' && LA21_0<='\u001F')||LA21_0=='\\'||LA21_0=='`'||(LA21_0>='~' && LA21_0<='\uFFFF')) ) {s = 47;}
+                        else if ( (LA21_0=='\"') ) {s = 47;}
+
+                        else if ( (LA21_0=='\'') ) {s = 48;}
+
+                        else if ( ((LA21_0>='\t' && LA21_0<='\n')||LA21_0=='\r'||LA21_0==' ') ) {s = 49;}
+
+                        else if ( ((LA21_0>='\u0000' && LA21_0<='\b')||(LA21_0>='\u000B' && LA21_0<='\f')||(LA21_0>='\u000E' && LA21_0<='\u001F')||LA21_0=='\\'||LA21_0=='`'||(LA21_0>='~' && LA21_0<='\uFFFF')) ) {s = 50;}
 
                         if ( s>=0 ) return s;
                         break;
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 7c3748c..b2ac3e5 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
@@ -38,7 +38,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'", "'all'", "'createSignals'", "'modifySignals'", "'deleteSignals'", "'show'", "'showOnCreate'", "'showOnDelete'", "'showOnModify'", "'doAfter'", "'doAfterCreate'", "'doAfterDelete'", "'doAfterModify'", "'doBefore'", "'doBeforeCreate'", "'doBeforeModify'", "'doBeforedelete'", "'package'", "'{'", "'}'", "'watcher'", "'directory'", "'for'", "'handlerOn'", "';'", "'@'", "'('", "')'", "','", "']'", "'#'", "'['", "'instanceof'", "'as'", "'if'", "'else'", "'switch'", "':'", "'default'", "'case'", "'while'", "'do'", "'new'", "'null'", "'typeof'", "'throw'", "'return'", "'try'", "'finally'", "'synchronized'", "'catch'", "'?'", "'&'", "'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", "'='", "'||'", "'&&'", "'+='", "'-='", "'*='", "'/='", "'%='", "'=='", "'!='", "'==='", "'!=='", "'>='", "'>'", "'<'", "'->'", "'..<'", "'..'", "'=>'", "'<>'", "'?:'", "'+'", "'-'", "'*'", "'**'", "'/'", "'%'", "'!'", "'++'", "'--'", "'.'", "'val'", "'extends'", "'static'", "'import'", "'extension'", "'super'", "'false'", "'Import'", "'Export'", "'all'", "'createSignals'", "'modifySignals'", "'deleteSignals'", "'doAfter'", "'doAfterModify'", "'doAfterCreate'", "'doAfterDelete'", "'synch'", "'asynch'", "'package'", "'{'", "'}'", "'watcher'", "'directory'", "'for'", "'handler'", "'fileMask'", "'DataTransfer'", "';'", "'@'", "'('", "')'", "','", "']'", "'#'", "'['", "'instanceof'", "'as'", "'if'", "'else'", "'switch'", "':'", "'default'", "'case'", "'while'", "'do'", "'new'", "'null'", "'typeof'", "'throw'", "'return'", "'try'", "'finally'", "'synchronized'", "'catch'", "'?'", "'&'", "'ns'", "'::'", "'?.'", "'|'", "'var'", "'true'"
     };
     public static final int RULE_HEX=5;
     public static final int T__50=50;
@@ -135,9 +135,7 @@
     public static final int RULE_WS=11;
     public static final int RULE_ANY_OTHER=12;
     public static final int T__88=88;
-    public static final int T__108=108;
     public static final int T__89=89;
-    public static final int T__107=107;
     public static final int T__84=84;
     public static final int T__104=104;
     public static final int T__85=85;
@@ -522,23 +520,23 @@
     // $ANTLR end "ruleSignalHandler"
 
 
-    // $ANTLR start "entryRuleSignalNotification"
-    // InternalSignalDSL.g:167:1: entryRuleSignalNotification : ruleSignalNotification EOF ;
-    public final void entryRuleSignalNotification() throws RecognitionException {
+    // $ANTLR start "entryRuleDataTransfer"
+    // InternalSignalDSL.g:167:1: entryRuleDataTransfer : ruleDataTransfer EOF ;
+    public final void entryRuleDataTransfer() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:168:1: ( ruleSignalNotification EOF )
-            // InternalSignalDSL.g:169:1: ruleSignalNotification EOF
+            // InternalSignalDSL.g:168:1: ( ruleDataTransfer EOF )
+            // InternalSignalDSL.g:169:1: ruleDataTransfer EOF
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getSignalNotificationRule()); 
+               before(grammarAccess.getDataTransferRule()); 
             }
             pushFollow(FOLLOW_1);
-            ruleSignalNotification();
+            ruleDataTransfer();
 
             state._fsp--;
             if (state.failed) return ;
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getSignalNotificationRule()); 
+               after(grammarAccess.getDataTransferRule()); 
             }
             match(input,EOF,FOLLOW_2); if (state.failed) return ;
 
@@ -553,30 +551,30 @@
         }
         return ;
     }
-    // $ANTLR end "entryRuleSignalNotification"
+    // $ANTLR end "entryRuleDataTransfer"
 
 
-    // $ANTLR start "ruleSignalNotification"
-    // InternalSignalDSL.g:176:1: ruleSignalNotification : ( ( rule__SignalNotification__Group__0 ) ) ;
-    public final void ruleSignalNotification() throws RecognitionException {
+    // $ANTLR start "ruleDataTransfer"
+    // InternalSignalDSL.g:176:1: ruleDataTransfer : ( ( rule__DataTransfer__Alternatives ) ) ;
+    public final void ruleDataTransfer() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:180:2: ( ( ( rule__SignalNotification__Group__0 ) ) )
-            // InternalSignalDSL.g:181:2: ( ( rule__SignalNotification__Group__0 ) )
+            // InternalSignalDSL.g:180:2: ( ( ( rule__DataTransfer__Alternatives ) ) )
+            // InternalSignalDSL.g:181:2: ( ( rule__DataTransfer__Alternatives ) )
             {
-            // InternalSignalDSL.g:181:2: ( ( rule__SignalNotification__Group__0 ) )
-            // InternalSignalDSL.g:182:3: ( rule__SignalNotification__Group__0 )
+            // InternalSignalDSL.g:181:2: ( ( rule__DataTransfer__Alternatives ) )
+            // InternalSignalDSL.g:182:3: ( rule__DataTransfer__Alternatives )
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getSignalNotificationAccess().getGroup()); 
+               before(grammarAccess.getDataTransferAccess().getAlternatives()); 
             }
-            // InternalSignalDSL.g:183:3: ( rule__SignalNotification__Group__0 )
-            // InternalSignalDSL.g:183:4: rule__SignalNotification__Group__0
+            // InternalSignalDSL.g:183:3: ( rule__DataTransfer__Alternatives )
+            // InternalSignalDSL.g:183:4: rule__DataTransfer__Alternatives
             {
             pushFollow(FOLLOW_2);
-            rule__SignalNotification__Group__0();
+            rule__DataTransfer__Alternatives();
 
             state._fsp--;
             if (state.failed) return ;
@@ -584,7 +582,7 @@
             }
 
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getSignalNotificationAccess().getGroup()); 
+               after(grammarAccess.getDataTransferAccess().getAlternatives()); 
             }
 
             }
@@ -604,15 +602,185 @@
         }
         return ;
     }
-    // $ANTLR end "ruleSignalNotification"
+    // $ANTLR end "ruleDataTransfer"
+
+
+    // $ANTLR start "entryRuleListTransfer"
+    // InternalSignalDSL.g:192:1: entryRuleListTransfer : ruleListTransfer EOF ;
+    public final void entryRuleListTransfer() throws RecognitionException {
+        try {
+            // InternalSignalDSL.g:193:1: ( ruleListTransfer EOF )
+            // InternalSignalDSL.g:194:1: ruleListTransfer EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getListTransferRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleListTransfer();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getListTransferRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleListTransfer"
+
+
+    // $ANTLR start "ruleListTransfer"
+    // InternalSignalDSL.g:201:1: ruleListTransfer : ( ( rule__ListTransfer__Group__0 ) ) ;
+    public final void ruleListTransfer() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalSignalDSL.g:205:2: ( ( ( rule__ListTransfer__Group__0 ) ) )
+            // InternalSignalDSL.g:206:2: ( ( rule__ListTransfer__Group__0 ) )
+            {
+            // InternalSignalDSL.g:206:2: ( ( rule__ListTransfer__Group__0 ) )
+            // InternalSignalDSL.g:207:3: ( rule__ListTransfer__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getListTransferAccess().getGroup()); 
+            }
+            // InternalSignalDSL.g:208:3: ( rule__ListTransfer__Group__0 )
+            // InternalSignalDSL.g:208:4: rule__ListTransfer__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__ListTransfer__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getListTransferAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleListTransfer"
+
+
+    // $ANTLR start "entryRuleSingleTransfer"
+    // InternalSignalDSL.g:217:1: entryRuleSingleTransfer : ruleSingleTransfer EOF ;
+    public final void entryRuleSingleTransfer() throws RecognitionException {
+        try {
+            // InternalSignalDSL.g:218:1: ( ruleSingleTransfer EOF )
+            // InternalSignalDSL.g:219:1: ruleSingleTransfer EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getSingleTransferRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleSingleTransfer();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getSingleTransferRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleSingleTransfer"
+
+
+    // $ANTLR start "ruleSingleTransfer"
+    // InternalSignalDSL.g:226:1: ruleSingleTransfer : ( ( rule__SingleTransfer__InterchangeAssignment ) ) ;
+    public final void ruleSingleTransfer() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalSignalDSL.g:230:2: ( ( ( rule__SingleTransfer__InterchangeAssignment ) ) )
+            // InternalSignalDSL.g:231:2: ( ( rule__SingleTransfer__InterchangeAssignment ) )
+            {
+            // InternalSignalDSL.g:231:2: ( ( rule__SingleTransfer__InterchangeAssignment ) )
+            // InternalSignalDSL.g:232:3: ( rule__SingleTransfer__InterchangeAssignment )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getSingleTransferAccess().getInterchangeAssignment()); 
+            }
+            // InternalSignalDSL.g:233:3: ( rule__SingleTransfer__InterchangeAssignment )
+            // InternalSignalDSL.g:233:4: rule__SingleTransfer__InterchangeAssignment
+            {
+            pushFollow(FOLLOW_2);
+            rule__SingleTransfer__InterchangeAssignment();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getSingleTransferAccess().getInterchangeAssignment()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleSingleTransfer"
 
 
     // $ANTLR start "entryRuleSignalDatainterchange"
-    // InternalSignalDSL.g:192:1: entryRuleSignalDatainterchange : ruleSignalDatainterchange EOF ;
+    // InternalSignalDSL.g:242:1: entryRuleSignalDatainterchange : ruleSignalDatainterchange EOF ;
     public final void entryRuleSignalDatainterchange() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:193:1: ( ruleSignalDatainterchange EOF )
-            // InternalSignalDSL.g:194:1: ruleSignalDatainterchange EOF
+            // InternalSignalDSL.g:243:1: ( ruleSignalDatainterchange EOF )
+            // InternalSignalDSL.g:244:1: ruleSignalDatainterchange EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSignalDatainterchangeRule()); 
@@ -642,26 +810,26 @@
 
 
     // $ANTLR start "ruleSignalDatainterchange"
-    // InternalSignalDSL.g:201:1: ruleSignalDatainterchange : ( ( rule__SignalDatainterchange__DataRefAssignment ) ) ;
+    // InternalSignalDSL.g:251:1: ruleSignalDatainterchange : ( ( rule__SignalDatainterchange__Group__0 ) ) ;
     public final void ruleSignalDatainterchange() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:205:2: ( ( ( rule__SignalDatainterchange__DataRefAssignment ) ) )
-            // InternalSignalDSL.g:206:2: ( ( rule__SignalDatainterchange__DataRefAssignment ) )
+            // InternalSignalDSL.g:255:2: ( ( ( rule__SignalDatainterchange__Group__0 ) ) )
+            // InternalSignalDSL.g:256:2: ( ( rule__SignalDatainterchange__Group__0 ) )
             {
-            // InternalSignalDSL.g:206:2: ( ( rule__SignalDatainterchange__DataRefAssignment ) )
-            // InternalSignalDSL.g:207:3: ( rule__SignalDatainterchange__DataRefAssignment )
+            // InternalSignalDSL.g:256:2: ( ( rule__SignalDatainterchange__Group__0 ) )
+            // InternalSignalDSL.g:257:3: ( rule__SignalDatainterchange__Group__0 )
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getSignalDatainterchangeAccess().getDataRefAssignment()); 
+               before(grammarAccess.getSignalDatainterchangeAccess().getGroup()); 
             }
-            // InternalSignalDSL.g:208:3: ( rule__SignalDatainterchange__DataRefAssignment )
-            // InternalSignalDSL.g:208:4: rule__SignalDatainterchange__DataRefAssignment
+            // InternalSignalDSL.g:258:3: ( rule__SignalDatainterchange__Group__0 )
+            // InternalSignalDSL.g:258:4: rule__SignalDatainterchange__Group__0
             {
             pushFollow(FOLLOW_2);
-            rule__SignalDatainterchange__DataRefAssignment();
+            rule__SignalDatainterchange__Group__0();
 
             state._fsp--;
             if (state.failed) return ;
@@ -669,7 +837,7 @@
             }
 
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getSignalDatainterchangeAccess().getDataRefAssignment()); 
+               after(grammarAccess.getSignalDatainterchangeAccess().getGroup()); 
             }
 
             }
@@ -692,97 +860,12 @@
     // $ANTLR end "ruleSignalDatainterchange"
 
 
-    // $ANTLR start "entryRuleSignalHandling"
-    // InternalSignalDSL.g:217:1: entryRuleSignalHandling : ruleSignalHandling EOF ;
-    public final void entryRuleSignalHandling() throws RecognitionException {
-        try {
-            // InternalSignalDSL.g:218:1: ( ruleSignalHandling EOF )
-            // InternalSignalDSL.g:219:1: ruleSignalHandling EOF
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getSignalHandlingRule()); 
-            }
-            pushFollow(FOLLOW_1);
-            ruleSignalHandling();
-
-            state._fsp--;
-            if (state.failed) return ;
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getSignalHandlingRule()); 
-            }
-            match(input,EOF,FOLLOW_2); if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end "entryRuleSignalHandling"
-
-
-    // $ANTLR start "ruleSignalHandling"
-    // InternalSignalDSL.g:226:1: ruleSignalHandling : ( ( rule__SignalHandling__Group__0 ) ) ;
-    public final void ruleSignalHandling() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-        	
-        try {
-            // InternalSignalDSL.g:230:2: ( ( ( rule__SignalHandling__Group__0 ) ) )
-            // InternalSignalDSL.g:231:2: ( ( rule__SignalHandling__Group__0 ) )
-            {
-            // InternalSignalDSL.g:231:2: ( ( rule__SignalHandling__Group__0 ) )
-            // InternalSignalDSL.g:232:3: ( rule__SignalHandling__Group__0 )
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getSignalHandlingAccess().getGroup()); 
-            }
-            // InternalSignalDSL.g:233:3: ( rule__SignalHandling__Group__0 )
-            // InternalSignalDSL.g:233:4: rule__SignalHandling__Group__0
-            {
-            pushFollow(FOLLOW_2);
-            rule__SignalHandling__Group__0();
-
-            state._fsp--;
-            if (state.failed) return ;
-
-            }
-
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getSignalHandlingAccess().getGroup()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "ruleSignalHandling"
-
-
     // $ANTLR start "entryRuleXImportDeclaration"
-    // InternalSignalDSL.g:242:1: entryRuleXImportDeclaration : ruleXImportDeclaration EOF ;
+    // InternalSignalDSL.g:267:1: entryRuleXImportDeclaration : ruleXImportDeclaration EOF ;
     public final void entryRuleXImportDeclaration() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:243:1: ( ruleXImportDeclaration EOF )
-            // InternalSignalDSL.g:244:1: ruleXImportDeclaration EOF
+            // InternalSignalDSL.g:268:1: ( ruleXImportDeclaration EOF )
+            // InternalSignalDSL.g:269:1: ruleXImportDeclaration EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationRule()); 
@@ -812,23 +895,23 @@
 
 
     // $ANTLR start "ruleXImportDeclaration"
-    // InternalSignalDSL.g:251:1: ruleXImportDeclaration : ( ( rule__XImportDeclaration__Group__0 ) ) ;
+    // InternalSignalDSL.g:276:1: ruleXImportDeclaration : ( ( rule__XImportDeclaration__Group__0 ) ) ;
     public final void ruleXImportDeclaration() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:255:2: ( ( ( rule__XImportDeclaration__Group__0 ) ) )
-            // InternalSignalDSL.g:256:2: ( ( rule__XImportDeclaration__Group__0 ) )
+            // InternalSignalDSL.g:280:2: ( ( ( rule__XImportDeclaration__Group__0 ) ) )
+            // InternalSignalDSL.g:281:2: ( ( rule__XImportDeclaration__Group__0 ) )
             {
-            // InternalSignalDSL.g:256:2: ( ( rule__XImportDeclaration__Group__0 ) )
-            // InternalSignalDSL.g:257:3: ( rule__XImportDeclaration__Group__0 )
+            // InternalSignalDSL.g:281:2: ( ( rule__XImportDeclaration__Group__0 ) )
+            // InternalSignalDSL.g:282:3: ( rule__XImportDeclaration__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getGroup()); 
             }
-            // InternalSignalDSL.g:258:3: ( rule__XImportDeclaration__Group__0 )
-            // InternalSignalDSL.g:258:4: rule__XImportDeclaration__Group__0
+            // InternalSignalDSL.g:283:3: ( rule__XImportDeclaration__Group__0 )
+            // InternalSignalDSL.g:283:4: rule__XImportDeclaration__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XImportDeclaration__Group__0();
@@ -863,11 +946,11 @@
 
 
     // $ANTLR start "entryRuleXAnnotation"
-    // InternalSignalDSL.g:267:1: entryRuleXAnnotation : ruleXAnnotation EOF ;
+    // InternalSignalDSL.g:292:1: entryRuleXAnnotation : ruleXAnnotation EOF ;
     public final void entryRuleXAnnotation() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:268:1: ( ruleXAnnotation EOF )
-            // InternalSignalDSL.g:269:1: ruleXAnnotation EOF
+            // InternalSignalDSL.g:293:1: ( ruleXAnnotation EOF )
+            // InternalSignalDSL.g:294:1: ruleXAnnotation EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationRule()); 
@@ -897,23 +980,23 @@
 
 
     // $ANTLR start "ruleXAnnotation"
-    // InternalSignalDSL.g:276:1: ruleXAnnotation : ( ( rule__XAnnotation__Group__0 ) ) ;
+    // InternalSignalDSL.g:301:1: ruleXAnnotation : ( ( rule__XAnnotation__Group__0 ) ) ;
     public final void ruleXAnnotation() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:280:2: ( ( ( rule__XAnnotation__Group__0 ) ) )
-            // InternalSignalDSL.g:281:2: ( ( rule__XAnnotation__Group__0 ) )
+            // InternalSignalDSL.g:305:2: ( ( ( rule__XAnnotation__Group__0 ) ) )
+            // InternalSignalDSL.g:306:2: ( ( rule__XAnnotation__Group__0 ) )
             {
-            // InternalSignalDSL.g:281:2: ( ( rule__XAnnotation__Group__0 ) )
-            // InternalSignalDSL.g:282:3: ( rule__XAnnotation__Group__0 )
+            // InternalSignalDSL.g:306:2: ( ( rule__XAnnotation__Group__0 ) )
+            // InternalSignalDSL.g:307:3: ( rule__XAnnotation__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationAccess().getGroup()); 
             }
-            // InternalSignalDSL.g:283:3: ( rule__XAnnotation__Group__0 )
-            // InternalSignalDSL.g:283:4: rule__XAnnotation__Group__0
+            // InternalSignalDSL.g:308:3: ( rule__XAnnotation__Group__0 )
+            // InternalSignalDSL.g:308:4: rule__XAnnotation__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotation__Group__0();
@@ -948,11 +1031,11 @@
 
 
     // $ANTLR start "entryRuleXAnnotationElementValuePair"
-    // InternalSignalDSL.g:292:1: entryRuleXAnnotationElementValuePair : ruleXAnnotationElementValuePair EOF ;
+    // InternalSignalDSL.g:317:1: entryRuleXAnnotationElementValuePair : ruleXAnnotationElementValuePair EOF ;
     public final void entryRuleXAnnotationElementValuePair() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:293:1: ( ruleXAnnotationElementValuePair EOF )
-            // InternalSignalDSL.g:294:1: ruleXAnnotationElementValuePair EOF
+            // InternalSignalDSL.g:318:1: ( ruleXAnnotationElementValuePair EOF )
+            // InternalSignalDSL.g:319:1: ruleXAnnotationElementValuePair EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValuePairRule()); 
@@ -982,23 +1065,23 @@
 
 
     // $ANTLR start "ruleXAnnotationElementValuePair"
-    // InternalSignalDSL.g:301:1: ruleXAnnotationElementValuePair : ( ( rule__XAnnotationElementValuePair__Group__0 ) ) ;
+    // InternalSignalDSL.g:326:1: ruleXAnnotationElementValuePair : ( ( rule__XAnnotationElementValuePair__Group__0 ) ) ;
     public final void ruleXAnnotationElementValuePair() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:305:2: ( ( ( rule__XAnnotationElementValuePair__Group__0 ) ) )
-            // InternalSignalDSL.g:306:2: ( ( rule__XAnnotationElementValuePair__Group__0 ) )
+            // InternalSignalDSL.g:330:2: ( ( ( rule__XAnnotationElementValuePair__Group__0 ) ) )
+            // InternalSignalDSL.g:331:2: ( ( rule__XAnnotationElementValuePair__Group__0 ) )
             {
-            // InternalSignalDSL.g:306:2: ( ( rule__XAnnotationElementValuePair__Group__0 ) )
-            // InternalSignalDSL.g:307:3: ( rule__XAnnotationElementValuePair__Group__0 )
+            // InternalSignalDSL.g:331:2: ( ( rule__XAnnotationElementValuePair__Group__0 ) )
+            // InternalSignalDSL.g:332:3: ( rule__XAnnotationElementValuePair__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValuePairAccess().getGroup()); 
             }
-            // InternalSignalDSL.g:308:3: ( rule__XAnnotationElementValuePair__Group__0 )
-            // InternalSignalDSL.g:308:4: rule__XAnnotationElementValuePair__Group__0
+            // InternalSignalDSL.g:333:3: ( rule__XAnnotationElementValuePair__Group__0 )
+            // InternalSignalDSL.g:333:4: rule__XAnnotationElementValuePair__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValuePair__Group__0();
@@ -1033,11 +1116,11 @@
 
 
     // $ANTLR start "entryRuleXAnnotationElementValueOrCommaList"
-    // InternalSignalDSL.g:317:1: entryRuleXAnnotationElementValueOrCommaList : ruleXAnnotationElementValueOrCommaList EOF ;
+    // InternalSignalDSL.g:342:1: entryRuleXAnnotationElementValueOrCommaList : ruleXAnnotationElementValueOrCommaList EOF ;
     public final void entryRuleXAnnotationElementValueOrCommaList() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:318:1: ( ruleXAnnotationElementValueOrCommaList EOF )
-            // InternalSignalDSL.g:319:1: ruleXAnnotationElementValueOrCommaList EOF
+            // InternalSignalDSL.g:343:1: ( ruleXAnnotationElementValueOrCommaList EOF )
+            // InternalSignalDSL.g:344:1: ruleXAnnotationElementValueOrCommaList EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListRule()); 
@@ -1067,23 +1150,23 @@
 
 
     // $ANTLR start "ruleXAnnotationElementValueOrCommaList"
-    // InternalSignalDSL.g:326:1: ruleXAnnotationElementValueOrCommaList : ( ( rule__XAnnotationElementValueOrCommaList__Alternatives ) ) ;
+    // InternalSignalDSL.g:351:1: ruleXAnnotationElementValueOrCommaList : ( ( rule__XAnnotationElementValueOrCommaList__Alternatives ) ) ;
     public final void ruleXAnnotationElementValueOrCommaList() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:330:2: ( ( ( rule__XAnnotationElementValueOrCommaList__Alternatives ) ) )
-            // InternalSignalDSL.g:331:2: ( ( rule__XAnnotationElementValueOrCommaList__Alternatives ) )
+            // InternalSignalDSL.g:355:2: ( ( ( rule__XAnnotationElementValueOrCommaList__Alternatives ) ) )
+            // InternalSignalDSL.g:356:2: ( ( rule__XAnnotationElementValueOrCommaList__Alternatives ) )
             {
-            // InternalSignalDSL.g:331:2: ( ( rule__XAnnotationElementValueOrCommaList__Alternatives ) )
-            // InternalSignalDSL.g:332:3: ( rule__XAnnotationElementValueOrCommaList__Alternatives )
+            // InternalSignalDSL.g:356:2: ( ( rule__XAnnotationElementValueOrCommaList__Alternatives ) )
+            // InternalSignalDSL.g:357:3: ( rule__XAnnotationElementValueOrCommaList__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getAlternatives()); 
             }
-            // InternalSignalDSL.g:333:3: ( rule__XAnnotationElementValueOrCommaList__Alternatives )
-            // InternalSignalDSL.g:333:4: rule__XAnnotationElementValueOrCommaList__Alternatives
+            // InternalSignalDSL.g:358:3: ( rule__XAnnotationElementValueOrCommaList__Alternatives )
+            // InternalSignalDSL.g:358:4: rule__XAnnotationElementValueOrCommaList__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValueOrCommaList__Alternatives();
@@ -1118,11 +1201,11 @@
 
 
     // $ANTLR start "entryRuleXAnnotationElementValue"
-    // InternalSignalDSL.g:342:1: entryRuleXAnnotationElementValue : ruleXAnnotationElementValue EOF ;
+    // InternalSignalDSL.g:367:1: entryRuleXAnnotationElementValue : ruleXAnnotationElementValue EOF ;
     public final void entryRuleXAnnotationElementValue() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:343:1: ( ruleXAnnotationElementValue EOF )
-            // InternalSignalDSL.g:344:1: ruleXAnnotationElementValue EOF
+            // InternalSignalDSL.g:368:1: ( ruleXAnnotationElementValue EOF )
+            // InternalSignalDSL.g:369:1: ruleXAnnotationElementValue EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueRule()); 
@@ -1152,23 +1235,23 @@
 
 
     // $ANTLR start "ruleXAnnotationElementValue"
-    // InternalSignalDSL.g:351:1: ruleXAnnotationElementValue : ( ( rule__XAnnotationElementValue__Alternatives ) ) ;
+    // InternalSignalDSL.g:376:1: ruleXAnnotationElementValue : ( ( rule__XAnnotationElementValue__Alternatives ) ) ;
     public final void ruleXAnnotationElementValue() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:355:2: ( ( ( rule__XAnnotationElementValue__Alternatives ) ) )
-            // InternalSignalDSL.g:356:2: ( ( rule__XAnnotationElementValue__Alternatives ) )
+            // InternalSignalDSL.g:380:2: ( ( ( rule__XAnnotationElementValue__Alternatives ) ) )
+            // InternalSignalDSL.g:381:2: ( ( rule__XAnnotationElementValue__Alternatives ) )
             {
-            // InternalSignalDSL.g:356:2: ( ( rule__XAnnotationElementValue__Alternatives ) )
-            // InternalSignalDSL.g:357:3: ( rule__XAnnotationElementValue__Alternatives )
+            // InternalSignalDSL.g:381:2: ( ( rule__XAnnotationElementValue__Alternatives ) )
+            // InternalSignalDSL.g:382:3: ( rule__XAnnotationElementValue__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueAccess().getAlternatives()); 
             }
-            // InternalSignalDSL.g:358:3: ( rule__XAnnotationElementValue__Alternatives )
-            // InternalSignalDSL.g:358:4: rule__XAnnotationElementValue__Alternatives
+            // InternalSignalDSL.g:383:3: ( rule__XAnnotationElementValue__Alternatives )
+            // InternalSignalDSL.g:383:4: rule__XAnnotationElementValue__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValue__Alternatives();
@@ -1203,11 +1286,11 @@
 
 
     // $ANTLR start "entryRuleXAnnotationOrExpression"
-    // InternalSignalDSL.g:367:1: entryRuleXAnnotationOrExpression : ruleXAnnotationOrExpression EOF ;
+    // InternalSignalDSL.g:392:1: entryRuleXAnnotationOrExpression : ruleXAnnotationOrExpression EOF ;
     public final void entryRuleXAnnotationOrExpression() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:368:1: ( ruleXAnnotationOrExpression EOF )
-            // InternalSignalDSL.g:369:1: ruleXAnnotationOrExpression EOF
+            // InternalSignalDSL.g:393:1: ( ruleXAnnotationOrExpression EOF )
+            // InternalSignalDSL.g:394:1: ruleXAnnotationOrExpression EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationOrExpressionRule()); 
@@ -1237,23 +1320,23 @@
 
 
     // $ANTLR start "ruleXAnnotationOrExpression"
-    // InternalSignalDSL.g:376:1: ruleXAnnotationOrExpression : ( ( rule__XAnnotationOrExpression__Alternatives ) ) ;
+    // InternalSignalDSL.g:401:1: ruleXAnnotationOrExpression : ( ( rule__XAnnotationOrExpression__Alternatives ) ) ;
     public final void ruleXAnnotationOrExpression() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:380:2: ( ( ( rule__XAnnotationOrExpression__Alternatives ) ) )
-            // InternalSignalDSL.g:381:2: ( ( rule__XAnnotationOrExpression__Alternatives ) )
+            // InternalSignalDSL.g:405:2: ( ( ( rule__XAnnotationOrExpression__Alternatives ) ) )
+            // InternalSignalDSL.g:406:2: ( ( rule__XAnnotationOrExpression__Alternatives ) )
             {
-            // InternalSignalDSL.g:381:2: ( ( rule__XAnnotationOrExpression__Alternatives ) )
-            // InternalSignalDSL.g:382:3: ( rule__XAnnotationOrExpression__Alternatives )
+            // InternalSignalDSL.g:406:2: ( ( rule__XAnnotationOrExpression__Alternatives ) )
+            // InternalSignalDSL.g:407:3: ( rule__XAnnotationOrExpression__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationOrExpressionAccess().getAlternatives()); 
             }
-            // InternalSignalDSL.g:383:3: ( rule__XAnnotationOrExpression__Alternatives )
-            // InternalSignalDSL.g:383:4: rule__XAnnotationOrExpression__Alternatives
+            // InternalSignalDSL.g:408:3: ( rule__XAnnotationOrExpression__Alternatives )
+            // InternalSignalDSL.g:408:4: rule__XAnnotationOrExpression__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationOrExpression__Alternatives();
@@ -1288,11 +1371,11 @@
 
 
     // $ANTLR start "entryRuleXExpression"
-    // InternalSignalDSL.g:392:1: entryRuleXExpression : ruleXExpression EOF ;
+    // InternalSignalDSL.g:417:1: entryRuleXExpression : ruleXExpression EOF ;
     public final void entryRuleXExpression() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:393:1: ( ruleXExpression EOF )
-            // InternalSignalDSL.g:394:1: ruleXExpression EOF
+            // InternalSignalDSL.g:418:1: ( ruleXExpression EOF )
+            // InternalSignalDSL.g:419:1: ruleXExpression EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXExpressionRule()); 
@@ -1322,17 +1405,17 @@
 
 
     // $ANTLR start "ruleXExpression"
-    // InternalSignalDSL.g:401:1: ruleXExpression : ( ruleXAssignment ) ;
+    // InternalSignalDSL.g:426:1: ruleXExpression : ( ruleXAssignment ) ;
     public final void ruleXExpression() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:405:2: ( ( ruleXAssignment ) )
-            // InternalSignalDSL.g:406:2: ( ruleXAssignment )
+            // InternalSignalDSL.g:430:2: ( ( ruleXAssignment ) )
+            // InternalSignalDSL.g:431:2: ( ruleXAssignment )
             {
-            // InternalSignalDSL.g:406:2: ( ruleXAssignment )
-            // InternalSignalDSL.g:407:3: ruleXAssignment
+            // InternalSignalDSL.g:431:2: ( ruleXAssignment )
+            // InternalSignalDSL.g:432:3: ruleXAssignment
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXExpressionAccess().getXAssignmentParserRuleCall()); 
@@ -1367,11 +1450,11 @@
 
 
     // $ANTLR start "entryRuleXAssignment"
-    // InternalSignalDSL.g:417:1: entryRuleXAssignment : ruleXAssignment EOF ;
+    // InternalSignalDSL.g:442:1: entryRuleXAssignment : ruleXAssignment EOF ;
     public final void entryRuleXAssignment() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:418:1: ( ruleXAssignment EOF )
-            // InternalSignalDSL.g:419:1: ruleXAssignment EOF
+            // InternalSignalDSL.g:443:1: ( ruleXAssignment EOF )
+            // InternalSignalDSL.g:444:1: ruleXAssignment EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAssignmentRule()); 
@@ -1401,23 +1484,23 @@
 
 
     // $ANTLR start "ruleXAssignment"
-    // InternalSignalDSL.g:426:1: ruleXAssignment : ( ( rule__XAssignment__Alternatives ) ) ;
+    // InternalSignalDSL.g:451:1: ruleXAssignment : ( ( rule__XAssignment__Alternatives ) ) ;
     public final void ruleXAssignment() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:430:2: ( ( ( rule__XAssignment__Alternatives ) ) )
-            // InternalSignalDSL.g:431:2: ( ( rule__XAssignment__Alternatives ) )
+            // InternalSignalDSL.g:455:2: ( ( ( rule__XAssignment__Alternatives ) ) )
+            // InternalSignalDSL.g:456:2: ( ( rule__XAssignment__Alternatives ) )
             {
-            // InternalSignalDSL.g:431:2: ( ( rule__XAssignment__Alternatives ) )
-            // InternalSignalDSL.g:432:3: ( rule__XAssignment__Alternatives )
+            // InternalSignalDSL.g:456:2: ( ( rule__XAssignment__Alternatives ) )
+            // InternalSignalDSL.g:457:3: ( rule__XAssignment__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAssignmentAccess().getAlternatives()); 
             }
-            // InternalSignalDSL.g:433:3: ( rule__XAssignment__Alternatives )
-            // InternalSignalDSL.g:433:4: rule__XAssignment__Alternatives
+            // InternalSignalDSL.g:458:3: ( rule__XAssignment__Alternatives )
+            // InternalSignalDSL.g:458:4: rule__XAssignment__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__XAssignment__Alternatives();
@@ -1452,11 +1535,11 @@
 
 
     // $ANTLR start "entryRuleOpSingleAssign"
-    // InternalSignalDSL.g:442:1: entryRuleOpSingleAssign : ruleOpSingleAssign EOF ;
+    // InternalSignalDSL.g:467:1: entryRuleOpSingleAssign : ruleOpSingleAssign EOF ;
     public final void entryRuleOpSingleAssign() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:443:1: ( ruleOpSingleAssign EOF )
-            // InternalSignalDSL.g:444:1: ruleOpSingleAssign EOF
+            // InternalSignalDSL.g:468:1: ( ruleOpSingleAssign EOF )
+            // InternalSignalDSL.g:469:1: ruleOpSingleAssign EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpSingleAssignRule()); 
@@ -1486,17 +1569,17 @@
 
 
     // $ANTLR start "ruleOpSingleAssign"
-    // InternalSignalDSL.g:451:1: ruleOpSingleAssign : ( '=' ) ;
+    // InternalSignalDSL.g:476:1: ruleOpSingleAssign : ( '=' ) ;
     public final void ruleOpSingleAssign() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:455:2: ( ( '=' ) )
-            // InternalSignalDSL.g:456:2: ( '=' )
+            // InternalSignalDSL.g:480:2: ( ( '=' ) )
+            // InternalSignalDSL.g:481:2: ( '=' )
             {
-            // InternalSignalDSL.g:456:2: ( '=' )
-            // InternalSignalDSL.g:457:3: '='
+            // InternalSignalDSL.g:481:2: ( '=' )
+            // InternalSignalDSL.g:482:3: '='
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpSingleAssignAccess().getEqualsSignKeyword()); 
@@ -1527,11 +1610,11 @@
 
 
     // $ANTLR start "entryRuleOpMultiAssign"
-    // InternalSignalDSL.g:467:1: entryRuleOpMultiAssign : ruleOpMultiAssign EOF ;
+    // InternalSignalDSL.g:492:1: entryRuleOpMultiAssign : ruleOpMultiAssign EOF ;
     public final void entryRuleOpMultiAssign() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:468:1: ( ruleOpMultiAssign EOF )
-            // InternalSignalDSL.g:469:1: ruleOpMultiAssign EOF
+            // InternalSignalDSL.g:493:1: ( ruleOpMultiAssign EOF )
+            // InternalSignalDSL.g:494:1: ruleOpMultiAssign EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpMultiAssignRule()); 
@@ -1561,23 +1644,23 @@
 
 
     // $ANTLR start "ruleOpMultiAssign"
-    // InternalSignalDSL.g:476:1: ruleOpMultiAssign : ( ( rule__OpMultiAssign__Alternatives ) ) ;
+    // InternalSignalDSL.g:501:1: ruleOpMultiAssign : ( ( rule__OpMultiAssign__Alternatives ) ) ;
     public final void ruleOpMultiAssign() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:480:2: ( ( ( rule__OpMultiAssign__Alternatives ) ) )
-            // InternalSignalDSL.g:481:2: ( ( rule__OpMultiAssign__Alternatives ) )
+            // InternalSignalDSL.g:505:2: ( ( ( rule__OpMultiAssign__Alternatives ) ) )
+            // InternalSignalDSL.g:506:2: ( ( rule__OpMultiAssign__Alternatives ) )
             {
-            // InternalSignalDSL.g:481:2: ( ( rule__OpMultiAssign__Alternatives ) )
-            // InternalSignalDSL.g:482:3: ( rule__OpMultiAssign__Alternatives )
+            // InternalSignalDSL.g:506:2: ( ( rule__OpMultiAssign__Alternatives ) )
+            // InternalSignalDSL.g:507:3: ( rule__OpMultiAssign__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpMultiAssignAccess().getAlternatives()); 
             }
-            // InternalSignalDSL.g:483:3: ( rule__OpMultiAssign__Alternatives )
-            // InternalSignalDSL.g:483:4: rule__OpMultiAssign__Alternatives
+            // InternalSignalDSL.g:508:3: ( rule__OpMultiAssign__Alternatives )
+            // InternalSignalDSL.g:508:4: rule__OpMultiAssign__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__OpMultiAssign__Alternatives();
@@ -1612,11 +1695,11 @@
 
 
     // $ANTLR start "entryRuleXOrExpression"
-    // InternalSignalDSL.g:492:1: entryRuleXOrExpression : ruleXOrExpression EOF ;
+    // InternalSignalDSL.g:517:1: entryRuleXOrExpression : ruleXOrExpression EOF ;
     public final void entryRuleXOrExpression() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:493:1: ( ruleXOrExpression EOF )
-            // InternalSignalDSL.g:494:1: ruleXOrExpression EOF
+            // InternalSignalDSL.g:518:1: ( ruleXOrExpression EOF )
+            // InternalSignalDSL.g:519:1: ruleXOrExpression EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOrExpressionRule()); 
@@ -1646,23 +1729,23 @@
 
 
     // $ANTLR start "ruleXOrExpression"
-    // InternalSignalDSL.g:501:1: ruleXOrExpression : ( ( rule__XOrExpression__Group__0 ) ) ;
+    // InternalSignalDSL.g:526:1: ruleXOrExpression : ( ( rule__XOrExpression__Group__0 ) ) ;
     public final void ruleXOrExpression() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:505:2: ( ( ( rule__XOrExpression__Group__0 ) ) )
-            // InternalSignalDSL.g:506:2: ( ( rule__XOrExpression__Group__0 ) )
+            // InternalSignalDSL.g:530:2: ( ( ( rule__XOrExpression__Group__0 ) ) )
+            // InternalSignalDSL.g:531:2: ( ( rule__XOrExpression__Group__0 ) )
             {
-            // InternalSignalDSL.g:506:2: ( ( rule__XOrExpression__Group__0 ) )
-            // InternalSignalDSL.g:507:3: ( rule__XOrExpression__Group__0 )
+            // InternalSignalDSL.g:531:2: ( ( rule__XOrExpression__Group__0 ) )
+            // InternalSignalDSL.g:532:3: ( rule__XOrExpression__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOrExpressionAccess().getGroup()); 
             }
-            // InternalSignalDSL.g:508:3: ( rule__XOrExpression__Group__0 )
-            // InternalSignalDSL.g:508:4: rule__XOrExpression__Group__0
+            // InternalSignalDSL.g:533:3: ( rule__XOrExpression__Group__0 )
+            // InternalSignalDSL.g:533:4: rule__XOrExpression__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XOrExpression__Group__0();
@@ -1697,11 +1780,11 @@
 
 
     // $ANTLR start "entryRuleOpOr"
-    // InternalSignalDSL.g:517:1: entryRuleOpOr : ruleOpOr EOF ;
+    // InternalSignalDSL.g:542:1: entryRuleOpOr : ruleOpOr EOF ;
     public final void entryRuleOpOr() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:518:1: ( ruleOpOr EOF )
-            // InternalSignalDSL.g:519:1: ruleOpOr EOF
+            // InternalSignalDSL.g:543:1: ( ruleOpOr EOF )
+            // InternalSignalDSL.g:544:1: ruleOpOr EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpOrRule()); 
@@ -1731,17 +1814,17 @@
 
 
     // $ANTLR start "ruleOpOr"
-    // InternalSignalDSL.g:526:1: ruleOpOr : ( '||' ) ;
+    // InternalSignalDSL.g:551:1: ruleOpOr : ( '||' ) ;
     public final void ruleOpOr() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:530:2: ( ( '||' ) )
-            // InternalSignalDSL.g:531:2: ( '||' )
+            // InternalSignalDSL.g:555:2: ( ( '||' ) )
+            // InternalSignalDSL.g:556:2: ( '||' )
             {
-            // InternalSignalDSL.g:531:2: ( '||' )
-            // InternalSignalDSL.g:532:3: '||'
+            // InternalSignalDSL.g:556:2: ( '||' )
+            // InternalSignalDSL.g:557:3: '||'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpOrAccess().getVerticalLineVerticalLineKeyword()); 
@@ -1772,11 +1855,11 @@
 
 
     // $ANTLR start "entryRuleXAndExpression"
-    // InternalSignalDSL.g:542:1: entryRuleXAndExpression : ruleXAndExpression EOF ;
+    // InternalSignalDSL.g:567:1: entryRuleXAndExpression : ruleXAndExpression EOF ;
     public final void entryRuleXAndExpression() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:543:1: ( ruleXAndExpression EOF )
-            // InternalSignalDSL.g:544:1: ruleXAndExpression EOF
+            // InternalSignalDSL.g:568:1: ( ruleXAndExpression EOF )
+            // InternalSignalDSL.g:569:1: ruleXAndExpression EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAndExpressionRule()); 
@@ -1806,23 +1889,23 @@
 
 
     // $ANTLR start "ruleXAndExpression"
-    // InternalSignalDSL.g:551:1: ruleXAndExpression : ( ( rule__XAndExpression__Group__0 ) ) ;
+    // InternalSignalDSL.g:576:1: ruleXAndExpression : ( ( rule__XAndExpression__Group__0 ) ) ;
     public final void ruleXAndExpression() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:555:2: ( ( ( rule__XAndExpression__Group__0 ) ) )
-            // InternalSignalDSL.g:556:2: ( ( rule__XAndExpression__Group__0 ) )
+            // InternalSignalDSL.g:580:2: ( ( ( rule__XAndExpression__Group__0 ) ) )
+            // InternalSignalDSL.g:581:2: ( ( rule__XAndExpression__Group__0 ) )
             {
-            // InternalSignalDSL.g:556:2: ( ( rule__XAndExpression__Group__0 ) )
-            // InternalSignalDSL.g:557:3: ( rule__XAndExpression__Group__0 )
+            // InternalSignalDSL.g:581:2: ( ( rule__XAndExpression__Group__0 ) )
+            // InternalSignalDSL.g:582:3: ( rule__XAndExpression__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAndExpressionAccess().getGroup()); 
             }
-            // InternalSignalDSL.g:558:3: ( rule__XAndExpression__Group__0 )
-            // InternalSignalDSL.g:558:4: rule__XAndExpression__Group__0
+            // InternalSignalDSL.g:583:3: ( rule__XAndExpression__Group__0 )
+            // InternalSignalDSL.g:583:4: rule__XAndExpression__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XAndExpression__Group__0();
@@ -1857,11 +1940,11 @@
 
 
     // $ANTLR start "entryRuleOpAnd"
-    // InternalSignalDSL.g:567:1: entryRuleOpAnd : ruleOpAnd EOF ;
+    // InternalSignalDSL.g:592:1: entryRuleOpAnd : ruleOpAnd EOF ;
     public final void entryRuleOpAnd() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:568:1: ( ruleOpAnd EOF )
-            // InternalSignalDSL.g:569:1: ruleOpAnd EOF
+            // InternalSignalDSL.g:593:1: ( ruleOpAnd EOF )
+            // InternalSignalDSL.g:594:1: ruleOpAnd EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpAndRule()); 
@@ -1891,17 +1974,17 @@
 
 
     // $ANTLR start "ruleOpAnd"
-    // InternalSignalDSL.g:576:1: ruleOpAnd : ( '&&' ) ;
+    // InternalSignalDSL.g:601:1: ruleOpAnd : ( '&&' ) ;
     public final void ruleOpAnd() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:580:2: ( ( '&&' ) )
-            // InternalSignalDSL.g:581:2: ( '&&' )
+            // InternalSignalDSL.g:605:2: ( ( '&&' ) )
+            // InternalSignalDSL.g:606:2: ( '&&' )
             {
-            // InternalSignalDSL.g:581:2: ( '&&' )
-            // InternalSignalDSL.g:582:3: '&&'
+            // InternalSignalDSL.g:606:2: ( '&&' )
+            // InternalSignalDSL.g:607:3: '&&'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpAndAccess().getAmpersandAmpersandKeyword()); 
@@ -1932,11 +2015,11 @@
 
 
     // $ANTLR start "entryRuleXEqualityExpression"
-    // InternalSignalDSL.g:592:1: entryRuleXEqualityExpression : ruleXEqualityExpression EOF ;
+    // InternalSignalDSL.g:617:1: entryRuleXEqualityExpression : ruleXEqualityExpression EOF ;
     public final void entryRuleXEqualityExpression() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:593:1: ( ruleXEqualityExpression EOF )
-            // InternalSignalDSL.g:594:1: ruleXEqualityExpression EOF
+            // InternalSignalDSL.g:618:1: ( ruleXEqualityExpression EOF )
+            // InternalSignalDSL.g:619:1: ruleXEqualityExpression EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXEqualityExpressionRule()); 
@@ -1966,23 +2049,23 @@
 
 
     // $ANTLR start "ruleXEqualityExpression"
-    // InternalSignalDSL.g:601:1: ruleXEqualityExpression : ( ( rule__XEqualityExpression__Group__0 ) ) ;
+    // InternalSignalDSL.g:626:1: ruleXEqualityExpression : ( ( rule__XEqualityExpression__Group__0 ) ) ;
     public final void ruleXEqualityExpression() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:605:2: ( ( ( rule__XEqualityExpression__Group__0 ) ) )
-            // InternalSignalDSL.g:606:2: ( ( rule__XEqualityExpression__Group__0 ) )
+            // InternalSignalDSL.g:630:2: ( ( ( rule__XEqualityExpression__Group__0 ) ) )
+            // InternalSignalDSL.g:631:2: ( ( rule__XEqualityExpression__Group__0 ) )
             {
-            // InternalSignalDSL.g:606:2: ( ( rule__XEqualityExpression__Group__0 ) )
-            // InternalSignalDSL.g:607:3: ( rule__XEqualityExpression__Group__0 )
+            // InternalSignalDSL.g:631:2: ( ( rule__XEqualityExpression__Group__0 ) )
+            // InternalSignalDSL.g:632:3: ( rule__XEqualityExpression__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXEqualityExpressionAccess().getGroup()); 
             }
-            // InternalSignalDSL.g:608:3: ( rule__XEqualityExpression__Group__0 )
-            // InternalSignalDSL.g:608:4: rule__XEqualityExpression__Group__0
+            // InternalSignalDSL.g:633:3: ( rule__XEqualityExpression__Group__0 )
+            // InternalSignalDSL.g:633:4: rule__XEqualityExpression__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XEqualityExpression__Group__0();
@@ -2017,11 +2100,11 @@
 
 
     // $ANTLR start "entryRuleOpEquality"
-    // InternalSignalDSL.g:617:1: entryRuleOpEquality : ruleOpEquality EOF ;
+    // InternalSignalDSL.g:642:1: entryRuleOpEquality : ruleOpEquality EOF ;
     public final void entryRuleOpEquality() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:618:1: ( ruleOpEquality EOF )
-            // InternalSignalDSL.g:619:1: ruleOpEquality EOF
+            // InternalSignalDSL.g:643:1: ( ruleOpEquality EOF )
+            // InternalSignalDSL.g:644:1: ruleOpEquality EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpEqualityRule()); 
@@ -2051,23 +2134,23 @@
 
 
     // $ANTLR start "ruleOpEquality"
-    // InternalSignalDSL.g:626:1: ruleOpEquality : ( ( rule__OpEquality__Alternatives ) ) ;
+    // InternalSignalDSL.g:651:1: ruleOpEquality : ( ( rule__OpEquality__Alternatives ) ) ;
     public final void ruleOpEquality() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:630:2: ( ( ( rule__OpEquality__Alternatives ) ) )
-            // InternalSignalDSL.g:631:2: ( ( rule__OpEquality__Alternatives ) )
+            // InternalSignalDSL.g:655:2: ( ( ( rule__OpEquality__Alternatives ) ) )
+            // InternalSignalDSL.g:656:2: ( ( rule__OpEquality__Alternatives ) )
             {
-            // InternalSignalDSL.g:631:2: ( ( rule__OpEquality__Alternatives ) )
-            // InternalSignalDSL.g:632:3: ( rule__OpEquality__Alternatives )
+            // InternalSignalDSL.g:656:2: ( ( rule__OpEquality__Alternatives ) )
+            // InternalSignalDSL.g:657:3: ( rule__OpEquality__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpEqualityAccess().getAlternatives()); 
             }
-            // InternalSignalDSL.g:633:3: ( rule__OpEquality__Alternatives )
-            // InternalSignalDSL.g:633:4: rule__OpEquality__Alternatives
+            // InternalSignalDSL.g:658:3: ( rule__OpEquality__Alternatives )
+            // InternalSignalDSL.g:658:4: rule__OpEquality__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__OpEquality__Alternatives();
@@ -2102,11 +2185,11 @@
 
 
     // $ANTLR start "entryRuleXRelationalExpression"
-    // InternalSignalDSL.g:642:1: entryRuleXRelationalExpression : ruleXRelationalExpression EOF ;
+    // InternalSignalDSL.g:667:1: entryRuleXRelationalExpression : ruleXRelationalExpression EOF ;
     public final void entryRuleXRelationalExpression() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:643:1: ( ruleXRelationalExpression EOF )
-            // InternalSignalDSL.g:644:1: ruleXRelationalExpression EOF
+            // InternalSignalDSL.g:668:1: ( ruleXRelationalExpression EOF )
+            // InternalSignalDSL.g:669:1: ruleXRelationalExpression EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXRelationalExpressionRule()); 
@@ -2136,23 +2219,23 @@
 
 
     // $ANTLR start "ruleXRelationalExpression"
-    // InternalSignalDSL.g:651:1: ruleXRelationalExpression : ( ( rule__XRelationalExpression__Group__0 ) ) ;
+    // InternalSignalDSL.g:676:1: ruleXRelationalExpression : ( ( rule__XRelationalExpression__Group__0 ) ) ;
     public final void ruleXRelationalExpression() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:655:2: ( ( ( rule__XRelationalExpression__Group__0 ) ) )
-            // InternalSignalDSL.g:656:2: ( ( rule__XRelationalExpression__Group__0 ) )
+            // InternalSignalDSL.g:680:2: ( ( ( rule__XRelationalExpression__Group__0 ) ) )
+            // InternalSignalDSL.g:681:2: ( ( rule__XRelationalExpression__Group__0 ) )
             {
-            // InternalSignalDSL.g:656:2: ( ( rule__XRelationalExpression__Group__0 ) )
-            // InternalSignalDSL.g:657:3: ( rule__XRelationalExpression__Group__0 )
+            // InternalSignalDSL.g:681:2: ( ( rule__XRelationalExpression__Group__0 ) )
+            // InternalSignalDSL.g:682:3: ( rule__XRelationalExpression__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXRelationalExpressionAccess().getGroup()); 
             }
-            // InternalSignalDSL.g:658:3: ( rule__XRelationalExpression__Group__0 )
-            // InternalSignalDSL.g:658:4: rule__XRelationalExpression__Group__0
+            // InternalSignalDSL.g:683:3: ( rule__XRelationalExpression__Group__0 )
+            // InternalSignalDSL.g:683:4: rule__XRelationalExpression__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XRelationalExpression__Group__0();
@@ -2187,11 +2270,11 @@
 
 
     // $ANTLR start "entryRuleOpCompare"
-    // InternalSignalDSL.g:667:1: entryRuleOpCompare : ruleOpCompare EOF ;
+    // InternalSignalDSL.g:692:1: entryRuleOpCompare : ruleOpCompare EOF ;
     public final void entryRuleOpCompare() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:668:1: ( ruleOpCompare EOF )
-            // InternalSignalDSL.g:669:1: ruleOpCompare EOF
+            // InternalSignalDSL.g:693:1: ( ruleOpCompare EOF )
+            // InternalSignalDSL.g:694:1: ruleOpCompare EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpCompareRule()); 
@@ -2221,23 +2304,23 @@
 
 
     // $ANTLR start "ruleOpCompare"
-    // InternalSignalDSL.g:676:1: ruleOpCompare : ( ( rule__OpCompare__Alternatives ) ) ;
+    // InternalSignalDSL.g:701:1: ruleOpCompare : ( ( rule__OpCompare__Alternatives ) ) ;
     public final void ruleOpCompare() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:680:2: ( ( ( rule__OpCompare__Alternatives ) ) )
-            // InternalSignalDSL.g:681:2: ( ( rule__OpCompare__Alternatives ) )
+            // InternalSignalDSL.g:705:2: ( ( ( rule__OpCompare__Alternatives ) ) )
+            // InternalSignalDSL.g:706:2: ( ( rule__OpCompare__Alternatives ) )
             {
-            // InternalSignalDSL.g:681:2: ( ( rule__OpCompare__Alternatives ) )
-            // InternalSignalDSL.g:682:3: ( rule__OpCompare__Alternatives )
+            // InternalSignalDSL.g:706:2: ( ( rule__OpCompare__Alternatives ) )
+            // InternalSignalDSL.g:707:3: ( rule__OpCompare__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpCompareAccess().getAlternatives()); 
             }
-            // InternalSignalDSL.g:683:3: ( rule__OpCompare__Alternatives )
-            // InternalSignalDSL.g:683:4: rule__OpCompare__Alternatives
+            // InternalSignalDSL.g:708:3: ( rule__OpCompare__Alternatives )
+            // InternalSignalDSL.g:708:4: rule__OpCompare__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__OpCompare__Alternatives();
@@ -2272,11 +2355,11 @@
 
 
     // $ANTLR start "entryRuleXOtherOperatorExpression"
-    // InternalSignalDSL.g:692:1: entryRuleXOtherOperatorExpression : ruleXOtherOperatorExpression EOF ;
+    // InternalSignalDSL.g:717:1: entryRuleXOtherOperatorExpression : ruleXOtherOperatorExpression EOF ;
     public final void entryRuleXOtherOperatorExpression() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:693:1: ( ruleXOtherOperatorExpression EOF )
-            // InternalSignalDSL.g:694:1: ruleXOtherOperatorExpression EOF
+            // InternalSignalDSL.g:718:1: ( ruleXOtherOperatorExpression EOF )
+            // InternalSignalDSL.g:719:1: ruleXOtherOperatorExpression EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOtherOperatorExpressionRule()); 
@@ -2306,23 +2389,23 @@
 
 
     // $ANTLR start "ruleXOtherOperatorExpression"
-    // InternalSignalDSL.g:701:1: ruleXOtherOperatorExpression : ( ( rule__XOtherOperatorExpression__Group__0 ) ) ;
+    // InternalSignalDSL.g:726:1: ruleXOtherOperatorExpression : ( ( rule__XOtherOperatorExpression__Group__0 ) ) ;
     public final void ruleXOtherOperatorExpression() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:705:2: ( ( ( rule__XOtherOperatorExpression__Group__0 ) ) )
-            // InternalSignalDSL.g:706:2: ( ( rule__XOtherOperatorExpression__Group__0 ) )
+            // InternalSignalDSL.g:730:2: ( ( ( rule__XOtherOperatorExpression__Group__0 ) ) )
+            // InternalSignalDSL.g:731:2: ( ( rule__XOtherOperatorExpression__Group__0 ) )
             {
-            // InternalSignalDSL.g:706:2: ( ( rule__XOtherOperatorExpression__Group__0 ) )
-            // InternalSignalDSL.g:707:3: ( rule__XOtherOperatorExpression__Group__0 )
+            // InternalSignalDSL.g:731:2: ( ( rule__XOtherOperatorExpression__Group__0 ) )
+            // InternalSignalDSL.g:732:3: ( rule__XOtherOperatorExpression__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOtherOperatorExpressionAccess().getGroup()); 
             }
-            // InternalSignalDSL.g:708:3: ( rule__XOtherOperatorExpression__Group__0 )
-            // InternalSignalDSL.g:708:4: rule__XOtherOperatorExpression__Group__0
+            // InternalSignalDSL.g:733:3: ( rule__XOtherOperatorExpression__Group__0 )
+            // InternalSignalDSL.g:733:4: rule__XOtherOperatorExpression__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XOtherOperatorExpression__Group__0();
@@ -2357,11 +2440,11 @@
 
 
     // $ANTLR start "entryRuleOpOther"
-    // InternalSignalDSL.g:717:1: entryRuleOpOther : ruleOpOther EOF ;
+    // InternalSignalDSL.g:742:1: entryRuleOpOther : ruleOpOther EOF ;
     public final void entryRuleOpOther() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:718:1: ( ruleOpOther EOF )
-            // InternalSignalDSL.g:719:1: ruleOpOther EOF
+            // InternalSignalDSL.g:743:1: ( ruleOpOther EOF )
+            // InternalSignalDSL.g:744:1: ruleOpOther EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpOtherRule()); 
@@ -2391,23 +2474,23 @@
 
 
     // $ANTLR start "ruleOpOther"
-    // InternalSignalDSL.g:726:1: ruleOpOther : ( ( rule__OpOther__Alternatives ) ) ;
+    // InternalSignalDSL.g:751:1: ruleOpOther : ( ( rule__OpOther__Alternatives ) ) ;
     public final void ruleOpOther() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:730:2: ( ( ( rule__OpOther__Alternatives ) ) )
-            // InternalSignalDSL.g:731:2: ( ( rule__OpOther__Alternatives ) )
+            // InternalSignalDSL.g:755:2: ( ( ( rule__OpOther__Alternatives ) ) )
+            // InternalSignalDSL.g:756:2: ( ( rule__OpOther__Alternatives ) )
             {
-            // InternalSignalDSL.g:731:2: ( ( rule__OpOther__Alternatives ) )
-            // InternalSignalDSL.g:732:3: ( rule__OpOther__Alternatives )
+            // InternalSignalDSL.g:756:2: ( ( rule__OpOther__Alternatives ) )
+            // InternalSignalDSL.g:757:3: ( rule__OpOther__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpOtherAccess().getAlternatives()); 
             }
-            // InternalSignalDSL.g:733:3: ( rule__OpOther__Alternatives )
-            // InternalSignalDSL.g:733:4: rule__OpOther__Alternatives
+            // InternalSignalDSL.g:758:3: ( rule__OpOther__Alternatives )
+            // InternalSignalDSL.g:758:4: rule__OpOther__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__OpOther__Alternatives();
@@ -2442,11 +2525,11 @@
 
 
     // $ANTLR start "entryRuleXAdditiveExpression"
-    // InternalSignalDSL.g:742:1: entryRuleXAdditiveExpression : ruleXAdditiveExpression EOF ;
+    // InternalSignalDSL.g:767:1: entryRuleXAdditiveExpression : ruleXAdditiveExpression EOF ;
     public final void entryRuleXAdditiveExpression() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:743:1: ( ruleXAdditiveExpression EOF )
-            // InternalSignalDSL.g:744:1: ruleXAdditiveExpression EOF
+            // InternalSignalDSL.g:768:1: ( ruleXAdditiveExpression EOF )
+            // InternalSignalDSL.g:769:1: ruleXAdditiveExpression EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAdditiveExpressionRule()); 
@@ -2476,23 +2559,23 @@
 
 
     // $ANTLR start "ruleXAdditiveExpression"
-    // InternalSignalDSL.g:751:1: ruleXAdditiveExpression : ( ( rule__XAdditiveExpression__Group__0 ) ) ;
+    // InternalSignalDSL.g:776:1: ruleXAdditiveExpression : ( ( rule__XAdditiveExpression__Group__0 ) ) ;
     public final void ruleXAdditiveExpression() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:755:2: ( ( ( rule__XAdditiveExpression__Group__0 ) ) )
-            // InternalSignalDSL.g:756:2: ( ( rule__XAdditiveExpression__Group__0 ) )
+            // InternalSignalDSL.g:780:2: ( ( ( rule__XAdditiveExpression__Group__0 ) ) )
+            // InternalSignalDSL.g:781:2: ( ( rule__XAdditiveExpression__Group__0 ) )
             {
-            // InternalSignalDSL.g:756:2: ( ( rule__XAdditiveExpression__Group__0 ) )
-            // InternalSignalDSL.g:757:3: ( rule__XAdditiveExpression__Group__0 )
+            // InternalSignalDSL.g:781:2: ( ( rule__XAdditiveExpression__Group__0 ) )
+            // InternalSignalDSL.g:782:3: ( rule__XAdditiveExpression__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAdditiveExpressionAccess().getGroup()); 
             }
-            // InternalSignalDSL.g:758:3: ( rule__XAdditiveExpression__Group__0 )
-            // InternalSignalDSL.g:758:4: rule__XAdditiveExpression__Group__0
+            // InternalSignalDSL.g:783:3: ( rule__XAdditiveExpression__Group__0 )
+            // InternalSignalDSL.g:783:4: rule__XAdditiveExpression__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XAdditiveExpression__Group__0();
@@ -2527,11 +2610,11 @@
 
 
     // $ANTLR start "entryRuleOpAdd"
-    // InternalSignalDSL.g:767:1: entryRuleOpAdd : ruleOpAdd EOF ;
+    // InternalSignalDSL.g:792:1: entryRuleOpAdd : ruleOpAdd EOF ;
     public final void entryRuleOpAdd() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:768:1: ( ruleOpAdd EOF )
-            // InternalSignalDSL.g:769:1: ruleOpAdd EOF
+            // InternalSignalDSL.g:793:1: ( ruleOpAdd EOF )
+            // InternalSignalDSL.g:794:1: ruleOpAdd EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpAddRule()); 
@@ -2561,23 +2644,23 @@
 
 
     // $ANTLR start "ruleOpAdd"
-    // InternalSignalDSL.g:776:1: ruleOpAdd : ( ( rule__OpAdd__Alternatives ) ) ;
+    // InternalSignalDSL.g:801:1: ruleOpAdd : ( ( rule__OpAdd__Alternatives ) ) ;
     public final void ruleOpAdd() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:780:2: ( ( ( rule__OpAdd__Alternatives ) ) )
-            // InternalSignalDSL.g:781:2: ( ( rule__OpAdd__Alternatives ) )
+            // InternalSignalDSL.g:805:2: ( ( ( rule__OpAdd__Alternatives ) ) )
+            // InternalSignalDSL.g:806:2: ( ( rule__OpAdd__Alternatives ) )
             {
-            // InternalSignalDSL.g:781:2: ( ( rule__OpAdd__Alternatives ) )
-            // InternalSignalDSL.g:782:3: ( rule__OpAdd__Alternatives )
+            // InternalSignalDSL.g:806:2: ( ( rule__OpAdd__Alternatives ) )
+            // InternalSignalDSL.g:807:3: ( rule__OpAdd__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpAddAccess().getAlternatives()); 
             }
-            // InternalSignalDSL.g:783:3: ( rule__OpAdd__Alternatives )
-            // InternalSignalDSL.g:783:4: rule__OpAdd__Alternatives
+            // InternalSignalDSL.g:808:3: ( rule__OpAdd__Alternatives )
+            // InternalSignalDSL.g:808:4: rule__OpAdd__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__OpAdd__Alternatives();
@@ -2612,11 +2695,11 @@
 
 
     // $ANTLR start "entryRuleXMultiplicativeExpression"
-    // InternalSignalDSL.g:792:1: entryRuleXMultiplicativeExpression : ruleXMultiplicativeExpression EOF ;
+    // InternalSignalDSL.g:817:1: entryRuleXMultiplicativeExpression : ruleXMultiplicativeExpression EOF ;
     public final void entryRuleXMultiplicativeExpression() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:793:1: ( ruleXMultiplicativeExpression EOF )
-            // InternalSignalDSL.g:794:1: ruleXMultiplicativeExpression EOF
+            // InternalSignalDSL.g:818:1: ( ruleXMultiplicativeExpression EOF )
+            // InternalSignalDSL.g:819:1: ruleXMultiplicativeExpression EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMultiplicativeExpressionRule()); 
@@ -2646,23 +2729,23 @@
 
 
     // $ANTLR start "ruleXMultiplicativeExpression"
-    // InternalSignalDSL.g:801:1: ruleXMultiplicativeExpression : ( ( rule__XMultiplicativeExpression__Group__0 ) ) ;
+    // InternalSignalDSL.g:826:1: ruleXMultiplicativeExpression : ( ( rule__XMultiplicativeExpression__Group__0 ) ) ;
     public final void ruleXMultiplicativeExpression() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:805:2: ( ( ( rule__XMultiplicativeExpression__Group__0 ) ) )
-            // InternalSignalDSL.g:806:2: ( ( rule__XMultiplicativeExpression__Group__0 ) )
+            // InternalSignalDSL.g:830:2: ( ( ( rule__XMultiplicativeExpression__Group__0 ) ) )
+            // InternalSignalDSL.g:831:2: ( ( rule__XMultiplicativeExpression__Group__0 ) )
             {
-            // InternalSignalDSL.g:806:2: ( ( rule__XMultiplicativeExpression__Group__0 ) )
-            // InternalSignalDSL.g:807:3: ( rule__XMultiplicativeExpression__Group__0 )
+            // InternalSignalDSL.g:831:2: ( ( rule__XMultiplicativeExpression__Group__0 ) )
+            // InternalSignalDSL.g:832:3: ( rule__XMultiplicativeExpression__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMultiplicativeExpressionAccess().getGroup()); 
             }
-            // InternalSignalDSL.g:808:3: ( rule__XMultiplicativeExpression__Group__0 )
-            // InternalSignalDSL.g:808:4: rule__XMultiplicativeExpression__Group__0
+            // InternalSignalDSL.g:833:3: ( rule__XMultiplicativeExpression__Group__0 )
+            // InternalSignalDSL.g:833:4: rule__XMultiplicativeExpression__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XMultiplicativeExpression__Group__0();
@@ -2697,11 +2780,11 @@
 
 
     // $ANTLR start "entryRuleOpMulti"
-    // InternalSignalDSL.g:817:1: entryRuleOpMulti : ruleOpMulti EOF ;
+    // InternalSignalDSL.g:842:1: entryRuleOpMulti : ruleOpMulti EOF ;
     public final void entryRuleOpMulti() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:818:1: ( ruleOpMulti EOF )
-            // InternalSignalDSL.g:819:1: ruleOpMulti EOF
+            // InternalSignalDSL.g:843:1: ( ruleOpMulti EOF )
+            // InternalSignalDSL.g:844:1: ruleOpMulti EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpMultiRule()); 
@@ -2731,23 +2814,23 @@
 
 
     // $ANTLR start "ruleOpMulti"
-    // InternalSignalDSL.g:826:1: ruleOpMulti : ( ( rule__OpMulti__Alternatives ) ) ;
+    // InternalSignalDSL.g:851:1: ruleOpMulti : ( ( rule__OpMulti__Alternatives ) ) ;
     public final void ruleOpMulti() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:830:2: ( ( ( rule__OpMulti__Alternatives ) ) )
-            // InternalSignalDSL.g:831:2: ( ( rule__OpMulti__Alternatives ) )
+            // InternalSignalDSL.g:855:2: ( ( ( rule__OpMulti__Alternatives ) ) )
+            // InternalSignalDSL.g:856:2: ( ( rule__OpMulti__Alternatives ) )
             {
-            // InternalSignalDSL.g:831:2: ( ( rule__OpMulti__Alternatives ) )
-            // InternalSignalDSL.g:832:3: ( rule__OpMulti__Alternatives )
+            // InternalSignalDSL.g:856:2: ( ( rule__OpMulti__Alternatives ) )
+            // InternalSignalDSL.g:857:3: ( rule__OpMulti__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpMultiAccess().getAlternatives()); 
             }
-            // InternalSignalDSL.g:833:3: ( rule__OpMulti__Alternatives )
-            // InternalSignalDSL.g:833:4: rule__OpMulti__Alternatives
+            // InternalSignalDSL.g:858:3: ( rule__OpMulti__Alternatives )
+            // InternalSignalDSL.g:858:4: rule__OpMulti__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__OpMulti__Alternatives();
@@ -2782,11 +2865,11 @@
 
 
     // $ANTLR start "entryRuleXUnaryOperation"
-    // InternalSignalDSL.g:842:1: entryRuleXUnaryOperation : ruleXUnaryOperation EOF ;
+    // InternalSignalDSL.g:867:1: entryRuleXUnaryOperation : ruleXUnaryOperation EOF ;
     public final void entryRuleXUnaryOperation() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:843:1: ( ruleXUnaryOperation EOF )
-            // InternalSignalDSL.g:844:1: ruleXUnaryOperation EOF
+            // InternalSignalDSL.g:868:1: ( ruleXUnaryOperation EOF )
+            // InternalSignalDSL.g:869:1: ruleXUnaryOperation EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXUnaryOperationRule()); 
@@ -2816,23 +2899,23 @@
 
 
     // $ANTLR start "ruleXUnaryOperation"
-    // InternalSignalDSL.g:851:1: ruleXUnaryOperation : ( ( rule__XUnaryOperation__Alternatives ) ) ;
+    // InternalSignalDSL.g:876:1: ruleXUnaryOperation : ( ( rule__XUnaryOperation__Alternatives ) ) ;
     public final void ruleXUnaryOperation() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:855:2: ( ( ( rule__XUnaryOperation__Alternatives ) ) )
-            // InternalSignalDSL.g:856:2: ( ( rule__XUnaryOperation__Alternatives ) )
+            // InternalSignalDSL.g:880:2: ( ( ( rule__XUnaryOperation__Alternatives ) ) )
+            // InternalSignalDSL.g:881:2: ( ( rule__XUnaryOperation__Alternatives ) )
             {
-            // InternalSignalDSL.g:856:2: ( ( rule__XUnaryOperation__Alternatives ) )
-            // InternalSignalDSL.g:857:3: ( rule__XUnaryOperation__Alternatives )
+            // InternalSignalDSL.g:881:2: ( ( rule__XUnaryOperation__Alternatives ) )
+            // InternalSignalDSL.g:882:3: ( rule__XUnaryOperation__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXUnaryOperationAccess().getAlternatives()); 
             }
-            // InternalSignalDSL.g:858:3: ( rule__XUnaryOperation__Alternatives )
-            // InternalSignalDSL.g:858:4: rule__XUnaryOperation__Alternatives
+            // InternalSignalDSL.g:883:3: ( rule__XUnaryOperation__Alternatives )
+            // InternalSignalDSL.g:883:4: rule__XUnaryOperation__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__XUnaryOperation__Alternatives();
@@ -2867,11 +2950,11 @@
 
 
     // $ANTLR start "entryRuleOpUnary"
-    // InternalSignalDSL.g:867:1: entryRuleOpUnary : ruleOpUnary EOF ;
+    // InternalSignalDSL.g:892:1: entryRuleOpUnary : ruleOpUnary EOF ;
     public final void entryRuleOpUnary() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:868:1: ( ruleOpUnary EOF )
-            // InternalSignalDSL.g:869:1: ruleOpUnary EOF
+            // InternalSignalDSL.g:893:1: ( ruleOpUnary EOF )
+            // InternalSignalDSL.g:894:1: ruleOpUnary EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpUnaryRule()); 
@@ -2901,23 +2984,23 @@
 
 
     // $ANTLR start "ruleOpUnary"
-    // InternalSignalDSL.g:876:1: ruleOpUnary : ( ( rule__OpUnary__Alternatives ) ) ;
+    // InternalSignalDSL.g:901:1: ruleOpUnary : ( ( rule__OpUnary__Alternatives ) ) ;
     public final void ruleOpUnary() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:880:2: ( ( ( rule__OpUnary__Alternatives ) ) )
-            // InternalSignalDSL.g:881:2: ( ( rule__OpUnary__Alternatives ) )
+            // InternalSignalDSL.g:905:2: ( ( ( rule__OpUnary__Alternatives ) ) )
+            // InternalSignalDSL.g:906:2: ( ( rule__OpUnary__Alternatives ) )
             {
-            // InternalSignalDSL.g:881:2: ( ( rule__OpUnary__Alternatives ) )
-            // InternalSignalDSL.g:882:3: ( rule__OpUnary__Alternatives )
+            // InternalSignalDSL.g:906:2: ( ( rule__OpUnary__Alternatives ) )
+            // InternalSignalDSL.g:907:3: ( rule__OpUnary__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpUnaryAccess().getAlternatives()); 
             }
-            // InternalSignalDSL.g:883:3: ( rule__OpUnary__Alternatives )
-            // InternalSignalDSL.g:883:4: rule__OpUnary__Alternatives
+            // InternalSignalDSL.g:908:3: ( rule__OpUnary__Alternatives )
+            // InternalSignalDSL.g:908:4: rule__OpUnary__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__OpUnary__Alternatives();
@@ -2952,11 +3035,11 @@
 
 
     // $ANTLR start "entryRuleXCastedExpression"
-    // InternalSignalDSL.g:892:1: entryRuleXCastedExpression : ruleXCastedExpression EOF ;
+    // InternalSignalDSL.g:917:1: entryRuleXCastedExpression : ruleXCastedExpression EOF ;
     public final void entryRuleXCastedExpression() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:893:1: ( ruleXCastedExpression EOF )
-            // InternalSignalDSL.g:894:1: ruleXCastedExpression EOF
+            // InternalSignalDSL.g:918:1: ( ruleXCastedExpression EOF )
+            // InternalSignalDSL.g:919:1: ruleXCastedExpression EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCastedExpressionRule()); 
@@ -2986,23 +3069,23 @@
 
 
     // $ANTLR start "ruleXCastedExpression"
-    // InternalSignalDSL.g:901:1: ruleXCastedExpression : ( ( rule__XCastedExpression__Group__0 ) ) ;
+    // InternalSignalDSL.g:926:1: ruleXCastedExpression : ( ( rule__XCastedExpression__Group__0 ) ) ;
     public final void ruleXCastedExpression() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:905:2: ( ( ( rule__XCastedExpression__Group__0 ) ) )
-            // InternalSignalDSL.g:906:2: ( ( rule__XCastedExpression__Group__0 ) )
+            // InternalSignalDSL.g:930:2: ( ( ( rule__XCastedExpression__Group__0 ) ) )
+            // InternalSignalDSL.g:931:2: ( ( rule__XCastedExpression__Group__0 ) )
             {
-            // InternalSignalDSL.g:906:2: ( ( rule__XCastedExpression__Group__0 ) )
-            // InternalSignalDSL.g:907:3: ( rule__XCastedExpression__Group__0 )
+            // InternalSignalDSL.g:931:2: ( ( rule__XCastedExpression__Group__0 ) )
+            // InternalSignalDSL.g:932:3: ( rule__XCastedExpression__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCastedExpressionAccess().getGroup()); 
             }
-            // InternalSignalDSL.g:908:3: ( rule__XCastedExpression__Group__0 )
-            // InternalSignalDSL.g:908:4: rule__XCastedExpression__Group__0
+            // InternalSignalDSL.g:933:3: ( rule__XCastedExpression__Group__0 )
+            // InternalSignalDSL.g:933:4: rule__XCastedExpression__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XCastedExpression__Group__0();
@@ -3037,11 +3120,11 @@
 
 
     // $ANTLR start "entryRuleXPostfixOperation"
-    // InternalSignalDSL.g:917:1: entryRuleXPostfixOperation : ruleXPostfixOperation EOF ;
+    // InternalSignalDSL.g:942:1: entryRuleXPostfixOperation : ruleXPostfixOperation EOF ;
     public final void entryRuleXPostfixOperation() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:918:1: ( ruleXPostfixOperation EOF )
-            // InternalSignalDSL.g:919:1: ruleXPostfixOperation EOF
+            // InternalSignalDSL.g:943:1: ( ruleXPostfixOperation EOF )
+            // InternalSignalDSL.g:944:1: ruleXPostfixOperation EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXPostfixOperationRule()); 
@@ -3071,23 +3154,23 @@
 
 
     // $ANTLR start "ruleXPostfixOperation"
-    // InternalSignalDSL.g:926:1: ruleXPostfixOperation : ( ( rule__XPostfixOperation__Group__0 ) ) ;
+    // InternalSignalDSL.g:951:1: ruleXPostfixOperation : ( ( rule__XPostfixOperation__Group__0 ) ) ;
     public final void ruleXPostfixOperation() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:930:2: ( ( ( rule__XPostfixOperation__Group__0 ) ) )
-            // InternalSignalDSL.g:931:2: ( ( rule__XPostfixOperation__Group__0 ) )
+            // InternalSignalDSL.g:955:2: ( ( ( rule__XPostfixOperation__Group__0 ) ) )
+            // InternalSignalDSL.g:956:2: ( ( rule__XPostfixOperation__Group__0 ) )
             {
-            // InternalSignalDSL.g:931:2: ( ( rule__XPostfixOperation__Group__0 ) )
-            // InternalSignalDSL.g:932:3: ( rule__XPostfixOperation__Group__0 )
+            // InternalSignalDSL.g:956:2: ( ( rule__XPostfixOperation__Group__0 ) )
+            // InternalSignalDSL.g:957:3: ( rule__XPostfixOperation__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXPostfixOperationAccess().getGroup()); 
             }
-            // InternalSignalDSL.g:933:3: ( rule__XPostfixOperation__Group__0 )
-            // InternalSignalDSL.g:933:4: rule__XPostfixOperation__Group__0
+            // InternalSignalDSL.g:958:3: ( rule__XPostfixOperation__Group__0 )
+            // InternalSignalDSL.g:958:4: rule__XPostfixOperation__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XPostfixOperation__Group__0();
@@ -3122,11 +3205,11 @@
 
 
     // $ANTLR start "entryRuleOpPostfix"
-    // InternalSignalDSL.g:942:1: entryRuleOpPostfix : ruleOpPostfix EOF ;
+    // InternalSignalDSL.g:967:1: entryRuleOpPostfix : ruleOpPostfix EOF ;
     public final void entryRuleOpPostfix() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:943:1: ( ruleOpPostfix EOF )
-            // InternalSignalDSL.g:944:1: ruleOpPostfix EOF
+            // InternalSignalDSL.g:968:1: ( ruleOpPostfix EOF )
+            // InternalSignalDSL.g:969:1: ruleOpPostfix EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpPostfixRule()); 
@@ -3156,23 +3239,23 @@
 
 
     // $ANTLR start "ruleOpPostfix"
-    // InternalSignalDSL.g:951:1: ruleOpPostfix : ( ( rule__OpPostfix__Alternatives ) ) ;
+    // InternalSignalDSL.g:976:1: ruleOpPostfix : ( ( rule__OpPostfix__Alternatives ) ) ;
     public final void ruleOpPostfix() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:955:2: ( ( ( rule__OpPostfix__Alternatives ) ) )
-            // InternalSignalDSL.g:956:2: ( ( rule__OpPostfix__Alternatives ) )
+            // InternalSignalDSL.g:980:2: ( ( ( rule__OpPostfix__Alternatives ) ) )
+            // InternalSignalDSL.g:981:2: ( ( rule__OpPostfix__Alternatives ) )
             {
-            // InternalSignalDSL.g:956:2: ( ( rule__OpPostfix__Alternatives ) )
-            // InternalSignalDSL.g:957:3: ( rule__OpPostfix__Alternatives )
+            // InternalSignalDSL.g:981:2: ( ( rule__OpPostfix__Alternatives ) )
+            // InternalSignalDSL.g:982:3: ( rule__OpPostfix__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpPostfixAccess().getAlternatives()); 
             }
-            // InternalSignalDSL.g:958:3: ( rule__OpPostfix__Alternatives )
-            // InternalSignalDSL.g:958:4: rule__OpPostfix__Alternatives
+            // InternalSignalDSL.g:983:3: ( rule__OpPostfix__Alternatives )
+            // InternalSignalDSL.g:983:4: rule__OpPostfix__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__OpPostfix__Alternatives();
@@ -3207,11 +3290,11 @@
 
 
     // $ANTLR start "entryRuleXMemberFeatureCall"
-    // InternalSignalDSL.g:967:1: entryRuleXMemberFeatureCall : ruleXMemberFeatureCall EOF ;
+    // InternalSignalDSL.g:992:1: entryRuleXMemberFeatureCall : ruleXMemberFeatureCall EOF ;
     public final void entryRuleXMemberFeatureCall() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:968:1: ( ruleXMemberFeatureCall EOF )
-            // InternalSignalDSL.g:969:1: ruleXMemberFeatureCall EOF
+            // InternalSignalDSL.g:993:1: ( ruleXMemberFeatureCall EOF )
+            // InternalSignalDSL.g:994:1: ruleXMemberFeatureCall EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallRule()); 
@@ -3241,23 +3324,23 @@
 
 
     // $ANTLR start "ruleXMemberFeatureCall"
-    // InternalSignalDSL.g:976:1: ruleXMemberFeatureCall : ( ( rule__XMemberFeatureCall__Group__0 ) ) ;
+    // InternalSignalDSL.g:1001:1: ruleXMemberFeatureCall : ( ( rule__XMemberFeatureCall__Group__0 ) ) ;
     public final void ruleXMemberFeatureCall() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:980:2: ( ( ( rule__XMemberFeatureCall__Group__0 ) ) )
-            // InternalSignalDSL.g:981:2: ( ( rule__XMemberFeatureCall__Group__0 ) )
+            // InternalSignalDSL.g:1005:2: ( ( ( rule__XMemberFeatureCall__Group__0 ) ) )
+            // InternalSignalDSL.g:1006:2: ( ( rule__XMemberFeatureCall__Group__0 ) )
             {
-            // InternalSignalDSL.g:981:2: ( ( rule__XMemberFeatureCall__Group__0 ) )
-            // InternalSignalDSL.g:982:3: ( rule__XMemberFeatureCall__Group__0 )
+            // InternalSignalDSL.g:1006:2: ( ( rule__XMemberFeatureCall__Group__0 ) )
+            // InternalSignalDSL.g:1007:3: ( rule__XMemberFeatureCall__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getGroup()); 
             }
-            // InternalSignalDSL.g:983:3: ( rule__XMemberFeatureCall__Group__0 )
-            // InternalSignalDSL.g:983:4: rule__XMemberFeatureCall__Group__0
+            // InternalSignalDSL.g:1008:3: ( rule__XMemberFeatureCall__Group__0 )
+            // InternalSignalDSL.g:1008:4: rule__XMemberFeatureCall__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__Group__0();
@@ -3292,11 +3375,11 @@
 
 
     // $ANTLR start "entryRuleXPrimaryExpression"
-    // InternalSignalDSL.g:992:1: entryRuleXPrimaryExpression : ruleXPrimaryExpression EOF ;
+    // InternalSignalDSL.g:1017:1: entryRuleXPrimaryExpression : ruleXPrimaryExpression EOF ;
     public final void entryRuleXPrimaryExpression() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:993:1: ( ruleXPrimaryExpression EOF )
-            // InternalSignalDSL.g:994:1: ruleXPrimaryExpression EOF
+            // InternalSignalDSL.g:1018:1: ( ruleXPrimaryExpression EOF )
+            // InternalSignalDSL.g:1019:1: ruleXPrimaryExpression EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXPrimaryExpressionRule()); 
@@ -3326,23 +3409,23 @@
 
 
     // $ANTLR start "ruleXPrimaryExpression"
-    // InternalSignalDSL.g:1001:1: ruleXPrimaryExpression : ( ( rule__XPrimaryExpression__Alternatives ) ) ;
+    // InternalSignalDSL.g:1026:1: ruleXPrimaryExpression : ( ( rule__XPrimaryExpression__Alternatives ) ) ;
     public final void ruleXPrimaryExpression() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:1005:2: ( ( ( rule__XPrimaryExpression__Alternatives ) ) )
-            // InternalSignalDSL.g:1006:2: ( ( rule__XPrimaryExpression__Alternatives ) )
+            // InternalSignalDSL.g:1030:2: ( ( ( rule__XPrimaryExpression__Alternatives ) ) )
+            // InternalSignalDSL.g:1031:2: ( ( rule__XPrimaryExpression__Alternatives ) )
             {
-            // InternalSignalDSL.g:1006:2: ( ( rule__XPrimaryExpression__Alternatives ) )
-            // InternalSignalDSL.g:1007:3: ( rule__XPrimaryExpression__Alternatives )
+            // InternalSignalDSL.g:1031:2: ( ( rule__XPrimaryExpression__Alternatives ) )
+            // InternalSignalDSL.g:1032:3: ( rule__XPrimaryExpression__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXPrimaryExpressionAccess().getAlternatives()); 
             }
-            // InternalSignalDSL.g:1008:3: ( rule__XPrimaryExpression__Alternatives )
-            // InternalSignalDSL.g:1008:4: rule__XPrimaryExpression__Alternatives
+            // InternalSignalDSL.g:1033:3: ( rule__XPrimaryExpression__Alternatives )
+            // InternalSignalDSL.g:1033:4: rule__XPrimaryExpression__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__XPrimaryExpression__Alternatives();
@@ -3377,11 +3460,11 @@
 
 
     // $ANTLR start "entryRuleXLiteral"
-    // InternalSignalDSL.g:1017:1: entryRuleXLiteral : ruleXLiteral EOF ;
+    // InternalSignalDSL.g:1042:1: entryRuleXLiteral : ruleXLiteral EOF ;
     public final void entryRuleXLiteral() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:1018:1: ( ruleXLiteral EOF )
-            // InternalSignalDSL.g:1019:1: ruleXLiteral EOF
+            // InternalSignalDSL.g:1043:1: ( ruleXLiteral EOF )
+            // InternalSignalDSL.g:1044:1: ruleXLiteral EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXLiteralRule()); 
@@ -3411,23 +3494,23 @@
 
 
     // $ANTLR start "ruleXLiteral"
-    // InternalSignalDSL.g:1026:1: ruleXLiteral : ( ( rule__XLiteral__Alternatives ) ) ;
+    // InternalSignalDSL.g:1051:1: ruleXLiteral : ( ( rule__XLiteral__Alternatives ) ) ;
     public final void ruleXLiteral() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:1030:2: ( ( ( rule__XLiteral__Alternatives ) ) )
-            // InternalSignalDSL.g:1031:2: ( ( rule__XLiteral__Alternatives ) )
+            // InternalSignalDSL.g:1055:2: ( ( ( rule__XLiteral__Alternatives ) ) )
+            // InternalSignalDSL.g:1056:2: ( ( rule__XLiteral__Alternatives ) )
             {
-            // InternalSignalDSL.g:1031:2: ( ( rule__XLiteral__Alternatives ) )
-            // InternalSignalDSL.g:1032:3: ( rule__XLiteral__Alternatives )
+            // InternalSignalDSL.g:1056:2: ( ( rule__XLiteral__Alternatives ) )
+            // InternalSignalDSL.g:1057:3: ( rule__XLiteral__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXLiteralAccess().getAlternatives()); 
             }
-            // InternalSignalDSL.g:1033:3: ( rule__XLiteral__Alternatives )
-            // InternalSignalDSL.g:1033:4: rule__XLiteral__Alternatives
+            // InternalSignalDSL.g:1058:3: ( rule__XLiteral__Alternatives )
+            // InternalSignalDSL.g:1058:4: rule__XLiteral__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__XLiteral__Alternatives();
@@ -3462,11 +3545,11 @@
 
 
     // $ANTLR start "entryRuleXCollectionLiteral"
-    // InternalSignalDSL.g:1042:1: entryRuleXCollectionLiteral : ruleXCollectionLiteral EOF ;
+    // InternalSignalDSL.g:1067:1: entryRuleXCollectionLiteral : ruleXCollectionLiteral EOF ;
     public final void entryRuleXCollectionLiteral() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:1043:1: ( ruleXCollectionLiteral EOF )
-            // InternalSignalDSL.g:1044:1: ruleXCollectionLiteral EOF
+            // InternalSignalDSL.g:1068:1: ( ruleXCollectionLiteral EOF )
+            // InternalSignalDSL.g:1069:1: ruleXCollectionLiteral EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCollectionLiteralRule()); 
@@ -3496,23 +3579,23 @@
 
 
     // $ANTLR start "ruleXCollectionLiteral"
-    // InternalSignalDSL.g:1051:1: ruleXCollectionLiteral : ( ( rule__XCollectionLiteral__Alternatives ) ) ;
+    // InternalSignalDSL.g:1076:1: ruleXCollectionLiteral : ( ( rule__XCollectionLiteral__Alternatives ) ) ;
     public final void ruleXCollectionLiteral() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:1055:2: ( ( ( rule__XCollectionLiteral__Alternatives ) ) )
-            // InternalSignalDSL.g:1056:2: ( ( rule__XCollectionLiteral__Alternatives ) )
+            // InternalSignalDSL.g:1080:2: ( ( ( rule__XCollectionLiteral__Alternatives ) ) )
+            // InternalSignalDSL.g:1081:2: ( ( rule__XCollectionLiteral__Alternatives ) )
             {
-            // InternalSignalDSL.g:1056:2: ( ( rule__XCollectionLiteral__Alternatives ) )
-            // InternalSignalDSL.g:1057:3: ( rule__XCollectionLiteral__Alternatives )
+            // InternalSignalDSL.g:1081:2: ( ( rule__XCollectionLiteral__Alternatives ) )
+            // InternalSignalDSL.g:1082:3: ( rule__XCollectionLiteral__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCollectionLiteralAccess().getAlternatives()); 
             }
-            // InternalSignalDSL.g:1058:3: ( rule__XCollectionLiteral__Alternatives )
-            // InternalSignalDSL.g:1058:4: rule__XCollectionLiteral__Alternatives
+            // InternalSignalDSL.g:1083:3: ( rule__XCollectionLiteral__Alternatives )
+            // InternalSignalDSL.g:1083:4: rule__XCollectionLiteral__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__XCollectionLiteral__Alternatives();
@@ -3547,11 +3630,11 @@
 
 
     // $ANTLR start "entryRuleXSetLiteral"
-    // InternalSignalDSL.g:1067:1: entryRuleXSetLiteral : ruleXSetLiteral EOF ;
+    // InternalSignalDSL.g:1092:1: entryRuleXSetLiteral : ruleXSetLiteral EOF ;
     public final void entryRuleXSetLiteral() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:1068:1: ( ruleXSetLiteral EOF )
-            // InternalSignalDSL.g:1069:1: ruleXSetLiteral EOF
+            // InternalSignalDSL.g:1093:1: ( ruleXSetLiteral EOF )
+            // InternalSignalDSL.g:1094:1: ruleXSetLiteral EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSetLiteralRule()); 
@@ -3581,23 +3664,23 @@
 
 
     // $ANTLR start "ruleXSetLiteral"
-    // InternalSignalDSL.g:1076:1: ruleXSetLiteral : ( ( rule__XSetLiteral__Group__0 ) ) ;
+    // InternalSignalDSL.g:1101:1: ruleXSetLiteral : ( ( rule__XSetLiteral__Group__0 ) ) ;
     public final void ruleXSetLiteral() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:1080:2: ( ( ( rule__XSetLiteral__Group__0 ) ) )
-            // InternalSignalDSL.g:1081:2: ( ( rule__XSetLiteral__Group__0 ) )
+            // InternalSignalDSL.g:1105:2: ( ( ( rule__XSetLiteral__Group__0 ) ) )
+            // InternalSignalDSL.g:1106:2: ( ( rule__XSetLiteral__Group__0 ) )
             {
-            // InternalSignalDSL.g:1081:2: ( ( rule__XSetLiteral__Group__0 ) )
-            // InternalSignalDSL.g:1082:3: ( rule__XSetLiteral__Group__0 )
+            // InternalSignalDSL.g:1106:2: ( ( rule__XSetLiteral__Group__0 ) )
+            // InternalSignalDSL.g:1107:3: ( rule__XSetLiteral__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSetLiteralAccess().getGroup()); 
             }
-            // InternalSignalDSL.g:1083:3: ( rule__XSetLiteral__Group__0 )
-            // InternalSignalDSL.g:1083:4: rule__XSetLiteral__Group__0
+            // InternalSignalDSL.g:1108:3: ( rule__XSetLiteral__Group__0 )
+            // InternalSignalDSL.g:1108:4: rule__XSetLiteral__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XSetLiteral__Group__0();
@@ -3632,11 +3715,11 @@
 
 
     // $ANTLR start "entryRuleXListLiteral"
-    // InternalSignalDSL.g:1092:1: entryRuleXListLiteral : ruleXListLiteral EOF ;
+    // InternalSignalDSL.g:1117:1: entryRuleXListLiteral : ruleXListLiteral EOF ;
     public final void entryRuleXListLiteral() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:1093:1: ( ruleXListLiteral EOF )
-            // InternalSignalDSL.g:1094:1: ruleXListLiteral EOF
+            // InternalSignalDSL.g:1118:1: ( ruleXListLiteral EOF )
+            // InternalSignalDSL.g:1119:1: ruleXListLiteral EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXListLiteralRule()); 
@@ -3666,23 +3749,23 @@
 
 
     // $ANTLR start "ruleXListLiteral"
-    // InternalSignalDSL.g:1101:1: ruleXListLiteral : ( ( rule__XListLiteral__Group__0 ) ) ;
+    // InternalSignalDSL.g:1126:1: ruleXListLiteral : ( ( rule__XListLiteral__Group__0 ) ) ;
     public final void ruleXListLiteral() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:1105:2: ( ( ( rule__XListLiteral__Group__0 ) ) )
-            // InternalSignalDSL.g:1106:2: ( ( rule__XListLiteral__Group__0 ) )
+            // InternalSignalDSL.g:1130:2: ( ( ( rule__XListLiteral__Group__0 ) ) )
+            // InternalSignalDSL.g:1131:2: ( ( rule__XListLiteral__Group__0 ) )
             {
-            // InternalSignalDSL.g:1106:2: ( ( rule__XListLiteral__Group__0 ) )
-            // InternalSignalDSL.g:1107:3: ( rule__XListLiteral__Group__0 )
+            // InternalSignalDSL.g:1131:2: ( ( rule__XListLiteral__Group__0 ) )
+            // InternalSignalDSL.g:1132:3: ( rule__XListLiteral__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXListLiteralAccess().getGroup()); 
             }
-            // InternalSignalDSL.g:1108:3: ( rule__XListLiteral__Group__0 )
-            // InternalSignalDSL.g:1108:4: rule__XListLiteral__Group__0
+            // InternalSignalDSL.g:1133:3: ( rule__XListLiteral__Group__0 )
+            // InternalSignalDSL.g:1133:4: rule__XListLiteral__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XListLiteral__Group__0();
@@ -3717,11 +3800,11 @@
 
 
     // $ANTLR start "entryRuleXClosure"
-    // InternalSignalDSL.g:1117:1: entryRuleXClosure : ruleXClosure EOF ;
+    // InternalSignalDSL.g:1142:1: entryRuleXClosure : ruleXClosure EOF ;
     public final void entryRuleXClosure() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:1118:1: ( ruleXClosure EOF )
-            // InternalSignalDSL.g:1119:1: ruleXClosure EOF
+            // InternalSignalDSL.g:1143:1: ( ruleXClosure EOF )
+            // InternalSignalDSL.g:1144:1: ruleXClosure EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXClosureRule()); 
@@ -3751,23 +3834,23 @@
 
 
     // $ANTLR start "ruleXClosure"
-    // InternalSignalDSL.g:1126:1: ruleXClosure : ( ( rule__XClosure__Group__0 ) ) ;
+    // InternalSignalDSL.g:1151:1: ruleXClosure : ( ( rule__XClosure__Group__0 ) ) ;
     public final void ruleXClosure() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:1130:2: ( ( ( rule__XClosure__Group__0 ) ) )
-            // InternalSignalDSL.g:1131:2: ( ( rule__XClosure__Group__0 ) )
+            // InternalSignalDSL.g:1155:2: ( ( ( rule__XClosure__Group__0 ) ) )
+            // InternalSignalDSL.g:1156:2: ( ( rule__XClosure__Group__0 ) )
             {
-            // InternalSignalDSL.g:1131:2: ( ( rule__XClosure__Group__0 ) )
-            // InternalSignalDSL.g:1132:3: ( rule__XClosure__Group__0 )
+            // InternalSignalDSL.g:1156:2: ( ( rule__XClosure__Group__0 ) )
+            // InternalSignalDSL.g:1157:3: ( rule__XClosure__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXClosureAccess().getGroup()); 
             }
-            // InternalSignalDSL.g:1133:3: ( rule__XClosure__Group__0 )
-            // InternalSignalDSL.g:1133:4: rule__XClosure__Group__0
+            // InternalSignalDSL.g:1158:3: ( rule__XClosure__Group__0 )
+            // InternalSignalDSL.g:1158:4: rule__XClosure__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XClosure__Group__0();
@@ -3802,11 +3885,11 @@
 
 
     // $ANTLR start "entryRuleXExpressionInClosure"
-    // InternalSignalDSL.g:1142:1: entryRuleXExpressionInClosure : ruleXExpressionInClosure EOF ;
+    // InternalSignalDSL.g:1167:1: entryRuleXExpressionInClosure : ruleXExpressionInClosure EOF ;
     public final void entryRuleXExpressionInClosure() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:1143:1: ( ruleXExpressionInClosure EOF )
-            // InternalSignalDSL.g:1144:1: ruleXExpressionInClosure EOF
+            // InternalSignalDSL.g:1168:1: ( ruleXExpressionInClosure EOF )
+            // InternalSignalDSL.g:1169:1: ruleXExpressionInClosure EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXExpressionInClosureRule()); 
@@ -3836,23 +3919,23 @@
 
 
     // $ANTLR start "ruleXExpressionInClosure"
-    // InternalSignalDSL.g:1151:1: ruleXExpressionInClosure : ( ( rule__XExpressionInClosure__Group__0 ) ) ;
+    // InternalSignalDSL.g:1176:1: ruleXExpressionInClosure : ( ( rule__XExpressionInClosure__Group__0 ) ) ;
     public final void ruleXExpressionInClosure() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:1155:2: ( ( ( rule__XExpressionInClosure__Group__0 ) ) )
-            // InternalSignalDSL.g:1156:2: ( ( rule__XExpressionInClosure__Group__0 ) )
+            // InternalSignalDSL.g:1180:2: ( ( ( rule__XExpressionInClosure__Group__0 ) ) )
+            // InternalSignalDSL.g:1181:2: ( ( rule__XExpressionInClosure__Group__0 ) )
             {
-            // InternalSignalDSL.g:1156:2: ( ( rule__XExpressionInClosure__Group__0 ) )
-            // InternalSignalDSL.g:1157:3: ( rule__XExpressionInClosure__Group__0 )
+            // InternalSignalDSL.g:1181:2: ( ( rule__XExpressionInClosure__Group__0 ) )
+            // InternalSignalDSL.g:1182:3: ( rule__XExpressionInClosure__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXExpressionInClosureAccess().getGroup()); 
             }
-            // InternalSignalDSL.g:1158:3: ( rule__XExpressionInClosure__Group__0 )
-            // InternalSignalDSL.g:1158:4: rule__XExpressionInClosure__Group__0
+            // InternalSignalDSL.g:1183:3: ( rule__XExpressionInClosure__Group__0 )
+            // InternalSignalDSL.g:1183:4: rule__XExpressionInClosure__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XExpressionInClosure__Group__0();
@@ -3887,11 +3970,11 @@
 
 
     // $ANTLR start "entryRuleXShortClosure"
-    // InternalSignalDSL.g:1167:1: entryRuleXShortClosure : ruleXShortClosure EOF ;
+    // InternalSignalDSL.g:1192:1: entryRuleXShortClosure : ruleXShortClosure EOF ;
     public final void entryRuleXShortClosure() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:1168:1: ( ruleXShortClosure EOF )
-            // InternalSignalDSL.g:1169:1: ruleXShortClosure EOF
+            // InternalSignalDSL.g:1193:1: ( ruleXShortClosure EOF )
+            // InternalSignalDSL.g:1194:1: ruleXShortClosure EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXShortClosureRule()); 
@@ -3921,23 +4004,23 @@
 
 
     // $ANTLR start "ruleXShortClosure"
-    // InternalSignalDSL.g:1176:1: ruleXShortClosure : ( ( rule__XShortClosure__Group__0 ) ) ;
+    // InternalSignalDSL.g:1201:1: ruleXShortClosure : ( ( rule__XShortClosure__Group__0 ) ) ;
     public final void ruleXShortClosure() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:1180:2: ( ( ( rule__XShortClosure__Group__0 ) ) )
-            // InternalSignalDSL.g:1181:2: ( ( rule__XShortClosure__Group__0 ) )
+            // InternalSignalDSL.g:1205:2: ( ( ( rule__XShortClosure__Group__0 ) ) )
+            // InternalSignalDSL.g:1206:2: ( ( rule__XShortClosure__Group__0 ) )
             {
-            // InternalSignalDSL.g:1181:2: ( ( rule__XShortClosure__Group__0 ) )
-            // InternalSignalDSL.g:1182:3: ( rule__XShortClosure__Group__0 )
+            // InternalSignalDSL.g:1206:2: ( ( rule__XShortClosure__Group__0 ) )
+            // InternalSignalDSL.g:1207:3: ( rule__XShortClosure__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXShortClosureAccess().getGroup()); 
             }
-            // InternalSignalDSL.g:1183:3: ( rule__XShortClosure__Group__0 )
-            // InternalSignalDSL.g:1183:4: rule__XShortClosure__Group__0
+            // InternalSignalDSL.g:1208:3: ( rule__XShortClosure__Group__0 )
+            // InternalSignalDSL.g:1208:4: rule__XShortClosure__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XShortClosure__Group__0();
@@ -3972,11 +4055,11 @@
 
 
     // $ANTLR start "entryRuleXParenthesizedExpression"
-    // InternalSignalDSL.g:1192:1: entryRuleXParenthesizedExpression : ruleXParenthesizedExpression EOF ;
+    // InternalSignalDSL.g:1217:1: entryRuleXParenthesizedExpression : ruleXParenthesizedExpression EOF ;
     public final void entryRuleXParenthesizedExpression() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:1193:1: ( ruleXParenthesizedExpression EOF )
-            // InternalSignalDSL.g:1194:1: ruleXParenthesizedExpression EOF
+            // InternalSignalDSL.g:1218:1: ( ruleXParenthesizedExpression EOF )
+            // InternalSignalDSL.g:1219:1: ruleXParenthesizedExpression EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXParenthesizedExpressionRule()); 
@@ -4006,23 +4089,23 @@
 
 
     // $ANTLR start "ruleXParenthesizedExpression"
-    // InternalSignalDSL.g:1201:1: ruleXParenthesizedExpression : ( ( rule__XParenthesizedExpression__Group__0 ) ) ;
+    // InternalSignalDSL.g:1226:1: ruleXParenthesizedExpression : ( ( rule__XParenthesizedExpression__Group__0 ) ) ;
     public final void ruleXParenthesizedExpression() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:1205:2: ( ( ( rule__XParenthesizedExpression__Group__0 ) ) )
-            // InternalSignalDSL.g:1206:2: ( ( rule__XParenthesizedExpression__Group__0 ) )
+            // InternalSignalDSL.g:1230:2: ( ( ( rule__XParenthesizedExpression__Group__0 ) ) )
+            // InternalSignalDSL.g:1231:2: ( ( rule__XParenthesizedExpression__Group__0 ) )
             {
-            // InternalSignalDSL.g:1206:2: ( ( rule__XParenthesizedExpression__Group__0 ) )
-            // InternalSignalDSL.g:1207:3: ( rule__XParenthesizedExpression__Group__0 )
+            // InternalSignalDSL.g:1231:2: ( ( rule__XParenthesizedExpression__Group__0 ) )
+            // InternalSignalDSL.g:1232:3: ( rule__XParenthesizedExpression__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXParenthesizedExpressionAccess().getGroup()); 
             }
-            // InternalSignalDSL.g:1208:3: ( rule__XParenthesizedExpression__Group__0 )
-            // InternalSignalDSL.g:1208:4: rule__XParenthesizedExpression__Group__0
+            // InternalSignalDSL.g:1233:3: ( rule__XParenthesizedExpression__Group__0 )
+            // InternalSignalDSL.g:1233:4: rule__XParenthesizedExpression__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XParenthesizedExpression__Group__0();
@@ -4057,11 +4140,11 @@
 
 
     // $ANTLR start "entryRuleXIfExpression"
-    // InternalSignalDSL.g:1217:1: entryRuleXIfExpression : ruleXIfExpression EOF ;
+    // InternalSignalDSL.g:1242:1: entryRuleXIfExpression : ruleXIfExpression EOF ;
     public final void entryRuleXIfExpression() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:1218:1: ( ruleXIfExpression EOF )
-            // InternalSignalDSL.g:1219:1: ruleXIfExpression EOF
+            // InternalSignalDSL.g:1243:1: ( ruleXIfExpression EOF )
+            // InternalSignalDSL.g:1244:1: ruleXIfExpression EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXIfExpressionRule()); 
@@ -4091,23 +4174,23 @@
 
 
     // $ANTLR start "ruleXIfExpression"
-    // InternalSignalDSL.g:1226:1: ruleXIfExpression : ( ( rule__XIfExpression__Group__0 ) ) ;
+    // InternalSignalDSL.g:1251:1: ruleXIfExpression : ( ( rule__XIfExpression__Group__0 ) ) ;
     public final void ruleXIfExpression() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:1230:2: ( ( ( rule__XIfExpression__Group__0 ) ) )
-            // InternalSignalDSL.g:1231:2: ( ( rule__XIfExpression__Group__0 ) )
+            // InternalSignalDSL.g:1255:2: ( ( ( rule__XIfExpression__Group__0 ) ) )
+            // InternalSignalDSL.g:1256:2: ( ( rule__XIfExpression__Group__0 ) )
             {
-            // InternalSignalDSL.g:1231:2: ( ( rule__XIfExpression__Group__0 ) )
-            // InternalSignalDSL.g:1232:3: ( rule__XIfExpression__Group__0 )
+            // InternalSignalDSL.g:1256:2: ( ( rule__XIfExpression__Group__0 ) )
+            // InternalSignalDSL.g:1257:3: ( rule__XIfExpression__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXIfExpressionAccess().getGroup()); 
             }
-            // InternalSignalDSL.g:1233:3: ( rule__XIfExpression__Group__0 )
-            // InternalSignalDSL.g:1233:4: rule__XIfExpression__Group__0
+            // InternalSignalDSL.g:1258:3: ( rule__XIfExpression__Group__0 )
+            // InternalSignalDSL.g:1258:4: rule__XIfExpression__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XIfExpression__Group__0();
@@ -4142,11 +4225,11 @@
 
 
     // $ANTLR start "entryRuleXSwitchExpression"
-    // InternalSignalDSL.g:1242:1: entryRuleXSwitchExpression : ruleXSwitchExpression EOF ;
+    // InternalSignalDSL.g:1267:1: entryRuleXSwitchExpression : ruleXSwitchExpression EOF ;
     public final void entryRuleXSwitchExpression() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:1243:1: ( ruleXSwitchExpression EOF )
-            // InternalSignalDSL.g:1244:1: ruleXSwitchExpression EOF
+            // InternalSignalDSL.g:1268:1: ( ruleXSwitchExpression EOF )
+            // InternalSignalDSL.g:1269:1: ruleXSwitchExpression EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionRule()); 
@@ -4176,23 +4259,23 @@
 
 
     // $ANTLR start "ruleXSwitchExpression"
-    // InternalSignalDSL.g:1251:1: ruleXSwitchExpression : ( ( rule__XSwitchExpression__Group__0 ) ) ;
+    // InternalSignalDSL.g:1276:1: ruleXSwitchExpression : ( ( rule__XSwitchExpression__Group__0 ) ) ;
     public final void ruleXSwitchExpression() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:1255:2: ( ( ( rule__XSwitchExpression__Group__0 ) ) )
-            // InternalSignalDSL.g:1256:2: ( ( rule__XSwitchExpression__Group__0 ) )
+            // InternalSignalDSL.g:1280:2: ( ( ( rule__XSwitchExpression__Group__0 ) ) )
+            // InternalSignalDSL.g:1281:2: ( ( rule__XSwitchExpression__Group__0 ) )
             {
-            // InternalSignalDSL.g:1256:2: ( ( rule__XSwitchExpression__Group__0 ) )
-            // InternalSignalDSL.g:1257:3: ( rule__XSwitchExpression__Group__0 )
+            // InternalSignalDSL.g:1281:2: ( ( rule__XSwitchExpression__Group__0 ) )
+            // InternalSignalDSL.g:1282:3: ( rule__XSwitchExpression__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getGroup()); 
             }
-            // InternalSignalDSL.g:1258:3: ( rule__XSwitchExpression__Group__0 )
-            // InternalSignalDSL.g:1258:4: rule__XSwitchExpression__Group__0
+            // InternalSignalDSL.g:1283:3: ( rule__XSwitchExpression__Group__0 )
+            // InternalSignalDSL.g:1283:4: rule__XSwitchExpression__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XSwitchExpression__Group__0();
@@ -4227,11 +4310,11 @@
 
 
     // $ANTLR start "entryRuleXCasePart"
-    // InternalSignalDSL.g:1267:1: entryRuleXCasePart : ruleXCasePart EOF ;
+    // InternalSignalDSL.g:1292:1: entryRuleXCasePart : ruleXCasePart EOF ;
     public final void entryRuleXCasePart() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:1268:1: ( ruleXCasePart EOF )
-            // InternalSignalDSL.g:1269:1: ruleXCasePart EOF
+            // InternalSignalDSL.g:1293:1: ( ruleXCasePart EOF )
+            // InternalSignalDSL.g:1294:1: ruleXCasePart EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCasePartRule()); 
@@ -4261,23 +4344,23 @@
 
 
     // $ANTLR start "ruleXCasePart"
-    // InternalSignalDSL.g:1276:1: ruleXCasePart : ( ( rule__XCasePart__Group__0 ) ) ;
+    // InternalSignalDSL.g:1301:1: ruleXCasePart : ( ( rule__XCasePart__Group__0 ) ) ;
     public final void ruleXCasePart() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:1280:2: ( ( ( rule__XCasePart__Group__0 ) ) )
-            // InternalSignalDSL.g:1281:2: ( ( rule__XCasePart__Group__0 ) )
+            // InternalSignalDSL.g:1305:2: ( ( ( rule__XCasePart__Group__0 ) ) )
+            // InternalSignalDSL.g:1306:2: ( ( rule__XCasePart__Group__0 ) )
             {
-            // InternalSignalDSL.g:1281:2: ( ( rule__XCasePart__Group__0 ) )
-            // InternalSignalDSL.g:1282:3: ( rule__XCasePart__Group__0 )
+            // InternalSignalDSL.g:1306:2: ( ( rule__XCasePart__Group__0 ) )
+            // InternalSignalDSL.g:1307:3: ( rule__XCasePart__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCasePartAccess().getGroup()); 
             }
-            // InternalSignalDSL.g:1283:3: ( rule__XCasePart__Group__0 )
-            // InternalSignalDSL.g:1283:4: rule__XCasePart__Group__0
+            // InternalSignalDSL.g:1308:3: ( rule__XCasePart__Group__0 )
+            // InternalSignalDSL.g:1308:4: rule__XCasePart__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XCasePart__Group__0();
@@ -4312,11 +4395,11 @@
 
 
     // $ANTLR start "entryRuleXForLoopExpression"
-    // InternalSignalDSL.g:1292:1: entryRuleXForLoopExpression : ruleXForLoopExpression EOF ;
+    // InternalSignalDSL.g:1317:1: entryRuleXForLoopExpression : ruleXForLoopExpression EOF ;
     public final void entryRuleXForLoopExpression() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:1293:1: ( ruleXForLoopExpression EOF )
-            // InternalSignalDSL.g:1294:1: ruleXForLoopExpression EOF
+            // InternalSignalDSL.g:1318:1: ( ruleXForLoopExpression EOF )
+            // InternalSignalDSL.g:1319:1: ruleXForLoopExpression EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXForLoopExpressionRule()); 
@@ -4346,23 +4429,23 @@
 
 
     // $ANTLR start "ruleXForLoopExpression"
-    // InternalSignalDSL.g:1301:1: ruleXForLoopExpression : ( ( rule__XForLoopExpression__Group__0 ) ) ;
+    // InternalSignalDSL.g:1326:1: ruleXForLoopExpression : ( ( rule__XForLoopExpression__Group__0 ) ) ;
     public final void ruleXForLoopExpression() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:1305:2: ( ( ( rule__XForLoopExpression__Group__0 ) ) )
-            // InternalSignalDSL.g:1306:2: ( ( rule__XForLoopExpression__Group__0 ) )
+            // InternalSignalDSL.g:1330:2: ( ( ( rule__XForLoopExpression__Group__0 ) ) )
+            // InternalSignalDSL.g:1331:2: ( ( rule__XForLoopExpression__Group__0 ) )
             {
-            // InternalSignalDSL.g:1306:2: ( ( rule__XForLoopExpression__Group__0 ) )
-            // InternalSignalDSL.g:1307:3: ( rule__XForLoopExpression__Group__0 )
+            // InternalSignalDSL.g:1331:2: ( ( rule__XForLoopExpression__Group__0 ) )
+            // InternalSignalDSL.g:1332:3: ( rule__XForLoopExpression__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXForLoopExpressionAccess().getGroup()); 
             }
-            // InternalSignalDSL.g:1308:3: ( rule__XForLoopExpression__Group__0 )
-            // InternalSignalDSL.g:1308:4: rule__XForLoopExpression__Group__0
+            // InternalSignalDSL.g:1333:3: ( rule__XForLoopExpression__Group__0 )
+            // InternalSignalDSL.g:1333:4: rule__XForLoopExpression__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XForLoopExpression__Group__0();
@@ -4397,11 +4480,11 @@
 
 
     // $ANTLR start "entryRuleXBasicForLoopExpression"
-    // InternalSignalDSL.g:1317:1: entryRuleXBasicForLoopExpression : ruleXBasicForLoopExpression EOF ;
+    // InternalSignalDSL.g:1342:1: entryRuleXBasicForLoopExpression : ruleXBasicForLoopExpression EOF ;
     public final void entryRuleXBasicForLoopExpression() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:1318:1: ( ruleXBasicForLoopExpression EOF )
-            // InternalSignalDSL.g:1319:1: ruleXBasicForLoopExpression EOF
+            // InternalSignalDSL.g:1343:1: ( ruleXBasicForLoopExpression EOF )
+            // InternalSignalDSL.g:1344:1: ruleXBasicForLoopExpression EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionRule()); 
@@ -4431,23 +4514,23 @@
 
 
     // $ANTLR start "ruleXBasicForLoopExpression"
-    // InternalSignalDSL.g:1326:1: ruleXBasicForLoopExpression : ( ( rule__XBasicForLoopExpression__Group__0 ) ) ;
+    // InternalSignalDSL.g:1351:1: ruleXBasicForLoopExpression : ( ( rule__XBasicForLoopExpression__Group__0 ) ) ;
     public final void ruleXBasicForLoopExpression() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:1330:2: ( ( ( rule__XBasicForLoopExpression__Group__0 ) ) )
-            // InternalSignalDSL.g:1331:2: ( ( rule__XBasicForLoopExpression__Group__0 ) )
+            // InternalSignalDSL.g:1355:2: ( ( ( rule__XBasicForLoopExpression__Group__0 ) ) )
+            // InternalSignalDSL.g:1356:2: ( ( rule__XBasicForLoopExpression__Group__0 ) )
             {
-            // InternalSignalDSL.g:1331:2: ( ( rule__XBasicForLoopExpression__Group__0 ) )
-            // InternalSignalDSL.g:1332:3: ( rule__XBasicForLoopExpression__Group__0 )
+            // InternalSignalDSL.g:1356:2: ( ( rule__XBasicForLoopExpression__Group__0 ) )
+            // InternalSignalDSL.g:1357:3: ( rule__XBasicForLoopExpression__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getGroup()); 
             }
-            // InternalSignalDSL.g:1333:3: ( rule__XBasicForLoopExpression__Group__0 )
-            // InternalSignalDSL.g:1333:4: rule__XBasicForLoopExpression__Group__0
+            // InternalSignalDSL.g:1358:3: ( rule__XBasicForLoopExpression__Group__0 )
+            // InternalSignalDSL.g:1358:4: rule__XBasicForLoopExpression__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XBasicForLoopExpression__Group__0();
@@ -4482,11 +4565,11 @@
 
 
     // $ANTLR start "entryRuleXWhileExpression"
-    // InternalSignalDSL.g:1342:1: entryRuleXWhileExpression : ruleXWhileExpression EOF ;
+    // InternalSignalDSL.g:1367:1: entryRuleXWhileExpression : ruleXWhileExpression EOF ;
     public final void entryRuleXWhileExpression() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:1343:1: ( ruleXWhileExpression EOF )
-            // InternalSignalDSL.g:1344:1: ruleXWhileExpression EOF
+            // InternalSignalDSL.g:1368:1: ( ruleXWhileExpression EOF )
+            // InternalSignalDSL.g:1369:1: ruleXWhileExpression EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXWhileExpressionRule()); 
@@ -4516,23 +4599,23 @@
 
 
     // $ANTLR start "ruleXWhileExpression"
-    // InternalSignalDSL.g:1351:1: ruleXWhileExpression : ( ( rule__XWhileExpression__Group__0 ) ) ;
+    // InternalSignalDSL.g:1376:1: ruleXWhileExpression : ( ( rule__XWhileExpression__Group__0 ) ) ;
     public final void ruleXWhileExpression() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:1355:2: ( ( ( rule__XWhileExpression__Group__0 ) ) )
-            // InternalSignalDSL.g:1356:2: ( ( rule__XWhileExpression__Group__0 ) )
+            // InternalSignalDSL.g:1380:2: ( ( ( rule__XWhileExpression__Group__0 ) ) )
+            // InternalSignalDSL.g:1381:2: ( ( rule__XWhileExpression__Group__0 ) )
             {
-            // InternalSignalDSL.g:1356:2: ( ( rule__XWhileExpression__Group__0 ) )
-            // InternalSignalDSL.g:1357:3: ( rule__XWhileExpression__Group__0 )
+            // InternalSignalDSL.g:1381:2: ( ( rule__XWhileExpression__Group__0 ) )
+            // InternalSignalDSL.g:1382:3: ( rule__XWhileExpression__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXWhileExpressionAccess().getGroup()); 
             }
-            // InternalSignalDSL.g:1358:3: ( rule__XWhileExpression__Group__0 )
-            // InternalSignalDSL.g:1358:4: rule__XWhileExpression__Group__0
+            // InternalSignalDSL.g:1383:3: ( rule__XWhileExpression__Group__0 )
+            // InternalSignalDSL.g:1383:4: rule__XWhileExpression__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XWhileExpression__Group__0();
@@ -4567,11 +4650,11 @@
 
 
     // $ANTLR start "entryRuleXDoWhileExpression"
-    // InternalSignalDSL.g:1367:1: entryRuleXDoWhileExpression : ruleXDoWhileExpression EOF ;
+    // InternalSignalDSL.g:1392:1: entryRuleXDoWhileExpression : ruleXDoWhileExpression EOF ;
     public final void entryRuleXDoWhileExpression() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:1368:1: ( ruleXDoWhileExpression EOF )
-            // InternalSignalDSL.g:1369:1: ruleXDoWhileExpression EOF
+            // InternalSignalDSL.g:1393:1: ( ruleXDoWhileExpression EOF )
+            // InternalSignalDSL.g:1394:1: ruleXDoWhileExpression EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXDoWhileExpressionRule()); 
@@ -4601,23 +4684,23 @@
 
 
     // $ANTLR start "ruleXDoWhileExpression"
-    // InternalSignalDSL.g:1376:1: ruleXDoWhileExpression : ( ( rule__XDoWhileExpression__Group__0 ) ) ;
+    // InternalSignalDSL.g:1401:1: ruleXDoWhileExpression : ( ( rule__XDoWhileExpression__Group__0 ) ) ;
     public final void ruleXDoWhileExpression() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:1380:2: ( ( ( rule__XDoWhileExpression__Group__0 ) ) )
-            // InternalSignalDSL.g:1381:2: ( ( rule__XDoWhileExpression__Group__0 ) )
+            // InternalSignalDSL.g:1405:2: ( ( ( rule__XDoWhileExpression__Group__0 ) ) )
+            // InternalSignalDSL.g:1406:2: ( ( rule__XDoWhileExpression__Group__0 ) )
             {
-            // InternalSignalDSL.g:1381:2: ( ( rule__XDoWhileExpression__Group__0 ) )
-            // InternalSignalDSL.g:1382:3: ( rule__XDoWhileExpression__Group__0 )
+            // InternalSignalDSL.g:1406:2: ( ( rule__XDoWhileExpression__Group__0 ) )
+            // InternalSignalDSL.g:1407:3: ( rule__XDoWhileExpression__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXDoWhileExpressionAccess().getGroup()); 
             }
-            // InternalSignalDSL.g:1383:3: ( rule__XDoWhileExpression__Group__0 )
-            // InternalSignalDSL.g:1383:4: rule__XDoWhileExpression__Group__0
+            // InternalSignalDSL.g:1408:3: ( rule__XDoWhileExpression__Group__0 )
+            // InternalSignalDSL.g:1408:4: rule__XDoWhileExpression__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XDoWhileExpression__Group__0();
@@ -4652,11 +4735,11 @@
 
 
     // $ANTLR start "entryRuleXBlockExpression"
-    // InternalSignalDSL.g:1392:1: entryRuleXBlockExpression : ruleXBlockExpression EOF ;
+    // InternalSignalDSL.g:1417:1: entryRuleXBlockExpression : ruleXBlockExpression EOF ;
     public final void entryRuleXBlockExpression() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:1393:1: ( ruleXBlockExpression EOF )
-            // InternalSignalDSL.g:1394:1: ruleXBlockExpression EOF
+            // InternalSignalDSL.g:1418:1: ( ruleXBlockExpression EOF )
+            // InternalSignalDSL.g:1419:1: ruleXBlockExpression EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBlockExpressionRule()); 
@@ -4686,23 +4769,23 @@
 
 
     // $ANTLR start "ruleXBlockExpression"
-    // InternalSignalDSL.g:1401:1: ruleXBlockExpression : ( ( rule__XBlockExpression__Group__0 ) ) ;
+    // InternalSignalDSL.g:1426:1: ruleXBlockExpression : ( ( rule__XBlockExpression__Group__0 ) ) ;
     public final void ruleXBlockExpression() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:1405:2: ( ( ( rule__XBlockExpression__Group__0 ) ) )
-            // InternalSignalDSL.g:1406:2: ( ( rule__XBlockExpression__Group__0 ) )
+            // InternalSignalDSL.g:1430:2: ( ( ( rule__XBlockExpression__Group__0 ) ) )
+            // InternalSignalDSL.g:1431:2: ( ( rule__XBlockExpression__Group__0 ) )
             {
-            // InternalSignalDSL.g:1406:2: ( ( rule__XBlockExpression__Group__0 ) )
-            // InternalSignalDSL.g:1407:3: ( rule__XBlockExpression__Group__0 )
+            // InternalSignalDSL.g:1431:2: ( ( rule__XBlockExpression__Group__0 ) )
+            // InternalSignalDSL.g:1432:3: ( rule__XBlockExpression__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBlockExpressionAccess().getGroup()); 
             }
-            // InternalSignalDSL.g:1408:3: ( rule__XBlockExpression__Group__0 )
-            // InternalSignalDSL.g:1408:4: rule__XBlockExpression__Group__0
+            // InternalSignalDSL.g:1433:3: ( rule__XBlockExpression__Group__0 )
+            // InternalSignalDSL.g:1433:4: rule__XBlockExpression__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XBlockExpression__Group__0();
@@ -4737,11 +4820,11 @@
 
 
     // $ANTLR start "entryRuleXExpressionOrVarDeclaration"
-    // InternalSignalDSL.g:1417:1: entryRuleXExpressionOrVarDeclaration : ruleXExpressionOrVarDeclaration EOF ;
+    // InternalSignalDSL.g:1442:1: entryRuleXExpressionOrVarDeclaration : ruleXExpressionOrVarDeclaration EOF ;
     public final void entryRuleXExpressionOrVarDeclaration() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:1418:1: ( ruleXExpressionOrVarDeclaration EOF )
-            // InternalSignalDSL.g:1419:1: ruleXExpressionOrVarDeclaration EOF
+            // InternalSignalDSL.g:1443:1: ( ruleXExpressionOrVarDeclaration EOF )
+            // InternalSignalDSL.g:1444:1: ruleXExpressionOrVarDeclaration EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXExpressionOrVarDeclarationRule()); 
@@ -4771,23 +4854,23 @@
 
 
     // $ANTLR start "ruleXExpressionOrVarDeclaration"
-    // InternalSignalDSL.g:1426:1: ruleXExpressionOrVarDeclaration : ( ( rule__XExpressionOrVarDeclaration__Alternatives ) ) ;
+    // InternalSignalDSL.g:1451:1: ruleXExpressionOrVarDeclaration : ( ( rule__XExpressionOrVarDeclaration__Alternatives ) ) ;
     public final void ruleXExpressionOrVarDeclaration() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:1430:2: ( ( ( rule__XExpressionOrVarDeclaration__Alternatives ) ) )
-            // InternalSignalDSL.g:1431:2: ( ( rule__XExpressionOrVarDeclaration__Alternatives ) )
+            // InternalSignalDSL.g:1455:2: ( ( ( rule__XExpressionOrVarDeclaration__Alternatives ) ) )
+            // InternalSignalDSL.g:1456:2: ( ( rule__XExpressionOrVarDeclaration__Alternatives ) )
             {
-            // InternalSignalDSL.g:1431:2: ( ( rule__XExpressionOrVarDeclaration__Alternatives ) )
-            // InternalSignalDSL.g:1432:3: ( rule__XExpressionOrVarDeclaration__Alternatives )
+            // InternalSignalDSL.g:1456:2: ( ( rule__XExpressionOrVarDeclaration__Alternatives ) )
+            // InternalSignalDSL.g:1457:3: ( rule__XExpressionOrVarDeclaration__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXExpressionOrVarDeclarationAccess().getAlternatives()); 
             }
-            // InternalSignalDSL.g:1433:3: ( rule__XExpressionOrVarDeclaration__Alternatives )
-            // InternalSignalDSL.g:1433:4: rule__XExpressionOrVarDeclaration__Alternatives
+            // InternalSignalDSL.g:1458:3: ( rule__XExpressionOrVarDeclaration__Alternatives )
+            // InternalSignalDSL.g:1458:4: rule__XExpressionOrVarDeclaration__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__XExpressionOrVarDeclaration__Alternatives();
@@ -4822,11 +4905,11 @@
 
 
     // $ANTLR start "entryRuleXVariableDeclaration"
-    // InternalSignalDSL.g:1442:1: entryRuleXVariableDeclaration : ruleXVariableDeclaration EOF ;
+    // InternalSignalDSL.g:1467:1: entryRuleXVariableDeclaration : ruleXVariableDeclaration EOF ;
     public final void entryRuleXVariableDeclaration() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:1443:1: ( ruleXVariableDeclaration EOF )
-            // InternalSignalDSL.g:1444:1: ruleXVariableDeclaration EOF
+            // InternalSignalDSL.g:1468:1: ( ruleXVariableDeclaration EOF )
+            // InternalSignalDSL.g:1469:1: ruleXVariableDeclaration EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXVariableDeclarationRule()); 
@@ -4856,23 +4939,23 @@
 
 
     // $ANTLR start "ruleXVariableDeclaration"
-    // InternalSignalDSL.g:1451:1: ruleXVariableDeclaration : ( ( rule__XVariableDeclaration__Group__0 ) ) ;
+    // InternalSignalDSL.g:1476:1: ruleXVariableDeclaration : ( ( rule__XVariableDeclaration__Group__0 ) ) ;
     public final void ruleXVariableDeclaration() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:1455:2: ( ( ( rule__XVariableDeclaration__Group__0 ) ) )
-            // InternalSignalDSL.g:1456:2: ( ( rule__XVariableDeclaration__Group__0 ) )
+            // InternalSignalDSL.g:1480:2: ( ( ( rule__XVariableDeclaration__Group__0 ) ) )
+            // InternalSignalDSL.g:1481:2: ( ( rule__XVariableDeclaration__Group__0 ) )
             {
-            // InternalSignalDSL.g:1456:2: ( ( rule__XVariableDeclaration__Group__0 ) )
-            // InternalSignalDSL.g:1457:3: ( rule__XVariableDeclaration__Group__0 )
+            // InternalSignalDSL.g:1481:2: ( ( rule__XVariableDeclaration__Group__0 ) )
+            // InternalSignalDSL.g:1482:3: ( rule__XVariableDeclaration__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXVariableDeclarationAccess().getGroup()); 
             }
-            // InternalSignalDSL.g:1458:3: ( rule__XVariableDeclaration__Group__0 )
-            // InternalSignalDSL.g:1458:4: rule__XVariableDeclaration__Group__0
+            // InternalSignalDSL.g:1483:3: ( rule__XVariableDeclaration__Group__0 )
+            // InternalSignalDSL.g:1483:4: rule__XVariableDeclaration__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XVariableDeclaration__Group__0();
@@ -4907,11 +4990,11 @@
 
 
     // $ANTLR start "entryRuleJvmFormalParameter"
-    // InternalSignalDSL.g:1467:1: entryRuleJvmFormalParameter : ruleJvmFormalParameter EOF ;
+    // InternalSignalDSL.g:1492:1: entryRuleJvmFormalParameter : ruleJvmFormalParameter EOF ;
     public final void entryRuleJvmFormalParameter() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:1468:1: ( ruleJvmFormalParameter EOF )
-            // InternalSignalDSL.g:1469:1: ruleJvmFormalParameter EOF
+            // InternalSignalDSL.g:1493:1: ( ruleJvmFormalParameter EOF )
+            // InternalSignalDSL.g:1494:1: ruleJvmFormalParameter EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmFormalParameterRule()); 
@@ -4941,23 +5024,23 @@
 
 
     // $ANTLR start "ruleJvmFormalParameter"
-    // InternalSignalDSL.g:1476:1: ruleJvmFormalParameter : ( ( rule__JvmFormalParameter__Group__0 ) ) ;
+    // InternalSignalDSL.g:1501:1: ruleJvmFormalParameter : ( ( rule__JvmFormalParameter__Group__0 ) ) ;
     public final void ruleJvmFormalParameter() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:1480:2: ( ( ( rule__JvmFormalParameter__Group__0 ) ) )
-            // InternalSignalDSL.g:1481:2: ( ( rule__JvmFormalParameter__Group__0 ) )
+            // InternalSignalDSL.g:1505:2: ( ( ( rule__JvmFormalParameter__Group__0 ) ) )
+            // InternalSignalDSL.g:1506:2: ( ( rule__JvmFormalParameter__Group__0 ) )
             {
-            // InternalSignalDSL.g:1481:2: ( ( rule__JvmFormalParameter__Group__0 ) )
-            // InternalSignalDSL.g:1482:3: ( rule__JvmFormalParameter__Group__0 )
+            // InternalSignalDSL.g:1506:2: ( ( rule__JvmFormalParameter__Group__0 ) )
+            // InternalSignalDSL.g:1507:3: ( rule__JvmFormalParameter__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmFormalParameterAccess().getGroup()); 
             }
-            // InternalSignalDSL.g:1483:3: ( rule__JvmFormalParameter__Group__0 )
-            // InternalSignalDSL.g:1483:4: rule__JvmFormalParameter__Group__0
+            // InternalSignalDSL.g:1508:3: ( rule__JvmFormalParameter__Group__0 )
+            // InternalSignalDSL.g:1508:4: rule__JvmFormalParameter__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__JvmFormalParameter__Group__0();
@@ -4992,11 +5075,11 @@
 
 
     // $ANTLR start "entryRuleFullJvmFormalParameter"
-    // InternalSignalDSL.g:1492:1: entryRuleFullJvmFormalParameter : ruleFullJvmFormalParameter EOF ;
+    // InternalSignalDSL.g:1517:1: entryRuleFullJvmFormalParameter : ruleFullJvmFormalParameter EOF ;
     public final void entryRuleFullJvmFormalParameter() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:1493:1: ( ruleFullJvmFormalParameter EOF )
-            // InternalSignalDSL.g:1494:1: ruleFullJvmFormalParameter EOF
+            // InternalSignalDSL.g:1518:1: ( ruleFullJvmFormalParameter EOF )
+            // InternalSignalDSL.g:1519:1: ruleFullJvmFormalParameter EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getFullJvmFormalParameterRule()); 
@@ -5026,23 +5109,23 @@
 
 
     // $ANTLR start "ruleFullJvmFormalParameter"
-    // InternalSignalDSL.g:1501:1: ruleFullJvmFormalParameter : ( ( rule__FullJvmFormalParameter__Group__0 ) ) ;
+    // InternalSignalDSL.g:1526:1: ruleFullJvmFormalParameter : ( ( rule__FullJvmFormalParameter__Group__0 ) ) ;
     public final void ruleFullJvmFormalParameter() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:1505:2: ( ( ( rule__FullJvmFormalParameter__Group__0 ) ) )
-            // InternalSignalDSL.g:1506:2: ( ( rule__FullJvmFormalParameter__Group__0 ) )
+            // InternalSignalDSL.g:1530:2: ( ( ( rule__FullJvmFormalParameter__Group__0 ) ) )
+            // InternalSignalDSL.g:1531:2: ( ( rule__FullJvmFormalParameter__Group__0 ) )
             {
-            // InternalSignalDSL.g:1506:2: ( ( rule__FullJvmFormalParameter__Group__0 ) )
-            // InternalSignalDSL.g:1507:3: ( rule__FullJvmFormalParameter__Group__0 )
+            // InternalSignalDSL.g:1531:2: ( ( rule__FullJvmFormalParameter__Group__0 ) )
+            // InternalSignalDSL.g:1532:3: ( rule__FullJvmFormalParameter__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getFullJvmFormalParameterAccess().getGroup()); 
             }
-            // InternalSignalDSL.g:1508:3: ( rule__FullJvmFormalParameter__Group__0 )
-            // InternalSignalDSL.g:1508:4: rule__FullJvmFormalParameter__Group__0
+            // InternalSignalDSL.g:1533:3: ( rule__FullJvmFormalParameter__Group__0 )
+            // InternalSignalDSL.g:1533:4: rule__FullJvmFormalParameter__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__FullJvmFormalParameter__Group__0();
@@ -5077,11 +5160,11 @@
 
 
     // $ANTLR start "entryRuleXFeatureCall"
-    // InternalSignalDSL.g:1517:1: entryRuleXFeatureCall : ruleXFeatureCall EOF ;
+    // InternalSignalDSL.g:1542:1: entryRuleXFeatureCall : ruleXFeatureCall EOF ;
     public final void entryRuleXFeatureCall() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:1518:1: ( ruleXFeatureCall EOF )
-            // InternalSignalDSL.g:1519:1: ruleXFeatureCall EOF
+            // InternalSignalDSL.g:1543:1: ( ruleXFeatureCall EOF )
+            // InternalSignalDSL.g:1544:1: ruleXFeatureCall EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallRule()); 
@@ -5111,23 +5194,23 @@
 
 
     // $ANTLR start "ruleXFeatureCall"
-    // InternalSignalDSL.g:1526:1: ruleXFeatureCall : ( ( rule__XFeatureCall__Group__0 ) ) ;
+    // InternalSignalDSL.g:1551:1: ruleXFeatureCall : ( ( rule__XFeatureCall__Group__0 ) ) ;
     public final void ruleXFeatureCall() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:1530:2: ( ( ( rule__XFeatureCall__Group__0 ) ) )
-            // InternalSignalDSL.g:1531:2: ( ( rule__XFeatureCall__Group__0 ) )
+            // InternalSignalDSL.g:1555:2: ( ( ( rule__XFeatureCall__Group__0 ) ) )
+            // InternalSignalDSL.g:1556:2: ( ( rule__XFeatureCall__Group__0 ) )
             {
-            // InternalSignalDSL.g:1531:2: ( ( rule__XFeatureCall__Group__0 ) )
-            // InternalSignalDSL.g:1532:3: ( rule__XFeatureCall__Group__0 )
+            // InternalSignalDSL.g:1556:2: ( ( rule__XFeatureCall__Group__0 ) )
+            // InternalSignalDSL.g:1557:3: ( rule__XFeatureCall__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getGroup()); 
             }
-            // InternalSignalDSL.g:1533:3: ( rule__XFeatureCall__Group__0 )
-            // InternalSignalDSL.g:1533:4: rule__XFeatureCall__Group__0
+            // InternalSignalDSL.g:1558:3: ( rule__XFeatureCall__Group__0 )
+            // InternalSignalDSL.g:1558:4: rule__XFeatureCall__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XFeatureCall__Group__0();
@@ -5162,11 +5245,11 @@
 
 
     // $ANTLR start "entryRuleFeatureCallID"
-    // InternalSignalDSL.g:1542:1: entryRuleFeatureCallID : ruleFeatureCallID EOF ;
+    // InternalSignalDSL.g:1567:1: entryRuleFeatureCallID : ruleFeatureCallID EOF ;
     public final void entryRuleFeatureCallID() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:1543:1: ( ruleFeatureCallID EOF )
-            // InternalSignalDSL.g:1544:1: ruleFeatureCallID EOF
+            // InternalSignalDSL.g:1568:1: ( ruleFeatureCallID EOF )
+            // InternalSignalDSL.g:1569:1: ruleFeatureCallID EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getFeatureCallIDRule()); 
@@ -5196,23 +5279,23 @@
 
 
     // $ANTLR start "ruleFeatureCallID"
-    // InternalSignalDSL.g:1551:1: ruleFeatureCallID : ( ( rule__FeatureCallID__Alternatives ) ) ;
+    // InternalSignalDSL.g:1576:1: ruleFeatureCallID : ( ( rule__FeatureCallID__Alternatives ) ) ;
     public final void ruleFeatureCallID() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:1555:2: ( ( ( rule__FeatureCallID__Alternatives ) ) )
-            // InternalSignalDSL.g:1556:2: ( ( rule__FeatureCallID__Alternatives ) )
+            // InternalSignalDSL.g:1580:2: ( ( ( rule__FeatureCallID__Alternatives ) ) )
+            // InternalSignalDSL.g:1581:2: ( ( rule__FeatureCallID__Alternatives ) )
             {
-            // InternalSignalDSL.g:1556:2: ( ( rule__FeatureCallID__Alternatives ) )
-            // InternalSignalDSL.g:1557:3: ( rule__FeatureCallID__Alternatives )
+            // InternalSignalDSL.g:1581:2: ( ( rule__FeatureCallID__Alternatives ) )
+            // InternalSignalDSL.g:1582:3: ( rule__FeatureCallID__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getFeatureCallIDAccess().getAlternatives()); 
             }
-            // InternalSignalDSL.g:1558:3: ( rule__FeatureCallID__Alternatives )
-            // InternalSignalDSL.g:1558:4: rule__FeatureCallID__Alternatives
+            // InternalSignalDSL.g:1583:3: ( rule__FeatureCallID__Alternatives )
+            // InternalSignalDSL.g:1583:4: rule__FeatureCallID__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__FeatureCallID__Alternatives();
@@ -5247,11 +5330,11 @@
 
 
     // $ANTLR start "entryRuleIdOrSuper"
-    // InternalSignalDSL.g:1567:1: entryRuleIdOrSuper : ruleIdOrSuper EOF ;
+    // InternalSignalDSL.g:1592:1: entryRuleIdOrSuper : ruleIdOrSuper EOF ;
     public final void entryRuleIdOrSuper() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:1568:1: ( ruleIdOrSuper EOF )
-            // InternalSignalDSL.g:1569:1: ruleIdOrSuper EOF
+            // InternalSignalDSL.g:1593:1: ( ruleIdOrSuper EOF )
+            // InternalSignalDSL.g:1594:1: ruleIdOrSuper EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getIdOrSuperRule()); 
@@ -5281,23 +5364,23 @@
 
 
     // $ANTLR start "ruleIdOrSuper"
-    // InternalSignalDSL.g:1576:1: ruleIdOrSuper : ( ( rule__IdOrSuper__Alternatives ) ) ;
+    // InternalSignalDSL.g:1601:1: ruleIdOrSuper : ( ( rule__IdOrSuper__Alternatives ) ) ;
     public final void ruleIdOrSuper() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:1580:2: ( ( ( rule__IdOrSuper__Alternatives ) ) )
-            // InternalSignalDSL.g:1581:2: ( ( rule__IdOrSuper__Alternatives ) )
+            // InternalSignalDSL.g:1605:2: ( ( ( rule__IdOrSuper__Alternatives ) ) )
+            // InternalSignalDSL.g:1606:2: ( ( rule__IdOrSuper__Alternatives ) )
             {
-            // InternalSignalDSL.g:1581:2: ( ( rule__IdOrSuper__Alternatives ) )
-            // InternalSignalDSL.g:1582:3: ( rule__IdOrSuper__Alternatives )
+            // InternalSignalDSL.g:1606:2: ( ( rule__IdOrSuper__Alternatives ) )
+            // InternalSignalDSL.g:1607:3: ( rule__IdOrSuper__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getIdOrSuperAccess().getAlternatives()); 
             }
-            // InternalSignalDSL.g:1583:3: ( rule__IdOrSuper__Alternatives )
-            // InternalSignalDSL.g:1583:4: rule__IdOrSuper__Alternatives
+            // InternalSignalDSL.g:1608:3: ( rule__IdOrSuper__Alternatives )
+            // InternalSignalDSL.g:1608:4: rule__IdOrSuper__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__IdOrSuper__Alternatives();
@@ -5332,11 +5415,11 @@
 
 
     // $ANTLR start "entryRuleXConstructorCall"
-    // InternalSignalDSL.g:1592:1: entryRuleXConstructorCall : ruleXConstructorCall EOF ;
+    // InternalSignalDSL.g:1617:1: entryRuleXConstructorCall : ruleXConstructorCall EOF ;
     public final void entryRuleXConstructorCall() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:1593:1: ( ruleXConstructorCall EOF )
-            // InternalSignalDSL.g:1594:1: ruleXConstructorCall EOF
+            // InternalSignalDSL.g:1618:1: ( ruleXConstructorCall EOF )
+            // InternalSignalDSL.g:1619:1: ruleXConstructorCall EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallRule()); 
@@ -5366,23 +5449,23 @@
 
 
     // $ANTLR start "ruleXConstructorCall"
-    // InternalSignalDSL.g:1601:1: ruleXConstructorCall : ( ( rule__XConstructorCall__Group__0 ) ) ;
+    // InternalSignalDSL.g:1626:1: ruleXConstructorCall : ( ( rule__XConstructorCall__Group__0 ) ) ;
     public final void ruleXConstructorCall() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:1605:2: ( ( ( rule__XConstructorCall__Group__0 ) ) )
-            // InternalSignalDSL.g:1606:2: ( ( rule__XConstructorCall__Group__0 ) )
+            // InternalSignalDSL.g:1630:2: ( ( ( rule__XConstructorCall__Group__0 ) ) )
+            // InternalSignalDSL.g:1631:2: ( ( rule__XConstructorCall__Group__0 ) )
             {
-            // InternalSignalDSL.g:1606:2: ( ( rule__XConstructorCall__Group__0 ) )
-            // InternalSignalDSL.g:1607:3: ( rule__XConstructorCall__Group__0 )
+            // InternalSignalDSL.g:1631:2: ( ( rule__XConstructorCall__Group__0 ) )
+            // InternalSignalDSL.g:1632:3: ( rule__XConstructorCall__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getGroup()); 
             }
-            // InternalSignalDSL.g:1608:3: ( rule__XConstructorCall__Group__0 )
-            // InternalSignalDSL.g:1608:4: rule__XConstructorCall__Group__0
+            // InternalSignalDSL.g:1633:3: ( rule__XConstructorCall__Group__0 )
+            // InternalSignalDSL.g:1633:4: rule__XConstructorCall__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XConstructorCall__Group__0();
@@ -5417,11 +5500,11 @@
 
 
     // $ANTLR start "entryRuleXBooleanLiteral"
-    // InternalSignalDSL.g:1617:1: entryRuleXBooleanLiteral : ruleXBooleanLiteral EOF ;
+    // InternalSignalDSL.g:1642:1: entryRuleXBooleanLiteral : ruleXBooleanLiteral EOF ;
     public final void entryRuleXBooleanLiteral() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:1618:1: ( ruleXBooleanLiteral EOF )
-            // InternalSignalDSL.g:1619:1: ruleXBooleanLiteral EOF
+            // InternalSignalDSL.g:1643:1: ( ruleXBooleanLiteral EOF )
+            // InternalSignalDSL.g:1644:1: ruleXBooleanLiteral EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBooleanLiteralRule()); 
@@ -5451,23 +5534,23 @@
 
 
     // $ANTLR start "ruleXBooleanLiteral"
-    // InternalSignalDSL.g:1626:1: ruleXBooleanLiteral : ( ( rule__XBooleanLiteral__Group__0 ) ) ;
+    // InternalSignalDSL.g:1651:1: ruleXBooleanLiteral : ( ( rule__XBooleanLiteral__Group__0 ) ) ;
     public final void ruleXBooleanLiteral() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:1630:2: ( ( ( rule__XBooleanLiteral__Group__0 ) ) )
-            // InternalSignalDSL.g:1631:2: ( ( rule__XBooleanLiteral__Group__0 ) )
+            // InternalSignalDSL.g:1655:2: ( ( ( rule__XBooleanLiteral__Group__0 ) ) )
+            // InternalSignalDSL.g:1656:2: ( ( rule__XBooleanLiteral__Group__0 ) )
             {
-            // InternalSignalDSL.g:1631:2: ( ( rule__XBooleanLiteral__Group__0 ) )
-            // InternalSignalDSL.g:1632:3: ( rule__XBooleanLiteral__Group__0 )
+            // InternalSignalDSL.g:1656:2: ( ( rule__XBooleanLiteral__Group__0 ) )
+            // InternalSignalDSL.g:1657:3: ( rule__XBooleanLiteral__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBooleanLiteralAccess().getGroup()); 
             }
-            // InternalSignalDSL.g:1633:3: ( rule__XBooleanLiteral__Group__0 )
-            // InternalSignalDSL.g:1633:4: rule__XBooleanLiteral__Group__0
+            // InternalSignalDSL.g:1658:3: ( rule__XBooleanLiteral__Group__0 )
+            // InternalSignalDSL.g:1658:4: rule__XBooleanLiteral__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XBooleanLiteral__Group__0();
@@ -5502,11 +5585,11 @@
 
 
     // $ANTLR start "entryRuleXNullLiteral"
-    // InternalSignalDSL.g:1642:1: entryRuleXNullLiteral : ruleXNullLiteral EOF ;
+    // InternalSignalDSL.g:1667:1: entryRuleXNullLiteral : ruleXNullLiteral EOF ;
     public final void entryRuleXNullLiteral() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:1643:1: ( ruleXNullLiteral EOF )
-            // InternalSignalDSL.g:1644:1: ruleXNullLiteral EOF
+            // InternalSignalDSL.g:1668:1: ( ruleXNullLiteral EOF )
+            // InternalSignalDSL.g:1669:1: ruleXNullLiteral EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXNullLiteralRule()); 
@@ -5536,23 +5619,23 @@
 
 
     // $ANTLR start "ruleXNullLiteral"
-    // InternalSignalDSL.g:1651:1: ruleXNullLiteral : ( ( rule__XNullLiteral__Group__0 ) ) ;
+    // InternalSignalDSL.g:1676:1: ruleXNullLiteral : ( ( rule__XNullLiteral__Group__0 ) ) ;
     public final void ruleXNullLiteral() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:1655:2: ( ( ( rule__XNullLiteral__Group__0 ) ) )
-            // InternalSignalDSL.g:1656:2: ( ( rule__XNullLiteral__Group__0 ) )
+            // InternalSignalDSL.g:1680:2: ( ( ( rule__XNullLiteral__Group__0 ) ) )
+            // InternalSignalDSL.g:1681:2: ( ( rule__XNullLiteral__Group__0 ) )
             {
-            // InternalSignalDSL.g:1656:2: ( ( rule__XNullLiteral__Group__0 ) )
-            // InternalSignalDSL.g:1657:3: ( rule__XNullLiteral__Group__0 )
+            // InternalSignalDSL.g:1681:2: ( ( rule__XNullLiteral__Group__0 ) )
+            // InternalSignalDSL.g:1682:3: ( rule__XNullLiteral__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXNullLiteralAccess().getGroup()); 
             }
-            // InternalSignalDSL.g:1658:3: ( rule__XNullLiteral__Group__0 )
-            // InternalSignalDSL.g:1658:4: rule__XNullLiteral__Group__0
+            // InternalSignalDSL.g:1683:3: ( rule__XNullLiteral__Group__0 )
+            // InternalSignalDSL.g:1683:4: rule__XNullLiteral__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XNullLiteral__Group__0();
@@ -5587,11 +5670,11 @@
 
 
     // $ANTLR start "entryRuleXNumberLiteral"
-    // InternalSignalDSL.g:1667:1: entryRuleXNumberLiteral : ruleXNumberLiteral EOF ;
+    // InternalSignalDSL.g:1692:1: entryRuleXNumberLiteral : ruleXNumberLiteral EOF ;
     public final void entryRuleXNumberLiteral() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:1668:1: ( ruleXNumberLiteral EOF )
-            // InternalSignalDSL.g:1669:1: ruleXNumberLiteral EOF
+            // InternalSignalDSL.g:1693:1: ( ruleXNumberLiteral EOF )
+            // InternalSignalDSL.g:1694:1: ruleXNumberLiteral EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXNumberLiteralRule()); 
@@ -5621,23 +5704,23 @@
 
 
     // $ANTLR start "ruleXNumberLiteral"
-    // InternalSignalDSL.g:1676:1: ruleXNumberLiteral : ( ( rule__XNumberLiteral__Group__0 ) ) ;
+    // InternalSignalDSL.g:1701:1: ruleXNumberLiteral : ( ( rule__XNumberLiteral__Group__0 ) ) ;
     public final void ruleXNumberLiteral() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:1680:2: ( ( ( rule__XNumberLiteral__Group__0 ) ) )
-            // InternalSignalDSL.g:1681:2: ( ( rule__XNumberLiteral__Group__0 ) )
+            // InternalSignalDSL.g:1705:2: ( ( ( rule__XNumberLiteral__Group__0 ) ) )
+            // InternalSignalDSL.g:1706:2: ( ( rule__XNumberLiteral__Group__0 ) )
             {
-            // InternalSignalDSL.g:1681:2: ( ( rule__XNumberLiteral__Group__0 ) )
-            // InternalSignalDSL.g:1682:3: ( rule__XNumberLiteral__Group__0 )
+            // InternalSignalDSL.g:1706:2: ( ( rule__XNumberLiteral__Group__0 ) )
+            // InternalSignalDSL.g:1707:3: ( rule__XNumberLiteral__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXNumberLiteralAccess().getGroup()); 
             }
-            // InternalSignalDSL.g:1683:3: ( rule__XNumberLiteral__Group__0 )
-            // InternalSignalDSL.g:1683:4: rule__XNumberLiteral__Group__0
+            // InternalSignalDSL.g:1708:3: ( rule__XNumberLiteral__Group__0 )
+            // InternalSignalDSL.g:1708:4: rule__XNumberLiteral__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XNumberLiteral__Group__0();
@@ -5672,11 +5755,11 @@
 
 
     // $ANTLR start "entryRuleXStringLiteral"
-    // InternalSignalDSL.g:1692:1: entryRuleXStringLiteral : ruleXStringLiteral EOF ;
+    // InternalSignalDSL.g:1717:1: entryRuleXStringLiteral : ruleXStringLiteral EOF ;
     public final void entryRuleXStringLiteral() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:1693:1: ( ruleXStringLiteral EOF )
-            // InternalSignalDSL.g:1694:1: ruleXStringLiteral EOF
+            // InternalSignalDSL.g:1718:1: ( ruleXStringLiteral EOF )
+            // InternalSignalDSL.g:1719:1: ruleXStringLiteral EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXStringLiteralRule()); 
@@ -5706,23 +5789,23 @@
 
 
     // $ANTLR start "ruleXStringLiteral"
-    // InternalSignalDSL.g:1701:1: ruleXStringLiteral : ( ( rule__XStringLiteral__Group__0 ) ) ;
+    // InternalSignalDSL.g:1726:1: ruleXStringLiteral : ( ( rule__XStringLiteral__Group__0 ) ) ;
     public final void ruleXStringLiteral() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:1705:2: ( ( ( rule__XStringLiteral__Group__0 ) ) )
-            // InternalSignalDSL.g:1706:2: ( ( rule__XStringLiteral__Group__0 ) )
+            // InternalSignalDSL.g:1730:2: ( ( ( rule__XStringLiteral__Group__0 ) ) )
+            // InternalSignalDSL.g:1731:2: ( ( rule__XStringLiteral__Group__0 ) )
             {
-            // InternalSignalDSL.g:1706:2: ( ( rule__XStringLiteral__Group__0 ) )
-            // InternalSignalDSL.g:1707:3: ( rule__XStringLiteral__Group__0 )
+            // InternalSignalDSL.g:1731:2: ( ( rule__XStringLiteral__Group__0 ) )
+            // InternalSignalDSL.g:1732:3: ( rule__XStringLiteral__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXStringLiteralAccess().getGroup()); 
             }
-            // InternalSignalDSL.g:1708:3: ( rule__XStringLiteral__Group__0 )
-            // InternalSignalDSL.g:1708:4: rule__XStringLiteral__Group__0
+            // InternalSignalDSL.g:1733:3: ( rule__XStringLiteral__Group__0 )
+            // InternalSignalDSL.g:1733:4: rule__XStringLiteral__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XStringLiteral__Group__0();
@@ -5757,11 +5840,11 @@
 
 
     // $ANTLR start "entryRuleXTypeLiteral"
-    // InternalSignalDSL.g:1717:1: entryRuleXTypeLiteral : ruleXTypeLiteral EOF ;
+    // InternalSignalDSL.g:1742:1: entryRuleXTypeLiteral : ruleXTypeLiteral EOF ;
     public final void entryRuleXTypeLiteral() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:1718:1: ( ruleXTypeLiteral EOF )
-            // InternalSignalDSL.g:1719:1: ruleXTypeLiteral EOF
+            // InternalSignalDSL.g:1743:1: ( ruleXTypeLiteral EOF )
+            // InternalSignalDSL.g:1744:1: ruleXTypeLiteral EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTypeLiteralRule()); 
@@ -5791,23 +5874,23 @@
 
 
     // $ANTLR start "ruleXTypeLiteral"
-    // InternalSignalDSL.g:1726:1: ruleXTypeLiteral : ( ( rule__XTypeLiteral__Group__0 ) ) ;
+    // InternalSignalDSL.g:1751:1: ruleXTypeLiteral : ( ( rule__XTypeLiteral__Group__0 ) ) ;
     public final void ruleXTypeLiteral() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:1730:2: ( ( ( rule__XTypeLiteral__Group__0 ) ) )
-            // InternalSignalDSL.g:1731:2: ( ( rule__XTypeLiteral__Group__0 ) )
+            // InternalSignalDSL.g:1755:2: ( ( ( rule__XTypeLiteral__Group__0 ) ) )
+            // InternalSignalDSL.g:1756:2: ( ( rule__XTypeLiteral__Group__0 ) )
             {
-            // InternalSignalDSL.g:1731:2: ( ( rule__XTypeLiteral__Group__0 ) )
-            // InternalSignalDSL.g:1732:3: ( rule__XTypeLiteral__Group__0 )
+            // InternalSignalDSL.g:1756:2: ( ( rule__XTypeLiteral__Group__0 ) )
+            // InternalSignalDSL.g:1757:3: ( rule__XTypeLiteral__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTypeLiteralAccess().getGroup()); 
             }
-            // InternalSignalDSL.g:1733:3: ( rule__XTypeLiteral__Group__0 )
-            // InternalSignalDSL.g:1733:4: rule__XTypeLiteral__Group__0
+            // InternalSignalDSL.g:1758:3: ( rule__XTypeLiteral__Group__0 )
+            // InternalSignalDSL.g:1758:4: rule__XTypeLiteral__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XTypeLiteral__Group__0();
@@ -5842,11 +5925,11 @@
 
 
     // $ANTLR start "entryRuleXThrowExpression"
-    // InternalSignalDSL.g:1742:1: entryRuleXThrowExpression : ruleXThrowExpression EOF ;
+    // InternalSignalDSL.g:1767:1: entryRuleXThrowExpression : ruleXThrowExpression EOF ;
     public final void entryRuleXThrowExpression() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:1743:1: ( ruleXThrowExpression EOF )
-            // InternalSignalDSL.g:1744:1: ruleXThrowExpression EOF
+            // InternalSignalDSL.g:1768:1: ( ruleXThrowExpression EOF )
+            // InternalSignalDSL.g:1769:1: ruleXThrowExpression EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXThrowExpressionRule()); 
@@ -5876,23 +5959,23 @@
 
 
     // $ANTLR start "ruleXThrowExpression"
-    // InternalSignalDSL.g:1751:1: ruleXThrowExpression : ( ( rule__XThrowExpression__Group__0 ) ) ;
+    // InternalSignalDSL.g:1776:1: ruleXThrowExpression : ( ( rule__XThrowExpression__Group__0 ) ) ;
     public final void ruleXThrowExpression() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:1755:2: ( ( ( rule__XThrowExpression__Group__0 ) ) )
-            // InternalSignalDSL.g:1756:2: ( ( rule__XThrowExpression__Group__0 ) )
+            // InternalSignalDSL.g:1780:2: ( ( ( rule__XThrowExpression__Group__0 ) ) )
+            // InternalSignalDSL.g:1781:2: ( ( rule__XThrowExpression__Group__0 ) )
             {
-            // InternalSignalDSL.g:1756:2: ( ( rule__XThrowExpression__Group__0 ) )
-            // InternalSignalDSL.g:1757:3: ( rule__XThrowExpression__Group__0 )
+            // InternalSignalDSL.g:1781:2: ( ( rule__XThrowExpression__Group__0 ) )
+            // InternalSignalDSL.g:1782:3: ( rule__XThrowExpression__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXThrowExpressionAccess().getGroup()); 
             }
-            // InternalSignalDSL.g:1758:3: ( rule__XThrowExpression__Group__0 )
-            // InternalSignalDSL.g:1758:4: rule__XThrowExpression__Group__0
+            // InternalSignalDSL.g:1783:3: ( rule__XThrowExpression__Group__0 )
+            // InternalSignalDSL.g:1783:4: rule__XThrowExpression__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XThrowExpression__Group__0();
@@ -5927,11 +6010,11 @@
 
 
     // $ANTLR start "entryRuleXReturnExpression"
-    // InternalSignalDSL.g:1767:1: entryRuleXReturnExpression : ruleXReturnExpression EOF ;
+    // InternalSignalDSL.g:1792:1: entryRuleXReturnExpression : ruleXReturnExpression EOF ;
     public final void entryRuleXReturnExpression() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:1768:1: ( ruleXReturnExpression EOF )
-            // InternalSignalDSL.g:1769:1: ruleXReturnExpression EOF
+            // InternalSignalDSL.g:1793:1: ( ruleXReturnExpression EOF )
+            // InternalSignalDSL.g:1794:1: ruleXReturnExpression EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXReturnExpressionRule()); 
@@ -5961,23 +6044,23 @@
 
 
     // $ANTLR start "ruleXReturnExpression"
-    // InternalSignalDSL.g:1776:1: ruleXReturnExpression : ( ( rule__XReturnExpression__Group__0 ) ) ;
+    // InternalSignalDSL.g:1801:1: ruleXReturnExpression : ( ( rule__XReturnExpression__Group__0 ) ) ;
     public final void ruleXReturnExpression() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:1780:2: ( ( ( rule__XReturnExpression__Group__0 ) ) )
-            // InternalSignalDSL.g:1781:2: ( ( rule__XReturnExpression__Group__0 ) )
+            // InternalSignalDSL.g:1805:2: ( ( ( rule__XReturnExpression__Group__0 ) ) )
+            // InternalSignalDSL.g:1806:2: ( ( rule__XReturnExpression__Group__0 ) )
             {
-            // InternalSignalDSL.g:1781:2: ( ( rule__XReturnExpression__Group__0 ) )
-            // InternalSignalDSL.g:1782:3: ( rule__XReturnExpression__Group__0 )
+            // InternalSignalDSL.g:1806:2: ( ( rule__XReturnExpression__Group__0 ) )
+            // InternalSignalDSL.g:1807:3: ( rule__XReturnExpression__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXReturnExpressionAccess().getGroup()); 
             }
-            // InternalSignalDSL.g:1783:3: ( rule__XReturnExpression__Group__0 )
-            // InternalSignalDSL.g:1783:4: rule__XReturnExpression__Group__0
+            // InternalSignalDSL.g:1808:3: ( rule__XReturnExpression__Group__0 )
+            // InternalSignalDSL.g:1808:4: rule__XReturnExpression__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XReturnExpression__Group__0();
@@ -6012,11 +6095,11 @@
 
 
     // $ANTLR start "entryRuleXTryCatchFinallyExpression"
-    // InternalSignalDSL.g:1792:1: entryRuleXTryCatchFinallyExpression : ruleXTryCatchFinallyExpression EOF ;
+    // InternalSignalDSL.g:1817:1: entryRuleXTryCatchFinallyExpression : ruleXTryCatchFinallyExpression EOF ;
     public final void entryRuleXTryCatchFinallyExpression() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:1793:1: ( ruleXTryCatchFinallyExpression EOF )
-            // InternalSignalDSL.g:1794:1: ruleXTryCatchFinallyExpression EOF
+            // InternalSignalDSL.g:1818:1: ( ruleXTryCatchFinallyExpression EOF )
+            // InternalSignalDSL.g:1819:1: ruleXTryCatchFinallyExpression EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTryCatchFinallyExpressionRule()); 
@@ -6046,23 +6129,23 @@
 
 
     // $ANTLR start "ruleXTryCatchFinallyExpression"
-    // InternalSignalDSL.g:1801:1: ruleXTryCatchFinallyExpression : ( ( rule__XTryCatchFinallyExpression__Group__0 ) ) ;
+    // InternalSignalDSL.g:1826:1: ruleXTryCatchFinallyExpression : ( ( rule__XTryCatchFinallyExpression__Group__0 ) ) ;
     public final void ruleXTryCatchFinallyExpression() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:1805:2: ( ( ( rule__XTryCatchFinallyExpression__Group__0 ) ) )
-            // InternalSignalDSL.g:1806:2: ( ( rule__XTryCatchFinallyExpression__Group__0 ) )
+            // InternalSignalDSL.g:1830:2: ( ( ( rule__XTryCatchFinallyExpression__Group__0 ) ) )
+            // InternalSignalDSL.g:1831:2: ( ( rule__XTryCatchFinallyExpression__Group__0 ) )
             {
-            // InternalSignalDSL.g:1806:2: ( ( rule__XTryCatchFinallyExpression__Group__0 ) )
-            // InternalSignalDSL.g:1807:3: ( rule__XTryCatchFinallyExpression__Group__0 )
+            // InternalSignalDSL.g:1831:2: ( ( rule__XTryCatchFinallyExpression__Group__0 ) )
+            // InternalSignalDSL.g:1832:3: ( rule__XTryCatchFinallyExpression__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTryCatchFinallyExpressionAccess().getGroup()); 
             }
-            // InternalSignalDSL.g:1808:3: ( rule__XTryCatchFinallyExpression__Group__0 )
-            // InternalSignalDSL.g:1808:4: rule__XTryCatchFinallyExpression__Group__0
+            // InternalSignalDSL.g:1833:3: ( rule__XTryCatchFinallyExpression__Group__0 )
+            // InternalSignalDSL.g:1833:4: rule__XTryCatchFinallyExpression__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XTryCatchFinallyExpression__Group__0();
@@ -6097,11 +6180,11 @@
 
 
     // $ANTLR start "entryRuleXSynchronizedExpression"
-    // InternalSignalDSL.g:1817:1: entryRuleXSynchronizedExpression : ruleXSynchronizedExpression EOF ;
+    // InternalSignalDSL.g:1842:1: entryRuleXSynchronizedExpression : ruleXSynchronizedExpression EOF ;
     public final void entryRuleXSynchronizedExpression() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:1818:1: ( ruleXSynchronizedExpression EOF )
-            // InternalSignalDSL.g:1819:1: ruleXSynchronizedExpression EOF
+            // InternalSignalDSL.g:1843:1: ( ruleXSynchronizedExpression EOF )
+            // InternalSignalDSL.g:1844:1: ruleXSynchronizedExpression EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSynchronizedExpressionRule()); 
@@ -6131,23 +6214,23 @@
 
 
     // $ANTLR start "ruleXSynchronizedExpression"
-    // InternalSignalDSL.g:1826:1: ruleXSynchronizedExpression : ( ( rule__XSynchronizedExpression__Group__0 ) ) ;
+    // InternalSignalDSL.g:1851:1: ruleXSynchronizedExpression : ( ( rule__XSynchronizedExpression__Group__0 ) ) ;
     public final void ruleXSynchronizedExpression() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:1830:2: ( ( ( rule__XSynchronizedExpression__Group__0 ) ) )
-            // InternalSignalDSL.g:1831:2: ( ( rule__XSynchronizedExpression__Group__0 ) )
+            // InternalSignalDSL.g:1855:2: ( ( ( rule__XSynchronizedExpression__Group__0 ) ) )
+            // InternalSignalDSL.g:1856:2: ( ( rule__XSynchronizedExpression__Group__0 ) )
             {
-            // InternalSignalDSL.g:1831:2: ( ( rule__XSynchronizedExpression__Group__0 ) )
-            // InternalSignalDSL.g:1832:3: ( rule__XSynchronizedExpression__Group__0 )
+            // InternalSignalDSL.g:1856:2: ( ( rule__XSynchronizedExpression__Group__0 ) )
+            // InternalSignalDSL.g:1857:3: ( rule__XSynchronizedExpression__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSynchronizedExpressionAccess().getGroup()); 
             }
-            // InternalSignalDSL.g:1833:3: ( rule__XSynchronizedExpression__Group__0 )
-            // InternalSignalDSL.g:1833:4: rule__XSynchronizedExpression__Group__0
+            // InternalSignalDSL.g:1858:3: ( rule__XSynchronizedExpression__Group__0 )
+            // InternalSignalDSL.g:1858:4: rule__XSynchronizedExpression__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XSynchronizedExpression__Group__0();
@@ -6182,11 +6265,11 @@
 
 
     // $ANTLR start "entryRuleXCatchClause"
-    // InternalSignalDSL.g:1842:1: entryRuleXCatchClause : ruleXCatchClause EOF ;
+    // InternalSignalDSL.g:1867:1: entryRuleXCatchClause : ruleXCatchClause EOF ;
     public final void entryRuleXCatchClause() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:1843:1: ( ruleXCatchClause EOF )
-            // InternalSignalDSL.g:1844:1: ruleXCatchClause EOF
+            // InternalSignalDSL.g:1868:1: ( ruleXCatchClause EOF )
+            // InternalSignalDSL.g:1869:1: ruleXCatchClause EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCatchClauseRule()); 
@@ -6216,23 +6299,23 @@
 
 
     // $ANTLR start "ruleXCatchClause"
-    // InternalSignalDSL.g:1851:1: ruleXCatchClause : ( ( rule__XCatchClause__Group__0 ) ) ;
+    // InternalSignalDSL.g:1876:1: ruleXCatchClause : ( ( rule__XCatchClause__Group__0 ) ) ;
     public final void ruleXCatchClause() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:1855:2: ( ( ( rule__XCatchClause__Group__0 ) ) )
-            // InternalSignalDSL.g:1856:2: ( ( rule__XCatchClause__Group__0 ) )
+            // InternalSignalDSL.g:1880:2: ( ( ( rule__XCatchClause__Group__0 ) ) )
+            // InternalSignalDSL.g:1881:2: ( ( rule__XCatchClause__Group__0 ) )
             {
-            // InternalSignalDSL.g:1856:2: ( ( rule__XCatchClause__Group__0 ) )
-            // InternalSignalDSL.g:1857:3: ( rule__XCatchClause__Group__0 )
+            // InternalSignalDSL.g:1881:2: ( ( rule__XCatchClause__Group__0 ) )
+            // InternalSignalDSL.g:1882:3: ( rule__XCatchClause__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCatchClauseAccess().getGroup()); 
             }
-            // InternalSignalDSL.g:1858:3: ( rule__XCatchClause__Group__0 )
-            // InternalSignalDSL.g:1858:4: rule__XCatchClause__Group__0
+            // InternalSignalDSL.g:1883:3: ( rule__XCatchClause__Group__0 )
+            // InternalSignalDSL.g:1883:4: rule__XCatchClause__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XCatchClause__Group__0();
@@ -6267,11 +6350,11 @@
 
 
     // $ANTLR start "entryRuleQualifiedName"
-    // InternalSignalDSL.g:1867:1: entryRuleQualifiedName : ruleQualifiedName EOF ;
+    // InternalSignalDSL.g:1892:1: entryRuleQualifiedName : ruleQualifiedName EOF ;
     public final void entryRuleQualifiedName() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:1868:1: ( ruleQualifiedName EOF )
-            // InternalSignalDSL.g:1869:1: ruleQualifiedName EOF
+            // InternalSignalDSL.g:1893:1: ( ruleQualifiedName EOF )
+            // InternalSignalDSL.g:1894:1: ruleQualifiedName EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getQualifiedNameRule()); 
@@ -6301,23 +6384,23 @@
 
 
     // $ANTLR start "ruleQualifiedName"
-    // InternalSignalDSL.g:1876:1: ruleQualifiedName : ( ( rule__QualifiedName__Group__0 ) ) ;
+    // InternalSignalDSL.g:1901:1: ruleQualifiedName : ( ( rule__QualifiedName__Group__0 ) ) ;
     public final void ruleQualifiedName() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:1880:2: ( ( ( rule__QualifiedName__Group__0 ) ) )
-            // InternalSignalDSL.g:1881:2: ( ( rule__QualifiedName__Group__0 ) )
+            // InternalSignalDSL.g:1905:2: ( ( ( rule__QualifiedName__Group__0 ) ) )
+            // InternalSignalDSL.g:1906:2: ( ( rule__QualifiedName__Group__0 ) )
             {
-            // InternalSignalDSL.g:1881:2: ( ( rule__QualifiedName__Group__0 ) )
-            // InternalSignalDSL.g:1882:3: ( rule__QualifiedName__Group__0 )
+            // InternalSignalDSL.g:1906:2: ( ( rule__QualifiedName__Group__0 ) )
+            // InternalSignalDSL.g:1907:3: ( rule__QualifiedName__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getQualifiedNameAccess().getGroup()); 
             }
-            // InternalSignalDSL.g:1883:3: ( rule__QualifiedName__Group__0 )
-            // InternalSignalDSL.g:1883:4: rule__QualifiedName__Group__0
+            // InternalSignalDSL.g:1908:3: ( rule__QualifiedName__Group__0 )
+            // InternalSignalDSL.g:1908:4: rule__QualifiedName__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__QualifiedName__Group__0();
@@ -6352,14 +6435,14 @@
 
 
     // $ANTLR start "entryRuleNumber"
-    // InternalSignalDSL.g:1892:1: entryRuleNumber : ruleNumber EOF ;
+    // InternalSignalDSL.g:1917:1: entryRuleNumber : ruleNumber EOF ;
     public final void entryRuleNumber() throws RecognitionException {
          
         	HiddenTokens myHiddenTokenState = ((XtextTokenStream)input).setHiddenTokens();
 
         try {
-            // InternalSignalDSL.g:1896:1: ( ruleNumber EOF )
-            // InternalSignalDSL.g:1897:1: ruleNumber EOF
+            // InternalSignalDSL.g:1921:1: ( ruleNumber EOF )
+            // InternalSignalDSL.g:1922:1: ruleNumber EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getNumberRule()); 
@@ -6392,24 +6475,24 @@
 
 
     // $ANTLR start "ruleNumber"
-    // InternalSignalDSL.g:1907:1: ruleNumber : ( ( rule__Number__Alternatives ) ) ;
+    // InternalSignalDSL.g:1932:1: ruleNumber : ( ( rule__Number__Alternatives ) ) ;
     public final void ruleNumber() throws RecognitionException {
 
         		HiddenTokens myHiddenTokenState = ((XtextTokenStream)input).setHiddenTokens();
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:1912:2: ( ( ( rule__Number__Alternatives ) ) )
-            // InternalSignalDSL.g:1913:2: ( ( rule__Number__Alternatives ) )
+            // InternalSignalDSL.g:1937:2: ( ( ( rule__Number__Alternatives ) ) )
+            // InternalSignalDSL.g:1938:2: ( ( rule__Number__Alternatives ) )
             {
-            // InternalSignalDSL.g:1913:2: ( ( rule__Number__Alternatives ) )
-            // InternalSignalDSL.g:1914:3: ( rule__Number__Alternatives )
+            // InternalSignalDSL.g:1938:2: ( ( rule__Number__Alternatives ) )
+            // InternalSignalDSL.g:1939:3: ( rule__Number__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getNumberAccess().getAlternatives()); 
             }
-            // InternalSignalDSL.g:1915:3: ( rule__Number__Alternatives )
-            // InternalSignalDSL.g:1915:4: rule__Number__Alternatives
+            // InternalSignalDSL.g:1940:3: ( rule__Number__Alternatives )
+            // InternalSignalDSL.g:1940:4: rule__Number__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__Number__Alternatives();
@@ -6445,11 +6528,11 @@
 
 
     // $ANTLR start "entryRuleJvmTypeReference"
-    // InternalSignalDSL.g:1925:1: entryRuleJvmTypeReference : ruleJvmTypeReference EOF ;
+    // InternalSignalDSL.g:1950:1: entryRuleJvmTypeReference : ruleJvmTypeReference EOF ;
     public final void entryRuleJvmTypeReference() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:1926:1: ( ruleJvmTypeReference EOF )
-            // InternalSignalDSL.g:1927:1: ruleJvmTypeReference EOF
+            // InternalSignalDSL.g:1951:1: ( ruleJvmTypeReference EOF )
+            // InternalSignalDSL.g:1952:1: ruleJvmTypeReference EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmTypeReferenceRule()); 
@@ -6479,23 +6562,23 @@
 
 
     // $ANTLR start "ruleJvmTypeReference"
-    // InternalSignalDSL.g:1934:1: ruleJvmTypeReference : ( ( rule__JvmTypeReference__Alternatives ) ) ;
+    // InternalSignalDSL.g:1959:1: ruleJvmTypeReference : ( ( rule__JvmTypeReference__Alternatives ) ) ;
     public final void ruleJvmTypeReference() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:1938:2: ( ( ( rule__JvmTypeReference__Alternatives ) ) )
-            // InternalSignalDSL.g:1939:2: ( ( rule__JvmTypeReference__Alternatives ) )
+            // InternalSignalDSL.g:1963:2: ( ( ( rule__JvmTypeReference__Alternatives ) ) )
+            // InternalSignalDSL.g:1964:2: ( ( rule__JvmTypeReference__Alternatives ) )
             {
-            // InternalSignalDSL.g:1939:2: ( ( rule__JvmTypeReference__Alternatives ) )
-            // InternalSignalDSL.g:1940:3: ( rule__JvmTypeReference__Alternatives )
+            // InternalSignalDSL.g:1964:2: ( ( rule__JvmTypeReference__Alternatives ) )
+            // InternalSignalDSL.g:1965:3: ( rule__JvmTypeReference__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmTypeReferenceAccess().getAlternatives()); 
             }
-            // InternalSignalDSL.g:1941:3: ( rule__JvmTypeReference__Alternatives )
-            // InternalSignalDSL.g:1941:4: rule__JvmTypeReference__Alternatives
+            // InternalSignalDSL.g:1966:3: ( rule__JvmTypeReference__Alternatives )
+            // InternalSignalDSL.g:1966:4: rule__JvmTypeReference__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__JvmTypeReference__Alternatives();
@@ -6530,11 +6613,11 @@
 
 
     // $ANTLR start "entryRuleArrayBrackets"
-    // InternalSignalDSL.g:1950:1: entryRuleArrayBrackets : ruleArrayBrackets EOF ;
+    // InternalSignalDSL.g:1975:1: entryRuleArrayBrackets : ruleArrayBrackets EOF ;
     public final void entryRuleArrayBrackets() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:1951:1: ( ruleArrayBrackets EOF )
-            // InternalSignalDSL.g:1952:1: ruleArrayBrackets EOF
+            // InternalSignalDSL.g:1976:1: ( ruleArrayBrackets EOF )
+            // InternalSignalDSL.g:1977:1: ruleArrayBrackets EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getArrayBracketsRule()); 
@@ -6564,23 +6647,23 @@
 
 
     // $ANTLR start "ruleArrayBrackets"
-    // InternalSignalDSL.g:1959:1: ruleArrayBrackets : ( ( rule__ArrayBrackets__Group__0 ) ) ;
+    // InternalSignalDSL.g:1984:1: ruleArrayBrackets : ( ( rule__ArrayBrackets__Group__0 ) ) ;
     public final void ruleArrayBrackets() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:1963:2: ( ( ( rule__ArrayBrackets__Group__0 ) ) )
-            // InternalSignalDSL.g:1964:2: ( ( rule__ArrayBrackets__Group__0 ) )
+            // InternalSignalDSL.g:1988:2: ( ( ( rule__ArrayBrackets__Group__0 ) ) )
+            // InternalSignalDSL.g:1989:2: ( ( rule__ArrayBrackets__Group__0 ) )
             {
-            // InternalSignalDSL.g:1964:2: ( ( rule__ArrayBrackets__Group__0 ) )
-            // InternalSignalDSL.g:1965:3: ( rule__ArrayBrackets__Group__0 )
+            // InternalSignalDSL.g:1989:2: ( ( rule__ArrayBrackets__Group__0 ) )
+            // InternalSignalDSL.g:1990:3: ( rule__ArrayBrackets__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getArrayBracketsAccess().getGroup()); 
             }
-            // InternalSignalDSL.g:1966:3: ( rule__ArrayBrackets__Group__0 )
-            // InternalSignalDSL.g:1966:4: rule__ArrayBrackets__Group__0
+            // InternalSignalDSL.g:1991:3: ( rule__ArrayBrackets__Group__0 )
+            // InternalSignalDSL.g:1991:4: rule__ArrayBrackets__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__ArrayBrackets__Group__0();
@@ -6615,11 +6698,11 @@
 
 
     // $ANTLR start "entryRuleXFunctionTypeRef"
-    // InternalSignalDSL.g:1975:1: entryRuleXFunctionTypeRef : ruleXFunctionTypeRef EOF ;
+    // InternalSignalDSL.g:2000:1: entryRuleXFunctionTypeRef : ruleXFunctionTypeRef EOF ;
     public final void entryRuleXFunctionTypeRef() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:1976:1: ( ruleXFunctionTypeRef EOF )
-            // InternalSignalDSL.g:1977:1: ruleXFunctionTypeRef EOF
+            // InternalSignalDSL.g:2001:1: ( ruleXFunctionTypeRef EOF )
+            // InternalSignalDSL.g:2002:1: ruleXFunctionTypeRef EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFunctionTypeRefRule()); 
@@ -6649,23 +6732,23 @@
 
 
     // $ANTLR start "ruleXFunctionTypeRef"
-    // InternalSignalDSL.g:1984:1: ruleXFunctionTypeRef : ( ( rule__XFunctionTypeRef__Group__0 ) ) ;
+    // InternalSignalDSL.g:2009:1: ruleXFunctionTypeRef : ( ( rule__XFunctionTypeRef__Group__0 ) ) ;
     public final void ruleXFunctionTypeRef() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:1988:2: ( ( ( rule__XFunctionTypeRef__Group__0 ) ) )
-            // InternalSignalDSL.g:1989:2: ( ( rule__XFunctionTypeRef__Group__0 ) )
+            // InternalSignalDSL.g:2013:2: ( ( ( rule__XFunctionTypeRef__Group__0 ) ) )
+            // InternalSignalDSL.g:2014:2: ( ( rule__XFunctionTypeRef__Group__0 ) )
             {
-            // InternalSignalDSL.g:1989:2: ( ( rule__XFunctionTypeRef__Group__0 ) )
-            // InternalSignalDSL.g:1990:3: ( rule__XFunctionTypeRef__Group__0 )
+            // InternalSignalDSL.g:2014:2: ( ( rule__XFunctionTypeRef__Group__0 ) )
+            // InternalSignalDSL.g:2015:3: ( rule__XFunctionTypeRef__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFunctionTypeRefAccess().getGroup()); 
             }
-            // InternalSignalDSL.g:1991:3: ( rule__XFunctionTypeRef__Group__0 )
-            // InternalSignalDSL.g:1991:4: rule__XFunctionTypeRef__Group__0
+            // InternalSignalDSL.g:2016:3: ( rule__XFunctionTypeRef__Group__0 )
+            // InternalSignalDSL.g:2016:4: rule__XFunctionTypeRef__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XFunctionTypeRef__Group__0();
@@ -6700,11 +6783,11 @@
 
 
     // $ANTLR start "entryRuleJvmParameterizedTypeReference"
-    // InternalSignalDSL.g:2000:1: entryRuleJvmParameterizedTypeReference : ruleJvmParameterizedTypeReference EOF ;
+    // InternalSignalDSL.g:2025:1: entryRuleJvmParameterizedTypeReference : ruleJvmParameterizedTypeReference EOF ;
     public final void entryRuleJvmParameterizedTypeReference() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:2001:1: ( ruleJvmParameterizedTypeReference EOF )
-            // InternalSignalDSL.g:2002:1: ruleJvmParameterizedTypeReference EOF
+            // InternalSignalDSL.g:2026:1: ( ruleJvmParameterizedTypeReference EOF )
+            // InternalSignalDSL.g:2027:1: ruleJvmParameterizedTypeReference EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceRule()); 
@@ -6734,23 +6817,23 @@
 
 
     // $ANTLR start "ruleJvmParameterizedTypeReference"
-    // InternalSignalDSL.g:2009:1: ruleJvmParameterizedTypeReference : ( ( rule__JvmParameterizedTypeReference__Group__0 ) ) ;
+    // InternalSignalDSL.g:2034:1: ruleJvmParameterizedTypeReference : ( ( rule__JvmParameterizedTypeReference__Group__0 ) ) ;
     public final void ruleJvmParameterizedTypeReference() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:2013:2: ( ( ( rule__JvmParameterizedTypeReference__Group__0 ) ) )
-            // InternalSignalDSL.g:2014:2: ( ( rule__JvmParameterizedTypeReference__Group__0 ) )
+            // InternalSignalDSL.g:2038:2: ( ( ( rule__JvmParameterizedTypeReference__Group__0 ) ) )
+            // InternalSignalDSL.g:2039:2: ( ( rule__JvmParameterizedTypeReference__Group__0 ) )
             {
-            // InternalSignalDSL.g:2014:2: ( ( rule__JvmParameterizedTypeReference__Group__0 ) )
-            // InternalSignalDSL.g:2015:3: ( rule__JvmParameterizedTypeReference__Group__0 )
+            // InternalSignalDSL.g:2039:2: ( ( rule__JvmParameterizedTypeReference__Group__0 ) )
+            // InternalSignalDSL.g:2040:3: ( rule__JvmParameterizedTypeReference__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup()); 
             }
-            // InternalSignalDSL.g:2016:3: ( rule__JvmParameterizedTypeReference__Group__0 )
-            // InternalSignalDSL.g:2016:4: rule__JvmParameterizedTypeReference__Group__0
+            // InternalSignalDSL.g:2041:3: ( rule__JvmParameterizedTypeReference__Group__0 )
+            // InternalSignalDSL.g:2041:4: rule__JvmParameterizedTypeReference__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__JvmParameterizedTypeReference__Group__0();
@@ -6785,11 +6868,11 @@
 
 
     // $ANTLR start "entryRuleJvmArgumentTypeReference"
-    // InternalSignalDSL.g:2025:1: entryRuleJvmArgumentTypeReference : ruleJvmArgumentTypeReference EOF ;
+    // InternalSignalDSL.g:2050:1: entryRuleJvmArgumentTypeReference : ruleJvmArgumentTypeReference EOF ;
     public final void entryRuleJvmArgumentTypeReference() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:2026:1: ( ruleJvmArgumentTypeReference EOF )
-            // InternalSignalDSL.g:2027:1: ruleJvmArgumentTypeReference EOF
+            // InternalSignalDSL.g:2051:1: ( ruleJvmArgumentTypeReference EOF )
+            // InternalSignalDSL.g:2052:1: ruleJvmArgumentTypeReference EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmArgumentTypeReferenceRule()); 
@@ -6819,23 +6902,23 @@
 
 
     // $ANTLR start "ruleJvmArgumentTypeReference"
-    // InternalSignalDSL.g:2034:1: ruleJvmArgumentTypeReference : ( ( rule__JvmArgumentTypeReference__Alternatives ) ) ;
+    // InternalSignalDSL.g:2059:1: ruleJvmArgumentTypeReference : ( ( rule__JvmArgumentTypeReference__Alternatives ) ) ;
     public final void ruleJvmArgumentTypeReference() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:2038:2: ( ( ( rule__JvmArgumentTypeReference__Alternatives ) ) )
-            // InternalSignalDSL.g:2039:2: ( ( rule__JvmArgumentTypeReference__Alternatives ) )
+            // InternalSignalDSL.g:2063:2: ( ( ( rule__JvmArgumentTypeReference__Alternatives ) ) )
+            // InternalSignalDSL.g:2064:2: ( ( rule__JvmArgumentTypeReference__Alternatives ) )
             {
-            // InternalSignalDSL.g:2039:2: ( ( rule__JvmArgumentTypeReference__Alternatives ) )
-            // InternalSignalDSL.g:2040:3: ( rule__JvmArgumentTypeReference__Alternatives )
+            // InternalSignalDSL.g:2064:2: ( ( rule__JvmArgumentTypeReference__Alternatives ) )
+            // InternalSignalDSL.g:2065:3: ( rule__JvmArgumentTypeReference__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmArgumentTypeReferenceAccess().getAlternatives()); 
             }
-            // InternalSignalDSL.g:2041:3: ( rule__JvmArgumentTypeReference__Alternatives )
-            // InternalSignalDSL.g:2041:4: rule__JvmArgumentTypeReference__Alternatives
+            // InternalSignalDSL.g:2066:3: ( rule__JvmArgumentTypeReference__Alternatives )
+            // InternalSignalDSL.g:2066:4: rule__JvmArgumentTypeReference__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__JvmArgumentTypeReference__Alternatives();
@@ -6870,11 +6953,11 @@
 
 
     // $ANTLR start "entryRuleJvmWildcardTypeReference"
-    // InternalSignalDSL.g:2050:1: entryRuleJvmWildcardTypeReference : ruleJvmWildcardTypeReference EOF ;
+    // InternalSignalDSL.g:2075:1: entryRuleJvmWildcardTypeReference : ruleJvmWildcardTypeReference EOF ;
     public final void entryRuleJvmWildcardTypeReference() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:2051:1: ( ruleJvmWildcardTypeReference EOF )
-            // InternalSignalDSL.g:2052:1: ruleJvmWildcardTypeReference EOF
+            // InternalSignalDSL.g:2076:1: ( ruleJvmWildcardTypeReference EOF )
+            // InternalSignalDSL.g:2077:1: ruleJvmWildcardTypeReference EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmWildcardTypeReferenceRule()); 
@@ -6904,23 +6987,23 @@
 
 
     // $ANTLR start "ruleJvmWildcardTypeReference"
-    // InternalSignalDSL.g:2059:1: ruleJvmWildcardTypeReference : ( ( rule__JvmWildcardTypeReference__Group__0 ) ) ;
+    // InternalSignalDSL.g:2084:1: ruleJvmWildcardTypeReference : ( ( rule__JvmWildcardTypeReference__Group__0 ) ) ;
     public final void ruleJvmWildcardTypeReference() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:2063:2: ( ( ( rule__JvmWildcardTypeReference__Group__0 ) ) )
-            // InternalSignalDSL.g:2064:2: ( ( rule__JvmWildcardTypeReference__Group__0 ) )
+            // InternalSignalDSL.g:2088:2: ( ( ( rule__JvmWildcardTypeReference__Group__0 ) ) )
+            // InternalSignalDSL.g:2089:2: ( ( rule__JvmWildcardTypeReference__Group__0 ) )
             {
-            // InternalSignalDSL.g:2064:2: ( ( rule__JvmWildcardTypeReference__Group__0 ) )
-            // InternalSignalDSL.g:2065:3: ( rule__JvmWildcardTypeReference__Group__0 )
+            // InternalSignalDSL.g:2089:2: ( ( rule__JvmWildcardTypeReference__Group__0 ) )
+            // InternalSignalDSL.g:2090:3: ( rule__JvmWildcardTypeReference__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmWildcardTypeReferenceAccess().getGroup()); 
             }
-            // InternalSignalDSL.g:2066:3: ( rule__JvmWildcardTypeReference__Group__0 )
-            // InternalSignalDSL.g:2066:4: rule__JvmWildcardTypeReference__Group__0
+            // InternalSignalDSL.g:2091:3: ( rule__JvmWildcardTypeReference__Group__0 )
+            // InternalSignalDSL.g:2091:4: rule__JvmWildcardTypeReference__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__JvmWildcardTypeReference__Group__0();
@@ -6955,11 +7038,11 @@
 
 
     // $ANTLR start "entryRuleJvmUpperBound"
-    // InternalSignalDSL.g:2075:1: entryRuleJvmUpperBound : ruleJvmUpperBound EOF ;
+    // InternalSignalDSL.g:2100:1: entryRuleJvmUpperBound : ruleJvmUpperBound EOF ;
     public final void entryRuleJvmUpperBound() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:2076:1: ( ruleJvmUpperBound EOF )
-            // InternalSignalDSL.g:2077:1: ruleJvmUpperBound EOF
+            // InternalSignalDSL.g:2101:1: ( ruleJvmUpperBound EOF )
+            // InternalSignalDSL.g:2102:1: ruleJvmUpperBound EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmUpperBoundRule()); 
@@ -6989,23 +7072,23 @@
 
 
     // $ANTLR start "ruleJvmUpperBound"
-    // InternalSignalDSL.g:2084:1: ruleJvmUpperBound : ( ( rule__JvmUpperBound__Group__0 ) ) ;
+    // InternalSignalDSL.g:2109:1: ruleJvmUpperBound : ( ( rule__JvmUpperBound__Group__0 ) ) ;
     public final void ruleJvmUpperBound() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:2088:2: ( ( ( rule__JvmUpperBound__Group__0 ) ) )
-            // InternalSignalDSL.g:2089:2: ( ( rule__JvmUpperBound__Group__0 ) )
+            // InternalSignalDSL.g:2113:2: ( ( ( rule__JvmUpperBound__Group__0 ) ) )
+            // InternalSignalDSL.g:2114:2: ( ( rule__JvmUpperBound__Group__0 ) )
             {
-            // InternalSignalDSL.g:2089:2: ( ( rule__JvmUpperBound__Group__0 ) )
-            // InternalSignalDSL.g:2090:3: ( rule__JvmUpperBound__Group__0 )
+            // InternalSignalDSL.g:2114:2: ( ( rule__JvmUpperBound__Group__0 ) )
+            // InternalSignalDSL.g:2115:3: ( rule__JvmUpperBound__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmUpperBoundAccess().getGroup()); 
             }
-            // InternalSignalDSL.g:2091:3: ( rule__JvmUpperBound__Group__0 )
-            // InternalSignalDSL.g:2091:4: rule__JvmUpperBound__Group__0
+            // InternalSignalDSL.g:2116:3: ( rule__JvmUpperBound__Group__0 )
+            // InternalSignalDSL.g:2116:4: rule__JvmUpperBound__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__JvmUpperBound__Group__0();
@@ -7040,11 +7123,11 @@
 
 
     // $ANTLR start "entryRuleJvmUpperBoundAnded"
-    // InternalSignalDSL.g:2100:1: entryRuleJvmUpperBoundAnded : ruleJvmUpperBoundAnded EOF ;
+    // InternalSignalDSL.g:2125:1: entryRuleJvmUpperBoundAnded : ruleJvmUpperBoundAnded EOF ;
     public final void entryRuleJvmUpperBoundAnded() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:2101:1: ( ruleJvmUpperBoundAnded EOF )
-            // InternalSignalDSL.g:2102:1: ruleJvmUpperBoundAnded EOF
+            // InternalSignalDSL.g:2126:1: ( ruleJvmUpperBoundAnded EOF )
+            // InternalSignalDSL.g:2127:1: ruleJvmUpperBoundAnded EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmUpperBoundAndedRule()); 
@@ -7074,23 +7157,23 @@
 
 
     // $ANTLR start "ruleJvmUpperBoundAnded"
-    // InternalSignalDSL.g:2109:1: ruleJvmUpperBoundAnded : ( ( rule__JvmUpperBoundAnded__Group__0 ) ) ;
+    // InternalSignalDSL.g:2134:1: ruleJvmUpperBoundAnded : ( ( rule__JvmUpperBoundAnded__Group__0 ) ) ;
     public final void ruleJvmUpperBoundAnded() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:2113:2: ( ( ( rule__JvmUpperBoundAnded__Group__0 ) ) )
-            // InternalSignalDSL.g:2114:2: ( ( rule__JvmUpperBoundAnded__Group__0 ) )
+            // InternalSignalDSL.g:2138:2: ( ( ( rule__JvmUpperBoundAnded__Group__0 ) ) )
+            // InternalSignalDSL.g:2139:2: ( ( rule__JvmUpperBoundAnded__Group__0 ) )
             {
-            // InternalSignalDSL.g:2114:2: ( ( rule__JvmUpperBoundAnded__Group__0 ) )
-            // InternalSignalDSL.g:2115:3: ( rule__JvmUpperBoundAnded__Group__0 )
+            // InternalSignalDSL.g:2139:2: ( ( rule__JvmUpperBoundAnded__Group__0 ) )
+            // InternalSignalDSL.g:2140:3: ( rule__JvmUpperBoundAnded__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmUpperBoundAndedAccess().getGroup()); 
             }
-            // InternalSignalDSL.g:2116:3: ( rule__JvmUpperBoundAnded__Group__0 )
-            // InternalSignalDSL.g:2116:4: rule__JvmUpperBoundAnded__Group__0
+            // InternalSignalDSL.g:2141:3: ( rule__JvmUpperBoundAnded__Group__0 )
+            // InternalSignalDSL.g:2141:4: rule__JvmUpperBoundAnded__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__JvmUpperBoundAnded__Group__0();
@@ -7125,11 +7208,11 @@
 
 
     // $ANTLR start "entryRuleJvmLowerBound"
-    // InternalSignalDSL.g:2125:1: entryRuleJvmLowerBound : ruleJvmLowerBound EOF ;
+    // InternalSignalDSL.g:2150:1: entryRuleJvmLowerBound : ruleJvmLowerBound EOF ;
     public final void entryRuleJvmLowerBound() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:2126:1: ( ruleJvmLowerBound EOF )
-            // InternalSignalDSL.g:2127:1: ruleJvmLowerBound EOF
+            // InternalSignalDSL.g:2151:1: ( ruleJvmLowerBound EOF )
+            // InternalSignalDSL.g:2152:1: ruleJvmLowerBound EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmLowerBoundRule()); 
@@ -7159,23 +7242,23 @@
 
 
     // $ANTLR start "ruleJvmLowerBound"
-    // InternalSignalDSL.g:2134:1: ruleJvmLowerBound : ( ( rule__JvmLowerBound__Group__0 ) ) ;
+    // InternalSignalDSL.g:2159:1: ruleJvmLowerBound : ( ( rule__JvmLowerBound__Group__0 ) ) ;
     public final void ruleJvmLowerBound() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:2138:2: ( ( ( rule__JvmLowerBound__Group__0 ) ) )
-            // InternalSignalDSL.g:2139:2: ( ( rule__JvmLowerBound__Group__0 ) )
+            // InternalSignalDSL.g:2163:2: ( ( ( rule__JvmLowerBound__Group__0 ) ) )
+            // InternalSignalDSL.g:2164:2: ( ( rule__JvmLowerBound__Group__0 ) )
             {
-            // InternalSignalDSL.g:2139:2: ( ( rule__JvmLowerBound__Group__0 ) )
-            // InternalSignalDSL.g:2140:3: ( rule__JvmLowerBound__Group__0 )
+            // InternalSignalDSL.g:2164:2: ( ( rule__JvmLowerBound__Group__0 ) )
+            // InternalSignalDSL.g:2165:3: ( rule__JvmLowerBound__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmLowerBoundAccess().getGroup()); 
             }
-            // InternalSignalDSL.g:2141:3: ( rule__JvmLowerBound__Group__0 )
-            // InternalSignalDSL.g:2141:4: rule__JvmLowerBound__Group__0
+            // InternalSignalDSL.g:2166:3: ( rule__JvmLowerBound__Group__0 )
+            // InternalSignalDSL.g:2166:4: rule__JvmLowerBound__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__JvmLowerBound__Group__0();
@@ -7210,11 +7293,11 @@
 
 
     // $ANTLR start "entryRuleJvmLowerBoundAnded"
-    // InternalSignalDSL.g:2150:1: entryRuleJvmLowerBoundAnded : ruleJvmLowerBoundAnded EOF ;
+    // InternalSignalDSL.g:2175:1: entryRuleJvmLowerBoundAnded : ruleJvmLowerBoundAnded EOF ;
     public final void entryRuleJvmLowerBoundAnded() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:2151:1: ( ruleJvmLowerBoundAnded EOF )
-            // InternalSignalDSL.g:2152:1: ruleJvmLowerBoundAnded EOF
+            // InternalSignalDSL.g:2176:1: ( ruleJvmLowerBoundAnded EOF )
+            // InternalSignalDSL.g:2177:1: ruleJvmLowerBoundAnded EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmLowerBoundAndedRule()); 
@@ -7244,23 +7327,23 @@
 
 
     // $ANTLR start "ruleJvmLowerBoundAnded"
-    // InternalSignalDSL.g:2159:1: ruleJvmLowerBoundAnded : ( ( rule__JvmLowerBoundAnded__Group__0 ) ) ;
+    // InternalSignalDSL.g:2184:1: ruleJvmLowerBoundAnded : ( ( rule__JvmLowerBoundAnded__Group__0 ) ) ;
     public final void ruleJvmLowerBoundAnded() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:2163:2: ( ( ( rule__JvmLowerBoundAnded__Group__0 ) ) )
-            // InternalSignalDSL.g:2164:2: ( ( rule__JvmLowerBoundAnded__Group__0 ) )
+            // InternalSignalDSL.g:2188:2: ( ( ( rule__JvmLowerBoundAnded__Group__0 ) ) )
+            // InternalSignalDSL.g:2189:2: ( ( rule__JvmLowerBoundAnded__Group__0 ) )
             {
-            // InternalSignalDSL.g:2164:2: ( ( rule__JvmLowerBoundAnded__Group__0 ) )
-            // InternalSignalDSL.g:2165:3: ( rule__JvmLowerBoundAnded__Group__0 )
+            // InternalSignalDSL.g:2189:2: ( ( rule__JvmLowerBoundAnded__Group__0 ) )
+            // InternalSignalDSL.g:2190:3: ( rule__JvmLowerBoundAnded__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmLowerBoundAndedAccess().getGroup()); 
             }
-            // InternalSignalDSL.g:2166:3: ( rule__JvmLowerBoundAnded__Group__0 )
-            // InternalSignalDSL.g:2166:4: rule__JvmLowerBoundAnded__Group__0
+            // InternalSignalDSL.g:2191:3: ( rule__JvmLowerBoundAnded__Group__0 )
+            // InternalSignalDSL.g:2191:4: rule__JvmLowerBoundAnded__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__JvmLowerBoundAnded__Group__0();
@@ -7295,11 +7378,11 @@
 
 
     // $ANTLR start "entryRuleQualifiedNameWithWildcard"
-    // InternalSignalDSL.g:2175:1: entryRuleQualifiedNameWithWildcard : ruleQualifiedNameWithWildcard EOF ;
+    // InternalSignalDSL.g:2200:1: entryRuleQualifiedNameWithWildcard : ruleQualifiedNameWithWildcard EOF ;
     public final void entryRuleQualifiedNameWithWildcard() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:2176:1: ( ruleQualifiedNameWithWildcard EOF )
-            // InternalSignalDSL.g:2177:1: ruleQualifiedNameWithWildcard EOF
+            // InternalSignalDSL.g:2201:1: ( ruleQualifiedNameWithWildcard EOF )
+            // InternalSignalDSL.g:2202:1: ruleQualifiedNameWithWildcard EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getQualifiedNameWithWildcardRule()); 
@@ -7329,23 +7412,23 @@
 
 
     // $ANTLR start "ruleQualifiedNameWithWildcard"
-    // InternalSignalDSL.g:2184:1: ruleQualifiedNameWithWildcard : ( ( rule__QualifiedNameWithWildcard__Group__0 ) ) ;
+    // InternalSignalDSL.g:2209:1: ruleQualifiedNameWithWildcard : ( ( rule__QualifiedNameWithWildcard__Group__0 ) ) ;
     public final void ruleQualifiedNameWithWildcard() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:2188:2: ( ( ( rule__QualifiedNameWithWildcard__Group__0 ) ) )
-            // InternalSignalDSL.g:2189:2: ( ( rule__QualifiedNameWithWildcard__Group__0 ) )
+            // InternalSignalDSL.g:2213:2: ( ( ( rule__QualifiedNameWithWildcard__Group__0 ) ) )
+            // InternalSignalDSL.g:2214:2: ( ( rule__QualifiedNameWithWildcard__Group__0 ) )
             {
-            // InternalSignalDSL.g:2189:2: ( ( rule__QualifiedNameWithWildcard__Group__0 ) )
-            // InternalSignalDSL.g:2190:3: ( rule__QualifiedNameWithWildcard__Group__0 )
+            // InternalSignalDSL.g:2214:2: ( ( rule__QualifiedNameWithWildcard__Group__0 ) )
+            // InternalSignalDSL.g:2215:3: ( rule__QualifiedNameWithWildcard__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getQualifiedNameWithWildcardAccess().getGroup()); 
             }
-            // InternalSignalDSL.g:2191:3: ( rule__QualifiedNameWithWildcard__Group__0 )
-            // InternalSignalDSL.g:2191:4: rule__QualifiedNameWithWildcard__Group__0
+            // InternalSignalDSL.g:2216:3: ( rule__QualifiedNameWithWildcard__Group__0 )
+            // InternalSignalDSL.g:2216:4: rule__QualifiedNameWithWildcard__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__QualifiedNameWithWildcard__Group__0();
@@ -7380,11 +7463,11 @@
 
 
     // $ANTLR start "entryRuleValidID"
-    // InternalSignalDSL.g:2200:1: entryRuleValidID : ruleValidID EOF ;
+    // InternalSignalDSL.g:2225:1: entryRuleValidID : ruleValidID EOF ;
     public final void entryRuleValidID() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:2201:1: ( ruleValidID EOF )
-            // InternalSignalDSL.g:2202:1: ruleValidID EOF
+            // InternalSignalDSL.g:2226:1: ( ruleValidID EOF )
+            // InternalSignalDSL.g:2227:1: ruleValidID EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getValidIDRule()); 
@@ -7414,17 +7497,17 @@
 
 
     // $ANTLR start "ruleValidID"
-    // InternalSignalDSL.g:2209:1: ruleValidID : ( RULE_ID ) ;
+    // InternalSignalDSL.g:2234:1: ruleValidID : ( RULE_ID ) ;
     public final void ruleValidID() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:2213:2: ( ( RULE_ID ) )
-            // InternalSignalDSL.g:2214:2: ( RULE_ID )
+            // InternalSignalDSL.g:2238:2: ( ( RULE_ID ) )
+            // InternalSignalDSL.g:2239:2: ( RULE_ID )
             {
-            // InternalSignalDSL.g:2214:2: ( RULE_ID )
-            // InternalSignalDSL.g:2215:3: RULE_ID
+            // InternalSignalDSL.g:2239:2: ( RULE_ID )
+            // InternalSignalDSL.g:2240:3: RULE_ID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getValidIDAccess().getIDTerminalRuleCall()); 
@@ -7455,11 +7538,11 @@
 
 
     // $ANTLR start "entryRuleXImportSection"
-    // InternalSignalDSL.g:2225:1: entryRuleXImportSection : ruleXImportSection EOF ;
+    // InternalSignalDSL.g:2250:1: entryRuleXImportSection : ruleXImportSection EOF ;
     public final void entryRuleXImportSection() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:2226:1: ( ruleXImportSection EOF )
-            // InternalSignalDSL.g:2227:1: ruleXImportSection EOF
+            // InternalSignalDSL.g:2251:1: ( ruleXImportSection EOF )
+            // InternalSignalDSL.g:2252:1: ruleXImportSection EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportSectionRule()); 
@@ -7489,26 +7572,26 @@
 
 
     // $ANTLR start "ruleXImportSection"
-    // InternalSignalDSL.g:2234:1: ruleXImportSection : ( ( ( rule__XImportSection__ImportDeclarationsAssignment ) ) ( ( rule__XImportSection__ImportDeclarationsAssignment )* ) ) ;
+    // InternalSignalDSL.g:2259:1: ruleXImportSection : ( ( ( rule__XImportSection__ImportDeclarationsAssignment ) ) ( ( rule__XImportSection__ImportDeclarationsAssignment )* ) ) ;
     public final void ruleXImportSection() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:2238:2: ( ( ( ( rule__XImportSection__ImportDeclarationsAssignment ) ) ( ( rule__XImportSection__ImportDeclarationsAssignment )* ) ) )
-            // InternalSignalDSL.g:2239:2: ( ( ( rule__XImportSection__ImportDeclarationsAssignment ) ) ( ( rule__XImportSection__ImportDeclarationsAssignment )* ) )
+            // InternalSignalDSL.g:2263:2: ( ( ( ( rule__XImportSection__ImportDeclarationsAssignment ) ) ( ( rule__XImportSection__ImportDeclarationsAssignment )* ) ) )
+            // InternalSignalDSL.g:2264:2: ( ( ( rule__XImportSection__ImportDeclarationsAssignment ) ) ( ( rule__XImportSection__ImportDeclarationsAssignment )* ) )
             {
-            // InternalSignalDSL.g:2239:2: ( ( ( rule__XImportSection__ImportDeclarationsAssignment ) ) ( ( rule__XImportSection__ImportDeclarationsAssignment )* ) )
-            // InternalSignalDSL.g:2240:3: ( ( rule__XImportSection__ImportDeclarationsAssignment ) ) ( ( rule__XImportSection__ImportDeclarationsAssignment )* )
+            // InternalSignalDSL.g:2264:2: ( ( ( rule__XImportSection__ImportDeclarationsAssignment ) ) ( ( rule__XImportSection__ImportDeclarationsAssignment )* ) )
+            // InternalSignalDSL.g:2265:3: ( ( rule__XImportSection__ImportDeclarationsAssignment ) ) ( ( rule__XImportSection__ImportDeclarationsAssignment )* )
             {
-            // InternalSignalDSL.g:2240:3: ( ( rule__XImportSection__ImportDeclarationsAssignment ) )
-            // InternalSignalDSL.g:2241:4: ( rule__XImportSection__ImportDeclarationsAssignment )
+            // InternalSignalDSL.g:2265:3: ( ( rule__XImportSection__ImportDeclarationsAssignment ) )
+            // InternalSignalDSL.g:2266:4: ( rule__XImportSection__ImportDeclarationsAssignment )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportSectionAccess().getImportDeclarationsAssignment()); 
             }
-            // InternalSignalDSL.g:2242:4: ( rule__XImportSection__ImportDeclarationsAssignment )
-            // InternalSignalDSL.g:2242:5: rule__XImportSection__ImportDeclarationsAssignment
+            // InternalSignalDSL.g:2267:4: ( rule__XImportSection__ImportDeclarationsAssignment )
+            // InternalSignalDSL.g:2267:5: rule__XImportSection__ImportDeclarationsAssignment
             {
             pushFollow(FOLLOW_3);
             rule__XImportSection__ImportDeclarationsAssignment();
@@ -7524,13 +7607,13 @@
 
             }
 
-            // InternalSignalDSL.g:2245:3: ( ( rule__XImportSection__ImportDeclarationsAssignment )* )
-            // InternalSignalDSL.g:2246:4: ( rule__XImportSection__ImportDeclarationsAssignment )*
+            // InternalSignalDSL.g:2270:3: ( ( rule__XImportSection__ImportDeclarationsAssignment )* )
+            // InternalSignalDSL.g:2271:4: ( rule__XImportSection__ImportDeclarationsAssignment )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportSectionAccess().getImportDeclarationsAssignment()); 
             }
-            // InternalSignalDSL.g:2247:4: ( rule__XImportSection__ImportDeclarationsAssignment )*
+            // InternalSignalDSL.g:2272:4: ( rule__XImportSection__ImportDeclarationsAssignment )*
             loop1:
             do {
                 int alt1=2;
@@ -7543,7 +7626,7 @@
 
                 switch (alt1) {
             	case 1 :
-            	    // InternalSignalDSL.g:2247:5: rule__XImportSection__ImportDeclarationsAssignment
+            	    // InternalSignalDSL.g:2272:5: rule__XImportSection__ImportDeclarationsAssignment
             	    {
             	    pushFollow(FOLLOW_3);
             	    rule__XImportSection__ImportDeclarationsAssignment();
@@ -7587,11 +7670,11 @@
 
 
     // $ANTLR start "entryRuleQualifiedNameInStaticImport"
-    // InternalSignalDSL.g:2257:1: entryRuleQualifiedNameInStaticImport : ruleQualifiedNameInStaticImport EOF ;
+    // InternalSignalDSL.g:2282:1: entryRuleQualifiedNameInStaticImport : ruleQualifiedNameInStaticImport EOF ;
     public final void entryRuleQualifiedNameInStaticImport() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:2258:1: ( ruleQualifiedNameInStaticImport EOF )
-            // InternalSignalDSL.g:2259:1: ruleQualifiedNameInStaticImport EOF
+            // InternalSignalDSL.g:2283:1: ( ruleQualifiedNameInStaticImport EOF )
+            // InternalSignalDSL.g:2284:1: ruleQualifiedNameInStaticImport EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getQualifiedNameInStaticImportRule()); 
@@ -7621,26 +7704,26 @@
 
 
     // $ANTLR start "ruleQualifiedNameInStaticImport"
-    // InternalSignalDSL.g:2266:1: ruleQualifiedNameInStaticImport : ( ( ( rule__QualifiedNameInStaticImport__Group__0 ) ) ( ( rule__QualifiedNameInStaticImport__Group__0 )* ) ) ;
+    // InternalSignalDSL.g:2291:1: ruleQualifiedNameInStaticImport : ( ( ( rule__QualifiedNameInStaticImport__Group__0 ) ) ( ( rule__QualifiedNameInStaticImport__Group__0 )* ) ) ;
     public final void ruleQualifiedNameInStaticImport() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:2270:2: ( ( ( ( rule__QualifiedNameInStaticImport__Group__0 ) ) ( ( rule__QualifiedNameInStaticImport__Group__0 )* ) ) )
-            // InternalSignalDSL.g:2271:2: ( ( ( rule__QualifiedNameInStaticImport__Group__0 ) ) ( ( rule__QualifiedNameInStaticImport__Group__0 )* ) )
+            // InternalSignalDSL.g:2295:2: ( ( ( ( rule__QualifiedNameInStaticImport__Group__0 ) ) ( ( rule__QualifiedNameInStaticImport__Group__0 )* ) ) )
+            // InternalSignalDSL.g:2296:2: ( ( ( rule__QualifiedNameInStaticImport__Group__0 ) ) ( ( rule__QualifiedNameInStaticImport__Group__0 )* ) )
             {
-            // InternalSignalDSL.g:2271:2: ( ( ( rule__QualifiedNameInStaticImport__Group__0 ) ) ( ( rule__QualifiedNameInStaticImport__Group__0 )* ) )
-            // InternalSignalDSL.g:2272:3: ( ( rule__QualifiedNameInStaticImport__Group__0 ) ) ( ( rule__QualifiedNameInStaticImport__Group__0 )* )
+            // InternalSignalDSL.g:2296:2: ( ( ( rule__QualifiedNameInStaticImport__Group__0 ) ) ( ( rule__QualifiedNameInStaticImport__Group__0 )* ) )
+            // InternalSignalDSL.g:2297:3: ( ( rule__QualifiedNameInStaticImport__Group__0 ) ) ( ( rule__QualifiedNameInStaticImport__Group__0 )* )
             {
-            // InternalSignalDSL.g:2272:3: ( ( rule__QualifiedNameInStaticImport__Group__0 ) )
-            // InternalSignalDSL.g:2273:4: ( rule__QualifiedNameInStaticImport__Group__0 )
+            // InternalSignalDSL.g:2297:3: ( ( rule__QualifiedNameInStaticImport__Group__0 ) )
+            // InternalSignalDSL.g:2298:4: ( rule__QualifiedNameInStaticImport__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getQualifiedNameInStaticImportAccess().getGroup()); 
             }
-            // InternalSignalDSL.g:2274:4: ( rule__QualifiedNameInStaticImport__Group__0 )
-            // InternalSignalDSL.g:2274:5: rule__QualifiedNameInStaticImport__Group__0
+            // InternalSignalDSL.g:2299:4: ( rule__QualifiedNameInStaticImport__Group__0 )
+            // InternalSignalDSL.g:2299:5: rule__QualifiedNameInStaticImport__Group__0
             {
             pushFollow(FOLLOW_4);
             rule__QualifiedNameInStaticImport__Group__0();
@@ -7656,13 +7739,13 @@
 
             }
 
-            // InternalSignalDSL.g:2277:3: ( ( rule__QualifiedNameInStaticImport__Group__0 )* )
-            // InternalSignalDSL.g:2278:4: ( rule__QualifiedNameInStaticImport__Group__0 )*
+            // InternalSignalDSL.g:2302:3: ( ( rule__QualifiedNameInStaticImport__Group__0 )* )
+            // InternalSignalDSL.g:2303:4: ( rule__QualifiedNameInStaticImport__Group__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getQualifiedNameInStaticImportAccess().getGroup()); 
             }
-            // InternalSignalDSL.g:2279:4: ( rule__QualifiedNameInStaticImport__Group__0 )*
+            // InternalSignalDSL.g:2304:4: ( rule__QualifiedNameInStaticImport__Group__0 )*
             loop2:
             do {
                 int alt2=2;
@@ -7681,7 +7764,7 @@
 
                 switch (alt2) {
             	case 1 :
-            	    // InternalSignalDSL.g:2279:5: rule__QualifiedNameInStaticImport__Group__0
+            	    // InternalSignalDSL.g:2304:5: rule__QualifiedNameInStaticImport__Group__0
             	    {
             	    pushFollow(FOLLOW_4);
             	    rule__QualifiedNameInStaticImport__Group__0();
@@ -7724,24 +7807,75 @@
     // $ANTLR end "ruleQualifiedNameInStaticImport"
 
 
+    // $ANTLR start "ruleSignalActionEnum"
+    // InternalSignalDSL.g:2314:1: ruleSignalActionEnum : ( ( rule__SignalActionEnum__Alternatives ) ) ;
+    public final void ruleSignalActionEnum() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalSignalDSL.g:2318:1: ( ( ( rule__SignalActionEnum__Alternatives ) ) )
+            // InternalSignalDSL.g:2319:2: ( ( rule__SignalActionEnum__Alternatives ) )
+            {
+            // InternalSignalDSL.g:2319:2: ( ( rule__SignalActionEnum__Alternatives ) )
+            // InternalSignalDSL.g:2320:3: ( rule__SignalActionEnum__Alternatives )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getSignalActionEnumAccess().getAlternatives()); 
+            }
+            // InternalSignalDSL.g:2321:3: ( rule__SignalActionEnum__Alternatives )
+            // InternalSignalDSL.g:2321:4: rule__SignalActionEnum__Alternatives
+            {
+            pushFollow(FOLLOW_2);
+            rule__SignalActionEnum__Alternatives();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getSignalActionEnumAccess().getAlternatives()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleSignalActionEnum"
+
+
     // $ANTLR start "ruleSignalTypeEnum"
-    // InternalSignalDSL.g:2289:1: ruleSignalTypeEnum : ( ( rule__SignalTypeEnum__Alternatives ) ) ;
+    // InternalSignalDSL.g:2330:1: ruleSignalTypeEnum : ( ( rule__SignalTypeEnum__Alternatives ) ) ;
     public final void ruleSignalTypeEnum() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:2293:1: ( ( ( rule__SignalTypeEnum__Alternatives ) ) )
-            // InternalSignalDSL.g:2294:2: ( ( rule__SignalTypeEnum__Alternatives ) )
+            // InternalSignalDSL.g:2334:1: ( ( ( rule__SignalTypeEnum__Alternatives ) ) )
+            // InternalSignalDSL.g:2335:2: ( ( rule__SignalTypeEnum__Alternatives ) )
             {
-            // InternalSignalDSL.g:2294:2: ( ( rule__SignalTypeEnum__Alternatives ) )
-            // InternalSignalDSL.g:2295:3: ( rule__SignalTypeEnum__Alternatives )
+            // InternalSignalDSL.g:2335:2: ( ( rule__SignalTypeEnum__Alternatives ) )
+            // InternalSignalDSL.g:2336:3: ( rule__SignalTypeEnum__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSignalTypeEnumAccess().getAlternatives()); 
             }
-            // InternalSignalDSL.g:2296:3: ( rule__SignalTypeEnum__Alternatives )
-            // InternalSignalDSL.g:2296:4: rule__SignalTypeEnum__Alternatives
+            // InternalSignalDSL.g:2337:3: ( rule__SignalTypeEnum__Alternatives )
+            // InternalSignalDSL.g:2337:4: rule__SignalTypeEnum__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__SignalTypeEnum__Alternatives();
@@ -7775,75 +7909,24 @@
     // $ANTLR end "ruleSignalTypeEnum"
 
 
-    // $ANTLR start "ruleSignalNotificationEnum"
-    // InternalSignalDSL.g:2305:1: ruleSignalNotificationEnum : ( ( rule__SignalNotificationEnum__Alternatives ) ) ;
-    public final void ruleSignalNotificationEnum() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-        	
-        try {
-            // InternalSignalDSL.g:2309:1: ( ( ( rule__SignalNotificationEnum__Alternatives ) ) )
-            // InternalSignalDSL.g:2310:2: ( ( rule__SignalNotificationEnum__Alternatives ) )
-            {
-            // InternalSignalDSL.g:2310:2: ( ( rule__SignalNotificationEnum__Alternatives ) )
-            // InternalSignalDSL.g:2311:3: ( rule__SignalNotificationEnum__Alternatives )
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getSignalNotificationEnumAccess().getAlternatives()); 
-            }
-            // InternalSignalDSL.g:2312:3: ( rule__SignalNotificationEnum__Alternatives )
-            // InternalSignalDSL.g:2312:4: rule__SignalNotificationEnum__Alternatives
-            {
-            pushFollow(FOLLOW_2);
-            rule__SignalNotificationEnum__Alternatives();
-
-            state._fsp--;
-            if (state.failed) return ;
-
-            }
-
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getSignalNotificationEnumAccess().getAlternatives()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "ruleSignalNotificationEnum"
-
-
     // $ANTLR start "ruleSignalHandlerTypeEnum"
-    // InternalSignalDSL.g:2321:1: ruleSignalHandlerTypeEnum : ( ( rule__SignalHandlerTypeEnum__Alternatives ) ) ;
+    // InternalSignalDSL.g:2346:1: ruleSignalHandlerTypeEnum : ( ( rule__SignalHandlerTypeEnum__Alternatives ) ) ;
     public final void ruleSignalHandlerTypeEnum() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:2325:1: ( ( ( rule__SignalHandlerTypeEnum__Alternatives ) ) )
-            // InternalSignalDSL.g:2326:2: ( ( rule__SignalHandlerTypeEnum__Alternatives ) )
+            // InternalSignalDSL.g:2350:1: ( ( ( rule__SignalHandlerTypeEnum__Alternatives ) ) )
+            // InternalSignalDSL.g:2351:2: ( ( rule__SignalHandlerTypeEnum__Alternatives ) )
             {
-            // InternalSignalDSL.g:2326:2: ( ( rule__SignalHandlerTypeEnum__Alternatives ) )
-            // InternalSignalDSL.g:2327:3: ( rule__SignalHandlerTypeEnum__Alternatives )
+            // InternalSignalDSL.g:2351:2: ( ( rule__SignalHandlerTypeEnum__Alternatives ) )
+            // InternalSignalDSL.g:2352:3: ( rule__SignalHandlerTypeEnum__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSignalHandlerTypeEnumAccess().getAlternatives()); 
             }
-            // InternalSignalDSL.g:2328:3: ( rule__SignalHandlerTypeEnum__Alternatives )
-            // InternalSignalDSL.g:2328:4: rule__SignalHandlerTypeEnum__Alternatives
+            // InternalSignalDSL.g:2353:3: ( rule__SignalHandlerTypeEnum__Alternatives )
+            // InternalSignalDSL.g:2353:4: rule__SignalHandlerTypeEnum__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__SignalHandlerTypeEnum__Alternatives();
@@ -7877,28 +7960,167 @@
     // $ANTLR end "ruleSignalHandlerTypeEnum"
 
 
+    // $ANTLR start "ruleSignalExecutionTypeEnum"
+    // InternalSignalDSL.g:2362:1: ruleSignalExecutionTypeEnum : ( ( rule__SignalExecutionTypeEnum__Alternatives ) ) ;
+    public final void ruleSignalExecutionTypeEnum() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalSignalDSL.g:2366:1: ( ( ( rule__SignalExecutionTypeEnum__Alternatives ) ) )
+            // InternalSignalDSL.g:2367:2: ( ( rule__SignalExecutionTypeEnum__Alternatives ) )
+            {
+            // InternalSignalDSL.g:2367:2: ( ( rule__SignalExecutionTypeEnum__Alternatives ) )
+            // InternalSignalDSL.g:2368:3: ( rule__SignalExecutionTypeEnum__Alternatives )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getSignalExecutionTypeEnumAccess().getAlternatives()); 
+            }
+            // InternalSignalDSL.g:2369:3: ( rule__SignalExecutionTypeEnum__Alternatives )
+            // InternalSignalDSL.g:2369:4: rule__SignalExecutionTypeEnum__Alternatives
+            {
+            pushFollow(FOLLOW_2);
+            rule__SignalExecutionTypeEnum__Alternatives();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getSignalExecutionTypeEnumAccess().getAlternatives()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleSignalExecutionTypeEnum"
+
+
+    // $ANTLR start "rule__DataTransfer__Alternatives"
+    // InternalSignalDSL.g:2377:1: rule__DataTransfer__Alternatives : ( ( ruleSingleTransfer ) | ( ruleListTransfer ) );
+    public final void rule__DataTransfer__Alternatives() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalSignalDSL.g:2381:1: ( ( ruleSingleTransfer ) | ( ruleListTransfer ) )
+            int alt3=2;
+            int LA3_0 = input.LA(1);
+
+            if ( ((LA3_0>=51 && LA3_0<=52)) ) {
+                alt3=1;
+            }
+            else if ( (LA3_0==71) ) {
+                alt3=2;
+            }
+            else {
+                if (state.backtracking>0) {state.failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 3, 0, input);
+
+                throw nvae;
+            }
+            switch (alt3) {
+                case 1 :
+                    // InternalSignalDSL.g:2382:2: ( ruleSingleTransfer )
+                    {
+                    // InternalSignalDSL.g:2382:2: ( ruleSingleTransfer )
+                    // InternalSignalDSL.g:2383:3: ruleSingleTransfer
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getDataTransferAccess().getSingleTransferParserRuleCall_0()); 
+                    }
+                    pushFollow(FOLLOW_2);
+                    ruleSingleTransfer();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getDataTransferAccess().getSingleTransferParserRuleCall_0()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalSignalDSL.g:2388:2: ( ruleListTransfer )
+                    {
+                    // InternalSignalDSL.g:2388:2: ( ruleListTransfer )
+                    // InternalSignalDSL.g:2389:3: ruleListTransfer
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getDataTransferAccess().getListTransferParserRuleCall_1()); 
+                    }
+                    pushFollow(FOLLOW_2);
+                    ruleListTransfer();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getDataTransferAccess().getListTransferParserRuleCall_1()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DataTransfer__Alternatives"
+
+
     // $ANTLR start "rule__XImportDeclaration__Alternatives_2"
-    // InternalSignalDSL.g:2336: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:2398: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:2340:1: ( ( ( rule__XImportDeclaration__Group_2_0__0 ) ) | ( ( rule__XImportDeclaration__ImportedTypeAssignment_2_1 ) ) | ( ( rule__XImportDeclaration__ImportedNamespaceAssignment_2_2 ) ) | ( ( rule__XImportDeclaration__Group_2_3__0 ) ) )
-            int alt3=4;
-            alt3 = dfa3.predict(input);
-            switch (alt3) {
+            // InternalSignalDSL.g:2402:1: ( ( ( rule__XImportDeclaration__Group_2_0__0 ) ) | ( ( rule__XImportDeclaration__ImportedTypeAssignment_2_1 ) ) | ( ( rule__XImportDeclaration__ImportedNamespaceAssignment_2_2 ) ) | ( ( rule__XImportDeclaration__Group_2_3__0 ) ) )
+            int alt4=4;
+            alt4 = dfa4.predict(input);
+            switch (alt4) {
                 case 1 :
-                    // InternalSignalDSL.g:2341:2: ( ( rule__XImportDeclaration__Group_2_0__0 ) )
+                    // InternalSignalDSL.g:2403:2: ( ( rule__XImportDeclaration__Group_2_0__0 ) )
                     {
-                    // InternalSignalDSL.g:2341:2: ( ( rule__XImportDeclaration__Group_2_0__0 ) )
-                    // InternalSignalDSL.g:2342:3: ( rule__XImportDeclaration__Group_2_0__0 )
+                    // InternalSignalDSL.g:2403:2: ( ( rule__XImportDeclaration__Group_2_0__0 ) )
+                    // InternalSignalDSL.g:2404:3: ( rule__XImportDeclaration__Group_2_0__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXImportDeclarationAccess().getGroup_2_0()); 
                     }
-                    // InternalSignalDSL.g:2343:3: ( rule__XImportDeclaration__Group_2_0__0 )
-                    // InternalSignalDSL.g:2343:4: rule__XImportDeclaration__Group_2_0__0
+                    // InternalSignalDSL.g:2405:3: ( rule__XImportDeclaration__Group_2_0__0 )
+                    // InternalSignalDSL.g:2405:4: rule__XImportDeclaration__Group_2_0__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XImportDeclaration__Group_2_0__0();
@@ -7918,16 +8140,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:2347:2: ( ( rule__XImportDeclaration__ImportedTypeAssignment_2_1 ) )
+                    // InternalSignalDSL.g:2409:2: ( ( rule__XImportDeclaration__ImportedTypeAssignment_2_1 ) )
                     {
-                    // InternalSignalDSL.g:2347:2: ( ( rule__XImportDeclaration__ImportedTypeAssignment_2_1 ) )
-                    // InternalSignalDSL.g:2348:3: ( rule__XImportDeclaration__ImportedTypeAssignment_2_1 )
+                    // InternalSignalDSL.g:2409:2: ( ( rule__XImportDeclaration__ImportedTypeAssignment_2_1 ) )
+                    // InternalSignalDSL.g:2410:3: ( rule__XImportDeclaration__ImportedTypeAssignment_2_1 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXImportDeclarationAccess().getImportedTypeAssignment_2_1()); 
                     }
-                    // InternalSignalDSL.g:2349:3: ( rule__XImportDeclaration__ImportedTypeAssignment_2_1 )
-                    // InternalSignalDSL.g:2349:4: rule__XImportDeclaration__ImportedTypeAssignment_2_1
+                    // InternalSignalDSL.g:2411:3: ( rule__XImportDeclaration__ImportedTypeAssignment_2_1 )
+                    // InternalSignalDSL.g:2411:4: rule__XImportDeclaration__ImportedTypeAssignment_2_1
                     {
                     pushFollow(FOLLOW_2);
                     rule__XImportDeclaration__ImportedTypeAssignment_2_1();
@@ -7947,16 +8169,16 @@
                     }
                     break;
                 case 3 :
-                    // InternalSignalDSL.g:2353:2: ( ( rule__XImportDeclaration__ImportedNamespaceAssignment_2_2 ) )
+                    // InternalSignalDSL.g:2415:2: ( ( rule__XImportDeclaration__ImportedNamespaceAssignment_2_2 ) )
                     {
-                    // InternalSignalDSL.g:2353:2: ( ( rule__XImportDeclaration__ImportedNamespaceAssignment_2_2 ) )
-                    // InternalSignalDSL.g:2354:3: ( rule__XImportDeclaration__ImportedNamespaceAssignment_2_2 )
+                    // InternalSignalDSL.g:2415:2: ( ( rule__XImportDeclaration__ImportedNamespaceAssignment_2_2 ) )
+                    // InternalSignalDSL.g:2416:3: ( rule__XImportDeclaration__ImportedNamespaceAssignment_2_2 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXImportDeclarationAccess().getImportedNamespaceAssignment_2_2()); 
                     }
-                    // InternalSignalDSL.g:2355:3: ( rule__XImportDeclaration__ImportedNamespaceAssignment_2_2 )
-                    // InternalSignalDSL.g:2355:4: rule__XImportDeclaration__ImportedNamespaceAssignment_2_2
+                    // InternalSignalDSL.g:2417:3: ( rule__XImportDeclaration__ImportedNamespaceAssignment_2_2 )
+                    // InternalSignalDSL.g:2417:4: rule__XImportDeclaration__ImportedNamespaceAssignment_2_2
                     {
                     pushFollow(FOLLOW_2);
                     rule__XImportDeclaration__ImportedNamespaceAssignment_2_2();
@@ -7976,16 +8198,16 @@
                     }
                     break;
                 case 4 :
-                    // InternalSignalDSL.g:2359:2: ( ( rule__XImportDeclaration__Group_2_3__0 ) )
+                    // InternalSignalDSL.g:2421:2: ( ( rule__XImportDeclaration__Group_2_3__0 ) )
                     {
-                    // InternalSignalDSL.g:2359:2: ( ( rule__XImportDeclaration__Group_2_3__0 ) )
-                    // InternalSignalDSL.g:2360:3: ( rule__XImportDeclaration__Group_2_3__0 )
+                    // InternalSignalDSL.g:2421:2: ( ( rule__XImportDeclaration__Group_2_3__0 ) )
+                    // InternalSignalDSL.g:2422:3: ( rule__XImportDeclaration__Group_2_3__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXImportDeclarationAccess().getGroup_2_3()); 
                     }
-                    // InternalSignalDSL.g:2361:3: ( rule__XImportDeclaration__Group_2_3__0 )
-                    // InternalSignalDSL.g:2361:4: rule__XImportDeclaration__Group_2_3__0
+                    // InternalSignalDSL.g:2423:3: ( rule__XImportDeclaration__Group_2_3__0 )
+                    // InternalSignalDSL.g:2423:4: rule__XImportDeclaration__Group_2_3__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XImportDeclaration__Group_2_3__0();
@@ -8022,41 +8244,41 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Alternatives_2_0_3"
-    // InternalSignalDSL.g:2369:1: rule__XImportDeclaration__Alternatives_2_0_3 : ( ( ( rule__XImportDeclaration__WildcardAssignment_2_0_3_0 ) ) | ( ( rule__XImportDeclaration__MemberNameAssignment_2_0_3_1 ) ) );
+    // InternalSignalDSL.g:2431: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:2373:1: ( ( ( rule__XImportDeclaration__WildcardAssignment_2_0_3_0 ) ) | ( ( rule__XImportDeclaration__MemberNameAssignment_2_0_3_1 ) ) )
-            int alt4=2;
-            int LA4_0 = input.LA(1);
+            // InternalSignalDSL.g:2435:1: ( ( ( rule__XImportDeclaration__WildcardAssignment_2_0_3_0 ) ) | ( ( rule__XImportDeclaration__MemberNameAssignment_2_0_3_1 ) ) )
+            int alt5=2;
+            int LA5_0 = input.LA(1);
 
-            if ( (LA4_0==36) ) {
-                alt4=1;
+            if ( (LA5_0==36) ) {
+                alt5=1;
             }
-            else if ( (LA4_0==RULE_ID) ) {
-                alt4=2;
+            else if ( (LA5_0==RULE_ID) ) {
+                alt5=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 4, 0, input);
+                    new NoViableAltException("", 5, 0, input);
 
                 throw nvae;
             }
-            switch (alt4) {
+            switch (alt5) {
                 case 1 :
-                    // InternalSignalDSL.g:2374:2: ( ( rule__XImportDeclaration__WildcardAssignment_2_0_3_0 ) )
+                    // InternalSignalDSL.g:2436:2: ( ( rule__XImportDeclaration__WildcardAssignment_2_0_3_0 ) )
                     {
-                    // InternalSignalDSL.g:2374:2: ( ( rule__XImportDeclaration__WildcardAssignment_2_0_3_0 ) )
-                    // InternalSignalDSL.g:2375:3: ( rule__XImportDeclaration__WildcardAssignment_2_0_3_0 )
+                    // InternalSignalDSL.g:2436:2: ( ( rule__XImportDeclaration__WildcardAssignment_2_0_3_0 ) )
+                    // InternalSignalDSL.g:2437:3: ( rule__XImportDeclaration__WildcardAssignment_2_0_3_0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXImportDeclarationAccess().getWildcardAssignment_2_0_3_0()); 
                     }
-                    // InternalSignalDSL.g:2376:3: ( rule__XImportDeclaration__WildcardAssignment_2_0_3_0 )
-                    // InternalSignalDSL.g:2376:4: rule__XImportDeclaration__WildcardAssignment_2_0_3_0
+                    // InternalSignalDSL.g:2438:3: ( rule__XImportDeclaration__WildcardAssignment_2_0_3_0 )
+                    // InternalSignalDSL.g:2438:4: rule__XImportDeclaration__WildcardAssignment_2_0_3_0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XImportDeclaration__WildcardAssignment_2_0_3_0();
@@ -8076,16 +8298,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:2380:2: ( ( rule__XImportDeclaration__MemberNameAssignment_2_0_3_1 ) )
+                    // InternalSignalDSL.g:2442:2: ( ( rule__XImportDeclaration__MemberNameAssignment_2_0_3_1 ) )
                     {
-                    // InternalSignalDSL.g:2380:2: ( ( rule__XImportDeclaration__MemberNameAssignment_2_0_3_1 ) )
-                    // InternalSignalDSL.g:2381:3: ( rule__XImportDeclaration__MemberNameAssignment_2_0_3_1 )
+                    // InternalSignalDSL.g:2442:2: ( ( rule__XImportDeclaration__MemberNameAssignment_2_0_3_1 ) )
+                    // InternalSignalDSL.g:2443:3: ( rule__XImportDeclaration__MemberNameAssignment_2_0_3_1 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXImportDeclarationAccess().getMemberNameAssignment_2_0_3_1()); 
                     }
-                    // InternalSignalDSL.g:2382:3: ( rule__XImportDeclaration__MemberNameAssignment_2_0_3_1 )
-                    // InternalSignalDSL.g:2382:4: rule__XImportDeclaration__MemberNameAssignment_2_0_3_1
+                    // InternalSignalDSL.g:2444:3: ( rule__XImportDeclaration__MemberNameAssignment_2_0_3_1 )
+                    // InternalSignalDSL.g:2444:4: rule__XImportDeclaration__MemberNameAssignment_2_0_3_1
                     {
                     pushFollow(FOLLOW_2);
                     rule__XImportDeclaration__MemberNameAssignment_2_0_3_1();
@@ -8122,27 +8344,27 @@
 
 
     // $ANTLR start "rule__XAnnotation__Alternatives_3_1"
-    // InternalSignalDSL.g:2390:1: rule__XAnnotation__Alternatives_3_1 : ( ( ( rule__XAnnotation__Group_3_1_0__0 ) ) | ( ( rule__XAnnotation__ValueAssignment_3_1_1 ) ) );
+    // InternalSignalDSL.g:2452: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:2394:1: ( ( ( rule__XAnnotation__Group_3_1_0__0 ) ) | ( ( rule__XAnnotation__ValueAssignment_3_1_1 ) ) )
-            int alt5=2;
-            alt5 = dfa5.predict(input);
-            switch (alt5) {
+            // InternalSignalDSL.g:2456:1: ( ( ( rule__XAnnotation__Group_3_1_0__0 ) ) | ( ( rule__XAnnotation__ValueAssignment_3_1_1 ) ) )
+            int alt6=2;
+            alt6 = dfa6.predict(input);
+            switch (alt6) {
                 case 1 :
-                    // InternalSignalDSL.g:2395:2: ( ( rule__XAnnotation__Group_3_1_0__0 ) )
+                    // InternalSignalDSL.g:2457:2: ( ( rule__XAnnotation__Group_3_1_0__0 ) )
                     {
-                    // InternalSignalDSL.g:2395:2: ( ( rule__XAnnotation__Group_3_1_0__0 ) )
-                    // InternalSignalDSL.g:2396:3: ( rule__XAnnotation__Group_3_1_0__0 )
+                    // InternalSignalDSL.g:2457:2: ( ( rule__XAnnotation__Group_3_1_0__0 ) )
+                    // InternalSignalDSL.g:2458:3: ( rule__XAnnotation__Group_3_1_0__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXAnnotationAccess().getGroup_3_1_0()); 
                     }
-                    // InternalSignalDSL.g:2397:3: ( rule__XAnnotation__Group_3_1_0__0 )
-                    // InternalSignalDSL.g:2397:4: rule__XAnnotation__Group_3_1_0__0
+                    // InternalSignalDSL.g:2459:3: ( rule__XAnnotation__Group_3_1_0__0 )
+                    // InternalSignalDSL.g:2459:4: rule__XAnnotation__Group_3_1_0__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XAnnotation__Group_3_1_0__0();
@@ -8162,16 +8384,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:2401:2: ( ( rule__XAnnotation__ValueAssignment_3_1_1 ) )
+                    // InternalSignalDSL.g:2463:2: ( ( rule__XAnnotation__ValueAssignment_3_1_1 ) )
                     {
-                    // InternalSignalDSL.g:2401:2: ( ( rule__XAnnotation__ValueAssignment_3_1_1 ) )
-                    // InternalSignalDSL.g:2402:3: ( rule__XAnnotation__ValueAssignment_3_1_1 )
+                    // InternalSignalDSL.g:2463:2: ( ( rule__XAnnotation__ValueAssignment_3_1_1 ) )
+                    // InternalSignalDSL.g:2464:3: ( rule__XAnnotation__ValueAssignment_3_1_1 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXAnnotationAccess().getValueAssignment_3_1_1()); 
                     }
-                    // InternalSignalDSL.g:2403:3: ( rule__XAnnotation__ValueAssignment_3_1_1 )
-                    // InternalSignalDSL.g:2403:4: rule__XAnnotation__ValueAssignment_3_1_1
+                    // InternalSignalDSL.g:2465:3: ( rule__XAnnotation__ValueAssignment_3_1_1 )
+                    // InternalSignalDSL.g:2465:4: rule__XAnnotation__ValueAssignment_3_1_1
                     {
                     pushFollow(FOLLOW_2);
                     rule__XAnnotation__ValueAssignment_3_1_1();
@@ -8208,27 +8430,27 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Alternatives"
-    // InternalSignalDSL.g:2411:1: rule__XAnnotationElementValueOrCommaList__Alternatives : ( ( ( rule__XAnnotationElementValueOrCommaList__Group_0__0 ) ) | ( ( rule__XAnnotationElementValueOrCommaList__Group_1__0 ) ) );
+    // InternalSignalDSL.g:2473: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:2415:1: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_0__0 ) ) | ( ( rule__XAnnotationElementValueOrCommaList__Group_1__0 ) ) )
-            int alt6=2;
-            alt6 = dfa6.predict(input);
-            switch (alt6) {
+            // InternalSignalDSL.g:2477:1: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_0__0 ) ) | ( ( rule__XAnnotationElementValueOrCommaList__Group_1__0 ) ) )
+            int alt7=2;
+            alt7 = dfa7.predict(input);
+            switch (alt7) {
                 case 1 :
-                    // InternalSignalDSL.g:2416:2: ( ( rule__XAnnotationElementValueOrCommaList__Group_0__0 ) )
+                    // InternalSignalDSL.g:2478:2: ( ( rule__XAnnotationElementValueOrCommaList__Group_0__0 ) )
                     {
-                    // InternalSignalDSL.g:2416:2: ( ( rule__XAnnotationElementValueOrCommaList__Group_0__0 ) )
-                    // InternalSignalDSL.g:2417:3: ( rule__XAnnotationElementValueOrCommaList__Group_0__0 )
+                    // InternalSignalDSL.g:2478:2: ( ( rule__XAnnotationElementValueOrCommaList__Group_0__0 ) )
+                    // InternalSignalDSL.g:2479:3: ( rule__XAnnotationElementValueOrCommaList__Group_0__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_0()); 
                     }
-                    // InternalSignalDSL.g:2418:3: ( rule__XAnnotationElementValueOrCommaList__Group_0__0 )
-                    // InternalSignalDSL.g:2418:4: rule__XAnnotationElementValueOrCommaList__Group_0__0
+                    // InternalSignalDSL.g:2480:3: ( rule__XAnnotationElementValueOrCommaList__Group_0__0 )
+                    // InternalSignalDSL.g:2480:4: rule__XAnnotationElementValueOrCommaList__Group_0__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XAnnotationElementValueOrCommaList__Group_0__0();
@@ -8248,16 +8470,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:2422:2: ( ( rule__XAnnotationElementValueOrCommaList__Group_1__0 ) )
+                    // InternalSignalDSL.g:2484:2: ( ( rule__XAnnotationElementValueOrCommaList__Group_1__0 ) )
                     {
-                    // InternalSignalDSL.g:2422:2: ( ( rule__XAnnotationElementValueOrCommaList__Group_1__0 ) )
-                    // InternalSignalDSL.g:2423:3: ( rule__XAnnotationElementValueOrCommaList__Group_1__0 )
+                    // InternalSignalDSL.g:2484:2: ( ( rule__XAnnotationElementValueOrCommaList__Group_1__0 ) )
+                    // InternalSignalDSL.g:2485:3: ( rule__XAnnotationElementValueOrCommaList__Group_1__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_1()); 
                     }
-                    // InternalSignalDSL.g:2424:3: ( rule__XAnnotationElementValueOrCommaList__Group_1__0 )
-                    // InternalSignalDSL.g:2424:4: rule__XAnnotationElementValueOrCommaList__Group_1__0
+                    // InternalSignalDSL.g:2486:3: ( rule__XAnnotationElementValueOrCommaList__Group_1__0 )
+                    // InternalSignalDSL.g:2486:4: rule__XAnnotationElementValueOrCommaList__Group_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XAnnotationElementValueOrCommaList__Group_1__0();
@@ -8294,27 +8516,27 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Alternatives"
-    // InternalSignalDSL.g:2432:1: rule__XAnnotationElementValue__Alternatives : ( ( ( rule__XAnnotationElementValue__Group_0__0 ) ) | ( ruleXAnnotationOrExpression ) );
+    // InternalSignalDSL.g:2494:1: rule__XAnnotationElementValue__Alternatives : ( ( ( rule__XAnnotationElementValue__Group_0__0 ) ) | ( ruleXAnnotationOrExpression ) );
     public final void rule__XAnnotationElementValue__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:2436:1: ( ( ( rule__XAnnotationElementValue__Group_0__0 ) ) | ( ruleXAnnotationOrExpression ) )
-            int alt7=2;
-            alt7 = dfa7.predict(input);
-            switch (alt7) {
+            // InternalSignalDSL.g:2498:1: ( ( ( rule__XAnnotationElementValue__Group_0__0 ) ) | ( ruleXAnnotationOrExpression ) )
+            int alt8=2;
+            alt8 = dfa8.predict(input);
+            switch (alt8) {
                 case 1 :
-                    // InternalSignalDSL.g:2437:2: ( ( rule__XAnnotationElementValue__Group_0__0 ) )
+                    // InternalSignalDSL.g:2499:2: ( ( rule__XAnnotationElementValue__Group_0__0 ) )
                     {
-                    // InternalSignalDSL.g:2437:2: ( ( rule__XAnnotationElementValue__Group_0__0 ) )
-                    // InternalSignalDSL.g:2438:3: ( rule__XAnnotationElementValue__Group_0__0 )
+                    // InternalSignalDSL.g:2499:2: ( ( rule__XAnnotationElementValue__Group_0__0 ) )
+                    // InternalSignalDSL.g:2500:3: ( rule__XAnnotationElementValue__Group_0__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXAnnotationElementValueAccess().getGroup_0()); 
                     }
-                    // InternalSignalDSL.g:2439:3: ( rule__XAnnotationElementValue__Group_0__0 )
-                    // InternalSignalDSL.g:2439:4: rule__XAnnotationElementValue__Group_0__0
+                    // InternalSignalDSL.g:2501:3: ( rule__XAnnotationElementValue__Group_0__0 )
+                    // InternalSignalDSL.g:2501:4: rule__XAnnotationElementValue__Group_0__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XAnnotationElementValue__Group_0__0();
@@ -8334,10 +8556,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:2443:2: ( ruleXAnnotationOrExpression )
+                    // InternalSignalDSL.g:2505:2: ( ruleXAnnotationOrExpression )
                     {
-                    // InternalSignalDSL.g:2443:2: ( ruleXAnnotationOrExpression )
-                    // InternalSignalDSL.g:2444:3: ruleXAnnotationOrExpression
+                    // InternalSignalDSL.g:2505:2: ( ruleXAnnotationOrExpression )
+                    // InternalSignalDSL.g:2506:3: ruleXAnnotationOrExpression
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXAnnotationElementValueAccess().getXAnnotationOrExpressionParserRuleCall_1()); 
@@ -8374,35 +8596,35 @@
 
 
     // $ANTLR start "rule__XAnnotationOrExpression__Alternatives"
-    // InternalSignalDSL.g:2453:1: rule__XAnnotationOrExpression__Alternatives : ( ( ruleXAnnotation ) | ( ruleXExpression ) );
+    // InternalSignalDSL.g:2515:1: rule__XAnnotationOrExpression__Alternatives : ( ( ruleXAnnotation ) | ( ruleXExpression ) );
     public final void rule__XAnnotationOrExpression__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:2457:1: ( ( ruleXAnnotation ) | ( ruleXExpression ) )
-            int alt8=2;
-            int LA8_0 = input.LA(1);
+            // InternalSignalDSL.g:2519:1: ( ( ruleXAnnotation ) | ( ruleXExpression ) )
+            int alt9=2;
+            int LA9_0 = input.LA(1);
 
-            if ( (LA8_0==75) ) {
-                alt8=1;
+            if ( (LA9_0==73) ) {
+                alt9=1;
             }
-            else if ( ((LA8_0>=RULE_ID && LA8_0<=RULE_STRING)||LA8_0==27||(LA8_0>=34 && LA8_0<=35)||LA8_0==40||(LA8_0>=45 && LA8_0<=50)||LA8_0==68||LA8_0==72||LA8_0==76||(LA8_0>=80 && LA8_0<=81)||LA8_0==84||LA8_0==86||(LA8_0>=90 && LA8_0<=97)||LA8_0==99||LA8_0==108) ) {
-                alt8=2;
+            else if ( ((LA9_0>=RULE_ID && LA9_0<=RULE_STRING)||LA9_0==27||(LA9_0>=34 && LA9_0<=35)||LA9_0==40||(LA9_0>=45 && LA9_0<=50)||LA9_0==64||LA9_0==68||LA9_0==74||(LA9_0>=78 && LA9_0<=79)||LA9_0==82||LA9_0==84||(LA9_0>=88 && LA9_0<=95)||LA9_0==97||LA9_0==106) ) {
+                alt9=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 8, 0, input);
+                    new NoViableAltException("", 9, 0, input);
 
                 throw nvae;
             }
-            switch (alt8) {
+            switch (alt9) {
                 case 1 :
-                    // InternalSignalDSL.g:2458:2: ( ruleXAnnotation )
+                    // InternalSignalDSL.g:2520:2: ( ruleXAnnotation )
                     {
-                    // InternalSignalDSL.g:2458:2: ( ruleXAnnotation )
-                    // InternalSignalDSL.g:2459:3: ruleXAnnotation
+                    // InternalSignalDSL.g:2520:2: ( ruleXAnnotation )
+                    // InternalSignalDSL.g:2521:3: ruleXAnnotation
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXAnnotationOrExpressionAccess().getXAnnotationParserRuleCall_0()); 
@@ -8422,10 +8644,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:2464:2: ( ruleXExpression )
+                    // InternalSignalDSL.g:2526:2: ( ruleXExpression )
                     {
-                    // InternalSignalDSL.g:2464:2: ( ruleXExpression )
-                    // InternalSignalDSL.g:2465:3: ruleXExpression
+                    // InternalSignalDSL.g:2526:2: ( ruleXExpression )
+                    // InternalSignalDSL.g:2527:3: ruleXExpression
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXAnnotationOrExpressionAccess().getXExpressionParserRuleCall_1()); 
@@ -8462,29 +8684,29 @@
 
 
     // $ANTLR start "rule__XAssignment__Alternatives"
-    // InternalSignalDSL.g:2474:1: rule__XAssignment__Alternatives : ( ( ( rule__XAssignment__Group_0__0 ) ) | ( ( rule__XAssignment__Group_1__0 ) ) );
+    // InternalSignalDSL.g:2536: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:2478:1: ( ( ( rule__XAssignment__Group_0__0 ) ) | ( ( rule__XAssignment__Group_1__0 ) ) )
-            int alt9=2;
+            // InternalSignalDSL.g:2540:1: ( ( ( rule__XAssignment__Group_0__0 ) ) | ( ( rule__XAssignment__Group_1__0 ) ) )
+            int alt10=2;
             switch ( input.LA(1) ) {
             case RULE_ID:
                 {
-                int LA9_1 = input.LA(2);
+                int LA10_1 = input.LA(2);
 
-                if ( (LA9_1==13) ) {
-                    alt9=1;
+                if ( (LA10_1==13) ) {
+                    alt10=1;
                 }
-                else if ( (LA9_1==EOF||(LA9_1>=RULE_ID && LA9_1<=RULE_STRING)||(LA9_1>=14 && LA9_1<=50)||(LA9_1>=68 && LA9_1<=69)||LA9_1==72||LA9_1==74||(LA9_1>=76 && LA9_1<=100)||(LA9_1>=104 && LA9_1<=105)||(LA9_1>=107 && LA9_1<=108)) ) {
-                    alt9=2;
+                else if ( (LA10_1==EOF||(LA10_1>=RULE_ID && LA10_1<=RULE_STRING)||(LA10_1>=14 && LA10_1<=50)||(LA10_1>=64 && LA10_1<=65)||LA10_1==68||LA10_1==72||(LA10_1>=74 && LA10_1<=98)||(LA10_1>=102 && LA10_1<=103)||(LA10_1>=105 && LA10_1<=106)) ) {
+                    alt10=2;
                 }
                 else {
                     if (state.backtracking>0) {state.failed=true; return ;}
                     NoViableAltException nvae =
-                        new NoViableAltException("", 9, 1, input);
+                        new NoViableAltException("", 10, 1, input);
 
                     throw nvae;
                 }
@@ -8492,18 +8714,18 @@
                 break;
             case 45:
                 {
-                int LA9_2 = input.LA(2);
+                int LA10_2 = input.LA(2);
 
-                if ( (LA9_2==13) ) {
-                    alt9=1;
+                if ( (LA10_2==13) ) {
+                    alt10=1;
                 }
-                else if ( (LA9_2==EOF||(LA9_2>=RULE_ID && LA9_2<=RULE_STRING)||(LA9_2>=14 && LA9_2<=50)||(LA9_2>=68 && LA9_2<=69)||LA9_2==72||LA9_2==74||(LA9_2>=76 && LA9_2<=100)||(LA9_2>=104 && LA9_2<=105)||(LA9_2>=107 && LA9_2<=108)) ) {
-                    alt9=2;
+                else if ( (LA10_2==EOF||(LA10_2>=RULE_ID && LA10_2<=RULE_STRING)||(LA10_2>=14 && LA10_2<=50)||(LA10_2>=64 && LA10_2<=65)||LA10_2==68||LA10_2==72||(LA10_2>=74 && LA10_2<=98)||(LA10_2>=102 && LA10_2<=103)||(LA10_2>=105 && LA10_2<=106)) ) {
+                    alt10=2;
                 }
                 else {
                     if (state.backtracking>0) {state.failed=true; return ;}
                     NoViableAltException nvae =
-                        new NoViableAltException("", 9, 2, input);
+                        new NoViableAltException("", 10, 2, input);
 
                     throw nvae;
                 }
@@ -8511,18 +8733,18 @@
                 break;
             case 46:
                 {
-                int LA9_3 = input.LA(2);
+                int LA10_3 = input.LA(2);
 
-                if ( (LA9_3==13) ) {
-                    alt9=1;
+                if ( (LA10_3==13) ) {
+                    alt10=1;
                 }
-                else if ( (LA9_3==EOF||(LA9_3>=RULE_ID && LA9_3<=RULE_STRING)||(LA9_3>=14 && LA9_3<=50)||(LA9_3>=68 && LA9_3<=69)||LA9_3==72||LA9_3==74||(LA9_3>=76 && LA9_3<=100)||(LA9_3>=104 && LA9_3<=105)||(LA9_3>=107 && LA9_3<=108)) ) {
-                    alt9=2;
+                else if ( (LA10_3==EOF||(LA10_3>=RULE_ID && LA10_3<=RULE_STRING)||(LA10_3>=14 && LA10_3<=50)||(LA10_3>=64 && LA10_3<=65)||LA10_3==68||LA10_3==72||(LA10_3>=74 && LA10_3<=98)||(LA10_3>=102 && LA10_3<=103)||(LA10_3>=105 && LA10_3<=106)) ) {
+                    alt10=2;
                 }
                 else {
                     if (state.backtracking>0) {state.failed=true; return ;}
                     NoViableAltException nvae =
-                        new NoViableAltException("", 9, 3, input);
+                        new NoViableAltException("", 10, 3, input);
 
                     throw nvae;
                 }
@@ -8530,18 +8752,18 @@
                 break;
             case 47:
                 {
-                int LA9_4 = input.LA(2);
+                int LA10_4 = input.LA(2);
 
-                if ( (LA9_4==EOF||(LA9_4>=RULE_ID && LA9_4<=RULE_STRING)||(LA9_4>=14 && LA9_4<=50)||(LA9_4>=68 && LA9_4<=69)||LA9_4==72||LA9_4==74||(LA9_4>=76 && LA9_4<=100)||(LA9_4>=104 && LA9_4<=105)||(LA9_4>=107 && LA9_4<=108)) ) {
-                    alt9=2;
+                if ( (LA10_4==EOF||(LA10_4>=RULE_ID && LA10_4<=RULE_STRING)||(LA10_4>=14 && LA10_4<=50)||(LA10_4>=64 && LA10_4<=65)||LA10_4==68||LA10_4==72||(LA10_4>=74 && LA10_4<=98)||(LA10_4>=102 && LA10_4<=103)||(LA10_4>=105 && LA10_4<=106)) ) {
+                    alt10=2;
                 }
-                else if ( (LA9_4==13) ) {
-                    alt9=1;
+                else if ( (LA10_4==13) ) {
+                    alt10=1;
                 }
                 else {
                     if (state.backtracking>0) {state.failed=true; return ;}
                     NoViableAltException nvae =
-                        new NoViableAltException("", 9, 4, input);
+                        new NoViableAltException("", 10, 4, input);
 
                     throw nvae;
                 }
@@ -8549,18 +8771,18 @@
                 break;
             case 48:
                 {
-                int LA9_5 = input.LA(2);
+                int LA10_5 = input.LA(2);
 
-                if ( (LA9_5==13) ) {
-                    alt9=1;
+                if ( (LA10_5==13) ) {
+                    alt10=1;
                 }
-                else if ( (LA9_5==EOF||(LA9_5>=RULE_ID && LA9_5<=RULE_STRING)||(LA9_5>=14 && LA9_5<=50)||(LA9_5>=68 && LA9_5<=69)||LA9_5==72||LA9_5==74||(LA9_5>=76 && LA9_5<=100)||(LA9_5>=104 && LA9_5<=105)||(LA9_5>=107 && LA9_5<=108)) ) {
-                    alt9=2;
+                else if ( (LA10_5==EOF||(LA10_5>=RULE_ID && LA10_5<=RULE_STRING)||(LA10_5>=14 && LA10_5<=50)||(LA10_5>=64 && LA10_5<=65)||LA10_5==68||LA10_5==72||(LA10_5>=74 && LA10_5<=98)||(LA10_5>=102 && LA10_5<=103)||(LA10_5>=105 && LA10_5<=106)) ) {
+                    alt10=2;
                 }
                 else {
                     if (state.backtracking>0) {state.failed=true; return ;}
                     NoViableAltException nvae =
-                        new NoViableAltException("", 9, 5, input);
+                        new NoViableAltException("", 10, 5, input);
 
                     throw nvae;
                 }
@@ -8576,47 +8798,47 @@
             case 40:
             case 49:
             case 50:
+            case 64:
             case 68:
-            case 72:
-            case 76:
-            case 80:
-            case 81:
+            case 74:
+            case 78:
+            case 79:
+            case 82:
             case 84:
-            case 86:
+            case 88:
+            case 89:
             case 90:
             case 91:
             case 92:
             case 93:
             case 94:
             case 95:
-            case 96:
             case 97:
-            case 99:
-            case 108:
+            case 106:
                 {
-                alt9=2;
+                alt10=2;
                 }
                 break;
             default:
                 if (state.backtracking>0) {state.failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 9, 0, input);
+                    new NoViableAltException("", 10, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt9) {
+            switch (alt10) {
                 case 1 :
-                    // InternalSignalDSL.g:2479:2: ( ( rule__XAssignment__Group_0__0 ) )
+                    // InternalSignalDSL.g:2541:2: ( ( rule__XAssignment__Group_0__0 ) )
                     {
-                    // InternalSignalDSL.g:2479:2: ( ( rule__XAssignment__Group_0__0 ) )
-                    // InternalSignalDSL.g:2480:3: ( rule__XAssignment__Group_0__0 )
+                    // InternalSignalDSL.g:2541:2: ( ( rule__XAssignment__Group_0__0 ) )
+                    // InternalSignalDSL.g:2542:3: ( rule__XAssignment__Group_0__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXAssignmentAccess().getGroup_0()); 
                     }
-                    // InternalSignalDSL.g:2481:3: ( rule__XAssignment__Group_0__0 )
-                    // InternalSignalDSL.g:2481:4: rule__XAssignment__Group_0__0
+                    // InternalSignalDSL.g:2543:3: ( rule__XAssignment__Group_0__0 )
+                    // InternalSignalDSL.g:2543:4: rule__XAssignment__Group_0__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XAssignment__Group_0__0();
@@ -8636,16 +8858,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:2485:2: ( ( rule__XAssignment__Group_1__0 ) )
+                    // InternalSignalDSL.g:2547:2: ( ( rule__XAssignment__Group_1__0 ) )
                     {
-                    // InternalSignalDSL.g:2485:2: ( ( rule__XAssignment__Group_1__0 ) )
-                    // InternalSignalDSL.g:2486:3: ( rule__XAssignment__Group_1__0 )
+                    // InternalSignalDSL.g:2547:2: ( ( rule__XAssignment__Group_1__0 ) )
+                    // InternalSignalDSL.g:2548:3: ( rule__XAssignment__Group_1__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXAssignmentAccess().getGroup_1()); 
                     }
-                    // InternalSignalDSL.g:2487:3: ( rule__XAssignment__Group_1__0 )
-                    // InternalSignalDSL.g:2487:4: rule__XAssignment__Group_1__0
+                    // InternalSignalDSL.g:2549:3: ( rule__XAssignment__Group_1__0 )
+                    // InternalSignalDSL.g:2549:4: rule__XAssignment__Group_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XAssignment__Group_1__0();
@@ -8682,64 +8904,64 @@
 
 
     // $ANTLR start "rule__OpMultiAssign__Alternatives"
-    // InternalSignalDSL.g:2495:1: rule__OpMultiAssign__Alternatives : ( ( '+=' ) | ( '-=' ) | ( '*=' ) | ( '/=' ) | ( '%=' ) | ( ( rule__OpMultiAssign__Group_5__0 ) ) | ( ( rule__OpMultiAssign__Group_6__0 ) ) );
+    // InternalSignalDSL.g:2557: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:2499:1: ( ( '+=' ) | ( '-=' ) | ( '*=' ) | ( '/=' ) | ( '%=' ) | ( ( rule__OpMultiAssign__Group_5__0 ) ) | ( ( rule__OpMultiAssign__Group_6__0 ) ) )
-            int alt10=7;
+            // InternalSignalDSL.g:2561:1: ( ( '+=' ) | ( '-=' ) | ( '*=' ) | ( '/=' ) | ( '%=' ) | ( ( rule__OpMultiAssign__Group_5__0 ) ) | ( ( rule__OpMultiAssign__Group_6__0 ) ) )
+            int alt11=7;
             switch ( input.LA(1) ) {
             case 16:
                 {
-                alt10=1;
+                alt11=1;
                 }
                 break;
             case 17:
                 {
-                alt10=2;
+                alt11=2;
                 }
                 break;
             case 18:
                 {
-                alt10=3;
+                alt11=3;
                 }
                 break;
             case 19:
                 {
-                alt10=4;
+                alt11=4;
                 }
                 break;
             case 20:
                 {
-                alt10=5;
+                alt11=5;
                 }
                 break;
             case 27:
                 {
-                alt10=6;
+                alt11=6;
                 }
                 break;
             case 26:
                 {
-                alt10=7;
+                alt11=7;
                 }
                 break;
             default:
                 if (state.backtracking>0) {state.failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 10, 0, input);
+                    new NoViableAltException("", 11, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt10) {
+            switch (alt11) {
                 case 1 :
-                    // InternalSignalDSL.g:2500:2: ( '+=' )
+                    // InternalSignalDSL.g:2562:2: ( '+=' )
                     {
-                    // InternalSignalDSL.g:2500:2: ( '+=' )
-                    // InternalSignalDSL.g:2501:3: '+='
+                    // InternalSignalDSL.g:2562:2: ( '+=' )
+                    // InternalSignalDSL.g:2563:3: '+='
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpMultiAssignAccess().getPlusSignEqualsSignKeyword_0()); 
@@ -8755,10 +8977,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:2506:2: ( '-=' )
+                    // InternalSignalDSL.g:2568:2: ( '-=' )
                     {
-                    // InternalSignalDSL.g:2506:2: ( '-=' )
-                    // InternalSignalDSL.g:2507:3: '-='
+                    // InternalSignalDSL.g:2568:2: ( '-=' )
+                    // InternalSignalDSL.g:2569:3: '-='
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpMultiAssignAccess().getHyphenMinusEqualsSignKeyword_1()); 
@@ -8774,10 +8996,10 @@
                     }
                     break;
                 case 3 :
-                    // InternalSignalDSL.g:2512:2: ( '*=' )
+                    // InternalSignalDSL.g:2574:2: ( '*=' )
                     {
-                    // InternalSignalDSL.g:2512:2: ( '*=' )
-                    // InternalSignalDSL.g:2513:3: '*='
+                    // InternalSignalDSL.g:2574:2: ( '*=' )
+                    // InternalSignalDSL.g:2575:3: '*='
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpMultiAssignAccess().getAsteriskEqualsSignKeyword_2()); 
@@ -8793,10 +9015,10 @@
                     }
                     break;
                 case 4 :
-                    // InternalSignalDSL.g:2518:2: ( '/=' )
+                    // InternalSignalDSL.g:2580:2: ( '/=' )
                     {
-                    // InternalSignalDSL.g:2518:2: ( '/=' )
-                    // InternalSignalDSL.g:2519:3: '/='
+                    // InternalSignalDSL.g:2580:2: ( '/=' )
+                    // InternalSignalDSL.g:2581:3: '/='
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpMultiAssignAccess().getSolidusEqualsSignKeyword_3()); 
@@ -8812,10 +9034,10 @@
                     }
                     break;
                 case 5 :
-                    // InternalSignalDSL.g:2524:2: ( '%=' )
+                    // InternalSignalDSL.g:2586:2: ( '%=' )
                     {
-                    // InternalSignalDSL.g:2524:2: ( '%=' )
-                    // InternalSignalDSL.g:2525:3: '%='
+                    // InternalSignalDSL.g:2586:2: ( '%=' )
+                    // InternalSignalDSL.g:2587:3: '%='
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpMultiAssignAccess().getPercentSignEqualsSignKeyword_4()); 
@@ -8831,16 +9053,16 @@
                     }
                     break;
                 case 6 :
-                    // InternalSignalDSL.g:2530:2: ( ( rule__OpMultiAssign__Group_5__0 ) )
+                    // InternalSignalDSL.g:2592:2: ( ( rule__OpMultiAssign__Group_5__0 ) )
                     {
-                    // InternalSignalDSL.g:2530:2: ( ( rule__OpMultiAssign__Group_5__0 ) )
-                    // InternalSignalDSL.g:2531:3: ( rule__OpMultiAssign__Group_5__0 )
+                    // InternalSignalDSL.g:2592:2: ( ( rule__OpMultiAssign__Group_5__0 ) )
+                    // InternalSignalDSL.g:2593:3: ( rule__OpMultiAssign__Group_5__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpMultiAssignAccess().getGroup_5()); 
                     }
-                    // InternalSignalDSL.g:2532:3: ( rule__OpMultiAssign__Group_5__0 )
-                    // InternalSignalDSL.g:2532:4: rule__OpMultiAssign__Group_5__0
+                    // InternalSignalDSL.g:2594:3: ( rule__OpMultiAssign__Group_5__0 )
+                    // InternalSignalDSL.g:2594:4: rule__OpMultiAssign__Group_5__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__OpMultiAssign__Group_5__0();
@@ -8860,16 +9082,16 @@
                     }
                     break;
                 case 7 :
-                    // InternalSignalDSL.g:2536:2: ( ( rule__OpMultiAssign__Group_6__0 ) )
+                    // InternalSignalDSL.g:2598:2: ( ( rule__OpMultiAssign__Group_6__0 ) )
                     {
-                    // InternalSignalDSL.g:2536:2: ( ( rule__OpMultiAssign__Group_6__0 ) )
-                    // InternalSignalDSL.g:2537:3: ( rule__OpMultiAssign__Group_6__0 )
+                    // InternalSignalDSL.g:2598:2: ( ( rule__OpMultiAssign__Group_6__0 ) )
+                    // InternalSignalDSL.g:2599:3: ( rule__OpMultiAssign__Group_6__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpMultiAssignAccess().getGroup_6()); 
                     }
-                    // InternalSignalDSL.g:2538:3: ( rule__OpMultiAssign__Group_6__0 )
-                    // InternalSignalDSL.g:2538:4: rule__OpMultiAssign__Group_6__0
+                    // InternalSignalDSL.g:2600:3: ( rule__OpMultiAssign__Group_6__0 )
+                    // InternalSignalDSL.g:2600:4: rule__OpMultiAssign__Group_6__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__OpMultiAssign__Group_6__0();
@@ -8906,49 +9128,49 @@
 
 
     // $ANTLR start "rule__OpEquality__Alternatives"
-    // InternalSignalDSL.g:2546:1: rule__OpEquality__Alternatives : ( ( '==' ) | ( '!=' ) | ( '===' ) | ( '!==' ) );
+    // InternalSignalDSL.g:2608:1: rule__OpEquality__Alternatives : ( ( '==' ) | ( '!=' ) | ( '===' ) | ( '!==' ) );
     public final void rule__OpEquality__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:2550:1: ( ( '==' ) | ( '!=' ) | ( '===' ) | ( '!==' ) )
-            int alt11=4;
+            // InternalSignalDSL.g:2612:1: ( ( '==' ) | ( '!=' ) | ( '===' ) | ( '!==' ) )
+            int alt12=4;
             switch ( input.LA(1) ) {
             case 21:
                 {
-                alt11=1;
+                alt12=1;
                 }
                 break;
             case 22:
                 {
-                alt11=2;
+                alt12=2;
                 }
                 break;
             case 23:
                 {
-                alt11=3;
+                alt12=3;
                 }
                 break;
             case 24:
                 {
-                alt11=4;
+                alt12=4;
                 }
                 break;
             default:
                 if (state.backtracking>0) {state.failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 11, 0, input);
+                    new NoViableAltException("", 12, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt11) {
+            switch (alt12) {
                 case 1 :
-                    // InternalSignalDSL.g:2551:2: ( '==' )
+                    // InternalSignalDSL.g:2613:2: ( '==' )
                     {
-                    // InternalSignalDSL.g:2551:2: ( '==' )
-                    // InternalSignalDSL.g:2552:3: '=='
+                    // InternalSignalDSL.g:2613:2: ( '==' )
+                    // InternalSignalDSL.g:2614:3: '=='
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpEqualityAccess().getEqualsSignEqualsSignKeyword_0()); 
@@ -8964,10 +9186,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:2557:2: ( '!=' )
+                    // InternalSignalDSL.g:2619:2: ( '!=' )
                     {
-                    // InternalSignalDSL.g:2557:2: ( '!=' )
-                    // InternalSignalDSL.g:2558:3: '!='
+                    // InternalSignalDSL.g:2619:2: ( '!=' )
+                    // InternalSignalDSL.g:2620:3: '!='
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpEqualityAccess().getExclamationMarkEqualsSignKeyword_1()); 
@@ -8983,10 +9205,10 @@
                     }
                     break;
                 case 3 :
-                    // InternalSignalDSL.g:2563:2: ( '===' )
+                    // InternalSignalDSL.g:2625:2: ( '===' )
                     {
-                    // InternalSignalDSL.g:2563:2: ( '===' )
-                    // InternalSignalDSL.g:2564:3: '==='
+                    // InternalSignalDSL.g:2625:2: ( '===' )
+                    // InternalSignalDSL.g:2626:3: '==='
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpEqualityAccess().getEqualsSignEqualsSignEqualsSignKeyword_2()); 
@@ -9002,10 +9224,10 @@
                     }
                     break;
                 case 4 :
-                    // InternalSignalDSL.g:2569:2: ( '!==' )
+                    // InternalSignalDSL.g:2631:2: ( '!==' )
                     {
-                    // InternalSignalDSL.g:2569:2: ( '!==' )
-                    // InternalSignalDSL.g:2570:3: '!=='
+                    // InternalSignalDSL.g:2631:2: ( '!==' )
+                    // InternalSignalDSL.g:2632:3: '!=='
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpEqualityAccess().getExclamationMarkEqualsSignEqualsSignKeyword_3()); 
@@ -9038,41 +9260,41 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Alternatives_1"
-    // InternalSignalDSL.g:2579:1: rule__XRelationalExpression__Alternatives_1 : ( ( ( rule__XRelationalExpression__Group_1_0__0 ) ) | ( ( rule__XRelationalExpression__Group_1_1__0 ) ) );
+    // InternalSignalDSL.g:2641: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:2583:1: ( ( ( rule__XRelationalExpression__Group_1_0__0 ) ) | ( ( rule__XRelationalExpression__Group_1_1__0 ) ) )
-            int alt12=2;
-            int LA12_0 = input.LA(1);
+            // InternalSignalDSL.g:2645:1: ( ( ( rule__XRelationalExpression__Group_1_0__0 ) ) | ( ( rule__XRelationalExpression__Group_1_1__0 ) ) )
+            int alt13=2;
+            int LA13_0 = input.LA(1);
 
-            if ( (LA12_0==82) ) {
-                alt12=1;
+            if ( (LA13_0==80) ) {
+                alt13=1;
             }
-            else if ( ((LA12_0>=25 && LA12_0<=27)) ) {
-                alt12=2;
+            else if ( ((LA13_0>=25 && LA13_0<=27)) ) {
+                alt13=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 12, 0, input);
+                    new NoViableAltException("", 13, 0, input);
 
                 throw nvae;
             }
-            switch (alt12) {
+            switch (alt13) {
                 case 1 :
-                    // InternalSignalDSL.g:2584:2: ( ( rule__XRelationalExpression__Group_1_0__0 ) )
+                    // InternalSignalDSL.g:2646:2: ( ( rule__XRelationalExpression__Group_1_0__0 ) )
                     {
-                    // InternalSignalDSL.g:2584:2: ( ( rule__XRelationalExpression__Group_1_0__0 ) )
-                    // InternalSignalDSL.g:2585:3: ( rule__XRelationalExpression__Group_1_0__0 )
+                    // InternalSignalDSL.g:2646:2: ( ( rule__XRelationalExpression__Group_1_0__0 ) )
+                    // InternalSignalDSL.g:2647:3: ( rule__XRelationalExpression__Group_1_0__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXRelationalExpressionAccess().getGroup_1_0()); 
                     }
-                    // InternalSignalDSL.g:2586:3: ( rule__XRelationalExpression__Group_1_0__0 )
-                    // InternalSignalDSL.g:2586:4: rule__XRelationalExpression__Group_1_0__0
+                    // InternalSignalDSL.g:2648:3: ( rule__XRelationalExpression__Group_1_0__0 )
+                    // InternalSignalDSL.g:2648:4: rule__XRelationalExpression__Group_1_0__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XRelationalExpression__Group_1_0__0();
@@ -9092,16 +9314,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:2590:2: ( ( rule__XRelationalExpression__Group_1_1__0 ) )
+                    // InternalSignalDSL.g:2652:2: ( ( rule__XRelationalExpression__Group_1_1__0 ) )
                     {
-                    // InternalSignalDSL.g:2590:2: ( ( rule__XRelationalExpression__Group_1_1__0 ) )
-                    // InternalSignalDSL.g:2591:3: ( rule__XRelationalExpression__Group_1_1__0 )
+                    // InternalSignalDSL.g:2652:2: ( ( rule__XRelationalExpression__Group_1_1__0 ) )
+                    // InternalSignalDSL.g:2653:3: ( rule__XRelationalExpression__Group_1_1__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXRelationalExpressionAccess().getGroup_1_1()); 
                     }
-                    // InternalSignalDSL.g:2592:3: ( rule__XRelationalExpression__Group_1_1__0 )
-                    // InternalSignalDSL.g:2592:4: rule__XRelationalExpression__Group_1_1__0
+                    // InternalSignalDSL.g:2654:3: ( rule__XRelationalExpression__Group_1_1__0 )
+                    // InternalSignalDSL.g:2654:4: rule__XRelationalExpression__Group_1_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XRelationalExpression__Group_1_1__0();
@@ -9138,34 +9360,34 @@
 
 
     // $ANTLR start "rule__OpCompare__Alternatives"
-    // InternalSignalDSL.g:2600:1: rule__OpCompare__Alternatives : ( ( '>=' ) | ( ( rule__OpCompare__Group_1__0 ) ) | ( '>' ) | ( '<' ) );
+    // InternalSignalDSL.g:2662:1: rule__OpCompare__Alternatives : ( ( '>=' ) | ( ( rule__OpCompare__Group_1__0 ) ) | ( '>' ) | ( '<' ) );
     public final void rule__OpCompare__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:2604:1: ( ( '>=' ) | ( ( rule__OpCompare__Group_1__0 ) ) | ( '>' ) | ( '<' ) )
-            int alt13=4;
+            // InternalSignalDSL.g:2666:1: ( ( '>=' ) | ( ( rule__OpCompare__Group_1__0 ) ) | ( '>' ) | ( '<' ) )
+            int alt14=4;
             switch ( input.LA(1) ) {
             case 25:
                 {
-                alt13=1;
+                alt14=1;
                 }
                 break;
             case 27:
                 {
-                int LA13_2 = input.LA(2);
+                int LA14_2 = input.LA(2);
 
-                if ( (LA13_2==13) ) {
-                    alt13=2;
+                if ( (LA14_2==EOF||(LA14_2>=RULE_ID && LA14_2<=RULE_STRING)||LA14_2==27||(LA14_2>=34 && LA14_2<=35)||LA14_2==40||(LA14_2>=45 && LA14_2<=50)||LA14_2==64||LA14_2==68||LA14_2==74||(LA14_2>=78 && LA14_2<=79)||LA14_2==82||LA14_2==84||(LA14_2>=88 && LA14_2<=95)||LA14_2==97||LA14_2==106) ) {
+                    alt14=4;
                 }
-                else if ( (LA13_2==EOF||(LA13_2>=RULE_ID && LA13_2<=RULE_STRING)||LA13_2==27||(LA13_2>=34 && LA13_2<=35)||LA13_2==40||(LA13_2>=45 && LA13_2<=50)||LA13_2==68||LA13_2==72||LA13_2==76||(LA13_2>=80 && LA13_2<=81)||LA13_2==84||LA13_2==86||(LA13_2>=90 && LA13_2<=97)||LA13_2==99||LA13_2==108) ) {
-                    alt13=4;
+                else if ( (LA14_2==13) ) {
+                    alt14=2;
                 }
                 else {
                     if (state.backtracking>0) {state.failed=true; return ;}
                     NoViableAltException nvae =
-                        new NoViableAltException("", 13, 2, input);
+                        new NoViableAltException("", 14, 2, input);
 
                     throw nvae;
                 }
@@ -9173,23 +9395,23 @@
                 break;
             case 26:
                 {
-                alt13=3;
+                alt14=3;
                 }
                 break;
             default:
                 if (state.backtracking>0) {state.failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 13, 0, input);
+                    new NoViableAltException("", 14, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt13) {
+            switch (alt14) {
                 case 1 :
-                    // InternalSignalDSL.g:2605:2: ( '>=' )
+                    // InternalSignalDSL.g:2667:2: ( '>=' )
                     {
-                    // InternalSignalDSL.g:2605:2: ( '>=' )
-                    // InternalSignalDSL.g:2606:3: '>='
+                    // InternalSignalDSL.g:2667:2: ( '>=' )
+                    // InternalSignalDSL.g:2668:3: '>='
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpCompareAccess().getGreaterThanSignEqualsSignKeyword_0()); 
@@ -9205,16 +9427,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:2611:2: ( ( rule__OpCompare__Group_1__0 ) )
+                    // InternalSignalDSL.g:2673:2: ( ( rule__OpCompare__Group_1__0 ) )
                     {
-                    // InternalSignalDSL.g:2611:2: ( ( rule__OpCompare__Group_1__0 ) )
-                    // InternalSignalDSL.g:2612:3: ( rule__OpCompare__Group_1__0 )
+                    // InternalSignalDSL.g:2673:2: ( ( rule__OpCompare__Group_1__0 ) )
+                    // InternalSignalDSL.g:2674:3: ( rule__OpCompare__Group_1__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpCompareAccess().getGroup_1()); 
                     }
-                    // InternalSignalDSL.g:2613:3: ( rule__OpCompare__Group_1__0 )
-                    // InternalSignalDSL.g:2613:4: rule__OpCompare__Group_1__0
+                    // InternalSignalDSL.g:2675:3: ( rule__OpCompare__Group_1__0 )
+                    // InternalSignalDSL.g:2675:4: rule__OpCompare__Group_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__OpCompare__Group_1__0();
@@ -9234,10 +9456,10 @@
                     }
                     break;
                 case 3 :
-                    // InternalSignalDSL.g:2617:2: ( '>' )
+                    // InternalSignalDSL.g:2679:2: ( '>' )
                     {
-                    // InternalSignalDSL.g:2617:2: ( '>' )
-                    // InternalSignalDSL.g:2618:3: '>'
+                    // InternalSignalDSL.g:2679:2: ( '>' )
+                    // InternalSignalDSL.g:2680:3: '>'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpCompareAccess().getGreaterThanSignKeyword_2()); 
@@ -9253,10 +9475,10 @@
                     }
                     break;
                 case 4 :
-                    // InternalSignalDSL.g:2623:2: ( '<' )
+                    // InternalSignalDSL.g:2685:2: ( '<' )
                     {
-                    // InternalSignalDSL.g:2623:2: ( '<' )
-                    // InternalSignalDSL.g:2624:3: '<'
+                    // InternalSignalDSL.g:2685:2: ( '<' )
+                    // InternalSignalDSL.g:2686:3: '<'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpCompareAccess().getLessThanSignKeyword_3()); 
@@ -9289,21 +9511,21 @@
 
 
     // $ANTLR start "rule__OpOther__Alternatives"
-    // InternalSignalDSL.g:2633:1: rule__OpOther__Alternatives : ( ( '->' ) | ( '..<' ) | ( ( rule__OpOther__Group_2__0 ) ) | ( '..' ) | ( '=>' ) | ( ( rule__OpOther__Group_5__0 ) ) | ( ( rule__OpOther__Group_6__0 ) ) | ( '<>' ) | ( '?:' ) );
+    // InternalSignalDSL.g:2695: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:2637:1: ( ( '->' ) | ( '..<' ) | ( ( rule__OpOther__Group_2__0 ) ) | ( '..' ) | ( '=>' ) | ( ( rule__OpOther__Group_5__0 ) ) | ( ( rule__OpOther__Group_6__0 ) ) | ( '<>' ) | ( '?:' ) )
-            int alt14=9;
-            alt14 = dfa14.predict(input);
-            switch (alt14) {
+            // InternalSignalDSL.g:2699:1: ( ( '->' ) | ( '..<' ) | ( ( rule__OpOther__Group_2__0 ) ) | ( '..' ) | ( '=>' ) | ( ( rule__OpOther__Group_5__0 ) ) | ( ( rule__OpOther__Group_6__0 ) ) | ( '<>' ) | ( '?:' ) )
+            int alt15=9;
+            alt15 = dfa15.predict(input);
+            switch (alt15) {
                 case 1 :
-                    // InternalSignalDSL.g:2638:2: ( '->' )
+                    // InternalSignalDSL.g:2700:2: ( '->' )
                     {
-                    // InternalSignalDSL.g:2638:2: ( '->' )
-                    // InternalSignalDSL.g:2639:3: '->'
+                    // InternalSignalDSL.g:2700:2: ( '->' )
+                    // InternalSignalDSL.g:2701:3: '->'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpOtherAccess().getHyphenMinusGreaterThanSignKeyword_0()); 
@@ -9319,10 +9541,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:2644:2: ( '..<' )
+                    // InternalSignalDSL.g:2706:2: ( '..<' )
                     {
-                    // InternalSignalDSL.g:2644:2: ( '..<' )
-                    // InternalSignalDSL.g:2645:3: '..<'
+                    // InternalSignalDSL.g:2706:2: ( '..<' )
+                    // InternalSignalDSL.g:2707:3: '..<'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpOtherAccess().getFullStopFullStopLessThanSignKeyword_1()); 
@@ -9338,16 +9560,16 @@
                     }
                     break;
                 case 3 :
-                    // InternalSignalDSL.g:2650:2: ( ( rule__OpOther__Group_2__0 ) )
+                    // InternalSignalDSL.g:2712:2: ( ( rule__OpOther__Group_2__0 ) )
                     {
-                    // InternalSignalDSL.g:2650:2: ( ( rule__OpOther__Group_2__0 ) )
-                    // InternalSignalDSL.g:2651:3: ( rule__OpOther__Group_2__0 )
+                    // InternalSignalDSL.g:2712:2: ( ( rule__OpOther__Group_2__0 ) )
+                    // InternalSignalDSL.g:2713:3: ( rule__OpOther__Group_2__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpOtherAccess().getGroup_2()); 
                     }
-                    // InternalSignalDSL.g:2652:3: ( rule__OpOther__Group_2__0 )
-                    // InternalSignalDSL.g:2652:4: rule__OpOther__Group_2__0
+                    // InternalSignalDSL.g:2714:3: ( rule__OpOther__Group_2__0 )
+                    // InternalSignalDSL.g:2714:4: rule__OpOther__Group_2__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__OpOther__Group_2__0();
@@ -9367,10 +9589,10 @@
                     }
                     break;
                 case 4 :
-                    // InternalSignalDSL.g:2656:2: ( '..' )
+                    // InternalSignalDSL.g:2718:2: ( '..' )
                     {
-                    // InternalSignalDSL.g:2656:2: ( '..' )
-                    // InternalSignalDSL.g:2657:3: '..'
+                    // InternalSignalDSL.g:2718:2: ( '..' )
+                    // InternalSignalDSL.g:2719:3: '..'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpOtherAccess().getFullStopFullStopKeyword_3()); 
@@ -9386,10 +9608,10 @@
                     }
                     break;
                 case 5 :
-                    // InternalSignalDSL.g:2662:2: ( '=>' )
+                    // InternalSignalDSL.g:2724:2: ( '=>' )
                     {
-                    // InternalSignalDSL.g:2662:2: ( '=>' )
-                    // InternalSignalDSL.g:2663:3: '=>'
+                    // InternalSignalDSL.g:2724:2: ( '=>' )
+                    // InternalSignalDSL.g:2725:3: '=>'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpOtherAccess().getEqualsSignGreaterThanSignKeyword_4()); 
@@ -9405,16 +9627,16 @@
                     }
                     break;
                 case 6 :
-                    // InternalSignalDSL.g:2668:2: ( ( rule__OpOther__Group_5__0 ) )
+                    // InternalSignalDSL.g:2730:2: ( ( rule__OpOther__Group_5__0 ) )
                     {
-                    // InternalSignalDSL.g:2668:2: ( ( rule__OpOther__Group_5__0 ) )
-                    // InternalSignalDSL.g:2669:3: ( rule__OpOther__Group_5__0 )
+                    // InternalSignalDSL.g:2730:2: ( ( rule__OpOther__Group_5__0 ) )
+                    // InternalSignalDSL.g:2731:3: ( rule__OpOther__Group_5__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpOtherAccess().getGroup_5()); 
                     }
-                    // InternalSignalDSL.g:2670:3: ( rule__OpOther__Group_5__0 )
-                    // InternalSignalDSL.g:2670:4: rule__OpOther__Group_5__0
+                    // InternalSignalDSL.g:2732:3: ( rule__OpOther__Group_5__0 )
+                    // InternalSignalDSL.g:2732:4: rule__OpOther__Group_5__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__OpOther__Group_5__0();
@@ -9434,16 +9656,16 @@
                     }
                     break;
                 case 7 :
-                    // InternalSignalDSL.g:2674:2: ( ( rule__OpOther__Group_6__0 ) )
+                    // InternalSignalDSL.g:2736:2: ( ( rule__OpOther__Group_6__0 ) )
                     {
-                    // InternalSignalDSL.g:2674:2: ( ( rule__OpOther__Group_6__0 ) )
-                    // InternalSignalDSL.g:2675:3: ( rule__OpOther__Group_6__0 )
+                    // InternalSignalDSL.g:2736:2: ( ( rule__OpOther__Group_6__0 ) )
+                    // InternalSignalDSL.g:2737:3: ( rule__OpOther__Group_6__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpOtherAccess().getGroup_6()); 
                     }
-                    // InternalSignalDSL.g:2676:3: ( rule__OpOther__Group_6__0 )
-                    // InternalSignalDSL.g:2676:4: rule__OpOther__Group_6__0
+                    // InternalSignalDSL.g:2738:3: ( rule__OpOther__Group_6__0 )
+                    // InternalSignalDSL.g:2738:4: rule__OpOther__Group_6__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__OpOther__Group_6__0();
@@ -9463,10 +9685,10 @@
                     }
                     break;
                 case 8 :
-                    // InternalSignalDSL.g:2680:2: ( '<>' )
+                    // InternalSignalDSL.g:2742:2: ( '<>' )
                     {
-                    // InternalSignalDSL.g:2680:2: ( '<>' )
-                    // InternalSignalDSL.g:2681:3: '<>'
+                    // InternalSignalDSL.g:2742:2: ( '<>' )
+                    // InternalSignalDSL.g:2743:3: '<>'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpOtherAccess().getLessThanSignGreaterThanSignKeyword_7()); 
@@ -9482,10 +9704,10 @@
                     }
                     break;
                 case 9 :
-                    // InternalSignalDSL.g:2686:2: ( '?:' )
+                    // InternalSignalDSL.g:2748:2: ( '?:' )
                     {
-                    // InternalSignalDSL.g:2686:2: ( '?:' )
-                    // InternalSignalDSL.g:2687:3: '?:'
+                    // InternalSignalDSL.g:2748:2: ( '?:' )
+                    // InternalSignalDSL.g:2749:3: '?:'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpOtherAccess().getQuestionMarkColonKeyword_8()); 
@@ -9518,29 +9740,29 @@
 
 
     // $ANTLR start "rule__OpOther__Alternatives_5_1"
-    // InternalSignalDSL.g:2696:1: rule__OpOther__Alternatives_5_1 : ( ( ( rule__OpOther__Group_5_1_0__0 ) ) | ( '>' ) );
+    // InternalSignalDSL.g:2758: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:2700:1: ( ( ( rule__OpOther__Group_5_1_0__0 ) ) | ( '>' ) )
-            int alt15=2;
-            int LA15_0 = input.LA(1);
+            // InternalSignalDSL.g:2762:1: ( ( ( rule__OpOther__Group_5_1_0__0 ) ) | ( '>' ) )
+            int alt16=2;
+            int LA16_0 = input.LA(1);
 
-            if ( (LA15_0==26) ) {
-                int LA15_1 = input.LA(2);
+            if ( (LA16_0==26) ) {
+                int LA16_1 = input.LA(2);
 
-                if ( (LA15_1==EOF||(LA15_1>=RULE_ID && LA15_1<=RULE_STRING)||LA15_1==27||(LA15_1>=34 && LA15_1<=35)||LA15_1==40||(LA15_1>=45 && LA15_1<=50)||LA15_1==68||LA15_1==72||LA15_1==76||(LA15_1>=80 && LA15_1<=81)||LA15_1==84||LA15_1==86||(LA15_1>=90 && LA15_1<=97)||LA15_1==99||LA15_1==108) ) {
-                    alt15=2;
+                if ( (LA16_1==EOF||(LA16_1>=RULE_ID && LA16_1<=RULE_STRING)||LA16_1==27||(LA16_1>=34 && LA16_1<=35)||LA16_1==40||(LA16_1>=45 && LA16_1<=50)||LA16_1==64||LA16_1==68||LA16_1==74||(LA16_1>=78 && LA16_1<=79)||LA16_1==82||LA16_1==84||(LA16_1>=88 && LA16_1<=95)||LA16_1==97||LA16_1==106) ) {
+                    alt16=2;
                 }
-                else if ( (LA15_1==26) ) {
-                    alt15=1;
+                else if ( (LA16_1==26) ) {
+                    alt16=1;
                 }
                 else {
                     if (state.backtracking>0) {state.failed=true; return ;}
                     NoViableAltException nvae =
-                        new NoViableAltException("", 15, 1, input);
+                        new NoViableAltException("", 16, 1, input);
 
                     throw nvae;
                 }
@@ -9548,22 +9770,22 @@
             else {
                 if (state.backtracking>0) {state.failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 15, 0, input);
+                    new NoViableAltException("", 16, 0, input);
 
                 throw nvae;
             }
-            switch (alt15) {
+            switch (alt16) {
                 case 1 :
-                    // InternalSignalDSL.g:2701:2: ( ( rule__OpOther__Group_5_1_0__0 ) )
+                    // InternalSignalDSL.g:2763:2: ( ( rule__OpOther__Group_5_1_0__0 ) )
                     {
-                    // InternalSignalDSL.g:2701:2: ( ( rule__OpOther__Group_5_1_0__0 ) )
-                    // InternalSignalDSL.g:2702:3: ( rule__OpOther__Group_5_1_0__0 )
+                    // InternalSignalDSL.g:2763:2: ( ( rule__OpOther__Group_5_1_0__0 ) )
+                    // InternalSignalDSL.g:2764:3: ( rule__OpOther__Group_5_1_0__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpOtherAccess().getGroup_5_1_0()); 
                     }
-                    // InternalSignalDSL.g:2703:3: ( rule__OpOther__Group_5_1_0__0 )
-                    // InternalSignalDSL.g:2703:4: rule__OpOther__Group_5_1_0__0
+                    // InternalSignalDSL.g:2765:3: ( rule__OpOther__Group_5_1_0__0 )
+                    // InternalSignalDSL.g:2765:4: rule__OpOther__Group_5_1_0__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__OpOther__Group_5_1_0__0();
@@ -9583,10 +9805,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:2707:2: ( '>' )
+                    // InternalSignalDSL.g:2769:2: ( '>' )
                     {
-                    // InternalSignalDSL.g:2707:2: ( '>' )
-                    // InternalSignalDSL.g:2708:3: '>'
+                    // InternalSignalDSL.g:2769:2: ( '>' )
+                    // InternalSignalDSL.g:2770:3: '>'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_1_1()); 
@@ -9619,55 +9841,55 @@
 
 
     // $ANTLR start "rule__OpOther__Alternatives_6_1"
-    // InternalSignalDSL.g:2717:1: rule__OpOther__Alternatives_6_1 : ( ( ( rule__OpOther__Group_6_1_0__0 ) ) | ( '<' ) | ( '=>' ) );
+    // InternalSignalDSL.g:2779: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:2721:1: ( ( ( rule__OpOther__Group_6_1_0__0 ) ) | ( '<' ) | ( '=>' ) )
-            int alt16=3;
-            int LA16_0 = input.LA(1);
+            // InternalSignalDSL.g:2783:1: ( ( ( rule__OpOther__Group_6_1_0__0 ) ) | ( '<' ) | ( '=>' ) )
+            int alt17=3;
+            int LA17_0 = input.LA(1);
 
-            if ( (LA16_0==27) ) {
-                int LA16_1 = input.LA(2);
+            if ( (LA17_0==27) ) {
+                int LA17_1 = input.LA(2);
 
-                if ( (synpred34_InternalSignalDSL()) ) {
-                    alt16=1;
+                if ( (synpred35_InternalSignalDSL()) ) {
+                    alt17=1;
                 }
-                else if ( (synpred35_InternalSignalDSL()) ) {
-                    alt16=2;
+                else if ( (synpred36_InternalSignalDSL()) ) {
+                    alt17=2;
                 }
                 else {
                     if (state.backtracking>0) {state.failed=true; return ;}
                     NoViableAltException nvae =
-                        new NoViableAltException("", 16, 1, input);
+                        new NoViableAltException("", 17, 1, input);
 
                     throw nvae;
                 }
             }
-            else if ( (LA16_0==31) ) {
-                alt16=3;
+            else if ( (LA17_0==31) ) {
+                alt17=3;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 16, 0, input);
+                    new NoViableAltException("", 17, 0, input);
 
                 throw nvae;
             }
-            switch (alt16) {
+            switch (alt17) {
                 case 1 :
-                    // InternalSignalDSL.g:2722:2: ( ( rule__OpOther__Group_6_1_0__0 ) )
+                    // InternalSignalDSL.g:2784:2: ( ( rule__OpOther__Group_6_1_0__0 ) )
                     {
-                    // InternalSignalDSL.g:2722:2: ( ( rule__OpOther__Group_6_1_0__0 ) )
-                    // InternalSignalDSL.g:2723:3: ( rule__OpOther__Group_6_1_0__0 )
+                    // InternalSignalDSL.g:2784:2: ( ( rule__OpOther__Group_6_1_0__0 ) )
+                    // InternalSignalDSL.g:2785:3: ( rule__OpOther__Group_6_1_0__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpOtherAccess().getGroup_6_1_0()); 
                     }
-                    // InternalSignalDSL.g:2724:3: ( rule__OpOther__Group_6_1_0__0 )
-                    // InternalSignalDSL.g:2724:4: rule__OpOther__Group_6_1_0__0
+                    // InternalSignalDSL.g:2786:3: ( rule__OpOther__Group_6_1_0__0 )
+                    // InternalSignalDSL.g:2786:4: rule__OpOther__Group_6_1_0__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__OpOther__Group_6_1_0__0();
@@ -9687,10 +9909,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:2728:2: ( '<' )
+                    // InternalSignalDSL.g:2790:2: ( '<' )
                     {
-                    // InternalSignalDSL.g:2728:2: ( '<' )
-                    // InternalSignalDSL.g:2729:3: '<'
+                    // InternalSignalDSL.g:2790:2: ( '<' )
+                    // InternalSignalDSL.g:2791:3: '<'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_1_1()); 
@@ -9706,10 +9928,10 @@
                     }
                     break;
                 case 3 :
-                    // InternalSignalDSL.g:2734:2: ( '=>' )
+                    // InternalSignalDSL.g:2796:2: ( '=>' )
                     {
-                    // InternalSignalDSL.g:2734:2: ( '=>' )
-                    // InternalSignalDSL.g:2735:3: '=>'
+                    // InternalSignalDSL.g:2796:2: ( '=>' )
+                    // InternalSignalDSL.g:2797:3: '=>'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpOtherAccess().getEqualsSignGreaterThanSignKeyword_6_1_2()); 
@@ -9742,35 +9964,35 @@
 
 
     // $ANTLR start "rule__OpAdd__Alternatives"
-    // InternalSignalDSL.g:2744:1: rule__OpAdd__Alternatives : ( ( '+' ) | ( '-' ) );
+    // InternalSignalDSL.g:2806:1: rule__OpAdd__Alternatives : ( ( '+' ) | ( '-' ) );
     public final void rule__OpAdd__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:2748:1: ( ( '+' ) | ( '-' ) )
-            int alt17=2;
-            int LA17_0 = input.LA(1);
+            // InternalSignalDSL.g:2810:1: ( ( '+' ) | ( '-' ) )
+            int alt18=2;
+            int LA18_0 = input.LA(1);
 
-            if ( (LA17_0==34) ) {
-                alt17=1;
+            if ( (LA18_0==34) ) {
+                alt18=1;
             }
-            else if ( (LA17_0==35) ) {
-                alt17=2;
+            else if ( (LA18_0==35) ) {
+                alt18=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 17, 0, input);
+                    new NoViableAltException("", 18, 0, input);
 
                 throw nvae;
             }
-            switch (alt17) {
+            switch (alt18) {
                 case 1 :
-                    // InternalSignalDSL.g:2749:2: ( '+' )
+                    // InternalSignalDSL.g:2811:2: ( '+' )
                     {
-                    // InternalSignalDSL.g:2749:2: ( '+' )
-                    // InternalSignalDSL.g:2750:3: '+'
+                    // InternalSignalDSL.g:2811:2: ( '+' )
+                    // InternalSignalDSL.g:2812:3: '+'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpAddAccess().getPlusSignKeyword_0()); 
@@ -9786,10 +10008,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:2755:2: ( '-' )
+                    // InternalSignalDSL.g:2817:2: ( '-' )
                     {
-                    // InternalSignalDSL.g:2755:2: ( '-' )
-                    // InternalSignalDSL.g:2756:3: '-'
+                    // InternalSignalDSL.g:2817:2: ( '-' )
+                    // InternalSignalDSL.g:2818:3: '-'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpAddAccess().getHyphenMinusKeyword_1()); 
@@ -9822,49 +10044,49 @@
 
 
     // $ANTLR start "rule__OpMulti__Alternatives"
-    // InternalSignalDSL.g:2765:1: rule__OpMulti__Alternatives : ( ( '*' ) | ( '**' ) | ( '/' ) | ( '%' ) );
+    // InternalSignalDSL.g:2827:1: rule__OpMulti__Alternatives : ( ( '*' ) | ( '**' ) | ( '/' ) | ( '%' ) );
     public final void rule__OpMulti__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:2769:1: ( ( '*' ) | ( '**' ) | ( '/' ) | ( '%' ) )
-            int alt18=4;
+            // InternalSignalDSL.g:2831:1: ( ( '*' ) | ( '**' ) | ( '/' ) | ( '%' ) )
+            int alt19=4;
             switch ( input.LA(1) ) {
             case 36:
                 {
-                alt18=1;
+                alt19=1;
                 }
                 break;
             case 37:
                 {
-                alt18=2;
+                alt19=2;
                 }
                 break;
             case 38:
                 {
-                alt18=3;
+                alt19=3;
                 }
                 break;
             case 39:
                 {
-                alt18=4;
+                alt19=4;
                 }
                 break;
             default:
                 if (state.backtracking>0) {state.failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 18, 0, input);
+                    new NoViableAltException("", 19, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt18) {
+            switch (alt19) {
                 case 1 :
-                    // InternalSignalDSL.g:2770:2: ( '*' )
+                    // InternalSignalDSL.g:2832:2: ( '*' )
                     {
-                    // InternalSignalDSL.g:2770:2: ( '*' )
-                    // InternalSignalDSL.g:2771:3: '*'
+                    // InternalSignalDSL.g:2832:2: ( '*' )
+                    // InternalSignalDSL.g:2833:3: '*'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpMultiAccess().getAsteriskKeyword_0()); 
@@ -9880,10 +10102,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:2776:2: ( '**' )
+                    // InternalSignalDSL.g:2838:2: ( '**' )
                     {
-                    // InternalSignalDSL.g:2776:2: ( '**' )
-                    // InternalSignalDSL.g:2777:3: '**'
+                    // InternalSignalDSL.g:2838:2: ( '**' )
+                    // InternalSignalDSL.g:2839:3: '**'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpMultiAccess().getAsteriskAsteriskKeyword_1()); 
@@ -9899,10 +10121,10 @@
                     }
                     break;
                 case 3 :
-                    // InternalSignalDSL.g:2782:2: ( '/' )
+                    // InternalSignalDSL.g:2844:2: ( '/' )
                     {
-                    // InternalSignalDSL.g:2782:2: ( '/' )
-                    // InternalSignalDSL.g:2783:3: '/'
+                    // InternalSignalDSL.g:2844:2: ( '/' )
+                    // InternalSignalDSL.g:2845:3: '/'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpMultiAccess().getSolidusKeyword_2()); 
@@ -9918,10 +10140,10 @@
                     }
                     break;
                 case 4 :
-                    // InternalSignalDSL.g:2788:2: ( '%' )
+                    // InternalSignalDSL.g:2850:2: ( '%' )
                     {
-                    // InternalSignalDSL.g:2788:2: ( '%' )
-                    // InternalSignalDSL.g:2789:3: '%'
+                    // InternalSignalDSL.g:2850:2: ( '%' )
+                    // InternalSignalDSL.g:2851:3: '%'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpMultiAccess().getPercentSignKeyword_3()); 
@@ -9954,41 +10176,41 @@
 
 
     // $ANTLR start "rule__XUnaryOperation__Alternatives"
-    // InternalSignalDSL.g:2798:1: rule__XUnaryOperation__Alternatives : ( ( ( rule__XUnaryOperation__Group_0__0 ) ) | ( ruleXCastedExpression ) );
+    // InternalSignalDSL.g:2860:1: rule__XUnaryOperation__Alternatives : ( ( ( rule__XUnaryOperation__Group_0__0 ) ) | ( ruleXCastedExpression ) );
     public final void rule__XUnaryOperation__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:2802:1: ( ( ( rule__XUnaryOperation__Group_0__0 ) ) | ( ruleXCastedExpression ) )
-            int alt19=2;
-            int LA19_0 = input.LA(1);
+            // InternalSignalDSL.g:2864:1: ( ( ( rule__XUnaryOperation__Group_0__0 ) ) | ( ruleXCastedExpression ) )
+            int alt20=2;
+            int LA20_0 = input.LA(1);
 
-            if ( ((LA19_0>=34 && LA19_0<=35)||LA19_0==40) ) {
-                alt19=1;
+            if ( ((LA20_0>=34 && LA20_0<=35)||LA20_0==40) ) {
+                alt20=1;
             }
-            else if ( ((LA19_0>=RULE_ID && LA19_0<=RULE_STRING)||LA19_0==27||(LA19_0>=45 && LA19_0<=50)||LA19_0==68||LA19_0==72||LA19_0==76||(LA19_0>=80 && LA19_0<=81)||LA19_0==84||LA19_0==86||(LA19_0>=90 && LA19_0<=97)||LA19_0==99||LA19_0==108) ) {
-                alt19=2;
+            else if ( ((LA20_0>=RULE_ID && LA20_0<=RULE_STRING)||LA20_0==27||(LA20_0>=45 && LA20_0<=50)||LA20_0==64||LA20_0==68||LA20_0==74||(LA20_0>=78 && LA20_0<=79)||LA20_0==82||LA20_0==84||(LA20_0>=88 && LA20_0<=95)||LA20_0==97||LA20_0==106) ) {
+                alt20=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 19, 0, input);
+                    new NoViableAltException("", 20, 0, input);
 
                 throw nvae;
             }
-            switch (alt19) {
+            switch (alt20) {
                 case 1 :
-                    // InternalSignalDSL.g:2803:2: ( ( rule__XUnaryOperation__Group_0__0 ) )
+                    // InternalSignalDSL.g:2865:2: ( ( rule__XUnaryOperation__Group_0__0 ) )
                     {
-                    // InternalSignalDSL.g:2803:2: ( ( rule__XUnaryOperation__Group_0__0 ) )
-                    // InternalSignalDSL.g:2804:3: ( rule__XUnaryOperation__Group_0__0 )
+                    // InternalSignalDSL.g:2865:2: ( ( rule__XUnaryOperation__Group_0__0 ) )
+                    // InternalSignalDSL.g:2866:3: ( rule__XUnaryOperation__Group_0__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXUnaryOperationAccess().getGroup_0()); 
                     }
-                    // InternalSignalDSL.g:2805:3: ( rule__XUnaryOperation__Group_0__0 )
-                    // InternalSignalDSL.g:2805:4: rule__XUnaryOperation__Group_0__0
+                    // InternalSignalDSL.g:2867:3: ( rule__XUnaryOperation__Group_0__0 )
+                    // InternalSignalDSL.g:2867:4: rule__XUnaryOperation__Group_0__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XUnaryOperation__Group_0__0();
@@ -10008,10 +10230,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:2809:2: ( ruleXCastedExpression )
+                    // InternalSignalDSL.g:2871:2: ( ruleXCastedExpression )
                     {
-                    // InternalSignalDSL.g:2809:2: ( ruleXCastedExpression )
-                    // InternalSignalDSL.g:2810:3: ruleXCastedExpression
+                    // InternalSignalDSL.g:2871:2: ( ruleXCastedExpression )
+                    // InternalSignalDSL.g:2872:3: ruleXCastedExpression
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXUnaryOperationAccess().getXCastedExpressionParserRuleCall_1()); 
@@ -10048,44 +10270,44 @@
 
 
     // $ANTLR start "rule__OpUnary__Alternatives"
-    // InternalSignalDSL.g:2819:1: rule__OpUnary__Alternatives : ( ( '!' ) | ( '-' ) | ( '+' ) );
+    // InternalSignalDSL.g:2881:1: rule__OpUnary__Alternatives : ( ( '!' ) | ( '-' ) | ( '+' ) );
     public final void rule__OpUnary__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:2823:1: ( ( '!' ) | ( '-' ) | ( '+' ) )
-            int alt20=3;
+            // InternalSignalDSL.g:2885:1: ( ( '!' ) | ( '-' ) | ( '+' ) )
+            int alt21=3;
             switch ( input.LA(1) ) {
             case 40:
                 {
-                alt20=1;
+                alt21=1;
                 }
                 break;
             case 35:
                 {
-                alt20=2;
+                alt21=2;
                 }
                 break;
             case 34:
                 {
-                alt20=3;
+                alt21=3;
                 }
                 break;
             default:
                 if (state.backtracking>0) {state.failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 20, 0, input);
+                    new NoViableAltException("", 21, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt20) {
+            switch (alt21) {
                 case 1 :
-                    // InternalSignalDSL.g:2824:2: ( '!' )
+                    // InternalSignalDSL.g:2886:2: ( '!' )
                     {
-                    // InternalSignalDSL.g:2824:2: ( '!' )
-                    // InternalSignalDSL.g:2825:3: '!'
+                    // InternalSignalDSL.g:2886:2: ( '!' )
+                    // InternalSignalDSL.g:2887:3: '!'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpUnaryAccess().getExclamationMarkKeyword_0()); 
@@ -10101,10 +10323,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:2830:2: ( '-' )
+                    // InternalSignalDSL.g:2892:2: ( '-' )
                     {
-                    // InternalSignalDSL.g:2830:2: ( '-' )
-                    // InternalSignalDSL.g:2831:3: '-'
+                    // InternalSignalDSL.g:2892:2: ( '-' )
+                    // InternalSignalDSL.g:2893:3: '-'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpUnaryAccess().getHyphenMinusKeyword_1()); 
@@ -10120,10 +10342,10 @@
                     }
                     break;
                 case 3 :
-                    // InternalSignalDSL.g:2836:2: ( '+' )
+                    // InternalSignalDSL.g:2898:2: ( '+' )
                     {
-                    // InternalSignalDSL.g:2836:2: ( '+' )
-                    // InternalSignalDSL.g:2837:3: '+'
+                    // InternalSignalDSL.g:2898:2: ( '+' )
+                    // InternalSignalDSL.g:2899:3: '+'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpUnaryAccess().getPlusSignKeyword_2()); 
@@ -10156,35 +10378,35 @@
 
 
     // $ANTLR start "rule__OpPostfix__Alternatives"
-    // InternalSignalDSL.g:2846:1: rule__OpPostfix__Alternatives : ( ( '++' ) | ( '--' ) );
+    // InternalSignalDSL.g:2908:1: rule__OpPostfix__Alternatives : ( ( '++' ) | ( '--' ) );
     public final void rule__OpPostfix__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:2850:1: ( ( '++' ) | ( '--' ) )
-            int alt21=2;
-            int LA21_0 = input.LA(1);
+            // InternalSignalDSL.g:2912:1: ( ( '++' ) | ( '--' ) )
+            int alt22=2;
+            int LA22_0 = input.LA(1);
 
-            if ( (LA21_0==41) ) {
-                alt21=1;
+            if ( (LA22_0==41) ) {
+                alt22=1;
             }
-            else if ( (LA21_0==42) ) {
-                alt21=2;
+            else if ( (LA22_0==42) ) {
+                alt22=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 21, 0, input);
+                    new NoViableAltException("", 22, 0, input);
 
                 throw nvae;
             }
-            switch (alt21) {
+            switch (alt22) {
                 case 1 :
-                    // InternalSignalDSL.g:2851:2: ( '++' )
+                    // InternalSignalDSL.g:2913:2: ( '++' )
                     {
-                    // InternalSignalDSL.g:2851:2: ( '++' )
-                    // InternalSignalDSL.g:2852:3: '++'
+                    // InternalSignalDSL.g:2913:2: ( '++' )
+                    // InternalSignalDSL.g:2914:3: '++'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpPostfixAccess().getPlusSignPlusSignKeyword_0()); 
@@ -10200,10 +10422,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:2857:2: ( '--' )
+                    // InternalSignalDSL.g:2919:2: ( '--' )
                     {
-                    // InternalSignalDSL.g:2857:2: ( '--' )
-                    // InternalSignalDSL.g:2858:3: '--'
+                    // InternalSignalDSL.g:2919:2: ( '--' )
+                    // InternalSignalDSL.g:2920:3: '--'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpPostfixAccess().getHyphenMinusHyphenMinusKeyword_1()); 
@@ -10236,27 +10458,27 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Alternatives_1"
-    // InternalSignalDSL.g:2867:1: rule__XMemberFeatureCall__Alternatives_1 : ( ( ( rule__XMemberFeatureCall__Group_1_0__0 ) ) | ( ( rule__XMemberFeatureCall__Group_1_1__0 ) ) );
+    // InternalSignalDSL.g:2929: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:2871:1: ( ( ( rule__XMemberFeatureCall__Group_1_0__0 ) ) | ( ( rule__XMemberFeatureCall__Group_1_1__0 ) ) )
-            int alt22=2;
-            alt22 = dfa22.predict(input);
-            switch (alt22) {
+            // InternalSignalDSL.g:2933:1: ( ( ( rule__XMemberFeatureCall__Group_1_0__0 ) ) | ( ( rule__XMemberFeatureCall__Group_1_1__0 ) ) )
+            int alt23=2;
+            alt23 = dfa23.predict(input);
+            switch (alt23) {
                 case 1 :
-                    // InternalSignalDSL.g:2872:2: ( ( rule__XMemberFeatureCall__Group_1_0__0 ) )
+                    // InternalSignalDSL.g:2934:2: ( ( rule__XMemberFeatureCall__Group_1_0__0 ) )
                     {
-                    // InternalSignalDSL.g:2872:2: ( ( rule__XMemberFeatureCall__Group_1_0__0 ) )
-                    // InternalSignalDSL.g:2873:3: ( rule__XMemberFeatureCall__Group_1_0__0 )
+                    // InternalSignalDSL.g:2934:2: ( ( rule__XMemberFeatureCall__Group_1_0__0 ) )
+                    // InternalSignalDSL.g:2935:3: ( rule__XMemberFeatureCall__Group_1_0__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_0()); 
                     }
-                    // InternalSignalDSL.g:2874:3: ( rule__XMemberFeatureCall__Group_1_0__0 )
-                    // InternalSignalDSL.g:2874:4: rule__XMemberFeatureCall__Group_1_0__0
+                    // InternalSignalDSL.g:2936:3: ( rule__XMemberFeatureCall__Group_1_0__0 )
+                    // InternalSignalDSL.g:2936:4: rule__XMemberFeatureCall__Group_1_0__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XMemberFeatureCall__Group_1_0__0();
@@ -10276,16 +10498,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:2878:2: ( ( rule__XMemberFeatureCall__Group_1_1__0 ) )
+                    // InternalSignalDSL.g:2940:2: ( ( rule__XMemberFeatureCall__Group_1_1__0 ) )
                     {
-                    // InternalSignalDSL.g:2878:2: ( ( rule__XMemberFeatureCall__Group_1_1__0 ) )
-                    // InternalSignalDSL.g:2879:3: ( rule__XMemberFeatureCall__Group_1_1__0 )
+                    // InternalSignalDSL.g:2940:2: ( ( rule__XMemberFeatureCall__Group_1_1__0 ) )
+                    // InternalSignalDSL.g:2941:3: ( rule__XMemberFeatureCall__Group_1_1__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1()); 
                     }
-                    // InternalSignalDSL.g:2880:3: ( rule__XMemberFeatureCall__Group_1_1__0 )
-                    // InternalSignalDSL.g:2880:4: rule__XMemberFeatureCall__Group_1_1__0
+                    // InternalSignalDSL.g:2942:3: ( rule__XMemberFeatureCall__Group_1_1__0 )
+                    // InternalSignalDSL.g:2942:4: rule__XMemberFeatureCall__Group_1_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XMemberFeatureCall__Group_1_1__0();
@@ -10322,35 +10544,35 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Alternatives_1_0_0_0_1"
-    // InternalSignalDSL.g:2888:1: rule__XMemberFeatureCall__Alternatives_1_0_0_0_1 : ( ( '.' ) | ( ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1 ) ) );
+    // InternalSignalDSL.g:2950: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:2892:1: ( ( '.' ) | ( ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1 ) ) )
-            int alt23=2;
-            int LA23_0 = input.LA(1);
+            // InternalSignalDSL.g:2954:1: ( ( '.' ) | ( ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1 ) ) )
+            int alt24=2;
+            int LA24_0 = input.LA(1);
 
-            if ( (LA23_0==43) ) {
-                alt23=1;
+            if ( (LA24_0==43) ) {
+                alt24=1;
             }
-            else if ( (LA23_0==104) ) {
-                alt23=2;
+            else if ( (LA24_0==102) ) {
+                alt24=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 23, 0, input);
+                    new NoViableAltException("", 24, 0, input);
 
                 throw nvae;
             }
-            switch (alt23) {
+            switch (alt24) {
                 case 1 :
-                    // InternalSignalDSL.g:2893:2: ( '.' )
+                    // InternalSignalDSL.g:2955:2: ( '.' )
                     {
-                    // InternalSignalDSL.g:2893:2: ( '.' )
-                    // InternalSignalDSL.g:2894:3: '.'
+                    // InternalSignalDSL.g:2955:2: ( '.' )
+                    // InternalSignalDSL.g:2956:3: '.'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXMemberFeatureCallAccess().getFullStopKeyword_1_0_0_0_1_0()); 
@@ -10366,16 +10588,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:2899:2: ( ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1 ) )
+                    // InternalSignalDSL.g:2961:2: ( ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1 ) )
                     {
-                    // InternalSignalDSL.g:2899:2: ( ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1 ) )
-                    // InternalSignalDSL.g:2900:3: ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1 )
+                    // InternalSignalDSL.g:2961:2: ( ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1 ) )
+                    // InternalSignalDSL.g:2962: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:2901:3: ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1 )
-                    // InternalSignalDSL.g:2901:4: rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1
+                    // InternalSignalDSL.g:2963:3: ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1 )
+                    // InternalSignalDSL.g:2963:4: rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1
                     {
                     pushFollow(FOLLOW_2);
                     rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1();
@@ -10412,44 +10634,44 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Alternatives_1_1_0_0_1"
-    // InternalSignalDSL.g:2909: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:2971: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:2913:1: ( ( '.' ) | ( ( rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1 ) ) | ( ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2 ) ) )
-            int alt24=3;
+            // InternalSignalDSL.g:2975:1: ( ( '.' ) | ( ( rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1 ) ) | ( ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2 ) ) )
+            int alt25=3;
             switch ( input.LA(1) ) {
             case 43:
                 {
-                alt24=1;
+                alt25=1;
                 }
                 break;
-            case 105:
+            case 103:
                 {
-                alt24=2;
+                alt25=2;
                 }
                 break;
-            case 104:
+            case 102:
                 {
-                alt24=3;
+                alt25=3;
                 }
                 break;
             default:
                 if (state.backtracking>0) {state.failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 24, 0, input);
+                    new NoViableAltException("", 25, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt24) {
+            switch (alt25) {
                 case 1 :
-                    // InternalSignalDSL.g:2914:2: ( '.' )
+                    // InternalSignalDSL.g:2976:2: ( '.' )
                     {
-                    // InternalSignalDSL.g:2914:2: ( '.' )
-                    // InternalSignalDSL.g:2915:3: '.'
+                    // InternalSignalDSL.g:2976:2: ( '.' )
+                    // InternalSignalDSL.g:2977:3: '.'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXMemberFeatureCallAccess().getFullStopKeyword_1_1_0_0_1_0()); 
@@ -10465,16 +10687,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:2920:2: ( ( rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1 ) )
+                    // InternalSignalDSL.g:2982:2: ( ( rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1 ) )
                     {
-                    // InternalSignalDSL.g:2920:2: ( ( rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1 ) )
-                    // InternalSignalDSL.g:2921:3: ( rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1 )
+                    // InternalSignalDSL.g:2982:2: ( ( rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1 ) )
+                    // InternalSignalDSL.g:2983: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:2922:3: ( rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1 )
-                    // InternalSignalDSL.g:2922:4: rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1
+                    // InternalSignalDSL.g:2984:3: ( rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1 )
+                    // InternalSignalDSL.g:2984:4: rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1
                     {
                     pushFollow(FOLLOW_2);
                     rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1();
@@ -10494,16 +10716,16 @@
                     }
                     break;
                 case 3 :
-                    // InternalSignalDSL.g:2926:2: ( ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2 ) )
+                    // InternalSignalDSL.g:2988:2: ( ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2 ) )
                     {
-                    // InternalSignalDSL.g:2926:2: ( ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2 ) )
-                    // InternalSignalDSL.g:2927:3: ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2 )
+                    // InternalSignalDSL.g:2988:2: ( ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2 ) )
+                    // InternalSignalDSL.g:2989: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:2928:3: ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2 )
-                    // InternalSignalDSL.g:2928:4: rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2
+                    // InternalSignalDSL.g:2990:3: ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2 )
+                    // InternalSignalDSL.g:2990:4: rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2
                     {
                     pushFollow(FOLLOW_2);
                     rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2();
@@ -10540,27 +10762,27 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Alternatives_1_1_3_1"
-    // InternalSignalDSL.g:2936: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:2998: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:2940:1: ( ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 ) ) | ( ( rule__XMemberFeatureCall__Group_1_1_3_1_1__0 ) ) )
-            int alt25=2;
-            alt25 = dfa25.predict(input);
-            switch (alt25) {
+            // InternalSignalDSL.g:3002:1: ( ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 ) ) | ( ( rule__XMemberFeatureCall__Group_1_1_3_1_1__0 ) ) )
+            int alt26=2;
+            alt26 = dfa26.predict(input);
+            switch (alt26) {
                 case 1 :
-                    // InternalSignalDSL.g:2941:2: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 ) )
+                    // InternalSignalDSL.g:3003:2: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 ) )
                     {
-                    // InternalSignalDSL.g:2941:2: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 ) )
-                    // InternalSignalDSL.g:2942:3: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 )
+                    // InternalSignalDSL.g:3003:2: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 ) )
+                    // InternalSignalDSL.g:3004:3: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsAssignment_1_1_3_1_0()); 
                     }
-                    // InternalSignalDSL.g:2943:3: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 )
-                    // InternalSignalDSL.g:2943:4: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0
+                    // InternalSignalDSL.g:3005:3: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 )
+                    // InternalSignalDSL.g:3005:4: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0();
@@ -10580,16 +10802,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:2947:2: ( ( rule__XMemberFeatureCall__Group_1_1_3_1_1__0 ) )
+                    // InternalSignalDSL.g:3009:2: ( ( rule__XMemberFeatureCall__Group_1_1_3_1_1__0 ) )
                     {
-                    // InternalSignalDSL.g:2947:2: ( ( rule__XMemberFeatureCall__Group_1_1_3_1_1__0 ) )
-                    // InternalSignalDSL.g:2948:3: ( rule__XMemberFeatureCall__Group_1_1_3_1_1__0 )
+                    // InternalSignalDSL.g:3009:2: ( ( rule__XMemberFeatureCall__Group_1_1_3_1_1__0 ) )
+                    // InternalSignalDSL.g:3010: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:2949:3: ( rule__XMemberFeatureCall__Group_1_1_3_1_1__0 )
-                    // InternalSignalDSL.g:2949:4: rule__XMemberFeatureCall__Group_1_1_3_1_1__0
+                    // InternalSignalDSL.g:3011:3: ( rule__XMemberFeatureCall__Group_1_1_3_1_1__0 )
+                    // InternalSignalDSL.g:3011:4: rule__XMemberFeatureCall__Group_1_1_3_1_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XMemberFeatureCall__Group_1_1_3_1_1__0();
@@ -10626,21 +10848,21 @@
 
 
     // $ANTLR start "rule__XPrimaryExpression__Alternatives"
-    // InternalSignalDSL.g:2957:1: rule__XPrimaryExpression__Alternatives : ( ( ruleXConstructorCall ) | ( ruleXBlockExpression ) | ( ruleXSwitchExpression ) | ( ( ruleXSynchronizedExpression ) ) | ( ruleXFeatureCall ) | ( ruleXLiteral ) | ( ruleXIfExpression ) | ( ( ruleXForLoopExpression ) ) | ( ruleXBasicForLoopExpression ) | ( ruleXWhileExpression ) | ( ruleXDoWhileExpression ) | ( ruleXThrowExpression ) | ( ruleXReturnExpression ) | ( ruleXTryCatchFinallyExpression ) | ( ruleXParenthesizedExpression ) );
+    // InternalSignalDSL.g:3019: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:2961:1: ( ( ruleXConstructorCall ) | ( ruleXBlockExpression ) | ( ruleXSwitchExpression ) | ( ( ruleXSynchronizedExpression ) ) | ( ruleXFeatureCall ) | ( ruleXLiteral ) | ( ruleXIfExpression ) | ( ( ruleXForLoopExpression ) ) | ( ruleXBasicForLoopExpression ) | ( ruleXWhileExpression ) | ( ruleXDoWhileExpression ) | ( ruleXThrowExpression ) | ( ruleXReturnExpression ) | ( ruleXTryCatchFinallyExpression ) | ( ruleXParenthesizedExpression ) )
-            int alt26=15;
-            alt26 = dfa26.predict(input);
-            switch (alt26) {
+            // InternalSignalDSL.g:3023:1: ( ( ruleXConstructorCall ) | ( ruleXBlockExpression ) | ( ruleXSwitchExpression ) | ( ( ruleXSynchronizedExpression ) ) | ( ruleXFeatureCall ) | ( ruleXLiteral ) | ( ruleXIfExpression ) | ( ( ruleXForLoopExpression ) ) | ( ruleXBasicForLoopExpression ) | ( ruleXWhileExpression ) | ( ruleXDoWhileExpression ) | ( ruleXThrowExpression ) | ( ruleXReturnExpression ) | ( ruleXTryCatchFinallyExpression ) | ( ruleXParenthesizedExpression ) )
+            int alt27=15;
+            alt27 = dfa27.predict(input);
+            switch (alt27) {
                 case 1 :
-                    // InternalSignalDSL.g:2962:2: ( ruleXConstructorCall )
+                    // InternalSignalDSL.g:3024:2: ( ruleXConstructorCall )
                     {
-                    // InternalSignalDSL.g:2962:2: ( ruleXConstructorCall )
-                    // InternalSignalDSL.g:2963:3: ruleXConstructorCall
+                    // InternalSignalDSL.g:3024:2: ( ruleXConstructorCall )
+                    // InternalSignalDSL.g:3025:3: ruleXConstructorCall
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXPrimaryExpressionAccess().getXConstructorCallParserRuleCall_0()); 
@@ -10660,10 +10882,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:2968:2: ( ruleXBlockExpression )
+                    // InternalSignalDSL.g:3030:2: ( ruleXBlockExpression )
                     {
-                    // InternalSignalDSL.g:2968:2: ( ruleXBlockExpression )
-                    // InternalSignalDSL.g:2969:3: ruleXBlockExpression
+                    // InternalSignalDSL.g:3030:2: ( ruleXBlockExpression )
+                    // InternalSignalDSL.g:3031:3: ruleXBlockExpression
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXPrimaryExpressionAccess().getXBlockExpressionParserRuleCall_1()); 
@@ -10683,10 +10905,10 @@
                     }
                     break;
                 case 3 :
-                    // InternalSignalDSL.g:2974:2: ( ruleXSwitchExpression )
+                    // InternalSignalDSL.g:3036:2: ( ruleXSwitchExpression )
                     {
-                    // InternalSignalDSL.g:2974:2: ( ruleXSwitchExpression )
-                    // InternalSignalDSL.g:2975:3: ruleXSwitchExpression
+                    // InternalSignalDSL.g:3036:2: ( ruleXSwitchExpression )
+                    // InternalSignalDSL.g:3037:3: ruleXSwitchExpression
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXPrimaryExpressionAccess().getXSwitchExpressionParserRuleCall_2()); 
@@ -10706,16 +10928,16 @@
                     }
                     break;
                 case 4 :
-                    // InternalSignalDSL.g:2980:2: ( ( ruleXSynchronizedExpression ) )
+                    // InternalSignalDSL.g:3042:2: ( ( ruleXSynchronizedExpression ) )
                     {
-                    // InternalSignalDSL.g:2980:2: ( ( ruleXSynchronizedExpression ) )
-                    // InternalSignalDSL.g:2981:3: ( ruleXSynchronizedExpression )
+                    // InternalSignalDSL.g:3042:2: ( ( ruleXSynchronizedExpression ) )
+                    // InternalSignalDSL.g:3043:3: ( ruleXSynchronizedExpression )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXPrimaryExpressionAccess().getXSynchronizedExpressionParserRuleCall_3()); 
                     }
-                    // InternalSignalDSL.g:2982:3: ( ruleXSynchronizedExpression )
-                    // InternalSignalDSL.g:2982:4: ruleXSynchronizedExpression
+                    // InternalSignalDSL.g:3044:3: ( ruleXSynchronizedExpression )
+                    // InternalSignalDSL.g:3044:4: ruleXSynchronizedExpression
                     {
                     pushFollow(FOLLOW_2);
                     ruleXSynchronizedExpression();
@@ -10735,10 +10957,10 @@
                     }
                     break;
                 case 5 :
-                    // InternalSignalDSL.g:2986:2: ( ruleXFeatureCall )
+                    // InternalSignalDSL.g:3048:2: ( ruleXFeatureCall )
                     {
-                    // InternalSignalDSL.g:2986:2: ( ruleXFeatureCall )
-                    // InternalSignalDSL.g:2987:3: ruleXFeatureCall
+                    // InternalSignalDSL.g:3048:2: ( ruleXFeatureCall )
+                    // InternalSignalDSL.g:3049:3: ruleXFeatureCall
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXPrimaryExpressionAccess().getXFeatureCallParserRuleCall_4()); 
@@ -10758,10 +10980,10 @@
                     }
                     break;
                 case 6 :
-                    // InternalSignalDSL.g:2992:2: ( ruleXLiteral )
+                    // InternalSignalDSL.g:3054:2: ( ruleXLiteral )
                     {
-                    // InternalSignalDSL.g:2992:2: ( ruleXLiteral )
-                    // InternalSignalDSL.g:2993:3: ruleXLiteral
+                    // InternalSignalDSL.g:3054:2: ( ruleXLiteral )
+                    // InternalSignalDSL.g:3055:3: ruleXLiteral
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXPrimaryExpressionAccess().getXLiteralParserRuleCall_5()); 
@@ -10781,10 +11003,10 @@
                     }
                     break;
                 case 7 :
-                    // InternalSignalDSL.g:2998:2: ( ruleXIfExpression )
+                    // InternalSignalDSL.g:3060:2: ( ruleXIfExpression )
                     {
-                    // InternalSignalDSL.g:2998:2: ( ruleXIfExpression )
-                    // InternalSignalDSL.g:2999:3: ruleXIfExpression
+                    // InternalSignalDSL.g:3060:2: ( ruleXIfExpression )
+                    // InternalSignalDSL.g:3061:3: ruleXIfExpression
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXPrimaryExpressionAccess().getXIfExpressionParserRuleCall_6()); 
@@ -10804,16 +11026,16 @@
                     }
                     break;
                 case 8 :
-                    // InternalSignalDSL.g:3004:2: ( ( ruleXForLoopExpression ) )
+                    // InternalSignalDSL.g:3066:2: ( ( ruleXForLoopExpression ) )
                     {
-                    // InternalSignalDSL.g:3004:2: ( ( ruleXForLoopExpression ) )
-                    // InternalSignalDSL.g:3005:3: ( ruleXForLoopExpression )
+                    // InternalSignalDSL.g:3066:2: ( ( ruleXForLoopExpression ) )
+                    // InternalSignalDSL.g:3067:3: ( ruleXForLoopExpression )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXPrimaryExpressionAccess().getXForLoopExpressionParserRuleCall_7()); 
                     }
-                    // InternalSignalDSL.g:3006:3: ( ruleXForLoopExpression )
-                    // InternalSignalDSL.g:3006:4: ruleXForLoopExpression
+                    // InternalSignalDSL.g:3068:3: ( ruleXForLoopExpression )
+                    // InternalSignalDSL.g:3068:4: ruleXForLoopExpression
                     {
                     pushFollow(FOLLOW_2);
                     ruleXForLoopExpression();
@@ -10833,10 +11055,10 @@
                     }
                     break;
                 case 9 :
-                    // InternalSignalDSL.g:3010:2: ( ruleXBasicForLoopExpression )
+                    // InternalSignalDSL.g:3072:2: ( ruleXBasicForLoopExpression )
                     {
-                    // InternalSignalDSL.g:3010:2: ( ruleXBasicForLoopExpression )
-                    // InternalSignalDSL.g:3011:3: ruleXBasicForLoopExpression
+                    // InternalSignalDSL.g:3072:2: ( ruleXBasicForLoopExpression )
+                    // InternalSignalDSL.g:3073:3: ruleXBasicForLoopExpression
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXPrimaryExpressionAccess().getXBasicForLoopExpressionParserRuleCall_8()); 
@@ -10856,10 +11078,10 @@
                     }
                     break;
                 case 10 :
-                    // InternalSignalDSL.g:3016:2: ( ruleXWhileExpression )
+                    // InternalSignalDSL.g:3078:2: ( ruleXWhileExpression )
                     {
-                    // InternalSignalDSL.g:3016:2: ( ruleXWhileExpression )
-                    // InternalSignalDSL.g:3017:3: ruleXWhileExpression
+                    // InternalSignalDSL.g:3078:2: ( ruleXWhileExpression )
+                    // InternalSignalDSL.g:3079:3: ruleXWhileExpression
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXPrimaryExpressionAccess().getXWhileExpressionParserRuleCall_9()); 
@@ -10879,10 +11101,10 @@
                     }
                     break;
                 case 11 :
-                    // InternalSignalDSL.g:3022:2: ( ruleXDoWhileExpression )
+                    // InternalSignalDSL.g:3084:2: ( ruleXDoWhileExpression )
                     {
-                    // InternalSignalDSL.g:3022:2: ( ruleXDoWhileExpression )
-                    // InternalSignalDSL.g:3023:3: ruleXDoWhileExpression
+                    // InternalSignalDSL.g:3084:2: ( ruleXDoWhileExpression )
+                    // InternalSignalDSL.g:3085:3: ruleXDoWhileExpression
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXPrimaryExpressionAccess().getXDoWhileExpressionParserRuleCall_10()); 
@@ -10902,10 +11124,10 @@
                     }
                     break;
                 case 12 :
-                    // InternalSignalDSL.g:3028:2: ( ruleXThrowExpression )
+                    // InternalSignalDSL.g:3090:2: ( ruleXThrowExpression )
                     {
-                    // InternalSignalDSL.g:3028:2: ( ruleXThrowExpression )
-                    // InternalSignalDSL.g:3029:3: ruleXThrowExpression
+                    // InternalSignalDSL.g:3090:2: ( ruleXThrowExpression )
+                    // InternalSignalDSL.g:3091:3: ruleXThrowExpression
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXPrimaryExpressionAccess().getXThrowExpressionParserRuleCall_11()); 
@@ -10925,10 +11147,10 @@
                     }
                     break;
                 case 13 :
-                    // InternalSignalDSL.g:3034:2: ( ruleXReturnExpression )
+                    // InternalSignalDSL.g:3096:2: ( ruleXReturnExpression )
                     {
-                    // InternalSignalDSL.g:3034:2: ( ruleXReturnExpression )
-                    // InternalSignalDSL.g:3035:3: ruleXReturnExpression
+                    // InternalSignalDSL.g:3096:2: ( ruleXReturnExpression )
+                    // InternalSignalDSL.g:3097:3: ruleXReturnExpression
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXPrimaryExpressionAccess().getXReturnExpressionParserRuleCall_12()); 
@@ -10948,10 +11170,10 @@
                     }
                     break;
                 case 14 :
-                    // InternalSignalDSL.g:3040:2: ( ruleXTryCatchFinallyExpression )
+                    // InternalSignalDSL.g:3102:2: ( ruleXTryCatchFinallyExpression )
                     {
-                    // InternalSignalDSL.g:3040:2: ( ruleXTryCatchFinallyExpression )
-                    // InternalSignalDSL.g:3041:3: ruleXTryCatchFinallyExpression
+                    // InternalSignalDSL.g:3102:2: ( ruleXTryCatchFinallyExpression )
+                    // InternalSignalDSL.g:3103:3: ruleXTryCatchFinallyExpression
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXPrimaryExpressionAccess().getXTryCatchFinallyExpressionParserRuleCall_13()); 
@@ -10971,10 +11193,10 @@
                     }
                     break;
                 case 15 :
-                    // InternalSignalDSL.g:3046:2: ( ruleXParenthesizedExpression )
+                    // InternalSignalDSL.g:3108:2: ( ruleXParenthesizedExpression )
                     {
-                    // InternalSignalDSL.g:3046:2: ( ruleXParenthesizedExpression )
-                    // InternalSignalDSL.g:3047:3: ruleXParenthesizedExpression
+                    // InternalSignalDSL.g:3108:2: ( ruleXParenthesizedExpression )
+                    // InternalSignalDSL.g:3109:3: ruleXParenthesizedExpression
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXPrimaryExpressionAccess().getXParenthesizedExpressionParserRuleCall_14()); 
@@ -11011,67 +11233,67 @@
 
 
     // $ANTLR start "rule__XLiteral__Alternatives"
-    // InternalSignalDSL.g:3056:1: rule__XLiteral__Alternatives : ( ( ruleXCollectionLiteral ) | ( ( ruleXClosure ) ) | ( ruleXBooleanLiteral ) | ( ruleXNumberLiteral ) | ( ruleXNullLiteral ) | ( ruleXStringLiteral ) | ( ruleXTypeLiteral ) );
+    // InternalSignalDSL.g:3118: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:3060:1: ( ( ruleXCollectionLiteral ) | ( ( ruleXClosure ) ) | ( ruleXBooleanLiteral ) | ( ruleXNumberLiteral ) | ( ruleXNullLiteral ) | ( ruleXStringLiteral ) | ( ruleXTypeLiteral ) )
-            int alt27=7;
+            // InternalSignalDSL.g:3122:1: ( ( ruleXCollectionLiteral ) | ( ( ruleXClosure ) ) | ( ruleXBooleanLiteral ) | ( ruleXNumberLiteral ) | ( ruleXNullLiteral ) | ( ruleXStringLiteral ) | ( ruleXTypeLiteral ) )
+            int alt28=7;
             switch ( input.LA(1) ) {
-            case 80:
+            case 78:
                 {
-                alt27=1;
+                alt28=1;
                 }
                 break;
-            case 81:
+            case 79:
                 {
-                alt27=2;
+                alt28=2;
                 }
                 break;
             case 50:
-            case 108:
+            case 106:
                 {
-                alt27=3;
+                alt28=3;
                 }
                 break;
             case RULE_HEX:
             case RULE_INT:
             case RULE_DECIMAL:
                 {
-                alt27=4;
+                alt28=4;
                 }
                 break;
-            case 93:
+            case 91:
                 {
-                alt27=5;
+                alt28=5;
                 }
                 break;
             case RULE_STRING:
                 {
-                alt27=6;
+                alt28=6;
                 }
                 break;
-            case 94:
+            case 92:
                 {
-                alt27=7;
+                alt28=7;
                 }
                 break;
             default:
                 if (state.backtracking>0) {state.failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 27, 0, input);
+                    new NoViableAltException("", 28, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt27) {
+            switch (alt28) {
                 case 1 :
-                    // InternalSignalDSL.g:3061:2: ( ruleXCollectionLiteral )
+                    // InternalSignalDSL.g:3123:2: ( ruleXCollectionLiteral )
                     {
-                    // InternalSignalDSL.g:3061:2: ( ruleXCollectionLiteral )
-                    // InternalSignalDSL.g:3062:3: ruleXCollectionLiteral
+                    // InternalSignalDSL.g:3123:2: ( ruleXCollectionLiteral )
+                    // InternalSignalDSL.g:3124:3: ruleXCollectionLiteral
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXLiteralAccess().getXCollectionLiteralParserRuleCall_0()); 
@@ -11091,16 +11313,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:3067:2: ( ( ruleXClosure ) )
+                    // InternalSignalDSL.g:3129:2: ( ( ruleXClosure ) )
                     {
-                    // InternalSignalDSL.g:3067:2: ( ( ruleXClosure ) )
-                    // InternalSignalDSL.g:3068:3: ( ruleXClosure )
+                    // InternalSignalDSL.g:3129:2: ( ( ruleXClosure ) )
+                    // InternalSignalDSL.g:3130:3: ( ruleXClosure )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXLiteralAccess().getXClosureParserRuleCall_1()); 
                     }
-                    // InternalSignalDSL.g:3069:3: ( ruleXClosure )
-                    // InternalSignalDSL.g:3069:4: ruleXClosure
+                    // InternalSignalDSL.g:3131:3: ( ruleXClosure )
+                    // InternalSignalDSL.g:3131:4: ruleXClosure
                     {
                     pushFollow(FOLLOW_2);
                     ruleXClosure();
@@ -11120,10 +11342,10 @@
                     }
                     break;
                 case 3 :
-                    // InternalSignalDSL.g:3073:2: ( ruleXBooleanLiteral )
+                    // InternalSignalDSL.g:3135:2: ( ruleXBooleanLiteral )
                     {
-                    // InternalSignalDSL.g:3073:2: ( ruleXBooleanLiteral )
-                    // InternalSignalDSL.g:3074:3: ruleXBooleanLiteral
+                    // InternalSignalDSL.g:3135:2: ( ruleXBooleanLiteral )
+                    // InternalSignalDSL.g:3136:3: ruleXBooleanLiteral
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXLiteralAccess().getXBooleanLiteralParserRuleCall_2()); 
@@ -11143,10 +11365,10 @@
                     }
                     break;
                 case 4 :
-                    // InternalSignalDSL.g:3079:2: ( ruleXNumberLiteral )
+                    // InternalSignalDSL.g:3141:2: ( ruleXNumberLiteral )
                     {
-                    // InternalSignalDSL.g:3079:2: ( ruleXNumberLiteral )
-                    // InternalSignalDSL.g:3080:3: ruleXNumberLiteral
+                    // InternalSignalDSL.g:3141:2: ( ruleXNumberLiteral )
+                    // InternalSignalDSL.g:3142:3: ruleXNumberLiteral
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXLiteralAccess().getXNumberLiteralParserRuleCall_3()); 
@@ -11166,10 +11388,10 @@
                     }
                     break;
                 case 5 :
-                    // InternalSignalDSL.g:3085:2: ( ruleXNullLiteral )
+                    // InternalSignalDSL.g:3147:2: ( ruleXNullLiteral )
                     {
-                    // InternalSignalDSL.g:3085:2: ( ruleXNullLiteral )
-                    // InternalSignalDSL.g:3086:3: ruleXNullLiteral
+                    // InternalSignalDSL.g:3147:2: ( ruleXNullLiteral )
+                    // InternalSignalDSL.g:3148:3: ruleXNullLiteral
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXLiteralAccess().getXNullLiteralParserRuleCall_4()); 
@@ -11189,10 +11411,10 @@
                     }
                     break;
                 case 6 :
-                    // InternalSignalDSL.g:3091:2: ( ruleXStringLiteral )
+                    // InternalSignalDSL.g:3153:2: ( ruleXStringLiteral )
                     {
-                    // InternalSignalDSL.g:3091:2: ( ruleXStringLiteral )
-                    // InternalSignalDSL.g:3092:3: ruleXStringLiteral
+                    // InternalSignalDSL.g:3153:2: ( ruleXStringLiteral )
+                    // InternalSignalDSL.g:3154:3: ruleXStringLiteral
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXLiteralAccess().getXStringLiteralParserRuleCall_5()); 
@@ -11212,10 +11434,10 @@
                     }
                     break;
                 case 7 :
-                    // InternalSignalDSL.g:3097:2: ( ruleXTypeLiteral )
+                    // InternalSignalDSL.g:3159:2: ( ruleXTypeLiteral )
                     {
-                    // InternalSignalDSL.g:3097:2: ( ruleXTypeLiteral )
-                    // InternalSignalDSL.g:3098:3: ruleXTypeLiteral
+                    // InternalSignalDSL.g:3159:2: ( ruleXTypeLiteral )
+                    // InternalSignalDSL.g:3160:3: ruleXTypeLiteral
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXLiteralAccess().getXTypeLiteralParserRuleCall_6()); 
@@ -11252,29 +11474,29 @@
 
 
     // $ANTLR start "rule__XCollectionLiteral__Alternatives"
-    // InternalSignalDSL.g:3107:1: rule__XCollectionLiteral__Alternatives : ( ( ruleXSetLiteral ) | ( ruleXListLiteral ) );
+    // InternalSignalDSL.g:3169:1: rule__XCollectionLiteral__Alternatives : ( ( ruleXSetLiteral ) | ( ruleXListLiteral ) );
     public final void rule__XCollectionLiteral__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:3111:1: ( ( ruleXSetLiteral ) | ( ruleXListLiteral ) )
-            int alt28=2;
-            int LA28_0 = input.LA(1);
+            // InternalSignalDSL.g:3173:1: ( ( ruleXSetLiteral ) | ( ruleXListLiteral ) )
+            int alt29=2;
+            int LA29_0 = input.LA(1);
 
-            if ( (LA28_0==80) ) {
-                int LA28_1 = input.LA(2);
+            if ( (LA29_0==78) ) {
+                int LA29_1 = input.LA(2);
 
-                if ( (LA28_1==68) ) {
-                    alt28=1;
+                if ( (LA29_1==64) ) {
+                    alt29=1;
                 }
-                else if ( (LA28_1==81) ) {
-                    alt28=2;
+                else if ( (LA29_1==79) ) {
+                    alt29=2;
                 }
                 else {
                     if (state.backtracking>0) {state.failed=true; return ;}
                     NoViableAltException nvae =
-                        new NoViableAltException("", 28, 1, input);
+                        new NoViableAltException("", 29, 1, input);
 
                     throw nvae;
                 }
@@ -11282,16 +11504,16 @@
             else {
                 if (state.backtracking>0) {state.failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 28, 0, input);
+                    new NoViableAltException("", 29, 0, input);
 
                 throw nvae;
             }
-            switch (alt28) {
+            switch (alt29) {
                 case 1 :
-                    // InternalSignalDSL.g:3112:2: ( ruleXSetLiteral )
+                    // InternalSignalDSL.g:3174:2: ( ruleXSetLiteral )
                     {
-                    // InternalSignalDSL.g:3112:2: ( ruleXSetLiteral )
-                    // InternalSignalDSL.g:3113:3: ruleXSetLiteral
+                    // InternalSignalDSL.g:3174:2: ( ruleXSetLiteral )
+                    // InternalSignalDSL.g:3175:3: ruleXSetLiteral
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXCollectionLiteralAccess().getXSetLiteralParserRuleCall_0()); 
@@ -11311,10 +11533,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:3118:2: ( ruleXListLiteral )
+                    // InternalSignalDSL.g:3180:2: ( ruleXListLiteral )
                     {
-                    // InternalSignalDSL.g:3118:2: ( ruleXListLiteral )
-                    // InternalSignalDSL.g:3119:3: ruleXListLiteral
+                    // InternalSignalDSL.g:3180:2: ( ruleXListLiteral )
+                    // InternalSignalDSL.g:3181:3: ruleXListLiteral
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXCollectionLiteralAccess().getXListLiteralParserRuleCall_1()); 
@@ -11351,27 +11573,27 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Alternatives_2"
-    // InternalSignalDSL.g:3128:1: rule__XSwitchExpression__Alternatives_2 : ( ( ( rule__XSwitchExpression__Group_2_0__0 ) ) | ( ( rule__XSwitchExpression__Group_2_1__0 ) ) );
+    // InternalSignalDSL.g:3190: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:3132:1: ( ( ( rule__XSwitchExpression__Group_2_0__0 ) ) | ( ( rule__XSwitchExpression__Group_2_1__0 ) ) )
-            int alt29=2;
-            alt29 = dfa29.predict(input);
-            switch (alt29) {
+            // InternalSignalDSL.g:3194:1: ( ( ( rule__XSwitchExpression__Group_2_0__0 ) ) | ( ( rule__XSwitchExpression__Group_2_1__0 ) ) )
+            int alt30=2;
+            alt30 = dfa30.predict(input);
+            switch (alt30) {
                 case 1 :
-                    // InternalSignalDSL.g:3133:2: ( ( rule__XSwitchExpression__Group_2_0__0 ) )
+                    // InternalSignalDSL.g:3195:2: ( ( rule__XSwitchExpression__Group_2_0__0 ) )
                     {
-                    // InternalSignalDSL.g:3133:2: ( ( rule__XSwitchExpression__Group_2_0__0 ) )
-                    // InternalSignalDSL.g:3134:3: ( rule__XSwitchExpression__Group_2_0__0 )
+                    // InternalSignalDSL.g:3195:2: ( ( rule__XSwitchExpression__Group_2_0__0 ) )
+                    // InternalSignalDSL.g:3196:3: ( rule__XSwitchExpression__Group_2_0__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXSwitchExpressionAccess().getGroup_2_0()); 
                     }
-                    // InternalSignalDSL.g:3135:3: ( rule__XSwitchExpression__Group_2_0__0 )
-                    // InternalSignalDSL.g:3135:4: rule__XSwitchExpression__Group_2_0__0
+                    // InternalSignalDSL.g:3197:3: ( rule__XSwitchExpression__Group_2_0__0 )
+                    // InternalSignalDSL.g:3197:4: rule__XSwitchExpression__Group_2_0__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XSwitchExpression__Group_2_0__0();
@@ -11391,16 +11613,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:3139:2: ( ( rule__XSwitchExpression__Group_2_1__0 ) )
+                    // InternalSignalDSL.g:3201:2: ( ( rule__XSwitchExpression__Group_2_1__0 ) )
                     {
-                    // InternalSignalDSL.g:3139:2: ( ( rule__XSwitchExpression__Group_2_1__0 ) )
-                    // InternalSignalDSL.g:3140:3: ( rule__XSwitchExpression__Group_2_1__0 )
+                    // InternalSignalDSL.g:3201:2: ( ( rule__XSwitchExpression__Group_2_1__0 ) )
+                    // InternalSignalDSL.g:3202:3: ( rule__XSwitchExpression__Group_2_1__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXSwitchExpressionAccess().getGroup_2_1()); 
                     }
-                    // InternalSignalDSL.g:3141:3: ( rule__XSwitchExpression__Group_2_1__0 )
-                    // InternalSignalDSL.g:3141:4: rule__XSwitchExpression__Group_2_1__0
+                    // InternalSignalDSL.g:3203:3: ( rule__XSwitchExpression__Group_2_1__0 )
+                    // InternalSignalDSL.g:3203:4: rule__XSwitchExpression__Group_2_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XSwitchExpression__Group_2_1__0();
@@ -11437,41 +11659,41 @@
 
 
     // $ANTLR start "rule__XCasePart__Alternatives_3"
-    // InternalSignalDSL.g:3149:1: rule__XCasePart__Alternatives_3 : ( ( ( rule__XCasePart__Group_3_0__0 ) ) | ( ( rule__XCasePart__FallThroughAssignment_3_1 ) ) );
+    // InternalSignalDSL.g:3211: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:3153:1: ( ( ( rule__XCasePart__Group_3_0__0 ) ) | ( ( rule__XCasePart__FallThroughAssignment_3_1 ) ) )
-            int alt30=2;
-            int LA30_0 = input.LA(1);
+            // InternalSignalDSL.g:3215:1: ( ( ( rule__XCasePart__Group_3_0__0 ) ) | ( ( rule__XCasePart__FallThroughAssignment_3_1 ) ) )
+            int alt31=2;
+            int LA31_0 = input.LA(1);
 
-            if ( (LA30_0==87) ) {
-                alt30=1;
+            if ( (LA31_0==85) ) {
+                alt31=1;
             }
-            else if ( (LA30_0==78) ) {
-                alt30=2;
+            else if ( (LA31_0==76) ) {
+                alt31=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 30, 0, input);
+                    new NoViableAltException("", 31, 0, input);
 
                 throw nvae;
             }
-            switch (alt30) {
+            switch (alt31) {
                 case 1 :
-                    // InternalSignalDSL.g:3154:2: ( ( rule__XCasePart__Group_3_0__0 ) )
+                    // InternalSignalDSL.g:3216:2: ( ( rule__XCasePart__Group_3_0__0 ) )
                     {
-                    // InternalSignalDSL.g:3154:2: ( ( rule__XCasePart__Group_3_0__0 ) )
-                    // InternalSignalDSL.g:3155:3: ( rule__XCasePart__Group_3_0__0 )
+                    // InternalSignalDSL.g:3216:2: ( ( rule__XCasePart__Group_3_0__0 ) )
+                    // InternalSignalDSL.g:3217:3: ( rule__XCasePart__Group_3_0__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXCasePartAccess().getGroup_3_0()); 
                     }
-                    // InternalSignalDSL.g:3156:3: ( rule__XCasePart__Group_3_0__0 )
-                    // InternalSignalDSL.g:3156:4: rule__XCasePart__Group_3_0__0
+                    // InternalSignalDSL.g:3218:3: ( rule__XCasePart__Group_3_0__0 )
+                    // InternalSignalDSL.g:3218:4: rule__XCasePart__Group_3_0__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XCasePart__Group_3_0__0();
@@ -11491,16 +11713,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:3160:2: ( ( rule__XCasePart__FallThroughAssignment_3_1 ) )
+                    // InternalSignalDSL.g:3222:2: ( ( rule__XCasePart__FallThroughAssignment_3_1 ) )
                     {
-                    // InternalSignalDSL.g:3160:2: ( ( rule__XCasePart__FallThroughAssignment_3_1 ) )
-                    // InternalSignalDSL.g:3161:3: ( rule__XCasePart__FallThroughAssignment_3_1 )
+                    // InternalSignalDSL.g:3222:2: ( ( rule__XCasePart__FallThroughAssignment_3_1 ) )
+                    // InternalSignalDSL.g:3223:3: ( rule__XCasePart__FallThroughAssignment_3_1 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXCasePartAccess().getFallThroughAssignment_3_1()); 
                     }
-                    // InternalSignalDSL.g:3162:3: ( rule__XCasePart__FallThroughAssignment_3_1 )
-                    // InternalSignalDSL.g:3162:4: rule__XCasePart__FallThroughAssignment_3_1
+                    // InternalSignalDSL.g:3224:3: ( rule__XCasePart__FallThroughAssignment_3_1 )
+                    // InternalSignalDSL.g:3224:4: rule__XCasePart__FallThroughAssignment_3_1
                     {
                     pushFollow(FOLLOW_2);
                     rule__XCasePart__FallThroughAssignment_3_1();
@@ -11537,35 +11759,35 @@
 
 
     // $ANTLR start "rule__XExpressionOrVarDeclaration__Alternatives"
-    // InternalSignalDSL.g:3170:1: rule__XExpressionOrVarDeclaration__Alternatives : ( ( ruleXVariableDeclaration ) | ( ruleXExpression ) );
+    // InternalSignalDSL.g:3232:1: rule__XExpressionOrVarDeclaration__Alternatives : ( ( ruleXVariableDeclaration ) | ( ruleXExpression ) );
     public final void rule__XExpressionOrVarDeclaration__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:3174:1: ( ( ruleXVariableDeclaration ) | ( ruleXExpression ) )
-            int alt31=2;
-            int LA31_0 = input.LA(1);
+            // InternalSignalDSL.g:3236:1: ( ( ruleXVariableDeclaration ) | ( ruleXExpression ) )
+            int alt32=2;
+            int LA32_0 = input.LA(1);
 
-            if ( (LA31_0==44||LA31_0==107) ) {
-                alt31=1;
+            if ( (LA32_0==44||LA32_0==105) ) {
+                alt32=1;
             }
-            else if ( ((LA31_0>=RULE_ID && LA31_0<=RULE_STRING)||LA31_0==27||(LA31_0>=34 && LA31_0<=35)||LA31_0==40||(LA31_0>=45 && LA31_0<=50)||LA31_0==68||LA31_0==72||LA31_0==76||(LA31_0>=80 && LA31_0<=81)||LA31_0==84||LA31_0==86||(LA31_0>=90 && LA31_0<=97)||LA31_0==99||LA31_0==108) ) {
-                alt31=2;
+            else if ( ((LA32_0>=RULE_ID && LA32_0<=RULE_STRING)||LA32_0==27||(LA32_0>=34 && LA32_0<=35)||LA32_0==40||(LA32_0>=45 && LA32_0<=50)||LA32_0==64||LA32_0==68||LA32_0==74||(LA32_0>=78 && LA32_0<=79)||LA32_0==82||LA32_0==84||(LA32_0>=88 && LA32_0<=95)||LA32_0==97||LA32_0==106) ) {
+                alt32=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 31, 0, input);
+                    new NoViableAltException("", 32, 0, input);
 
                 throw nvae;
             }
-            switch (alt31) {
+            switch (alt32) {
                 case 1 :
-                    // InternalSignalDSL.g:3175:2: ( ruleXVariableDeclaration )
+                    // InternalSignalDSL.g:3237:2: ( ruleXVariableDeclaration )
                     {
-                    // InternalSignalDSL.g:3175:2: ( ruleXVariableDeclaration )
-                    // InternalSignalDSL.g:3176:3: ruleXVariableDeclaration
+                    // InternalSignalDSL.g:3237:2: ( ruleXVariableDeclaration )
+                    // InternalSignalDSL.g:3238:3: ruleXVariableDeclaration
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXExpressionOrVarDeclarationAccess().getXVariableDeclarationParserRuleCall_0()); 
@@ -11585,10 +11807,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:3181:2: ( ruleXExpression )
+                    // InternalSignalDSL.g:3243:2: ( ruleXExpression )
                     {
-                    // InternalSignalDSL.g:3181:2: ( ruleXExpression )
-                    // InternalSignalDSL.g:3182:3: ruleXExpression
+                    // InternalSignalDSL.g:3243:2: ( ruleXExpression )
+                    // InternalSignalDSL.g:3244:3: ruleXExpression
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXExpressionOrVarDeclarationAccess().getXExpressionParserRuleCall_1()); 
@@ -11625,41 +11847,41 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__Alternatives_1"
-    // InternalSignalDSL.g:3191:1: rule__XVariableDeclaration__Alternatives_1 : ( ( ( rule__XVariableDeclaration__WriteableAssignment_1_0 ) ) | ( 'val' ) );
+    // InternalSignalDSL.g:3253: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:3195:1: ( ( ( rule__XVariableDeclaration__WriteableAssignment_1_0 ) ) | ( 'val' ) )
-            int alt32=2;
-            int LA32_0 = input.LA(1);
+            // InternalSignalDSL.g:3257:1: ( ( ( rule__XVariableDeclaration__WriteableAssignment_1_0 ) ) | ( 'val' ) )
+            int alt33=2;
+            int LA33_0 = input.LA(1);
 
-            if ( (LA32_0==107) ) {
-                alt32=1;
+            if ( (LA33_0==105) ) {
+                alt33=1;
             }
-            else if ( (LA32_0==44) ) {
-                alt32=2;
+            else if ( (LA33_0==44) ) {
+                alt33=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 32, 0, input);
+                    new NoViableAltException("", 33, 0, input);
 
                 throw nvae;
             }
-            switch (alt32) {
+            switch (alt33) {
                 case 1 :
-                    // InternalSignalDSL.g:3196:2: ( ( rule__XVariableDeclaration__WriteableAssignment_1_0 ) )
+                    // InternalSignalDSL.g:3258:2: ( ( rule__XVariableDeclaration__WriteableAssignment_1_0 ) )
                     {
-                    // InternalSignalDSL.g:3196:2: ( ( rule__XVariableDeclaration__WriteableAssignment_1_0 ) )
-                    // InternalSignalDSL.g:3197:3: ( rule__XVariableDeclaration__WriteableAssignment_1_0 )
+                    // InternalSignalDSL.g:3258:2: ( ( rule__XVariableDeclaration__WriteableAssignment_1_0 ) )
+                    // InternalSignalDSL.g:3259:3: ( rule__XVariableDeclaration__WriteableAssignment_1_0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXVariableDeclarationAccess().getWriteableAssignment_1_0()); 
                     }
-                    // InternalSignalDSL.g:3198:3: ( rule__XVariableDeclaration__WriteableAssignment_1_0 )
-                    // InternalSignalDSL.g:3198:4: rule__XVariableDeclaration__WriteableAssignment_1_0
+                    // InternalSignalDSL.g:3260:3: ( rule__XVariableDeclaration__WriteableAssignment_1_0 )
+                    // InternalSignalDSL.g:3260:4: rule__XVariableDeclaration__WriteableAssignment_1_0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XVariableDeclaration__WriteableAssignment_1_0();
@@ -11679,10 +11901,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:3202:2: ( 'val' )
+                    // InternalSignalDSL.g:3264:2: ( 'val' )
                     {
-                    // InternalSignalDSL.g:3202:2: ( 'val' )
-                    // InternalSignalDSL.g:3203:3: 'val'
+                    // InternalSignalDSL.g:3264:2: ( 'val' )
+                    // InternalSignalDSL.g:3265:3: 'val'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXVariableDeclarationAccess().getValKeyword_1_1()); 
@@ -11715,55 +11937,55 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__Alternatives_2"
-    // InternalSignalDSL.g:3212:1: rule__XVariableDeclaration__Alternatives_2 : ( ( ( rule__XVariableDeclaration__Group_2_0__0 ) ) | ( ( rule__XVariableDeclaration__NameAssignment_2_1 ) ) );
+    // InternalSignalDSL.g:3274: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:3216:1: ( ( ( rule__XVariableDeclaration__Group_2_0__0 ) ) | ( ( rule__XVariableDeclaration__NameAssignment_2_1 ) ) )
-            int alt33=2;
-            int LA33_0 = input.LA(1);
+            // InternalSignalDSL.g:3278:1: ( ( ( rule__XVariableDeclaration__Group_2_0__0 ) ) | ( ( rule__XVariableDeclaration__NameAssignment_2_1 ) ) )
+            int alt34=2;
+            int LA34_0 = input.LA(1);
 
-            if ( (LA33_0==RULE_ID) ) {
-                int LA33_1 = input.LA(2);
+            if ( (LA34_0==RULE_ID) ) {
+                int LA34_1 = input.LA(2);
 
-                if ( (synpred74_InternalSignalDSL()) ) {
-                    alt33=1;
+                if ( (synpred75_InternalSignalDSL()) ) {
+                    alt34=1;
                 }
                 else if ( (true) ) {
-                    alt33=2;
+                    alt34=2;
                 }
                 else {
                     if (state.backtracking>0) {state.failed=true; return ;}
                     NoViableAltException nvae =
-                        new NoViableAltException("", 33, 1, input);
+                        new NoViableAltException("", 34, 1, input);
 
                     throw nvae;
                 }
             }
-            else if ( (LA33_0==31||LA33_0==76) ) {
-                alt33=1;
+            else if ( (LA34_0==31||LA34_0==74) ) {
+                alt34=1;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 33, 0, input);
+                    new NoViableAltException("", 34, 0, input);
 
                 throw nvae;
             }
-            switch (alt33) {
+            switch (alt34) {
                 case 1 :
-                    // InternalSignalDSL.g:3217:2: ( ( rule__XVariableDeclaration__Group_2_0__0 ) )
+                    // InternalSignalDSL.g:3279:2: ( ( rule__XVariableDeclaration__Group_2_0__0 ) )
                     {
-                    // InternalSignalDSL.g:3217:2: ( ( rule__XVariableDeclaration__Group_2_0__0 ) )
-                    // InternalSignalDSL.g:3218:3: ( rule__XVariableDeclaration__Group_2_0__0 )
+                    // InternalSignalDSL.g:3279:2: ( ( rule__XVariableDeclaration__Group_2_0__0 ) )
+                    // InternalSignalDSL.g:3280:3: ( rule__XVariableDeclaration__Group_2_0__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXVariableDeclarationAccess().getGroup_2_0()); 
                     }
-                    // InternalSignalDSL.g:3219:3: ( rule__XVariableDeclaration__Group_2_0__0 )
-                    // InternalSignalDSL.g:3219:4: rule__XVariableDeclaration__Group_2_0__0
+                    // InternalSignalDSL.g:3281:3: ( rule__XVariableDeclaration__Group_2_0__0 )
+                    // InternalSignalDSL.g:3281:4: rule__XVariableDeclaration__Group_2_0__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XVariableDeclaration__Group_2_0__0();
@@ -11783,16 +12005,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:3223:2: ( ( rule__XVariableDeclaration__NameAssignment_2_1 ) )
+                    // InternalSignalDSL.g:3285:2: ( ( rule__XVariableDeclaration__NameAssignment_2_1 ) )
                     {
-                    // InternalSignalDSL.g:3223:2: ( ( rule__XVariableDeclaration__NameAssignment_2_1 ) )
-                    // InternalSignalDSL.g:3224:3: ( rule__XVariableDeclaration__NameAssignment_2_1 )
+                    // InternalSignalDSL.g:3285:2: ( ( rule__XVariableDeclaration__NameAssignment_2_1 ) )
+                    // InternalSignalDSL.g:3286:3: ( rule__XVariableDeclaration__NameAssignment_2_1 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXVariableDeclarationAccess().getNameAssignment_2_1()); 
                     }
-                    // InternalSignalDSL.g:3225:3: ( rule__XVariableDeclaration__NameAssignment_2_1 )
-                    // InternalSignalDSL.g:3225:4: rule__XVariableDeclaration__NameAssignment_2_1
+                    // InternalSignalDSL.g:3287:3: ( rule__XVariableDeclaration__NameAssignment_2_1 )
+                    // InternalSignalDSL.g:3287:4: rule__XVariableDeclaration__NameAssignment_2_1
                     {
                     pushFollow(FOLLOW_2);
                     rule__XVariableDeclaration__NameAssignment_2_1();
@@ -11829,27 +12051,27 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Alternatives_3_1"
-    // InternalSignalDSL.g:3233:1: rule__XFeatureCall__Alternatives_3_1 : ( ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 ) ) | ( ( rule__XFeatureCall__Group_3_1_1__0 ) ) );
+    // InternalSignalDSL.g:3295: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:3237:1: ( ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 ) ) | ( ( rule__XFeatureCall__Group_3_1_1__0 ) ) )
-            int alt34=2;
-            alt34 = dfa34.predict(input);
-            switch (alt34) {
+            // InternalSignalDSL.g:3299:1: ( ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 ) ) | ( ( rule__XFeatureCall__Group_3_1_1__0 ) ) )
+            int alt35=2;
+            alt35 = dfa35.predict(input);
+            switch (alt35) {
                 case 1 :
-                    // InternalSignalDSL.g:3238:2: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 ) )
+                    // InternalSignalDSL.g:3300:2: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 ) )
                     {
-                    // InternalSignalDSL.g:3238:2: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 ) )
-                    // InternalSignalDSL.g:3239:3: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 )
+                    // InternalSignalDSL.g:3300:2: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 ) )
+                    // InternalSignalDSL.g:3301:3: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsAssignment_3_1_0()); 
                     }
-                    // InternalSignalDSL.g:3240:3: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 )
-                    // InternalSignalDSL.g:3240:4: rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0
+                    // InternalSignalDSL.g:3302:3: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 )
+                    // InternalSignalDSL.g:3302:4: rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0();
@@ -11869,16 +12091,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:3244:2: ( ( rule__XFeatureCall__Group_3_1_1__0 ) )
+                    // InternalSignalDSL.g:3306:2: ( ( rule__XFeatureCall__Group_3_1_1__0 ) )
                     {
-                    // InternalSignalDSL.g:3244:2: ( ( rule__XFeatureCall__Group_3_1_1__0 ) )
-                    // InternalSignalDSL.g:3245:3: ( rule__XFeatureCall__Group_3_1_1__0 )
+                    // InternalSignalDSL.g:3306:2: ( ( rule__XFeatureCall__Group_3_1_1__0 ) )
+                    // InternalSignalDSL.g:3307:3: ( rule__XFeatureCall__Group_3_1_1__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXFeatureCallAccess().getGroup_3_1_1()); 
                     }
-                    // InternalSignalDSL.g:3246:3: ( rule__XFeatureCall__Group_3_1_1__0 )
-                    // InternalSignalDSL.g:3246:4: rule__XFeatureCall__Group_3_1_1__0
+                    // InternalSignalDSL.g:3308:3: ( rule__XFeatureCall__Group_3_1_1__0 )
+                    // InternalSignalDSL.g:3308:4: rule__XFeatureCall__Group_3_1_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XFeatureCall__Group_3_1_1__0();
@@ -11915,54 +12137,54 @@
 
 
     // $ANTLR start "rule__FeatureCallID__Alternatives"
-    // InternalSignalDSL.g:3254:1: rule__FeatureCallID__Alternatives : ( ( ruleValidID ) | ( 'extends' ) | ( 'static' ) | ( 'import' ) | ( 'extension' ) );
+    // InternalSignalDSL.g:3316:1: rule__FeatureCallID__Alternatives : ( ( ruleValidID ) | ( 'extends' ) | ( 'static' ) | ( 'import' ) | ( 'extension' ) );
     public final void rule__FeatureCallID__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:3258:1: ( ( ruleValidID ) | ( 'extends' ) | ( 'static' ) | ( 'import' ) | ( 'extension' ) )
-            int alt35=5;
+            // InternalSignalDSL.g:3320:1: ( ( ruleValidID ) | ( 'extends' ) | ( 'static' ) | ( 'import' ) | ( 'extension' ) )
+            int alt36=5;
             switch ( input.LA(1) ) {
             case RULE_ID:
                 {
-                alt35=1;
+                alt36=1;
                 }
                 break;
             case 45:
                 {
-                alt35=2;
+                alt36=2;
                 }
                 break;
             case 46:
                 {
-                alt35=3;
+                alt36=3;
                 }
                 break;
             case 47:
                 {
-                alt35=4;
+                alt36=4;
                 }
                 break;
             case 48:
                 {
-                alt35=5;
+                alt36=5;
                 }
                 break;
             default:
                 if (state.backtracking>0) {state.failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 35, 0, input);
+                    new NoViableAltException("", 36, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt35) {
+            switch (alt36) {
                 case 1 :
-                    // InternalSignalDSL.g:3259:2: ( ruleValidID )
+                    // InternalSignalDSL.g:3321:2: ( ruleValidID )
                     {
-                    // InternalSignalDSL.g:3259:2: ( ruleValidID )
-                    // InternalSignalDSL.g:3260:3: ruleValidID
+                    // InternalSignalDSL.g:3321:2: ( ruleValidID )
+                    // InternalSignalDSL.g:3322:3: ruleValidID
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getFeatureCallIDAccess().getValidIDParserRuleCall_0()); 
@@ -11982,10 +12204,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:3265:2: ( 'extends' )
+                    // InternalSignalDSL.g:3327:2: ( 'extends' )
                     {
-                    // InternalSignalDSL.g:3265:2: ( 'extends' )
-                    // InternalSignalDSL.g:3266:3: 'extends'
+                    // InternalSignalDSL.g:3327:2: ( 'extends' )
+                    // InternalSignalDSL.g:3328:3: 'extends'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getFeatureCallIDAccess().getExtendsKeyword_1()); 
@@ -12001,10 +12223,10 @@
                     }
                     break;
                 case 3 :
-                    // InternalSignalDSL.g:3271:2: ( 'static' )
+                    // InternalSignalDSL.g:3333:2: ( 'static' )
                     {
-                    // InternalSignalDSL.g:3271:2: ( 'static' )
-                    // InternalSignalDSL.g:3272:3: 'static'
+                    // InternalSignalDSL.g:3333:2: ( 'static' )
+                    // InternalSignalDSL.g:3334:3: 'static'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getFeatureCallIDAccess().getStaticKeyword_2()); 
@@ -12020,10 +12242,10 @@
                     }
                     break;
                 case 4 :
-                    // InternalSignalDSL.g:3277:2: ( 'import' )
+                    // InternalSignalDSL.g:3339:2: ( 'import' )
                     {
-                    // InternalSignalDSL.g:3277:2: ( 'import' )
-                    // InternalSignalDSL.g:3278:3: 'import'
+                    // InternalSignalDSL.g:3339:2: ( 'import' )
+                    // InternalSignalDSL.g:3340:3: 'import'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getFeatureCallIDAccess().getImportKeyword_3()); 
@@ -12039,10 +12261,10 @@
                     }
                     break;
                 case 5 :
-                    // InternalSignalDSL.g:3283:2: ( 'extension' )
+                    // InternalSignalDSL.g:3345:2: ( 'extension' )
                     {
-                    // InternalSignalDSL.g:3283:2: ( 'extension' )
-                    // InternalSignalDSL.g:3284:3: 'extension'
+                    // InternalSignalDSL.g:3345:2: ( 'extension' )
+                    // InternalSignalDSL.g:3346:3: 'extension'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getFeatureCallIDAccess().getExtensionKeyword_4()); 
@@ -12075,35 +12297,35 @@
 
 
     // $ANTLR start "rule__IdOrSuper__Alternatives"
-    // InternalSignalDSL.g:3293:1: rule__IdOrSuper__Alternatives : ( ( ruleFeatureCallID ) | ( 'super' ) );
+    // InternalSignalDSL.g:3355:1: rule__IdOrSuper__Alternatives : ( ( ruleFeatureCallID ) | ( 'super' ) );
     public final void rule__IdOrSuper__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:3297:1: ( ( ruleFeatureCallID ) | ( 'super' ) )
-            int alt36=2;
-            int LA36_0 = input.LA(1);
+            // InternalSignalDSL.g:3359:1: ( ( ruleFeatureCallID ) | ( 'super' ) )
+            int alt37=2;
+            int LA37_0 = input.LA(1);
 
-            if ( (LA36_0==RULE_ID||(LA36_0>=45 && LA36_0<=48)) ) {
-                alt36=1;
+            if ( (LA37_0==RULE_ID||(LA37_0>=45 && LA37_0<=48)) ) {
+                alt37=1;
             }
-            else if ( (LA36_0==49) ) {
-                alt36=2;
+            else if ( (LA37_0==49) ) {
+                alt37=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 36, 0, input);
+                    new NoViableAltException("", 37, 0, input);
 
                 throw nvae;
             }
-            switch (alt36) {
+            switch (alt37) {
                 case 1 :
-                    // InternalSignalDSL.g:3298:2: ( ruleFeatureCallID )
+                    // InternalSignalDSL.g:3360:2: ( ruleFeatureCallID )
                     {
-                    // InternalSignalDSL.g:3298:2: ( ruleFeatureCallID )
-                    // InternalSignalDSL.g:3299:3: ruleFeatureCallID
+                    // InternalSignalDSL.g:3360:2: ( ruleFeatureCallID )
+                    // InternalSignalDSL.g:3361:3: ruleFeatureCallID
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getIdOrSuperAccess().getFeatureCallIDParserRuleCall_0()); 
@@ -12123,10 +12345,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:3304:2: ( 'super' )
+                    // InternalSignalDSL.g:3366:2: ( 'super' )
                     {
-                    // InternalSignalDSL.g:3304:2: ( 'super' )
-                    // InternalSignalDSL.g:3305:3: 'super'
+                    // InternalSignalDSL.g:3366:2: ( 'super' )
+                    // InternalSignalDSL.g:3367:3: 'super'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getIdOrSuperAccess().getSuperKeyword_1()); 
@@ -12159,27 +12381,27 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Alternatives_4_1"
-    // InternalSignalDSL.g:3314:1: rule__XConstructorCall__Alternatives_4_1 : ( ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 ) ) | ( ( rule__XConstructorCall__Group_4_1_1__0 ) ) );
+    // InternalSignalDSL.g:3376: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:3318:1: ( ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 ) ) | ( ( rule__XConstructorCall__Group_4_1_1__0 ) ) )
-            int alt37=2;
-            alt37 = dfa37.predict(input);
-            switch (alt37) {
+            // InternalSignalDSL.g:3380:1: ( ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 ) ) | ( ( rule__XConstructorCall__Group_4_1_1__0 ) ) )
+            int alt38=2;
+            alt38 = dfa38.predict(input);
+            switch (alt38) {
                 case 1 :
-                    // InternalSignalDSL.g:3319:2: ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 ) )
+                    // InternalSignalDSL.g:3381:2: ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 ) )
                     {
-                    // InternalSignalDSL.g:3319:2: ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 ) )
-                    // InternalSignalDSL.g:3320:3: ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 )
+                    // InternalSignalDSL.g:3381:2: ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 ) )
+                    // InternalSignalDSL.g:3382:3: ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXConstructorCallAccess().getArgumentsAssignment_4_1_0()); 
                     }
-                    // InternalSignalDSL.g:3321:3: ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 )
-                    // InternalSignalDSL.g:3321:4: rule__XConstructorCall__ArgumentsAssignment_4_1_0
+                    // InternalSignalDSL.g:3383:3: ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 )
+                    // InternalSignalDSL.g:3383:4: rule__XConstructorCall__ArgumentsAssignment_4_1_0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XConstructorCall__ArgumentsAssignment_4_1_0();
@@ -12199,16 +12421,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:3325:2: ( ( rule__XConstructorCall__Group_4_1_1__0 ) )
+                    // InternalSignalDSL.g:3387:2: ( ( rule__XConstructorCall__Group_4_1_1__0 ) )
                     {
-                    // InternalSignalDSL.g:3325:2: ( ( rule__XConstructorCall__Group_4_1_1__0 ) )
-                    // InternalSignalDSL.g:3326:3: ( rule__XConstructorCall__Group_4_1_1__0 )
+                    // InternalSignalDSL.g:3387:2: ( ( rule__XConstructorCall__Group_4_1_1__0 ) )
+                    // InternalSignalDSL.g:3388:3: ( rule__XConstructorCall__Group_4_1_1__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXConstructorCallAccess().getGroup_4_1_1()); 
                     }
-                    // InternalSignalDSL.g:3327:3: ( rule__XConstructorCall__Group_4_1_1__0 )
-                    // InternalSignalDSL.g:3327:4: rule__XConstructorCall__Group_4_1_1__0
+                    // InternalSignalDSL.g:3389:3: ( rule__XConstructorCall__Group_4_1_1__0 )
+                    // InternalSignalDSL.g:3389:4: rule__XConstructorCall__Group_4_1_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XConstructorCall__Group_4_1_1__0();
@@ -12245,35 +12467,35 @@
 
 
     // $ANTLR start "rule__XBooleanLiteral__Alternatives_1"
-    // InternalSignalDSL.g:3335:1: rule__XBooleanLiteral__Alternatives_1 : ( ( 'false' ) | ( ( rule__XBooleanLiteral__IsTrueAssignment_1_1 ) ) );
+    // InternalSignalDSL.g:3397: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:3339:1: ( ( 'false' ) | ( ( rule__XBooleanLiteral__IsTrueAssignment_1_1 ) ) )
-            int alt38=2;
-            int LA38_0 = input.LA(1);
+            // InternalSignalDSL.g:3401:1: ( ( 'false' ) | ( ( rule__XBooleanLiteral__IsTrueAssignment_1_1 ) ) )
+            int alt39=2;
+            int LA39_0 = input.LA(1);
 
-            if ( (LA38_0==50) ) {
-                alt38=1;
+            if ( (LA39_0==50) ) {
+                alt39=1;
             }
-            else if ( (LA38_0==108) ) {
-                alt38=2;
+            else if ( (LA39_0==106) ) {
+                alt39=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 38, 0, input);
+                    new NoViableAltException("", 39, 0, input);
 
                 throw nvae;
             }
-            switch (alt38) {
+            switch (alt39) {
                 case 1 :
-                    // InternalSignalDSL.g:3340:2: ( 'false' )
+                    // InternalSignalDSL.g:3402:2: ( 'false' )
                     {
-                    // InternalSignalDSL.g:3340:2: ( 'false' )
-                    // InternalSignalDSL.g:3341:3: 'false'
+                    // InternalSignalDSL.g:3402:2: ( 'false' )
+                    // InternalSignalDSL.g:3403:3: 'false'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXBooleanLiteralAccess().getFalseKeyword_1_0()); 
@@ -12289,16 +12511,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:3346:2: ( ( rule__XBooleanLiteral__IsTrueAssignment_1_1 ) )
+                    // InternalSignalDSL.g:3408:2: ( ( rule__XBooleanLiteral__IsTrueAssignment_1_1 ) )
                     {
-                    // InternalSignalDSL.g:3346:2: ( ( rule__XBooleanLiteral__IsTrueAssignment_1_1 ) )
-                    // InternalSignalDSL.g:3347:3: ( rule__XBooleanLiteral__IsTrueAssignment_1_1 )
+                    // InternalSignalDSL.g:3408:2: ( ( rule__XBooleanLiteral__IsTrueAssignment_1_1 ) )
+                    // InternalSignalDSL.g:3409:3: ( rule__XBooleanLiteral__IsTrueAssignment_1_1 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXBooleanLiteralAccess().getIsTrueAssignment_1_1()); 
                     }
-                    // InternalSignalDSL.g:3348:3: ( rule__XBooleanLiteral__IsTrueAssignment_1_1 )
-                    // InternalSignalDSL.g:3348:4: rule__XBooleanLiteral__IsTrueAssignment_1_1
+                    // InternalSignalDSL.g:3410:3: ( rule__XBooleanLiteral__IsTrueAssignment_1_1 )
+                    // InternalSignalDSL.g:3410:4: rule__XBooleanLiteral__IsTrueAssignment_1_1
                     {
                     pushFollow(FOLLOW_2);
                     rule__XBooleanLiteral__IsTrueAssignment_1_1();
@@ -12335,41 +12557,41 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__Alternatives_3"
-    // InternalSignalDSL.g:3356:1: rule__XTryCatchFinallyExpression__Alternatives_3 : ( ( ( rule__XTryCatchFinallyExpression__Group_3_0__0 ) ) | ( ( rule__XTryCatchFinallyExpression__Group_3_1__0 ) ) );
+    // InternalSignalDSL.g:3418: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:3360:1: ( ( ( rule__XTryCatchFinallyExpression__Group_3_0__0 ) ) | ( ( rule__XTryCatchFinallyExpression__Group_3_1__0 ) ) )
-            int alt39=2;
-            int LA39_0 = input.LA(1);
+            // InternalSignalDSL.g:3422:1: ( ( ( rule__XTryCatchFinallyExpression__Group_3_0__0 ) ) | ( ( rule__XTryCatchFinallyExpression__Group_3_1__0 ) ) )
+            int alt40=2;
+            int LA40_0 = input.LA(1);
 
-            if ( (LA39_0==100) ) {
-                alt39=1;
+            if ( (LA40_0==98) ) {
+                alt40=1;
             }
-            else if ( (LA39_0==98) ) {
-                alt39=2;
+            else if ( (LA40_0==96) ) {
+                alt40=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 39, 0, input);
+                    new NoViableAltException("", 40, 0, input);
 
                 throw nvae;
             }
-            switch (alt39) {
+            switch (alt40) {
                 case 1 :
-                    // InternalSignalDSL.g:3361:2: ( ( rule__XTryCatchFinallyExpression__Group_3_0__0 ) )
+                    // InternalSignalDSL.g:3423:2: ( ( rule__XTryCatchFinallyExpression__Group_3_0__0 ) )
                     {
-                    // InternalSignalDSL.g:3361:2: ( ( rule__XTryCatchFinallyExpression__Group_3_0__0 ) )
-                    // InternalSignalDSL.g:3362:3: ( rule__XTryCatchFinallyExpression__Group_3_0__0 )
+                    // InternalSignalDSL.g:3423:2: ( ( rule__XTryCatchFinallyExpression__Group_3_0__0 ) )
+                    // InternalSignalDSL.g:3424:3: ( rule__XTryCatchFinallyExpression__Group_3_0__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXTryCatchFinallyExpressionAccess().getGroup_3_0()); 
                     }
-                    // InternalSignalDSL.g:3363:3: ( rule__XTryCatchFinallyExpression__Group_3_0__0 )
-                    // InternalSignalDSL.g:3363:4: rule__XTryCatchFinallyExpression__Group_3_0__0
+                    // InternalSignalDSL.g:3425:3: ( rule__XTryCatchFinallyExpression__Group_3_0__0 )
+                    // InternalSignalDSL.g:3425:4: rule__XTryCatchFinallyExpression__Group_3_0__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XTryCatchFinallyExpression__Group_3_0__0();
@@ -12389,16 +12611,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:3367:2: ( ( rule__XTryCatchFinallyExpression__Group_3_1__0 ) )
+                    // InternalSignalDSL.g:3429:2: ( ( rule__XTryCatchFinallyExpression__Group_3_1__0 ) )
                     {
-                    // InternalSignalDSL.g:3367:2: ( ( rule__XTryCatchFinallyExpression__Group_3_1__0 ) )
-                    // InternalSignalDSL.g:3368:3: ( rule__XTryCatchFinallyExpression__Group_3_1__0 )
+                    // InternalSignalDSL.g:3429:2: ( ( rule__XTryCatchFinallyExpression__Group_3_1__0 ) )
+                    // InternalSignalDSL.g:3430:3: ( rule__XTryCatchFinallyExpression__Group_3_1__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXTryCatchFinallyExpressionAccess().getGroup_3_1()); 
                     }
-                    // InternalSignalDSL.g:3369:3: ( rule__XTryCatchFinallyExpression__Group_3_1__0 )
-                    // InternalSignalDSL.g:3369:4: rule__XTryCatchFinallyExpression__Group_3_1__0
+                    // InternalSignalDSL.g:3431:3: ( rule__XTryCatchFinallyExpression__Group_3_1__0 )
+                    // InternalSignalDSL.g:3431:4: rule__XTryCatchFinallyExpression__Group_3_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XTryCatchFinallyExpression__Group_3_1__0();
@@ -12435,35 +12657,35 @@
 
 
     // $ANTLR start "rule__Number__Alternatives"
-    // InternalSignalDSL.g:3377:1: rule__Number__Alternatives : ( ( RULE_HEX ) | ( ( rule__Number__Group_1__0 ) ) );
+    // InternalSignalDSL.g:3439: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:3381:1: ( ( RULE_HEX ) | ( ( rule__Number__Group_1__0 ) ) )
-            int alt40=2;
-            int LA40_0 = input.LA(1);
+            // InternalSignalDSL.g:3443:1: ( ( RULE_HEX ) | ( ( rule__Number__Group_1__0 ) ) )
+            int alt41=2;
+            int LA41_0 = input.LA(1);
 
-            if ( (LA40_0==RULE_HEX) ) {
-                alt40=1;
+            if ( (LA41_0==RULE_HEX) ) {
+                alt41=1;
             }
-            else if ( ((LA40_0>=RULE_INT && LA40_0<=RULE_DECIMAL)) ) {
-                alt40=2;
+            else if ( ((LA41_0>=RULE_INT && LA41_0<=RULE_DECIMAL)) ) {
+                alt41=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 40, 0, input);
+                    new NoViableAltException("", 41, 0, input);
 
                 throw nvae;
             }
-            switch (alt40) {
+            switch (alt41) {
                 case 1 :
-                    // InternalSignalDSL.g:3382:2: ( RULE_HEX )
+                    // InternalSignalDSL.g:3444:2: ( RULE_HEX )
                     {
-                    // InternalSignalDSL.g:3382:2: ( RULE_HEX )
-                    // InternalSignalDSL.g:3383:3: RULE_HEX
+                    // InternalSignalDSL.g:3444:2: ( RULE_HEX )
+                    // InternalSignalDSL.g:3445:3: RULE_HEX
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getNumberAccess().getHEXTerminalRuleCall_0()); 
@@ -12479,16 +12701,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:3388:2: ( ( rule__Number__Group_1__0 ) )
+                    // InternalSignalDSL.g:3450:2: ( ( rule__Number__Group_1__0 ) )
                     {
-                    // InternalSignalDSL.g:3388:2: ( ( rule__Number__Group_1__0 ) )
-                    // InternalSignalDSL.g:3389:3: ( rule__Number__Group_1__0 )
+                    // InternalSignalDSL.g:3450:2: ( ( rule__Number__Group_1__0 ) )
+                    // InternalSignalDSL.g:3451:3: ( rule__Number__Group_1__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getNumberAccess().getGroup_1()); 
                     }
-                    // InternalSignalDSL.g:3390:3: ( rule__Number__Group_1__0 )
-                    // InternalSignalDSL.g:3390:4: rule__Number__Group_1__0
+                    // InternalSignalDSL.g:3452:3: ( rule__Number__Group_1__0 )
+                    // InternalSignalDSL.g:3452:4: rule__Number__Group_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__Number__Group_1__0();
@@ -12525,35 +12747,35 @@
 
 
     // $ANTLR start "rule__Number__Alternatives_1_0"
-    // InternalSignalDSL.g:3398:1: rule__Number__Alternatives_1_0 : ( ( RULE_INT ) | ( RULE_DECIMAL ) );
+    // InternalSignalDSL.g:3460: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:3402:1: ( ( RULE_INT ) | ( RULE_DECIMAL ) )
-            int alt41=2;
-            int LA41_0 = input.LA(1);
+            // InternalSignalDSL.g:3464:1: ( ( RULE_INT ) | ( RULE_DECIMAL ) )
+            int alt42=2;
+            int LA42_0 = input.LA(1);
 
-            if ( (LA41_0==RULE_INT) ) {
-                alt41=1;
+            if ( (LA42_0==RULE_INT) ) {
+                alt42=1;
             }
-            else if ( (LA41_0==RULE_DECIMAL) ) {
-                alt41=2;
+            else if ( (LA42_0==RULE_DECIMAL) ) {
+                alt42=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 41, 0, input);
+                    new NoViableAltException("", 42, 0, input);
 
                 throw nvae;
             }
-            switch (alt41) {
+            switch (alt42) {
                 case 1 :
-                    // InternalSignalDSL.g:3403:2: ( RULE_INT )
+                    // InternalSignalDSL.g:3465:2: ( RULE_INT )
                     {
-                    // InternalSignalDSL.g:3403:2: ( RULE_INT )
-                    // InternalSignalDSL.g:3404:3: RULE_INT
+                    // InternalSignalDSL.g:3465:2: ( RULE_INT )
+                    // InternalSignalDSL.g:3466:3: RULE_INT
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getNumberAccess().getINTTerminalRuleCall_1_0_0()); 
@@ -12569,10 +12791,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:3409:2: ( RULE_DECIMAL )
+                    // InternalSignalDSL.g:3471:2: ( RULE_DECIMAL )
                     {
-                    // InternalSignalDSL.g:3409:2: ( RULE_DECIMAL )
-                    // InternalSignalDSL.g:3410:3: RULE_DECIMAL
+                    // InternalSignalDSL.g:3471:2: ( RULE_DECIMAL )
+                    // InternalSignalDSL.g:3472:3: RULE_DECIMAL
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getNumberAccess().getDECIMALTerminalRuleCall_1_0_1()); 
@@ -12605,35 +12827,35 @@
 
 
     // $ANTLR start "rule__Number__Alternatives_1_1_1"
-    // InternalSignalDSL.g:3419:1: rule__Number__Alternatives_1_1_1 : ( ( RULE_INT ) | ( RULE_DECIMAL ) );
+    // InternalSignalDSL.g:3481: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:3423:1: ( ( RULE_INT ) | ( RULE_DECIMAL ) )
-            int alt42=2;
-            int LA42_0 = input.LA(1);
+            // InternalSignalDSL.g:3485:1: ( ( RULE_INT ) | ( RULE_DECIMAL ) )
+            int alt43=2;
+            int LA43_0 = input.LA(1);
 
-            if ( (LA42_0==RULE_INT) ) {
-                alt42=1;
+            if ( (LA43_0==RULE_INT) ) {
+                alt43=1;
             }
-            else if ( (LA42_0==RULE_DECIMAL) ) {
-                alt42=2;
+            else if ( (LA43_0==RULE_DECIMAL) ) {
+                alt43=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 42, 0, input);
+                    new NoViableAltException("", 43, 0, input);
 
                 throw nvae;
             }
-            switch (alt42) {
+            switch (alt43) {
                 case 1 :
-                    // InternalSignalDSL.g:3424:2: ( RULE_INT )
+                    // InternalSignalDSL.g:3486:2: ( RULE_INT )
                     {
-                    // InternalSignalDSL.g:3424:2: ( RULE_INT )
-                    // InternalSignalDSL.g:3425:3: RULE_INT
+                    // InternalSignalDSL.g:3486:2: ( RULE_INT )
+                    // InternalSignalDSL.g:3487:3: RULE_INT
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getNumberAccess().getINTTerminalRuleCall_1_1_1_0()); 
@@ -12649,10 +12871,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:3430:2: ( RULE_DECIMAL )
+                    // InternalSignalDSL.g:3492:2: ( RULE_DECIMAL )
                     {
-                    // InternalSignalDSL.g:3430:2: ( RULE_DECIMAL )
-                    // InternalSignalDSL.g:3431:3: RULE_DECIMAL
+                    // InternalSignalDSL.g:3492:2: ( RULE_DECIMAL )
+                    // InternalSignalDSL.g:3493:3: RULE_DECIMAL
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getNumberAccess().getDECIMALTerminalRuleCall_1_1_1_1()); 
@@ -12685,41 +12907,41 @@
 
 
     // $ANTLR start "rule__JvmTypeReference__Alternatives"
-    // InternalSignalDSL.g:3440:1: rule__JvmTypeReference__Alternatives : ( ( ( rule__JvmTypeReference__Group_0__0 ) ) | ( ruleXFunctionTypeRef ) );
+    // InternalSignalDSL.g:3502:1: rule__JvmTypeReference__Alternatives : ( ( ( rule__JvmTypeReference__Group_0__0 ) ) | ( ruleXFunctionTypeRef ) );
     public final void rule__JvmTypeReference__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:3444:1: ( ( ( rule__JvmTypeReference__Group_0__0 ) ) | ( ruleXFunctionTypeRef ) )
-            int alt43=2;
-            int LA43_0 = input.LA(1);
+            // InternalSignalDSL.g:3506:1: ( ( ( rule__JvmTypeReference__Group_0__0 ) ) | ( ruleXFunctionTypeRef ) )
+            int alt44=2;
+            int LA44_0 = input.LA(1);
 
-            if ( (LA43_0==RULE_ID) ) {
-                alt43=1;
+            if ( (LA44_0==RULE_ID) ) {
+                alt44=1;
             }
-            else if ( (LA43_0==31||LA43_0==76) ) {
-                alt43=2;
+            else if ( (LA44_0==31||LA44_0==74) ) {
+                alt44=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 43, 0, input);
+                    new NoViableAltException("", 44, 0, input);
 
                 throw nvae;
             }
-            switch (alt43) {
+            switch (alt44) {
                 case 1 :
-                    // InternalSignalDSL.g:3445:2: ( ( rule__JvmTypeReference__Group_0__0 ) )
+                    // InternalSignalDSL.g:3507:2: ( ( rule__JvmTypeReference__Group_0__0 ) )
                     {
-                    // InternalSignalDSL.g:3445:2: ( ( rule__JvmTypeReference__Group_0__0 ) )
-                    // InternalSignalDSL.g:3446:3: ( rule__JvmTypeReference__Group_0__0 )
+                    // InternalSignalDSL.g:3507:2: ( ( rule__JvmTypeReference__Group_0__0 ) )
+                    // InternalSignalDSL.g:3508:3: ( rule__JvmTypeReference__Group_0__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getJvmTypeReferenceAccess().getGroup_0()); 
                     }
-                    // InternalSignalDSL.g:3447:3: ( rule__JvmTypeReference__Group_0__0 )
-                    // InternalSignalDSL.g:3447:4: rule__JvmTypeReference__Group_0__0
+                    // InternalSignalDSL.g:3509:3: ( rule__JvmTypeReference__Group_0__0 )
+                    // InternalSignalDSL.g:3509:4: rule__JvmTypeReference__Group_0__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__JvmTypeReference__Group_0__0();
@@ -12739,10 +12961,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:3451:2: ( ruleXFunctionTypeRef )
+                    // InternalSignalDSL.g:3513:2: ( ruleXFunctionTypeRef )
                     {
-                    // InternalSignalDSL.g:3451:2: ( ruleXFunctionTypeRef )
-                    // InternalSignalDSL.g:3452:3: ruleXFunctionTypeRef
+                    // InternalSignalDSL.g:3513:2: ( ruleXFunctionTypeRef )
+                    // InternalSignalDSL.g:3514:3: ruleXFunctionTypeRef
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getJvmTypeReferenceAccess().getXFunctionTypeRefParserRuleCall_1()); 
@@ -12779,35 +13001,35 @@
 
 
     // $ANTLR start "rule__JvmArgumentTypeReference__Alternatives"
-    // InternalSignalDSL.g:3461:1: rule__JvmArgumentTypeReference__Alternatives : ( ( ruleJvmTypeReference ) | ( ruleJvmWildcardTypeReference ) );
+    // InternalSignalDSL.g:3523:1: rule__JvmArgumentTypeReference__Alternatives : ( ( ruleJvmTypeReference ) | ( ruleJvmWildcardTypeReference ) );
     public final void rule__JvmArgumentTypeReference__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:3465:1: ( ( ruleJvmTypeReference ) | ( ruleJvmWildcardTypeReference ) )
-            int alt44=2;
-            int LA44_0 = input.LA(1);
+            // InternalSignalDSL.g:3527:1: ( ( ruleJvmTypeReference ) | ( ruleJvmWildcardTypeReference ) )
+            int alt45=2;
+            int LA45_0 = input.LA(1);
 
-            if ( (LA44_0==RULE_ID||LA44_0==31||LA44_0==76) ) {
-                alt44=1;
+            if ( (LA45_0==RULE_ID||LA45_0==31||LA45_0==74) ) {
+                alt45=1;
             }
-            else if ( (LA44_0==101) ) {
-                alt44=2;
+            else if ( (LA45_0==99) ) {
+                alt45=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 44, 0, input);
+                    new NoViableAltException("", 45, 0, input);
 
                 throw nvae;
             }
-            switch (alt44) {
+            switch (alt45) {
                 case 1 :
-                    // InternalSignalDSL.g:3466:2: ( ruleJvmTypeReference )
+                    // InternalSignalDSL.g:3528:2: ( ruleJvmTypeReference )
                     {
-                    // InternalSignalDSL.g:3466:2: ( ruleJvmTypeReference )
-                    // InternalSignalDSL.g:3467:3: ruleJvmTypeReference
+                    // InternalSignalDSL.g:3528:2: ( ruleJvmTypeReference )
+                    // InternalSignalDSL.g:3529:3: ruleJvmTypeReference
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getJvmArgumentTypeReferenceAccess().getJvmTypeReferenceParserRuleCall_0()); 
@@ -12827,10 +13049,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:3472:2: ( ruleJvmWildcardTypeReference )
+                    // InternalSignalDSL.g:3534:2: ( ruleJvmWildcardTypeReference )
                     {
-                    // InternalSignalDSL.g:3472:2: ( ruleJvmWildcardTypeReference )
-                    // InternalSignalDSL.g:3473:3: ruleJvmWildcardTypeReference
+                    // InternalSignalDSL.g:3534:2: ( ruleJvmWildcardTypeReference )
+                    // InternalSignalDSL.g:3535:3: ruleJvmWildcardTypeReference
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getJvmArgumentTypeReferenceAccess().getJvmWildcardTypeReferenceParserRuleCall_1()); 
@@ -12867,41 +13089,41 @@
 
 
     // $ANTLR start "rule__JvmWildcardTypeReference__Alternatives_2"
-    // InternalSignalDSL.g:3482:1: rule__JvmWildcardTypeReference__Alternatives_2 : ( ( ( rule__JvmWildcardTypeReference__Group_2_0__0 ) ) | ( ( rule__JvmWildcardTypeReference__Group_2_1__0 ) ) );
+    // InternalSignalDSL.g:3544: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:3486:1: ( ( ( rule__JvmWildcardTypeReference__Group_2_0__0 ) ) | ( ( rule__JvmWildcardTypeReference__Group_2_1__0 ) ) )
-            int alt45=2;
-            int LA45_0 = input.LA(1);
+            // InternalSignalDSL.g:3548:1: ( ( ( rule__JvmWildcardTypeReference__Group_2_0__0 ) ) | ( ( rule__JvmWildcardTypeReference__Group_2_1__0 ) ) )
+            int alt46=2;
+            int LA46_0 = input.LA(1);
 
-            if ( (LA45_0==45) ) {
-                alt45=1;
+            if ( (LA46_0==45) ) {
+                alt46=1;
             }
-            else if ( (LA45_0==49) ) {
-                alt45=2;
+            else if ( (LA46_0==49) ) {
+                alt46=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 45, 0, input);
+                    new NoViableAltException("", 46, 0, input);
 
                 throw nvae;
             }
-            switch (alt45) {
+            switch (alt46) {
                 case 1 :
-                    // InternalSignalDSL.g:3487:2: ( ( rule__JvmWildcardTypeReference__Group_2_0__0 ) )
+                    // InternalSignalDSL.g:3549:2: ( ( rule__JvmWildcardTypeReference__Group_2_0__0 ) )
                     {
-                    // InternalSignalDSL.g:3487:2: ( ( rule__JvmWildcardTypeReference__Group_2_0__0 ) )
-                    // InternalSignalDSL.g:3488:3: ( rule__JvmWildcardTypeReference__Group_2_0__0 )
+                    // InternalSignalDSL.g:3549:2: ( ( rule__JvmWildcardTypeReference__Group_2_0__0 ) )
+                    // InternalSignalDSL.g:3550:3: ( rule__JvmWildcardTypeReference__Group_2_0__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getJvmWildcardTypeReferenceAccess().getGroup_2_0()); 
                     }
-                    // InternalSignalDSL.g:3489:3: ( rule__JvmWildcardTypeReference__Group_2_0__0 )
-                    // InternalSignalDSL.g:3489:4: rule__JvmWildcardTypeReference__Group_2_0__0
+                    // InternalSignalDSL.g:3551:3: ( rule__JvmWildcardTypeReference__Group_2_0__0 )
+                    // InternalSignalDSL.g:3551:4: rule__JvmWildcardTypeReference__Group_2_0__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__JvmWildcardTypeReference__Group_2_0__0();
@@ -12921,16 +13143,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:3493:2: ( ( rule__JvmWildcardTypeReference__Group_2_1__0 ) )
+                    // InternalSignalDSL.g:3555:2: ( ( rule__JvmWildcardTypeReference__Group_2_1__0 ) )
                     {
-                    // InternalSignalDSL.g:3493:2: ( ( rule__JvmWildcardTypeReference__Group_2_1__0 ) )
-                    // InternalSignalDSL.g:3494:3: ( rule__JvmWildcardTypeReference__Group_2_1__0 )
+                    // InternalSignalDSL.g:3555:2: ( ( rule__JvmWildcardTypeReference__Group_2_1__0 ) )
+                    // InternalSignalDSL.g:3556:3: ( rule__JvmWildcardTypeReference__Group_2_1__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getJvmWildcardTypeReferenceAccess().getGroup_2_1()); 
                     }
-                    // InternalSignalDSL.g:3495:3: ( rule__JvmWildcardTypeReference__Group_2_1__0 )
-                    // InternalSignalDSL.g:3495:4: rule__JvmWildcardTypeReference__Group_2_1__0
+                    // InternalSignalDSL.g:3557:3: ( rule__JvmWildcardTypeReference__Group_2_1__0 )
+                    // InternalSignalDSL.g:3557:4: rule__JvmWildcardTypeReference__Group_2_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__JvmWildcardTypeReference__Group_2_1__0();
@@ -12966,58 +13188,150 @@
     // $ANTLR end "rule__JvmWildcardTypeReference__Alternatives_2"
 
 
+    // $ANTLR start "rule__SignalActionEnum__Alternatives"
+    // InternalSignalDSL.g:3565:1: rule__SignalActionEnum__Alternatives : ( ( ( 'Import' ) ) | ( ( 'Export' ) ) );
+    public final void rule__SignalActionEnum__Alternatives() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalSignalDSL.g:3569:1: ( ( ( 'Import' ) ) | ( ( 'Export' ) ) )
+            int alt47=2;
+            int LA47_0 = input.LA(1);
+
+            if ( (LA47_0==51) ) {
+                alt47=1;
+            }
+            else if ( (LA47_0==52) ) {
+                alt47=2;
+            }
+            else {
+                if (state.backtracking>0) {state.failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 47, 0, input);
+
+                throw nvae;
+            }
+            switch (alt47) {
+                case 1 :
+                    // InternalSignalDSL.g:3570:2: ( ( 'Import' ) )
+                    {
+                    // InternalSignalDSL.g:3570:2: ( ( 'Import' ) )
+                    // InternalSignalDSL.g:3571:3: ( 'Import' )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getSignalActionEnumAccess().getDATAIMPORTEnumLiteralDeclaration_0()); 
+                    }
+                    // InternalSignalDSL.g:3572:3: ( 'Import' )
+                    // InternalSignalDSL.g:3572:4: 'Import'
+                    {
+                    match(input,51,FOLLOW_2); if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getSignalActionEnumAccess().getDATAIMPORTEnumLiteralDeclaration_0()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalSignalDSL.g:3576:2: ( ( 'Export' ) )
+                    {
+                    // InternalSignalDSL.g:3576:2: ( ( 'Export' ) )
+                    // InternalSignalDSL.g:3577:3: ( 'Export' )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getSignalActionEnumAccess().getDATAEXPORTEnumLiteralDeclaration_1()); 
+                    }
+                    // InternalSignalDSL.g:3578:3: ( 'Export' )
+                    // InternalSignalDSL.g:3578:4: 'Export'
+                    {
+                    match(input,52,FOLLOW_2); if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getSignalActionEnumAccess().getDATAEXPORTEnumLiteralDeclaration_1()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SignalActionEnum__Alternatives"
+
+
     // $ANTLR start "rule__SignalTypeEnum__Alternatives"
-    // InternalSignalDSL.g:3503:1: rule__SignalTypeEnum__Alternatives : ( ( ( 'all' ) ) | ( ( 'createSignals' ) ) | ( ( 'modifySignals' ) ) | ( ( 'deleteSignals' ) ) );
+    // InternalSignalDSL.g:3586:1: rule__SignalTypeEnum__Alternatives : ( ( ( 'all' ) ) | ( ( 'createSignals' ) ) | ( ( 'modifySignals' ) ) | ( ( 'deleteSignals' ) ) );
     public final void rule__SignalTypeEnum__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:3507:1: ( ( ( 'all' ) ) | ( ( 'createSignals' ) ) | ( ( 'modifySignals' ) ) | ( ( 'deleteSignals' ) ) )
-            int alt46=4;
+            // InternalSignalDSL.g:3590:1: ( ( ( 'all' ) ) | ( ( 'createSignals' ) ) | ( ( 'modifySignals' ) ) | ( ( 'deleteSignals' ) ) )
+            int alt48=4;
             switch ( input.LA(1) ) {
-            case 51:
-                {
-                alt46=1;
-                }
-                break;
-            case 52:
-                {
-                alt46=2;
-                }
-                break;
             case 53:
                 {
-                alt46=3;
+                alt48=1;
                 }
                 break;
             case 54:
                 {
-                alt46=4;
+                alt48=2;
+                }
+                break;
+            case 55:
+                {
+                alt48=3;
+                }
+                break;
+            case 56:
+                {
+                alt48=4;
                 }
                 break;
             default:
                 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:3508:2: ( ( 'all' ) )
+                    // InternalSignalDSL.g:3591:2: ( ( 'all' ) )
                     {
-                    // InternalSignalDSL.g:3508:2: ( ( 'all' ) )
-                    // InternalSignalDSL.g:3509:3: ( 'all' )
+                    // InternalSignalDSL.g:3591:2: ( ( 'all' ) )
+                    // InternalSignalDSL.g:3592:3: ( 'all' )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getSignalTypeEnumAccess().getAllEnumLiteralDeclaration_0()); 
                     }
-                    // InternalSignalDSL.g:3510:3: ( 'all' )
-                    // InternalSignalDSL.g:3510:4: 'all'
+                    // InternalSignalDSL.g:3593:3: ( 'all' )
+                    // InternalSignalDSL.g:3593:4: 'all'
                     {
-                    match(input,51,FOLLOW_2); if (state.failed) return ;
+                    match(input,53,FOLLOW_2); if (state.failed) return ;
 
                     }
 
@@ -13031,18 +13345,18 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:3514:2: ( ( 'createSignals' ) )
+                    // InternalSignalDSL.g:3597:2: ( ( 'createSignals' ) )
                     {
-                    // InternalSignalDSL.g:3514:2: ( ( 'createSignals' ) )
-                    // InternalSignalDSL.g:3515:3: ( 'createSignals' )
+                    // InternalSignalDSL.g:3597:2: ( ( 'createSignals' ) )
+                    // InternalSignalDSL.g:3598:3: ( 'createSignals' )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getSignalTypeEnumAccess().getCreatesignalsEnumLiteralDeclaration_1()); 
                     }
-                    // InternalSignalDSL.g:3516:3: ( 'createSignals' )
-                    // InternalSignalDSL.g:3516:4: 'createSignals'
+                    // InternalSignalDSL.g:3599:3: ( 'createSignals' )
+                    // InternalSignalDSL.g:3599:4: 'createSignals'
                     {
-                    match(input,52,FOLLOW_2); if (state.failed) return ;
+                    match(input,54,FOLLOW_2); if (state.failed) return ;
 
                     }
 
@@ -13056,18 +13370,18 @@
                     }
                     break;
                 case 3 :
-                    // InternalSignalDSL.g:3520:2: ( ( 'modifySignals' ) )
+                    // InternalSignalDSL.g:3603:2: ( ( 'modifySignals' ) )
                     {
-                    // InternalSignalDSL.g:3520:2: ( ( 'modifySignals' ) )
-                    // InternalSignalDSL.g:3521:3: ( 'modifySignals' )
+                    // InternalSignalDSL.g:3603:2: ( ( 'modifySignals' ) )
+                    // InternalSignalDSL.g:3604:3: ( 'modifySignals' )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getSignalTypeEnumAccess().getModifysignalsEnumLiteralDeclaration_2()); 
                     }
-                    // InternalSignalDSL.g:3522:3: ( 'modifySignals' )
-                    // InternalSignalDSL.g:3522:4: 'modifySignals'
+                    // InternalSignalDSL.g:3605:3: ( 'modifySignals' )
+                    // InternalSignalDSL.g:3605:4: 'modifySignals'
                     {
-                    match(input,53,FOLLOW_2); if (state.failed) return ;
+                    match(input,55,FOLLOW_2); if (state.failed) return ;
 
                     }
 
@@ -13081,18 +13395,18 @@
                     }
                     break;
                 case 4 :
-                    // InternalSignalDSL.g:3526:2: ( ( 'deleteSignals' ) )
+                    // InternalSignalDSL.g:3609:2: ( ( 'deleteSignals' ) )
                     {
-                    // InternalSignalDSL.g:3526:2: ( ( 'deleteSignals' ) )
-                    // InternalSignalDSL.g:3527:3: ( 'deleteSignals' )
+                    // InternalSignalDSL.g:3609:2: ( ( 'deleteSignals' ) )
+                    // InternalSignalDSL.g:3610:3: ( 'deleteSignals' )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getSignalTypeEnumAccess().getDeletesignalsEnumLiteralDeclaration_3()); 
                     }
-                    // InternalSignalDSL.g:3528:3: ( 'deleteSignals' )
-                    // InternalSignalDSL.g:3528:4: 'deleteSignals'
+                    // InternalSignalDSL.g:3611:3: ( 'deleteSignals' )
+                    // InternalSignalDSL.g:3611:4: 'deleteSignals'
                     {
-                    match(input,54,FOLLOW_2); if (state.failed) return ;
+                    match(input,56,FOLLOW_2); if (state.failed) return ;
 
                     }
 
@@ -13122,239 +13436,63 @@
     // $ANTLR end "rule__SignalTypeEnum__Alternatives"
 
 
-    // $ANTLR start "rule__SignalNotificationEnum__Alternatives"
-    // InternalSignalDSL.g:3536:1: rule__SignalNotificationEnum__Alternatives : ( ( ( 'show' ) ) | ( ( 'showOnCreate' ) ) | ( ( 'showOnDelete' ) ) | ( ( 'showOnModify' ) ) );
-    public final void rule__SignalNotificationEnum__Alternatives() throws RecognitionException {
+    // $ANTLR start "rule__SignalHandlerTypeEnum__Alternatives"
+    // InternalSignalDSL.g:3619:1: rule__SignalHandlerTypeEnum__Alternatives : ( ( ( 'doAfter' ) ) | ( ( 'doAfterModify' ) ) | ( ( 'doAfterCreate' ) ) | ( ( 'doAfterDelete' ) ) );
+    public final void rule__SignalHandlerTypeEnum__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:3540:1: ( ( ( 'show' ) ) | ( ( 'showOnCreate' ) ) | ( ( 'showOnDelete' ) ) | ( ( 'showOnModify' ) ) )
-            int alt47=4;
+            // InternalSignalDSL.g:3623:1: ( ( ( 'doAfter' ) ) | ( ( 'doAfterModify' ) ) | ( ( 'doAfterCreate' ) ) | ( ( 'doAfterDelete' ) ) )
+            int alt49=4;
             switch ( input.LA(1) ) {
-            case 55:
-                {
-                alt47=1;
-                }
-                break;
-            case 56:
-                {
-                alt47=2;
-                }
-                break;
             case 57:
                 {
-                alt47=3;
+                alt49=1;
                 }
                 break;
             case 58:
                 {
-                alt47=4;
+                alt49=2;
+                }
+                break;
+            case 59:
+                {
+                alt49=3;
+                }
+                break;
+            case 60:
+                {
+                alt49=4;
                 }
                 break;
             default:
                 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:3541:2: ( ( 'show' ) )
+                    // InternalSignalDSL.g:3624:2: ( ( 'doAfter' ) )
                     {
-                    // InternalSignalDSL.g:3541:2: ( ( 'show' ) )
-                    // InternalSignalDSL.g:3542:3: ( 'show' )
+                    // InternalSignalDSL.g:3624:2: ( ( 'doAfter' ) )
+                    // InternalSignalDSL.g:3625:3: ( 'doAfter' )
                     {
                     if ( state.backtracking==0 ) {
-                       before(grammarAccess.getSignalNotificationEnumAccess().getShowOnAllEnumLiteralDeclaration_0()); 
+                       before(grammarAccess.getSignalHandlerTypeEnumAccess().getDoafterEnumLiteralDeclaration_0()); 
                     }
-                    // InternalSignalDSL.g:3543:3: ( 'show' )
-                    // InternalSignalDSL.g:3543:4: 'show'
-                    {
-                    match(input,55,FOLLOW_2); if (state.failed) return ;
-
-                    }
-
-                    if ( state.backtracking==0 ) {
-                       after(grammarAccess.getSignalNotificationEnumAccess().getShowOnAllEnumLiteralDeclaration_0()); 
-                    }
-
-                    }
-
-
-                    }
-                    break;
-                case 2 :
-                    // InternalSignalDSL.g:3547:2: ( ( 'showOnCreate' ) )
-                    {
-                    // InternalSignalDSL.g:3547:2: ( ( 'showOnCreate' ) )
-                    // InternalSignalDSL.g:3548:3: ( 'showOnCreate' )
-                    {
-                    if ( state.backtracking==0 ) {
-                       before(grammarAccess.getSignalNotificationEnumAccess().getShowOnCreateEnumLiteralDeclaration_1()); 
-                    }
-                    // InternalSignalDSL.g:3549:3: ( 'showOnCreate' )
-                    // InternalSignalDSL.g:3549:4: 'showOnCreate'
-                    {
-                    match(input,56,FOLLOW_2); if (state.failed) return ;
-
-                    }
-
-                    if ( state.backtracking==0 ) {
-                       after(grammarAccess.getSignalNotificationEnumAccess().getShowOnCreateEnumLiteralDeclaration_1()); 
-                    }
-
-                    }
-
-
-                    }
-                    break;
-                case 3 :
-                    // InternalSignalDSL.g:3553:2: ( ( 'showOnDelete' ) )
-                    {
-                    // InternalSignalDSL.g:3553:2: ( ( 'showOnDelete' ) )
-                    // InternalSignalDSL.g:3554:3: ( 'showOnDelete' )
-                    {
-                    if ( state.backtracking==0 ) {
-                       before(grammarAccess.getSignalNotificationEnumAccess().getShowOnDeleteEnumLiteralDeclaration_2()); 
-                    }
-                    // InternalSignalDSL.g:3555:3: ( 'showOnDelete' )
-                    // InternalSignalDSL.g:3555:4: 'showOnDelete'
+                    // InternalSignalDSL.g:3626:3: ( 'doAfter' )
+                    // InternalSignalDSL.g:3626:4: 'doAfter'
                     {
                     match(input,57,FOLLOW_2); if (state.failed) return ;
 
                     }
 
                     if ( state.backtracking==0 ) {
-                       after(grammarAccess.getSignalNotificationEnumAccess().getShowOnDeleteEnumLiteralDeclaration_2()); 
-                    }
-
-                    }
-
-
-                    }
-                    break;
-                case 4 :
-                    // InternalSignalDSL.g:3559:2: ( ( 'showOnModify' ) )
-                    {
-                    // InternalSignalDSL.g:3559:2: ( ( 'showOnModify' ) )
-                    // InternalSignalDSL.g:3560:3: ( 'showOnModify' )
-                    {
-                    if ( state.backtracking==0 ) {
-                       before(grammarAccess.getSignalNotificationEnumAccess().getShowOnModifyEnumLiteralDeclaration_3()); 
-                    }
-                    // InternalSignalDSL.g:3561:3: ( 'showOnModify' )
-                    // InternalSignalDSL.g:3561:4: 'showOnModify'
-                    {
-                    match(input,58,FOLLOW_2); if (state.failed) return ;
-
-                    }
-
-                    if ( state.backtracking==0 ) {
-                       after(grammarAccess.getSignalNotificationEnumAccess().getShowOnModifyEnumLiteralDeclaration_3()); 
-                    }
-
-                    }
-
-
-                    }
-                    break;
-
-            }
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__SignalNotificationEnum__Alternatives"
-
-
-    // $ANTLR start "rule__SignalHandlerTypeEnum__Alternatives"
-    // InternalSignalDSL.g:3569:1: rule__SignalHandlerTypeEnum__Alternatives : ( ( ( 'doAfter' ) ) | ( ( 'doAfterCreate' ) ) | ( ( 'doAfterDelete' ) ) | ( ( 'doAfterModify' ) ) | ( ( 'doBefore' ) ) | ( ( 'doBeforeCreate' ) ) | ( ( 'doBeforeModify' ) ) | ( ( 'doBeforedelete' ) ) );
-    public final void rule__SignalHandlerTypeEnum__Alternatives() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-        	
-        try {
-            // InternalSignalDSL.g:3573:1: ( ( ( 'doAfter' ) ) | ( ( 'doAfterCreate' ) ) | ( ( 'doAfterDelete' ) ) | ( ( 'doAfterModify' ) ) | ( ( 'doBefore' ) ) | ( ( 'doBeforeCreate' ) ) | ( ( 'doBeforeModify' ) ) | ( ( 'doBeforedelete' ) ) )
-            int alt48=8;
-            switch ( input.LA(1) ) {
-            case 59:
-                {
-                alt48=1;
-                }
-                break;
-            case 60:
-                {
-                alt48=2;
-                }
-                break;
-            case 61:
-                {
-                alt48=3;
-                }
-                break;
-            case 62:
-                {
-                alt48=4;
-                }
-                break;
-            case 63:
-                {
-                alt48=5;
-                }
-                break;
-            case 64:
-                {
-                alt48=6;
-                }
-                break;
-            case 65:
-                {
-                alt48=7;
-                }
-                break;
-            case 66:
-                {
-                alt48=8;
-                }
-                break;
-            default:
-                if (state.backtracking>0) {state.failed=true; return ;}
-                NoViableAltException nvae =
-                    new NoViableAltException("", 48, 0, input);
-
-                throw nvae;
-            }
-
-            switch (alt48) {
-                case 1 :
-                    // InternalSignalDSL.g:3574:2: ( ( 'doAfter' ) )
-                    {
-                    // InternalSignalDSL.g:3574:2: ( ( 'doAfter' ) )
-                    // InternalSignalDSL.g:3575:3: ( 'doAfter' )
-                    {
-                    if ( state.backtracking==0 ) {
-                       before(grammarAccess.getSignalHandlerTypeEnumAccess().getDoAfterEnumLiteralDeclaration_0()); 
-                    }
-                    // InternalSignalDSL.g:3576:3: ( 'doAfter' )
-                    // InternalSignalDSL.g:3576:4: 'doAfter'
-                    {
-                    match(input,59,FOLLOW_2); if (state.failed) return ;
-
-                    }
-
-                    if ( state.backtracking==0 ) {
-                       after(grammarAccess.getSignalHandlerTypeEnumAccess().getDoAfterEnumLiteralDeclaration_0()); 
+                       after(grammarAccess.getSignalHandlerTypeEnumAccess().getDoafterEnumLiteralDeclaration_0()); 
                     }
 
                     }
@@ -13363,23 +13501,23 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:3580:2: ( ( 'doAfterCreate' ) )
+                    // InternalSignalDSL.g:3630:2: ( ( 'doAfterModify' ) )
                     {
-                    // InternalSignalDSL.g:3580:2: ( ( 'doAfterCreate' ) )
-                    // InternalSignalDSL.g:3581:3: ( 'doAfterCreate' )
+                    // InternalSignalDSL.g:3630:2: ( ( 'doAfterModify' ) )
+                    // InternalSignalDSL.g:3631:3: ( 'doAfterModify' )
                     {
                     if ( state.backtracking==0 ) {
-                       before(grammarAccess.getSignalHandlerTypeEnumAccess().getDoAfterCreateEnumLiteralDeclaration_1()); 
+                       before(grammarAccess.getSignalHandlerTypeEnumAccess().getDoaftermodifyEnumLiteralDeclaration_1()); 
                     }
-                    // InternalSignalDSL.g:3582:3: ( 'doAfterCreate' )
-                    // InternalSignalDSL.g:3582:4: 'doAfterCreate'
+                    // InternalSignalDSL.g:3632:3: ( 'doAfterModify' )
+                    // InternalSignalDSL.g:3632:4: 'doAfterModify'
                     {
-                    match(input,60,FOLLOW_2); if (state.failed) return ;
+                    match(input,58,FOLLOW_2); if (state.failed) return ;
 
                     }
 
                     if ( state.backtracking==0 ) {
-                       after(grammarAccess.getSignalHandlerTypeEnumAccess().getDoAfterCreateEnumLiteralDeclaration_1()); 
+                       after(grammarAccess.getSignalHandlerTypeEnumAccess().getDoaftermodifyEnumLiteralDeclaration_1()); 
                     }
 
                     }
@@ -13388,23 +13526,23 @@
                     }
                     break;
                 case 3 :
-                    // InternalSignalDSL.g:3586:2: ( ( 'doAfterDelete' ) )
+                    // InternalSignalDSL.g:3636:2: ( ( 'doAfterCreate' ) )
                     {
-                    // InternalSignalDSL.g:3586:2: ( ( 'doAfterDelete' ) )
-                    // InternalSignalDSL.g:3587:3: ( 'doAfterDelete' )
+                    // InternalSignalDSL.g:3636:2: ( ( 'doAfterCreate' ) )
+                    // InternalSignalDSL.g:3637:3: ( 'doAfterCreate' )
                     {
                     if ( state.backtracking==0 ) {
-                       before(grammarAccess.getSignalHandlerTypeEnumAccess().getDoAfterDeleteEnumLiteralDeclaration_2()); 
+                       before(grammarAccess.getSignalHandlerTypeEnumAccess().getDoaftercreateEnumLiteralDeclaration_2()); 
                     }
-                    // InternalSignalDSL.g:3588:3: ( 'doAfterDelete' )
-                    // InternalSignalDSL.g:3588:4: 'doAfterDelete'
+                    // InternalSignalDSL.g:3638:3: ( 'doAfterCreate' )
+                    // InternalSignalDSL.g:3638:4: 'doAfterCreate'
                     {
-                    match(input,61,FOLLOW_2); if (state.failed) return ;
+                    match(input,59,FOLLOW_2); if (state.failed) return ;
 
                     }
 
                     if ( state.backtracking==0 ) {
-                       after(grammarAccess.getSignalHandlerTypeEnumAccess().getDoAfterDeleteEnumLiteralDeclaration_2()); 
+                       after(grammarAccess.getSignalHandlerTypeEnumAccess().getDoaftercreateEnumLiteralDeclaration_2()); 
                     }
 
                     }
@@ -13413,123 +13551,23 @@
                     }
                     break;
                 case 4 :
-                    // InternalSignalDSL.g:3592:2: ( ( 'doAfterModify' ) )
+                    // InternalSignalDSL.g:3642:2: ( ( 'doAfterDelete' ) )
                     {
-                    // InternalSignalDSL.g:3592:2: ( ( 'doAfterModify' ) )
-                    // InternalSignalDSL.g:3593:3: ( 'doAfterModify' )
+                    // InternalSignalDSL.g:3642:2: ( ( 'doAfterDelete' ) )
+                    // InternalSignalDSL.g:3643:3: ( 'doAfterDelete' )
                     {
                     if ( state.backtracking==0 ) {
-                       before(grammarAccess.getSignalHandlerTypeEnumAccess().getDoAfterModifyEnumLiteralDeclaration_3()); 
+                       before(grammarAccess.getSignalHandlerTypeEnumAccess().getDoafterdeleteEnumLiteralDeclaration_3()); 
                     }
-                    // InternalSignalDSL.g:3594:3: ( 'doAfterModify' )
-                    // InternalSignalDSL.g:3594:4: 'doAfterModify'
+                    // InternalSignalDSL.g:3644:3: ( 'doAfterDelete' )
+                    // InternalSignalDSL.g:3644:4: 'doAfterDelete'
                     {
-                    match(input,62,FOLLOW_2); if (state.failed) return ;
+                    match(input,60,FOLLOW_2); if (state.failed) return ;
 
                     }
 
                     if ( state.backtracking==0 ) {
-                       after(grammarAccess.getSignalHandlerTypeEnumAccess().getDoAfterModifyEnumLiteralDeclaration_3()); 
-                    }
-
-                    }
-
-
-                    }
-                    break;
-                case 5 :
-                    // InternalSignalDSL.g:3598:2: ( ( 'doBefore' ) )
-                    {
-                    // InternalSignalDSL.g:3598:2: ( ( 'doBefore' ) )
-                    // InternalSignalDSL.g:3599:3: ( 'doBefore' )
-                    {
-                    if ( state.backtracking==0 ) {
-                       before(grammarAccess.getSignalHandlerTypeEnumAccess().getDoBeforeEnumLiteralDeclaration_4()); 
-                    }
-                    // InternalSignalDSL.g:3600:3: ( 'doBefore' )
-                    // InternalSignalDSL.g:3600:4: 'doBefore'
-                    {
-                    match(input,63,FOLLOW_2); if (state.failed) return ;
-
-                    }
-
-                    if ( state.backtracking==0 ) {
-                       after(grammarAccess.getSignalHandlerTypeEnumAccess().getDoBeforeEnumLiteralDeclaration_4()); 
-                    }
-
-                    }
-
-
-                    }
-                    break;
-                case 6 :
-                    // InternalSignalDSL.g:3604:2: ( ( 'doBeforeCreate' ) )
-                    {
-                    // InternalSignalDSL.g:3604:2: ( ( 'doBeforeCreate' ) )
-                    // InternalSignalDSL.g:3605:3: ( 'doBeforeCreate' )
-                    {
-                    if ( state.backtracking==0 ) {
-                       before(grammarAccess.getSignalHandlerTypeEnumAccess().getDoBeforeCreateEnumLiteralDeclaration_5()); 
-                    }
-                    // InternalSignalDSL.g:3606:3: ( 'doBeforeCreate' )
-                    // InternalSignalDSL.g:3606:4: 'doBeforeCreate'
-                    {
-                    match(input,64,FOLLOW_2); if (state.failed) return ;
-
-                    }
-
-                    if ( state.backtracking==0 ) {
-                       after(grammarAccess.getSignalHandlerTypeEnumAccess().getDoBeforeCreateEnumLiteralDeclaration_5()); 
-                    }
-
-                    }
-
-
-                    }
-                    break;
-                case 7 :
-                    // InternalSignalDSL.g:3610:2: ( ( 'doBeforeModify' ) )
-                    {
-                    // InternalSignalDSL.g:3610:2: ( ( 'doBeforeModify' ) )
-                    // InternalSignalDSL.g:3611:3: ( 'doBeforeModify' )
-                    {
-                    if ( state.backtracking==0 ) {
-                       before(grammarAccess.getSignalHandlerTypeEnumAccess().getDoBeforeModifyEnumLiteralDeclaration_6()); 
-                    }
-                    // InternalSignalDSL.g:3612:3: ( 'doBeforeModify' )
-                    // InternalSignalDSL.g:3612:4: 'doBeforeModify'
-                    {
-                    match(input,65,FOLLOW_2); if (state.failed) return ;
-
-                    }
-
-                    if ( state.backtracking==0 ) {
-                       after(grammarAccess.getSignalHandlerTypeEnumAccess().getDoBeforeModifyEnumLiteralDeclaration_6()); 
-                    }
-
-                    }
-
-
-                    }
-                    break;
-                case 8 :
-                    // InternalSignalDSL.g:3616:2: ( ( 'doBeforedelete' ) )
-                    {
-                    // InternalSignalDSL.g:3616:2: ( ( 'doBeforedelete' ) )
-                    // InternalSignalDSL.g:3617:3: ( 'doBeforedelete' )
-                    {
-                    if ( state.backtracking==0 ) {
-                       before(grammarAccess.getSignalHandlerTypeEnumAccess().getDoDeforeDeleteEnumLiteralDeclaration_7()); 
-                    }
-                    // InternalSignalDSL.g:3618:3: ( 'doBeforedelete' )
-                    // InternalSignalDSL.g:3618:4: 'doBeforedelete'
-                    {
-                    match(input,66,FOLLOW_2); if (state.failed) return ;
-
-                    }
-
-                    if ( state.backtracking==0 ) {
-                       after(grammarAccess.getSignalHandlerTypeEnumAccess().getDoDeforeDeleteEnumLiteralDeclaration_7()); 
+                       after(grammarAccess.getSignalHandlerTypeEnumAccess().getDoafterdeleteEnumLiteralDeclaration_3()); 
                     }
 
                     }
@@ -13554,15 +13592,107 @@
     // $ANTLR end "rule__SignalHandlerTypeEnum__Alternatives"
 
 
+    // $ANTLR start "rule__SignalExecutionTypeEnum__Alternatives"
+    // InternalSignalDSL.g:3652:1: rule__SignalExecutionTypeEnum__Alternatives : ( ( ( 'synch' ) ) | ( ( 'asynch' ) ) );
+    public final void rule__SignalExecutionTypeEnum__Alternatives() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalSignalDSL.g:3656:1: ( ( ( 'synch' ) ) | ( ( 'asynch' ) ) )
+            int alt50=2;
+            int LA50_0 = input.LA(1);
+
+            if ( (LA50_0==61) ) {
+                alt50=1;
+            }
+            else if ( (LA50_0==62) ) {
+                alt50=2;
+            }
+            else {
+                if (state.backtracking>0) {state.failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 50, 0, input);
+
+                throw nvae;
+            }
+            switch (alt50) {
+                case 1 :
+                    // InternalSignalDSL.g:3657:2: ( ( 'synch' ) )
+                    {
+                    // InternalSignalDSL.g:3657:2: ( ( 'synch' ) )
+                    // InternalSignalDSL.g:3658:3: ( 'synch' )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getSignalExecutionTypeEnumAccess().getSYNCEnumLiteralDeclaration_0()); 
+                    }
+                    // InternalSignalDSL.g:3659:3: ( 'synch' )
+                    // InternalSignalDSL.g:3659:4: 'synch'
+                    {
+                    match(input,61,FOLLOW_2); if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getSignalExecutionTypeEnumAccess().getSYNCEnumLiteralDeclaration_0()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalSignalDSL.g:3663:2: ( ( 'asynch' ) )
+                    {
+                    // InternalSignalDSL.g:3663:2: ( ( 'asynch' ) )
+                    // InternalSignalDSL.g:3664:3: ( 'asynch' )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getSignalExecutionTypeEnumAccess().getASYNCEnumLiteralDeclaration_1()); 
+                    }
+                    // InternalSignalDSL.g:3665:3: ( 'asynch' )
+                    // InternalSignalDSL.g:3665:4: 'asynch'
+                    {
+                    match(input,62,FOLLOW_2); if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getSignalExecutionTypeEnumAccess().getASYNCEnumLiteralDeclaration_1()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SignalExecutionTypeEnum__Alternatives"
+
+
     // $ANTLR start "rule__SignalModel__Group__0"
-    // InternalSignalDSL.g:3626:1: rule__SignalModel__Group__0 : rule__SignalModel__Group__0__Impl rule__SignalModel__Group__1 ;
+    // InternalSignalDSL.g:3673: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:3630:1: ( rule__SignalModel__Group__0__Impl rule__SignalModel__Group__1 )
-            // InternalSignalDSL.g:3631:2: rule__SignalModel__Group__0__Impl rule__SignalModel__Group__1
+            // InternalSignalDSL.g:3677:1: ( rule__SignalModel__Group__0__Impl rule__SignalModel__Group__1 )
+            // InternalSignalDSL.g:3678:2: rule__SignalModel__Group__0__Impl rule__SignalModel__Group__1
             {
             pushFollow(FOLLOW_5);
             rule__SignalModel__Group__0__Impl();
@@ -13593,31 +13723,31 @@
 
 
     // $ANTLR start "rule__SignalModel__Group__0__Impl"
-    // InternalSignalDSL.g:3638:1: rule__SignalModel__Group__0__Impl : ( ( rule__SignalModel__ImportSectionAssignment_0 )? ) ;
+    // InternalSignalDSL.g:3685: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:3642:1: ( ( ( rule__SignalModel__ImportSectionAssignment_0 )? ) )
-            // InternalSignalDSL.g:3643:1: ( ( rule__SignalModel__ImportSectionAssignment_0 )? )
+            // InternalSignalDSL.g:3689:1: ( ( ( rule__SignalModel__ImportSectionAssignment_0 )? ) )
+            // InternalSignalDSL.g:3690:1: ( ( rule__SignalModel__ImportSectionAssignment_0 )? )
             {
-            // InternalSignalDSL.g:3643:1: ( ( rule__SignalModel__ImportSectionAssignment_0 )? )
-            // InternalSignalDSL.g:3644:2: ( rule__SignalModel__ImportSectionAssignment_0 )?
+            // InternalSignalDSL.g:3690:1: ( ( rule__SignalModel__ImportSectionAssignment_0 )? )
+            // InternalSignalDSL.g:3691:2: ( rule__SignalModel__ImportSectionAssignment_0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSignalModelAccess().getImportSectionAssignment_0()); 
             }
-            // InternalSignalDSL.g:3645:2: ( rule__SignalModel__ImportSectionAssignment_0 )?
-            int alt49=2;
-            int LA49_0 = input.LA(1);
+            // InternalSignalDSL.g:3692:2: ( rule__SignalModel__ImportSectionAssignment_0 )?
+            int alt51=2;
+            int LA51_0 = input.LA(1);
 
-            if ( (LA49_0==47) ) {
-                alt49=1;
+            if ( (LA51_0==47) ) {
+                alt51=1;
             }
-            switch (alt49) {
+            switch (alt51) {
                 case 1 :
-                    // InternalSignalDSL.g:3645:3: rule__SignalModel__ImportSectionAssignment_0
+                    // InternalSignalDSL.g:3692:3: rule__SignalModel__ImportSectionAssignment_0
                     {
                     pushFollow(FOLLOW_2);
                     rule__SignalModel__ImportSectionAssignment_0();
@@ -13655,14 +13785,14 @@
 
 
     // $ANTLR start "rule__SignalModel__Group__1"
-    // InternalSignalDSL.g:3653:1: rule__SignalModel__Group__1 : rule__SignalModel__Group__1__Impl ;
+    // InternalSignalDSL.g:3700: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:3657:1: ( rule__SignalModel__Group__1__Impl )
-            // InternalSignalDSL.g:3658:2: rule__SignalModel__Group__1__Impl
+            // InternalSignalDSL.g:3704:1: ( rule__SignalModel__Group__1__Impl )
+            // InternalSignalDSL.g:3705:2: rule__SignalModel__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__SignalModel__Group__1__Impl();
@@ -13688,35 +13818,35 @@
 
 
     // $ANTLR start "rule__SignalModel__Group__1__Impl"
-    // InternalSignalDSL.g:3664:1: rule__SignalModel__Group__1__Impl : ( ( rule__SignalModel__PackagesAssignment_1 )* ) ;
+    // InternalSignalDSL.g:3711: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:3668:1: ( ( ( rule__SignalModel__PackagesAssignment_1 )* ) )
-            // InternalSignalDSL.g:3669:1: ( ( rule__SignalModel__PackagesAssignment_1 )* )
+            // InternalSignalDSL.g:3715:1: ( ( ( rule__SignalModel__PackagesAssignment_1 )* ) )
+            // InternalSignalDSL.g:3716:1: ( ( rule__SignalModel__PackagesAssignment_1 )* )
             {
-            // InternalSignalDSL.g:3669:1: ( ( rule__SignalModel__PackagesAssignment_1 )* )
-            // InternalSignalDSL.g:3670:2: ( rule__SignalModel__PackagesAssignment_1 )*
+            // InternalSignalDSL.g:3716:1: ( ( rule__SignalModel__PackagesAssignment_1 )* )
+            // InternalSignalDSL.g:3717:2: ( rule__SignalModel__PackagesAssignment_1 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSignalModelAccess().getPackagesAssignment_1()); 
             }
-            // InternalSignalDSL.g:3671:2: ( rule__SignalModel__PackagesAssignment_1 )*
-            loop50:
+            // InternalSignalDSL.g:3718:2: ( rule__SignalModel__PackagesAssignment_1 )*
+            loop52:
             do {
-                int alt50=2;
-                int LA50_0 = input.LA(1);
+                int alt52=2;
+                int LA52_0 = input.LA(1);
 
-                if ( (LA50_0==67) ) {
-                    alt50=1;
+                if ( (LA52_0==63) ) {
+                    alt52=1;
                 }
 
 
-                switch (alt50) {
+                switch (alt52) {
             	case 1 :
-            	    // InternalSignalDSL.g:3671:3: rule__SignalModel__PackagesAssignment_1
+            	    // InternalSignalDSL.g:3718:3: rule__SignalModel__PackagesAssignment_1
             	    {
             	    pushFollow(FOLLOW_6);
             	    rule__SignalModel__PackagesAssignment_1();
@@ -13728,7 +13858,7 @@
             	    break;
 
             	default :
-            	    break loop50;
+            	    break loop52;
                 }
             } while (true);
 
@@ -13757,14 +13887,14 @@
 
 
     // $ANTLR start "rule__SignalPackage__Group__0"
-    // InternalSignalDSL.g:3680:1: rule__SignalPackage__Group__0 : rule__SignalPackage__Group__0__Impl rule__SignalPackage__Group__1 ;
+    // InternalSignalDSL.g:3727: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:3684:1: ( rule__SignalPackage__Group__0__Impl rule__SignalPackage__Group__1 )
-            // InternalSignalDSL.g:3685:2: rule__SignalPackage__Group__0__Impl rule__SignalPackage__Group__1
+            // InternalSignalDSL.g:3731:1: ( rule__SignalPackage__Group__0__Impl rule__SignalPackage__Group__1 )
+            // InternalSignalDSL.g:3732:2: rule__SignalPackage__Group__0__Impl rule__SignalPackage__Group__1
             {
             pushFollow(FOLLOW_5);
             rule__SignalPackage__Group__0__Impl();
@@ -13795,23 +13925,23 @@
 
 
     // $ANTLR start "rule__SignalPackage__Group__0__Impl"
-    // InternalSignalDSL.g:3692:1: rule__SignalPackage__Group__0__Impl : ( () ) ;
+    // InternalSignalDSL.g:3739:1: rule__SignalPackage__Group__0__Impl : ( () ) ;
     public final void rule__SignalPackage__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:3696:1: ( ( () ) )
-            // InternalSignalDSL.g:3697:1: ( () )
+            // InternalSignalDSL.g:3743:1: ( ( () ) )
+            // InternalSignalDSL.g:3744:1: ( () )
             {
-            // InternalSignalDSL.g:3697:1: ( () )
-            // InternalSignalDSL.g:3698:2: ()
+            // InternalSignalDSL.g:3744:1: ( () )
+            // InternalSignalDSL.g:3745:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSignalPackageAccess().getSignalPackageAction_0()); 
             }
-            // InternalSignalDSL.g:3699:2: ()
-            // InternalSignalDSL.g:3699:3: 
+            // InternalSignalDSL.g:3746:2: ()
+            // InternalSignalDSL.g:3746:3: 
             {
             }
 
@@ -13836,14 +13966,14 @@
 
 
     // $ANTLR start "rule__SignalPackage__Group__1"
-    // InternalSignalDSL.g:3707:1: rule__SignalPackage__Group__1 : rule__SignalPackage__Group__1__Impl rule__SignalPackage__Group__2 ;
+    // InternalSignalDSL.g:3754: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:3711:1: ( rule__SignalPackage__Group__1__Impl rule__SignalPackage__Group__2 )
-            // InternalSignalDSL.g:3712:2: rule__SignalPackage__Group__1__Impl rule__SignalPackage__Group__2
+            // InternalSignalDSL.g:3758:1: ( rule__SignalPackage__Group__1__Impl rule__SignalPackage__Group__2 )
+            // InternalSignalDSL.g:3759:2: rule__SignalPackage__Group__1__Impl rule__SignalPackage__Group__2
             {
             pushFollow(FOLLOW_7);
             rule__SignalPackage__Group__1__Impl();
@@ -13874,22 +14004,22 @@
 
 
     // $ANTLR start "rule__SignalPackage__Group__1__Impl"
-    // InternalSignalDSL.g:3719:1: rule__SignalPackage__Group__1__Impl : ( 'package' ) ;
+    // InternalSignalDSL.g:3766:1: rule__SignalPackage__Group__1__Impl : ( 'package' ) ;
     public final void rule__SignalPackage__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:3723:1: ( ( 'package' ) )
-            // InternalSignalDSL.g:3724:1: ( 'package' )
+            // InternalSignalDSL.g:3770:1: ( ( 'package' ) )
+            // InternalSignalDSL.g:3771:1: ( 'package' )
             {
-            // InternalSignalDSL.g:3724:1: ( 'package' )
-            // InternalSignalDSL.g:3725:2: 'package'
+            // InternalSignalDSL.g:3771:1: ( 'package' )
+            // InternalSignalDSL.g:3772:2: 'package'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSignalPackageAccess().getPackageKeyword_1()); 
             }
-            match(input,67,FOLLOW_2); if (state.failed) return ;
+            match(input,63,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getSignalPackageAccess().getPackageKeyword_1()); 
             }
@@ -13915,14 +14045,14 @@
 
 
     // $ANTLR start "rule__SignalPackage__Group__2"
-    // InternalSignalDSL.g:3734:1: rule__SignalPackage__Group__2 : rule__SignalPackage__Group__2__Impl rule__SignalPackage__Group__3 ;
+    // InternalSignalDSL.g:3781: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:3738:1: ( rule__SignalPackage__Group__2__Impl rule__SignalPackage__Group__3 )
-            // InternalSignalDSL.g:3739:2: rule__SignalPackage__Group__2__Impl rule__SignalPackage__Group__3
+            // InternalSignalDSL.g:3785:1: ( rule__SignalPackage__Group__2__Impl rule__SignalPackage__Group__3 )
+            // InternalSignalDSL.g:3786:2: rule__SignalPackage__Group__2__Impl rule__SignalPackage__Group__3
             {
             pushFollow(FOLLOW_8);
             rule__SignalPackage__Group__2__Impl();
@@ -13953,23 +14083,23 @@
 
 
     // $ANTLR start "rule__SignalPackage__Group__2__Impl"
-    // InternalSignalDSL.g:3746:1: rule__SignalPackage__Group__2__Impl : ( ( rule__SignalPackage__NameAssignment_2 ) ) ;
+    // InternalSignalDSL.g:3793: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:3750:1: ( ( ( rule__SignalPackage__NameAssignment_2 ) ) )
-            // InternalSignalDSL.g:3751:1: ( ( rule__SignalPackage__NameAssignment_2 ) )
+            // InternalSignalDSL.g:3797:1: ( ( ( rule__SignalPackage__NameAssignment_2 ) ) )
+            // InternalSignalDSL.g:3798:1: ( ( rule__SignalPackage__NameAssignment_2 ) )
             {
-            // InternalSignalDSL.g:3751:1: ( ( rule__SignalPackage__NameAssignment_2 ) )
-            // InternalSignalDSL.g:3752:2: ( rule__SignalPackage__NameAssignment_2 )
+            // InternalSignalDSL.g:3798:1: ( ( rule__SignalPackage__NameAssignment_2 ) )
+            // InternalSignalDSL.g:3799:2: ( rule__SignalPackage__NameAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSignalPackageAccess().getNameAssignment_2()); 
             }
-            // InternalSignalDSL.g:3753:2: ( rule__SignalPackage__NameAssignment_2 )
-            // InternalSignalDSL.g:3753:3: rule__SignalPackage__NameAssignment_2
+            // InternalSignalDSL.g:3800:2: ( rule__SignalPackage__NameAssignment_2 )
+            // InternalSignalDSL.g:3800:3: rule__SignalPackage__NameAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__SignalPackage__NameAssignment_2();
@@ -14004,14 +14134,14 @@
 
 
     // $ANTLR start "rule__SignalPackage__Group__3"
-    // InternalSignalDSL.g:3761:1: rule__SignalPackage__Group__3 : rule__SignalPackage__Group__3__Impl ;
+    // InternalSignalDSL.g:3808: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:3765:1: ( rule__SignalPackage__Group__3__Impl )
-            // InternalSignalDSL.g:3766:2: rule__SignalPackage__Group__3__Impl
+            // InternalSignalDSL.g:3812:1: ( rule__SignalPackage__Group__3__Impl )
+            // InternalSignalDSL.g:3813:2: rule__SignalPackage__Group__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__SignalPackage__Group__3__Impl();
@@ -14037,23 +14167,23 @@
 
 
     // $ANTLR start "rule__SignalPackage__Group__3__Impl"
-    // InternalSignalDSL.g:3772:1: rule__SignalPackage__Group__3__Impl : ( ( rule__SignalPackage__Group_3__0 ) ) ;
+    // InternalSignalDSL.g:3819: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:3776:1: ( ( ( rule__SignalPackage__Group_3__0 ) ) )
-            // InternalSignalDSL.g:3777:1: ( ( rule__SignalPackage__Group_3__0 ) )
+            // InternalSignalDSL.g:3823:1: ( ( ( rule__SignalPackage__Group_3__0 ) ) )
+            // InternalSignalDSL.g:3824:1: ( ( rule__SignalPackage__Group_3__0 ) )
             {
-            // InternalSignalDSL.g:3777:1: ( ( rule__SignalPackage__Group_3__0 ) )
-            // InternalSignalDSL.g:3778:2: ( rule__SignalPackage__Group_3__0 )
+            // InternalSignalDSL.g:3824:1: ( ( rule__SignalPackage__Group_3__0 ) )
+            // InternalSignalDSL.g:3825:2: ( rule__SignalPackage__Group_3__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSignalPackageAccess().getGroup_3()); 
             }
-            // InternalSignalDSL.g:3779:2: ( rule__SignalPackage__Group_3__0 )
-            // InternalSignalDSL.g:3779:3: rule__SignalPackage__Group_3__0
+            // InternalSignalDSL.g:3826:2: ( rule__SignalPackage__Group_3__0 )
+            // InternalSignalDSL.g:3826:3: rule__SignalPackage__Group_3__0
             {
             pushFollow(FOLLOW_2);
             rule__SignalPackage__Group_3__0();
@@ -14088,14 +14218,14 @@
 
 
     // $ANTLR start "rule__SignalPackage__Group_3__0"
-    // InternalSignalDSL.g:3788:1: rule__SignalPackage__Group_3__0 : rule__SignalPackage__Group_3__0__Impl rule__SignalPackage__Group_3__1 ;
+    // InternalSignalDSL.g:3835: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:3792:1: ( rule__SignalPackage__Group_3__0__Impl rule__SignalPackage__Group_3__1 )
-            // InternalSignalDSL.g:3793:2: rule__SignalPackage__Group_3__0__Impl rule__SignalPackage__Group_3__1
+            // InternalSignalDSL.g:3839:1: ( rule__SignalPackage__Group_3__0__Impl rule__SignalPackage__Group_3__1 )
+            // InternalSignalDSL.g:3840:2: rule__SignalPackage__Group_3__0__Impl rule__SignalPackage__Group_3__1
             {
             pushFollow(FOLLOW_9);
             rule__SignalPackage__Group_3__0__Impl();
@@ -14126,22 +14256,22 @@
 
 
     // $ANTLR start "rule__SignalPackage__Group_3__0__Impl"
-    // InternalSignalDSL.g:3800:1: rule__SignalPackage__Group_3__0__Impl : ( '{' ) ;
+    // InternalSignalDSL.g:3847:1: rule__SignalPackage__Group_3__0__Impl : ( '{' ) ;
     public final void rule__SignalPackage__Group_3__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:3804:1: ( ( '{' ) )
-            // InternalSignalDSL.g:3805:1: ( '{' )
+            // InternalSignalDSL.g:3851:1: ( ( '{' ) )
+            // InternalSignalDSL.g:3852:1: ( '{' )
             {
-            // InternalSignalDSL.g:3805:1: ( '{' )
-            // InternalSignalDSL.g:3806:2: '{'
+            // InternalSignalDSL.g:3852:1: ( '{' )
+            // InternalSignalDSL.g:3853:2: '{'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSignalPackageAccess().getLeftCurlyBracketKeyword_3_0()); 
             }
-            match(input,68,FOLLOW_2); if (state.failed) return ;
+            match(input,64,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getSignalPackageAccess().getLeftCurlyBracketKeyword_3_0()); 
             }
@@ -14167,14 +14297,14 @@
 
 
     // $ANTLR start "rule__SignalPackage__Group_3__1"
-    // InternalSignalDSL.g:3815:1: rule__SignalPackage__Group_3__1 : rule__SignalPackage__Group_3__1__Impl rule__SignalPackage__Group_3__2 ;
+    // InternalSignalDSL.g:3862: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:3819:1: ( rule__SignalPackage__Group_3__1__Impl rule__SignalPackage__Group_3__2 )
-            // InternalSignalDSL.g:3820:2: rule__SignalPackage__Group_3__1__Impl rule__SignalPackage__Group_3__2
+            // InternalSignalDSL.g:3866:1: ( rule__SignalPackage__Group_3__1__Impl rule__SignalPackage__Group_3__2 )
+            // InternalSignalDSL.g:3867:2: rule__SignalPackage__Group_3__1__Impl rule__SignalPackage__Group_3__2
             {
             pushFollow(FOLLOW_9);
             rule__SignalPackage__Group_3__1__Impl();
@@ -14205,35 +14335,35 @@
 
 
     // $ANTLR start "rule__SignalPackage__Group_3__1__Impl"
-    // InternalSignalDSL.g:3827:1: rule__SignalPackage__Group_3__1__Impl : ( ( rule__SignalPackage__WatchersAssignment_3_1 )* ) ;
+    // InternalSignalDSL.g:3874:1: rule__SignalPackage__Group_3__1__Impl : ( ( rule__SignalPackage__WatchersAssignment_3_1 )* ) ;
     public final void rule__SignalPackage__Group_3__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:3831:1: ( ( ( rule__SignalPackage__WatchersAssignment_3_1 )* ) )
-            // InternalSignalDSL.g:3832:1: ( ( rule__SignalPackage__WatchersAssignment_3_1 )* )
+            // InternalSignalDSL.g:3878:1: ( ( ( rule__SignalPackage__WatchersAssignment_3_1 )* ) )
+            // InternalSignalDSL.g:3879:1: ( ( rule__SignalPackage__WatchersAssignment_3_1 )* )
             {
-            // InternalSignalDSL.g:3832:1: ( ( rule__SignalPackage__WatchersAssignment_3_1 )* )
-            // InternalSignalDSL.g:3833:2: ( rule__SignalPackage__WatchersAssignment_3_1 )*
+            // InternalSignalDSL.g:3879:1: ( ( rule__SignalPackage__WatchersAssignment_3_1 )* )
+            // InternalSignalDSL.g:3880:2: ( rule__SignalPackage__WatchersAssignment_3_1 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSignalPackageAccess().getWatchersAssignment_3_1()); 
             }
-            // InternalSignalDSL.g:3834:2: ( rule__SignalPackage__WatchersAssignment_3_1 )*
-            loop51:
+            // InternalSignalDSL.g:3881:2: ( rule__SignalPackage__WatchersAssignment_3_1 )*
+            loop53:
             do {
-                int alt51=2;
-                int LA51_0 = input.LA(1);
+                int alt53=2;
+                int LA53_0 = input.LA(1);
 
-                if ( (LA51_0==70) ) {
-                    alt51=1;
+                if ( (LA53_0==66) ) {
+                    alt53=1;
                 }
 
 
-                switch (alt51) {
+                switch (alt53) {
             	case 1 :
-            	    // InternalSignalDSL.g:3834:3: rule__SignalPackage__WatchersAssignment_3_1
+            	    // InternalSignalDSL.g:3881:3: rule__SignalPackage__WatchersAssignment_3_1
             	    {
             	    pushFollow(FOLLOW_10);
             	    rule__SignalPackage__WatchersAssignment_3_1();
@@ -14245,7 +14375,7 @@
             	    break;
 
             	default :
-            	    break loop51;
+            	    break loop53;
                 }
             } while (true);
 
@@ -14274,22 +14404,17 @@
 
 
     // $ANTLR start "rule__SignalPackage__Group_3__2"
-    // InternalSignalDSL.g:3842:1: rule__SignalPackage__Group_3__2 : rule__SignalPackage__Group_3__2__Impl rule__SignalPackage__Group_3__3 ;
+    // InternalSignalDSL.g:3889: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:3846:1: ( rule__SignalPackage__Group_3__2__Impl rule__SignalPackage__Group_3__3 )
-            // InternalSignalDSL.g:3847:2: rule__SignalPackage__Group_3__2__Impl rule__SignalPackage__Group_3__3
+            // InternalSignalDSL.g:3893:1: ( rule__SignalPackage__Group_3__2__Impl )
+            // InternalSignalDSL.g:3894:2: rule__SignalPackage__Group_3__2__Impl
             {
-            pushFollow(FOLLOW_9);
-            rule__SignalPackage__Group_3__2__Impl();
-
-            state._fsp--;
-            if (state.failed) return ;
             pushFollow(FOLLOW_2);
-            rule__SignalPackage__Group_3__3();
+            rule__SignalPackage__Group_3__2__Impl();
 
             state._fsp--;
             if (state.failed) return ;
@@ -14312,52 +14437,24 @@
 
 
     // $ANTLR start "rule__SignalPackage__Group_3__2__Impl"
-    // InternalSignalDSL.g:3854:1: rule__SignalPackage__Group_3__2__Impl : ( ( rule__SignalPackage__HandlersAssignment_3_2 )* ) ;
+    // InternalSignalDSL.g:3900:1: rule__SignalPackage__Group_3__2__Impl : ( '}' ) ;
     public final void rule__SignalPackage__Group_3__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:3858:1: ( ( ( rule__SignalPackage__HandlersAssignment_3_2 )* ) )
-            // InternalSignalDSL.g:3859:1: ( ( rule__SignalPackage__HandlersAssignment_3_2 )* )
+            // InternalSignalDSL.g:3904:1: ( ( '}' ) )
+            // InternalSignalDSL.g:3905:1: ( '}' )
             {
-            // InternalSignalDSL.g:3859:1: ( ( rule__SignalPackage__HandlersAssignment_3_2 )* )
-            // InternalSignalDSL.g:3860:2: ( rule__SignalPackage__HandlersAssignment_3_2 )*
+            // InternalSignalDSL.g:3905:1: ( '}' )
+            // InternalSignalDSL.g:3906:2: '}'
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getSignalPackageAccess().getHandlersAssignment_3_2()); 
+               before(grammarAccess.getSignalPackageAccess().getRightCurlyBracketKeyword_3_2()); 
             }
-            // InternalSignalDSL.g:3861:2: ( rule__SignalPackage__HandlersAssignment_3_2 )*
-            loop52:
-            do {
-                int alt52=2;
-                int LA52_0 = input.LA(1);
-
-                if ( (LA52_0==73) ) {
-                    alt52=1;
-                }
-
-
-                switch (alt52) {
-            	case 1 :
-            	    // InternalSignalDSL.g:3861:3: rule__SignalPackage__HandlersAssignment_3_2
-            	    {
-            	    pushFollow(FOLLOW_11);
-            	    rule__SignalPackage__HandlersAssignment_3_2();
-
-            	    state._fsp--;
-            	    if (state.failed) return ;
-
-            	    }
-            	    break;
-
-            	default :
-            	    break loop52;
-                }
-            } while (true);
-
+            match(input,65,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getSignalPackageAccess().getHandlersAssignment_3_2()); 
+               after(grammarAccess.getSignalPackageAccess().getRightCurlyBracketKeyword_3_2()); 
             }
 
             }
@@ -14380,91 +14477,17 @@
     // $ANTLR end "rule__SignalPackage__Group_3__2__Impl"
 
 
-    // $ANTLR start "rule__SignalPackage__Group_3__3"
-    // InternalSignalDSL.g:3869:1: rule__SignalPackage__Group_3__3 : rule__SignalPackage__Group_3__3__Impl ;
-    public final void rule__SignalPackage__Group_3__3() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-        	
-        try {
-            // InternalSignalDSL.g:3873:1: ( rule__SignalPackage__Group_3__3__Impl )
-            // InternalSignalDSL.g:3874:2: rule__SignalPackage__Group_3__3__Impl
-            {
-            pushFollow(FOLLOW_2);
-            rule__SignalPackage__Group_3__3__Impl();
-
-            state._fsp--;
-            if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__SignalPackage__Group_3__3"
-
-
-    // $ANTLR start "rule__SignalPackage__Group_3__3__Impl"
-    // InternalSignalDSL.g:3880:1: rule__SignalPackage__Group_3__3__Impl : ( '}' ) ;
-    public final void rule__SignalPackage__Group_3__3__Impl() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-        	
-        try {
-            // InternalSignalDSL.g:3884:1: ( ( '}' ) )
-            // InternalSignalDSL.g:3885:1: ( '}' )
-            {
-            // InternalSignalDSL.g:3885:1: ( '}' )
-            // InternalSignalDSL.g:3886:2: '}'
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getSignalPackageAccess().getRightCurlyBracketKeyword_3_3()); 
-            }
-            match(input,69,FOLLOW_2); if (state.failed) return ;
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getSignalPackageAccess().getRightCurlyBracketKeyword_3_3()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__SignalPackage__Group_3__3__Impl"
-
-
     // $ANTLR start "rule__SignalWatcher__Group__0"
-    // InternalSignalDSL.g:3896:1: rule__SignalWatcher__Group__0 : rule__SignalWatcher__Group__0__Impl rule__SignalWatcher__Group__1 ;
+    // InternalSignalDSL.g:3916: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:3900:1: ( rule__SignalWatcher__Group__0__Impl rule__SignalWatcher__Group__1 )
-            // InternalSignalDSL.g:3901:2: rule__SignalWatcher__Group__0__Impl rule__SignalWatcher__Group__1
+            // InternalSignalDSL.g:3920:1: ( rule__SignalWatcher__Group__0__Impl rule__SignalWatcher__Group__1 )
+            // InternalSignalDSL.g:3921:2: rule__SignalWatcher__Group__0__Impl rule__SignalWatcher__Group__1
             {
-            pushFollow(FOLLOW_12);
+            pushFollow(FOLLOW_11);
             rule__SignalWatcher__Group__0__Impl();
 
             state._fsp--;
@@ -14493,23 +14516,23 @@
 
 
     // $ANTLR start "rule__SignalWatcher__Group__0__Impl"
-    // InternalSignalDSL.g:3908:1: rule__SignalWatcher__Group__0__Impl : ( () ) ;
+    // InternalSignalDSL.g:3928:1: rule__SignalWatcher__Group__0__Impl : ( () ) ;
     public final void rule__SignalWatcher__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:3912:1: ( ( () ) )
-            // InternalSignalDSL.g:3913:1: ( () )
+            // InternalSignalDSL.g:3932:1: ( ( () ) )
+            // InternalSignalDSL.g:3933:1: ( () )
             {
-            // InternalSignalDSL.g:3913:1: ( () )
-            // InternalSignalDSL.g:3914:2: ()
+            // InternalSignalDSL.g:3933:1: ( () )
+            // InternalSignalDSL.g:3934:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSignalWatcherAccess().getSignalWatcherAction_0()); 
             }
-            // InternalSignalDSL.g:3915:2: ()
-            // InternalSignalDSL.g:3915:3: 
+            // InternalSignalDSL.g:3935:2: ()
+            // InternalSignalDSL.g:3935:3: 
             {
             }
 
@@ -14534,14 +14557,14 @@
 
 
     // $ANTLR start "rule__SignalWatcher__Group__1"
-    // InternalSignalDSL.g:3923:1: rule__SignalWatcher__Group__1 : rule__SignalWatcher__Group__1__Impl rule__SignalWatcher__Group__2 ;
+    // InternalSignalDSL.g:3943: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:3927:1: ( rule__SignalWatcher__Group__1__Impl rule__SignalWatcher__Group__2 )
-            // InternalSignalDSL.g:3928:2: rule__SignalWatcher__Group__1__Impl rule__SignalWatcher__Group__2
+            // InternalSignalDSL.g:3947:1: ( rule__SignalWatcher__Group__1__Impl rule__SignalWatcher__Group__2 )
+            // InternalSignalDSL.g:3948:2: rule__SignalWatcher__Group__1__Impl rule__SignalWatcher__Group__2
             {
             pushFollow(FOLLOW_7);
             rule__SignalWatcher__Group__1__Impl();
@@ -14572,22 +14595,22 @@
 
 
     // $ANTLR start "rule__SignalWatcher__Group__1__Impl"
-    // InternalSignalDSL.g:3935:1: rule__SignalWatcher__Group__1__Impl : ( 'watcher' ) ;
+    // InternalSignalDSL.g:3955:1: rule__SignalWatcher__Group__1__Impl : ( 'watcher' ) ;
     public final void rule__SignalWatcher__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:3939:1: ( ( 'watcher' ) )
-            // InternalSignalDSL.g:3940:1: ( 'watcher' )
+            // InternalSignalDSL.g:3959:1: ( ( 'watcher' ) )
+            // InternalSignalDSL.g:3960:1: ( 'watcher' )
             {
-            // InternalSignalDSL.g:3940:1: ( 'watcher' )
-            // InternalSignalDSL.g:3941:2: 'watcher'
+            // InternalSignalDSL.g:3960:1: ( 'watcher' )
+            // InternalSignalDSL.g:3961:2: 'watcher'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSignalWatcherAccess().getWatcherKeyword_1()); 
             }
-            match(input,70,FOLLOW_2); if (state.failed) return ;
+            match(input,66,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getSignalWatcherAccess().getWatcherKeyword_1()); 
             }
@@ -14613,16 +14636,16 @@
 
 
     // $ANTLR start "rule__SignalWatcher__Group__2"
-    // InternalSignalDSL.g:3950:1: rule__SignalWatcher__Group__2 : rule__SignalWatcher__Group__2__Impl rule__SignalWatcher__Group__3 ;
+    // InternalSignalDSL.g:3970: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:3954:1: ( rule__SignalWatcher__Group__2__Impl rule__SignalWatcher__Group__3 )
-            // InternalSignalDSL.g:3955:2: rule__SignalWatcher__Group__2__Impl rule__SignalWatcher__Group__3
+            // InternalSignalDSL.g:3974:1: ( rule__SignalWatcher__Group__2__Impl rule__SignalWatcher__Group__3 )
+            // InternalSignalDSL.g:3975:2: rule__SignalWatcher__Group__2__Impl rule__SignalWatcher__Group__3
             {
-            pushFollow(FOLLOW_13);
+            pushFollow(FOLLOW_12);
             rule__SignalWatcher__Group__2__Impl();
 
             state._fsp--;
@@ -14651,23 +14674,23 @@
 
 
     // $ANTLR start "rule__SignalWatcher__Group__2__Impl"
-    // InternalSignalDSL.g:3962:1: rule__SignalWatcher__Group__2__Impl : ( ( rule__SignalWatcher__NameAssignment_2 ) ) ;
+    // InternalSignalDSL.g:3982: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:3966:1: ( ( ( rule__SignalWatcher__NameAssignment_2 ) ) )
-            // InternalSignalDSL.g:3967:1: ( ( rule__SignalWatcher__NameAssignment_2 ) )
+            // InternalSignalDSL.g:3986:1: ( ( ( rule__SignalWatcher__NameAssignment_2 ) ) )
+            // InternalSignalDSL.g:3987:1: ( ( rule__SignalWatcher__NameAssignment_2 ) )
             {
-            // InternalSignalDSL.g:3967:1: ( ( rule__SignalWatcher__NameAssignment_2 ) )
-            // InternalSignalDSL.g:3968:2: ( rule__SignalWatcher__NameAssignment_2 )
+            // InternalSignalDSL.g:3987:1: ( ( rule__SignalWatcher__NameAssignment_2 ) )
+            // InternalSignalDSL.g:3988:2: ( rule__SignalWatcher__NameAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSignalWatcherAccess().getNameAssignment_2()); 
             }
-            // InternalSignalDSL.g:3969:2: ( rule__SignalWatcher__NameAssignment_2 )
-            // InternalSignalDSL.g:3969:3: rule__SignalWatcher__NameAssignment_2
+            // InternalSignalDSL.g:3989:2: ( rule__SignalWatcher__NameAssignment_2 )
+            // InternalSignalDSL.g:3989:3: rule__SignalWatcher__NameAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__SignalWatcher__NameAssignment_2();
@@ -14702,16 +14725,16 @@
 
 
     // $ANTLR start "rule__SignalWatcher__Group__3"
-    // InternalSignalDSL.g:3977:1: rule__SignalWatcher__Group__3 : rule__SignalWatcher__Group__3__Impl rule__SignalWatcher__Group__4 ;
+    // InternalSignalDSL.g:3997: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:3981:1: ( rule__SignalWatcher__Group__3__Impl rule__SignalWatcher__Group__4 )
-            // InternalSignalDSL.g:3982:2: rule__SignalWatcher__Group__3__Impl rule__SignalWatcher__Group__4
+            // InternalSignalDSL.g:4001:1: ( rule__SignalWatcher__Group__3__Impl rule__SignalWatcher__Group__4 )
+            // InternalSignalDSL.g:4002:2: rule__SignalWatcher__Group__3__Impl rule__SignalWatcher__Group__4
             {
-            pushFollow(FOLLOW_14);
+            pushFollow(FOLLOW_13);
             rule__SignalWatcher__Group__3__Impl();
 
             state._fsp--;
@@ -14740,22 +14763,22 @@
 
 
     // $ANTLR start "rule__SignalWatcher__Group__3__Impl"
-    // InternalSignalDSL.g:3989:1: rule__SignalWatcher__Group__3__Impl : ( 'directory' ) ;
+    // InternalSignalDSL.g:4009:1: rule__SignalWatcher__Group__3__Impl : ( 'directory' ) ;
     public final void rule__SignalWatcher__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:3993:1: ( ( 'directory' ) )
-            // InternalSignalDSL.g:3994:1: ( 'directory' )
+            // InternalSignalDSL.g:4013:1: ( ( 'directory' ) )
+            // InternalSignalDSL.g:4014:1: ( 'directory' )
             {
-            // InternalSignalDSL.g:3994:1: ( 'directory' )
-            // InternalSignalDSL.g:3995:2: 'directory'
+            // InternalSignalDSL.g:4014:1: ( 'directory' )
+            // InternalSignalDSL.g:4015:2: 'directory'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSignalWatcherAccess().getDirectoryKeyword_3()); 
             }
-            match(input,71,FOLLOW_2); if (state.failed) return ;
+            match(input,67,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getSignalWatcherAccess().getDirectoryKeyword_3()); 
             }
@@ -14781,16 +14804,16 @@
 
 
     // $ANTLR start "rule__SignalWatcher__Group__4"
-    // InternalSignalDSL.g:4004:1: rule__SignalWatcher__Group__4 : rule__SignalWatcher__Group__4__Impl rule__SignalWatcher__Group__5 ;
+    // InternalSignalDSL.g:4024: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:4008:1: ( rule__SignalWatcher__Group__4__Impl rule__SignalWatcher__Group__5 )
-            // InternalSignalDSL.g:4009:2: rule__SignalWatcher__Group__4__Impl rule__SignalWatcher__Group__5
+            // InternalSignalDSL.g:4028:1: ( rule__SignalWatcher__Group__4__Impl rule__SignalWatcher__Group__5 )
+            // InternalSignalDSL.g:4029:2: rule__SignalWatcher__Group__4__Impl rule__SignalWatcher__Group__5
             {
-            pushFollow(FOLLOW_15);
+            pushFollow(FOLLOW_14);
             rule__SignalWatcher__Group__4__Impl();
 
             state._fsp--;
@@ -14819,23 +14842,23 @@
 
 
     // $ANTLR start "rule__SignalWatcher__Group__4__Impl"
-    // InternalSignalDSL.g:4016:1: rule__SignalWatcher__Group__4__Impl : ( ( rule__SignalWatcher__DirectoryAssignment_4 ) ) ;
+    // InternalSignalDSL.g:4036:1: rule__SignalWatcher__Group__4__Impl : ( ( rule__SignalWatcher__DirectoryAssignment_4 ) ) ;
     public final void rule__SignalWatcher__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:4020:1: ( ( ( rule__SignalWatcher__DirectoryAssignment_4 ) ) )
-            // InternalSignalDSL.g:4021:1: ( ( rule__SignalWatcher__DirectoryAssignment_4 ) )
+            // InternalSignalDSL.g:4040:1: ( ( ( rule__SignalWatcher__DirectoryAssignment_4 ) ) )
+            // InternalSignalDSL.g:4041:1: ( ( rule__SignalWatcher__DirectoryAssignment_4 ) )
             {
-            // InternalSignalDSL.g:4021:1: ( ( rule__SignalWatcher__DirectoryAssignment_4 ) )
-            // InternalSignalDSL.g:4022:2: ( rule__SignalWatcher__DirectoryAssignment_4 )
+            // InternalSignalDSL.g:4041:1: ( ( rule__SignalWatcher__DirectoryAssignment_4 ) )
+            // InternalSignalDSL.g:4042:2: ( rule__SignalWatcher__DirectoryAssignment_4 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSignalWatcherAccess().getDirectoryAssignment_4()); 
             }
-            // InternalSignalDSL.g:4023:2: ( rule__SignalWatcher__DirectoryAssignment_4 )
-            // InternalSignalDSL.g:4023:3: rule__SignalWatcher__DirectoryAssignment_4
+            // InternalSignalDSL.g:4043:2: ( rule__SignalWatcher__DirectoryAssignment_4 )
+            // InternalSignalDSL.g:4043:3: rule__SignalWatcher__DirectoryAssignment_4
             {
             pushFollow(FOLLOW_2);
             rule__SignalWatcher__DirectoryAssignment_4();
@@ -14870,16 +14893,16 @@
 
 
     // $ANTLR start "rule__SignalWatcher__Group__5"
-    // InternalSignalDSL.g:4031:1: rule__SignalWatcher__Group__5 : rule__SignalWatcher__Group__5__Impl rule__SignalWatcher__Group__6 ;
+    // InternalSignalDSL.g:4051: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:4035:1: ( rule__SignalWatcher__Group__5__Impl rule__SignalWatcher__Group__6 )
-            // InternalSignalDSL.g:4036:2: rule__SignalWatcher__Group__5__Impl rule__SignalWatcher__Group__6
+            // InternalSignalDSL.g:4055:1: ( rule__SignalWatcher__Group__5__Impl rule__SignalWatcher__Group__6 )
+            // InternalSignalDSL.g:4056:2: rule__SignalWatcher__Group__5__Impl rule__SignalWatcher__Group__6
             {
-            pushFollow(FOLLOW_16);
+            pushFollow(FOLLOW_15);
             rule__SignalWatcher__Group__5__Impl();
 
             state._fsp--;
@@ -14908,22 +14931,22 @@
 
 
     // $ANTLR start "rule__SignalWatcher__Group__5__Impl"
-    // InternalSignalDSL.g:4043:1: rule__SignalWatcher__Group__5__Impl : ( 'for' ) ;
+    // InternalSignalDSL.g:4063:1: rule__SignalWatcher__Group__5__Impl : ( 'for' ) ;
     public final void rule__SignalWatcher__Group__5__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:4047:1: ( ( 'for' ) )
-            // InternalSignalDSL.g:4048:1: ( 'for' )
+            // InternalSignalDSL.g:4067:1: ( ( 'for' ) )
+            // InternalSignalDSL.g:4068:1: ( 'for' )
             {
-            // InternalSignalDSL.g:4048:1: ( 'for' )
-            // InternalSignalDSL.g:4049:2: 'for'
+            // InternalSignalDSL.g:4068:1: ( 'for' )
+            // InternalSignalDSL.g:4069:2: 'for'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSignalWatcherAccess().getForKeyword_5()); 
             }
-            match(input,72,FOLLOW_2); if (state.failed) return ;
+            match(input,68,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getSignalWatcherAccess().getForKeyword_5()); 
             }
@@ -14949,20 +14972,25 @@
 
 
     // $ANTLR start "rule__SignalWatcher__Group__6"
-    // InternalSignalDSL.g:4058:1: rule__SignalWatcher__Group__6 : rule__SignalWatcher__Group__6__Impl ;
+    // InternalSignalDSL.g:4078: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:4062:1: ( rule__SignalWatcher__Group__6__Impl )
-            // InternalSignalDSL.g:4063:2: rule__SignalWatcher__Group__6__Impl
+            // InternalSignalDSL.g:4082:1: ( rule__SignalWatcher__Group__6__Impl rule__SignalWatcher__Group__7 )
+            // InternalSignalDSL.g:4083:2: rule__SignalWatcher__Group__6__Impl rule__SignalWatcher__Group__7
             {
-            pushFollow(FOLLOW_2);
+            pushFollow(FOLLOW_8);
             rule__SignalWatcher__Group__6__Impl();
 
             state._fsp--;
             if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__SignalWatcher__Group__7();
+
+            state._fsp--;
+            if (state.failed) return ;
 
             }
 
@@ -14982,23 +15010,23 @@
 
 
     // $ANTLR start "rule__SignalWatcher__Group__6__Impl"
-    // InternalSignalDSL.g:4069:1: rule__SignalWatcher__Group__6__Impl : ( ( rule__SignalWatcher__SignalAssignment_6 ) ) ;
+    // InternalSignalDSL.g:4090:1: rule__SignalWatcher__Group__6__Impl : ( ( rule__SignalWatcher__SignalAssignment_6 ) ) ;
     public final void rule__SignalWatcher__Group__6__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:4073:1: ( ( ( rule__SignalWatcher__SignalAssignment_6 ) ) )
-            // InternalSignalDSL.g:4074:1: ( ( rule__SignalWatcher__SignalAssignment_6 ) )
+            // InternalSignalDSL.g:4094:1: ( ( ( rule__SignalWatcher__SignalAssignment_6 ) ) )
+            // InternalSignalDSL.g:4095:1: ( ( rule__SignalWatcher__SignalAssignment_6 ) )
             {
-            // InternalSignalDSL.g:4074:1: ( ( rule__SignalWatcher__SignalAssignment_6 ) )
-            // InternalSignalDSL.g:4075:2: ( rule__SignalWatcher__SignalAssignment_6 )
+            // InternalSignalDSL.g:4095:1: ( ( rule__SignalWatcher__SignalAssignment_6 ) )
+            // InternalSignalDSL.g:4096:2: ( rule__SignalWatcher__SignalAssignment_6 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSignalWatcherAccess().getSignalAssignment_6()); 
             }
-            // InternalSignalDSL.g:4076:2: ( rule__SignalWatcher__SignalAssignment_6 )
-            // InternalSignalDSL.g:4076:3: rule__SignalWatcher__SignalAssignment_6
+            // InternalSignalDSL.g:4097:2: ( rule__SignalWatcher__SignalAssignment_6 )
+            // InternalSignalDSL.g:4097:3: rule__SignalWatcher__SignalAssignment_6
             {
             pushFollow(FOLLOW_2);
             rule__SignalWatcher__SignalAssignment_6();
@@ -15032,17 +15060,277 @@
     // $ANTLR end "rule__SignalWatcher__Group__6__Impl"
 
 
+    // $ANTLR start "rule__SignalWatcher__Group__7"
+    // InternalSignalDSL.g:4105: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:4109:1: ( rule__SignalWatcher__Group__7__Impl rule__SignalWatcher__Group__8 )
+            // InternalSignalDSL.g:4110:2: rule__SignalWatcher__Group__7__Impl rule__SignalWatcher__Group__8
+            {
+            pushFollow(FOLLOW_16);
+            rule__SignalWatcher__Group__7__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__SignalWatcher__Group__8();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SignalWatcher__Group__7"
+
+
+    // $ANTLR start "rule__SignalWatcher__Group__7__Impl"
+    // InternalSignalDSL.g:4117:1: rule__SignalWatcher__Group__7__Impl : ( '{' ) ;
+    public final void rule__SignalWatcher__Group__7__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalSignalDSL.g:4121:1: ( ( '{' ) )
+            // InternalSignalDSL.g:4122:1: ( '{' )
+            {
+            // InternalSignalDSL.g:4122:1: ( '{' )
+            // InternalSignalDSL.g:4123:2: '{'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getSignalWatcherAccess().getLeftCurlyBracketKeyword_7()); 
+            }
+            match(input,64,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getSignalWatcherAccess().getLeftCurlyBracketKeyword_7()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SignalWatcher__Group__7__Impl"
+
+
+    // $ANTLR start "rule__SignalWatcher__Group__8"
+    // InternalSignalDSL.g:4132: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:4136:1: ( rule__SignalWatcher__Group__8__Impl rule__SignalWatcher__Group__9 )
+            // InternalSignalDSL.g:4137:2: rule__SignalWatcher__Group__8__Impl rule__SignalWatcher__Group__9
+            {
+            pushFollow(FOLLOW_16);
+            rule__SignalWatcher__Group__8__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__SignalWatcher__Group__9();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SignalWatcher__Group__8"
+
+
+    // $ANTLR start "rule__SignalWatcher__Group__8__Impl"
+    // InternalSignalDSL.g:4144:1: rule__SignalWatcher__Group__8__Impl : ( ( rule__SignalWatcher__HandlersAssignment_8 )* ) ;
+    public final void rule__SignalWatcher__Group__8__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalSignalDSL.g:4148:1: ( ( ( rule__SignalWatcher__HandlersAssignment_8 )* ) )
+            // InternalSignalDSL.g:4149:1: ( ( rule__SignalWatcher__HandlersAssignment_8 )* )
+            {
+            // InternalSignalDSL.g:4149:1: ( ( rule__SignalWatcher__HandlersAssignment_8 )* )
+            // InternalSignalDSL.g:4150:2: ( rule__SignalWatcher__HandlersAssignment_8 )*
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getSignalWatcherAccess().getHandlersAssignment_8()); 
+            }
+            // InternalSignalDSL.g:4151:2: ( rule__SignalWatcher__HandlersAssignment_8 )*
+            loop54:
+            do {
+                int alt54=2;
+                int LA54_0 = input.LA(1);
+
+                if ( (LA54_0==69) ) {
+                    alt54=1;
+                }
+
+
+                switch (alt54) {
+            	case 1 :
+            	    // InternalSignalDSL.g:4151:3: rule__SignalWatcher__HandlersAssignment_8
+            	    {
+            	    pushFollow(FOLLOW_17);
+            	    rule__SignalWatcher__HandlersAssignment_8();
+
+            	    state._fsp--;
+            	    if (state.failed) return ;
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop54;
+                }
+            } while (true);
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getSignalWatcherAccess().getHandlersAssignment_8()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SignalWatcher__Group__8__Impl"
+
+
+    // $ANTLR start "rule__SignalWatcher__Group__9"
+    // InternalSignalDSL.g:4159:1: rule__SignalWatcher__Group__9 : rule__SignalWatcher__Group__9__Impl ;
+    public final void rule__SignalWatcher__Group__9() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalSignalDSL.g:4163:1: ( rule__SignalWatcher__Group__9__Impl )
+            // InternalSignalDSL.g:4164:2: rule__SignalWatcher__Group__9__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__SignalWatcher__Group__9__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"
+
+
+    // $ANTLR start "rule__SignalWatcher__Group__9__Impl"
+    // InternalSignalDSL.g:4170:1: rule__SignalWatcher__Group__9__Impl : ( '}' ) ;
+    public final void rule__SignalWatcher__Group__9__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalSignalDSL.g:4174:1: ( ( '}' ) )
+            // InternalSignalDSL.g:4175:1: ( '}' )
+            {
+            // InternalSignalDSL.g:4175:1: ( '}' )
+            // InternalSignalDSL.g:4176:2: '}'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getSignalWatcherAccess().getRightCurlyBracketKeyword_9()); 
+            }
+            match(input,65,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getSignalWatcherAccess().getRightCurlyBracketKeyword_9()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SignalWatcher__Group__9__Impl"
+
+
     // $ANTLR start "rule__SignalHandler__Group__0"
-    // InternalSignalDSL.g:4085:1: rule__SignalHandler__Group__0 : rule__SignalHandler__Group__0__Impl rule__SignalHandler__Group__1 ;
+    // InternalSignalDSL.g:4186:1: rule__SignalHandler__Group__0 : rule__SignalHandler__Group__0__Impl rule__SignalHandler__Group__1 ;
     public final void rule__SignalHandler__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:4089:1: ( rule__SignalHandler__Group__0__Impl rule__SignalHandler__Group__1 )
-            // InternalSignalDSL.g:4090:2: rule__SignalHandler__Group__0__Impl rule__SignalHandler__Group__1
+            // InternalSignalDSL.g:4190:1: ( rule__SignalHandler__Group__0__Impl rule__SignalHandler__Group__1 )
+            // InternalSignalDSL.g:4191:2: rule__SignalHandler__Group__0__Impl rule__SignalHandler__Group__1
             {
-            pushFollow(FOLLOW_17);
+            pushFollow(FOLLOW_18);
             rule__SignalHandler__Group__0__Impl();
 
             state._fsp--;
@@ -15071,23 +15359,23 @@
 
 
     // $ANTLR start "rule__SignalHandler__Group__0__Impl"
-    // InternalSignalDSL.g:4097:1: rule__SignalHandler__Group__0__Impl : ( () ) ;
+    // InternalSignalDSL.g:4198:1: rule__SignalHandler__Group__0__Impl : ( () ) ;
     public final void rule__SignalHandler__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:4101:1: ( ( () ) )
-            // InternalSignalDSL.g:4102:1: ( () )
+            // InternalSignalDSL.g:4202:1: ( ( () ) )
+            // InternalSignalDSL.g:4203:1: ( () )
             {
-            // InternalSignalDSL.g:4102:1: ( () )
-            // InternalSignalDSL.g:4103:2: ()
+            // InternalSignalDSL.g:4203:1: ( () )
+            // InternalSignalDSL.g:4204:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSignalHandlerAccess().getSignalHandlerAction_0()); 
             }
-            // InternalSignalDSL.g:4104:2: ()
-            // InternalSignalDSL.g:4104:3: 
+            // InternalSignalDSL.g:4205:2: ()
+            // InternalSignalDSL.g:4205:3: 
             {
             }
 
@@ -15112,14 +15400,14 @@
 
 
     // $ANTLR start "rule__SignalHandler__Group__1"
-    // InternalSignalDSL.g:4112:1: rule__SignalHandler__Group__1 : rule__SignalHandler__Group__1__Impl rule__SignalHandler__Group__2 ;
+    // InternalSignalDSL.g:4213:1: rule__SignalHandler__Group__1 : rule__SignalHandler__Group__1__Impl rule__SignalHandler__Group__2 ;
     public final void rule__SignalHandler__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:4116:1: ( rule__SignalHandler__Group__1__Impl rule__SignalHandler__Group__2 )
-            // InternalSignalDSL.g:4117:2: rule__SignalHandler__Group__1__Impl rule__SignalHandler__Group__2
+            // InternalSignalDSL.g:4217:1: ( rule__SignalHandler__Group__1__Impl rule__SignalHandler__Group__2 )
+            // InternalSignalDSL.g:4218:2: rule__SignalHandler__Group__1__Impl rule__SignalHandler__Group__2
             {
             pushFollow(FOLLOW_7);
             rule__SignalHandler__Group__1__Impl();
@@ -15150,24 +15438,24 @@
 
 
     // $ANTLR start "rule__SignalHandler__Group__1__Impl"
-    // InternalSignalDSL.g:4124:1: rule__SignalHandler__Group__1__Impl : ( 'handlerOn' ) ;
+    // InternalSignalDSL.g:4225:1: rule__SignalHandler__Group__1__Impl : ( 'handler' ) ;
     public final void rule__SignalHandler__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:4128:1: ( ( 'handlerOn' ) )
-            // InternalSignalDSL.g:4129:1: ( 'handlerOn' )
+            // InternalSignalDSL.g:4229:1: ( ( 'handler' ) )
+            // InternalSignalDSL.g:4230:1: ( 'handler' )
             {
-            // InternalSignalDSL.g:4129:1: ( 'handlerOn' )
-            // InternalSignalDSL.g:4130:2: 'handlerOn'
+            // InternalSignalDSL.g:4230:1: ( 'handler' )
+            // InternalSignalDSL.g:4231:2: 'handler'
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getSignalHandlerAccess().getHandlerOnKeyword_1()); 
+               before(grammarAccess.getSignalHandlerAccess().getHandlerKeyword_1()); 
             }
-            match(input,73,FOLLOW_2); if (state.failed) return ;
+            match(input,69,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getSignalHandlerAccess().getHandlerOnKeyword_1()); 
+               after(grammarAccess.getSignalHandlerAccess().getHandlerKeyword_1()); 
             }
 
             }
@@ -15191,16 +15479,16 @@
 
 
     // $ANTLR start "rule__SignalHandler__Group__2"
-    // InternalSignalDSL.g:4139:1: rule__SignalHandler__Group__2 : rule__SignalHandler__Group__2__Impl rule__SignalHandler__Group__3 ;
+    // InternalSignalDSL.g:4240:1: rule__SignalHandler__Group__2 : rule__SignalHandler__Group__2__Impl rule__SignalHandler__Group__3 ;
     public final void rule__SignalHandler__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:4143:1: ( rule__SignalHandler__Group__2__Impl rule__SignalHandler__Group__3 )
-            // InternalSignalDSL.g:4144:2: rule__SignalHandler__Group__2__Impl rule__SignalHandler__Group__3
+            // InternalSignalDSL.g:4244:1: ( rule__SignalHandler__Group__2__Impl rule__SignalHandler__Group__3 )
+            // InternalSignalDSL.g:4245:2: rule__SignalHandler__Group__2__Impl rule__SignalHandler__Group__3
             {
-            pushFollow(FOLLOW_18);
+            pushFollow(FOLLOW_19);
             rule__SignalHandler__Group__2__Impl();
 
             state._fsp--;
@@ -15229,26 +15517,26 @@
 
 
     // $ANTLR start "rule__SignalHandler__Group__2__Impl"
-    // InternalSignalDSL.g:4151:1: rule__SignalHandler__Group__2__Impl : ( ( rule__SignalHandler__WatcherAssignment_2 ) ) ;
+    // InternalSignalDSL.g:4252:1: rule__SignalHandler__Group__2__Impl : ( ( rule__SignalHandler__NameAssignment_2 ) ) ;
     public final void rule__SignalHandler__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:4155:1: ( ( ( rule__SignalHandler__WatcherAssignment_2 ) ) )
-            // InternalSignalDSL.g:4156:1: ( ( rule__SignalHandler__WatcherAssignment_2 ) )
+            // InternalSignalDSL.g:4256:1: ( ( ( rule__SignalHandler__NameAssignment_2 ) ) )
+            // InternalSignalDSL.g:4257:1: ( ( rule__SignalHandler__NameAssignment_2 ) )
             {
-            // InternalSignalDSL.g:4156:1: ( ( rule__SignalHandler__WatcherAssignment_2 ) )
-            // InternalSignalDSL.g:4157:2: ( rule__SignalHandler__WatcherAssignment_2 )
+            // InternalSignalDSL.g:4257:1: ( ( rule__SignalHandler__NameAssignment_2 ) )
+            // InternalSignalDSL.g:4258:2: ( rule__SignalHandler__NameAssignment_2 )
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getSignalHandlerAccess().getWatcherAssignment_2()); 
+               before(grammarAccess.getSignalHandlerAccess().getNameAssignment_2()); 
             }
-            // InternalSignalDSL.g:4158:2: ( rule__SignalHandler__WatcherAssignment_2 )
-            // InternalSignalDSL.g:4158:3: rule__SignalHandler__WatcherAssignment_2
+            // InternalSignalDSL.g:4259:2: ( rule__SignalHandler__NameAssignment_2 )
+            // InternalSignalDSL.g:4259:3: rule__SignalHandler__NameAssignment_2
             {
             pushFollow(FOLLOW_2);
-            rule__SignalHandler__WatcherAssignment_2();
+            rule__SignalHandler__NameAssignment_2();
 
             state._fsp--;
             if (state.failed) return ;
@@ -15256,7 +15544,7 @@
             }
 
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getSignalHandlerAccess().getWatcherAssignment_2()); 
+               after(grammarAccess.getSignalHandlerAccess().getNameAssignment_2()); 
             }
 
             }
@@ -15280,20 +15568,25 @@
 
 
     // $ANTLR start "rule__SignalHandler__Group__3"
-    // InternalSignalDSL.g:4166:1: rule__SignalHandler__Group__3 : rule__SignalHandler__Group__3__Impl ;
+    // InternalSignalDSL.g:4267:1: rule__SignalHandler__Group__3 : rule__SignalHandler__Group__3__Impl rule__SignalHandler__Group__4 ;
     public final void rule__SignalHandler__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:4170:1: ( rule__SignalHandler__Group__3__Impl )
-            // InternalSignalDSL.g:4171:2: rule__SignalHandler__Group__3__Impl
+            // InternalSignalDSL.g:4271:1: ( rule__SignalHandler__Group__3__Impl rule__SignalHandler__Group__4 )
+            // InternalSignalDSL.g:4272:2: rule__SignalHandler__Group__3__Impl rule__SignalHandler__Group__4
             {
-            pushFollow(FOLLOW_2);
+            pushFollow(FOLLOW_20);
             rule__SignalHandler__Group__3__Impl();
 
             state._fsp--;
             if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__SignalHandler__Group__4();
+
+            state._fsp--;
+            if (state.failed) return ;
 
             }
 
@@ -15313,26 +15606,26 @@
 
 
     // $ANTLR start "rule__SignalHandler__Group__3__Impl"
-    // InternalSignalDSL.g:4177:1: rule__SignalHandler__Group__3__Impl : ( ( rule__SignalHandler__Group_3__0 ) ) ;
+    // InternalSignalDSL.g:4279:1: rule__SignalHandler__Group__3__Impl : ( ( rule__SignalHandler__ActionTypeAssignment_3 ) ) ;
     public final void rule__SignalHandler__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:4181:1: ( ( ( rule__SignalHandler__Group_3__0 ) ) )
-            // InternalSignalDSL.g:4182:1: ( ( rule__SignalHandler__Group_3__0 ) )
+            // InternalSignalDSL.g:4283:1: ( ( ( rule__SignalHandler__ActionTypeAssignment_3 ) ) )
+            // InternalSignalDSL.g:4284:1: ( ( rule__SignalHandler__ActionTypeAssignment_3 ) )
             {
-            // InternalSignalDSL.g:4182:1: ( ( rule__SignalHandler__Group_3__0 ) )
-            // InternalSignalDSL.g:4183:2: ( rule__SignalHandler__Group_3__0 )
+            // InternalSignalDSL.g:4284:1: ( ( rule__SignalHandler__ActionTypeAssignment_3 ) )
+            // InternalSignalDSL.g:4285:2: ( rule__SignalHandler__ActionTypeAssignment_3 )
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getSignalHandlerAccess().getGroup_3()); 
+               before(grammarAccess.getSignalHandlerAccess().getActionTypeAssignment_3()); 
             }
-            // InternalSignalDSL.g:4184:2: ( rule__SignalHandler__Group_3__0 )
-            // InternalSignalDSL.g:4184:3: rule__SignalHandler__Group_3__0
+            // InternalSignalDSL.g:4286:2: ( rule__SignalHandler__ActionTypeAssignment_3 )
+            // InternalSignalDSL.g:4286:3: rule__SignalHandler__ActionTypeAssignment_3
             {
             pushFollow(FOLLOW_2);
-            rule__SignalHandler__Group_3__0();
+            rule__SignalHandler__ActionTypeAssignment_3();
 
             state._fsp--;
             if (state.failed) return ;
@@ -15340,7 +15633,7 @@
             }
 
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getSignalHandlerAccess().getGroup_3()); 
+               after(grammarAccess.getSignalHandlerAccess().getActionTypeAssignment_3()); 
             }
 
             }
@@ -15363,23 +15656,23 @@
     // $ANTLR end "rule__SignalHandler__Group__3__Impl"
 
 
-    // $ANTLR start "rule__SignalHandler__Group_3__0"
-    // InternalSignalDSL.g:4193:1: rule__SignalHandler__Group_3__0 : rule__SignalHandler__Group_3__0__Impl rule__SignalHandler__Group_3__1 ;
-    public final void rule__SignalHandler__Group_3__0() throws RecognitionException {
+    // $ANTLR start "rule__SignalHandler__Group__4"
+    // InternalSignalDSL.g:4294:1: rule__SignalHandler__Group__4 : rule__SignalHandler__Group__4__Impl rule__SignalHandler__Group__5 ;
+    public final void rule__SignalHandler__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:4197:1: ( rule__SignalHandler__Group_3__0__Impl rule__SignalHandler__Group_3__1 )
-            // InternalSignalDSL.g:4198:2: rule__SignalHandler__Group_3__0__Impl rule__SignalHandler__Group_3__1
+            // InternalSignalDSL.g:4298:1: ( rule__SignalHandler__Group__4__Impl rule__SignalHandler__Group__5 )
+            // InternalSignalDSL.g:4299:2: rule__SignalHandler__Group__4__Impl rule__SignalHandler__Group__5
             {
-            pushFollow(FOLLOW_19);
-            rule__SignalHandler__Group_3__0__Impl();
+            pushFollow(FOLLOW_14);
+            rule__SignalHandler__Group__4__Impl();
 
             state._fsp--;
             if (state.failed) return ;
             pushFollow(FOLLOW_2);
-            rule__SignalHandler__Group_3__1();
+            rule__SignalHandler__Group__5();
 
             state._fsp--;
             if (state.failed) return ;
@@ -15398,30 +15691,30 @@
         }
         return ;
     }
-    // $ANTLR end "rule__SignalHandler__Group_3__0"
+    // $ANTLR end "rule__SignalHandler__Group__4"
 
 
-    // $ANTLR start "rule__SignalHandler__Group_3__0__Impl"
-    // InternalSignalDSL.g:4205:1: rule__SignalHandler__Group_3__0__Impl : ( ( rule__SignalHandler__HandlerAssignment_3_0 ) ) ;
-    public final void rule__SignalHandler__Group_3__0__Impl() throws RecognitionException {
+    // $ANTLR start "rule__SignalHandler__Group__4__Impl"
+    // InternalSignalDSL.g:4306:1: rule__SignalHandler__Group__4__Impl : ( ( rule__SignalHandler__DataAssignment_4 ) ) ;
+    public final void rule__SignalHandler__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:4209:1: ( ( ( rule__SignalHandler__HandlerAssignment_3_0 ) ) )
-            // InternalSignalDSL.g:4210:1: ( ( rule__SignalHandler__HandlerAssignment_3_0 ) )
+            // InternalSignalDSL.g:4310:1: ( ( ( rule__SignalHandler__DataAssignment_4 ) ) )
+            // InternalSignalDSL.g:4311:1: ( ( rule__SignalHandler__DataAssignment_4 ) )
             {
-            // InternalSignalDSL.g:4210:1: ( ( rule__SignalHandler__HandlerAssignment_3_0 ) )
-            // InternalSignalDSL.g:4211:2: ( rule__SignalHandler__HandlerAssignment_3_0 )
+            // InternalSignalDSL.g:4311:1: ( ( rule__SignalHandler__DataAssignment_4 ) )
+            // InternalSignalDSL.g:4312:2: ( rule__SignalHandler__DataAssignment_4 )
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getSignalHandlerAccess().getHandlerAssignment_3_0()); 
+               before(grammarAccess.getSignalHandlerAccess().getDataAssignment_4()); 
             }
-            // InternalSignalDSL.g:4212:2: ( rule__SignalHandler__HandlerAssignment_3_0 )
-            // InternalSignalDSL.g:4212:3: rule__SignalHandler__HandlerAssignment_3_0
+            // InternalSignalDSL.g:4313:2: ( rule__SignalHandler__DataAssignment_4 )
+            // InternalSignalDSL.g:4313:3: rule__SignalHandler__DataAssignment_4
             {
             pushFollow(FOLLOW_2);
-            rule__SignalHandler__HandlerAssignment_3_0();
+            rule__SignalHandler__DataAssignment_4();
 
             state._fsp--;
             if (state.failed) return ;
@@ -15429,7 +15722,7 @@
             }
 
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getSignalHandlerAccess().getHandlerAssignment_3_0()); 
+               after(grammarAccess.getSignalHandlerAccess().getDataAssignment_4()); 
             }
 
             }
@@ -15449,21 +15742,26 @@
         }
         return ;
     }
-    // $ANTLR end "rule__SignalHandler__Group_3__0__Impl"
+    // $ANTLR end "rule__SignalHandler__Group__4__Impl"
 
 
-    // $ANTLR start "rule__SignalHandler__Group_3__1"
-    // InternalSignalDSL.g:4220:1: rule__SignalHandler__Group_3__1 : rule__SignalHandler__Group_3__1__Impl ;
-    public final void rule__SignalHandler__Group_3__1() throws RecognitionException {
+    // $ANTLR start "rule__SignalHandler__Group__5"
+    // InternalSignalDSL.g:4321:1: rule__SignalHandler__Group__5 : rule__SignalHandler__Group__5__Impl rule__SignalHandler__Group__6 ;
+    public final void rule__SignalHandler__Group__5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:4224:1: ( rule__SignalHandler__Group_3__1__Impl )
-            // InternalSignalDSL.g:4225:2: rule__SignalHandler__Group_3__1__Impl
+            // InternalSignalDSL.g:4325:1: ( rule__SignalHandler__Group__5__Impl rule__SignalHandler__Group__6 )
+            // InternalSignalDSL.g:4326:2: rule__SignalHandler__Group__5__Impl rule__SignalHandler__Group__6
             {
+            pushFollow(FOLLOW_21);
+            rule__SignalHandler__Group__5__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
             pushFollow(FOLLOW_2);
-            rule__SignalHandler__Group_3__1__Impl();
+            rule__SignalHandler__Group__6();
 
             state._fsp--;
             if (state.failed) return ;
@@ -15482,38 +15780,438 @@
         }
         return ;
     }
-    // $ANTLR end "rule__SignalHandler__Group_3__1"
+    // $ANTLR end "rule__SignalHandler__Group__5"
 
 
-    // $ANTLR start "rule__SignalHandler__Group_3__1__Impl"
-    // InternalSignalDSL.g:4231:1: rule__SignalHandler__Group_3__1__Impl : ( ( rule__SignalHandler__NotificationAssignment_3_1 )? ) ;
-    public final void rule__SignalHandler__Group_3__1__Impl() throws RecognitionException {
+    // $ANTLR start "rule__SignalHandler__Group__5__Impl"
+    // InternalSignalDSL.g:4333:1: rule__SignalHandler__Group__5__Impl : ( 'for' ) ;
+    public final void rule__SignalHandler__Group__5__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:4235:1: ( ( ( rule__SignalHandler__NotificationAssignment_3_1 )? ) )
-            // InternalSignalDSL.g:4236:1: ( ( rule__SignalHandler__NotificationAssignment_3_1 )? )
+            // InternalSignalDSL.g:4337:1: ( ( 'for' ) )
+            // InternalSignalDSL.g:4338:1: ( 'for' )
             {
-            // InternalSignalDSL.g:4236:1: ( ( rule__SignalHandler__NotificationAssignment_3_1 )? )
-            // InternalSignalDSL.g:4237:2: ( rule__SignalHandler__NotificationAssignment_3_1 )?
+            // InternalSignalDSL.g:4338:1: ( 'for' )
+            // InternalSignalDSL.g:4339:2: 'for'
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getSignalHandlerAccess().getNotificationAssignment_3_1()); 
+               before(grammarAccess.getSignalHandlerAccess().getForKeyword_5()); 
             }
-            // InternalSignalDSL.g:4238:2: ( rule__SignalHandler__NotificationAssignment_3_1 )?
-            int alt53=2;
-            int LA53_0 = input.LA(1);
+            match(input,68,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getSignalHandlerAccess().getForKeyword_5()); 
+            }
 
-            if ( ((LA53_0>=55 && LA53_0<=58)) ) {
-                alt53=1;
             }
-            switch (alt53) {
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SignalHandler__Group__5__Impl"
+
+
+    // $ANTLR start "rule__SignalHandler__Group__6"
+    // InternalSignalDSL.g:4348:1: rule__SignalHandler__Group__6 : rule__SignalHandler__Group__6__Impl rule__SignalHandler__Group__7 ;
+    public final void rule__SignalHandler__Group__6() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalSignalDSL.g:4352:1: ( rule__SignalHandler__Group__6__Impl rule__SignalHandler__Group__7 )
+            // InternalSignalDSL.g:4353:2: rule__SignalHandler__Group__6__Impl rule__SignalHandler__Group__7
+            {
+            pushFollow(FOLLOW_13);
+            rule__SignalHandler__Group__6__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__SignalHandler__Group__7();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SignalHandler__Group__6"
+
+
+    // $ANTLR start "rule__SignalHandler__Group__6__Impl"
+    // InternalSignalDSL.g:4360:1: rule__SignalHandler__Group__6__Impl : ( 'fileMask' ) ;
+    public final void rule__SignalHandler__Group__6__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalSignalDSL.g:4364:1: ( ( 'fileMask' ) )
+            // InternalSignalDSL.g:4365:1: ( 'fileMask' )
+            {
+            // InternalSignalDSL.g:4365:1: ( 'fileMask' )
+            // InternalSignalDSL.g:4366:2: 'fileMask'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getSignalHandlerAccess().getFileMaskKeyword_6()); 
+            }
+            match(input,70,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getSignalHandlerAccess().getFileMaskKeyword_6()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SignalHandler__Group__6__Impl"
+
+
+    // $ANTLR start "rule__SignalHandler__Group__7"
+    // InternalSignalDSL.g:4375:1: rule__SignalHandler__Group__7 : rule__SignalHandler__Group__7__Impl ;
+    public final void rule__SignalHandler__Group__7() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalSignalDSL.g:4379:1: ( rule__SignalHandler__Group__7__Impl )
+            // InternalSignalDSL.g:4380:2: rule__SignalHandler__Group__7__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__SignalHandler__Group__7__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SignalHandler__Group__7"
+
+
+    // $ANTLR start "rule__SignalHandler__Group__7__Impl"
+    // InternalSignalDSL.g:4386:1: rule__SignalHandler__Group__7__Impl : ( ( rule__SignalHandler__FilemaskAssignment_7 ) ) ;
+    public final void rule__SignalHandler__Group__7__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalSignalDSL.g:4390:1: ( ( ( rule__SignalHandler__FilemaskAssignment_7 ) ) )
+            // InternalSignalDSL.g:4391:1: ( ( rule__SignalHandler__FilemaskAssignment_7 ) )
+            {
+            // InternalSignalDSL.g:4391:1: ( ( rule__SignalHandler__FilemaskAssignment_7 ) )
+            // InternalSignalDSL.g:4392:2: ( rule__SignalHandler__FilemaskAssignment_7 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getSignalHandlerAccess().getFilemaskAssignment_7()); 
+            }
+            // InternalSignalDSL.g:4393:2: ( rule__SignalHandler__FilemaskAssignment_7 )
+            // InternalSignalDSL.g:4393:3: rule__SignalHandler__FilemaskAssignment_7
+            {
+            pushFollow(FOLLOW_2);
+            rule__SignalHandler__FilemaskAssignment_7();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getSignalHandlerAccess().getFilemaskAssignment_7()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SignalHandler__Group__7__Impl"
+
+
+    // $ANTLR start "rule__ListTransfer__Group__0"
+    // InternalSignalDSL.g:4402:1: rule__ListTransfer__Group__0 : rule__ListTransfer__Group__0__Impl rule__ListTransfer__Group__1 ;
+    public final void rule__ListTransfer__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalSignalDSL.g:4406:1: ( rule__ListTransfer__Group__0__Impl rule__ListTransfer__Group__1 )
+            // InternalSignalDSL.g:4407:2: rule__ListTransfer__Group__0__Impl rule__ListTransfer__Group__1
+            {
+            pushFollow(FOLLOW_20);
+            rule__ListTransfer__Group__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__ListTransfer__Group__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ListTransfer__Group__0"
+
+
+    // $ANTLR start "rule__ListTransfer__Group__0__Impl"
+    // InternalSignalDSL.g:4414:1: rule__ListTransfer__Group__0__Impl : ( () ) ;
+    public final void rule__ListTransfer__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalSignalDSL.g:4418:1: ( ( () ) )
+            // InternalSignalDSL.g:4419:1: ( () )
+            {
+            // InternalSignalDSL.g:4419:1: ( () )
+            // InternalSignalDSL.g:4420:2: ()
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getListTransferAccess().getListTransferAction_0()); 
+            }
+            // InternalSignalDSL.g:4421:2: ()
+            // InternalSignalDSL.g:4421:3: 
+            {
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getListTransferAccess().getListTransferAction_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ListTransfer__Group__0__Impl"
+
+
+    // $ANTLR start "rule__ListTransfer__Group__1"
+    // InternalSignalDSL.g:4429:1: rule__ListTransfer__Group__1 : rule__ListTransfer__Group__1__Impl rule__ListTransfer__Group__2 ;
+    public final void rule__ListTransfer__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalSignalDSL.g:4433:1: ( rule__ListTransfer__Group__1__Impl rule__ListTransfer__Group__2 )
+            // InternalSignalDSL.g:4434:2: rule__ListTransfer__Group__1__Impl rule__ListTransfer__Group__2
+            {
+            pushFollow(FOLLOW_22);
+            rule__ListTransfer__Group__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__ListTransfer__Group__2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ListTransfer__Group__1"
+
+
+    // $ANTLR start "rule__ListTransfer__Group__1__Impl"
+    // InternalSignalDSL.g:4441:1: rule__ListTransfer__Group__1__Impl : ( 'DataTransfer' ) ;
+    public final void rule__ListTransfer__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalSignalDSL.g:4445:1: ( ( 'DataTransfer' ) )
+            // InternalSignalDSL.g:4446:1: ( 'DataTransfer' )
+            {
+            // InternalSignalDSL.g:4446:1: ( 'DataTransfer' )
+            // InternalSignalDSL.g:4447:2: 'DataTransfer'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getListTransferAccess().getDataTransferKeyword_1()); 
+            }
+            match(input,71,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getListTransferAccess().getDataTransferKeyword_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ListTransfer__Group__1__Impl"
+
+
+    // $ANTLR start "rule__ListTransfer__Group__2"
+    // InternalSignalDSL.g:4456:1: rule__ListTransfer__Group__2 : rule__ListTransfer__Group__2__Impl rule__ListTransfer__Group__3 ;
+    public final void rule__ListTransfer__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalSignalDSL.g:4460:1: ( rule__ListTransfer__Group__2__Impl rule__ListTransfer__Group__3 )
+            // InternalSignalDSL.g:4461:2: rule__ListTransfer__Group__2__Impl rule__ListTransfer__Group__3
+            {
+            pushFollow(FOLLOW_22);
+            rule__ListTransfer__Group__2__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__ListTransfer__Group__3();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ListTransfer__Group__2"
+
+
+    // $ANTLR start "rule__ListTransfer__Group__2__Impl"
+    // InternalSignalDSL.g:4468:1: rule__ListTransfer__Group__2__Impl : ( ( rule__ListTransfer__ExecutiontypeAssignment_2 )? ) ;
+    public final void rule__ListTransfer__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalSignalDSL.g:4472:1: ( ( ( rule__ListTransfer__ExecutiontypeAssignment_2 )? ) )
+            // InternalSignalDSL.g:4473:1: ( ( rule__ListTransfer__ExecutiontypeAssignment_2 )? )
+            {
+            // InternalSignalDSL.g:4473:1: ( ( rule__ListTransfer__ExecutiontypeAssignment_2 )? )
+            // InternalSignalDSL.g:4474:2: ( rule__ListTransfer__ExecutiontypeAssignment_2 )?
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getListTransferAccess().getExecutiontypeAssignment_2()); 
+            }
+            // InternalSignalDSL.g:4475:2: ( rule__ListTransfer__ExecutiontypeAssignment_2 )?
+            int alt55=2;
+            int LA55_0 = input.LA(1);
+
+            if ( ((LA55_0>=61 && LA55_0<=62)) ) {
+                alt55=1;
+            }
+            switch (alt55) {
                 case 1 :
-                    // InternalSignalDSL.g:4238:3: rule__SignalHandler__NotificationAssignment_3_1
+                    // InternalSignalDSL.g:4475:3: rule__ListTransfer__ExecutiontypeAssignment_2
                     {
                     pushFollow(FOLLOW_2);
-                    rule__SignalHandler__NotificationAssignment_3_1();
+                    rule__ListTransfer__ExecutiontypeAssignment_2();
 
                     state._fsp--;
                     if (state.failed) return ;
@@ -15524,7 +16222,7 @@
             }
 
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getSignalHandlerAccess().getNotificationAssignment_3_1()); 
+               after(grammarAccess.getListTransferAccess().getExecutiontypeAssignment_2()); 
             }
 
             }
@@ -15544,26 +16242,26 @@
         }
         return ;
     }
-    // $ANTLR end "rule__SignalHandler__Group_3__1__Impl"
+    // $ANTLR end "rule__ListTransfer__Group__2__Impl"
 
 
-    // $ANTLR start "rule__SignalNotification__Group__0"
-    // InternalSignalDSL.g:4247:1: rule__SignalNotification__Group__0 : rule__SignalNotification__Group__0__Impl rule__SignalNotification__Group__1 ;
-    public final void rule__SignalNotification__Group__0() throws RecognitionException {
+    // $ANTLR start "rule__ListTransfer__Group__3"
+    // InternalSignalDSL.g:4483:1: rule__ListTransfer__Group__3 : rule__ListTransfer__Group__3__Impl rule__ListTransfer__Group__4 ;
+    public final void rule__ListTransfer__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:4251:1: ( rule__SignalNotification__Group__0__Impl rule__SignalNotification__Group__1 )
-            // InternalSignalDSL.g:4252:2: rule__SignalNotification__Group__0__Impl rule__SignalNotification__Group__1
+            // InternalSignalDSL.g:4487:1: ( rule__ListTransfer__Group__3__Impl rule__ListTransfer__Group__4 )
+            // InternalSignalDSL.g:4488:2: rule__ListTransfer__Group__3__Impl rule__ListTransfer__Group__4
             {
-            pushFollow(FOLLOW_14);
-            rule__SignalNotification__Group__0__Impl();
+            pushFollow(FOLLOW_23);
+            rule__ListTransfer__Group__3__Impl();
 
             state._fsp--;
             if (state.failed) return ;
             pushFollow(FOLLOW_2);
-            rule__SignalNotification__Group__1();
+            rule__ListTransfer__Group__4();
 
             state._fsp--;
             if (state.failed) return ;
@@ -15582,38 +16280,209 @@
         }
         return ;
     }
-    // $ANTLR end "rule__SignalNotification__Group__0"
+    // $ANTLR end "rule__ListTransfer__Group__3"
 
 
-    // $ANTLR start "rule__SignalNotification__Group__0__Impl"
-    // InternalSignalDSL.g:4259:1: rule__SignalNotification__Group__0__Impl : ( ( rule__SignalNotification__EventAssignment_0 ) ) ;
-    public final void rule__SignalNotification__Group__0__Impl() throws RecognitionException {
+    // $ANTLR start "rule__ListTransfer__Group__3__Impl"
+    // InternalSignalDSL.g:4495:1: rule__ListTransfer__Group__3__Impl : ( '{' ) ;
+    public final void rule__ListTransfer__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:4263:1: ( ( ( rule__SignalNotification__EventAssignment_0 ) ) )
-            // InternalSignalDSL.g:4264:1: ( ( rule__SignalNotification__EventAssignment_0 ) )
+            // InternalSignalDSL.g:4499:1: ( ( '{' ) )
+            // InternalSignalDSL.g:4500:1: ( '{' )
             {
-            // InternalSignalDSL.g:4264:1: ( ( rule__SignalNotification__EventAssignment_0 ) )
-            // InternalSignalDSL.g:4265:2: ( rule__SignalNotification__EventAssignment_0 )
+            // InternalSignalDSL.g:4500:1: ( '{' )
+            // InternalSignalDSL.g:4501:2: '{'
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getSignalNotificationAccess().getEventAssignment_0()); 
+               before(grammarAccess.getListTransferAccess().getLeftCurlyBracketKeyword_3()); 
             }
-            // InternalSignalDSL.g:4266:2: ( rule__SignalNotification__EventAssignment_0 )
-            // InternalSignalDSL.g:4266:3: rule__SignalNotification__EventAssignment_0
+            match(input,64,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getListTransferAccess().getLeftCurlyBracketKeyword_3()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ListTransfer__Group__3__Impl"
+
+
+    // $ANTLR start "rule__ListTransfer__Group__4"
+    // InternalSignalDSL.g:4510:1: rule__ListTransfer__Group__4 : rule__ListTransfer__Group__4__Impl rule__ListTransfer__Group__5 ;
+    public final void rule__ListTransfer__Group__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalSignalDSL.g:4514:1: ( rule__ListTransfer__Group__4__Impl rule__ListTransfer__Group__5 )
+            // InternalSignalDSL.g:4515:2: rule__ListTransfer__Group__4__Impl rule__ListTransfer__Group__5
+            {
+            pushFollow(FOLLOW_23);
+            rule__ListTransfer__Group__4__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__ListTransfer__Group__5();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ListTransfer__Group__4"
+
+
+    // $ANTLR start "rule__ListTransfer__Group__4__Impl"
+    // InternalSignalDSL.g:4522:1: rule__ListTransfer__Group__4__Impl : ( ( rule__ListTransfer__InterchangesAssignment_4 )* ) ;
+    public final void rule__ListTransfer__Group__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalSignalDSL.g:4526:1: ( ( ( rule__ListTransfer__InterchangesAssignment_4 )* ) )
+            // InternalSignalDSL.g:4527:1: ( ( rule__ListTransfer__InterchangesAssignment_4 )* )
+            {
+            // InternalSignalDSL.g:4527:1: ( ( rule__ListTransfer__InterchangesAssignment_4 )* )
+            // InternalSignalDSL.g:4528:2: ( rule__ListTransfer__InterchangesAssignment_4 )*
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getListTransferAccess().getInterchangesAssignment_4()); 
+            }
+            // InternalSignalDSL.g:4529:2: ( rule__ListTransfer__InterchangesAssignment_4 )*
+            loop56:
+            do {
+                int alt56=2;
+                int LA56_0 = input.LA(1);
+
+                if ( ((LA56_0>=51 && LA56_0<=52)) ) {
+                    alt56=1;
+                }
+
+
+                switch (alt56) {
+            	case 1 :
+            	    // InternalSignalDSL.g:4529:3: rule__ListTransfer__InterchangesAssignment_4
+            	    {
+            	    pushFollow(FOLLOW_24);
+            	    rule__ListTransfer__InterchangesAssignment_4();
+
+            	    state._fsp--;
+            	    if (state.failed) return ;
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop56;
+                }
+            } while (true);
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getListTransferAccess().getInterchangesAssignment_4()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ListTransfer__Group__4__Impl"
+
+
+    // $ANTLR start "rule__ListTransfer__Group__5"
+    // InternalSignalDSL.g:4537:1: rule__ListTransfer__Group__5 : rule__ListTransfer__Group__5__Impl ;
+    public final void rule__ListTransfer__Group__5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalSignalDSL.g:4541:1: ( rule__ListTransfer__Group__5__Impl )
+            // InternalSignalDSL.g:4542:2: rule__ListTransfer__Group__5__Impl
             {
             pushFollow(FOLLOW_2);
-            rule__SignalNotification__EventAssignment_0();
+            rule__ListTransfer__Group__5__Impl();
 
             state._fsp--;
             if (state.failed) return ;
 
             }
 
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ListTransfer__Group__5"
+
+
+    // $ANTLR start "rule__ListTransfer__Group__5__Impl"
+    // InternalSignalDSL.g:4548:1: rule__ListTransfer__Group__5__Impl : ( '}' ) ;
+    public final void rule__ListTransfer__Group__5__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalSignalDSL.g:4552:1: ( ( '}' ) )
+            // InternalSignalDSL.g:4553:1: ( '}' )
+            {
+            // InternalSignalDSL.g:4553:1: ( '}' )
+            // InternalSignalDSL.g:4554:2: '}'
+            {
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getSignalNotificationAccess().getEventAssignment_0()); 
+               before(grammarAccess.getListTransferAccess().getRightCurlyBracketKeyword_5()); 
+            }
+            match(input,65,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getListTransferAccess().getRightCurlyBracketKeyword_5()); 
             }
 
             }
@@ -15633,110 +16502,26 @@
         }
         return ;
     }
-    // $ANTLR end "rule__SignalNotification__Group__0__Impl"
+    // $ANTLR end "rule__ListTransfer__Group__5__Impl"
 
 
-    // $ANTLR start "rule__SignalNotification__Group__1"
-    // InternalSignalDSL.g:4274:1: rule__SignalNotification__Group__1 : rule__SignalNotification__Group__1__Impl ;
-    public final void rule__SignalNotification__Group__1() throws RecognitionException {
+    // $ANTLR start "rule__SignalDatainterchange__Group__0"
+    // InternalSignalDSL.g:4564: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:4278:1: ( rule__SignalNotification__Group__1__Impl )
-            // InternalSignalDSL.g:4279:2: rule__SignalNotification__Group__1__Impl
-            {
-            pushFollow(FOLLOW_2);
-            rule__SignalNotification__Group__1__Impl();
-
-            state._fsp--;
-            if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__SignalNotification__Group__1"
-
-
-    // $ANTLR start "rule__SignalNotification__Group__1__Impl"
-    // InternalSignalDSL.g:4285:1: rule__SignalNotification__Group__1__Impl : ( ( rule__SignalNotification__MessageAssignment_1 ) ) ;
-    public final void rule__SignalNotification__Group__1__Impl() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-        	
-        try {
-            // InternalSignalDSL.g:4289:1: ( ( ( rule__SignalNotification__MessageAssignment_1 ) ) )
-            // InternalSignalDSL.g:4290:1: ( ( rule__SignalNotification__MessageAssignment_1 ) )
-            {
-            // InternalSignalDSL.g:4290:1: ( ( rule__SignalNotification__MessageAssignment_1 ) )
-            // InternalSignalDSL.g:4291:2: ( rule__SignalNotification__MessageAssignment_1 )
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getSignalNotificationAccess().getMessageAssignment_1()); 
-            }
-            // InternalSignalDSL.g:4292:2: ( rule__SignalNotification__MessageAssignment_1 )
-            // InternalSignalDSL.g:4292:3: rule__SignalNotification__MessageAssignment_1
-            {
-            pushFollow(FOLLOW_2);
-            rule__SignalNotification__MessageAssignment_1();
-
-            state._fsp--;
-            if (state.failed) return ;
-
-            }
-
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getSignalNotificationAccess().getMessageAssignment_1()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__SignalNotification__Group__1__Impl"
-
-
-    // $ANTLR start "rule__SignalHandling__Group__0"
-    // InternalSignalDSL.g:4301:1: rule__SignalHandling__Group__0 : rule__SignalHandling__Group__0__Impl rule__SignalHandling__Group__1 ;
-    public final void rule__SignalHandling__Group__0() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-        	
-        try {
-            // InternalSignalDSL.g:4305:1: ( rule__SignalHandling__Group__0__Impl rule__SignalHandling__Group__1 )
-            // InternalSignalDSL.g:4306:2: rule__SignalHandling__Group__0__Impl rule__SignalHandling__Group__1
+            // InternalSignalDSL.g:4568:1: ( rule__SignalDatainterchange__Group__0__Impl rule__SignalDatainterchange__Group__1 )
+            // InternalSignalDSL.g:4569:2: rule__SignalDatainterchange__Group__0__Impl rule__SignalDatainterchange__Group__1
             {
             pushFollow(FOLLOW_7);
-            rule__SignalHandling__Group__0__Impl();
+            rule__SignalDatainterchange__Group__0__Impl();
 
             state._fsp--;
             if (state.failed) return ;
             pushFollow(FOLLOW_2);
-            rule__SignalHandling__Group__1();
+            rule__SignalDatainterchange__Group__1();
 
             state._fsp--;
             if (state.failed) return ;
@@ -15755,30 +16540,30 @@
         }
         return ;
     }
-    // $ANTLR end "rule__SignalHandling__Group__0"
+    // $ANTLR end "rule__SignalDatainterchange__Group__0"
 
 
-    // $ANTLR start "rule__SignalHandling__Group__0__Impl"
-    // InternalSignalDSL.g:4313:1: rule__SignalHandling__Group__0__Impl : ( ( rule__SignalHandling__ActionTypeAssignment_0 ) ) ;
-    public final void rule__SignalHandling__Group__0__Impl() throws RecognitionException {
+    // $ANTLR start "rule__SignalDatainterchange__Group__0__Impl"
+    // InternalSignalDSL.g:4576:1: rule__SignalDatainterchange__Group__0__Impl : ( ( rule__SignalDatainterchange__DataActionAssignment_0 ) ) ;
+    public final void rule__SignalDatainterchange__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:4317:1: ( ( ( rule__SignalHandling__ActionTypeAssignment_0 ) ) )
-            // InternalSignalDSL.g:4318:1: ( ( rule__SignalHandling__ActionTypeAssignment_0 ) )
+            // InternalSignalDSL.g:4580:1: ( ( ( rule__SignalDatainterchange__DataActionAssignment_0 ) ) )
+            // InternalSignalDSL.g:4581:1: ( ( rule__SignalDatainterchange__DataActionAssignment_0 ) )
             {
-            // InternalSignalDSL.g:4318:1: ( ( rule__SignalHandling__ActionTypeAssignment_0 ) )
-            // InternalSignalDSL.g:4319:2: ( rule__SignalHandling__ActionTypeAssignment_0 )
+            // InternalSignalDSL.g:4581:1: ( ( rule__SignalDatainterchange__DataActionAssignment_0 ) )
+            // InternalSignalDSL.g:4582:2: ( rule__SignalDatainterchange__DataActionAssignment_0 )
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getSignalHandlingAccess().getActionTypeAssignment_0()); 
+               before(grammarAccess.getSignalDatainterchangeAccess().getDataActionAssignment_0()); 
             }
-            // InternalSignalDSL.g:4320:2: ( rule__SignalHandling__ActionTypeAssignment_0 )
-            // InternalSignalDSL.g:4320:3: rule__SignalHandling__ActionTypeAssignment_0
+            // InternalSignalDSL.g:4583:2: ( rule__SignalDatainterchange__DataActionAssignment_0 )
+            // InternalSignalDSL.g:4583:3: rule__SignalDatainterchange__DataActionAssignment_0
             {
             pushFollow(FOLLOW_2);
-            rule__SignalHandling__ActionTypeAssignment_0();
+            rule__SignalDatainterchange__DataActionAssignment_0();
 
             state._fsp--;
             if (state.failed) return ;
@@ -15786,7 +16571,7 @@
             }
 
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getSignalHandlingAccess().getActionTypeAssignment_0()); 
+               after(grammarAccess.getSignalDatainterchangeAccess().getDataActionAssignment_0()); 
             }
 
             }
@@ -15806,21 +16591,21 @@
         }
         return ;
     }
-    // $ANTLR end "rule__SignalHandling__Group__0__Impl"
+    // $ANTLR end "rule__SignalDatainterchange__Group__0__Impl"
 
 
-    // $ANTLR start "rule__SignalHandling__Group__1"
-    // InternalSignalDSL.g:4328:1: rule__SignalHandling__Group__1 : rule__SignalHandling__Group__1__Impl ;
-    public final void rule__SignalHandling__Group__1() throws RecognitionException {
+    // $ANTLR start "rule__SignalDatainterchange__Group__1"
+    // InternalSignalDSL.g:4591:1: rule__SignalDatainterchange__Group__1 : rule__SignalDatainterchange__Group__1__Impl ;
+    public final void rule__SignalDatainterchange__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:4332:1: ( rule__SignalHandling__Group__1__Impl )
-            // InternalSignalDSL.g:4333:2: rule__SignalHandling__Group__1__Impl
+            // InternalSignalDSL.g:4595:1: ( rule__SignalDatainterchange__Group__1__Impl )
+            // InternalSignalDSL.g:4596:2: rule__SignalDatainterchange__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
-            rule__SignalHandling__Group__1__Impl();
+            rule__SignalDatainterchange__Group__1__Impl();
 
             state._fsp--;
             if (state.failed) return ;
@@ -15839,30 +16624,30 @@
         }
         return ;
     }
-    // $ANTLR end "rule__SignalHandling__Group__1"
+    // $ANTLR end "rule__SignalDatainterchange__Group__1"
 
 
-    // $ANTLR start "rule__SignalHandling__Group__1__Impl"
-    // InternalSignalDSL.g:4339:1: rule__SignalHandling__Group__1__Impl : ( ( rule__SignalHandling__DataRefAssignment_1 ) ) ;
-    public final void rule__SignalHandling__Group__1__Impl() throws RecognitionException {
+    // $ANTLR start "rule__SignalDatainterchange__Group__1__Impl"
+    // InternalSignalDSL.g:4602: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:4343:1: ( ( ( rule__SignalHandling__DataRefAssignment_1 ) ) )
-            // InternalSignalDSL.g:4344:1: ( ( rule__SignalHandling__DataRefAssignment_1 ) )
+            // InternalSignalDSL.g:4606:1: ( ( ( rule__SignalDatainterchange__DataRefAssignment_1 ) ) )
+            // InternalSignalDSL.g:4607:1: ( ( rule__SignalDatainterchange__DataRefAssignment_1 ) )
             {
-            // InternalSignalDSL.g:4344:1: ( ( rule__SignalHandling__DataRefAssignment_1 ) )
-            // InternalSignalDSL.g:4345:2: ( rule__SignalHandling__DataRefAssignment_1 )
+            // InternalSignalDSL.g:4607:1: ( ( rule__SignalDatainterchange__DataRefAssignment_1 ) )
+            // InternalSignalDSL.g:4608:2: ( rule__SignalDatainterchange__DataRefAssignment_1 )
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getSignalHandlingAccess().getDataRefAssignment_1()); 
+               before(grammarAccess.getSignalDatainterchangeAccess().getDataRefAssignment_1()); 
             }
-            // InternalSignalDSL.g:4346:2: ( rule__SignalHandling__DataRefAssignment_1 )
-            // InternalSignalDSL.g:4346:3: rule__SignalHandling__DataRefAssignment_1
+            // InternalSignalDSL.g:4609:2: ( rule__SignalDatainterchange__DataRefAssignment_1 )
+            // InternalSignalDSL.g:4609:3: rule__SignalDatainterchange__DataRefAssignment_1
             {
             pushFollow(FOLLOW_2);
-            rule__SignalHandling__DataRefAssignment_1();
+            rule__SignalDatainterchange__DataRefAssignment_1();
 
             state._fsp--;
             if (state.failed) return ;
@@ -15870,7 +16655,7 @@
             }
 
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getSignalHandlingAccess().getDataRefAssignment_1()); 
+               after(grammarAccess.getSignalDatainterchangeAccess().getDataRefAssignment_1()); 
             }
 
             }
@@ -15890,20 +16675,20 @@
         }
         return ;
     }
-    // $ANTLR end "rule__SignalHandling__Group__1__Impl"
+    // $ANTLR end "rule__SignalDatainterchange__Group__1__Impl"
 
 
     // $ANTLR start "rule__XImportDeclaration__Group__0"
-    // InternalSignalDSL.g:4355:1: rule__XImportDeclaration__Group__0 : rule__XImportDeclaration__Group__0__Impl rule__XImportDeclaration__Group__1 ;
+    // InternalSignalDSL.g:4618: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:4359:1: ( rule__XImportDeclaration__Group__0__Impl rule__XImportDeclaration__Group__1 )
-            // InternalSignalDSL.g:4360:2: rule__XImportDeclaration__Group__0__Impl rule__XImportDeclaration__Group__1
+            // InternalSignalDSL.g:4622:1: ( rule__XImportDeclaration__Group__0__Impl rule__XImportDeclaration__Group__1 )
+            // InternalSignalDSL.g:4623:2: rule__XImportDeclaration__Group__0__Impl rule__XImportDeclaration__Group__1
             {
-            pushFollow(FOLLOW_20);
+            pushFollow(FOLLOW_25);
             rule__XImportDeclaration__Group__0__Impl();
 
             state._fsp--;
@@ -15932,23 +16717,23 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group__0__Impl"
-    // InternalSignalDSL.g:4367:1: rule__XImportDeclaration__Group__0__Impl : ( () ) ;
+    // InternalSignalDSL.g:4630:1: rule__XImportDeclaration__Group__0__Impl : ( () ) ;
     public final void rule__XImportDeclaration__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:4371:1: ( ( () ) )
-            // InternalSignalDSL.g:4372:1: ( () )
+            // InternalSignalDSL.g:4634:1: ( ( () ) )
+            // InternalSignalDSL.g:4635:1: ( () )
             {
-            // InternalSignalDSL.g:4372:1: ( () )
-            // InternalSignalDSL.g:4373:2: ()
+            // InternalSignalDSL.g:4635:1: ( () )
+            // InternalSignalDSL.g:4636:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getOXImportDeclarationAction_0()); 
             }
-            // InternalSignalDSL.g:4374:2: ()
-            // InternalSignalDSL.g:4374:3: 
+            // InternalSignalDSL.g:4637:2: ()
+            // InternalSignalDSL.g:4637:3: 
             {
             }
 
@@ -15973,16 +16758,16 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group__1"
-    // InternalSignalDSL.g:4382:1: rule__XImportDeclaration__Group__1 : rule__XImportDeclaration__Group__1__Impl rule__XImportDeclaration__Group__2 ;
+    // InternalSignalDSL.g:4645: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:4386:1: ( rule__XImportDeclaration__Group__1__Impl rule__XImportDeclaration__Group__2 )
-            // InternalSignalDSL.g:4387:2: rule__XImportDeclaration__Group__1__Impl rule__XImportDeclaration__Group__2
+            // InternalSignalDSL.g:4649:1: ( rule__XImportDeclaration__Group__1__Impl rule__XImportDeclaration__Group__2 )
+            // InternalSignalDSL.g:4650:2: rule__XImportDeclaration__Group__1__Impl rule__XImportDeclaration__Group__2
             {
-            pushFollow(FOLLOW_21);
+            pushFollow(FOLLOW_26);
             rule__XImportDeclaration__Group__1__Impl();
 
             state._fsp--;
@@ -16011,17 +16796,17 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group__1__Impl"
-    // InternalSignalDSL.g:4394:1: rule__XImportDeclaration__Group__1__Impl : ( 'import' ) ;
+    // InternalSignalDSL.g:4657:1: rule__XImportDeclaration__Group__1__Impl : ( 'import' ) ;
     public final void rule__XImportDeclaration__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:4398:1: ( ( 'import' ) )
-            // InternalSignalDSL.g:4399:1: ( 'import' )
+            // InternalSignalDSL.g:4661:1: ( ( 'import' ) )
+            // InternalSignalDSL.g:4662:1: ( 'import' )
             {
-            // InternalSignalDSL.g:4399:1: ( 'import' )
-            // InternalSignalDSL.g:4400:2: 'import'
+            // InternalSignalDSL.g:4662:1: ( 'import' )
+            // InternalSignalDSL.g:4663:2: 'import'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getImportKeyword_1()); 
@@ -16052,16 +16837,16 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group__2"
-    // InternalSignalDSL.g:4409:1: rule__XImportDeclaration__Group__2 : rule__XImportDeclaration__Group__2__Impl rule__XImportDeclaration__Group__3 ;
+    // InternalSignalDSL.g:4672: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:4413:1: ( rule__XImportDeclaration__Group__2__Impl rule__XImportDeclaration__Group__3 )
-            // InternalSignalDSL.g:4414:2: rule__XImportDeclaration__Group__2__Impl rule__XImportDeclaration__Group__3
+            // InternalSignalDSL.g:4676:1: ( rule__XImportDeclaration__Group__2__Impl rule__XImportDeclaration__Group__3 )
+            // InternalSignalDSL.g:4677:2: rule__XImportDeclaration__Group__2__Impl rule__XImportDeclaration__Group__3
             {
-            pushFollow(FOLLOW_22);
+            pushFollow(FOLLOW_27);
             rule__XImportDeclaration__Group__2__Impl();
 
             state._fsp--;
@@ -16090,23 +16875,23 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group__2__Impl"
-    // InternalSignalDSL.g:4421:1: rule__XImportDeclaration__Group__2__Impl : ( ( rule__XImportDeclaration__Alternatives_2 ) ) ;
+    // InternalSignalDSL.g:4684: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:4425:1: ( ( ( rule__XImportDeclaration__Alternatives_2 ) ) )
-            // InternalSignalDSL.g:4426:1: ( ( rule__XImportDeclaration__Alternatives_2 ) )
+            // InternalSignalDSL.g:4688:1: ( ( ( rule__XImportDeclaration__Alternatives_2 ) ) )
+            // InternalSignalDSL.g:4689:1: ( ( rule__XImportDeclaration__Alternatives_2 ) )
             {
-            // InternalSignalDSL.g:4426:1: ( ( rule__XImportDeclaration__Alternatives_2 ) )
-            // InternalSignalDSL.g:4427:2: ( rule__XImportDeclaration__Alternatives_2 )
+            // InternalSignalDSL.g:4689:1: ( ( rule__XImportDeclaration__Alternatives_2 ) )
+            // InternalSignalDSL.g:4690:2: ( rule__XImportDeclaration__Alternatives_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getAlternatives_2()); 
             }
-            // InternalSignalDSL.g:4428:2: ( rule__XImportDeclaration__Alternatives_2 )
-            // InternalSignalDSL.g:4428:3: rule__XImportDeclaration__Alternatives_2
+            // InternalSignalDSL.g:4691:2: ( rule__XImportDeclaration__Alternatives_2 )
+            // InternalSignalDSL.g:4691:3: rule__XImportDeclaration__Alternatives_2
             {
             pushFollow(FOLLOW_2);
             rule__XImportDeclaration__Alternatives_2();
@@ -16141,14 +16926,14 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group__3"
-    // InternalSignalDSL.g:4436:1: rule__XImportDeclaration__Group__3 : rule__XImportDeclaration__Group__3__Impl ;
+    // InternalSignalDSL.g:4699: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:4440:1: ( rule__XImportDeclaration__Group__3__Impl )
-            // InternalSignalDSL.g:4441:2: rule__XImportDeclaration__Group__3__Impl
+            // InternalSignalDSL.g:4703:1: ( rule__XImportDeclaration__Group__3__Impl )
+            // InternalSignalDSL.g:4704:2: rule__XImportDeclaration__Group__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XImportDeclaration__Group__3__Impl();
@@ -16174,33 +16959,33 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group__3__Impl"
-    // InternalSignalDSL.g:4447:1: rule__XImportDeclaration__Group__3__Impl : ( ( ';' )? ) ;
+    // InternalSignalDSL.g:4710:1: rule__XImportDeclaration__Group__3__Impl : ( ( ';' )? ) ;
     public final void rule__XImportDeclaration__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:4451:1: ( ( ( ';' )? ) )
-            // InternalSignalDSL.g:4452:1: ( ( ';' )? )
+            // InternalSignalDSL.g:4714:1: ( ( ( ';' )? ) )
+            // InternalSignalDSL.g:4715:1: ( ( ';' )? )
             {
-            // InternalSignalDSL.g:4452:1: ( ( ';' )? )
-            // InternalSignalDSL.g:4453:2: ( ';' )?
+            // InternalSignalDSL.g:4715:1: ( ( ';' )? )
+            // InternalSignalDSL.g:4716:2: ( ';' )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getSemicolonKeyword_3()); 
             }
-            // InternalSignalDSL.g:4454:2: ( ';' )?
-            int alt54=2;
-            int LA54_0 = input.LA(1);
+            // InternalSignalDSL.g:4717:2: ( ';' )?
+            int alt57=2;
+            int LA57_0 = input.LA(1);
 
-            if ( (LA54_0==74) ) {
-                alt54=1;
+            if ( (LA57_0==72) ) {
+                alt57=1;
             }
-            switch (alt54) {
+            switch (alt57) {
                 case 1 :
-                    // InternalSignalDSL.g:4454:3: ';'
+                    // InternalSignalDSL.g:4717:3: ';'
                     {
-                    match(input,74,FOLLOW_2); if (state.failed) return ;
+                    match(input,72,FOLLOW_2); if (state.failed) return ;
 
                     }
                     break;
@@ -16232,16 +17017,16 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group_2_0__0"
-    // InternalSignalDSL.g:4463:1: rule__XImportDeclaration__Group_2_0__0 : rule__XImportDeclaration__Group_2_0__0__Impl rule__XImportDeclaration__Group_2_0__1 ;
+    // InternalSignalDSL.g:4726: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:4467:1: ( rule__XImportDeclaration__Group_2_0__0__Impl rule__XImportDeclaration__Group_2_0__1 )
-            // InternalSignalDSL.g:4468:2: rule__XImportDeclaration__Group_2_0__0__Impl rule__XImportDeclaration__Group_2_0__1
+            // InternalSignalDSL.g:4730:1: ( rule__XImportDeclaration__Group_2_0__0__Impl rule__XImportDeclaration__Group_2_0__1 )
+            // InternalSignalDSL.g:4731:2: rule__XImportDeclaration__Group_2_0__0__Impl rule__XImportDeclaration__Group_2_0__1
             {
-            pushFollow(FOLLOW_23);
+            pushFollow(FOLLOW_28);
             rule__XImportDeclaration__Group_2_0__0__Impl();
 
             state._fsp--;
@@ -16270,23 +17055,23 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group_2_0__0__Impl"
-    // InternalSignalDSL.g:4475:1: rule__XImportDeclaration__Group_2_0__0__Impl : ( ( rule__XImportDeclaration__StaticAssignment_2_0_0 ) ) ;
+    // InternalSignalDSL.g:4738: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:4479:1: ( ( ( rule__XImportDeclaration__StaticAssignment_2_0_0 ) ) )
-            // InternalSignalDSL.g:4480:1: ( ( rule__XImportDeclaration__StaticAssignment_2_0_0 ) )
+            // InternalSignalDSL.g:4742:1: ( ( ( rule__XImportDeclaration__StaticAssignment_2_0_0 ) ) )
+            // InternalSignalDSL.g:4743:1: ( ( rule__XImportDeclaration__StaticAssignment_2_0_0 ) )
             {
-            // InternalSignalDSL.g:4480:1: ( ( rule__XImportDeclaration__StaticAssignment_2_0_0 ) )
-            // InternalSignalDSL.g:4481:2: ( rule__XImportDeclaration__StaticAssignment_2_0_0 )
+            // InternalSignalDSL.g:4743:1: ( ( rule__XImportDeclaration__StaticAssignment_2_0_0 ) )
+            // InternalSignalDSL.g:4744:2: ( rule__XImportDeclaration__StaticAssignment_2_0_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getStaticAssignment_2_0_0()); 
             }
-            // InternalSignalDSL.g:4482:2: ( rule__XImportDeclaration__StaticAssignment_2_0_0 )
-            // InternalSignalDSL.g:4482:3: rule__XImportDeclaration__StaticAssignment_2_0_0
+            // InternalSignalDSL.g:4745:2: ( rule__XImportDeclaration__StaticAssignment_2_0_0 )
+            // InternalSignalDSL.g:4745:3: rule__XImportDeclaration__StaticAssignment_2_0_0
             {
             pushFollow(FOLLOW_2);
             rule__XImportDeclaration__StaticAssignment_2_0_0();
@@ -16321,16 +17106,16 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group_2_0__1"
-    // InternalSignalDSL.g:4490:1: rule__XImportDeclaration__Group_2_0__1 : rule__XImportDeclaration__Group_2_0__1__Impl rule__XImportDeclaration__Group_2_0__2 ;
+    // InternalSignalDSL.g:4753: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:4494:1: ( rule__XImportDeclaration__Group_2_0__1__Impl rule__XImportDeclaration__Group_2_0__2 )
-            // InternalSignalDSL.g:4495:2: rule__XImportDeclaration__Group_2_0__1__Impl rule__XImportDeclaration__Group_2_0__2
+            // InternalSignalDSL.g:4757:1: ( rule__XImportDeclaration__Group_2_0__1__Impl rule__XImportDeclaration__Group_2_0__2 )
+            // InternalSignalDSL.g:4758:2: rule__XImportDeclaration__Group_2_0__1__Impl rule__XImportDeclaration__Group_2_0__2
             {
-            pushFollow(FOLLOW_23);
+            pushFollow(FOLLOW_28);
             rule__XImportDeclaration__Group_2_0__1__Impl();
 
             state._fsp--;
@@ -16359,31 +17144,31 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group_2_0__1__Impl"
-    // InternalSignalDSL.g:4502:1: rule__XImportDeclaration__Group_2_0__1__Impl : ( ( rule__XImportDeclaration__ExtensionAssignment_2_0_1 )? ) ;
+    // InternalSignalDSL.g:4765: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:4506:1: ( ( ( rule__XImportDeclaration__ExtensionAssignment_2_0_1 )? ) )
-            // InternalSignalDSL.g:4507:1: ( ( rule__XImportDeclaration__ExtensionAssignment_2_0_1 )? )
+            // InternalSignalDSL.g:4769:1: ( ( ( rule__XImportDeclaration__ExtensionAssignment_2_0_1 )? ) )
+            // InternalSignalDSL.g:4770:1: ( ( rule__XImportDeclaration__ExtensionAssignment_2_0_1 )? )
             {
-            // InternalSignalDSL.g:4507:1: ( ( rule__XImportDeclaration__ExtensionAssignment_2_0_1 )? )
-            // InternalSignalDSL.g:4508:2: ( rule__XImportDeclaration__ExtensionAssignment_2_0_1 )?
+            // InternalSignalDSL.g:4770:1: ( ( rule__XImportDeclaration__ExtensionAssignment_2_0_1 )? )
+            // InternalSignalDSL.g:4771:2: ( rule__XImportDeclaration__ExtensionAssignment_2_0_1 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getExtensionAssignment_2_0_1()); 
             }
-            // InternalSignalDSL.g:4509:2: ( rule__XImportDeclaration__ExtensionAssignment_2_0_1 )?
-            int alt55=2;
-            int LA55_0 = input.LA(1);
+            // InternalSignalDSL.g:4772:2: ( rule__XImportDeclaration__ExtensionAssignment_2_0_1 )?
+            int alt58=2;
+            int LA58_0 = input.LA(1);
 
-            if ( (LA55_0==48) ) {
-                alt55=1;
+            if ( (LA58_0==48) ) {
+                alt58=1;
             }
-            switch (alt55) {
+            switch (alt58) {
                 case 1 :
-                    // InternalSignalDSL.g:4509:3: rule__XImportDeclaration__ExtensionAssignment_2_0_1
+                    // InternalSignalDSL.g:4772:3: rule__XImportDeclaration__ExtensionAssignment_2_0_1
                     {
                     pushFollow(FOLLOW_2);
                     rule__XImportDeclaration__ExtensionAssignment_2_0_1();
@@ -16421,16 +17206,16 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group_2_0__2"
-    // InternalSignalDSL.g:4517:1: rule__XImportDeclaration__Group_2_0__2 : rule__XImportDeclaration__Group_2_0__2__Impl rule__XImportDeclaration__Group_2_0__3 ;
+    // InternalSignalDSL.g:4780: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:4521:1: ( rule__XImportDeclaration__Group_2_0__2__Impl rule__XImportDeclaration__Group_2_0__3 )
-            // InternalSignalDSL.g:4522:2: rule__XImportDeclaration__Group_2_0__2__Impl rule__XImportDeclaration__Group_2_0__3
+            // InternalSignalDSL.g:4784:1: ( rule__XImportDeclaration__Group_2_0__2__Impl rule__XImportDeclaration__Group_2_0__3 )
+            // InternalSignalDSL.g:4785:2: rule__XImportDeclaration__Group_2_0__2__Impl rule__XImportDeclaration__Group_2_0__3
             {
-            pushFollow(FOLLOW_24);
+            pushFollow(FOLLOW_29);
             rule__XImportDeclaration__Group_2_0__2__Impl();
 
             state._fsp--;
@@ -16459,23 +17244,23 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group_2_0__2__Impl"
-    // InternalSignalDSL.g:4529:1: rule__XImportDeclaration__Group_2_0__2__Impl : ( ( rule__XImportDeclaration__ImportedTypeAssignment_2_0_2 ) ) ;
+    // InternalSignalDSL.g:4792: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:4533:1: ( ( ( rule__XImportDeclaration__ImportedTypeAssignment_2_0_2 ) ) )
-            // InternalSignalDSL.g:4534:1: ( ( rule__XImportDeclaration__ImportedTypeAssignment_2_0_2 ) )
+            // InternalSignalDSL.g:4796:1: ( ( ( rule__XImportDeclaration__ImportedTypeAssignment_2_0_2 ) ) )
+            // InternalSignalDSL.g:4797:1: ( ( rule__XImportDeclaration__ImportedTypeAssignment_2_0_2 ) )
             {
-            // InternalSignalDSL.g:4534:1: ( ( rule__XImportDeclaration__ImportedTypeAssignment_2_0_2 ) )
-            // InternalSignalDSL.g:4535:2: ( rule__XImportDeclaration__ImportedTypeAssignment_2_0_2 )
+            // InternalSignalDSL.g:4797:1: ( ( rule__XImportDeclaration__ImportedTypeAssignment_2_0_2 ) )
+            // InternalSignalDSL.g:4798:2: ( rule__XImportDeclaration__ImportedTypeAssignment_2_0_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getImportedTypeAssignment_2_0_2()); 
             }
-            // InternalSignalDSL.g:4536:2: ( rule__XImportDeclaration__ImportedTypeAssignment_2_0_2 )
-            // InternalSignalDSL.g:4536:3: rule__XImportDeclaration__ImportedTypeAssignment_2_0_2
+            // InternalSignalDSL.g:4799:2: ( rule__XImportDeclaration__ImportedTypeAssignment_2_0_2 )
+            // InternalSignalDSL.g:4799:3: rule__XImportDeclaration__ImportedTypeAssignment_2_0_2
             {
             pushFollow(FOLLOW_2);
             rule__XImportDeclaration__ImportedTypeAssignment_2_0_2();
@@ -16510,14 +17295,14 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group_2_0__3"
-    // InternalSignalDSL.g:4544:1: rule__XImportDeclaration__Group_2_0__3 : rule__XImportDeclaration__Group_2_0__3__Impl ;
+    // InternalSignalDSL.g:4807: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:4548:1: ( rule__XImportDeclaration__Group_2_0__3__Impl )
-            // InternalSignalDSL.g:4549:2: rule__XImportDeclaration__Group_2_0__3__Impl
+            // InternalSignalDSL.g:4811:1: ( rule__XImportDeclaration__Group_2_0__3__Impl )
+            // InternalSignalDSL.g:4812:2: rule__XImportDeclaration__Group_2_0__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XImportDeclaration__Group_2_0__3__Impl();
@@ -16543,23 +17328,23 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group_2_0__3__Impl"
-    // InternalSignalDSL.g:4555:1: rule__XImportDeclaration__Group_2_0__3__Impl : ( ( rule__XImportDeclaration__Alternatives_2_0_3 ) ) ;
+    // InternalSignalDSL.g:4818: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:4559:1: ( ( ( rule__XImportDeclaration__Alternatives_2_0_3 ) ) )
-            // InternalSignalDSL.g:4560:1: ( ( rule__XImportDeclaration__Alternatives_2_0_3 ) )
+            // InternalSignalDSL.g:4822:1: ( ( ( rule__XImportDeclaration__Alternatives_2_0_3 ) ) )
+            // InternalSignalDSL.g:4823:1: ( ( rule__XImportDeclaration__Alternatives_2_0_3 ) )
             {
-            // InternalSignalDSL.g:4560:1: ( ( rule__XImportDeclaration__Alternatives_2_0_3 ) )
-            // InternalSignalDSL.g:4561:2: ( rule__XImportDeclaration__Alternatives_2_0_3 )
+            // InternalSignalDSL.g:4823:1: ( ( rule__XImportDeclaration__Alternatives_2_0_3 ) )
+            // InternalSignalDSL.g:4824:2: ( rule__XImportDeclaration__Alternatives_2_0_3 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getAlternatives_2_0_3()); 
             }
-            // InternalSignalDSL.g:4562:2: ( rule__XImportDeclaration__Alternatives_2_0_3 )
-            // InternalSignalDSL.g:4562:3: rule__XImportDeclaration__Alternatives_2_0_3
+            // InternalSignalDSL.g:4825:2: ( rule__XImportDeclaration__Alternatives_2_0_3 )
+            // InternalSignalDSL.g:4825:3: rule__XImportDeclaration__Alternatives_2_0_3
             {
             pushFollow(FOLLOW_2);
             rule__XImportDeclaration__Alternatives_2_0_3();
@@ -16594,14 +17379,14 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group_2_3__0"
-    // InternalSignalDSL.g:4571:1: rule__XImportDeclaration__Group_2_3__0 : rule__XImportDeclaration__Group_2_3__0__Impl rule__XImportDeclaration__Group_2_3__1 ;
+    // InternalSignalDSL.g:4834: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:4575:1: ( rule__XImportDeclaration__Group_2_3__0__Impl rule__XImportDeclaration__Group_2_3__1 )
-            // InternalSignalDSL.g:4576:2: rule__XImportDeclaration__Group_2_3__0__Impl rule__XImportDeclaration__Group_2_3__1
+            // InternalSignalDSL.g:4838:1: ( rule__XImportDeclaration__Group_2_3__0__Impl rule__XImportDeclaration__Group_2_3__1 )
+            // InternalSignalDSL.g:4839:2: rule__XImportDeclaration__Group_2_3__0__Impl rule__XImportDeclaration__Group_2_3__1
             {
             pushFollow(FOLLOW_7);
             rule__XImportDeclaration__Group_2_3__0__Impl();
@@ -16632,23 +17417,23 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group_2_3__0__Impl"
-    // InternalSignalDSL.g:4583:1: rule__XImportDeclaration__Group_2_3__0__Impl : ( ( rule__XImportDeclaration__FqnImportAssignment_2_3_0 ) ) ;
+    // InternalSignalDSL.g:4846: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:4587:1: ( ( ( rule__XImportDeclaration__FqnImportAssignment_2_3_0 ) ) )
-            // InternalSignalDSL.g:4588:1: ( ( rule__XImportDeclaration__FqnImportAssignment_2_3_0 ) )
+            // InternalSignalDSL.g:4850:1: ( ( ( rule__XImportDeclaration__FqnImportAssignment_2_3_0 ) ) )
+            // InternalSignalDSL.g:4851:1: ( ( rule__XImportDeclaration__FqnImportAssignment_2_3_0 ) )
             {
-            // InternalSignalDSL.g:4588:1: ( ( rule__XImportDeclaration__FqnImportAssignment_2_3_0 ) )
-            // InternalSignalDSL.g:4589:2: ( rule__XImportDeclaration__FqnImportAssignment_2_3_0 )
+            // InternalSignalDSL.g:4851:1: ( ( rule__XImportDeclaration__FqnImportAssignment_2_3_0 ) )
+            // InternalSignalDSL.g:4852:2: ( rule__XImportDeclaration__FqnImportAssignment_2_3_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getFqnImportAssignment_2_3_0()); 
             }
-            // InternalSignalDSL.g:4590:2: ( rule__XImportDeclaration__FqnImportAssignment_2_3_0 )
-            // InternalSignalDSL.g:4590:3: rule__XImportDeclaration__FqnImportAssignment_2_3_0
+            // InternalSignalDSL.g:4853:2: ( rule__XImportDeclaration__FqnImportAssignment_2_3_0 )
+            // InternalSignalDSL.g:4853:3: rule__XImportDeclaration__FqnImportAssignment_2_3_0
             {
             pushFollow(FOLLOW_2);
             rule__XImportDeclaration__FqnImportAssignment_2_3_0();
@@ -16683,14 +17468,14 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group_2_3__1"
-    // InternalSignalDSL.g:4598:1: rule__XImportDeclaration__Group_2_3__1 : rule__XImportDeclaration__Group_2_3__1__Impl ;
+    // InternalSignalDSL.g:4861: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:4602:1: ( rule__XImportDeclaration__Group_2_3__1__Impl )
-            // InternalSignalDSL.g:4603:2: rule__XImportDeclaration__Group_2_3__1__Impl
+            // InternalSignalDSL.g:4865:1: ( rule__XImportDeclaration__Group_2_3__1__Impl )
+            // InternalSignalDSL.g:4866:2: rule__XImportDeclaration__Group_2_3__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XImportDeclaration__Group_2_3__1__Impl();
@@ -16716,23 +17501,23 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group_2_3__1__Impl"
-    // InternalSignalDSL.g:4609:1: rule__XImportDeclaration__Group_2_3__1__Impl : ( ( rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1 ) ) ;
+    // InternalSignalDSL.g:4872: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:4613:1: ( ( ( rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1 ) ) )
-            // InternalSignalDSL.g:4614:1: ( ( rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1 ) )
+            // InternalSignalDSL.g:4876:1: ( ( ( rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1 ) ) )
+            // InternalSignalDSL.g:4877:1: ( ( rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1 ) )
             {
-            // InternalSignalDSL.g:4614:1: ( ( rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1 ) )
-            // InternalSignalDSL.g:4615:2: ( rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1 )
+            // InternalSignalDSL.g:4877:1: ( ( rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1 ) )
+            // InternalSignalDSL.g:4878:2: ( rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getImportedFullyQualifiedNameAssignment_2_3_1()); 
             }
-            // InternalSignalDSL.g:4616:2: ( rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1 )
-            // InternalSignalDSL.g:4616:3: rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1
+            // InternalSignalDSL.g:4879:2: ( rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1 )
+            // InternalSignalDSL.g:4879:3: rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1
             {
             pushFollow(FOLLOW_2);
             rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1();
@@ -16767,16 +17552,16 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group__0"
-    // InternalSignalDSL.g:4625:1: rule__XAnnotation__Group__0 : rule__XAnnotation__Group__0__Impl rule__XAnnotation__Group__1 ;
+    // InternalSignalDSL.g:4888: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:4629:1: ( rule__XAnnotation__Group__0__Impl rule__XAnnotation__Group__1 )
-            // InternalSignalDSL.g:4630:2: rule__XAnnotation__Group__0__Impl rule__XAnnotation__Group__1
+            // InternalSignalDSL.g:4892:1: ( rule__XAnnotation__Group__0__Impl rule__XAnnotation__Group__1 )
+            // InternalSignalDSL.g:4893:2: rule__XAnnotation__Group__0__Impl rule__XAnnotation__Group__1
             {
-            pushFollow(FOLLOW_25);
+            pushFollow(FOLLOW_30);
             rule__XAnnotation__Group__0__Impl();
 
             state._fsp--;
@@ -16805,23 +17590,23 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group__0__Impl"
-    // InternalSignalDSL.g:4637:1: rule__XAnnotation__Group__0__Impl : ( () ) ;
+    // InternalSignalDSL.g:4900:1: rule__XAnnotation__Group__0__Impl : ( () ) ;
     public final void rule__XAnnotation__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:4641:1: ( ( () ) )
-            // InternalSignalDSL.g:4642:1: ( () )
+            // InternalSignalDSL.g:4904:1: ( ( () ) )
+            // InternalSignalDSL.g:4905:1: ( () )
             {
-            // InternalSignalDSL.g:4642:1: ( () )
-            // InternalSignalDSL.g:4643:2: ()
+            // InternalSignalDSL.g:4905:1: ( () )
+            // InternalSignalDSL.g:4906:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationAccess().getXAnnotationAction_0()); 
             }
-            // InternalSignalDSL.g:4644:2: ()
-            // InternalSignalDSL.g:4644:3: 
+            // InternalSignalDSL.g:4907:2: ()
+            // InternalSignalDSL.g:4907:3: 
             {
             }
 
@@ -16846,14 +17631,14 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group__1"
-    // InternalSignalDSL.g:4652:1: rule__XAnnotation__Group__1 : rule__XAnnotation__Group__1__Impl rule__XAnnotation__Group__2 ;
+    // InternalSignalDSL.g:4915: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:4656:1: ( rule__XAnnotation__Group__1__Impl rule__XAnnotation__Group__2 )
-            // InternalSignalDSL.g:4657:2: rule__XAnnotation__Group__1__Impl rule__XAnnotation__Group__2
+            // InternalSignalDSL.g:4919:1: ( rule__XAnnotation__Group__1__Impl rule__XAnnotation__Group__2 )
+            // InternalSignalDSL.g:4920:2: rule__XAnnotation__Group__1__Impl rule__XAnnotation__Group__2
             {
             pushFollow(FOLLOW_7);
             rule__XAnnotation__Group__1__Impl();
@@ -16884,22 +17669,22 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group__1__Impl"
-    // InternalSignalDSL.g:4664:1: rule__XAnnotation__Group__1__Impl : ( '@' ) ;
+    // InternalSignalDSL.g:4927:1: rule__XAnnotation__Group__1__Impl : ( '@' ) ;
     public final void rule__XAnnotation__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:4668:1: ( ( '@' ) )
-            // InternalSignalDSL.g:4669:1: ( '@' )
+            // InternalSignalDSL.g:4931:1: ( ( '@' ) )
+            // InternalSignalDSL.g:4932:1: ( '@' )
             {
-            // InternalSignalDSL.g:4669:1: ( '@' )
-            // InternalSignalDSL.g:4670:2: '@'
+            // InternalSignalDSL.g:4932:1: ( '@' )
+            // InternalSignalDSL.g:4933:2: '@'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationAccess().getCommercialAtKeyword_1()); 
             }
-            match(input,75,FOLLOW_2); if (state.failed) return ;
+            match(input,73,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXAnnotationAccess().getCommercialAtKeyword_1()); 
             }
@@ -16925,16 +17710,16 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group__2"
-    // InternalSignalDSL.g:4679:1: rule__XAnnotation__Group__2 : rule__XAnnotation__Group__2__Impl rule__XAnnotation__Group__3 ;
+    // InternalSignalDSL.g:4942: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:4683:1: ( rule__XAnnotation__Group__2__Impl rule__XAnnotation__Group__3 )
-            // InternalSignalDSL.g:4684:2: rule__XAnnotation__Group__2__Impl rule__XAnnotation__Group__3
+            // InternalSignalDSL.g:4946:1: ( rule__XAnnotation__Group__2__Impl rule__XAnnotation__Group__3 )
+            // InternalSignalDSL.g:4947:2: rule__XAnnotation__Group__2__Impl rule__XAnnotation__Group__3
             {
-            pushFollow(FOLLOW_26);
+            pushFollow(FOLLOW_31);
             rule__XAnnotation__Group__2__Impl();
 
             state._fsp--;
@@ -16963,23 +17748,23 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group__2__Impl"
-    // InternalSignalDSL.g:4691:1: rule__XAnnotation__Group__2__Impl : ( ( rule__XAnnotation__AnnotationTypeAssignment_2 ) ) ;
+    // InternalSignalDSL.g:4954: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:4695:1: ( ( ( rule__XAnnotation__AnnotationTypeAssignment_2 ) ) )
-            // InternalSignalDSL.g:4696:1: ( ( rule__XAnnotation__AnnotationTypeAssignment_2 ) )
+            // InternalSignalDSL.g:4958:1: ( ( ( rule__XAnnotation__AnnotationTypeAssignment_2 ) ) )
+            // InternalSignalDSL.g:4959:1: ( ( rule__XAnnotation__AnnotationTypeAssignment_2 ) )
             {
-            // InternalSignalDSL.g:4696:1: ( ( rule__XAnnotation__AnnotationTypeAssignment_2 ) )
-            // InternalSignalDSL.g:4697:2: ( rule__XAnnotation__AnnotationTypeAssignment_2 )
+            // InternalSignalDSL.g:4959:1: ( ( rule__XAnnotation__AnnotationTypeAssignment_2 ) )
+            // InternalSignalDSL.g:4960:2: ( rule__XAnnotation__AnnotationTypeAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationAccess().getAnnotationTypeAssignment_2()); 
             }
-            // InternalSignalDSL.g:4698:2: ( rule__XAnnotation__AnnotationTypeAssignment_2 )
-            // InternalSignalDSL.g:4698:3: rule__XAnnotation__AnnotationTypeAssignment_2
+            // InternalSignalDSL.g:4961:2: ( rule__XAnnotation__AnnotationTypeAssignment_2 )
+            // InternalSignalDSL.g:4961:3: rule__XAnnotation__AnnotationTypeAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotation__AnnotationTypeAssignment_2();
@@ -17014,14 +17799,14 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group__3"
-    // InternalSignalDSL.g:4706:1: rule__XAnnotation__Group__3 : rule__XAnnotation__Group__3__Impl ;
+    // InternalSignalDSL.g:4969: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:4710:1: ( rule__XAnnotation__Group__3__Impl )
-            // InternalSignalDSL.g:4711:2: rule__XAnnotation__Group__3__Impl
+            // InternalSignalDSL.g:4973:1: ( rule__XAnnotation__Group__3__Impl )
+            // InternalSignalDSL.g:4974:2: rule__XAnnotation__Group__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotation__Group__3__Impl();
@@ -17047,31 +17832,31 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group__3__Impl"
-    // InternalSignalDSL.g:4717:1: rule__XAnnotation__Group__3__Impl : ( ( rule__XAnnotation__Group_3__0 )? ) ;
+    // InternalSignalDSL.g:4980: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:4721:1: ( ( ( rule__XAnnotation__Group_3__0 )? ) )
-            // InternalSignalDSL.g:4722:1: ( ( rule__XAnnotation__Group_3__0 )? )
+            // InternalSignalDSL.g:4984:1: ( ( ( rule__XAnnotation__Group_3__0 )? ) )
+            // InternalSignalDSL.g:4985:1: ( ( rule__XAnnotation__Group_3__0 )? )
             {
-            // InternalSignalDSL.g:4722:1: ( ( rule__XAnnotation__Group_3__0 )? )
-            // InternalSignalDSL.g:4723:2: ( rule__XAnnotation__Group_3__0 )?
+            // InternalSignalDSL.g:4985:1: ( ( rule__XAnnotation__Group_3__0 )? )
+            // InternalSignalDSL.g:4986:2: ( rule__XAnnotation__Group_3__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationAccess().getGroup_3()); 
             }
-            // InternalSignalDSL.g:4724:2: ( rule__XAnnotation__Group_3__0 )?
-            int alt56=2;
-            int LA56_0 = input.LA(1);
+            // InternalSignalDSL.g:4987:2: ( rule__XAnnotation__Group_3__0 )?
+            int alt59=2;
+            int LA59_0 = input.LA(1);
 
-            if ( (LA56_0==76) ) {
-                alt56=1;
+            if ( (LA59_0==74) ) {
+                alt59=1;
             }
-            switch (alt56) {
+            switch (alt59) {
                 case 1 :
-                    // InternalSignalDSL.g:4724:3: rule__XAnnotation__Group_3__0
+                    // InternalSignalDSL.g:4987:3: rule__XAnnotation__Group_3__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XAnnotation__Group_3__0();
@@ -17109,16 +17894,16 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group_3__0"
-    // InternalSignalDSL.g:4733:1: rule__XAnnotation__Group_3__0 : rule__XAnnotation__Group_3__0__Impl rule__XAnnotation__Group_3__1 ;
+    // InternalSignalDSL.g:4996: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:4737:1: ( rule__XAnnotation__Group_3__0__Impl rule__XAnnotation__Group_3__1 )
-            // InternalSignalDSL.g:4738:2: rule__XAnnotation__Group_3__0__Impl rule__XAnnotation__Group_3__1
+            // InternalSignalDSL.g:5000:1: ( rule__XAnnotation__Group_3__0__Impl rule__XAnnotation__Group_3__1 )
+            // InternalSignalDSL.g:5001:2: rule__XAnnotation__Group_3__0__Impl rule__XAnnotation__Group_3__1
             {
-            pushFollow(FOLLOW_27);
+            pushFollow(FOLLOW_32);
             rule__XAnnotation__Group_3__0__Impl();
 
             state._fsp--;
@@ -17147,25 +17932,25 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group_3__0__Impl"
-    // InternalSignalDSL.g:4745:1: rule__XAnnotation__Group_3__0__Impl : ( ( '(' ) ) ;
+    // InternalSignalDSL.g:5008:1: rule__XAnnotation__Group_3__0__Impl : ( ( '(' ) ) ;
     public final void rule__XAnnotation__Group_3__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:4749:1: ( ( ( '(' ) ) )
-            // InternalSignalDSL.g:4750:1: ( ( '(' ) )
+            // InternalSignalDSL.g:5012:1: ( ( ( '(' ) ) )
+            // InternalSignalDSL.g:5013:1: ( ( '(' ) )
             {
-            // InternalSignalDSL.g:4750:1: ( ( '(' ) )
-            // InternalSignalDSL.g:4751:2: ( '(' )
+            // InternalSignalDSL.g:5013:1: ( ( '(' ) )
+            // InternalSignalDSL.g:5014:2: ( '(' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationAccess().getLeftParenthesisKeyword_3_0()); 
             }
-            // InternalSignalDSL.g:4752:2: ( '(' )
-            // InternalSignalDSL.g:4752:3: '('
+            // InternalSignalDSL.g:5015:2: ( '(' )
+            // InternalSignalDSL.g:5015:3: '('
             {
-            match(input,76,FOLLOW_2); if (state.failed) return ;
+            match(input,74,FOLLOW_2); if (state.failed) return ;
 
             }
 
@@ -17194,16 +17979,16 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group_3__1"
-    // InternalSignalDSL.g:4760:1: rule__XAnnotation__Group_3__1 : rule__XAnnotation__Group_3__1__Impl rule__XAnnotation__Group_3__2 ;
+    // InternalSignalDSL.g:5023: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:4764:1: ( rule__XAnnotation__Group_3__1__Impl rule__XAnnotation__Group_3__2 )
-            // InternalSignalDSL.g:4765:2: rule__XAnnotation__Group_3__1__Impl rule__XAnnotation__Group_3__2
+            // InternalSignalDSL.g:5027:1: ( rule__XAnnotation__Group_3__1__Impl rule__XAnnotation__Group_3__2 )
+            // InternalSignalDSL.g:5028:2: rule__XAnnotation__Group_3__1__Impl rule__XAnnotation__Group_3__2
             {
-            pushFollow(FOLLOW_27);
+            pushFollow(FOLLOW_32);
             rule__XAnnotation__Group_3__1__Impl();
 
             state._fsp--;
@@ -17232,31 +18017,31 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group_3__1__Impl"
-    // InternalSignalDSL.g:4772:1: rule__XAnnotation__Group_3__1__Impl : ( ( rule__XAnnotation__Alternatives_3_1 )? ) ;
+    // InternalSignalDSL.g:5035: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:4776:1: ( ( ( rule__XAnnotation__Alternatives_3_1 )? ) )
-            // InternalSignalDSL.g:4777:1: ( ( rule__XAnnotation__Alternatives_3_1 )? )
+            // InternalSignalDSL.g:5039:1: ( ( ( rule__XAnnotation__Alternatives_3_1 )? ) )
+            // InternalSignalDSL.g:5040:1: ( ( rule__XAnnotation__Alternatives_3_1 )? )
             {
-            // InternalSignalDSL.g:4777:1: ( ( rule__XAnnotation__Alternatives_3_1 )? )
-            // InternalSignalDSL.g:4778:2: ( rule__XAnnotation__Alternatives_3_1 )?
+            // InternalSignalDSL.g:5040:1: ( ( rule__XAnnotation__Alternatives_3_1 )? )
+            // InternalSignalDSL.g:5041:2: ( rule__XAnnotation__Alternatives_3_1 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationAccess().getAlternatives_3_1()); 
             }
-            // InternalSignalDSL.g:4779:2: ( rule__XAnnotation__Alternatives_3_1 )?
-            int alt57=2;
-            int LA57_0 = input.LA(1);
+            // InternalSignalDSL.g:5042:2: ( rule__XAnnotation__Alternatives_3_1 )?
+            int alt60=2;
+            int LA60_0 = input.LA(1);
 
-            if ( ((LA57_0>=RULE_ID && LA57_0<=RULE_STRING)||LA57_0==27||(LA57_0>=34 && LA57_0<=35)||LA57_0==40||(LA57_0>=45 && LA57_0<=50)||LA57_0==68||LA57_0==72||(LA57_0>=75 && LA57_0<=76)||(LA57_0>=80 && LA57_0<=81)||LA57_0==84||LA57_0==86||(LA57_0>=90 && LA57_0<=97)||LA57_0==99||LA57_0==108) ) {
-                alt57=1;
+            if ( ((LA60_0>=RULE_ID && LA60_0<=RULE_STRING)||LA60_0==27||(LA60_0>=34 && LA60_0<=35)||LA60_0==40||(LA60_0>=45 && LA60_0<=50)||LA60_0==64||LA60_0==68||(LA60_0>=73 && LA60_0<=74)||(LA60_0>=78 && LA60_0<=79)||LA60_0==82||LA60_0==84||(LA60_0>=88 && LA60_0<=95)||LA60_0==97||LA60_0==106) ) {
+                alt60=1;
             }
-            switch (alt57) {
+            switch (alt60) {
                 case 1 :
-                    // InternalSignalDSL.g:4779:3: rule__XAnnotation__Alternatives_3_1
+                    // InternalSignalDSL.g:5042:3: rule__XAnnotation__Alternatives_3_1
                     {
                     pushFollow(FOLLOW_2);
                     rule__XAnnotation__Alternatives_3_1();
@@ -17294,14 +18079,14 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group_3__2"
-    // InternalSignalDSL.g:4787:1: rule__XAnnotation__Group_3__2 : rule__XAnnotation__Group_3__2__Impl ;
+    // InternalSignalDSL.g:5050: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:4791:1: ( rule__XAnnotation__Group_3__2__Impl )
-            // InternalSignalDSL.g:4792:2: rule__XAnnotation__Group_3__2__Impl
+            // InternalSignalDSL.g:5054:1: ( rule__XAnnotation__Group_3__2__Impl )
+            // InternalSignalDSL.g:5055:2: rule__XAnnotation__Group_3__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotation__Group_3__2__Impl();
@@ -17327,22 +18112,22 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group_3__2__Impl"
-    // InternalSignalDSL.g:4798:1: rule__XAnnotation__Group_3__2__Impl : ( ')' ) ;
+    // InternalSignalDSL.g:5061:1: rule__XAnnotation__Group_3__2__Impl : ( ')' ) ;
     public final void rule__XAnnotation__Group_3__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:4802:1: ( ( ')' ) )
-            // InternalSignalDSL.g:4803:1: ( ')' )
+            // InternalSignalDSL.g:5065:1: ( ( ')' ) )
+            // InternalSignalDSL.g:5066:1: ( ')' )
             {
-            // InternalSignalDSL.g:4803:1: ( ')' )
-            // InternalSignalDSL.g:4804:2: ')'
+            // InternalSignalDSL.g:5066:1: ( ')' )
+            // InternalSignalDSL.g:5067:2: ')'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationAccess().getRightParenthesisKeyword_3_2()); 
             }
-            match(input,77,FOLLOW_2); if (state.failed) return ;
+            match(input,75,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXAnnotationAccess().getRightParenthesisKeyword_3_2()); 
             }
@@ -17368,16 +18153,16 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group_3_1_0__0"
-    // InternalSignalDSL.g:4814: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:5077: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:4818:1: ( rule__XAnnotation__Group_3_1_0__0__Impl rule__XAnnotation__Group_3_1_0__1 )
-            // InternalSignalDSL.g:4819:2: rule__XAnnotation__Group_3_1_0__0__Impl rule__XAnnotation__Group_3_1_0__1
+            // InternalSignalDSL.g:5081:1: ( rule__XAnnotation__Group_3_1_0__0__Impl rule__XAnnotation__Group_3_1_0__1 )
+            // InternalSignalDSL.g:5082:2: rule__XAnnotation__Group_3_1_0__0__Impl rule__XAnnotation__Group_3_1_0__1
             {
-            pushFollow(FOLLOW_28);
+            pushFollow(FOLLOW_33);
             rule__XAnnotation__Group_3_1_0__0__Impl();
 
             state._fsp--;
@@ -17406,23 +18191,23 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group_3_1_0__0__Impl"
-    // InternalSignalDSL.g:4826:1: rule__XAnnotation__Group_3_1_0__0__Impl : ( ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0 ) ) ;
+    // InternalSignalDSL.g:5089: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:4830:1: ( ( ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0 ) ) )
-            // InternalSignalDSL.g:4831:1: ( ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0 ) )
+            // InternalSignalDSL.g:5093:1: ( ( ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0 ) ) )
+            // InternalSignalDSL.g:5094:1: ( ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0 ) )
             {
-            // InternalSignalDSL.g:4831:1: ( ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0 ) )
-            // InternalSignalDSL.g:4832:2: ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0 )
+            // InternalSignalDSL.g:5094:1: ( ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0 ) )
+            // InternalSignalDSL.g:5095:2: ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationAccess().getElementValuePairsAssignment_3_1_0_0()); 
             }
-            // InternalSignalDSL.g:4833:2: ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0 )
-            // InternalSignalDSL.g:4833:3: rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0
+            // InternalSignalDSL.g:5096:2: ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0 )
+            // InternalSignalDSL.g:5096:3: rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0();
@@ -17457,14 +18242,14 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group_3_1_0__1"
-    // InternalSignalDSL.g:4841:1: rule__XAnnotation__Group_3_1_0__1 : rule__XAnnotation__Group_3_1_0__1__Impl ;
+    // InternalSignalDSL.g:5104: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:4845:1: ( rule__XAnnotation__Group_3_1_0__1__Impl )
-            // InternalSignalDSL.g:4846:2: rule__XAnnotation__Group_3_1_0__1__Impl
+            // InternalSignalDSL.g:5108:1: ( rule__XAnnotation__Group_3_1_0__1__Impl )
+            // InternalSignalDSL.g:5109:2: rule__XAnnotation__Group_3_1_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotation__Group_3_1_0__1__Impl();
@@ -17490,37 +18275,37 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group_3_1_0__1__Impl"
-    // InternalSignalDSL.g:4852:1: rule__XAnnotation__Group_3_1_0__1__Impl : ( ( rule__XAnnotation__Group_3_1_0_1__0 )* ) ;
+    // InternalSignalDSL.g:5115: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:4856:1: ( ( ( rule__XAnnotation__Group_3_1_0_1__0 )* ) )
-            // InternalSignalDSL.g:4857:1: ( ( rule__XAnnotation__Group_3_1_0_1__0 )* )
+            // InternalSignalDSL.g:5119:1: ( ( ( rule__XAnnotation__Group_3_1_0_1__0 )* ) )
+            // InternalSignalDSL.g:5120:1: ( ( rule__XAnnotation__Group_3_1_0_1__0 )* )
             {
-            // InternalSignalDSL.g:4857:1: ( ( rule__XAnnotation__Group_3_1_0_1__0 )* )
-            // InternalSignalDSL.g:4858:2: ( rule__XAnnotation__Group_3_1_0_1__0 )*
+            // InternalSignalDSL.g:5120:1: ( ( rule__XAnnotation__Group_3_1_0_1__0 )* )
+            // InternalSignalDSL.g:5121:2: ( rule__XAnnotation__Group_3_1_0_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationAccess().getGroup_3_1_0_1()); 
             }
-            // InternalSignalDSL.g:4859:2: ( rule__XAnnotation__Group_3_1_0_1__0 )*
-            loop58:
+            // InternalSignalDSL.g:5122:2: ( rule__XAnnotation__Group_3_1_0_1__0 )*
+            loop61:
             do {
-                int alt58=2;
-                int LA58_0 = input.LA(1);
+                int alt61=2;
+                int LA61_0 = input.LA(1);
 
-                if ( (LA58_0==78) ) {
-                    alt58=1;
+                if ( (LA61_0==76) ) {
+                    alt61=1;
                 }
 
 
-                switch (alt58) {
+                switch (alt61) {
             	case 1 :
-            	    // InternalSignalDSL.g:4859:3: rule__XAnnotation__Group_3_1_0_1__0
+            	    // InternalSignalDSL.g:5122:3: rule__XAnnotation__Group_3_1_0_1__0
             	    {
-            	    pushFollow(FOLLOW_29);
+            	    pushFollow(FOLLOW_34);
             	    rule__XAnnotation__Group_3_1_0_1__0();
 
             	    state._fsp--;
@@ -17530,7 +18315,7 @@
             	    break;
 
             	default :
-            	    break loop58;
+            	    break loop61;
                 }
             } while (true);
 
@@ -17559,14 +18344,14 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group_3_1_0_1__0"
-    // InternalSignalDSL.g:4868: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:5131: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:4872:1: ( rule__XAnnotation__Group_3_1_0_1__0__Impl rule__XAnnotation__Group_3_1_0_1__1 )
-            // InternalSignalDSL.g:4873:2: rule__XAnnotation__Group_3_1_0_1__0__Impl rule__XAnnotation__Group_3_1_0_1__1
+            // InternalSignalDSL.g:5135:1: ( rule__XAnnotation__Group_3_1_0_1__0__Impl rule__XAnnotation__Group_3_1_0_1__1 )
+            // InternalSignalDSL.g:5136:2: rule__XAnnotation__Group_3_1_0_1__0__Impl rule__XAnnotation__Group_3_1_0_1__1
             {
             pushFollow(FOLLOW_7);
             rule__XAnnotation__Group_3_1_0_1__0__Impl();
@@ -17597,22 +18382,22 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group_3_1_0_1__0__Impl"
-    // InternalSignalDSL.g:4880:1: rule__XAnnotation__Group_3_1_0_1__0__Impl : ( ',' ) ;
+    // InternalSignalDSL.g:5143: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:4884:1: ( ( ',' ) )
-            // InternalSignalDSL.g:4885:1: ( ',' )
+            // InternalSignalDSL.g:5147:1: ( ( ',' ) )
+            // InternalSignalDSL.g:5148:1: ( ',' )
             {
-            // InternalSignalDSL.g:4885:1: ( ',' )
-            // InternalSignalDSL.g:4886:2: ','
+            // InternalSignalDSL.g:5148:1: ( ',' )
+            // InternalSignalDSL.g:5149:2: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationAccess().getCommaKeyword_3_1_0_1_0()); 
             }
-            match(input,78,FOLLOW_2); if (state.failed) return ;
+            match(input,76,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXAnnotationAccess().getCommaKeyword_3_1_0_1_0()); 
             }
@@ -17638,14 +18423,14 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group_3_1_0_1__1"
-    // InternalSignalDSL.g:4895:1: rule__XAnnotation__Group_3_1_0_1__1 : rule__XAnnotation__Group_3_1_0_1__1__Impl ;
+    // InternalSignalDSL.g:5158: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:4899:1: ( rule__XAnnotation__Group_3_1_0_1__1__Impl )
-            // InternalSignalDSL.g:4900:2: rule__XAnnotation__Group_3_1_0_1__1__Impl
+            // InternalSignalDSL.g:5162:1: ( rule__XAnnotation__Group_3_1_0_1__1__Impl )
+            // InternalSignalDSL.g:5163:2: rule__XAnnotation__Group_3_1_0_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotation__Group_3_1_0_1__1__Impl();
@@ -17671,23 +18456,23 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group_3_1_0_1__1__Impl"
-    // InternalSignalDSL.g:4906:1: rule__XAnnotation__Group_3_1_0_1__1__Impl : ( ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1 ) ) ;
+    // InternalSignalDSL.g:5169: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:4910:1: ( ( ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1 ) ) )
-            // InternalSignalDSL.g:4911:1: ( ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1 ) )
+            // InternalSignalDSL.g:5173:1: ( ( ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1 ) ) )
+            // InternalSignalDSL.g:5174:1: ( ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1 ) )
             {
-            // InternalSignalDSL.g:4911:1: ( ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1 ) )
-            // InternalSignalDSL.g:4912:2: ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1 )
+            // InternalSignalDSL.g:5174:1: ( ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1 ) )
+            // InternalSignalDSL.g:5175:2: ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationAccess().getElementValuePairsAssignment_3_1_0_1_1()); 
             }
-            // InternalSignalDSL.g:4913:2: ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1 )
-            // InternalSignalDSL.g:4913:3: rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1
+            // InternalSignalDSL.g:5176:2: ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1 )
+            // InternalSignalDSL.g:5176:3: rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1();
@@ -17722,16 +18507,16 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValuePair__Group__0"
-    // InternalSignalDSL.g:4922:1: rule__XAnnotationElementValuePair__Group__0 : rule__XAnnotationElementValuePair__Group__0__Impl rule__XAnnotationElementValuePair__Group__1 ;
+    // InternalSignalDSL.g:5185: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:4926:1: ( rule__XAnnotationElementValuePair__Group__0__Impl rule__XAnnotationElementValuePair__Group__1 )
-            // InternalSignalDSL.g:4927:2: rule__XAnnotationElementValuePair__Group__0__Impl rule__XAnnotationElementValuePair__Group__1
+            // InternalSignalDSL.g:5189:1: ( rule__XAnnotationElementValuePair__Group__0__Impl rule__XAnnotationElementValuePair__Group__1 )
+            // InternalSignalDSL.g:5190:2: rule__XAnnotationElementValuePair__Group__0__Impl rule__XAnnotationElementValuePair__Group__1
             {
-            pushFollow(FOLLOW_30);
+            pushFollow(FOLLOW_35);
             rule__XAnnotationElementValuePair__Group__0__Impl();
 
             state._fsp--;
@@ -17760,23 +18545,23 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValuePair__Group__0__Impl"
-    // InternalSignalDSL.g:4934:1: rule__XAnnotationElementValuePair__Group__0__Impl : ( ( rule__XAnnotationElementValuePair__Group_0__0 ) ) ;
+    // InternalSignalDSL.g:5197: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:4938:1: ( ( ( rule__XAnnotationElementValuePair__Group_0__0 ) ) )
-            // InternalSignalDSL.g:4939:1: ( ( rule__XAnnotationElementValuePair__Group_0__0 ) )
+            // InternalSignalDSL.g:5201:1: ( ( ( rule__XAnnotationElementValuePair__Group_0__0 ) ) )
+            // InternalSignalDSL.g:5202:1: ( ( rule__XAnnotationElementValuePair__Group_0__0 ) )
             {
-            // InternalSignalDSL.g:4939:1: ( ( rule__XAnnotationElementValuePair__Group_0__0 ) )
-            // InternalSignalDSL.g:4940:2: ( rule__XAnnotationElementValuePair__Group_0__0 )
+            // InternalSignalDSL.g:5202:1: ( ( rule__XAnnotationElementValuePair__Group_0__0 ) )
+            // InternalSignalDSL.g:5203:2: ( rule__XAnnotationElementValuePair__Group_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValuePairAccess().getGroup_0()); 
             }
-            // InternalSignalDSL.g:4941:2: ( rule__XAnnotationElementValuePair__Group_0__0 )
-            // InternalSignalDSL.g:4941:3: rule__XAnnotationElementValuePair__Group_0__0
+            // InternalSignalDSL.g:5204:2: ( rule__XAnnotationElementValuePair__Group_0__0 )
+            // InternalSignalDSL.g:5204:3: rule__XAnnotationElementValuePair__Group_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValuePair__Group_0__0();
@@ -17811,14 +18596,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValuePair__Group__1"
-    // InternalSignalDSL.g:4949:1: rule__XAnnotationElementValuePair__Group__1 : rule__XAnnotationElementValuePair__Group__1__Impl ;
+    // InternalSignalDSL.g:5212: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:4953:1: ( rule__XAnnotationElementValuePair__Group__1__Impl )
-            // InternalSignalDSL.g:4954:2: rule__XAnnotationElementValuePair__Group__1__Impl
+            // InternalSignalDSL.g:5216:1: ( rule__XAnnotationElementValuePair__Group__1__Impl )
+            // InternalSignalDSL.g:5217:2: rule__XAnnotationElementValuePair__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValuePair__Group__1__Impl();
@@ -17844,23 +18629,23 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValuePair__Group__1__Impl"
-    // InternalSignalDSL.g:4960:1: rule__XAnnotationElementValuePair__Group__1__Impl : ( ( rule__XAnnotationElementValuePair__ValueAssignment_1 ) ) ;
+    // InternalSignalDSL.g:5223: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:4964:1: ( ( ( rule__XAnnotationElementValuePair__ValueAssignment_1 ) ) )
-            // InternalSignalDSL.g:4965:1: ( ( rule__XAnnotationElementValuePair__ValueAssignment_1 ) )
+            // InternalSignalDSL.g:5227:1: ( ( ( rule__XAnnotationElementValuePair__ValueAssignment_1 ) ) )
+            // InternalSignalDSL.g:5228:1: ( ( rule__XAnnotationElementValuePair__ValueAssignment_1 ) )
             {
-            // InternalSignalDSL.g:4965:1: ( ( rule__XAnnotationElementValuePair__ValueAssignment_1 ) )
-            // InternalSignalDSL.g:4966:2: ( rule__XAnnotationElementValuePair__ValueAssignment_1 )
+            // InternalSignalDSL.g:5228:1: ( ( rule__XAnnotationElementValuePair__ValueAssignment_1 ) )
+            // InternalSignalDSL.g:5229:2: ( rule__XAnnotationElementValuePair__ValueAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValuePairAccess().getValueAssignment_1()); 
             }
-            // InternalSignalDSL.g:4967:2: ( rule__XAnnotationElementValuePair__ValueAssignment_1 )
-            // InternalSignalDSL.g:4967:3: rule__XAnnotationElementValuePair__ValueAssignment_1
+            // InternalSignalDSL.g:5230:2: ( rule__XAnnotationElementValuePair__ValueAssignment_1 )
+            // InternalSignalDSL.g:5230:3: rule__XAnnotationElementValuePair__ValueAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValuePair__ValueAssignment_1();
@@ -17895,14 +18680,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValuePair__Group_0__0"
-    // InternalSignalDSL.g:4976:1: rule__XAnnotationElementValuePair__Group_0__0 : rule__XAnnotationElementValuePair__Group_0__0__Impl ;
+    // InternalSignalDSL.g:5239: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:4980:1: ( rule__XAnnotationElementValuePair__Group_0__0__Impl )
-            // InternalSignalDSL.g:4981:2: rule__XAnnotationElementValuePair__Group_0__0__Impl
+            // InternalSignalDSL.g:5243:1: ( rule__XAnnotationElementValuePair__Group_0__0__Impl )
+            // InternalSignalDSL.g:5244:2: rule__XAnnotationElementValuePair__Group_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValuePair__Group_0__0__Impl();
@@ -17928,23 +18713,23 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValuePair__Group_0__0__Impl"
-    // InternalSignalDSL.g:4987:1: rule__XAnnotationElementValuePair__Group_0__0__Impl : ( ( rule__XAnnotationElementValuePair__Group_0_0__0 ) ) ;
+    // InternalSignalDSL.g:5250: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:4991:1: ( ( ( rule__XAnnotationElementValuePair__Group_0_0__0 ) ) )
-            // InternalSignalDSL.g:4992:1: ( ( rule__XAnnotationElementValuePair__Group_0_0__0 ) )
+            // InternalSignalDSL.g:5254:1: ( ( ( rule__XAnnotationElementValuePair__Group_0_0__0 ) ) )
+            // InternalSignalDSL.g:5255:1: ( ( rule__XAnnotationElementValuePair__Group_0_0__0 ) )
             {
-            // InternalSignalDSL.g:4992:1: ( ( rule__XAnnotationElementValuePair__Group_0_0__0 ) )
-            // InternalSignalDSL.g:4993:2: ( rule__XAnnotationElementValuePair__Group_0_0__0 )
+            // InternalSignalDSL.g:5255:1: ( ( rule__XAnnotationElementValuePair__Group_0_0__0 ) )
+            // InternalSignalDSL.g:5256:2: ( rule__XAnnotationElementValuePair__Group_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValuePairAccess().getGroup_0_0()); 
             }
-            // InternalSignalDSL.g:4994:2: ( rule__XAnnotationElementValuePair__Group_0_0__0 )
-            // InternalSignalDSL.g:4994:3: rule__XAnnotationElementValuePair__Group_0_0__0
+            // InternalSignalDSL.g:5257:2: ( rule__XAnnotationElementValuePair__Group_0_0__0 )
+            // InternalSignalDSL.g:5257:3: rule__XAnnotationElementValuePair__Group_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValuePair__Group_0_0__0();
@@ -17979,16 +18764,16 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValuePair__Group_0_0__0"
-    // InternalSignalDSL.g:5003:1: rule__XAnnotationElementValuePair__Group_0_0__0 : rule__XAnnotationElementValuePair__Group_0_0__0__Impl rule__XAnnotationElementValuePair__Group_0_0__1 ;
+    // InternalSignalDSL.g:5266: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:5007:1: ( rule__XAnnotationElementValuePair__Group_0_0__0__Impl rule__XAnnotationElementValuePair__Group_0_0__1 )
-            // InternalSignalDSL.g:5008:2: rule__XAnnotationElementValuePair__Group_0_0__0__Impl rule__XAnnotationElementValuePair__Group_0_0__1
+            // InternalSignalDSL.g:5270:1: ( rule__XAnnotationElementValuePair__Group_0_0__0__Impl rule__XAnnotationElementValuePair__Group_0_0__1 )
+            // InternalSignalDSL.g:5271:2: rule__XAnnotationElementValuePair__Group_0_0__0__Impl rule__XAnnotationElementValuePair__Group_0_0__1
             {
-            pushFollow(FOLLOW_31);
+            pushFollow(FOLLOW_36);
             rule__XAnnotationElementValuePair__Group_0_0__0__Impl();
 
             state._fsp--;
@@ -18017,23 +18802,23 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValuePair__Group_0_0__0__Impl"
-    // InternalSignalDSL.g:5015:1: rule__XAnnotationElementValuePair__Group_0_0__0__Impl : ( ( rule__XAnnotationElementValuePair__ElementAssignment_0_0_0 ) ) ;
+    // InternalSignalDSL.g:5278: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:5019:1: ( ( ( rule__XAnnotationElementValuePair__ElementAssignment_0_0_0 ) ) )
-            // InternalSignalDSL.g:5020:1: ( ( rule__XAnnotationElementValuePair__ElementAssignment_0_0_0 ) )
+            // InternalSignalDSL.g:5282:1: ( ( ( rule__XAnnotationElementValuePair__ElementAssignment_0_0_0 ) ) )
+            // InternalSignalDSL.g:5283:1: ( ( rule__XAnnotationElementValuePair__ElementAssignment_0_0_0 ) )
             {
-            // InternalSignalDSL.g:5020:1: ( ( rule__XAnnotationElementValuePair__ElementAssignment_0_0_0 ) )
-            // InternalSignalDSL.g:5021:2: ( rule__XAnnotationElementValuePair__ElementAssignment_0_0_0 )
+            // InternalSignalDSL.g:5283:1: ( ( rule__XAnnotationElementValuePair__ElementAssignment_0_0_0 ) )
+            // InternalSignalDSL.g:5284:2: ( rule__XAnnotationElementValuePair__ElementAssignment_0_0_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValuePairAccess().getElementAssignment_0_0_0()); 
             }
-            // InternalSignalDSL.g:5022:2: ( rule__XAnnotationElementValuePair__ElementAssignment_0_0_0 )
-            // InternalSignalDSL.g:5022:3: rule__XAnnotationElementValuePair__ElementAssignment_0_0_0
+            // InternalSignalDSL.g:5285:2: ( rule__XAnnotationElementValuePair__ElementAssignment_0_0_0 )
+            // InternalSignalDSL.g:5285:3: rule__XAnnotationElementValuePair__ElementAssignment_0_0_0
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValuePair__ElementAssignment_0_0_0();
@@ -18068,14 +18853,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValuePair__Group_0_0__1"
-    // InternalSignalDSL.g:5030:1: rule__XAnnotationElementValuePair__Group_0_0__1 : rule__XAnnotationElementValuePair__Group_0_0__1__Impl ;
+    // InternalSignalDSL.g:5293: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:5034:1: ( rule__XAnnotationElementValuePair__Group_0_0__1__Impl )
-            // InternalSignalDSL.g:5035:2: rule__XAnnotationElementValuePair__Group_0_0__1__Impl
+            // InternalSignalDSL.g:5297:1: ( rule__XAnnotationElementValuePair__Group_0_0__1__Impl )
+            // InternalSignalDSL.g:5298:2: rule__XAnnotationElementValuePair__Group_0_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValuePair__Group_0_0__1__Impl();
@@ -18101,17 +18886,17 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValuePair__Group_0_0__1__Impl"
-    // InternalSignalDSL.g:5041:1: rule__XAnnotationElementValuePair__Group_0_0__1__Impl : ( '=' ) ;
+    // InternalSignalDSL.g:5304: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:5045:1: ( ( '=' ) )
-            // InternalSignalDSL.g:5046:1: ( '=' )
+            // InternalSignalDSL.g:5308:1: ( ( '=' ) )
+            // InternalSignalDSL.g:5309:1: ( '=' )
             {
-            // InternalSignalDSL.g:5046:1: ( '=' )
-            // InternalSignalDSL.g:5047:2: '='
+            // InternalSignalDSL.g:5309:1: ( '=' )
+            // InternalSignalDSL.g:5310:2: '='
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValuePairAccess().getEqualsSignKeyword_0_0_1()); 
@@ -18142,16 +18927,16 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0__0"
-    // InternalSignalDSL.g:5057:1: rule__XAnnotationElementValueOrCommaList__Group_0__0 : rule__XAnnotationElementValueOrCommaList__Group_0__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0__1 ;
+    // InternalSignalDSL.g:5320: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:5061:1: ( rule__XAnnotationElementValueOrCommaList__Group_0__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0__1 )
-            // InternalSignalDSL.g:5062:2: rule__XAnnotationElementValueOrCommaList__Group_0__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0__1
+            // InternalSignalDSL.g:5324:1: ( rule__XAnnotationElementValueOrCommaList__Group_0__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0__1 )
+            // InternalSignalDSL.g:5325:2: rule__XAnnotationElementValueOrCommaList__Group_0__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0__1
             {
-            pushFollow(FOLLOW_32);
+            pushFollow(FOLLOW_37);
             rule__XAnnotationElementValueOrCommaList__Group_0__0__Impl();
 
             state._fsp--;
@@ -18180,23 +18965,23 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0__0__Impl"
-    // InternalSignalDSL.g:5069:1: rule__XAnnotationElementValueOrCommaList__Group_0__0__Impl : ( ( rule__XAnnotationElementValueOrCommaList__Group_0_0__0 ) ) ;
+    // InternalSignalDSL.g:5332: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:5073:1: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_0_0__0 ) ) )
-            // InternalSignalDSL.g:5074:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_0_0__0 ) )
+            // InternalSignalDSL.g:5336:1: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_0_0__0 ) ) )
+            // InternalSignalDSL.g:5337:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_0_0__0 ) )
             {
-            // InternalSignalDSL.g:5074:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_0_0__0 ) )
-            // InternalSignalDSL.g:5075:2: ( rule__XAnnotationElementValueOrCommaList__Group_0_0__0 )
+            // InternalSignalDSL.g:5337:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_0_0__0 ) )
+            // InternalSignalDSL.g:5338:2: ( rule__XAnnotationElementValueOrCommaList__Group_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_0_0()); 
             }
-            // InternalSignalDSL.g:5076:2: ( rule__XAnnotationElementValueOrCommaList__Group_0_0__0 )
-            // InternalSignalDSL.g:5076:3: rule__XAnnotationElementValueOrCommaList__Group_0_0__0
+            // InternalSignalDSL.g:5339:2: ( rule__XAnnotationElementValueOrCommaList__Group_0_0__0 )
+            // InternalSignalDSL.g:5339:3: rule__XAnnotationElementValueOrCommaList__Group_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValueOrCommaList__Group_0_0__0();
@@ -18231,16 +19016,16 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0__1"
-    // InternalSignalDSL.g:5084:1: rule__XAnnotationElementValueOrCommaList__Group_0__1 : rule__XAnnotationElementValueOrCommaList__Group_0__1__Impl rule__XAnnotationElementValueOrCommaList__Group_0__2 ;
+    // InternalSignalDSL.g:5347: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:5088:1: ( rule__XAnnotationElementValueOrCommaList__Group_0__1__Impl rule__XAnnotationElementValueOrCommaList__Group_0__2 )
-            // InternalSignalDSL.g:5089:2: rule__XAnnotationElementValueOrCommaList__Group_0__1__Impl rule__XAnnotationElementValueOrCommaList__Group_0__2
+            // InternalSignalDSL.g:5351:1: ( rule__XAnnotationElementValueOrCommaList__Group_0__1__Impl rule__XAnnotationElementValueOrCommaList__Group_0__2 )
+            // InternalSignalDSL.g:5352:2: rule__XAnnotationElementValueOrCommaList__Group_0__1__Impl rule__XAnnotationElementValueOrCommaList__Group_0__2
             {
-            pushFollow(FOLLOW_32);
+            pushFollow(FOLLOW_37);
             rule__XAnnotationElementValueOrCommaList__Group_0__1__Impl();
 
             state._fsp--;
@@ -18269,31 +19054,31 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0__1__Impl"
-    // InternalSignalDSL.g:5096:1: rule__XAnnotationElementValueOrCommaList__Group_0__1__Impl : ( ( rule__XAnnotationElementValueOrCommaList__Group_0_1__0 )? ) ;
+    // InternalSignalDSL.g:5359: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:5100:1: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_0_1__0 )? ) )
-            // InternalSignalDSL.g:5101:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_0_1__0 )? )
+            // InternalSignalDSL.g:5363:1: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_0_1__0 )? ) )
+            // InternalSignalDSL.g:5364:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_0_1__0 )? )
             {
-            // InternalSignalDSL.g:5101:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_0_1__0 )? )
-            // InternalSignalDSL.g:5102:2: ( rule__XAnnotationElementValueOrCommaList__Group_0_1__0 )?
+            // InternalSignalDSL.g:5364:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_0_1__0 )? )
+            // InternalSignalDSL.g:5365:2: ( rule__XAnnotationElementValueOrCommaList__Group_0_1__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_0_1()); 
             }
-            // InternalSignalDSL.g:5103:2: ( rule__XAnnotationElementValueOrCommaList__Group_0_1__0 )?
-            int alt59=2;
-            int LA59_0 = input.LA(1);
+            // InternalSignalDSL.g:5366:2: ( rule__XAnnotationElementValueOrCommaList__Group_0_1__0 )?
+            int alt62=2;
+            int LA62_0 = input.LA(1);
 
-            if ( ((LA59_0>=RULE_ID && LA59_0<=RULE_STRING)||LA59_0==27||(LA59_0>=34 && LA59_0<=35)||LA59_0==40||(LA59_0>=45 && LA59_0<=50)||LA59_0==68||LA59_0==72||(LA59_0>=75 && LA59_0<=76)||(LA59_0>=80 && LA59_0<=81)||LA59_0==84||LA59_0==86||(LA59_0>=90 && LA59_0<=97)||LA59_0==99||LA59_0==108) ) {
-                alt59=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==64||LA62_0==68||(LA62_0>=73 && LA62_0<=74)||(LA62_0>=78 && LA62_0<=79)||LA62_0==82||LA62_0==84||(LA62_0>=88 && LA62_0<=95)||LA62_0==97||LA62_0==106) ) {
+                alt62=1;
             }
-            switch (alt59) {
+            switch (alt62) {
                 case 1 :
-                    // InternalSignalDSL.g:5103:3: rule__XAnnotationElementValueOrCommaList__Group_0_1__0
+                    // InternalSignalDSL.g:5366:3: rule__XAnnotationElementValueOrCommaList__Group_0_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XAnnotationElementValueOrCommaList__Group_0_1__0();
@@ -18331,14 +19116,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0__2"
-    // InternalSignalDSL.g:5111:1: rule__XAnnotationElementValueOrCommaList__Group_0__2 : rule__XAnnotationElementValueOrCommaList__Group_0__2__Impl ;
+    // InternalSignalDSL.g:5374: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:5115:1: ( rule__XAnnotationElementValueOrCommaList__Group_0__2__Impl )
-            // InternalSignalDSL.g:5116:2: rule__XAnnotationElementValueOrCommaList__Group_0__2__Impl
+            // InternalSignalDSL.g:5378:1: ( rule__XAnnotationElementValueOrCommaList__Group_0__2__Impl )
+            // InternalSignalDSL.g:5379:2: rule__XAnnotationElementValueOrCommaList__Group_0__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValueOrCommaList__Group_0__2__Impl();
@@ -18364,22 +19149,22 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0__2__Impl"
-    // InternalSignalDSL.g:5122:1: rule__XAnnotationElementValueOrCommaList__Group_0__2__Impl : ( ']' ) ;
+    // InternalSignalDSL.g:5385:1: rule__XAnnotationElementValueOrCommaList__Group_0__2__Impl : ( ']' ) ;
     public final void rule__XAnnotationElementValueOrCommaList__Group_0__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:5126:1: ( ( ']' ) )
-            // InternalSignalDSL.g:5127:1: ( ']' )
+            // InternalSignalDSL.g:5389:1: ( ( ']' ) )
+            // InternalSignalDSL.g:5390:1: ( ']' )
             {
-            // InternalSignalDSL.g:5127:1: ( ']' )
-            // InternalSignalDSL.g:5128:2: ']'
+            // InternalSignalDSL.g:5390:1: ( ']' )
+            // InternalSignalDSL.g:5391:2: ']'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getRightSquareBracketKeyword_0_2()); 
             }
-            match(input,79,FOLLOW_2); if (state.failed) return ;
+            match(input,77,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getRightSquareBracketKeyword_0_2()); 
             }
@@ -18405,14 +19190,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0_0__0"
-    // InternalSignalDSL.g:5138:1: rule__XAnnotationElementValueOrCommaList__Group_0_0__0 : rule__XAnnotationElementValueOrCommaList__Group_0_0__0__Impl ;
+    // InternalSignalDSL.g:5401: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:5142:1: ( rule__XAnnotationElementValueOrCommaList__Group_0_0__0__Impl )
-            // InternalSignalDSL.g:5143:2: rule__XAnnotationElementValueOrCommaList__Group_0_0__0__Impl
+            // InternalSignalDSL.g:5405:1: ( rule__XAnnotationElementValueOrCommaList__Group_0_0__0__Impl )
+            // InternalSignalDSL.g:5406:2: rule__XAnnotationElementValueOrCommaList__Group_0_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValueOrCommaList__Group_0_0__0__Impl();
@@ -18438,23 +19223,23 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0_0__0__Impl"
-    // InternalSignalDSL.g:5149:1: rule__XAnnotationElementValueOrCommaList__Group_0_0__0__Impl : ( ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0 ) ) ;
+    // InternalSignalDSL.g:5412: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:5153:1: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0 ) ) )
-            // InternalSignalDSL.g:5154:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0 ) )
+            // InternalSignalDSL.g:5416:1: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0 ) ) )
+            // InternalSignalDSL.g:5417:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0 ) )
             {
-            // InternalSignalDSL.g:5154:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0 ) )
-            // InternalSignalDSL.g:5155:2: ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0 )
+            // InternalSignalDSL.g:5417:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0 ) )
+            // InternalSignalDSL.g:5418:2: ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_0_0_0()); 
             }
-            // InternalSignalDSL.g:5156:2: ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0 )
-            // InternalSignalDSL.g:5156:3: rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0
+            // InternalSignalDSL.g:5419:2: ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0 )
+            // InternalSignalDSL.g:5419:3: rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0();
@@ -18489,16 +19274,16 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0"
-    // InternalSignalDSL.g:5165: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:5428: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:5169:1: ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1 )
-            // InternalSignalDSL.g:5170:2: rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1
+            // InternalSignalDSL.g:5432:1: ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1 )
+            // InternalSignalDSL.g:5433:2: rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1
             {
-            pushFollow(FOLLOW_33);
+            pushFollow(FOLLOW_38);
             rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0__Impl();
 
             state._fsp--;
@@ -18527,23 +19312,23 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0__Impl"
-    // InternalSignalDSL.g:5177:1: rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0__Impl : ( () ) ;
+    // InternalSignalDSL.g:5440: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:5181:1: ( ( () ) )
-            // InternalSignalDSL.g:5182:1: ( () )
+            // InternalSignalDSL.g:5444:1: ( ( () ) )
+            // InternalSignalDSL.g:5445:1: ( () )
             {
-            // InternalSignalDSL.g:5182:1: ( () )
-            // InternalSignalDSL.g:5183:2: ()
+            // InternalSignalDSL.g:5445:1: ( () )
+            // InternalSignalDSL.g:5446:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getXListLiteralAction_0_0_0_0()); 
             }
-            // InternalSignalDSL.g:5184:2: ()
-            // InternalSignalDSL.g:5184:3: 
+            // InternalSignalDSL.g:5447:2: ()
+            // InternalSignalDSL.g:5447:3: 
             {
             }
 
@@ -18568,16 +19353,16 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1"
-    // InternalSignalDSL.g:5192: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:5455: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:5196:1: ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1__Impl rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2 )
-            // InternalSignalDSL.g:5197:2: rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1__Impl rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2
+            // InternalSignalDSL.g:5459:1: ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1__Impl rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2 )
+            // InternalSignalDSL.g:5460:2: rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1__Impl rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2
             {
-            pushFollow(FOLLOW_34);
+            pushFollow(FOLLOW_39);
             rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1__Impl();
 
             state._fsp--;
@@ -18606,22 +19391,22 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1__Impl"
-    // InternalSignalDSL.g:5204:1: rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1__Impl : ( '#' ) ;
+    // InternalSignalDSL.g:5467: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:5208:1: ( ( '#' ) )
-            // InternalSignalDSL.g:5209:1: ( '#' )
+            // InternalSignalDSL.g:5471:1: ( ( '#' ) )
+            // InternalSignalDSL.g:5472:1: ( '#' )
             {
-            // InternalSignalDSL.g:5209:1: ( '#' )
-            // InternalSignalDSL.g:5210:2: '#'
+            // InternalSignalDSL.g:5472:1: ( '#' )
+            // InternalSignalDSL.g:5473:2: '#'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getNumberSignKeyword_0_0_0_1()); 
             }
-            match(input,80,FOLLOW_2); if (state.failed) return ;
+            match(input,78,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getNumberSignKeyword_0_0_0_1()); 
             }
@@ -18647,14 +19432,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2"
-    // InternalSignalDSL.g:5219:1: rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2 : rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2__Impl ;
+    // InternalSignalDSL.g:5482: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:5223:1: ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2__Impl )
-            // InternalSignalDSL.g:5224:2: rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2__Impl
+            // InternalSignalDSL.g:5486:1: ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2__Impl )
+            // InternalSignalDSL.g:5487:2: rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2__Impl();
@@ -18680,22 +19465,22 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2__Impl"
-    // InternalSignalDSL.g:5230:1: rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2__Impl : ( '[' ) ;
+    // InternalSignalDSL.g:5493: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:5234:1: ( ( '[' ) )
-            // InternalSignalDSL.g:5235:1: ( '[' )
+            // InternalSignalDSL.g:5497:1: ( ( '[' ) )
+            // InternalSignalDSL.g:5498:1: ( '[' )
             {
-            // InternalSignalDSL.g:5235:1: ( '[' )
-            // InternalSignalDSL.g:5236:2: '['
+            // InternalSignalDSL.g:5498:1: ( '[' )
+            // InternalSignalDSL.g:5499:2: '['
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getLeftSquareBracketKeyword_0_0_0_2()); 
             }
-            match(input,81,FOLLOW_2); if (state.failed) return ;
+            match(input,79,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getLeftSquareBracketKeyword_0_0_0_2()); 
             }
@@ -18721,16 +19506,16 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0_1__0"
-    // InternalSignalDSL.g:5246:1: rule__XAnnotationElementValueOrCommaList__Group_0_1__0 : rule__XAnnotationElementValueOrCommaList__Group_0_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0_1__1 ;
+    // InternalSignalDSL.g:5509: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:5250:1: ( rule__XAnnotationElementValueOrCommaList__Group_0_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0_1__1 )
-            // InternalSignalDSL.g:5251:2: rule__XAnnotationElementValueOrCommaList__Group_0_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0_1__1
+            // InternalSignalDSL.g:5513:1: ( rule__XAnnotationElementValueOrCommaList__Group_0_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0_1__1 )
+            // InternalSignalDSL.g:5514:2: rule__XAnnotationElementValueOrCommaList__Group_0_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0_1__1
             {
-            pushFollow(FOLLOW_28);
+            pushFollow(FOLLOW_33);
             rule__XAnnotationElementValueOrCommaList__Group_0_1__0__Impl();
 
             state._fsp--;
@@ -18759,23 +19544,23 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0_1__0__Impl"
-    // InternalSignalDSL.g:5258:1: rule__XAnnotationElementValueOrCommaList__Group_0_1__0__Impl : ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0 ) ) ;
+    // InternalSignalDSL.g:5521: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:5262:1: ( ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0 ) ) )
-            // InternalSignalDSL.g:5263:1: ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0 ) )
+            // InternalSignalDSL.g:5525:1: ( ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0 ) ) )
+            // InternalSignalDSL.g:5526:1: ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0 ) )
             {
-            // InternalSignalDSL.g:5263:1: ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0 ) )
-            // InternalSignalDSL.g:5264:2: ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0 )
+            // InternalSignalDSL.g:5526:1: ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0 ) )
+            // InternalSignalDSL.g:5527:2: ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getElementsAssignment_0_1_0()); 
             }
-            // InternalSignalDSL.g:5265:2: ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0 )
-            // InternalSignalDSL.g:5265:3: rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0
+            // InternalSignalDSL.g:5528:2: ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0 )
+            // InternalSignalDSL.g:5528:3: rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0();
@@ -18810,14 +19595,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0_1__1"
-    // InternalSignalDSL.g:5273:1: rule__XAnnotationElementValueOrCommaList__Group_0_1__1 : rule__XAnnotationElementValueOrCommaList__Group_0_1__1__Impl ;
+    // InternalSignalDSL.g:5536: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:5277:1: ( rule__XAnnotationElementValueOrCommaList__Group_0_1__1__Impl )
-            // InternalSignalDSL.g:5278:2: rule__XAnnotationElementValueOrCommaList__Group_0_1__1__Impl
+            // InternalSignalDSL.g:5540:1: ( rule__XAnnotationElementValueOrCommaList__Group_0_1__1__Impl )
+            // InternalSignalDSL.g:5541:2: rule__XAnnotationElementValueOrCommaList__Group_0_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValueOrCommaList__Group_0_1__1__Impl();
@@ -18843,37 +19628,37 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0_1__1__Impl"
-    // InternalSignalDSL.g:5284:1: rule__XAnnotationElementValueOrCommaList__Group_0_1__1__Impl : ( ( rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0 )* ) ;
+    // InternalSignalDSL.g:5547: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:5288:1: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0 )* ) )
-            // InternalSignalDSL.g:5289:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0 )* )
+            // InternalSignalDSL.g:5551:1: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0 )* ) )
+            // InternalSignalDSL.g:5552:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0 )* )
             {
-            // InternalSignalDSL.g:5289:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0 )* )
-            // InternalSignalDSL.g:5290:2: ( rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0 )*
+            // InternalSignalDSL.g:5552:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0 )* )
+            // InternalSignalDSL.g:5553:2: ( rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_0_1_1()); 
             }
-            // InternalSignalDSL.g:5291:2: ( rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0 )*
-            loop60:
+            // InternalSignalDSL.g:5554:2: ( rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0 )*
+            loop63:
             do {
-                int alt60=2;
-                int LA60_0 = input.LA(1);
+                int alt63=2;
+                int LA63_0 = input.LA(1);
 
-                if ( (LA60_0==78) ) {
-                    alt60=1;
+                if ( (LA63_0==76) ) {
+                    alt63=1;
                 }
 
 
-                switch (alt60) {
+                switch (alt63) {
             	case 1 :
-            	    // InternalSignalDSL.g:5291:3: rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0
+            	    // InternalSignalDSL.g:5554:3: rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0
             	    {
-            	    pushFollow(FOLLOW_29);
+            	    pushFollow(FOLLOW_34);
             	    rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0();
 
             	    state._fsp--;
@@ -18883,7 +19668,7 @@
             	    break;
 
             	default :
-            	    break loop60;
+            	    break loop63;
                 }
             } while (true);
 
@@ -18912,16 +19697,16 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0"
-    // InternalSignalDSL.g:5300: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:5563: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:5304:1: ( rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1 )
-            // InternalSignalDSL.g:5305:2: rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1
+            // InternalSignalDSL.g:5567:1: ( rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1 )
+            // InternalSignalDSL.g:5568:2: rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1
             {
-            pushFollow(FOLLOW_30);
+            pushFollow(FOLLOW_35);
             rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0__Impl();
 
             state._fsp--;
@@ -18950,22 +19735,22 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0__Impl"
-    // InternalSignalDSL.g:5312:1: rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0__Impl : ( ',' ) ;
+    // InternalSignalDSL.g:5575: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:5316:1: ( ( ',' ) )
-            // InternalSignalDSL.g:5317:1: ( ',' )
+            // InternalSignalDSL.g:5579:1: ( ( ',' ) )
+            // InternalSignalDSL.g:5580:1: ( ',' )
             {
-            // InternalSignalDSL.g:5317:1: ( ',' )
-            // InternalSignalDSL.g:5318:2: ','
+            // InternalSignalDSL.g:5580:1: ( ',' )
+            // InternalSignalDSL.g:5581:2: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getCommaKeyword_0_1_1_0()); 
             }
-            match(input,78,FOLLOW_2); if (state.failed) return ;
+            match(input,76,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getCommaKeyword_0_1_1_0()); 
             }
@@ -18991,14 +19776,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1"
-    // InternalSignalDSL.g:5327:1: rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1 : rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1__Impl ;
+    // InternalSignalDSL.g:5590: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:5331:1: ( rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1__Impl )
-            // InternalSignalDSL.g:5332:2: rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1__Impl
+            // InternalSignalDSL.g:5594:1: ( rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1__Impl )
+            // InternalSignalDSL.g:5595:2: rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1__Impl();
@@ -19024,23 +19809,23 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1__Impl"
-    // InternalSignalDSL.g:5338:1: rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1__Impl : ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1 ) ) ;
+    // InternalSignalDSL.g:5601: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:5342:1: ( ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1 ) ) )
-            // InternalSignalDSL.g:5343:1: ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1 ) )
+            // InternalSignalDSL.g:5605:1: ( ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1 ) ) )
+            // InternalSignalDSL.g:5606:1: ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1 ) )
             {
-            // InternalSignalDSL.g:5343:1: ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1 ) )
-            // InternalSignalDSL.g:5344:2: ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1 )
+            // InternalSignalDSL.g:5606:1: ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1 ) )
+            // InternalSignalDSL.g:5607:2: ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getElementsAssignment_0_1_1_1()); 
             }
-            // InternalSignalDSL.g:5345:2: ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1 )
-            // InternalSignalDSL.g:5345:3: rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1
+            // InternalSignalDSL.g:5608:2: ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1 )
+            // InternalSignalDSL.g:5608:3: rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1();
@@ -19075,16 +19860,16 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_1__0"
-    // InternalSignalDSL.g:5354:1: rule__XAnnotationElementValueOrCommaList__Group_1__0 : rule__XAnnotationElementValueOrCommaList__Group_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_1__1 ;
+    // InternalSignalDSL.g:5617: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:5358:1: ( rule__XAnnotationElementValueOrCommaList__Group_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_1__1 )
-            // InternalSignalDSL.g:5359:2: rule__XAnnotationElementValueOrCommaList__Group_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_1__1
+            // InternalSignalDSL.g:5621:1: ( rule__XAnnotationElementValueOrCommaList__Group_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_1__1 )
+            // InternalSignalDSL.g:5622:2: rule__XAnnotationElementValueOrCommaList__Group_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_1__1
             {
-            pushFollow(FOLLOW_28);
+            pushFollow(FOLLOW_33);
             rule__XAnnotationElementValueOrCommaList__Group_1__0__Impl();
 
             state._fsp--;
@@ -19113,17 +19898,17 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_1__0__Impl"
-    // InternalSignalDSL.g:5366:1: rule__XAnnotationElementValueOrCommaList__Group_1__0__Impl : ( ruleXAnnotationOrExpression ) ;
+    // InternalSignalDSL.g:5629: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:5370:1: ( ( ruleXAnnotationOrExpression ) )
-            // InternalSignalDSL.g:5371:1: ( ruleXAnnotationOrExpression )
+            // InternalSignalDSL.g:5633:1: ( ( ruleXAnnotationOrExpression ) )
+            // InternalSignalDSL.g:5634:1: ( ruleXAnnotationOrExpression )
             {
-            // InternalSignalDSL.g:5371:1: ( ruleXAnnotationOrExpression )
-            // InternalSignalDSL.g:5372:2: ruleXAnnotationOrExpression
+            // InternalSignalDSL.g:5634:1: ( ruleXAnnotationOrExpression )
+            // InternalSignalDSL.g:5635:2: ruleXAnnotationOrExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getXAnnotationOrExpressionParserRuleCall_1_0()); 
@@ -19158,14 +19943,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_1__1"
-    // InternalSignalDSL.g:5381:1: rule__XAnnotationElementValueOrCommaList__Group_1__1 : rule__XAnnotationElementValueOrCommaList__Group_1__1__Impl ;
+    // InternalSignalDSL.g:5644: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:5385:1: ( rule__XAnnotationElementValueOrCommaList__Group_1__1__Impl )
-            // InternalSignalDSL.g:5386:2: rule__XAnnotationElementValueOrCommaList__Group_1__1__Impl
+            // InternalSignalDSL.g:5648:1: ( rule__XAnnotationElementValueOrCommaList__Group_1__1__Impl )
+            // InternalSignalDSL.g:5649:2: rule__XAnnotationElementValueOrCommaList__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValueOrCommaList__Group_1__1__Impl();
@@ -19191,31 +19976,31 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_1__1__Impl"
-    // InternalSignalDSL.g:5392:1: rule__XAnnotationElementValueOrCommaList__Group_1__1__Impl : ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1__0 )? ) ;
+    // InternalSignalDSL.g:5655: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:5396:1: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1__0 )? ) )
-            // InternalSignalDSL.g:5397:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1__0 )? )
+            // InternalSignalDSL.g:5659:1: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1__0 )? ) )
+            // InternalSignalDSL.g:5660:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1__0 )? )
             {
-            // InternalSignalDSL.g:5397:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1__0 )? )
-            // InternalSignalDSL.g:5398:2: ( rule__XAnnotationElementValueOrCommaList__Group_1_1__0 )?
+            // InternalSignalDSL.g:5660:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1__0 )? )
+            // InternalSignalDSL.g:5661:2: ( rule__XAnnotationElementValueOrCommaList__Group_1_1__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_1_1()); 
             }
-            // InternalSignalDSL.g:5399:2: ( rule__XAnnotationElementValueOrCommaList__Group_1_1__0 )?
-            int alt61=2;
-            int LA61_0 = input.LA(1);
+            // InternalSignalDSL.g:5662:2: ( rule__XAnnotationElementValueOrCommaList__Group_1_1__0 )?
+            int alt64=2;
+            int LA64_0 = input.LA(1);
 
-            if ( (LA61_0==78) ) {
-                alt61=1;
+            if ( (LA64_0==76) ) {
+                alt64=1;
             }
-            switch (alt61) {
+            switch (alt64) {
                 case 1 :
-                    // InternalSignalDSL.g:5399:3: rule__XAnnotationElementValueOrCommaList__Group_1_1__0
+                    // InternalSignalDSL.g:5662:3: rule__XAnnotationElementValueOrCommaList__Group_1_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XAnnotationElementValueOrCommaList__Group_1_1__0();
@@ -19253,16 +20038,16 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_1_1__0"
-    // InternalSignalDSL.g:5408:1: rule__XAnnotationElementValueOrCommaList__Group_1_1__0 : rule__XAnnotationElementValueOrCommaList__Group_1_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_1_1__1 ;
+    // InternalSignalDSL.g:5671: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:5412:1: ( rule__XAnnotationElementValueOrCommaList__Group_1_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_1_1__1 )
-            // InternalSignalDSL.g:5413:2: rule__XAnnotationElementValueOrCommaList__Group_1_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_1_1__1
+            // InternalSignalDSL.g:5675:1: ( rule__XAnnotationElementValueOrCommaList__Group_1_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_1_1__1 )
+            // InternalSignalDSL.g:5676:2: rule__XAnnotationElementValueOrCommaList__Group_1_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_1_1__1
             {
-            pushFollow(FOLLOW_28);
+            pushFollow(FOLLOW_33);
             rule__XAnnotationElementValueOrCommaList__Group_1_1__0__Impl();
 
             state._fsp--;
@@ -19291,23 +20076,23 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_1_1__0__Impl"
-    // InternalSignalDSL.g:5420:1: rule__XAnnotationElementValueOrCommaList__Group_1_1__0__Impl : ( () ) ;
+    // InternalSignalDSL.g:5683: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:5424:1: ( ( () ) )
-            // InternalSignalDSL.g:5425:1: ( () )
+            // InternalSignalDSL.g:5687:1: ( ( () ) )
+            // InternalSignalDSL.g:5688:1: ( () )
             {
-            // InternalSignalDSL.g:5425:1: ( () )
-            // InternalSignalDSL.g:5426:2: ()
+            // InternalSignalDSL.g:5688:1: ( () )
+            // InternalSignalDSL.g:5689:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getXListLiteralElementsAction_1_1_0()); 
             }
-            // InternalSignalDSL.g:5427:2: ()
-            // InternalSignalDSL.g:5427:3: 
+            // InternalSignalDSL.g:5690:2: ()
+            // InternalSignalDSL.g:5690:3: 
             {
             }
 
@@ -19332,14 +20117,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_1_1__1"
-    // InternalSignalDSL.g:5435:1: rule__XAnnotationElementValueOrCommaList__Group_1_1__1 : rule__XAnnotationElementValueOrCommaList__Group_1_1__1__Impl ;
+    // InternalSignalDSL.g:5698: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:5439:1: ( rule__XAnnotationElementValueOrCommaList__Group_1_1__1__Impl )
-            // InternalSignalDSL.g:5440:2: rule__XAnnotationElementValueOrCommaList__Group_1_1__1__Impl
+            // InternalSignalDSL.g:5702:1: ( rule__XAnnotationElementValueOrCommaList__Group_1_1__1__Impl )
+            // InternalSignalDSL.g:5703:2: rule__XAnnotationElementValueOrCommaList__Group_1_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValueOrCommaList__Group_1_1__1__Impl();
@@ -19365,28 +20150,28 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_1_1__1__Impl"
-    // InternalSignalDSL.g:5446:1: rule__XAnnotationElementValueOrCommaList__Group_1_1__1__Impl : ( ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 ) ) ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )* ) ) ;
+    // InternalSignalDSL.g:5709: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:5450:1: ( ( ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 ) ) ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )* ) ) )
-            // InternalSignalDSL.g:5451:1: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 ) ) ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )* ) )
+            // InternalSignalDSL.g:5713:1: ( ( ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 ) ) ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )* ) ) )
+            // InternalSignalDSL.g:5714:1: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 ) ) ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )* ) )
             {
-            // InternalSignalDSL.g:5451:1: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 ) ) ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )* ) )
-            // InternalSignalDSL.g:5452:2: ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 ) ) ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )* )
+            // InternalSignalDSL.g:5714:1: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 ) ) ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )* ) )
+            // InternalSignalDSL.g:5715:2: ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 ) ) ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )* )
             {
-            // InternalSignalDSL.g:5452:2: ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 ) )
-            // InternalSignalDSL.g:5453:3: ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )
+            // InternalSignalDSL.g:5715:2: ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 ) )
+            // InternalSignalDSL.g:5716:3: ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_1_1_1()); 
             }
-            // InternalSignalDSL.g:5454:3: ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )
-            // InternalSignalDSL.g:5454:4: rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0
+            // InternalSignalDSL.g:5717:3: ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )
+            // InternalSignalDSL.g:5717:4: rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0
             {
-            pushFollow(FOLLOW_29);
+            pushFollow(FOLLOW_34);
             rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0();
 
             state._fsp--;
@@ -19400,28 +20185,28 @@
 
             }
 
-            // InternalSignalDSL.g:5457:2: ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )* )
-            // InternalSignalDSL.g:5458:3: ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )*
+            // InternalSignalDSL.g:5720:2: ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )* )
+            // InternalSignalDSL.g:5721:3: ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_1_1_1()); 
             }
-            // InternalSignalDSL.g:5459:3: ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )*
-            loop62:
+            // InternalSignalDSL.g:5722:3: ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )*
+            loop65:
             do {
-                int alt62=2;
-                int LA62_0 = input.LA(1);
+                int alt65=2;
+                int LA65_0 = input.LA(1);
 
-                if ( (LA62_0==78) ) {
-                    alt62=1;
+                if ( (LA65_0==76) ) {
+                    alt65=1;
                 }
 
 
-                switch (alt62) {
+                switch (alt65) {
             	case 1 :
-            	    // InternalSignalDSL.g:5459:4: rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0
+            	    // InternalSignalDSL.g:5722:4: rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0
             	    {
-            	    pushFollow(FOLLOW_29);
+            	    pushFollow(FOLLOW_34);
             	    rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0();
 
             	    state._fsp--;
@@ -19431,7 +20216,7 @@
             	    break;
 
             	default :
-            	    break loop62;
+            	    break loop65;
                 }
             } while (true);
 
@@ -19463,16 +20248,16 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0"
-    // InternalSignalDSL.g:5469: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:5732: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:5473:1: ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1 )
-            // InternalSignalDSL.g:5474:2: rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1
+            // InternalSignalDSL.g:5736:1: ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1 )
+            // InternalSignalDSL.g:5737:2: rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1
             {
-            pushFollow(FOLLOW_30);
+            pushFollow(FOLLOW_35);
             rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0__Impl();
 
             state._fsp--;
@@ -19501,22 +20286,22 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0__Impl"
-    // InternalSignalDSL.g:5481:1: rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0__Impl : ( ',' ) ;
+    // InternalSignalDSL.g:5744: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:5485:1: ( ( ',' ) )
-            // InternalSignalDSL.g:5486:1: ( ',' )
+            // InternalSignalDSL.g:5748:1: ( ( ',' ) )
+            // InternalSignalDSL.g:5749:1: ( ',' )
             {
-            // InternalSignalDSL.g:5486:1: ( ',' )
-            // InternalSignalDSL.g:5487:2: ','
+            // InternalSignalDSL.g:5749:1: ( ',' )
+            // InternalSignalDSL.g:5750:2: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getCommaKeyword_1_1_1_0()); 
             }
-            match(input,78,FOLLOW_2); if (state.failed) return ;
+            match(input,76,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getCommaKeyword_1_1_1_0()); 
             }
@@ -19542,14 +20327,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1"
-    // InternalSignalDSL.g:5496:1: rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1 : rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1__Impl ;
+    // InternalSignalDSL.g:5759: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:5500:1: ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1__Impl )
-            // InternalSignalDSL.g:5501:2: rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1__Impl
+            // InternalSignalDSL.g:5763:1: ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1__Impl )
+            // InternalSignalDSL.g:5764:2: rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1__Impl();
@@ -19575,23 +20360,23 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1__Impl"
-    // InternalSignalDSL.g:5507:1: rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1__Impl : ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1 ) ) ;
+    // InternalSignalDSL.g:5770: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:5511:1: ( ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1 ) ) )
-            // InternalSignalDSL.g:5512:1: ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1 ) )
+            // InternalSignalDSL.g:5774:1: ( ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1 ) ) )
+            // InternalSignalDSL.g:5775:1: ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1 ) )
             {
-            // InternalSignalDSL.g:5512:1: ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1 ) )
-            // InternalSignalDSL.g:5513:2: ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1 )
+            // InternalSignalDSL.g:5775:1: ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1 ) )
+            // InternalSignalDSL.g:5776:2: ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getElementsAssignment_1_1_1_1()); 
             }
-            // InternalSignalDSL.g:5514:2: ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1 )
-            // InternalSignalDSL.g:5514:3: rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1
+            // InternalSignalDSL.g:5777:2: ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1 )
+            // InternalSignalDSL.g:5777:3: rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1();
@@ -19626,16 +20411,16 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0__0"
-    // InternalSignalDSL.g:5523:1: rule__XAnnotationElementValue__Group_0__0 : rule__XAnnotationElementValue__Group_0__0__Impl rule__XAnnotationElementValue__Group_0__1 ;
+    // InternalSignalDSL.g:5786: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:5527:1: ( rule__XAnnotationElementValue__Group_0__0__Impl rule__XAnnotationElementValue__Group_0__1 )
-            // InternalSignalDSL.g:5528:2: rule__XAnnotationElementValue__Group_0__0__Impl rule__XAnnotationElementValue__Group_0__1
+            // InternalSignalDSL.g:5790:1: ( rule__XAnnotationElementValue__Group_0__0__Impl rule__XAnnotationElementValue__Group_0__1 )
+            // InternalSignalDSL.g:5791:2: rule__XAnnotationElementValue__Group_0__0__Impl rule__XAnnotationElementValue__Group_0__1
             {
-            pushFollow(FOLLOW_32);
+            pushFollow(FOLLOW_37);
             rule__XAnnotationElementValue__Group_0__0__Impl();
 
             state._fsp--;
@@ -19664,23 +20449,23 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0__0__Impl"
-    // InternalSignalDSL.g:5535:1: rule__XAnnotationElementValue__Group_0__0__Impl : ( ( rule__XAnnotationElementValue__Group_0_0__0 ) ) ;
+    // InternalSignalDSL.g:5798: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:5539:1: ( ( ( rule__XAnnotationElementValue__Group_0_0__0 ) ) )
-            // InternalSignalDSL.g:5540:1: ( ( rule__XAnnotationElementValue__Group_0_0__0 ) )
+            // InternalSignalDSL.g:5802:1: ( ( ( rule__XAnnotationElementValue__Group_0_0__0 ) ) )
+            // InternalSignalDSL.g:5803:1: ( ( rule__XAnnotationElementValue__Group_0_0__0 ) )
             {
-            // InternalSignalDSL.g:5540:1: ( ( rule__XAnnotationElementValue__Group_0_0__0 ) )
-            // InternalSignalDSL.g:5541:2: ( rule__XAnnotationElementValue__Group_0_0__0 )
+            // InternalSignalDSL.g:5803:1: ( ( rule__XAnnotationElementValue__Group_0_0__0 ) )
+            // InternalSignalDSL.g:5804:2: ( rule__XAnnotationElementValue__Group_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueAccess().getGroup_0_0()); 
             }
-            // InternalSignalDSL.g:5542:2: ( rule__XAnnotationElementValue__Group_0_0__0 )
-            // InternalSignalDSL.g:5542:3: rule__XAnnotationElementValue__Group_0_0__0
+            // InternalSignalDSL.g:5805:2: ( rule__XAnnotationElementValue__Group_0_0__0 )
+            // InternalSignalDSL.g:5805:3: rule__XAnnotationElementValue__Group_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValue__Group_0_0__0();
@@ -19715,16 +20500,16 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0__1"
-    // InternalSignalDSL.g:5550:1: rule__XAnnotationElementValue__Group_0__1 : rule__XAnnotationElementValue__Group_0__1__Impl rule__XAnnotationElementValue__Group_0__2 ;
+    // InternalSignalDSL.g:5813: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:5554:1: ( rule__XAnnotationElementValue__Group_0__1__Impl rule__XAnnotationElementValue__Group_0__2 )
-            // InternalSignalDSL.g:5555:2: rule__XAnnotationElementValue__Group_0__1__Impl rule__XAnnotationElementValue__Group_0__2
+            // InternalSignalDSL.g:5817:1: ( rule__XAnnotationElementValue__Group_0__1__Impl rule__XAnnotationElementValue__Group_0__2 )
+            // InternalSignalDSL.g:5818:2: rule__XAnnotationElementValue__Group_0__1__Impl rule__XAnnotationElementValue__Group_0__2
             {
-            pushFollow(FOLLOW_32);
+            pushFollow(FOLLOW_37);
             rule__XAnnotationElementValue__Group_0__1__Impl();
 
             state._fsp--;
@@ -19753,31 +20538,31 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0__1__Impl"
-    // InternalSignalDSL.g:5562:1: rule__XAnnotationElementValue__Group_0__1__Impl : ( ( rule__XAnnotationElementValue__Group_0_1__0 )? ) ;
+    // InternalSignalDSL.g:5825: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:5566:1: ( ( ( rule__XAnnotationElementValue__Group_0_1__0 )? ) )
-            // InternalSignalDSL.g:5567:1: ( ( rule__XAnnotationElementValue__Group_0_1__0 )? )
+            // InternalSignalDSL.g:5829:1: ( ( ( rule__XAnnotationElementValue__Group_0_1__0 )? ) )
+            // InternalSignalDSL.g:5830:1: ( ( rule__XAnnotationElementValue__Group_0_1__0 )? )
             {
-            // InternalSignalDSL.g:5567:1: ( ( rule__XAnnotationElementValue__Group_0_1__0 )? )
-            // InternalSignalDSL.g:5568:2: ( rule__XAnnotationElementValue__Group_0_1__0 )?
+            // InternalSignalDSL.g:5830:1: ( ( rule__XAnnotationElementValue__Group_0_1__0 )? )
+            // InternalSignalDSL.g:5831:2: ( rule__XAnnotationElementValue__Group_0_1__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueAccess().getGroup_0_1()); 
             }
-            // InternalSignalDSL.g:5569:2: ( rule__XAnnotationElementValue__Group_0_1__0 )?
-            int alt63=2;
-            int LA63_0 = input.LA(1);
+            // InternalSignalDSL.g:5832:2: ( rule__XAnnotationElementValue__Group_0_1__0 )?
+            int alt66=2;
+            int LA66_0 = input.LA(1);
 
-            if ( ((LA63_0>=RULE_ID && LA63_0<=RULE_STRING)||LA63_0==27||(LA63_0>=34 && LA63_0<=35)||LA63_0==40||(LA63_0>=45 && LA63_0<=50)||LA63_0==68||LA63_0==72||(LA63_0>=75 && LA63_0<=76)||(LA63_0>=80 && LA63_0<=81)||LA63_0==84||LA63_0==86||(LA63_0>=90 && LA63_0<=97)||LA63_0==99||LA63_0==108) ) {
-                alt63=1;
+            if ( ((LA66_0>=RULE_ID && LA66_0<=RULE_STRING)||LA66_0==27||(LA66_0>=34 && LA66_0<=35)||LA66_0==40||(LA66_0>=45 && LA66_0<=50)||LA66_0==64||LA66_0==68||(LA66_0>=73 && LA66_0<=74)||(LA66_0>=78 && LA66_0<=79)||LA66_0==82||LA66_0==84||(LA66_0>=88 && LA66_0<=95)||LA66_0==97||LA66_0==106) ) {
+                alt66=1;
             }
-            switch (alt63) {
+            switch (alt66) {
                 case 1 :
-                    // InternalSignalDSL.g:5569:3: rule__XAnnotationElementValue__Group_0_1__0
+                    // InternalSignalDSL.g:5832:3: rule__XAnnotationElementValue__Group_0_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XAnnotationElementValue__Group_0_1__0();
@@ -19815,14 +20600,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0__2"
-    // InternalSignalDSL.g:5577:1: rule__XAnnotationElementValue__Group_0__2 : rule__XAnnotationElementValue__Group_0__2__Impl ;
+    // InternalSignalDSL.g:5840: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:5581:1: ( rule__XAnnotationElementValue__Group_0__2__Impl )
-            // InternalSignalDSL.g:5582:2: rule__XAnnotationElementValue__Group_0__2__Impl
+            // InternalSignalDSL.g:5844:1: ( rule__XAnnotationElementValue__Group_0__2__Impl )
+            // InternalSignalDSL.g:5845:2: rule__XAnnotationElementValue__Group_0__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValue__Group_0__2__Impl();
@@ -19848,22 +20633,22 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0__2__Impl"
-    // InternalSignalDSL.g:5588:1: rule__XAnnotationElementValue__Group_0__2__Impl : ( ']' ) ;
+    // InternalSignalDSL.g:5851:1: rule__XAnnotationElementValue__Group_0__2__Impl : ( ']' ) ;
     public final void rule__XAnnotationElementValue__Group_0__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:5592:1: ( ( ']' ) )
-            // InternalSignalDSL.g:5593:1: ( ']' )
+            // InternalSignalDSL.g:5855:1: ( ( ']' ) )
+            // InternalSignalDSL.g:5856:1: ( ']' )
             {
-            // InternalSignalDSL.g:5593:1: ( ']' )
-            // InternalSignalDSL.g:5594:2: ']'
+            // InternalSignalDSL.g:5856:1: ( ']' )
+            // InternalSignalDSL.g:5857:2: ']'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueAccess().getRightSquareBracketKeyword_0_2()); 
             }
-            match(input,79,FOLLOW_2); if (state.failed) return ;
+            match(input,77,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXAnnotationElementValueAccess().getRightSquareBracketKeyword_0_2()); 
             }
@@ -19889,14 +20674,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0_0__0"
-    // InternalSignalDSL.g:5604:1: rule__XAnnotationElementValue__Group_0_0__0 : rule__XAnnotationElementValue__Group_0_0__0__Impl ;
+    // InternalSignalDSL.g:5867: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:5608:1: ( rule__XAnnotationElementValue__Group_0_0__0__Impl )
-            // InternalSignalDSL.g:5609:2: rule__XAnnotationElementValue__Group_0_0__0__Impl
+            // InternalSignalDSL.g:5871:1: ( rule__XAnnotationElementValue__Group_0_0__0__Impl )
+            // InternalSignalDSL.g:5872:2: rule__XAnnotationElementValue__Group_0_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValue__Group_0_0__0__Impl();
@@ -19922,23 +20707,23 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0_0__0__Impl"
-    // InternalSignalDSL.g:5615:1: rule__XAnnotationElementValue__Group_0_0__0__Impl : ( ( rule__XAnnotationElementValue__Group_0_0_0__0 ) ) ;
+    // InternalSignalDSL.g:5878: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:5619:1: ( ( ( rule__XAnnotationElementValue__Group_0_0_0__0 ) ) )
-            // InternalSignalDSL.g:5620:1: ( ( rule__XAnnotationElementValue__Group_0_0_0__0 ) )
+            // InternalSignalDSL.g:5882:1: ( ( ( rule__XAnnotationElementValue__Group_0_0_0__0 ) ) )
+            // InternalSignalDSL.g:5883:1: ( ( rule__XAnnotationElementValue__Group_0_0_0__0 ) )
             {
-            // InternalSignalDSL.g:5620:1: ( ( rule__XAnnotationElementValue__Group_0_0_0__0 ) )
-            // InternalSignalDSL.g:5621:2: ( rule__XAnnotationElementValue__Group_0_0_0__0 )
+            // InternalSignalDSL.g:5883:1: ( ( rule__XAnnotationElementValue__Group_0_0_0__0 ) )
+            // InternalSignalDSL.g:5884:2: ( rule__XAnnotationElementValue__Group_0_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueAccess().getGroup_0_0_0()); 
             }
-            // InternalSignalDSL.g:5622:2: ( rule__XAnnotationElementValue__Group_0_0_0__0 )
-            // InternalSignalDSL.g:5622:3: rule__XAnnotationElementValue__Group_0_0_0__0
+            // InternalSignalDSL.g:5885:2: ( rule__XAnnotationElementValue__Group_0_0_0__0 )
+            // InternalSignalDSL.g:5885:3: rule__XAnnotationElementValue__Group_0_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValue__Group_0_0_0__0();
@@ -19973,16 +20758,16 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0_0_0__0"
-    // InternalSignalDSL.g:5631: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:5894: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:5635:1: ( rule__XAnnotationElementValue__Group_0_0_0__0__Impl rule__XAnnotationElementValue__Group_0_0_0__1 )
-            // InternalSignalDSL.g:5636:2: rule__XAnnotationElementValue__Group_0_0_0__0__Impl rule__XAnnotationElementValue__Group_0_0_0__1
+            // InternalSignalDSL.g:5898:1: ( rule__XAnnotationElementValue__Group_0_0_0__0__Impl rule__XAnnotationElementValue__Group_0_0_0__1 )
+            // InternalSignalDSL.g:5899:2: rule__XAnnotationElementValue__Group_0_0_0__0__Impl rule__XAnnotationElementValue__Group_0_0_0__1
             {
-            pushFollow(FOLLOW_33);
+            pushFollow(FOLLOW_38);
             rule__XAnnotationElementValue__Group_0_0_0__0__Impl();
 
             state._fsp--;
@@ -20011,23 +20796,23 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0_0_0__0__Impl"
-    // InternalSignalDSL.g:5643:1: rule__XAnnotationElementValue__Group_0_0_0__0__Impl : ( () ) ;
+    // InternalSignalDSL.g:5906: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:5647:1: ( ( () ) )
-            // InternalSignalDSL.g:5648:1: ( () )
+            // InternalSignalDSL.g:5910:1: ( ( () ) )
+            // InternalSignalDSL.g:5911:1: ( () )
             {
-            // InternalSignalDSL.g:5648:1: ( () )
-            // InternalSignalDSL.g:5649:2: ()
+            // InternalSignalDSL.g:5911:1: ( () )
+            // InternalSignalDSL.g:5912:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueAccess().getXListLiteralAction_0_0_0_0()); 
             }
-            // InternalSignalDSL.g:5650:2: ()
-            // InternalSignalDSL.g:5650:3: 
+            // InternalSignalDSL.g:5913:2: ()
+            // InternalSignalDSL.g:5913:3: 
             {
             }
 
@@ -20052,16 +20837,16 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0_0_0__1"
-    // InternalSignalDSL.g:5658: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:5921: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:5662:1: ( rule__XAnnotationElementValue__Group_0_0_0__1__Impl rule__XAnnotationElementValue__Group_0_0_0__2 )
-            // InternalSignalDSL.g:5663:2: rule__XAnnotationElementValue__Group_0_0_0__1__Impl rule__XAnnotationElementValue__Group_0_0_0__2
+            // InternalSignalDSL.g:5925:1: ( rule__XAnnotationElementValue__Group_0_0_0__1__Impl rule__XAnnotationElementValue__Group_0_0_0__2 )
+            // InternalSignalDSL.g:5926:2: rule__XAnnotationElementValue__Group_0_0_0__1__Impl rule__XAnnotationElementValue__Group_0_0_0__2
             {
-            pushFollow(FOLLOW_34);
+            pushFollow(FOLLOW_39);
             rule__XAnnotationElementValue__Group_0_0_0__1__Impl();
 
             state._fsp--;
@@ -20090,22 +20875,22 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0_0_0__1__Impl"
-    // InternalSignalDSL.g:5670:1: rule__XAnnotationElementValue__Group_0_0_0__1__Impl : ( '#' ) ;
+    // InternalSignalDSL.g:5933: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:5674:1: ( ( '#' ) )
-            // InternalSignalDSL.g:5675:1: ( '#' )
+            // InternalSignalDSL.g:5937:1: ( ( '#' ) )
+            // InternalSignalDSL.g:5938:1: ( '#' )
             {
-            // InternalSignalDSL.g:5675:1: ( '#' )
-            // InternalSignalDSL.g:5676:2: '#'
+            // InternalSignalDSL.g:5938:1: ( '#' )
+            // InternalSignalDSL.g:5939:2: '#'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueAccess().getNumberSignKeyword_0_0_0_1()); 
             }
-            match(input,80,FOLLOW_2); if (state.failed) return ;
+            match(input,78,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXAnnotationElementValueAccess().getNumberSignKeyword_0_0_0_1()); 
             }
@@ -20131,14 +20916,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0_0_0__2"
-    // InternalSignalDSL.g:5685:1: rule__XAnnotationElementValue__Group_0_0_0__2 : rule__XAnnotationElementValue__Group_0_0_0__2__Impl ;
+    // InternalSignalDSL.g:5948: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:5689:1: ( rule__XAnnotationElementValue__Group_0_0_0__2__Impl )
-            // InternalSignalDSL.g:5690:2: rule__XAnnotationElementValue__Group_0_0_0__2__Impl
+            // InternalSignalDSL.g:5952:1: ( rule__XAnnotationElementValue__Group_0_0_0__2__Impl )
+            // InternalSignalDSL.g:5953:2: rule__XAnnotationElementValue__Group_0_0_0__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValue__Group_0_0_0__2__Impl();
@@ -20164,22 +20949,22 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0_0_0__2__Impl"
-    // InternalSignalDSL.g:5696:1: rule__XAnnotationElementValue__Group_0_0_0__2__Impl : ( '[' ) ;
+    // InternalSignalDSL.g:5959: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:5700:1: ( ( '[' ) )
-            // InternalSignalDSL.g:5701:1: ( '[' )
+            // InternalSignalDSL.g:5963:1: ( ( '[' ) )
+            // InternalSignalDSL.g:5964:1: ( '[' )
             {
-            // InternalSignalDSL.g:5701:1: ( '[' )
-            // InternalSignalDSL.g:5702:2: '['
+            // InternalSignalDSL.g:5964:1: ( '[' )
+            // InternalSignalDSL.g:5965:2: '['
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueAccess().getLeftSquareBracketKeyword_0_0_0_2()); 
             }
-            match(input,81,FOLLOW_2); if (state.failed) return ;
+            match(input,79,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXAnnotationElementValueAccess().getLeftSquareBracketKeyword_0_0_0_2()); 
             }
@@ -20205,16 +20990,16 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0_1__0"
-    // InternalSignalDSL.g:5712:1: rule__XAnnotationElementValue__Group_0_1__0 : rule__XAnnotationElementValue__Group_0_1__0__Impl rule__XAnnotationElementValue__Group_0_1__1 ;
+    // InternalSignalDSL.g:5975: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:5716:1: ( rule__XAnnotationElementValue__Group_0_1__0__Impl rule__XAnnotationElementValue__Group_0_1__1 )
-            // InternalSignalDSL.g:5717:2: rule__XAnnotationElementValue__Group_0_1__0__Impl rule__XAnnotationElementValue__Group_0_1__1
+            // InternalSignalDSL.g:5979:1: ( rule__XAnnotationElementValue__Group_0_1__0__Impl rule__XAnnotationElementValue__Group_0_1__1 )
+            // InternalSignalDSL.g:5980:2: rule__XAnnotationElementValue__Group_0_1__0__Impl rule__XAnnotationElementValue__Group_0_1__1
             {
-            pushFollow(FOLLOW_28);
+            pushFollow(FOLLOW_33);
             rule__XAnnotationElementValue__Group_0_1__0__Impl();
 
             state._fsp--;
@@ -20243,23 +21028,23 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0_1__0__Impl"
-    // InternalSignalDSL.g:5724:1: rule__XAnnotationElementValue__Group_0_1__0__Impl : ( ( rule__XAnnotationElementValue__ElementsAssignment_0_1_0 ) ) ;
+    // InternalSignalDSL.g:5987: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:5728:1: ( ( ( rule__XAnnotationElementValue__ElementsAssignment_0_1_0 ) ) )
-            // InternalSignalDSL.g:5729:1: ( ( rule__XAnnotationElementValue__ElementsAssignment_0_1_0 ) )
+            // InternalSignalDSL.g:5991:1: ( ( ( rule__XAnnotationElementValue__ElementsAssignment_0_1_0 ) ) )
+            // InternalSignalDSL.g:5992:1: ( ( rule__XAnnotationElementValue__ElementsAssignment_0_1_0 ) )
             {
-            // InternalSignalDSL.g:5729:1: ( ( rule__XAnnotationElementValue__ElementsAssignment_0_1_0 ) )
-            // InternalSignalDSL.g:5730:2: ( rule__XAnnotationElementValue__ElementsAssignment_0_1_0 )
+            // InternalSignalDSL.g:5992:1: ( ( rule__XAnnotationElementValue__ElementsAssignment_0_1_0 ) )
+            // InternalSignalDSL.g:5993:2: ( rule__XAnnotationElementValue__ElementsAssignment_0_1_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueAccess().getElementsAssignment_0_1_0()); 
             }
-            // InternalSignalDSL.g:5731:2: ( rule__XAnnotationElementValue__ElementsAssignment_0_1_0 )
-            // InternalSignalDSL.g:5731:3: rule__XAnnotationElementValue__ElementsAssignment_0_1_0
+            // InternalSignalDSL.g:5994:2: ( rule__XAnnotationElementValue__ElementsAssignment_0_1_0 )
+            // InternalSignalDSL.g:5994:3: rule__XAnnotationElementValue__ElementsAssignment_0_1_0
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValue__ElementsAssignment_0_1_0();
@@ -20294,14 +21079,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0_1__1"
-    // InternalSignalDSL.g:5739:1: rule__XAnnotationElementValue__Group_0_1__1 : rule__XAnnotationElementValue__Group_0_1__1__Impl ;
+    // InternalSignalDSL.g:6002: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:5743:1: ( rule__XAnnotationElementValue__Group_0_1__1__Impl )
-            // InternalSignalDSL.g:5744:2: rule__XAnnotationElementValue__Group_0_1__1__Impl
+            // InternalSignalDSL.g:6006:1: ( rule__XAnnotationElementValue__Group_0_1__1__Impl )
+            // InternalSignalDSL.g:6007:2: rule__XAnnotationElementValue__Group_0_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValue__Group_0_1__1__Impl();
@@ -20327,37 +21112,37 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0_1__1__Impl"
-    // InternalSignalDSL.g:5750:1: rule__XAnnotationElementValue__Group_0_1__1__Impl : ( ( rule__XAnnotationElementValue__Group_0_1_1__0 )* ) ;
+    // InternalSignalDSL.g:6013: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:5754:1: ( ( ( rule__XAnnotationElementValue__Group_0_1_1__0 )* ) )
-            // InternalSignalDSL.g:5755:1: ( ( rule__XAnnotationElementValue__Group_0_1_1__0 )* )
+            // InternalSignalDSL.g:6017:1: ( ( ( rule__XAnnotationElementValue__Group_0_1_1__0 )* ) )
+            // InternalSignalDSL.g:6018:1: ( ( rule__XAnnotationElementValue__Group_0_1_1__0 )* )
             {
-            // InternalSignalDSL.g:5755:1: ( ( rule__XAnnotationElementValue__Group_0_1_1__0 )* )
-            // InternalSignalDSL.g:5756:2: ( rule__XAnnotationElementValue__Group_0_1_1__0 )*
+            // InternalSignalDSL.g:6018:1: ( ( rule__XAnnotationElementValue__Group_0_1_1__0 )* )
+            // InternalSignalDSL.g:6019:2: ( rule__XAnnotationElementValue__Group_0_1_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueAccess().getGroup_0_1_1()); 
             }
-            // InternalSignalDSL.g:5757:2: ( rule__XAnnotationElementValue__Group_0_1_1__0 )*
-            loop64:
+            // InternalSignalDSL.g:6020:2: ( rule__XAnnotationElementValue__Group_0_1_1__0 )*
+            loop67:
             do {
-                int alt64=2;
-                int LA64_0 = input.LA(1);
+                int alt67=2;
+                int LA67_0 = input.LA(1);
 
-                if ( (LA64_0==78) ) {
-                    alt64=1;
+                if ( (LA67_0==76) ) {
+                    alt67=1;
                 }
 
 
-                switch (alt64) {
+                switch (alt67) {
             	case 1 :
-            	    // InternalSignalDSL.g:5757:3: rule__XAnnotationElementValue__Group_0_1_1__0
+            	    // InternalSignalDSL.g:6020:3: rule__XAnnotationElementValue__Group_0_1_1__0
             	    {
-            	    pushFollow(FOLLOW_29);
+            	    pushFollow(FOLLOW_34);
             	    rule__XAnnotationElementValue__Group_0_1_1__0();
 
             	    state._fsp--;
@@ -20367,7 +21152,7 @@
             	    break;
 
             	default :
-            	    break loop64;
+            	    break loop67;
                 }
             } while (true);
 
@@ -20396,16 +21181,16 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0_1_1__0"
-    // InternalSignalDSL.g:5766: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:6029: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:5770:1: ( rule__XAnnotationElementValue__Group_0_1_1__0__Impl rule__XAnnotationElementValue__Group_0_1_1__1 )
-            // InternalSignalDSL.g:5771:2: rule__XAnnotationElementValue__Group_0_1_1__0__Impl rule__XAnnotationElementValue__Group_0_1_1__1
+            // InternalSignalDSL.g:6033:1: ( rule__XAnnotationElementValue__Group_0_1_1__0__Impl rule__XAnnotationElementValue__Group_0_1_1__1 )
+            // InternalSignalDSL.g:6034:2: rule__XAnnotationElementValue__Group_0_1_1__0__Impl rule__XAnnotationElementValue__Group_0_1_1__1
             {
-            pushFollow(FOLLOW_30);
+            pushFollow(FOLLOW_35);
             rule__XAnnotationElementValue__Group_0_1_1__0__Impl();
 
             state._fsp--;
@@ -20434,22 +21219,22 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0_1_1__0__Impl"
-    // InternalSignalDSL.g:5778:1: rule__XAnnotationElementValue__Group_0_1_1__0__Impl : ( ',' ) ;
+    // InternalSignalDSL.g:6041: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:5782:1: ( ( ',' ) )
-            // InternalSignalDSL.g:5783:1: ( ',' )
+            // InternalSignalDSL.g:6045:1: ( ( ',' ) )
+            // InternalSignalDSL.g:6046:1: ( ',' )
             {
-            // InternalSignalDSL.g:5783:1: ( ',' )
-            // InternalSignalDSL.g:5784:2: ','
+            // InternalSignalDSL.g:6046:1: ( ',' )
+            // InternalSignalDSL.g:6047:2: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueAccess().getCommaKeyword_0_1_1_0()); 
             }
-            match(input,78,FOLLOW_2); if (state.failed) return ;
+            match(input,76,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXAnnotationElementValueAccess().getCommaKeyword_0_1_1_0()); 
             }
@@ -20475,14 +21260,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0_1_1__1"
-    // InternalSignalDSL.g:5793:1: rule__XAnnotationElementValue__Group_0_1_1__1 : rule__XAnnotationElementValue__Group_0_1_1__1__Impl ;
+    // InternalSignalDSL.g:6056: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:5797:1: ( rule__XAnnotationElementValue__Group_0_1_1__1__Impl )
-            // InternalSignalDSL.g:5798:2: rule__XAnnotationElementValue__Group_0_1_1__1__Impl
+            // InternalSignalDSL.g:6060:1: ( rule__XAnnotationElementValue__Group_0_1_1__1__Impl )
+            // InternalSignalDSL.g:6061:2: rule__XAnnotationElementValue__Group_0_1_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValue__Group_0_1_1__1__Impl();
@@ -20508,23 +21293,23 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0_1_1__1__Impl"
-    // InternalSignalDSL.g:5804:1: rule__XAnnotationElementValue__Group_0_1_1__1__Impl : ( ( rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1 ) ) ;
+    // InternalSignalDSL.g:6067: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:5808:1: ( ( ( rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1 ) ) )
-            // InternalSignalDSL.g:5809:1: ( ( rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1 ) )
+            // InternalSignalDSL.g:6071:1: ( ( ( rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1 ) ) )
+            // InternalSignalDSL.g:6072:1: ( ( rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1 ) )
             {
-            // InternalSignalDSL.g:5809:1: ( ( rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1 ) )
-            // InternalSignalDSL.g:5810:2: ( rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1 )
+            // InternalSignalDSL.g:6072:1: ( ( rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1 ) )
+            // InternalSignalDSL.g:6073:2: ( rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueAccess().getElementsAssignment_0_1_1_1()); 
             }
-            // InternalSignalDSL.g:5811:2: ( rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1 )
-            // InternalSignalDSL.g:5811:3: rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1
+            // InternalSignalDSL.g:6074:2: ( rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1 )
+            // InternalSignalDSL.g:6074:3: rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1();
@@ -20559,16 +21344,16 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_0__0"
-    // InternalSignalDSL.g:5820:1: rule__XAssignment__Group_0__0 : rule__XAssignment__Group_0__0__Impl rule__XAssignment__Group_0__1 ;
+    // InternalSignalDSL.g:6083: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:5824:1: ( rule__XAssignment__Group_0__0__Impl rule__XAssignment__Group_0__1 )
-            // InternalSignalDSL.g:5825:2: rule__XAssignment__Group_0__0__Impl rule__XAssignment__Group_0__1
+            // InternalSignalDSL.g:6087:1: ( rule__XAssignment__Group_0__0__Impl rule__XAssignment__Group_0__1 )
+            // InternalSignalDSL.g:6088:2: rule__XAssignment__Group_0__0__Impl rule__XAssignment__Group_0__1
             {
-            pushFollow(FOLLOW_35);
+            pushFollow(FOLLOW_40);
             rule__XAssignment__Group_0__0__Impl();
 
             state._fsp--;
@@ -20597,23 +21382,23 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_0__0__Impl"
-    // InternalSignalDSL.g:5832:1: rule__XAssignment__Group_0__0__Impl : ( () ) ;
+    // InternalSignalDSL.g:6095:1: rule__XAssignment__Group_0__0__Impl : ( () ) ;
     public final void rule__XAssignment__Group_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:5836:1: ( ( () ) )
-            // InternalSignalDSL.g:5837:1: ( () )
+            // InternalSignalDSL.g:6099:1: ( ( () ) )
+            // InternalSignalDSL.g:6100:1: ( () )
             {
-            // InternalSignalDSL.g:5837:1: ( () )
-            // InternalSignalDSL.g:5838:2: ()
+            // InternalSignalDSL.g:6100:1: ( () )
+            // InternalSignalDSL.g:6101:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAssignmentAccess().getXAssignmentAction_0_0()); 
             }
-            // InternalSignalDSL.g:5839:2: ()
-            // InternalSignalDSL.g:5839:3: 
+            // InternalSignalDSL.g:6102:2: ()
+            // InternalSignalDSL.g:6102:3: 
             {
             }
 
@@ -20638,16 +21423,16 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_0__1"
-    // InternalSignalDSL.g:5847:1: rule__XAssignment__Group_0__1 : rule__XAssignment__Group_0__1__Impl rule__XAssignment__Group_0__2 ;
+    // InternalSignalDSL.g:6110: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:5851:1: ( rule__XAssignment__Group_0__1__Impl rule__XAssignment__Group_0__2 )
-            // InternalSignalDSL.g:5852:2: rule__XAssignment__Group_0__1__Impl rule__XAssignment__Group_0__2
+            // InternalSignalDSL.g:6114:1: ( rule__XAssignment__Group_0__1__Impl rule__XAssignment__Group_0__2 )
+            // InternalSignalDSL.g:6115:2: rule__XAssignment__Group_0__1__Impl rule__XAssignment__Group_0__2
             {
-            pushFollow(FOLLOW_31);
+            pushFollow(FOLLOW_36);
             rule__XAssignment__Group_0__1__Impl();
 
             state._fsp--;
@@ -20676,23 +21461,23 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_0__1__Impl"
-    // InternalSignalDSL.g:5859:1: rule__XAssignment__Group_0__1__Impl : ( ( rule__XAssignment__FeatureAssignment_0_1 ) ) ;
+    // InternalSignalDSL.g:6122: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:5863:1: ( ( ( rule__XAssignment__FeatureAssignment_0_1 ) ) )
-            // InternalSignalDSL.g:5864:1: ( ( rule__XAssignment__FeatureAssignment_0_1 ) )
+            // InternalSignalDSL.g:6126:1: ( ( ( rule__XAssignment__FeatureAssignment_0_1 ) ) )
+            // InternalSignalDSL.g:6127:1: ( ( rule__XAssignment__FeatureAssignment_0_1 ) )
             {
-            // InternalSignalDSL.g:5864:1: ( ( rule__XAssignment__FeatureAssignment_0_1 ) )
-            // InternalSignalDSL.g:5865:2: ( rule__XAssignment__FeatureAssignment_0_1 )
+            // InternalSignalDSL.g:6127:1: ( ( rule__XAssignment__FeatureAssignment_0_1 ) )
+            // InternalSignalDSL.g:6128:2: ( rule__XAssignment__FeatureAssignment_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAssignmentAccess().getFeatureAssignment_0_1()); 
             }
-            // InternalSignalDSL.g:5866:2: ( rule__XAssignment__FeatureAssignment_0_1 )
-            // InternalSignalDSL.g:5866:3: rule__XAssignment__FeatureAssignment_0_1
+            // InternalSignalDSL.g:6129:2: ( rule__XAssignment__FeatureAssignment_0_1 )
+            // InternalSignalDSL.g:6129:3: rule__XAssignment__FeatureAssignment_0_1
             {
             pushFollow(FOLLOW_2);
             rule__XAssignment__FeatureAssignment_0_1();
@@ -20727,16 +21512,16 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_0__2"
-    // InternalSignalDSL.g:5874:1: rule__XAssignment__Group_0__2 : rule__XAssignment__Group_0__2__Impl rule__XAssignment__Group_0__3 ;
+    // InternalSignalDSL.g:6137: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:5878:1: ( rule__XAssignment__Group_0__2__Impl rule__XAssignment__Group_0__3 )
-            // InternalSignalDSL.g:5879:2: rule__XAssignment__Group_0__2__Impl rule__XAssignment__Group_0__3
+            // InternalSignalDSL.g:6141:1: ( rule__XAssignment__Group_0__2__Impl rule__XAssignment__Group_0__3 )
+            // InternalSignalDSL.g:6142:2: rule__XAssignment__Group_0__2__Impl rule__XAssignment__Group_0__3
             {
-            pushFollow(FOLLOW_30);
+            pushFollow(FOLLOW_35);
             rule__XAssignment__Group_0__2__Impl();
 
             state._fsp--;
@@ -20765,17 +21550,17 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_0__2__Impl"
-    // InternalSignalDSL.g:5886:1: rule__XAssignment__Group_0__2__Impl : ( ruleOpSingleAssign ) ;
+    // InternalSignalDSL.g:6149: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:5890:1: ( ( ruleOpSingleAssign ) )
-            // InternalSignalDSL.g:5891:1: ( ruleOpSingleAssign )
+            // InternalSignalDSL.g:6153:1: ( ( ruleOpSingleAssign ) )
+            // InternalSignalDSL.g:6154:1: ( ruleOpSingleAssign )
             {
-            // InternalSignalDSL.g:5891:1: ( ruleOpSingleAssign )
-            // InternalSignalDSL.g:5892:2: ruleOpSingleAssign
+            // InternalSignalDSL.g:6154:1: ( ruleOpSingleAssign )
+            // InternalSignalDSL.g:6155:2: ruleOpSingleAssign
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAssignmentAccess().getOpSingleAssignParserRuleCall_0_2()); 
@@ -20810,14 +21595,14 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_0__3"
-    // InternalSignalDSL.g:5901:1: rule__XAssignment__Group_0__3 : rule__XAssignment__Group_0__3__Impl ;
+    // InternalSignalDSL.g:6164: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:5905:1: ( rule__XAssignment__Group_0__3__Impl )
-            // InternalSignalDSL.g:5906:2: rule__XAssignment__Group_0__3__Impl
+            // InternalSignalDSL.g:6168:1: ( rule__XAssignment__Group_0__3__Impl )
+            // InternalSignalDSL.g:6169:2: rule__XAssignment__Group_0__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAssignment__Group_0__3__Impl();
@@ -20843,23 +21628,23 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_0__3__Impl"
-    // InternalSignalDSL.g:5912:1: rule__XAssignment__Group_0__3__Impl : ( ( rule__XAssignment__ValueAssignment_0_3 ) ) ;
+    // InternalSignalDSL.g:6175: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:5916:1: ( ( ( rule__XAssignment__ValueAssignment_0_3 ) ) )
-            // InternalSignalDSL.g:5917:1: ( ( rule__XAssignment__ValueAssignment_0_3 ) )
+            // InternalSignalDSL.g:6179:1: ( ( ( rule__XAssignment__ValueAssignment_0_3 ) ) )
+            // InternalSignalDSL.g:6180:1: ( ( rule__XAssignment__ValueAssignment_0_3 ) )
             {
-            // InternalSignalDSL.g:5917:1: ( ( rule__XAssignment__ValueAssignment_0_3 ) )
-            // InternalSignalDSL.g:5918:2: ( rule__XAssignment__ValueAssignment_0_3 )
+            // InternalSignalDSL.g:6180:1: ( ( rule__XAssignment__ValueAssignment_0_3 ) )
+            // InternalSignalDSL.g:6181:2: ( rule__XAssignment__ValueAssignment_0_3 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAssignmentAccess().getValueAssignment_0_3()); 
             }
-            // InternalSignalDSL.g:5919:2: ( rule__XAssignment__ValueAssignment_0_3 )
-            // InternalSignalDSL.g:5919:3: rule__XAssignment__ValueAssignment_0_3
+            // InternalSignalDSL.g:6182:2: ( rule__XAssignment__ValueAssignment_0_3 )
+            // InternalSignalDSL.g:6182:3: rule__XAssignment__ValueAssignment_0_3
             {
             pushFollow(FOLLOW_2);
             rule__XAssignment__ValueAssignment_0_3();
@@ -20894,16 +21679,16 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_1__0"
-    // InternalSignalDSL.g:5928:1: rule__XAssignment__Group_1__0 : rule__XAssignment__Group_1__0__Impl rule__XAssignment__Group_1__1 ;
+    // InternalSignalDSL.g:6191: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:5932:1: ( rule__XAssignment__Group_1__0__Impl rule__XAssignment__Group_1__1 )
-            // InternalSignalDSL.g:5933:2: rule__XAssignment__Group_1__0__Impl rule__XAssignment__Group_1__1
+            // InternalSignalDSL.g:6195:1: ( rule__XAssignment__Group_1__0__Impl rule__XAssignment__Group_1__1 )
+            // InternalSignalDSL.g:6196:2: rule__XAssignment__Group_1__0__Impl rule__XAssignment__Group_1__1
             {
-            pushFollow(FOLLOW_36);
+            pushFollow(FOLLOW_41);
             rule__XAssignment__Group_1__0__Impl();
 
             state._fsp--;
@@ -20932,17 +21717,17 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_1__0__Impl"
-    // InternalSignalDSL.g:5940:1: rule__XAssignment__Group_1__0__Impl : ( ruleXOrExpression ) ;
+    // InternalSignalDSL.g:6203: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:5944:1: ( ( ruleXOrExpression ) )
-            // InternalSignalDSL.g:5945:1: ( ruleXOrExpression )
+            // InternalSignalDSL.g:6207:1: ( ( ruleXOrExpression ) )
+            // InternalSignalDSL.g:6208:1: ( ruleXOrExpression )
             {
-            // InternalSignalDSL.g:5945:1: ( ruleXOrExpression )
-            // InternalSignalDSL.g:5946:2: ruleXOrExpression
+            // InternalSignalDSL.g:6208:1: ( ruleXOrExpression )
+            // InternalSignalDSL.g:6209:2: ruleXOrExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAssignmentAccess().getXOrExpressionParserRuleCall_1_0()); 
@@ -20977,14 +21762,14 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_1__1"
-    // InternalSignalDSL.g:5955:1: rule__XAssignment__Group_1__1 : rule__XAssignment__Group_1__1__Impl ;
+    // InternalSignalDSL.g:6218: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:5959:1: ( rule__XAssignment__Group_1__1__Impl )
-            // InternalSignalDSL.g:5960:2: rule__XAssignment__Group_1__1__Impl
+            // InternalSignalDSL.g:6222:1: ( rule__XAssignment__Group_1__1__Impl )
+            // InternalSignalDSL.g:6223:2: rule__XAssignment__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAssignment__Group_1__1__Impl();
@@ -21010,27 +21795,27 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_1__1__Impl"
-    // InternalSignalDSL.g:5966:1: rule__XAssignment__Group_1__1__Impl : ( ( rule__XAssignment__Group_1_1__0 )? ) ;
+    // InternalSignalDSL.g:6229: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:5970:1: ( ( ( rule__XAssignment__Group_1_1__0 )? ) )
-            // InternalSignalDSL.g:5971:1: ( ( rule__XAssignment__Group_1_1__0 )? )
+            // InternalSignalDSL.g:6233:1: ( ( ( rule__XAssignment__Group_1_1__0 )? ) )
+            // InternalSignalDSL.g:6234:1: ( ( rule__XAssignment__Group_1_1__0 )? )
             {
-            // InternalSignalDSL.g:5971:1: ( ( rule__XAssignment__Group_1_1__0 )? )
-            // InternalSignalDSL.g:5972:2: ( rule__XAssignment__Group_1_1__0 )?
+            // InternalSignalDSL.g:6234:1: ( ( rule__XAssignment__Group_1_1__0 )? )
+            // InternalSignalDSL.g:6235:2: ( rule__XAssignment__Group_1_1__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAssignmentAccess().getGroup_1_1()); 
             }
-            // InternalSignalDSL.g:5973:2: ( rule__XAssignment__Group_1_1__0 )?
-            int alt65=2;
-            alt65 = dfa65.predict(input);
-            switch (alt65) {
+            // InternalSignalDSL.g:6236:2: ( rule__XAssignment__Group_1_1__0 )?
+            int alt68=2;
+            alt68 = dfa68.predict(input);
+            switch (alt68) {
                 case 1 :
-                    // InternalSignalDSL.g:5973:3: rule__XAssignment__Group_1_1__0
+                    // InternalSignalDSL.g:6236:3: rule__XAssignment__Group_1_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XAssignment__Group_1_1__0();
@@ -21068,16 +21853,16 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_1_1__0"
-    // InternalSignalDSL.g:5982:1: rule__XAssignment__Group_1_1__0 : rule__XAssignment__Group_1_1__0__Impl rule__XAssignment__Group_1_1__1 ;
+    // InternalSignalDSL.g:6245: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:5986:1: ( rule__XAssignment__Group_1_1__0__Impl rule__XAssignment__Group_1_1__1 )
-            // InternalSignalDSL.g:5987:2: rule__XAssignment__Group_1_1__0__Impl rule__XAssignment__Group_1_1__1
+            // InternalSignalDSL.g:6249:1: ( rule__XAssignment__Group_1_1__0__Impl rule__XAssignment__Group_1_1__1 )
+            // InternalSignalDSL.g:6250:2: rule__XAssignment__Group_1_1__0__Impl rule__XAssignment__Group_1_1__1
             {
-            pushFollow(FOLLOW_30);
+            pushFollow(FOLLOW_35);
             rule__XAssignment__Group_1_1__0__Impl();
 
             state._fsp--;
@@ -21106,23 +21891,23 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_1_1__0__Impl"
-    // InternalSignalDSL.g:5994:1: rule__XAssignment__Group_1_1__0__Impl : ( ( rule__XAssignment__Group_1_1_0__0 ) ) ;
+    // InternalSignalDSL.g:6257: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:5998:1: ( ( ( rule__XAssignment__Group_1_1_0__0 ) ) )
-            // InternalSignalDSL.g:5999:1: ( ( rule__XAssignment__Group_1_1_0__0 ) )
+            // InternalSignalDSL.g:6261:1: ( ( ( rule__XAssignment__Group_1_1_0__0 ) ) )
+            // InternalSignalDSL.g:6262:1: ( ( rule__XAssignment__Group_1_1_0__0 ) )
             {
-            // InternalSignalDSL.g:5999:1: ( ( rule__XAssignment__Group_1_1_0__0 ) )
-            // InternalSignalDSL.g:6000:2: ( rule__XAssignment__Group_1_1_0__0 )
+            // InternalSignalDSL.g:6262:1: ( ( rule__XAssignment__Group_1_1_0__0 ) )
+            // InternalSignalDSL.g:6263:2: ( rule__XAssignment__Group_1_1_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAssignmentAccess().getGroup_1_1_0()); 
             }
-            // InternalSignalDSL.g:6001:2: ( rule__XAssignment__Group_1_1_0__0 )
-            // InternalSignalDSL.g:6001:3: rule__XAssignment__Group_1_1_0__0
+            // InternalSignalDSL.g:6264:2: ( rule__XAssignment__Group_1_1_0__0 )
+            // InternalSignalDSL.g:6264:3: rule__XAssignment__Group_1_1_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XAssignment__Group_1_1_0__0();
@@ -21157,14 +21942,14 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_1_1__1"
-    // InternalSignalDSL.g:6009:1: rule__XAssignment__Group_1_1__1 : rule__XAssignment__Group_1_1__1__Impl ;
+    // InternalSignalDSL.g:6272: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:6013:1: ( rule__XAssignment__Group_1_1__1__Impl )
-            // InternalSignalDSL.g:6014:2: rule__XAssignment__Group_1_1__1__Impl
+            // InternalSignalDSL.g:6276:1: ( rule__XAssignment__Group_1_1__1__Impl )
+            // InternalSignalDSL.g:6277:2: rule__XAssignment__Group_1_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAssignment__Group_1_1__1__Impl();
@@ -21190,23 +21975,23 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_1_1__1__Impl"
-    // InternalSignalDSL.g:6020:1: rule__XAssignment__Group_1_1__1__Impl : ( ( rule__XAssignment__RightOperandAssignment_1_1_1 ) ) ;
+    // InternalSignalDSL.g:6283: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:6024:1: ( ( ( rule__XAssignment__RightOperandAssignment_1_1_1 ) ) )
-            // InternalSignalDSL.g:6025:1: ( ( rule__XAssignment__RightOperandAssignment_1_1_1 ) )
+            // InternalSignalDSL.g:6287:1: ( ( ( rule__XAssignment__RightOperandAssignment_1_1_1 ) ) )
+            // InternalSignalDSL.g:6288:1: ( ( rule__XAssignment__RightOperandAssignment_1_1_1 ) )
             {
-            // InternalSignalDSL.g:6025:1: ( ( rule__XAssignment__RightOperandAssignment_1_1_1 ) )
-            // InternalSignalDSL.g:6026:2: ( rule__XAssignment__RightOperandAssignment_1_1_1 )
+            // InternalSignalDSL.g:6288:1: ( ( rule__XAssignment__RightOperandAssignment_1_1_1 ) )
+            // InternalSignalDSL.g:6289:2: ( rule__XAssignment__RightOperandAssignment_1_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAssignmentAccess().getRightOperandAssignment_1_1_1()); 
             }
-            // InternalSignalDSL.g:6027:2: ( rule__XAssignment__RightOperandAssignment_1_1_1 )
-            // InternalSignalDSL.g:6027:3: rule__XAssignment__RightOperandAssignment_1_1_1
+            // InternalSignalDSL.g:6290:2: ( rule__XAssignment__RightOperandAssignment_1_1_1 )
+            // InternalSignalDSL.g:6290:3: rule__XAssignment__RightOperandAssignment_1_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XAssignment__RightOperandAssignment_1_1_1();
@@ -21241,14 +22026,14 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_1_1_0__0"
-    // InternalSignalDSL.g:6036:1: rule__XAssignment__Group_1_1_0__0 : rule__XAssignment__Group_1_1_0__0__Impl ;
+    // InternalSignalDSL.g:6299: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:6040:1: ( rule__XAssignment__Group_1_1_0__0__Impl )
-            // InternalSignalDSL.g:6041:2: rule__XAssignment__Group_1_1_0__0__Impl
+            // InternalSignalDSL.g:6303:1: ( rule__XAssignment__Group_1_1_0__0__Impl )
+            // InternalSignalDSL.g:6304:2: rule__XAssignment__Group_1_1_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAssignment__Group_1_1_0__0__Impl();
@@ -21274,23 +22059,23 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_1_1_0__0__Impl"
-    // InternalSignalDSL.g:6047:1: rule__XAssignment__Group_1_1_0__0__Impl : ( ( rule__XAssignment__Group_1_1_0_0__0 ) ) ;
+    // InternalSignalDSL.g:6310: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:6051:1: ( ( ( rule__XAssignment__Group_1_1_0_0__0 ) ) )
-            // InternalSignalDSL.g:6052:1: ( ( rule__XAssignment__Group_1_1_0_0__0 ) )
+            // InternalSignalDSL.g:6314:1: ( ( ( rule__XAssignment__Group_1_1_0_0__0 ) ) )
+            // InternalSignalDSL.g:6315:1: ( ( rule__XAssignment__Group_1_1_0_0__0 ) )
             {
-            // InternalSignalDSL.g:6052:1: ( ( rule__XAssignment__Group_1_1_0_0__0 ) )
-            // InternalSignalDSL.g:6053:2: ( rule__XAssignment__Group_1_1_0_0__0 )
+            // InternalSignalDSL.g:6315:1: ( ( rule__XAssignment__Group_1_1_0_0__0 ) )
+            // InternalSignalDSL.g:6316:2: ( rule__XAssignment__Group_1_1_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAssignmentAccess().getGroup_1_1_0_0()); 
             }
-            // InternalSignalDSL.g:6054:2: ( rule__XAssignment__Group_1_1_0_0__0 )
-            // InternalSignalDSL.g:6054:3: rule__XAssignment__Group_1_1_0_0__0
+            // InternalSignalDSL.g:6317:2: ( rule__XAssignment__Group_1_1_0_0__0 )
+            // InternalSignalDSL.g:6317:3: rule__XAssignment__Group_1_1_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XAssignment__Group_1_1_0_0__0();
@@ -21325,16 +22110,16 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_1_1_0_0__0"
-    // InternalSignalDSL.g:6063: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:6326: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:6067:1: ( rule__XAssignment__Group_1_1_0_0__0__Impl rule__XAssignment__Group_1_1_0_0__1 )
-            // InternalSignalDSL.g:6068:2: rule__XAssignment__Group_1_1_0_0__0__Impl rule__XAssignment__Group_1_1_0_0__1
+            // InternalSignalDSL.g:6330:1: ( rule__XAssignment__Group_1_1_0_0__0__Impl rule__XAssignment__Group_1_1_0_0__1 )
+            // InternalSignalDSL.g:6331:2: rule__XAssignment__Group_1_1_0_0__0__Impl rule__XAssignment__Group_1_1_0_0__1
             {
-            pushFollow(FOLLOW_36);
+            pushFollow(FOLLOW_41);
             rule__XAssignment__Group_1_1_0_0__0__Impl();
 
             state._fsp--;
@@ -21363,23 +22148,23 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_1_1_0_0__0__Impl"
-    // InternalSignalDSL.g:6075:1: rule__XAssignment__Group_1_1_0_0__0__Impl : ( () ) ;
+    // InternalSignalDSL.g:6338: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:6079:1: ( ( () ) )
-            // InternalSignalDSL.g:6080:1: ( () )
+            // InternalSignalDSL.g:6342:1: ( ( () ) )
+            // InternalSignalDSL.g:6343:1: ( () )
             {
-            // InternalSignalDSL.g:6080:1: ( () )
-            // InternalSignalDSL.g:6081:2: ()
+            // InternalSignalDSL.g:6343:1: ( () )
+            // InternalSignalDSL.g:6344:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAssignmentAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0()); 
             }
-            // InternalSignalDSL.g:6082:2: ()
-            // InternalSignalDSL.g:6082:3: 
+            // InternalSignalDSL.g:6345:2: ()
+            // InternalSignalDSL.g:6345:3: 
             {
             }
 
@@ -21404,14 +22189,14 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_1_1_0_0__1"
-    // InternalSignalDSL.g:6090:1: rule__XAssignment__Group_1_1_0_0__1 : rule__XAssignment__Group_1_1_0_0__1__Impl ;
+    // InternalSignalDSL.g:6353: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:6094:1: ( rule__XAssignment__Group_1_1_0_0__1__Impl )
-            // InternalSignalDSL.g:6095:2: rule__XAssignment__Group_1_1_0_0__1__Impl
+            // InternalSignalDSL.g:6357:1: ( rule__XAssignment__Group_1_1_0_0__1__Impl )
+            // InternalSignalDSL.g:6358:2: rule__XAssignment__Group_1_1_0_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAssignment__Group_1_1_0_0__1__Impl();
@@ -21437,23 +22222,23 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_1_1_0_0__1__Impl"
-    // InternalSignalDSL.g:6101:1: rule__XAssignment__Group_1_1_0_0__1__Impl : ( ( rule__XAssignment__FeatureAssignment_1_1_0_0_1 ) ) ;
+    // InternalSignalDSL.g:6364: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:6105:1: ( ( ( rule__XAssignment__FeatureAssignment_1_1_0_0_1 ) ) )
-            // InternalSignalDSL.g:6106:1: ( ( rule__XAssignment__FeatureAssignment_1_1_0_0_1 ) )
+            // InternalSignalDSL.g:6368:1: ( ( ( rule__XAssignment__FeatureAssignment_1_1_0_0_1 ) ) )
+            // InternalSignalDSL.g:6369:1: ( ( rule__XAssignment__FeatureAssignment_1_1_0_0_1 ) )
             {
-            // InternalSignalDSL.g:6106:1: ( ( rule__XAssignment__FeatureAssignment_1_1_0_0_1 ) )
-            // InternalSignalDSL.g:6107:2: ( rule__XAssignment__FeatureAssignment_1_1_0_0_1 )
+            // InternalSignalDSL.g:6369:1: ( ( rule__XAssignment__FeatureAssignment_1_1_0_0_1 ) )
+            // InternalSignalDSL.g:6370:2: ( rule__XAssignment__FeatureAssignment_1_1_0_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAssignmentAccess().getFeatureAssignment_1_1_0_0_1()); 
             }
-            // InternalSignalDSL.g:6108:2: ( rule__XAssignment__FeatureAssignment_1_1_0_0_1 )
-            // InternalSignalDSL.g:6108:3: rule__XAssignment__FeatureAssignment_1_1_0_0_1
+            // InternalSignalDSL.g:6371:2: ( rule__XAssignment__FeatureAssignment_1_1_0_0_1 )
+            // InternalSignalDSL.g:6371:3: rule__XAssignment__FeatureAssignment_1_1_0_0_1
             {
             pushFollow(FOLLOW_2);
             rule__XAssignment__FeatureAssignment_1_1_0_0_1();
@@ -21488,16 +22273,16 @@
 
 
     // $ANTLR start "rule__OpMultiAssign__Group_5__0"
-    // InternalSignalDSL.g:6117:1: rule__OpMultiAssign__Group_5__0 : rule__OpMultiAssign__Group_5__0__Impl rule__OpMultiAssign__Group_5__1 ;
+    // InternalSignalDSL.g:6380: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:6121:1: ( rule__OpMultiAssign__Group_5__0__Impl rule__OpMultiAssign__Group_5__1 )
-            // InternalSignalDSL.g:6122:2: rule__OpMultiAssign__Group_5__0__Impl rule__OpMultiAssign__Group_5__1
+            // InternalSignalDSL.g:6384:1: ( rule__OpMultiAssign__Group_5__0__Impl rule__OpMultiAssign__Group_5__1 )
+            // InternalSignalDSL.g:6385:2: rule__OpMultiAssign__Group_5__0__Impl rule__OpMultiAssign__Group_5__1
             {
-            pushFollow(FOLLOW_37);
+            pushFollow(FOLLOW_42);
             rule__OpMultiAssign__Group_5__0__Impl();
 
             state._fsp--;
@@ -21526,17 +22311,17 @@
 
 
     // $ANTLR start "rule__OpMultiAssign__Group_5__0__Impl"
-    // InternalSignalDSL.g:6129:1: rule__OpMultiAssign__Group_5__0__Impl : ( '<' ) ;
+    // InternalSignalDSL.g:6392:1: rule__OpMultiAssign__Group_5__0__Impl : ( '<' ) ;
     public final void rule__OpMultiAssign__Group_5__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:6133:1: ( ( '<' ) )
-            // InternalSignalDSL.g:6134:1: ( '<' )
+            // InternalSignalDSL.g:6396:1: ( ( '<' ) )
+            // InternalSignalDSL.g:6397:1: ( '<' )
             {
-            // InternalSignalDSL.g:6134:1: ( '<' )
-            // InternalSignalDSL.g:6135:2: '<'
+            // InternalSignalDSL.g:6397:1: ( '<' )
+            // InternalSignalDSL.g:6398:2: '<'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpMultiAssignAccess().getLessThanSignKeyword_5_0()); 
@@ -21567,16 +22352,16 @@
 
 
     // $ANTLR start "rule__OpMultiAssign__Group_5__1"
-    // InternalSignalDSL.g:6144:1: rule__OpMultiAssign__Group_5__1 : rule__OpMultiAssign__Group_5__1__Impl rule__OpMultiAssign__Group_5__2 ;
+    // InternalSignalDSL.g:6407: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:6148:1: ( rule__OpMultiAssign__Group_5__1__Impl rule__OpMultiAssign__Group_5__2 )
-            // InternalSignalDSL.g:6149:2: rule__OpMultiAssign__Group_5__1__Impl rule__OpMultiAssign__Group_5__2
+            // InternalSignalDSL.g:6411:1: ( rule__OpMultiAssign__Group_5__1__Impl rule__OpMultiAssign__Group_5__2 )
+            // InternalSignalDSL.g:6412:2: rule__OpMultiAssign__Group_5__1__Impl rule__OpMultiAssign__Group_5__2
             {
-            pushFollow(FOLLOW_31);
+            pushFollow(FOLLOW_36);
             rule__OpMultiAssign__Group_5__1__Impl();
 
             state._fsp--;
@@ -21605,17 +22390,17 @@
 
 
     // $ANTLR start "rule__OpMultiAssign__Group_5__1__Impl"
-    // InternalSignalDSL.g:6156:1: rule__OpMultiAssign__Group_5__1__Impl : ( '<' ) ;
+    // InternalSignalDSL.g:6419:1: rule__OpMultiAssign__Group_5__1__Impl : ( '<' ) ;
     public final void rule__OpMultiAssign__Group_5__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:6160:1: ( ( '<' ) )
-            // InternalSignalDSL.g:6161:1: ( '<' )
+            // InternalSignalDSL.g:6423:1: ( ( '<' ) )
+            // InternalSignalDSL.g:6424:1: ( '<' )
             {
-            // InternalSignalDSL.g:6161:1: ( '<' )
-            // InternalSignalDSL.g:6162:2: '<'
+            // InternalSignalDSL.g:6424:1: ( '<' )
+            // InternalSignalDSL.g:6425:2: '<'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpMultiAssignAccess().getLessThanSignKeyword_5_1()); 
@@ -21646,14 +22431,14 @@
 
 
     // $ANTLR start "rule__OpMultiAssign__Group_5__2"
-    // InternalSignalDSL.g:6171:1: rule__OpMultiAssign__Group_5__2 : rule__OpMultiAssign__Group_5__2__Impl ;
+    // InternalSignalDSL.g:6434: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:6175:1: ( rule__OpMultiAssign__Group_5__2__Impl )
-            // InternalSignalDSL.g:6176:2: rule__OpMultiAssign__Group_5__2__Impl
+            // InternalSignalDSL.g:6438:1: ( rule__OpMultiAssign__Group_5__2__Impl )
+            // InternalSignalDSL.g:6439:2: rule__OpMultiAssign__Group_5__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__OpMultiAssign__Group_5__2__Impl();
@@ -21679,17 +22464,17 @@
 
 
     // $ANTLR start "rule__OpMultiAssign__Group_5__2__Impl"
-    // InternalSignalDSL.g:6182:1: rule__OpMultiAssign__Group_5__2__Impl : ( '=' ) ;
+    // InternalSignalDSL.g:6445:1: rule__OpMultiAssign__Group_5__2__Impl : ( '=' ) ;
     public final void rule__OpMultiAssign__Group_5__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:6186:1: ( ( '=' ) )
-            // InternalSignalDSL.g:6187:1: ( '=' )
+            // InternalSignalDSL.g:6449:1: ( ( '=' ) )
+            // InternalSignalDSL.g:6450:1: ( '=' )
             {
-            // InternalSignalDSL.g:6187:1: ( '=' )
-            // InternalSignalDSL.g:6188:2: '='
+            // InternalSignalDSL.g:6450:1: ( '=' )
+            // InternalSignalDSL.g:6451:2: '='
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpMultiAssignAccess().getEqualsSignKeyword_5_2()); 
@@ -21720,16 +22505,16 @@
 
 
     // $ANTLR start "rule__OpMultiAssign__Group_6__0"
-    // InternalSignalDSL.g:6198:1: rule__OpMultiAssign__Group_6__0 : rule__OpMultiAssign__Group_6__0__Impl rule__OpMultiAssign__Group_6__1 ;
+    // InternalSignalDSL.g:6461: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:6202:1: ( rule__OpMultiAssign__Group_6__0__Impl rule__OpMultiAssign__Group_6__1 )
-            // InternalSignalDSL.g:6203:2: rule__OpMultiAssign__Group_6__0__Impl rule__OpMultiAssign__Group_6__1
+            // InternalSignalDSL.g:6465:1: ( rule__OpMultiAssign__Group_6__0__Impl rule__OpMultiAssign__Group_6__1 )
+            // InternalSignalDSL.g:6466:2: rule__OpMultiAssign__Group_6__0__Impl rule__OpMultiAssign__Group_6__1
             {
-            pushFollow(FOLLOW_38);
+            pushFollow(FOLLOW_43);
             rule__OpMultiAssign__Group_6__0__Impl();
 
             state._fsp--;
@@ -21758,17 +22543,17 @@
 
 
     // $ANTLR start "rule__OpMultiAssign__Group_6__0__Impl"
-    // InternalSignalDSL.g:6210:1: rule__OpMultiAssign__Group_6__0__Impl : ( '>' ) ;
+    // InternalSignalDSL.g:6473:1: rule__OpMultiAssign__Group_6__0__Impl : ( '>' ) ;
     public final void rule__OpMultiAssign__Group_6__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:6214:1: ( ( '>' ) )
-            // InternalSignalDSL.g:6215:1: ( '>' )
+            // InternalSignalDSL.g:6477:1: ( ( '>' ) )
+            // InternalSignalDSL.g:6478:1: ( '>' )
             {
-            // InternalSignalDSL.g:6215:1: ( '>' )
-            // InternalSignalDSL.g:6216:2: '>'
+            // InternalSignalDSL.g:6478:1: ( '>' )
+            // InternalSignalDSL.g:6479:2: '>'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpMultiAssignAccess().getGreaterThanSignKeyword_6_0()); 
@@ -21799,16 +22584,16 @@
 
 
     // $ANTLR start "rule__OpMultiAssign__Group_6__1"
-    // InternalSignalDSL.g:6225:1: rule__OpMultiAssign__Group_6__1 : rule__OpMultiAssign__Group_6__1__Impl rule__OpMultiAssign__Group_6__2 ;
+    // InternalSignalDSL.g:6488: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:6229:1: ( rule__OpMultiAssign__Group_6__1__Impl rule__OpMultiAssign__Group_6__2 )
-            // InternalSignalDSL.g:6230:2: rule__OpMultiAssign__Group_6__1__Impl rule__OpMultiAssign__Group_6__2
+            // InternalSignalDSL.g:6492:1: ( rule__OpMultiAssign__Group_6__1__Impl rule__OpMultiAssign__Group_6__2 )
+            // InternalSignalDSL.g:6493:2: rule__OpMultiAssign__Group_6__1__Impl rule__OpMultiAssign__Group_6__2
             {
-            pushFollow(FOLLOW_38);
+            pushFollow(FOLLOW_43);
             rule__OpMultiAssign__Group_6__1__Impl();
 
             state._fsp--;
@@ -21837,31 +22622,31 @@
 
 
     // $ANTLR start "rule__OpMultiAssign__Group_6__1__Impl"
-    // InternalSignalDSL.g:6237:1: rule__OpMultiAssign__Group_6__1__Impl : ( ( '>' )? ) ;
+    // InternalSignalDSL.g:6500:1: rule__OpMultiAssign__Group_6__1__Impl : ( ( '>' )? ) ;
     public final void rule__OpMultiAssign__Group_6__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:6241:1: ( ( ( '>' )? ) )
-            // InternalSignalDSL.g:6242:1: ( ( '>' )? )
+            // InternalSignalDSL.g:6504:1: ( ( ( '>' )? ) )
+            // InternalSignalDSL.g:6505:1: ( ( '>' )? )
             {
-            // InternalSignalDSL.g:6242:1: ( ( '>' )? )
-            // InternalSignalDSL.g:6243:2: ( '>' )?
+            // InternalSignalDSL.g:6505:1: ( ( '>' )? )
+            // InternalSignalDSL.g:6506:2: ( '>' )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpMultiAssignAccess().getGreaterThanSignKeyword_6_1()); 
             }
-            // InternalSignalDSL.g:6244:2: ( '>' )?
-            int alt66=2;
-            int LA66_0 = input.LA(1);
+            // InternalSignalDSL.g:6507:2: ( '>' )?
+            int alt69=2;
+            int LA69_0 = input.LA(1);
 
-            if ( (LA66_0==26) ) {
-                alt66=1;
+            if ( (LA69_0==26) ) {
+                alt69=1;
             }
-            switch (alt66) {
+            switch (alt69) {
                 case 1 :
-                    // InternalSignalDSL.g:6244:3: '>'
+                    // InternalSignalDSL.g:6507:3: '>'
                     {
                     match(input,26,FOLLOW_2); if (state.failed) return ;
 
@@ -21895,14 +22680,14 @@
 
 
     // $ANTLR start "rule__OpMultiAssign__Group_6__2"
-    // InternalSignalDSL.g:6252:1: rule__OpMultiAssign__Group_6__2 : rule__OpMultiAssign__Group_6__2__Impl ;
+    // InternalSignalDSL.g:6515: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:6256:1: ( rule__OpMultiAssign__Group_6__2__Impl )
-            // InternalSignalDSL.g:6257:2: rule__OpMultiAssign__Group_6__2__Impl
+            // InternalSignalDSL.g:6519:1: ( rule__OpMultiAssign__Group_6__2__Impl )
+            // InternalSignalDSL.g:6520:2: rule__OpMultiAssign__Group_6__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__OpMultiAssign__Group_6__2__Impl();
@@ -21928,17 +22713,17 @@
 
 
     // $ANTLR start "rule__OpMultiAssign__Group_6__2__Impl"
-    // InternalSignalDSL.g:6263:1: rule__OpMultiAssign__Group_6__2__Impl : ( '>=' ) ;
+    // InternalSignalDSL.g:6526:1: rule__OpMultiAssign__Group_6__2__Impl : ( '>=' ) ;
     public final void rule__OpMultiAssign__Group_6__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:6267:1: ( ( '>=' ) )
-            // InternalSignalDSL.g:6268:1: ( '>=' )
+            // InternalSignalDSL.g:6530:1: ( ( '>=' ) )
+            // InternalSignalDSL.g:6531:1: ( '>=' )
             {
-            // InternalSignalDSL.g:6268:1: ( '>=' )
-            // InternalSignalDSL.g:6269:2: '>='
+            // InternalSignalDSL.g:6531:1: ( '>=' )
+            // InternalSignalDSL.g:6532:2: '>='
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpMultiAssignAccess().getGreaterThanSignEqualsSignKeyword_6_2()); 
@@ -21969,16 +22754,16 @@
 
 
     // $ANTLR start "rule__XOrExpression__Group__0"
-    // InternalSignalDSL.g:6279:1: rule__XOrExpression__Group__0 : rule__XOrExpression__Group__0__Impl rule__XOrExpression__Group__1 ;
+    // InternalSignalDSL.g:6542: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:6283:1: ( rule__XOrExpression__Group__0__Impl rule__XOrExpression__Group__1 )
-            // InternalSignalDSL.g:6284:2: rule__XOrExpression__Group__0__Impl rule__XOrExpression__Group__1
+            // InternalSignalDSL.g:6546:1: ( rule__XOrExpression__Group__0__Impl rule__XOrExpression__Group__1 )
+            // InternalSignalDSL.g:6547:2: rule__XOrExpression__Group__0__Impl rule__XOrExpression__Group__1
             {
-            pushFollow(FOLLOW_39);
+            pushFollow(FOLLOW_44);
             rule__XOrExpression__Group__0__Impl();
 
             state._fsp--;
@@ -22007,17 +22792,17 @@
 
 
     // $ANTLR start "rule__XOrExpression__Group__0__Impl"
-    // InternalSignalDSL.g:6291:1: rule__XOrExpression__Group__0__Impl : ( ruleXAndExpression ) ;
+    // InternalSignalDSL.g:6554:1: rule__XOrExpression__Group__0__Impl : ( ruleXAndExpression ) ;
     public final void rule__XOrExpression__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:6295:1: ( ( ruleXAndExpression ) )
-            // InternalSignalDSL.g:6296:1: ( ruleXAndExpression )
+            // InternalSignalDSL.g:6558:1: ( ( ruleXAndExpression ) )
+            // InternalSignalDSL.g:6559:1: ( ruleXAndExpression )
             {
-            // InternalSignalDSL.g:6296:1: ( ruleXAndExpression )
-            // InternalSignalDSL.g:6297:2: ruleXAndExpression
+            // InternalSignalDSL.g:6559:1: ( ruleXAndExpression )
+            // InternalSignalDSL.g:6560:2: ruleXAndExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOrExpressionAccess().getXAndExpressionParserRuleCall_0()); 
@@ -22052,14 +22837,14 @@
 
 
     // $ANTLR start "rule__XOrExpression__Group__1"
-    // InternalSignalDSL.g:6306:1: rule__XOrExpression__Group__1 : rule__XOrExpression__Group__1__Impl ;
+    // InternalSignalDSL.g:6569: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:6310:1: ( rule__XOrExpression__Group__1__Impl )
-            // InternalSignalDSL.g:6311:2: rule__XOrExpression__Group__1__Impl
+            // InternalSignalDSL.g:6573:1: ( rule__XOrExpression__Group__1__Impl )
+            // InternalSignalDSL.g:6574:2: rule__XOrExpression__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XOrExpression__Group__1__Impl();
@@ -22085,43 +22870,43 @@
 
 
     // $ANTLR start "rule__XOrExpression__Group__1__Impl"
-    // InternalSignalDSL.g:6317:1: rule__XOrExpression__Group__1__Impl : ( ( rule__XOrExpression__Group_1__0 )* ) ;
+    // InternalSignalDSL.g:6580: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:6321:1: ( ( ( rule__XOrExpression__Group_1__0 )* ) )
-            // InternalSignalDSL.g:6322:1: ( ( rule__XOrExpression__Group_1__0 )* )
+            // InternalSignalDSL.g:6584:1: ( ( ( rule__XOrExpression__Group_1__0 )* ) )
+            // InternalSignalDSL.g:6585:1: ( ( rule__XOrExpression__Group_1__0 )* )
             {
-            // InternalSignalDSL.g:6322:1: ( ( rule__XOrExpression__Group_1__0 )* )
-            // InternalSignalDSL.g:6323:2: ( rule__XOrExpression__Group_1__0 )*
+            // InternalSignalDSL.g:6585:1: ( ( rule__XOrExpression__Group_1__0 )* )
+            // InternalSignalDSL.g:6586:2: ( rule__XOrExpression__Group_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOrExpressionAccess().getGroup_1()); 
             }
-            // InternalSignalDSL.g:6324:2: ( rule__XOrExpression__Group_1__0 )*
-            loop67:
+            // InternalSignalDSL.g:6587:2: ( rule__XOrExpression__Group_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==14) ) {
-                    int LA67_2 = input.LA(2);
+                if ( (LA70_0==14) ) {
+                    int LA70_2 = input.LA(2);
 
-                    if ( (synpred121_InternalSignalDSL()) ) {
-                        alt67=1;
+                    if ( (synpred118_InternalSignalDSL()) ) {
+                        alt70=1;
                     }
 
 
                 }
 
 
-                switch (alt67) {
+                switch (alt70) {
             	case 1 :
-            	    // InternalSignalDSL.g:6324:3: rule__XOrExpression__Group_1__0
+            	    // InternalSignalDSL.g:6587:3: rule__XOrExpression__Group_1__0
             	    {
-            	    pushFollow(FOLLOW_40);
+            	    pushFollow(FOLLOW_45);
             	    rule__XOrExpression__Group_1__0();
 
             	    state._fsp--;
@@ -22131,7 +22916,7 @@
             	    break;
 
             	default :
-            	    break loop67;
+            	    break loop70;
                 }
             } while (true);
 
@@ -22160,16 +22945,16 @@
 
 
     // $ANTLR start "rule__XOrExpression__Group_1__0"
-    // InternalSignalDSL.g:6333:1: rule__XOrExpression__Group_1__0 : rule__XOrExpression__Group_1__0__Impl rule__XOrExpression__Group_1__1 ;
+    // InternalSignalDSL.g:6596: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:6337:1: ( rule__XOrExpression__Group_1__0__Impl rule__XOrExpression__Group_1__1 )
-            // InternalSignalDSL.g:6338:2: rule__XOrExpression__Group_1__0__Impl rule__XOrExpression__Group_1__1
+            // InternalSignalDSL.g:6600:1: ( rule__XOrExpression__Group_1__0__Impl rule__XOrExpression__Group_1__1 )
+            // InternalSignalDSL.g:6601:2: rule__XOrExpression__Group_1__0__Impl rule__XOrExpression__Group_1__1
             {
-            pushFollow(FOLLOW_30);
+            pushFollow(FOLLOW_35);
             rule__XOrExpression__Group_1__0__Impl();
 
             state._fsp--;
@@ -22198,23 +22983,23 @@
 
 
     // $ANTLR start "rule__XOrExpression__Group_1__0__Impl"
-    // InternalSignalDSL.g:6345:1: rule__XOrExpression__Group_1__0__Impl : ( ( rule__XOrExpression__Group_1_0__0 ) ) ;
+    // InternalSignalDSL.g:6608: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:6349:1: ( ( ( rule__XOrExpression__Group_1_0__0 ) ) )
-            // InternalSignalDSL.g:6350:1: ( ( rule__XOrExpression__Group_1_0__0 ) )
+            // InternalSignalDSL.g:6612:1: ( ( ( rule__XOrExpression__Group_1_0__0 ) ) )
+            // InternalSignalDSL.g:6613:1: ( ( rule__XOrExpression__Group_1_0__0 ) )
             {
-            // InternalSignalDSL.g:6350:1: ( ( rule__XOrExpression__Group_1_0__0 ) )
-            // InternalSignalDSL.g:6351:2: ( rule__XOrExpression__Group_1_0__0 )
+            // InternalSignalDSL.g:6613:1: ( ( rule__XOrExpression__Group_1_0__0 ) )
+            // InternalSignalDSL.g:6614:2: ( rule__XOrExpression__Group_1_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOrExpressionAccess().getGroup_1_0()); 
             }
-            // InternalSignalDSL.g:6352:2: ( rule__XOrExpression__Group_1_0__0 )
-            // InternalSignalDSL.g:6352:3: rule__XOrExpression__Group_1_0__0
+            // InternalSignalDSL.g:6615:2: ( rule__XOrExpression__Group_1_0__0 )
+            // InternalSignalDSL.g:6615:3: rule__XOrExpression__Group_1_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XOrExpression__Group_1_0__0();
@@ -22249,14 +23034,14 @@
 
 
     // $ANTLR start "rule__XOrExpression__Group_1__1"
-    // InternalSignalDSL.g:6360:1: rule__XOrExpression__Group_1__1 : rule__XOrExpression__Group_1__1__Impl ;
+    // InternalSignalDSL.g:6623: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:6364:1: ( rule__XOrExpression__Group_1__1__Impl )
-            // InternalSignalDSL.g:6365:2: rule__XOrExpression__Group_1__1__Impl
+            // InternalSignalDSL.g:6627:1: ( rule__XOrExpression__Group_1__1__Impl )
+            // InternalSignalDSL.g:6628:2: rule__XOrExpression__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XOrExpression__Group_1__1__Impl();
@@ -22282,23 +23067,23 @@
 
 
     // $ANTLR start "rule__XOrExpression__Group_1__1__Impl"
-    // InternalSignalDSL.g:6371:1: rule__XOrExpression__Group_1__1__Impl : ( ( rule__XOrExpression__RightOperandAssignment_1_1 ) ) ;
+    // InternalSignalDSL.g:6634: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:6375:1: ( ( ( rule__XOrExpression__RightOperandAssignment_1_1 ) ) )
-            // InternalSignalDSL.g:6376:1: ( ( rule__XOrExpression__RightOperandAssignment_1_1 ) )
+            // InternalSignalDSL.g:6638:1: ( ( ( rule__XOrExpression__RightOperandAssignment_1_1 ) ) )
+            // InternalSignalDSL.g:6639:1: ( ( rule__XOrExpression__RightOperandAssignment_1_1 ) )
             {
-            // InternalSignalDSL.g:6376:1: ( ( rule__XOrExpression__RightOperandAssignment_1_1 ) )
-            // InternalSignalDSL.g:6377:2: ( rule__XOrExpression__RightOperandAssignment_1_1 )
+            // InternalSignalDSL.g:6639:1: ( ( rule__XOrExpression__RightOperandAssignment_1_1 ) )
+            // InternalSignalDSL.g:6640:2: ( rule__XOrExpression__RightOperandAssignment_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOrExpressionAccess().getRightOperandAssignment_1_1()); 
             }
-            // InternalSignalDSL.g:6378:2: ( rule__XOrExpression__RightOperandAssignment_1_1 )
-            // InternalSignalDSL.g:6378:3: rule__XOrExpression__RightOperandAssignment_1_1
+            // InternalSignalDSL.g:6641:2: ( rule__XOrExpression__RightOperandAssignment_1_1 )
+            // InternalSignalDSL.g:6641:3: rule__XOrExpression__RightOperandAssignment_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XOrExpression__RightOperandAssignment_1_1();
@@ -22333,14 +23118,14 @@
 
 
     // $ANTLR start "rule__XOrExpression__Group_1_0__0"
-    // InternalSignalDSL.g:6387:1: rule__XOrExpression__Group_1_0__0 : rule__XOrExpression__Group_1_0__0__Impl ;
+    // InternalSignalDSL.g:6650: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:6391:1: ( rule__XOrExpression__Group_1_0__0__Impl )
-            // InternalSignalDSL.g:6392:2: rule__XOrExpression__Group_1_0__0__Impl
+            // InternalSignalDSL.g:6654:1: ( rule__XOrExpression__Group_1_0__0__Impl )
+            // InternalSignalDSL.g:6655:2: rule__XOrExpression__Group_1_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XOrExpression__Group_1_0__0__Impl();
@@ -22366,23 +23151,23 @@
 
 
     // $ANTLR start "rule__XOrExpression__Group_1_0__0__Impl"
-    // InternalSignalDSL.g:6398:1: rule__XOrExpression__Group_1_0__0__Impl : ( ( rule__XOrExpression__Group_1_0_0__0 ) ) ;
+    // InternalSignalDSL.g:6661: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:6402:1: ( ( ( rule__XOrExpression__Group_1_0_0__0 ) ) )
-            // InternalSignalDSL.g:6403:1: ( ( rule__XOrExpression__Group_1_0_0__0 ) )
+            // InternalSignalDSL.g:6665:1: ( ( ( rule__XOrExpression__Group_1_0_0__0 ) ) )
+            // InternalSignalDSL.g:6666:1: ( ( rule__XOrExpression__Group_1_0_0__0 ) )
             {
-            // InternalSignalDSL.g:6403:1: ( ( rule__XOrExpression__Group_1_0_0__0 ) )
-            // InternalSignalDSL.g:6404:2: ( rule__XOrExpression__Group_1_0_0__0 )
+            // InternalSignalDSL.g:6666:1: ( ( rule__XOrExpression__Group_1_0_0__0 ) )
+            // InternalSignalDSL.g:6667:2: ( rule__XOrExpression__Group_1_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOrExpressionAccess().getGroup_1_0_0()); 
             }
-            // InternalSignalDSL.g:6405:2: ( rule__XOrExpression__Group_1_0_0__0 )
-            // InternalSignalDSL.g:6405:3: rule__XOrExpression__Group_1_0_0__0
+            // InternalSignalDSL.g:6668:2: ( rule__XOrExpression__Group_1_0_0__0 )
+            // InternalSignalDSL.g:6668:3: rule__XOrExpression__Group_1_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XOrExpression__Group_1_0_0__0();
@@ -22417,16 +23202,16 @@
 
 
     // $ANTLR start "rule__XOrExpression__Group_1_0_0__0"
-    // InternalSignalDSL.g:6414: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:6677: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:6418:1: ( rule__XOrExpression__Group_1_0_0__0__Impl rule__XOrExpression__Group_1_0_0__1 )
-            // InternalSignalDSL.g:6419:2: rule__XOrExpression__Group_1_0_0__0__Impl rule__XOrExpression__Group_1_0_0__1
+            // InternalSignalDSL.g:6681:1: ( rule__XOrExpression__Group_1_0_0__0__Impl rule__XOrExpression__Group_1_0_0__1 )
+            // InternalSignalDSL.g:6682:2: rule__XOrExpression__Group_1_0_0__0__Impl rule__XOrExpression__Group_1_0_0__1
             {
-            pushFollow(FOLLOW_39);
+            pushFollow(FOLLOW_44);
             rule__XOrExpression__Group_1_0_0__0__Impl();
 
             state._fsp--;
@@ -22455,23 +23240,23 @@
 
 
     // $ANTLR start "rule__XOrExpression__Group_1_0_0__0__Impl"
-    // InternalSignalDSL.g:6426:1: rule__XOrExpression__Group_1_0_0__0__Impl : ( () ) ;
+    // InternalSignalDSL.g:6689: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:6430:1: ( ( () ) )
-            // InternalSignalDSL.g:6431:1: ( () )
+            // InternalSignalDSL.g:6693:1: ( ( () ) )
+            // InternalSignalDSL.g:6694:1: ( () )
             {
-            // InternalSignalDSL.g:6431:1: ( () )
-            // InternalSignalDSL.g:6432:2: ()
+            // InternalSignalDSL.g:6694:1: ( () )
+            // InternalSignalDSL.g:6695:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOrExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()); 
             }
-            // InternalSignalDSL.g:6433:2: ()
-            // InternalSignalDSL.g:6433:3: 
+            // InternalSignalDSL.g:6696:2: ()
+            // InternalSignalDSL.g:6696:3: 
             {
             }
 
@@ -22496,14 +23281,14 @@
 
 
     // $ANTLR start "rule__XOrExpression__Group_1_0_0__1"
-    // InternalSignalDSL.g:6441:1: rule__XOrExpression__Group_1_0_0__1 : rule__XOrExpression__Group_1_0_0__1__Impl ;
+    // InternalSignalDSL.g:6704: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:6445:1: ( rule__XOrExpression__Group_1_0_0__1__Impl )
-            // InternalSignalDSL.g:6446:2: rule__XOrExpression__Group_1_0_0__1__Impl
+            // InternalSignalDSL.g:6708:1: ( rule__XOrExpression__Group_1_0_0__1__Impl )
+            // InternalSignalDSL.g:6709:2: rule__XOrExpression__Group_1_0_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XOrExpression__Group_1_0_0__1__Impl();
@@ -22529,23 +23314,23 @@
 
 
     // $ANTLR start "rule__XOrExpression__Group_1_0_0__1__Impl"
-    // InternalSignalDSL.g:6452:1: rule__XOrExpression__Group_1_0_0__1__Impl : ( ( rule__XOrExpression__FeatureAssignment_1_0_0_1 ) ) ;
+    // InternalSignalDSL.g:6715: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:6456:1: ( ( ( rule__XOrExpression__FeatureAssignment_1_0_0_1 ) ) )
-            // InternalSignalDSL.g:6457:1: ( ( rule__XOrExpression__FeatureAssignment_1_0_0_1 ) )
+            // InternalSignalDSL.g:6719:1: ( ( ( rule__XOrExpression__FeatureAssignment_1_0_0_1 ) ) )
+            // InternalSignalDSL.g:6720:1: ( ( rule__XOrExpression__FeatureAssignment_1_0_0_1 ) )
             {
-            // InternalSignalDSL.g:6457:1: ( ( rule__XOrExpression__FeatureAssignment_1_0_0_1 ) )
-            // InternalSignalDSL.g:6458:2: ( rule__XOrExpression__FeatureAssignment_1_0_0_1 )
+            // InternalSignalDSL.g:6720:1: ( ( rule__XOrExpression__FeatureAssignment_1_0_0_1 ) )
+            // InternalSignalDSL.g:6721:2: ( rule__XOrExpression__FeatureAssignment_1_0_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOrExpressionAccess().getFeatureAssignment_1_0_0_1()); 
             }
-            // InternalSignalDSL.g:6459:2: ( rule__XOrExpression__FeatureAssignment_1_0_0_1 )
-            // InternalSignalDSL.g:6459:3: rule__XOrExpression__FeatureAssignment_1_0_0_1
+            // InternalSignalDSL.g:6722:2: ( rule__XOrExpression__FeatureAssignment_1_0_0_1 )
+            // InternalSignalDSL.g:6722:3: rule__XOrExpression__FeatureAssignment_1_0_0_1
             {
             pushFollow(FOLLOW_2);
             rule__XOrExpression__FeatureAssignment_1_0_0_1();
@@ -22580,16 +23365,16 @@
 
 
     // $ANTLR start "rule__XAndExpression__Group__0"
-    // InternalSignalDSL.g:6468:1: rule__XAndExpression__Group__0 : rule__XAndExpression__Group__0__Impl rule__XAndExpression__Group__1 ;
+    // InternalSignalDSL.g:6731: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:6472:1: ( rule__XAndExpression__Group__0__Impl rule__XAndExpression__Group__1 )
-            // InternalSignalDSL.g:6473:2: rule__XAndExpression__Group__0__Impl rule__XAndExpression__Group__1
+            // InternalSignalDSL.g:6735:1: ( rule__XAndExpression__Group__0__Impl rule__XAndExpression__Group__1 )
+            // InternalSignalDSL.g:6736:2: rule__XAndExpression__Group__0__Impl rule__XAndExpression__Group__1
             {
-            pushFollow(FOLLOW_41);
+            pushFollow(FOLLOW_46);
             rule__XAndExpression__Group__0__Impl();
 
             state._fsp--;
@@ -22618,17 +23403,17 @@
 
 
     // $ANTLR start "rule__XAndExpression__Group__0__Impl"
-    // InternalSignalDSL.g:6480:1: rule__XAndExpression__Group__0__Impl : ( ruleXEqualityExpression ) ;
+    // InternalSignalDSL.g:6743:1: rule__XAndExpression__Group__0__Impl : ( ruleXEqualityExpression ) ;
     public final void rule__XAndExpression__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:6484:1: ( ( ruleXEqualityExpression ) )
-            // InternalSignalDSL.g:6485:1: ( ruleXEqualityExpression )
+            // InternalSignalDSL.g:6747:1: ( ( ruleXEqualityExpression ) )
+            // InternalSignalDSL.g:6748:1: ( ruleXEqualityExpression )
             {
-            // InternalSignalDSL.g:6485:1: ( ruleXEqualityExpression )
-            // InternalSignalDSL.g:6486:2: ruleXEqualityExpression
+            // InternalSignalDSL.g:6748:1: ( ruleXEqualityExpression )
+            // InternalSignalDSL.g:6749:2: ruleXEqualityExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAndExpressionAccess().getXEqualityExpressionParserRuleCall_0()); 
@@ -22663,14 +23448,14 @@
 
 
     // $ANTLR start "rule__XAndExpression__Group__1"
-    // InternalSignalDSL.g:6495:1: rule__XAndExpression__Group__1 : rule__XAndExpression__Group__1__Impl ;
+    // InternalSignalDSL.g:6758: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:6499:1: ( rule__XAndExpression__Group__1__Impl )
-            // InternalSignalDSL.g:6500:2: rule__XAndExpression__Group__1__Impl
+            // InternalSignalDSL.g:6762:1: ( rule__XAndExpression__Group__1__Impl )
+            // InternalSignalDSL.g:6763:2: rule__XAndExpression__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAndExpression__Group__1__Impl();
@@ -22696,43 +23481,43 @@
 
 
     // $ANTLR start "rule__XAndExpression__Group__1__Impl"
-    // InternalSignalDSL.g:6506:1: rule__XAndExpression__Group__1__Impl : ( ( rule__XAndExpression__Group_1__0 )* ) ;
+    // InternalSignalDSL.g:6769: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:6510:1: ( ( ( rule__XAndExpression__Group_1__0 )* ) )
-            // InternalSignalDSL.g:6511:1: ( ( rule__XAndExpression__Group_1__0 )* )
+            // InternalSignalDSL.g:6773:1: ( ( ( rule__XAndExpression__Group_1__0 )* ) )
+            // InternalSignalDSL.g:6774:1: ( ( rule__XAndExpression__Group_1__0 )* )
             {
-            // InternalSignalDSL.g:6511:1: ( ( rule__XAndExpression__Group_1__0 )* )
-            // InternalSignalDSL.g:6512:2: ( rule__XAndExpression__Group_1__0 )*
+            // InternalSignalDSL.g:6774:1: ( ( rule__XAndExpression__Group_1__0 )* )
+            // InternalSignalDSL.g:6775:2: ( rule__XAndExpression__Group_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAndExpressionAccess().getGroup_1()); 
             }
-            // InternalSignalDSL.g:6513:2: ( rule__XAndExpression__Group_1__0 )*
-            loop68:
+            // InternalSignalDSL.g:6776:2: ( rule__XAndExpression__Group_1__0 )*
+            loop71:
             do {
-                int alt68=2;
-                int LA68_0 = input.LA(1);
+                int alt71=2;
+                int LA71_0 = input.LA(1);
 
-                if ( (LA68_0==15) ) {
-                    int LA68_2 = input.LA(2);
+                if ( (LA71_0==15) ) {
+                    int LA71_2 = input.LA(2);
 
-                    if ( (synpred122_InternalSignalDSL()) ) {
-                        alt68=1;
+                    if ( (synpred119_InternalSignalDSL()) ) {
+                        alt71=1;
                     }
 
 
                 }
 
 
-                switch (alt68) {
+                switch (alt71) {
             	case 1 :
-            	    // InternalSignalDSL.g:6513:3: rule__XAndExpression__Group_1__0
+            	    // InternalSignalDSL.g:6776:3: rule__XAndExpression__Group_1__0
             	    {
-            	    pushFollow(FOLLOW_42);
+            	    pushFollow(FOLLOW_47);
             	    rule__XAndExpression__Group_1__0();
 
             	    state._fsp--;
@@ -22742,7 +23527,7 @@
             	    break;
 
             	default :
-            	    break loop68;
+            	    break loop71;
                 }
             } while (true);
 
@@ -22771,16 +23556,16 @@
 
 
     // $ANTLR start "rule__XAndExpression__Group_1__0"
-    // InternalSignalDSL.g:6522:1: rule__XAndExpression__Group_1__0 : rule__XAndExpression__Group_1__0__Impl rule__XAndExpression__Group_1__1 ;
+    // InternalSignalDSL.g:6785: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:6526:1: ( rule__XAndExpression__Group_1__0__Impl rule__XAndExpression__Group_1__1 )
-            // InternalSignalDSL.g:6527:2: rule__XAndExpression__Group_1__0__Impl rule__XAndExpression__Group_1__1
+            // InternalSignalDSL.g:6789:1: ( rule__XAndExpression__Group_1__0__Impl rule__XAndExpression__Group_1__1 )
+            // InternalSignalDSL.g:6790:2: rule__XAndExpression__Group_1__0__Impl rule__XAndExpression__Group_1__1
             {
-            pushFollow(FOLLOW_30);
+            pushFollow(FOLLOW_35);
             rule__XAndExpression__Group_1__0__Impl();
 
             state._fsp--;
@@ -22809,23 +23594,23 @@
 
 
     // $ANTLR start "rule__XAndExpression__Group_1__0__Impl"
-    // InternalSignalDSL.g:6534:1: rule__XAndExpression__Group_1__0__Impl : ( ( rule__XAndExpression__Group_1_0__0 ) ) ;
+    // InternalSignalDSL.g:6797: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:6538:1: ( ( ( rule__XAndExpression__Group_1_0__0 ) ) )
-            // InternalSignalDSL.g:6539:1: ( ( rule__XAndExpression__Group_1_0__0 ) )
+            // InternalSignalDSL.g:6801:1: ( ( ( rule__XAndExpression__Group_1_0__0 ) ) )
+            // InternalSignalDSL.g:6802:1: ( ( rule__XAndExpression__Group_1_0__0 ) )
             {
-            // InternalSignalDSL.g:6539:1: ( ( rule__XAndExpression__Group_1_0__0 ) )
-            // InternalSignalDSL.g:6540:2: ( rule__XAndExpression__Group_1_0__0 )
+            // InternalSignalDSL.g:6802:1: ( ( rule__XAndExpression__Group_1_0__0 ) )
+            // InternalSignalDSL.g:6803:2: ( rule__XAndExpression__Group_1_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAndExpressionAccess().getGroup_1_0()); 
             }
-            // InternalSignalDSL.g:6541:2: ( rule__XAndExpression__Group_1_0__0 )
-            // InternalSignalDSL.g:6541:3: rule__XAndExpression__Group_1_0__0
+            // InternalSignalDSL.g:6804:2: ( rule__XAndExpression__Group_1_0__0 )
+            // InternalSignalDSL.g:6804:3: rule__XAndExpression__Group_1_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XAndExpression__Group_1_0__0();
@@ -22860,14 +23645,14 @@
 
 
     // $ANTLR start "rule__XAndExpression__Group_1__1"
-    // InternalSignalDSL.g:6549:1: rule__XAndExpression__Group_1__1 : rule__XAndExpression__Group_1__1__Impl ;
+    // InternalSignalDSL.g:6812: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:6553:1: ( rule__XAndExpression__Group_1__1__Impl )
-            // InternalSignalDSL.g:6554:2: rule__XAndExpression__Group_1__1__Impl
+            // InternalSignalDSL.g:6816:1: ( rule__XAndExpression__Group_1__1__Impl )
+            // InternalSignalDSL.g:6817:2: rule__XAndExpression__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAndExpression__Group_1__1__Impl();
@@ -22893,23 +23678,23 @@
 
 
     // $ANTLR start "rule__XAndExpression__Group_1__1__Impl"
-    // InternalSignalDSL.g:6560:1: rule__XAndExpression__Group_1__1__Impl : ( ( rule__XAndExpression__RightOperandAssignment_1_1 ) ) ;
+    // InternalSignalDSL.g:6823: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:6564:1: ( ( ( rule__XAndExpression__RightOperandAssignment_1_1 ) ) )
-            // InternalSignalDSL.g:6565:1: ( ( rule__XAndExpression__RightOperandAssignment_1_1 ) )
+            // InternalSignalDSL.g:6827:1: ( ( ( rule__XAndExpression__RightOperandAssignment_1_1 ) ) )
+            // InternalSignalDSL.g:6828:1: ( ( rule__XAndExpression__RightOperandAssignment_1_1 ) )
             {
-            // InternalSignalDSL.g:6565:1: ( ( rule__XAndExpression__RightOperandAssignment_1_1 ) )
-            // InternalSignalDSL.g:6566:2: ( rule__XAndExpression__RightOperandAssignment_1_1 )
+            // InternalSignalDSL.g:6828:1: ( ( rule__XAndExpression__RightOperandAssignment_1_1 ) )
+            // InternalSignalDSL.g:6829:2: ( rule__XAndExpression__RightOperandAssignment_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAndExpressionAccess().getRightOperandAssignment_1_1()); 
             }
-            // InternalSignalDSL.g:6567:2: ( rule__XAndExpression__RightOperandAssignment_1_1 )
-            // InternalSignalDSL.g:6567:3: rule__XAndExpression__RightOperandAssignment_1_1
+            // InternalSignalDSL.g:6830:2: ( rule__XAndExpression__RightOperandAssignment_1_1 )
+            // InternalSignalDSL.g:6830:3: rule__XAndExpression__RightOperandAssignment_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XAndExpression__RightOperandAssignment_1_1();
@@ -22944,14 +23729,14 @@
 
 
     // $ANTLR start "rule__XAndExpression__Group_1_0__0"
-    // InternalSignalDSL.g:6576:1: rule__XAndExpression__Group_1_0__0 : rule__XAndExpression__Group_1_0__0__Impl ;
+    // InternalSignalDSL.g:6839: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:6580:1: ( rule__XAndExpression__Group_1_0__0__Impl )
-            // InternalSignalDSL.g:6581:2: rule__XAndExpression__Group_1_0__0__Impl
+            // InternalSignalDSL.g:6843:1: ( rule__XAndExpression__Group_1_0__0__Impl )
+            // InternalSignalDSL.g:6844:2: rule__XAndExpression__Group_1_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAndExpression__Group_1_0__0__Impl();
@@ -22977,23 +23762,23 @@
 
 
     // $ANTLR start "rule__XAndExpression__Group_1_0__0__Impl"
-    // InternalSignalDSL.g:6587:1: rule__XAndExpression__Group_1_0__0__Impl : ( ( rule__XAndExpression__Group_1_0_0__0 ) ) ;
+    // InternalSignalDSL.g:6850: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:6591:1: ( ( ( rule__XAndExpression__Group_1_0_0__0 ) ) )
-            // InternalSignalDSL.g:6592:1: ( ( rule__XAndExpression__Group_1_0_0__0 ) )
+            // InternalSignalDSL.g:6854:1: ( ( ( rule__XAndExpression__Group_1_0_0__0 ) ) )
+            // InternalSignalDSL.g:6855:1: ( ( rule__XAndExpression__Group_1_0_0__0 ) )
             {
-            // InternalSignalDSL.g:6592:1: ( ( rule__XAndExpression__Group_1_0_0__0 ) )
-            // InternalSignalDSL.g:6593:2: ( rule__XAndExpression__Group_1_0_0__0 )
+            // InternalSignalDSL.g:6855:1: ( ( rule__XAndExpression__Group_1_0_0__0 ) )
+            // InternalSignalDSL.g:6856:2: ( rule__XAndExpression__Group_1_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAndExpressionAccess().getGroup_1_0_0()); 
             }
-            // InternalSignalDSL.g:6594:2: ( rule__XAndExpression__Group_1_0_0__0 )
-            // InternalSignalDSL.g:6594:3: rule__XAndExpression__Group_1_0_0__0
+            // InternalSignalDSL.g:6857:2: ( rule__XAndExpression__Group_1_0_0__0 )
+            // InternalSignalDSL.g:6857:3: rule__XAndExpression__Group_1_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XAndExpression__Group_1_0_0__0();
@@ -23028,16 +23813,16 @@
 
 
     // $ANTLR start "rule__XAndExpression__Group_1_0_0__0"
-    // InternalSignalDSL.g:6603: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:6866: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:6607:1: ( rule__XAndExpression__Group_1_0_0__0__Impl rule__XAndExpression__Group_1_0_0__1 )
-            // InternalSignalDSL.g:6608:2: rule__XAndExpression__Group_1_0_0__0__Impl rule__XAndExpression__Group_1_0_0__1
+            // InternalSignalDSL.g:6870:1: ( rule__XAndExpression__Group_1_0_0__0__Impl rule__XAndExpression__Group_1_0_0__1 )
+            // InternalSignalDSL.g:6871:2: rule__XAndExpression__Group_1_0_0__0__Impl rule__XAndExpression__Group_1_0_0__1
             {
-            pushFollow(FOLLOW_41);
+            pushFollow(FOLLOW_46);
             rule__XAndExpression__Group_1_0_0__0__Impl();
 
             state._fsp--;
@@ -23066,23 +23851,23 @@
 
 
     // $ANTLR start "rule__XAndExpression__Group_1_0_0__0__Impl"
-    // InternalSignalDSL.g:6615:1: rule__XAndExpression__Group_1_0_0__0__Impl : ( () ) ;
+    // InternalSignalDSL.g:6878: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:6619:1: ( ( () ) )
-            // InternalSignalDSL.g:6620:1: ( () )
+            // InternalSignalDSL.g:6882:1: ( ( () ) )
+            // InternalSignalDSL.g:6883:1: ( () )
             {
-            // InternalSignalDSL.g:6620:1: ( () )
-            // InternalSignalDSL.g:6621:2: ()
+            // InternalSignalDSL.g:6883:1: ( () )
+            // InternalSignalDSL.g:6884:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAndExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()); 
             }
-            // InternalSignalDSL.g:6622:2: ()
-            // InternalSignalDSL.g:6622:3: 
+            // InternalSignalDSL.g:6885:2: ()
+            // InternalSignalDSL.g:6885:3: 
             {
             }
 
@@ -23107,14 +23892,14 @@
 
 
     // $ANTLR start "rule__XAndExpression__Group_1_0_0__1"
-    // InternalSignalDSL.g:6630:1: rule__XAndExpression__Group_1_0_0__1 : rule__XAndExpression__Group_1_0_0__1__Impl ;
+    // InternalSignalDSL.g:6893: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:6634:1: ( rule__XAndExpression__Group_1_0_0__1__Impl )
-            // InternalSignalDSL.g:6635:2: rule__XAndExpression__Group_1_0_0__1__Impl
+            // InternalSignalDSL.g:6897:1: ( rule__XAndExpression__Group_1_0_0__1__Impl )
+            // InternalSignalDSL.g:6898:2: rule__XAndExpression__Group_1_0_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAndExpression__Group_1_0_0__1__Impl();
@@ -23140,23 +23925,23 @@
 
 
     // $ANTLR start "rule__XAndExpression__Group_1_0_0__1__Impl"
-    // InternalSignalDSL.g:6641:1: rule__XAndExpression__Group_1_0_0__1__Impl : ( ( rule__XAndExpression__FeatureAssignment_1_0_0_1 ) ) ;
+    // InternalSignalDSL.g:6904: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:6645:1: ( ( ( rule__XAndExpression__FeatureAssignment_1_0_0_1 ) ) )
-            // InternalSignalDSL.g:6646:1: ( ( rule__XAndExpression__FeatureAssignment_1_0_0_1 ) )
+            // InternalSignalDSL.g:6908:1: ( ( ( rule__XAndExpression__FeatureAssignment_1_0_0_1 ) ) )
+            // InternalSignalDSL.g:6909:1: ( ( rule__XAndExpression__FeatureAssignment_1_0_0_1 ) )
             {
-            // InternalSignalDSL.g:6646:1: ( ( rule__XAndExpression__FeatureAssignment_1_0_0_1 ) )
-            // InternalSignalDSL.g:6647:2: ( rule__XAndExpression__FeatureAssignment_1_0_0_1 )
+            // InternalSignalDSL.g:6909:1: ( ( rule__XAndExpression__FeatureAssignment_1_0_0_1 ) )
+            // InternalSignalDSL.g:6910:2: ( rule__XAndExpression__FeatureAssignment_1_0_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAndExpressionAccess().getFeatureAssignment_1_0_0_1()); 
             }
-            // InternalSignalDSL.g:6648:2: ( rule__XAndExpression__FeatureAssignment_1_0_0_1 )
-            // InternalSignalDSL.g:6648:3: rule__XAndExpression__FeatureAssignment_1_0_0_1
+            // InternalSignalDSL.g:6911:2: ( rule__XAndExpression__FeatureAssignment_1_0_0_1 )
+            // InternalSignalDSL.g:6911:3: rule__XAndExpression__FeatureAssignment_1_0_0_1
             {
             pushFollow(FOLLOW_2);
             rule__XAndExpression__FeatureAssignment_1_0_0_1();
@@ -23191,16 +23976,16 @@
 
 
     // $ANTLR start "rule__XEqualityExpression__Group__0"
-    // InternalSignalDSL.g:6657:1: rule__XEqualityExpression__Group__0 : rule__XEqualityExpression__Group__0__Impl rule__XEqualityExpression__Group__1 ;
+    // InternalSignalDSL.g:6920: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:6661:1: ( rule__XEqualityExpression__Group__0__Impl rule__XEqualityExpression__Group__1 )
-            // InternalSignalDSL.g:6662:2: rule__XEqualityExpression__Group__0__Impl rule__XEqualityExpression__Group__1
+            // InternalSignalDSL.g:6924:1: ( rule__XEqualityExpression__Group__0__Impl rule__XEqualityExpression__Group__1 )
+            // InternalSignalDSL.g:6925:2: rule__XEqualityExpression__Group__0__Impl rule__XEqualityExpression__Group__1
             {
-            pushFollow(FOLLOW_43);
+            pushFollow(FOLLOW_48);
             rule__XEqualityExpression__Group__0__Impl();
 
             state._fsp--;
@@ -23229,17 +24014,17 @@
 
 
     // $ANTLR start "rule__XEqualityExpression__Group__0__Impl"
-    // InternalSignalDSL.g:6669:1: rule__XEqualityExpression__Group__0__Impl : ( ruleXRelationalExpression ) ;
+    // InternalSignalDSL.g:6932:1: rule__XEqualityExpression__Group__0__Impl : ( ruleXRelationalExpression ) ;
     public final void rule__XEqualityExpression__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:6673:1: ( ( ruleXRelationalExpression ) )
-            // InternalSignalDSL.g:6674:1: ( ruleXRelationalExpression )
+            // InternalSignalDSL.g:6936:1: ( ( ruleXRelationalExpression ) )
+            // InternalSignalDSL.g:6937:1: ( ruleXRelationalExpression )
             {
-            // InternalSignalDSL.g:6674:1: ( ruleXRelationalExpression )
-            // InternalSignalDSL.g:6675:2: ruleXRelationalExpression
+            // InternalSignalDSL.g:6937:1: ( ruleXRelationalExpression )
+            // InternalSignalDSL.g:6938:2: ruleXRelationalExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXEqualityExpressionAccess().getXRelationalExpressionParserRuleCall_0()); 
@@ -23274,14 +24059,14 @@
 
 
     // $ANTLR start "rule__XEqualityExpression__Group__1"
-    // InternalSignalDSL.g:6684:1: rule__XEqualityExpression__Group__1 : rule__XEqualityExpression__Group__1__Impl ;
+    // InternalSignalDSL.g:6947: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:6688:1: ( rule__XEqualityExpression__Group__1__Impl )
-            // InternalSignalDSL.g:6689:2: rule__XEqualityExpression__Group__1__Impl
+            // InternalSignalDSL.g:6951:1: ( rule__XEqualityExpression__Group__1__Impl )
+            // InternalSignalDSL.g:6952:2: rule__XEqualityExpression__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XEqualityExpression__Group__1__Impl();
@@ -23307,32 +24092,32 @@
 
 
     // $ANTLR start "rule__XEqualityExpression__Group__1__Impl"
-    // InternalSignalDSL.g:6695:1: rule__XEqualityExpression__Group__1__Impl : ( ( rule__XEqualityExpression__Group_1__0 )* ) ;
+    // InternalSignalDSL.g:6958: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:6699:1: ( ( ( rule__XEqualityExpression__Group_1__0 )* ) )
-            // InternalSignalDSL.g:6700:1: ( ( rule__XEqualityExpression__Group_1__0 )* )
+            // InternalSignalDSL.g:6962:1: ( ( ( rule__XEqualityExpression__Group_1__0 )* ) )
+            // InternalSignalDSL.g:6963:1: ( ( rule__XEqualityExpression__Group_1__0 )* )
             {
-            // InternalSignalDSL.g:6700:1: ( ( rule__XEqualityExpression__Group_1__0 )* )
-            // InternalSignalDSL.g:6701:2: ( rule__XEqualityExpression__Group_1__0 )*
+            // InternalSignalDSL.g:6963:1: ( ( rule__XEqualityExpression__Group_1__0 )* )
+            // InternalSignalDSL.g:6964:2: ( rule__XEqualityExpression__Group_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXEqualityExpressionAccess().getGroup_1()); 
             }
-            // InternalSignalDSL.g:6702:2: ( rule__XEqualityExpression__Group_1__0 )*
-            loop69:
+            // InternalSignalDSL.g:6965:2: ( rule__XEqualityExpression__Group_1__0 )*
+            loop72:
             do {
-                int alt69=2;
+                int alt72=2;
                 switch ( input.LA(1) ) {
                 case 21:
                     {
-                    int LA69_2 = input.LA(2);
+                    int LA72_2 = input.LA(2);
 
-                    if ( (synpred123_InternalSignalDSL()) ) {
-                        alt69=1;
+                    if ( (synpred120_InternalSignalDSL()) ) {
+                        alt72=1;
                     }
 
 
@@ -23340,10 +24125,10 @@
                     break;
                 case 22:
                     {
-                    int LA69_3 = input.LA(2);
+                    int LA72_3 = input.LA(2);
 
-                    if ( (synpred123_InternalSignalDSL()) ) {
-                        alt69=1;
+                    if ( (synpred120_InternalSignalDSL()) ) {
+                        alt72=1;
                     }
 
 
@@ -23351,10 +24136,10 @@
                     break;
                 case 23:
                     {
-                    int LA69_4 = input.LA(2);
+                    int LA72_4 = input.LA(2);
 
-                    if ( (synpred123_InternalSignalDSL()) ) {
-                        alt69=1;
+                    if ( (synpred120_InternalSignalDSL()) ) {
+                        alt72=1;
                     }
 
 
@@ -23362,10 +24147,10 @@
                     break;
                 case 24:
                     {
-                    int LA69_5 = input.LA(2);
+                    int LA72_5 = input.LA(2);
 
-                    if ( (synpred123_InternalSignalDSL()) ) {
-                        alt69=1;
+                    if ( (synpred120_InternalSignalDSL()) ) {
+                        alt72=1;
                     }
 
 
@@ -23374,11 +24159,11 @@
 
                 }
 
-                switch (alt69) {
+                switch (alt72) {
             	case 1 :
-            	    // InternalSignalDSL.g:6702:3: rule__XEqualityExpression__Group_1__0
+            	    // InternalSignalDSL.g:6965:3: rule__XEqualityExpression__Group_1__0
             	    {
-            	    pushFollow(FOLLOW_44);
+            	    pushFollow(FOLLOW_49);
             	    rule__XEqualityExpression__Group_1__0();
 
             	    state._fsp--;
@@ -23388,7 +24173,7 @@
             	    break;
 
             	default :
-            	    break loop69;
+            	    break loop72;
                 }
             } while (true);
 
@@ -23417,16 +24202,16 @@
 
 
     // $ANTLR start "rule__XEqualityExpression__Group_1__0"
-    // InternalSignalDSL.g:6711:1: rule__XEqualityExpression__Group_1__0 : rule__XEqualityExpression__Group_1__0__Impl rule__XEqualityExpression__Group_1__1 ;
+    // InternalSignalDSL.g:6974: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:6715:1: ( rule__XEqualityExpression__Group_1__0__Impl rule__XEqualityExpression__Group_1__1 )
-            // InternalSignalDSL.g:6716:2: rule__XEqualityExpression__Group_1__0__Impl rule__XEqualityExpression__Group_1__1
+            // InternalSignalDSL.g:6978:1: ( rule__XEqualityExpression__Group_1__0__Impl rule__XEqualityExpression__Group_1__1 )
+            // InternalSignalDSL.g:6979:2: rule__XEqualityExpression__Group_1__0__Impl rule__XEqualityExpression__Group_1__1
             {
-            pushFollow(FOLLOW_30);
+            pushFollow(FOLLOW_35);
             rule__XEqualityExpression__Group_1__0__Impl();
 
             state._fsp--;
@@ -23455,23 +24240,23 @@
 
 
     // $ANTLR start "rule__XEqualityExpression__Group_1__0__Impl"
-    // InternalSignalDSL.g:6723:1: rule__XEqualityExpression__Group_1__0__Impl : ( ( rule__XEqualityExpression__Group_1_0__0 ) ) ;
+    // InternalSignalDSL.g:6986: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:6727:1: ( ( ( rule__XEqualityExpression__Group_1_0__0 ) ) )
-            // InternalSignalDSL.g:6728:1: ( ( rule__XEqualityExpression__Group_1_0__0 ) )
+            // InternalSignalDSL.g:6990:1: ( ( ( rule__XEqualityExpression__Group_1_0__0 ) ) )
+            // InternalSignalDSL.g:6991:1: ( ( rule__XEqualityExpression__Group_1_0__0 ) )
             {
-            // InternalSignalDSL.g:6728:1: ( ( rule__XEqualityExpression__Group_1_0__0 ) )
-            // InternalSignalDSL.g:6729:2: ( rule__XEqualityExpression__Group_1_0__0 )
+            // InternalSignalDSL.g:6991:1: ( ( rule__XEqualityExpression__Group_1_0__0 ) )
+            // InternalSignalDSL.g:6992:2: ( rule__XEqualityExpression__Group_1_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXEqualityExpressionAccess().getGroup_1_0()); 
             }
-            // InternalSignalDSL.g:6730:2: ( rule__XEqualityExpression__Group_1_0__0 )
-            // InternalSignalDSL.g:6730:3: rule__XEqualityExpression__Group_1_0__0
+            // InternalSignalDSL.g:6993:2: ( rule__XEqualityExpression__Group_1_0__0 )
+            // InternalSignalDSL.g:6993:3: rule__XEqualityExpression__Group_1_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XEqualityExpression__Group_1_0__0();
@@ -23506,14 +24291,14 @@
 
 
     // $ANTLR start "rule__XEqualityExpression__Group_1__1"
-    // InternalSignalDSL.g:6738:1: rule__XEqualityExpression__Group_1__1 : rule__XEqualityExpression__Group_1__1__Impl ;
+    // InternalSignalDSL.g:7001: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:6742:1: ( rule__XEqualityExpression__Group_1__1__Impl )
-            // InternalSignalDSL.g:6743:2: rule__XEqualityExpression__Group_1__1__Impl
+            // InternalSignalDSL.g:7005:1: ( rule__XEqualityExpression__Group_1__1__Impl )
+            // InternalSignalDSL.g:7006:2: rule__XEqualityExpression__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XEqualityExpression__Group_1__1__Impl();
@@ -23539,23 +24324,23 @@
 
 
     // $ANTLR start "rule__XEqualityExpression__Group_1__1__Impl"
-    // InternalSignalDSL.g:6749:1: rule__XEqualityExpression__Group_1__1__Impl : ( ( rule__XEqualityExpression__RightOperandAssignment_1_1 ) ) ;
+    // InternalSignalDSL.g:7012: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:6753:1: ( ( ( rule__XEqualityExpression__RightOperandAssignment_1_1 ) ) )
-            // InternalSignalDSL.g:6754:1: ( ( rule__XEqualityExpression__RightOperandAssignment_1_1 ) )
+            // InternalSignalDSL.g:7016:1: ( ( ( rule__XEqualityExpression__RightOperandAssignment_1_1 ) ) )
+            // InternalSignalDSL.g:7017:1: ( ( rule__XEqualityExpression__RightOperandAssignment_1_1 ) )
             {
-            // InternalSignalDSL.g:6754:1: ( ( rule__XEqualityExpression__RightOperandAssignment_1_1 ) )
-            // InternalSignalDSL.g:6755:2: ( rule__XEqualityExpression__RightOperandAssignment_1_1 )
+            // InternalSignalDSL.g:7017:1: ( ( rule__XEqualityExpression__RightOperandAssignment_1_1 ) )
+            // InternalSignalDSL.g:7018:2: ( rule__XEqualityExpression__RightOperandAssignment_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXEqualityExpressionAccess().getRightOperandAssignment_1_1()); 
             }
-            // InternalSignalDSL.g:6756:2: ( rule__XEqualityExpression__RightOperandAssignment_1_1 )
-            // InternalSignalDSL.g:6756:3: rule__XEqualityExpression__RightOperandAssignment_1_1
+            // InternalSignalDSL.g:7019:2: ( rule__XEqualityExpression__RightOperandAssignment_1_1 )
+            // InternalSignalDSL.g:7019:3: rule__XEqualityExpression__RightOperandAssignment_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XEqualityExpression__RightOperandAssignment_1_1();
@@ -23590,14 +24375,14 @@
 
 
     // $ANTLR start "rule__XEqualityExpression__Group_1_0__0"
-    // InternalSignalDSL.g:6765:1: rule__XEqualityExpression__Group_1_0__0 : rule__XEqualityExpression__Group_1_0__0__Impl ;
+    // InternalSignalDSL.g:7028: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:6769:1: ( rule__XEqualityExpression__Group_1_0__0__Impl )
-            // InternalSignalDSL.g:6770:2: rule__XEqualityExpression__Group_1_0__0__Impl
+            // InternalSignalDSL.g:7032:1: ( rule__XEqualityExpression__Group_1_0__0__Impl )
+            // InternalSignalDSL.g:7033:2: rule__XEqualityExpression__Group_1_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XEqualityExpression__Group_1_0__0__Impl();
@@ -23623,23 +24408,23 @@
 
 
     // $ANTLR start "rule__XEqualityExpression__Group_1_0__0__Impl"
-    // InternalSignalDSL.g:6776:1: rule__XEqualityExpression__Group_1_0__0__Impl : ( ( rule__XEqualityExpression__Group_1_0_0__0 ) ) ;
+    // InternalSignalDSL.g:7039: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:6780:1: ( ( ( rule__XEqualityExpression__Group_1_0_0__0 ) ) )
-            // InternalSignalDSL.g:6781:1: ( ( rule__XEqualityExpression__Group_1_0_0__0 ) )
+            // InternalSignalDSL.g:7043:1: ( ( ( rule__XEqualityExpression__Group_1_0_0__0 ) ) )
+            // InternalSignalDSL.g:7044:1: ( ( rule__XEqualityExpression__Group_1_0_0__0 ) )
             {
-            // InternalSignalDSL.g:6781:1: ( ( rule__XEqualityExpression__Group_1_0_0__0 ) )
-            // InternalSignalDSL.g:6782:2: ( rule__XEqualityExpression__Group_1_0_0__0 )
+            // InternalSignalDSL.g:7044:1: ( ( rule__XEqualityExpression__Group_1_0_0__0 ) )
+            // InternalSignalDSL.g:7045:2: ( rule__XEqualityExpression__Group_1_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXEqualityExpressionAccess().getGroup_1_0_0()); 
             }
-            // InternalSignalDSL.g:6783:2: ( rule__XEqualityExpression__Group_1_0_0__0 )
-            // InternalSignalDSL.g:6783:3: rule__XEqualityExpression__Group_1_0_0__0
+            // InternalSignalDSL.g:7046:2: ( rule__XEqualityExpression__Group_1_0_0__0 )
+            // InternalSignalDSL.g:7046:3: rule__XEqualityExpression__Group_1_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XEqualityExpression__Group_1_0_0__0();
@@ -23674,16 +24459,16 @@
 
 
     // $ANTLR start "rule__XEqualityExpression__Group_1_0_0__0"
-    // InternalSignalDSL.g:6792: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:7055: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:6796:1: ( rule__XEqualityExpression__Group_1_0_0__0__Impl rule__XEqualityExpression__Group_1_0_0__1 )
-            // InternalSignalDSL.g:6797:2: rule__XEqualityExpression__Group_1_0_0__0__Impl rule__XEqualityExpression__Group_1_0_0__1
+            // InternalSignalDSL.g:7059:1: ( rule__XEqualityExpression__Group_1_0_0__0__Impl rule__XEqualityExpression__Group_1_0_0__1 )
+            // InternalSignalDSL.g:7060:2: rule__XEqualityExpression__Group_1_0_0__0__Impl rule__XEqualityExpression__Group_1_0_0__1
             {
-            pushFollow(FOLLOW_43);
+            pushFollow(FOLLOW_48);
             rule__XEqualityExpression__Group_1_0_0__0__Impl();
 
             state._fsp--;
@@ -23712,23 +24497,23 @@
 
 
     // $ANTLR start "rule__XEqualityExpression__Group_1_0_0__0__Impl"
-    // InternalSignalDSL.g:6804:1: rule__XEqualityExpression__Group_1_0_0__0__Impl : ( () ) ;
+    // InternalSignalDSL.g:7067: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:6808:1: ( ( () ) )
-            // InternalSignalDSL.g:6809:1: ( () )
+            // InternalSignalDSL.g:7071:1: ( ( () ) )
+            // InternalSignalDSL.g:7072:1: ( () )
             {
-            // InternalSignalDSL.g:6809:1: ( () )
-            // InternalSignalDSL.g:6810:2: ()
+            // InternalSignalDSL.g:7072:1: ( () )
+            // InternalSignalDSL.g:7073:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXEqualityExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()); 
             }
-            // InternalSignalDSL.g:6811:2: ()
-            // InternalSignalDSL.g:6811:3: 
+            // InternalSignalDSL.g:7074:2: ()
+            // InternalSignalDSL.g:7074:3: 
             {
             }
 
@@ -23753,14 +24538,14 @@
 
 
     // $ANTLR start "rule__XEqualityExpression__Group_1_0_0__1"
-    // InternalSignalDSL.g:6819:1: rule__XEqualityExpression__Group_1_0_0__1 : rule__XEqualityExpression__Group_1_0_0__1__Impl ;
+    // InternalSignalDSL.g:7082: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:6823:1: ( rule__XEqualityExpression__Group_1_0_0__1__Impl )
-            // InternalSignalDSL.g:6824:2: rule__XEqualityExpression__Group_1_0_0__1__Impl
+            // InternalSignalDSL.g:7086:1: ( rule__XEqualityExpression__Group_1_0_0__1__Impl )
+            // InternalSignalDSL.g:7087:2: rule__XEqualityExpression__Group_1_0_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XEqualityExpression__Group_1_0_0__1__Impl();
@@ -23786,23 +24571,23 @@
 
 
     // $ANTLR start "rule__XEqualityExpression__Group_1_0_0__1__Impl"
-    // InternalSignalDSL.g:6830:1: rule__XEqualityExpression__Group_1_0_0__1__Impl : ( ( rule__XEqualityExpression__FeatureAssignment_1_0_0_1 ) ) ;
+    // InternalSignalDSL.g:7093: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:6834:1: ( ( ( rule__XEqualityExpression__FeatureAssignment_1_0_0_1 ) ) )
-            // InternalSignalDSL.g:6835:1: ( ( rule__XEqualityExpression__FeatureAssignment_1_0_0_1 ) )
+            // InternalSignalDSL.g:7097:1: ( ( ( rule__XEqualityExpression__FeatureAssignment_1_0_0_1 ) ) )
+            // InternalSignalDSL.g:7098:1: ( ( rule__XEqualityExpression__FeatureAssignment_1_0_0_1 ) )
             {
-            // InternalSignalDSL.g:6835:1: ( ( rule__XEqualityExpression__FeatureAssignment_1_0_0_1 ) )
-            // InternalSignalDSL.g:6836:2: ( rule__XEqualityExpression__FeatureAssignment_1_0_0_1 )
+            // InternalSignalDSL.g:7098:1: ( ( rule__XEqualityExpression__FeatureAssignment_1_0_0_1 ) )
+            // InternalSignalDSL.g:7099:2: ( rule__XEqualityExpression__FeatureAssignment_1_0_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXEqualityExpressionAccess().getFeatureAssignment_1_0_0_1()); 
             }
-            // InternalSignalDSL.g:6837:2: ( rule__XEqualityExpression__FeatureAssignment_1_0_0_1 )
-            // InternalSignalDSL.g:6837:3: rule__XEqualityExpression__FeatureAssignment_1_0_0_1
+            // InternalSignalDSL.g:7100:2: ( rule__XEqualityExpression__FeatureAssignment_1_0_0_1 )
+            // InternalSignalDSL.g:7100:3: rule__XEqualityExpression__FeatureAssignment_1_0_0_1
             {
             pushFollow(FOLLOW_2);
             rule__XEqualityExpression__FeatureAssignment_1_0_0_1();
@@ -23837,16 +24622,16 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group__0"
-    // InternalSignalDSL.g:6846:1: rule__XRelationalExpression__Group__0 : rule__XRelationalExpression__Group__0__Impl rule__XRelationalExpression__Group__1 ;
+    // InternalSignalDSL.g:7109: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:6850:1: ( rule__XRelationalExpression__Group__0__Impl rule__XRelationalExpression__Group__1 )
-            // InternalSignalDSL.g:6851:2: rule__XRelationalExpression__Group__0__Impl rule__XRelationalExpression__Group__1
+            // InternalSignalDSL.g:7113:1: ( rule__XRelationalExpression__Group__0__Impl rule__XRelationalExpression__Group__1 )
+            // InternalSignalDSL.g:7114:2: rule__XRelationalExpression__Group__0__Impl rule__XRelationalExpression__Group__1
             {
-            pushFollow(FOLLOW_45);
+            pushFollow(FOLLOW_50);
             rule__XRelationalExpression__Group__0__Impl();
 
             state._fsp--;
@@ -23875,17 +24660,17 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group__0__Impl"
-    // InternalSignalDSL.g:6858:1: rule__XRelationalExpression__Group__0__Impl : ( ruleXOtherOperatorExpression ) ;
+    // InternalSignalDSL.g:7121:1: rule__XRelationalExpression__Group__0__Impl : ( ruleXOtherOperatorExpression ) ;
     public final void rule__XRelationalExpression__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:6862:1: ( ( ruleXOtherOperatorExpression ) )
-            // InternalSignalDSL.g:6863:1: ( ruleXOtherOperatorExpression )
+            // InternalSignalDSL.g:7125:1: ( ( ruleXOtherOperatorExpression ) )
+            // InternalSignalDSL.g:7126:1: ( ruleXOtherOperatorExpression )
             {
-            // InternalSignalDSL.g:6863:1: ( ruleXOtherOperatorExpression )
-            // InternalSignalDSL.g:6864:2: ruleXOtherOperatorExpression
+            // InternalSignalDSL.g:7126:1: ( ruleXOtherOperatorExpression )
+            // InternalSignalDSL.g:7127:2: ruleXOtherOperatorExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXRelationalExpressionAccess().getXOtherOperatorExpressionParserRuleCall_0()); 
@@ -23920,14 +24705,14 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group__1"
-    // InternalSignalDSL.g:6873:1: rule__XRelationalExpression__Group__1 : rule__XRelationalExpression__Group__1__Impl ;
+    // InternalSignalDSL.g:7136: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:6877:1: ( rule__XRelationalExpression__Group__1__Impl )
-            // InternalSignalDSL.g:6878:2: rule__XRelationalExpression__Group__1__Impl
+            // InternalSignalDSL.g:7140:1: ( rule__XRelationalExpression__Group__1__Impl )
+            // InternalSignalDSL.g:7141:2: rule__XRelationalExpression__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XRelationalExpression__Group__1__Impl();
@@ -23953,32 +24738,32 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group__1__Impl"
-    // InternalSignalDSL.g:6884:1: rule__XRelationalExpression__Group__1__Impl : ( ( rule__XRelationalExpression__Alternatives_1 )* ) ;
+    // InternalSignalDSL.g:7147: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:6888:1: ( ( ( rule__XRelationalExpression__Alternatives_1 )* ) )
-            // InternalSignalDSL.g:6889:1: ( ( rule__XRelationalExpression__Alternatives_1 )* )
+            // InternalSignalDSL.g:7151:1: ( ( ( rule__XRelationalExpression__Alternatives_1 )* ) )
+            // InternalSignalDSL.g:7152:1: ( ( rule__XRelationalExpression__Alternatives_1 )* )
             {
-            // InternalSignalDSL.g:6889:1: ( ( rule__XRelationalExpression__Alternatives_1 )* )
-            // InternalSignalDSL.g:6890:2: ( rule__XRelationalExpression__Alternatives_1 )*
+            // InternalSignalDSL.g:7152:1: ( ( rule__XRelationalExpression__Alternatives_1 )* )
+            // InternalSignalDSL.g:7153:2: ( rule__XRelationalExpression__Alternatives_1 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXRelationalExpressionAccess().getAlternatives_1()); 
             }
-            // InternalSignalDSL.g:6891:2: ( rule__XRelationalExpression__Alternatives_1 )*
-            loop70:
+            // InternalSignalDSL.g:7154:2: ( rule__XRelationalExpression__Alternatives_1 )*
+            loop73:
             do {
-                int alt70=2;
+                int alt73=2;
                 switch ( input.LA(1) ) {
                 case 27:
                     {
-                    int LA70_2 = input.LA(2);
+                    int LA73_2 = input.LA(2);
 
-                    if ( (synpred124_InternalSignalDSL()) ) {
-                        alt70=1;
+                    if ( (synpred121_InternalSignalDSL()) ) {
+                        alt73=1;
                     }
 
 
@@ -23986,21 +24771,21 @@
                     break;
                 case 26:
                     {
-                    int LA70_3 = input.LA(2);
+                    int LA73_3 = input.LA(2);
 
-                    if ( (synpred124_InternalSignalDSL()) ) {
-                        alt70=1;
+                    if ( (synpred121_InternalSignalDSL()) ) {
+                        alt73=1;
                     }
 
 
                     }
                     break;
-                case 82:
+                case 80:
                     {
-                    int LA70_4 = input.LA(2);
+                    int LA73_4 = input.LA(2);
 
-                    if ( (synpred124_InternalSignalDSL()) ) {
-                        alt70=1;
+                    if ( (synpred121_InternalSignalDSL()) ) {
+                        alt73=1;
                     }
 
 
@@ -24008,10 +24793,10 @@
                     break;
                 case 25:
                     {
-                    int LA70_5 = input.LA(2);
+                    int LA73_5 = input.LA(2);
 
-                    if ( (synpred124_InternalSignalDSL()) ) {
-                        alt70=1;
+                    if ( (synpred121_InternalSignalDSL()) ) {
+                        alt73=1;
                     }
 
 
@@ -24020,11 +24805,11 @@
 
                 }
 
-                switch (alt70) {
+                switch (alt73) {
             	case 1 :
-            	    // InternalSignalDSL.g:6891:3: rule__XRelationalExpression__Alternatives_1
+            	    // InternalSignalDSL.g:7154:3: rule__XRelationalExpression__Alternatives_1
             	    {
-            	    pushFollow(FOLLOW_46);
+            	    pushFollow(FOLLOW_51);
             	    rule__XRelationalExpression__Alternatives_1();
 
             	    state._fsp--;
@@ -24034,7 +24819,7 @@
             	    break;
 
             	default :
-            	    break loop70;
+            	    break loop73;
                 }
             } while (true);
 
@@ -24063,16 +24848,16 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group_1_0__0"
-    // InternalSignalDSL.g:6900:1: rule__XRelationalExpression__Group_1_0__0 : rule__XRelationalExpression__Group_1_0__0__Impl rule__XRelationalExpression__Group_1_0__1 ;
+    // InternalSignalDSL.g:7163: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:6904:1: ( rule__XRelationalExpression__Group_1_0__0__Impl rule__XRelationalExpression__Group_1_0__1 )
-            // InternalSignalDSL.g:6905:2: rule__XRelationalExpression__Group_1_0__0__Impl rule__XRelationalExpression__Group_1_0__1
+            // InternalSignalDSL.g:7167:1: ( rule__XRelationalExpression__Group_1_0__0__Impl rule__XRelationalExpression__Group_1_0__1 )
+            // InternalSignalDSL.g:7168:2: rule__XRelationalExpression__Group_1_0__0__Impl rule__XRelationalExpression__Group_1_0__1
             {
-            pushFollow(FOLLOW_47);
+            pushFollow(FOLLOW_52);
             rule__XRelationalExpression__Group_1_0__0__Impl();
 
             state._fsp--;
@@ -24101,23 +24886,23 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group_1_0__0__Impl"
-    // InternalSignalDSL.g:6912:1: rule__XRelationalExpression__Group_1_0__0__Impl : ( ( rule__XRelationalExpression__Group_1_0_0__0 ) ) ;
+    // InternalSignalDSL.g:7175: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:6916:1: ( ( ( rule__XRelationalExpression__Group_1_0_0__0 ) ) )
-            // InternalSignalDSL.g:6917:1: ( ( rule__XRelationalExpression__Group_1_0_0__0 ) )
+            // InternalSignalDSL.g:7179:1: ( ( ( rule__XRelationalExpression__Group_1_0_0__0 ) ) )
+            // InternalSignalDSL.g:7180:1: ( ( rule__XRelationalExpression__Group_1_0_0__0 ) )
             {
-            // InternalSignalDSL.g:6917:1: ( ( rule__XRelationalExpression__Group_1_0_0__0 ) )
-            // InternalSignalDSL.g:6918:2: ( rule__XRelationalExpression__Group_1_0_0__0 )
+            // InternalSignalDSL.g:7180:1: ( ( rule__XRelationalExpression__Group_1_0_0__0 ) )
+            // InternalSignalDSL.g:7181:2: ( rule__XRelationalExpression__Group_1_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXRelationalExpressionAccess().getGroup_1_0_0()); 
             }
-            // InternalSignalDSL.g:6919:2: ( rule__XRelationalExpression__Group_1_0_0__0 )
-            // InternalSignalDSL.g:6919:3: rule__XRelationalExpression__Group_1_0_0__0
+            // InternalSignalDSL.g:7182:2: ( rule__XRelationalExpression__Group_1_0_0__0 )
+            // InternalSignalDSL.g:7182:3: rule__XRelationalExpression__Group_1_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XRelationalExpression__Group_1_0_0__0();
@@ -24152,14 +24937,14 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group_1_0__1"
-    // InternalSignalDSL.g:6927:1: rule__XRelationalExpression__Group_1_0__1 : rule__XRelationalExpression__Group_1_0__1__Impl ;
+    // InternalSignalDSL.g:7190: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:6931:1: ( rule__XRelationalExpression__Group_1_0__1__Impl )
-            // InternalSignalDSL.g:6932:2: rule__XRelationalExpression__Group_1_0__1__Impl
+            // InternalSignalDSL.g:7194:1: ( rule__XRelationalExpression__Group_1_0__1__Impl )
+            // InternalSignalDSL.g:7195:2: rule__XRelationalExpression__Group_1_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XRelationalExpression__Group_1_0__1__Impl();
@@ -24185,23 +24970,23 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group_1_0__1__Impl"
-    // InternalSignalDSL.g:6938:1: rule__XRelationalExpression__Group_1_0__1__Impl : ( ( rule__XRelationalExpression__TypeAssignment_1_0_1 ) ) ;
+    // InternalSignalDSL.g:7201: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:6942:1: ( ( ( rule__XRelationalExpression__TypeAssignment_1_0_1 ) ) )
-            // InternalSignalDSL.g:6943:1: ( ( rule__XRelationalExpression__TypeAssignment_1_0_1 ) )
+            // InternalSignalDSL.g:7205:1: ( ( ( rule__XRelationalExpression__TypeAssignment_1_0_1 ) ) )
+            // InternalSignalDSL.g:7206:1: ( ( rule__XRelationalExpression__TypeAssignment_1_0_1 ) )
             {
-            // InternalSignalDSL.g:6943:1: ( ( rule__XRelationalExpression__TypeAssignment_1_0_1 ) )
-            // InternalSignalDSL.g:6944:2: ( rule__XRelationalExpression__TypeAssignment_1_0_1 )
+            // InternalSignalDSL.g:7206:1: ( ( rule__XRelationalExpression__TypeAssignment_1_0_1 ) )
+            // InternalSignalDSL.g:7207:2: ( rule__XRelationalExpression__TypeAssignment_1_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXRelationalExpressionAccess().getTypeAssignment_1_0_1()); 
             }
-            // InternalSignalDSL.g:6945:2: ( rule__XRelationalExpression__TypeAssignment_1_0_1 )
-            // InternalSignalDSL.g:6945:3: rule__XRelationalExpression__TypeAssignment_1_0_1
+            // InternalSignalDSL.g:7208:2: ( rule__XRelationalExpression__TypeAssignment_1_0_1 )
+            // InternalSignalDSL.g:7208:3: rule__XRelationalExpression__TypeAssignment_1_0_1
             {
             pushFollow(FOLLOW_2);
             rule__XRelationalExpression__TypeAssignment_1_0_1();
@@ -24236,14 +25021,14 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group_1_0_0__0"
-    // InternalSignalDSL.g:6954:1: rule__XRelationalExpression__Group_1_0_0__0 : rule__XRelationalExpression__Group_1_0_0__0__Impl ;
+    // InternalSignalDSL.g:7217: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:6958:1: ( rule__XRelationalExpression__Group_1_0_0__0__Impl )
-            // InternalSignalDSL.g:6959:2: rule__XRelationalExpression__Group_1_0_0__0__Impl
+            // InternalSignalDSL.g:7221:1: ( rule__XRelationalExpression__Group_1_0_0__0__Impl )
+            // InternalSignalDSL.g:7222:2: rule__XRelationalExpression__Group_1_0_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XRelationalExpression__Group_1_0_0__0__Impl();
@@ -24269,23 +25054,23 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group_1_0_0__0__Impl"
-    // InternalSignalDSL.g:6965:1: rule__XRelationalExpression__Group_1_0_0__0__Impl : ( ( rule__XRelationalExpression__Group_1_0_0_0__0 ) ) ;
+    // InternalSignalDSL.g:7228: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:6969:1: ( ( ( rule__XRelationalExpression__Group_1_0_0_0__0 ) ) )
-            // InternalSignalDSL.g:6970:1: ( ( rule__XRelationalExpression__Group_1_0_0_0__0 ) )
+            // InternalSignalDSL.g:7232:1: ( ( ( rule__XRelationalExpression__Group_1_0_0_0__0 ) ) )
+            // InternalSignalDSL.g:7233:1: ( ( rule__XRelationalExpression__Group_1_0_0_0__0 ) )
             {
-            // InternalSignalDSL.g:6970:1: ( ( rule__XRelationalExpression__Group_1_0_0_0__0 ) )
-            // InternalSignalDSL.g:6971:2: ( rule__XRelationalExpression__Group_1_0_0_0__0 )
+            // InternalSignalDSL.g:7233:1: ( ( rule__XRelationalExpression__Group_1_0_0_0__0 ) )
+            // InternalSignalDSL.g:7234:2: ( rule__XRelationalExpression__Group_1_0_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXRelationalExpressionAccess().getGroup_1_0_0_0()); 
             }
-            // InternalSignalDSL.g:6972:2: ( rule__XRelationalExpression__Group_1_0_0_0__0 )
-            // InternalSignalDSL.g:6972:3: rule__XRelationalExpression__Group_1_0_0_0__0
+            // InternalSignalDSL.g:7235:2: ( rule__XRelationalExpression__Group_1_0_0_0__0 )
+            // InternalSignalDSL.g:7235:3: rule__XRelationalExpression__Group_1_0_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XRelationalExpression__Group_1_0_0_0__0();
@@ -24320,16 +25105,16 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group_1_0_0_0__0"
-    // InternalSignalDSL.g:6981: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:7244: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:6985:1: ( rule__XRelationalExpression__Group_1_0_0_0__0__Impl rule__XRelationalExpression__Group_1_0_0_0__1 )
-            // InternalSignalDSL.g:6986:2: rule__XRelationalExpression__Group_1_0_0_0__0__Impl rule__XRelationalExpression__Group_1_0_0_0__1
+            // InternalSignalDSL.g:7248:1: ( rule__XRelationalExpression__Group_1_0_0_0__0__Impl rule__XRelationalExpression__Group_1_0_0_0__1 )
+            // InternalSignalDSL.g:7249:2: rule__XRelationalExpression__Group_1_0_0_0__0__Impl rule__XRelationalExpression__Group_1_0_0_0__1
             {
-            pushFollow(FOLLOW_48);
+            pushFollow(FOLLOW_53);
             rule__XRelationalExpression__Group_1_0_0_0__0__Impl();
 
             state._fsp--;
@@ -24358,23 +25143,23 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group_1_0_0_0__0__Impl"
-    // InternalSignalDSL.g:6993:1: rule__XRelationalExpression__Group_1_0_0_0__0__Impl : ( () ) ;
+    // InternalSignalDSL.g:7256: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:6997:1: ( ( () ) )
-            // InternalSignalDSL.g:6998:1: ( () )
+            // InternalSignalDSL.g:7260:1: ( ( () ) )
+            // InternalSignalDSL.g:7261:1: ( () )
             {
-            // InternalSignalDSL.g:6998:1: ( () )
-            // InternalSignalDSL.g:6999:2: ()
+            // InternalSignalDSL.g:7261:1: ( () )
+            // InternalSignalDSL.g:7262:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXRelationalExpressionAccess().getXInstanceOfExpressionExpressionAction_1_0_0_0_0()); 
             }
-            // InternalSignalDSL.g:7000:2: ()
-            // InternalSignalDSL.g:7000:3: 
+            // InternalSignalDSL.g:7263:2: ()
+            // InternalSignalDSL.g:7263:3: 
             {
             }
 
@@ -24399,14 +25184,14 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group_1_0_0_0__1"
-    // InternalSignalDSL.g:7008:1: rule__XRelationalExpression__Group_1_0_0_0__1 : rule__XRelationalExpression__Group_1_0_0_0__1__Impl ;
+    // InternalSignalDSL.g:7271: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:7012:1: ( rule__XRelationalExpression__Group_1_0_0_0__1__Impl )
-            // InternalSignalDSL.g:7013:2: rule__XRelationalExpression__Group_1_0_0_0__1__Impl
+            // InternalSignalDSL.g:7275:1: ( rule__XRelationalExpression__Group_1_0_0_0__1__Impl )
+            // InternalSignalDSL.g:7276:2: rule__XRelationalExpression__Group_1_0_0_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XRelationalExpression__Group_1_0_0_0__1__Impl();
@@ -24432,22 +25217,22 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group_1_0_0_0__1__Impl"
-    // InternalSignalDSL.g:7019:1: rule__XRelationalExpression__Group_1_0_0_0__1__Impl : ( 'instanceof' ) ;
+    // InternalSignalDSL.g:7282: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:7023:1: ( ( 'instanceof' ) )
-            // InternalSignalDSL.g:7024:1: ( 'instanceof' )
+            // InternalSignalDSL.g:7286:1: ( ( 'instanceof' ) )
+            // InternalSignalDSL.g:7287:1: ( 'instanceof' )
             {
-            // InternalSignalDSL.g:7024:1: ( 'instanceof' )
-            // InternalSignalDSL.g:7025:2: 'instanceof'
+            // InternalSignalDSL.g:7287:1: ( 'instanceof' )
+            // InternalSignalDSL.g:7288:2: 'instanceof'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXRelationalExpressionAccess().getInstanceofKeyword_1_0_0_0_1()); 
             }
-            match(input,82,FOLLOW_2); if (state.failed) return ;
+            match(input,80,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXRelationalExpressionAccess().getInstanceofKeyword_1_0_0_0_1()); 
             }
@@ -24473,16 +25258,16 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group_1_1__0"
-    // InternalSignalDSL.g:7035:1: rule__XRelationalExpression__Group_1_1__0 : rule__XRelationalExpression__Group_1_1__0__Impl rule__XRelationalExpression__Group_1_1__1 ;
+    // InternalSignalDSL.g:7298: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:7039:1: ( rule__XRelationalExpression__Group_1_1__0__Impl rule__XRelationalExpression__Group_1_1__1 )
-            // InternalSignalDSL.g:7040:2: rule__XRelationalExpression__Group_1_1__0__Impl rule__XRelationalExpression__Group_1_1__1
+            // InternalSignalDSL.g:7302:1: ( rule__XRelationalExpression__Group_1_1__0__Impl rule__XRelationalExpression__Group_1_1__1 )
+            // InternalSignalDSL.g:7303:2: rule__XRelationalExpression__Group_1_1__0__Impl rule__XRelationalExpression__Group_1_1__1
             {
-            pushFollow(FOLLOW_30);
+            pushFollow(FOLLOW_35);
             rule__XRelationalExpression__Group_1_1__0__Impl();
 
             state._fsp--;
@@ -24511,23 +25296,23 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group_1_1__0__Impl"
-    // InternalSignalDSL.g:7047:1: rule__XRelationalExpression__Group_1_1__0__Impl : ( ( rule__XRelationalExpression__Group_1_1_0__0 ) ) ;
+    // InternalSignalDSL.g:7310: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:7051:1: ( ( ( rule__XRelationalExpression__Group_1_1_0__0 ) ) )
-            // InternalSignalDSL.g:7052:1: ( ( rule__XRelationalExpression__Group_1_1_0__0 ) )
+            // InternalSignalDSL.g:7314:1: ( ( ( rule__XRelationalExpression__Group_1_1_0__0 ) ) )
+            // InternalSignalDSL.g:7315:1: ( ( rule__XRelationalExpression__Group_1_1_0__0 ) )
             {
-            // InternalSignalDSL.g:7052:1: ( ( rule__XRelationalExpression__Group_1_1_0__0 ) )
-            // InternalSignalDSL.g:7053:2: ( rule__XRelationalExpression__Group_1_1_0__0 )
+            // InternalSignalDSL.g:7315:1: ( ( rule__XRelationalExpression__Group_1_1_0__0 ) )
+            // InternalSignalDSL.g:7316:2: ( rule__XRelationalExpression__Group_1_1_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXRelationalExpressionAccess().getGroup_1_1_0()); 
             }
-            // InternalSignalDSL.g:7054:2: ( rule__XRelationalExpression__Group_1_1_0__0 )
-            // InternalSignalDSL.g:7054:3: rule__XRelationalExpression__Group_1_1_0__0
+            // InternalSignalDSL.g:7317:2: ( rule__XRelationalExpression__Group_1_1_0__0 )
+            // InternalSignalDSL.g:7317:3: rule__XRelationalExpression__Group_1_1_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XRelationalExpression__Group_1_1_0__0();
@@ -24562,14 +25347,14 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group_1_1__1"
-    // InternalSignalDSL.g:7062:1: rule__XRelationalExpression__Group_1_1__1 : rule__XRelationalExpression__Group_1_1__1__Impl ;
+    // InternalSignalDSL.g:7325: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:7066:1: ( rule__XRelationalExpression__Group_1_1__1__Impl )
-            // InternalSignalDSL.g:7067:2: rule__XRelationalExpression__Group_1_1__1__Impl
+            // InternalSignalDSL.g:7329:1: ( rule__XRelationalExpression__Group_1_1__1__Impl )
+            // InternalSignalDSL.g:7330:2: rule__XRelationalExpression__Group_1_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XRelationalExpression__Group_1_1__1__Impl();
@@ -24595,23 +25380,23 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group_1_1__1__Impl"
-    // InternalSignalDSL.g:7073:1: rule__XRelationalExpression__Group_1_1__1__Impl : ( ( rule__XRelationalExpression__RightOperandAssignment_1_1_1 ) ) ;
+    // InternalSignalDSL.g:7336: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:7077:1: ( ( ( rule__XRelationalExpression__RightOperandAssignment_1_1_1 ) ) )
-            // InternalSignalDSL.g:7078:1: ( ( rule__XRelationalExpression__RightOperandAssignment_1_1_1 ) )
+            // InternalSignalDSL.g:7340:1: ( ( ( rule__XRelationalExpression__RightOperandAssignment_1_1_1 ) ) )
+            // InternalSignalDSL.g:7341:1: ( ( rule__XRelationalExpression__RightOperandAssignment_1_1_1 ) )
             {
-            // InternalSignalDSL.g:7078:1: ( ( rule__XRelationalExpression__RightOperandAssignment_1_1_1 ) )
-            // InternalSignalDSL.g:7079:2: ( rule__XRelationalExpression__RightOperandAssignment_1_1_1 )
+            // InternalSignalDSL.g:7341:1: ( ( rule__XRelationalExpression__RightOperandAssignment_1_1_1 ) )
+            // InternalSignalDSL.g:7342:2: ( rule__XRelationalExpression__RightOperandAssignment_1_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXRelationalExpressionAccess().getRightOperandAssignment_1_1_1()); 
             }
-            // InternalSignalDSL.g:7080:2: ( rule__XRelationalExpression__RightOperandAssignment_1_1_1 )
-            // InternalSignalDSL.g:7080:3: rule__XRelationalExpression__RightOperandAssignment_1_1_1
+            // InternalSignalDSL.g:7343:2: ( rule__XRelationalExpression__RightOperandAssignment_1_1_1 )
+            // InternalSignalDSL.g:7343:3: rule__XRelationalExpression__RightOperandAssignment_1_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XRelationalExpression__RightOperandAssignment_1_1_1();
@@ -24646,14 +25431,14 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group_1_1_0__0"
-    // InternalSignalDSL.g:7089:1: rule__XRelationalExpression__Group_1_1_0__0 : rule__XRelationalExpression__Group_1_1_0__0__Impl ;
+    // InternalSignalDSL.g:7352: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:7093:1: ( rule__XRelationalExpression__Group_1_1_0__0__Impl )
-            // InternalSignalDSL.g:7094:2: rule__XRelationalExpression__Group_1_1_0__0__Impl
+            // InternalSignalDSL.g:7356:1: ( rule__XRelationalExpression__Group_1_1_0__0__Impl )
+            // InternalSignalDSL.g:7357:2: rule__XRelationalExpression__Group_1_1_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XRelationalExpression__Group_1_1_0__0__Impl();
@@ -24679,23 +25464,23 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group_1_1_0__0__Impl"
-    // InternalSignalDSL.g:7100:1: rule__XRelationalExpression__Group_1_1_0__0__Impl : ( ( rule__XRelationalExpression__Group_1_1_0_0__0 ) ) ;
+    // InternalSignalDSL.g:7363: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:7104:1: ( ( ( rule__XRelationalExpression__Group_1_1_0_0__0 ) ) )
-            // InternalSignalDSL.g:7105:1: ( ( rule__XRelationalExpression__Group_1_1_0_0__0 ) )
+            // InternalSignalDSL.g:7367:1: ( ( ( rule__XRelationalExpression__Group_1_1_0_0__0 ) ) )
+            // InternalSignalDSL.g:7368:1: ( ( rule__XRelationalExpression__Group_1_1_0_0__0 ) )
             {
-            // InternalSignalDSL.g:7105:1: ( ( rule__XRelationalExpression__Group_1_1_0_0__0 ) )
-            // InternalSignalDSL.g:7106:2: ( rule__XRelationalExpression__Group_1_1_0_0__0 )
+            // InternalSignalDSL.g:7368:1: ( ( rule__XRelationalExpression__Group_1_1_0_0__0 ) )
+            // InternalSignalDSL.g:7369:2: ( rule__XRelationalExpression__Group_1_1_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXRelationalExpressionAccess().getGroup_1_1_0_0()); 
             }
-            // InternalSignalDSL.g:7107:2: ( rule__XRelationalExpression__Group_1_1_0_0__0 )
-            // InternalSignalDSL.g:7107:3: rule__XRelationalExpression__Group_1_1_0_0__0
+            // InternalSignalDSL.g:7370:2: ( rule__XRelationalExpression__Group_1_1_0_0__0 )
+            // InternalSignalDSL.g:7370:3: rule__XRelationalExpression__Group_1_1_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XRelationalExpression__Group_1_1_0_0__0();
@@ -24730,16 +25515,16 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group_1_1_0_0__0"
-    // InternalSignalDSL.g:7116: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:7379: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:7120:1: ( rule__XRelationalExpression__Group_1_1_0_0__0__Impl rule__XRelationalExpression__Group_1_1_0_0__1 )
-            // InternalSignalDSL.g:7121:2: rule__XRelationalExpression__Group_1_1_0_0__0__Impl rule__XRelationalExpression__Group_1_1_0_0__1
+            // InternalSignalDSL.g:7383:1: ( rule__XRelationalExpression__Group_1_1_0_0__0__Impl rule__XRelationalExpression__Group_1_1_0_0__1 )
+            // InternalSignalDSL.g:7384:2: rule__XRelationalExpression__Group_1_1_0_0__0__Impl rule__XRelationalExpression__Group_1_1_0_0__1
             {
-            pushFollow(FOLLOW_45);
+            pushFollow(FOLLOW_50);
             rule__XRelationalExpression__Group_1_1_0_0__0__Impl();
 
             state._fsp--;
@@ -24768,23 +25553,23 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group_1_1_0_0__0__Impl"
-    // InternalSignalDSL.g:7128:1: rule__XRelationalExpression__Group_1_1_0_0__0__Impl : ( () ) ;
+    // InternalSignalDSL.g:7391: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:7132:1: ( ( () ) )
-            // InternalSignalDSL.g:7133:1: ( () )
+            // InternalSignalDSL.g:7395:1: ( ( () ) )
+            // InternalSignalDSL.g:7396:1: ( () )
             {
-            // InternalSignalDSL.g:7133:1: ( () )
-            // InternalSignalDSL.g:7134:2: ()
+            // InternalSignalDSL.g:7396:1: ( () )
+            // InternalSignalDSL.g:7397:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXRelationalExpressionAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0()); 
             }
-            // InternalSignalDSL.g:7135:2: ()
-            // InternalSignalDSL.g:7135:3: 
+            // InternalSignalDSL.g:7398:2: ()
+            // InternalSignalDSL.g:7398:3: 
             {
             }
 
@@ -24809,14 +25594,14 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group_1_1_0_0__1"
-    // InternalSignalDSL.g:7143:1: rule__XRelationalExpression__Group_1_1_0_0__1 : rule__XRelationalExpression__Group_1_1_0_0__1__Impl ;
+    // InternalSignalDSL.g:7406: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:7147:1: ( rule__XRelationalExpression__Group_1_1_0_0__1__Impl )
-            // InternalSignalDSL.g:7148:2: rule__XRelationalExpression__Group_1_1_0_0__1__Impl
+            // InternalSignalDSL.g:7410:1: ( rule__XRelationalExpression__Group_1_1_0_0__1__Impl )
+            // InternalSignalDSL.g:7411:2: rule__XRelationalExpression__Group_1_1_0_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XRelationalExpression__Group_1_1_0_0__1__Impl();
@@ -24842,23 +25627,23 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group_1_1_0_0__1__Impl"
-    // InternalSignalDSL.g:7154:1: rule__XRelationalExpression__Group_1_1_0_0__1__Impl : ( ( rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1 ) ) ;
+    // InternalSignalDSL.g:7417: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:7158:1: ( ( ( rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1 ) ) )
-            // InternalSignalDSL.g:7159:1: ( ( rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1 ) )
+            // InternalSignalDSL.g:7421:1: ( ( ( rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1 ) ) )
+            // InternalSignalDSL.g:7422:1: ( ( rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1 ) )
             {
-            // InternalSignalDSL.g:7159:1: ( ( rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1 ) )
-            // InternalSignalDSL.g:7160:2: ( rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1 )
+            // InternalSignalDSL.g:7422:1: ( ( rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1 ) )
+            // InternalSignalDSL.g:7423:2: ( rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXRelationalExpressionAccess().getFeatureAssignment_1_1_0_0_1()); 
             }
-            // InternalSignalDSL.g:7161:2: ( rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1 )
-            // InternalSignalDSL.g:7161:3: rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1
+            // InternalSignalDSL.g:7424:2: ( rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1 )
+            // InternalSignalDSL.g:7424:3: rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1
             {
             pushFollow(FOLLOW_2);
             rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1();
@@ -24893,16 +25678,16 @@
 
 
     // $ANTLR start "rule__OpCompare__Group_1__0"
-    // InternalSignalDSL.g:7170:1: rule__OpCompare__Group_1__0 : rule__OpCompare__Group_1__0__Impl rule__OpCompare__Group_1__1 ;
+    // InternalSignalDSL.g:7433: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:7174:1: ( rule__OpCompare__Group_1__0__Impl rule__OpCompare__Group_1__1 )
-            // InternalSignalDSL.g:7175:2: rule__OpCompare__Group_1__0__Impl rule__OpCompare__Group_1__1
+            // InternalSignalDSL.g:7437:1: ( rule__OpCompare__Group_1__0__Impl rule__OpCompare__Group_1__1 )
+            // InternalSignalDSL.g:7438:2: rule__OpCompare__Group_1__0__Impl rule__OpCompare__Group_1__1
             {
-            pushFollow(FOLLOW_31);
+            pushFollow(FOLLOW_36);
             rule__OpCompare__Group_1__0__Impl();
 
             state._fsp--;
@@ -24931,17 +25716,17 @@
 
 
     // $ANTLR start "rule__OpCompare__Group_1__0__Impl"
-    // InternalSignalDSL.g:7182:1: rule__OpCompare__Group_1__0__Impl : ( '<' ) ;
+    // InternalSignalDSL.g:7445:1: rule__OpCompare__Group_1__0__Impl : ( '<' ) ;
     public final void rule__OpCompare__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:7186:1: ( ( '<' ) )
-            // InternalSignalDSL.g:7187:1: ( '<' )
+            // InternalSignalDSL.g:7449:1: ( ( '<' ) )
+            // InternalSignalDSL.g:7450:1: ( '<' )
             {
-            // InternalSignalDSL.g:7187:1: ( '<' )
-            // InternalSignalDSL.g:7188:2: '<'
+            // InternalSignalDSL.g:7450:1: ( '<' )
+            // InternalSignalDSL.g:7451:2: '<'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpCompareAccess().getLessThanSignKeyword_1_0()); 
@@ -24972,14 +25757,14 @@
 
 
     // $ANTLR start "rule__OpCompare__Group_1__1"
-    // InternalSignalDSL.g:7197:1: rule__OpCompare__Group_1__1 : rule__OpCompare__Group_1__1__Impl ;
+    // InternalSignalDSL.g:7460: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:7201:1: ( rule__OpCompare__Group_1__1__Impl )
-            // InternalSignalDSL.g:7202:2: rule__OpCompare__Group_1__1__Impl
+            // InternalSignalDSL.g:7464:1: ( rule__OpCompare__Group_1__1__Impl )
+            // InternalSignalDSL.g:7465:2: rule__OpCompare__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__OpCompare__Group_1__1__Impl();
@@ -25005,17 +25790,17 @@
 
 
     // $ANTLR start "rule__OpCompare__Group_1__1__Impl"
-    // InternalSignalDSL.g:7208:1: rule__OpCompare__Group_1__1__Impl : ( '=' ) ;
+    // InternalSignalDSL.g:7471:1: rule__OpCompare__Group_1__1__Impl : ( '=' ) ;
     public final void rule__OpCompare__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:7212:1: ( ( '=' ) )
-            // InternalSignalDSL.g:7213:1: ( '=' )
+            // InternalSignalDSL.g:7475:1: ( ( '=' ) )
+            // InternalSignalDSL.g:7476:1: ( '=' )
             {
-            // InternalSignalDSL.g:7213:1: ( '=' )
-            // InternalSignalDSL.g:7214:2: '='
+            // InternalSignalDSL.g:7476:1: ( '=' )
+            // InternalSignalDSL.g:7477:2: '='
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpCompareAccess().getEqualsSignKeyword_1_1()); 
@@ -25046,16 +25831,16 @@
 
 
     // $ANTLR start "rule__XOtherOperatorExpression__Group__0"
-    // InternalSignalDSL.g:7224:1: rule__XOtherOperatorExpression__Group__0 : rule__XOtherOperatorExpression__Group__0__Impl rule__XOtherOperatorExpression__Group__1 ;
+    // InternalSignalDSL.g:7487: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:7228:1: ( rule__XOtherOperatorExpression__Group__0__Impl rule__XOtherOperatorExpression__Group__1 )
-            // InternalSignalDSL.g:7229:2: rule__XOtherOperatorExpression__Group__0__Impl rule__XOtherOperatorExpression__Group__1
+            // InternalSignalDSL.g:7491:1: ( rule__XOtherOperatorExpression__Group__0__Impl rule__XOtherOperatorExpression__Group__1 )
+            // InternalSignalDSL.g:7492:2: rule__XOtherOperatorExpression__Group__0__Impl rule__XOtherOperatorExpression__Group__1
             {
-            pushFollow(FOLLOW_49);
+            pushFollow(FOLLOW_54);
             rule__XOtherOperatorExpression__Group__0__Impl();
 
             state._fsp--;
@@ -25084,17 +25869,17 @@
 
 
     // $ANTLR start "rule__XOtherOperatorExpression__Group__0__Impl"
-    // InternalSignalDSL.g:7236:1: rule__XOtherOperatorExpression__Group__0__Impl : ( ruleXAdditiveExpression ) ;
+    // InternalSignalDSL.g:7499:1: rule__XOtherOperatorExpression__Group__0__Impl : ( ruleXAdditiveExpression ) ;
     public final void rule__XOtherOperatorExpression__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:7240:1: ( ( ruleXAdditiveExpression ) )
-            // InternalSignalDSL.g:7241:1: ( ruleXAdditiveExpression )
+            // InternalSignalDSL.g:7503:1: ( ( ruleXAdditiveExpression ) )
+            // InternalSignalDSL.g:7504:1: ( ruleXAdditiveExpression )
             {
-            // InternalSignalDSL.g:7241:1: ( ruleXAdditiveExpression )
-            // InternalSignalDSL.g:7242:2: ruleXAdditiveExpression
+            // InternalSignalDSL.g:7504:1: ( ruleXAdditiveExpression )
+            // InternalSignalDSL.g:7505:2: ruleXAdditiveExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOtherOperatorExpressionAccess().getXAdditiveExpressionParserRuleCall_0()); 
@@ -25129,14 +25914,14 @@
 
 
     // $ANTLR start "rule__XOtherOperatorExpression__Group__1"
-    // InternalSignalDSL.g:7251:1: rule__XOtherOperatorExpression__Group__1 : rule__XOtherOperatorExpression__Group__1__Impl ;
+    // InternalSignalDSL.g:7514: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:7255:1: ( rule__XOtherOperatorExpression__Group__1__Impl )
-            // InternalSignalDSL.g:7256:2: rule__XOtherOperatorExpression__Group__1__Impl
+            // InternalSignalDSL.g:7518:1: ( rule__XOtherOperatorExpression__Group__1__Impl )
+            // InternalSignalDSL.g:7519:2: rule__XOtherOperatorExpression__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XOtherOperatorExpression__Group__1__Impl();
@@ -25162,31 +25947,31 @@
 
 
     // $ANTLR start "rule__XOtherOperatorExpression__Group__1__Impl"
-    // InternalSignalDSL.g:7262:1: rule__XOtherOperatorExpression__Group__1__Impl : ( ( rule__XOtherOperatorExpression__Group_1__0 )* ) ;
+    // InternalSignalDSL.g:7525: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:7266:1: ( ( ( rule__XOtherOperatorExpression__Group_1__0 )* ) )
-            // InternalSignalDSL.g:7267:1: ( ( rule__XOtherOperatorExpression__Group_1__0 )* )
+            // InternalSignalDSL.g:7529:1: ( ( ( rule__XOtherOperatorExpression__Group_1__0 )* ) )
+            // InternalSignalDSL.g:7530:1: ( ( rule__XOtherOperatorExpression__Group_1__0 )* )
             {
-            // InternalSignalDSL.g:7267:1: ( ( rule__XOtherOperatorExpression__Group_1__0 )* )
-            // InternalSignalDSL.g:7268:2: ( rule__XOtherOperatorExpression__Group_1__0 )*
+            // InternalSignalDSL.g:7530:1: ( ( rule__XOtherOperatorExpression__Group_1__0 )* )
+            // InternalSignalDSL.g:7531:2: ( rule__XOtherOperatorExpression__Group_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOtherOperatorExpressionAccess().getGroup_1()); 
             }
-            // InternalSignalDSL.g:7269:2: ( rule__XOtherOperatorExpression__Group_1__0 )*
-            loop71:
+            // InternalSignalDSL.g:7532:2: ( rule__XOtherOperatorExpression__Group_1__0 )*
+            loop74:
             do {
-                int alt71=2;
-                alt71 = dfa71.predict(input);
-                switch (alt71) {
+                int alt74=2;
+                alt74 = dfa74.predict(input);
+                switch (alt74) {
             	case 1 :
-            	    // InternalSignalDSL.g:7269:3: rule__XOtherOperatorExpression__Group_1__0
+            	    // InternalSignalDSL.g:7532:3: rule__XOtherOperatorExpression__Group_1__0
             	    {
-            	    pushFollow(FOLLOW_50);
+            	    pushFollow(FOLLOW_55);
             	    rule__XOtherOperatorExpression__Group_1__0();
 
             	    state._fsp--;
@@ -25196,7 +25981,7 @@
             	    break;
 
             	default :
-            	    break loop71;
+            	    break loop74;
                 }
             } while (true);
 
@@ -25225,16 +26010,16 @@
 
 
     // $ANTLR start "rule__XOtherOperatorExpression__Group_1__0"
-    // InternalSignalDSL.g:7278:1: rule__XOtherOperatorExpression__Group_1__0 : rule__XOtherOperatorExpression__Group_1__0__Impl rule__XOtherOperatorExpression__Group_1__1 ;
+    // InternalSignalDSL.g:7541: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:7282:1: ( rule__XOtherOperatorExpression__Group_1__0__Impl rule__XOtherOperatorExpression__Group_1__1 )
-            // InternalSignalDSL.g:7283:2: rule__XOtherOperatorExpression__Group_1__0__Impl rule__XOtherOperatorExpression__Group_1__1
+            // InternalSignalDSL.g:7545:1: ( rule__XOtherOperatorExpression__Group_1__0__Impl rule__XOtherOperatorExpression__Group_1__1 )
+            // InternalSignalDSL.g:7546:2: rule__XOtherOperatorExpression__Group_1__0__Impl rule__XOtherOperatorExpression__Group_1__1
             {
-            pushFollow(FOLLOW_30);
+            pushFollow(FOLLOW_35);
             rule__XOtherOperatorExpression__Group_1__0__Impl();
 
             state._fsp--;
@@ -25263,23 +26048,23 @@
 
 
     // $ANTLR start "rule__XOtherOperatorExpression__Group_1__0__Impl"
-    // InternalSignalDSL.g:7290:1: rule__XOtherOperatorExpression__Group_1__0__Impl : ( ( rule__XOtherOperatorExpression__Group_1_0__0 ) ) ;
+    // InternalSignalDSL.g:7553: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:7294:1: ( ( ( rule__XOtherOperatorExpression__Group_1_0__0 ) ) )
-            // InternalSignalDSL.g:7295:1: ( ( rule__XOtherOperatorExpression__Group_1_0__0 ) )
+            // InternalSignalDSL.g:7557:1: ( ( ( rule__XOtherOperatorExpression__Group_1_0__0 ) ) )
+            // InternalSignalDSL.g:7558:1: ( ( rule__XOtherOperatorExpression__Group_1_0__0 ) )
             {
-            // InternalSignalDSL.g:7295:1: ( ( rule__XOtherOperatorExpression__Group_1_0__0 ) )
-            // InternalSignalDSL.g:7296:2: ( rule__XOtherOperatorExpression__Group_1_0__0 )
+            // InternalSignalDSL.g:7558:1: ( ( rule__XOtherOperatorExpression__Group_1_0__0 ) )
+            // InternalSignalDSL.g:7559:2: ( rule__XOtherOperatorExpression__Group_1_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOtherOperatorExpressionAccess().getGroup_1_0()); 
             }
-            // InternalSignalDSL.g:7297:2: ( rule__XOtherOperatorExpression__Group_1_0__0 )
-            // InternalSignalDSL.g:7297:3: rule__XOtherOperatorExpression__Group_1_0__0
+            // InternalSignalDSL.g:7560:2: ( rule__XOtherOperatorExpression__Group_1_0__0 )
+            // InternalSignalDSL.g:7560:3: rule__XOtherOperatorExpression__Group_1_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XOtherOperatorExpression__Group_1_0__0();
@@ -25314,14 +26099,14 @@
 
 
     // $ANTLR start "rule__XOtherOperatorExpression__Group_1__1"
-    // InternalSignalDSL.g:7305:1: rule__XOtherOperatorExpression__Group_1__1 : rule__XOtherOperatorExpression__Group_1__1__Impl ;
+    // InternalSignalDSL.g:7568: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:7309:1: ( rule__XOtherOperatorExpression__Group_1__1__Impl )
-            // InternalSignalDSL.g:7310:2: rule__XOtherOperatorExpression__Group_1__1__Impl
+            // InternalSignalDSL.g:7572:1: ( rule__XOtherOperatorExpression__Group_1__1__Impl )
+            // InternalSignalDSL.g:7573:2: rule__XOtherOperatorExpression__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XOtherOperatorExpression__Group_1__1__Impl();
@@ -25347,23 +26132,23 @@
 
 
     // $ANTLR start "rule__XOtherOperatorExpression__Group_1__1__Impl"
-    // InternalSignalDSL.g:7316:1: rule__XOtherOperatorExpression__Group_1__1__Impl : ( ( rule__XOtherOperatorExpression__RightOperandAssignment_1_1 ) ) ;
+    // InternalSignalDSL.g:7579: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:7320:1: ( ( ( rule__XOtherOperatorExpression__RightOperandAssignment_1_1 ) ) )
-            // InternalSignalDSL.g:7321:1: ( ( rule__XOtherOperatorExpression__RightOperandAssignment_1_1 ) )
+            // InternalSignalDSL.g:7583:1: ( ( ( rule__XOtherOperatorExpression__RightOperandAssignment_1_1 ) ) )
+            // InternalSignalDSL.g:7584:1: ( ( rule__XOtherOperatorExpression__RightOperandAssignment_1_1 ) )
             {
-            // InternalSignalDSL.g:7321:1: ( ( rule__XOtherOperatorExpression__RightOperandAssignment_1_1 ) )
-            // InternalSignalDSL.g:7322:2: ( rule__XOtherOperatorExpression__RightOperandAssignment_1_1 )
+            // InternalSignalDSL.g:7584:1: ( ( rule__XOtherOperatorExpression__RightOperandAssignment_1_1 ) )
+            // InternalSignalDSL.g:7585:2: ( rule__XOtherOperatorExpression__RightOperandAssignment_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOtherOperatorExpressionAccess().getRightOperandAssignment_1_1()); 
             }
-            // InternalSignalDSL.g:7323:2: ( rule__XOtherOperatorExpression__RightOperandAssignment_1_1 )
-            // InternalSignalDSL.g:7323:3: rule__XOtherOperatorExpression__RightOperandAssignment_1_1
+            // InternalSignalDSL.g:7586:2: ( rule__XOtherOperatorExpression__RightOperandAssignment_1_1 )
+            // InternalSignalDSL.g:7586:3: rule__XOtherOperatorExpression__RightOperandAssignment_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XOtherOperatorExpression__RightOperandAssignment_1_1();
@@ -25398,14 +26183,14 @@
 
 
     // $ANTLR start "rule__XOtherOperatorExpression__Group_1_0__0"
-    // InternalSignalDSL.g:7332:1: rule__XOtherOperatorExpression__Group_1_0__0 : rule__XOtherOperatorExpression__Group_1_0__0__Impl ;
+    // InternalSignalDSL.g:7595: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:7336:1: ( rule__XOtherOperatorExpression__Group_1_0__0__Impl )
-            // InternalSignalDSL.g:7337:2: rule__XOtherOperatorExpression__Group_1_0__0__Impl
+            // InternalSignalDSL.g:7599:1: ( rule__XOtherOperatorExpression__Group_1_0__0__Impl )
+            // InternalSignalDSL.g:7600:2: rule__XOtherOperatorExpression__Group_1_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XOtherOperatorExpression__Group_1_0__0__Impl();
@@ -25431,23 +26216,23 @@
 
 
     // $ANTLR start "rule__XOtherOperatorExpression__Group_1_0__0__Impl"
-    // InternalSignalDSL.g:7343:1: rule__XOtherOperatorExpression__Group_1_0__0__Impl : ( ( rule__XOtherOperatorExpression__Group_1_0_0__0 ) ) ;
+    // InternalSignalDSL.g:7606: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:7347:1: ( ( ( rule__XOtherOperatorExpression__Group_1_0_0__0 ) ) )
-            // InternalSignalDSL.g:7348:1: ( ( rule__XOtherOperatorExpression__Group_1_0_0__0 ) )
+            // InternalSignalDSL.g:7610:1: ( ( ( rule__XOtherOperatorExpression__Group_1_0_0__0 ) ) )
+            // InternalSignalDSL.g:7611:1: ( ( rule__XOtherOperatorExpression__Group_1_0_0__0 ) )
             {
-            // InternalSignalDSL.g:7348:1: ( ( rule__XOtherOperatorExpression__Group_1_0_0__0 ) )
-            // InternalSignalDSL.g:7349:2: ( rule__XOtherOperatorExpression__Group_1_0_0__0 )
+            // InternalSignalDSL.g:7611:1: ( ( rule__XOtherOperatorExpression__Group_1_0_0__0 ) )
+            // InternalSignalDSL.g:7612:2: ( rule__XOtherOperatorExpression__Group_1_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOtherOperatorExpressionAccess().getGroup_1_0_0()); 
             }
-            // InternalSignalDSL.g:7350:2: ( rule__XOtherOperatorExpression__Group_1_0_0__0 )
-            // InternalSignalDSL.g:7350:3: rule__XOtherOperatorExpression__Group_1_0_0__0
+            // InternalSignalDSL.g:7613:2: ( rule__XOtherOperatorExpression__Group_1_0_0__0 )
+            // InternalSignalDSL.g:7613:3: rule__XOtherOperatorExpression__Group_1_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XOtherOperatorExpression__Group_1_0_0__0();
@@ -25482,16 +26267,16 @@
 
 
     // $ANTLR start "rule__XOtherOperatorExpression__Group_1_0_0__0"
-    // InternalSignalDSL.g:7359: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:7622: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:7363:1: ( rule__XOtherOperatorExpression__Group_1_0_0__0__Impl rule__XOtherOperatorExpression__Group_1_0_0__1 )
-            // InternalSignalDSL.g:7364:2: rule__XOtherOperatorExpression__Group_1_0_0__0__Impl rule__XOtherOperatorExpression__Group_1_0_0__1
+            // InternalSignalDSL.g:7626:1: ( rule__XOtherOperatorExpression__Group_1_0_0__0__Impl rule__XOtherOperatorExpression__Group_1_0_0__1 )
+            // InternalSignalDSL.g:7627:2: rule__XOtherOperatorExpression__Group_1_0_0__0__Impl rule__XOtherOperatorExpression__Group_1_0_0__1
             {
-            pushFollow(FOLLOW_49);
+            pushFollow(FOLLOW_54);
             rule__XOtherOperatorExpression__Group_1_0_0__0__Impl();
 
             state._fsp--;
@@ -25520,23 +26305,23 @@
 
 
     // $ANTLR start "rule__XOtherOperatorExpression__Group_1_0_0__0__Impl"
-    // InternalSignalDSL.g:7371:1: rule__XOtherOperatorExpression__Group_1_0_0__0__Impl : ( () ) ;
+    // InternalSignalDSL.g:7634: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:7375:1: ( ( () ) )
-            // InternalSignalDSL.g:7376:1: ( () )
+            // InternalSignalDSL.g:7638:1: ( ( () ) )
+            // InternalSignalDSL.g:7639:1: ( () )
             {
-            // InternalSignalDSL.g:7376:1: ( () )
-            // InternalSignalDSL.g:7377:2: ()
+            // InternalSignalDSL.g:7639:1: ( () )
+            // InternalSignalDSL.g:7640:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOtherOperatorExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()); 
             }
-            // InternalSignalDSL.g:7378:2: ()
-            // InternalSignalDSL.g:7378:3: 
+            // InternalSignalDSL.g:7641:2: ()
+            // InternalSignalDSL.g:7641:3: 
             {
             }
 
@@ -25561,14 +26346,14 @@
 
 
     // $ANTLR start "rule__XOtherOperatorExpression__Group_1_0_0__1"
-    // InternalSignalDSL.g:7386:1: rule__XOtherOperatorExpression__Group_1_0_0__1 : rule__XOtherOperatorExpression__Group_1_0_0__1__Impl ;
+    // InternalSignalDSL.g:7649: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:7390:1: ( rule__XOtherOperatorExpression__Group_1_0_0__1__Impl )
-            // InternalSignalDSL.g:7391:2: rule__XOtherOperatorExpression__Group_1_0_0__1__Impl
+            // InternalSignalDSL.g:7653:1: ( rule__XOtherOperatorExpression__Group_1_0_0__1__Impl )
+            // InternalSignalDSL.g:7654:2: rule__XOtherOperatorExpression__Group_1_0_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XOtherOperatorExpression__Group_1_0_0__1__Impl();
@@ -25594,23 +26379,23 @@
 
 
     // $ANTLR start "rule__XOtherOperatorExpression__Group_1_0_0__1__Impl"
-    // InternalSignalDSL.g:7397:1: rule__XOtherOperatorExpression__Group_1_0_0__1__Impl : ( ( rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1 ) ) ;
+    // InternalSignalDSL.g:7660: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:7401:1: ( ( ( rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1 ) ) )
-            // InternalSignalDSL.g:7402:1: ( ( rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1 ) )
+            // InternalSignalDSL.g:7664:1: ( ( ( rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1 ) ) )
+            // InternalSignalDSL.g:7665:1: ( ( rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1 ) )
             {
-            // InternalSignalDSL.g:7402:1: ( ( rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1 ) )
-            // InternalSignalDSL.g:7403:2: ( rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1 )
+            // InternalSignalDSL.g:7665:1: ( ( rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1 ) )
+            // InternalSignalDSL.g:7666:2: ( rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOtherOperatorExpressionAccess().getFeatureAssignment_1_0_0_1()); 
             }
-            // InternalSignalDSL.g:7404:2: ( rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1 )
-            // InternalSignalDSL.g:7404:3: rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1
+            // InternalSignalDSL.g:7667:2: ( rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1 )
+            // InternalSignalDSL.g:7667:3: rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1
             {
             pushFollow(FOLLOW_2);
             rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1();
@@ -25645,16 +26430,16 @@
 
 
     // $ANTLR start "rule__OpOther__Group_2__0"
-    // InternalSignalDSL.g:7413:1: rule__OpOther__Group_2__0 : rule__OpOther__Group_2__0__Impl rule__OpOther__Group_2__1 ;
+    // InternalSignalDSL.g:7676: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:7417:1: ( rule__OpOther__Group_2__0__Impl rule__OpOther__Group_2__1 )
-            // InternalSignalDSL.g:7418:2: rule__OpOther__Group_2__0__Impl rule__OpOther__Group_2__1
+            // InternalSignalDSL.g:7680:1: ( rule__OpOther__Group_2__0__Impl rule__OpOther__Group_2__1 )
+            // InternalSignalDSL.g:7681:2: rule__OpOther__Group_2__0__Impl rule__OpOther__Group_2__1
             {
-            pushFollow(FOLLOW_51);
+            pushFollow(FOLLOW_56);
             rule__OpOther__Group_2__0__Impl();
 
             state._fsp--;
@@ -25683,17 +26468,17 @@
 
 
     // $ANTLR start "rule__OpOther__Group_2__0__Impl"
-    // InternalSignalDSL.g:7425:1: rule__OpOther__Group_2__0__Impl : ( '>' ) ;
+    // InternalSignalDSL.g:7688:1: rule__OpOther__Group_2__0__Impl : ( '>' ) ;
     public final void rule__OpOther__Group_2__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:7429:1: ( ( '>' ) )
-            // InternalSignalDSL.g:7430:1: ( '>' )
+            // InternalSignalDSL.g:7692:1: ( ( '>' ) )
+            // InternalSignalDSL.g:7693:1: ( '>' )
             {
-            // InternalSignalDSL.g:7430:1: ( '>' )
-            // InternalSignalDSL.g:7431:2: '>'
+            // InternalSignalDSL.g:7693:1: ( '>' )
+            // InternalSignalDSL.g:7694:2: '>'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_2_0()); 
@@ -25724,14 +26509,14 @@
 
 
     // $ANTLR start "rule__OpOther__Group_2__1"
-    // InternalSignalDSL.g:7440:1: rule__OpOther__Group_2__1 : rule__OpOther__Group_2__1__Impl ;
+    // InternalSignalDSL.g:7703: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:7444:1: ( rule__OpOther__Group_2__1__Impl )
-            // InternalSignalDSL.g:7445:2: rule__OpOther__Group_2__1__Impl
+            // InternalSignalDSL.g:7707:1: ( rule__OpOther__Group_2__1__Impl )
+            // InternalSignalDSL.g:7708:2: rule__OpOther__Group_2__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__OpOther__Group_2__1__Impl();
@@ -25757,17 +26542,17 @@
 
 
     // $ANTLR start "rule__OpOther__Group_2__1__Impl"
-    // InternalSignalDSL.g:7451:1: rule__OpOther__Group_2__1__Impl : ( '..' ) ;
+    // InternalSignalDSL.g:7714:1: rule__OpOther__Group_2__1__Impl : ( '..' ) ;
     public final void rule__OpOther__Group_2__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:7455:1: ( ( '..' ) )
-            // InternalSignalDSL.g:7456:1: ( '..' )
+            // InternalSignalDSL.g:7718:1: ( ( '..' ) )
+            // InternalSignalDSL.g:7719:1: ( '..' )
             {
-            // InternalSignalDSL.g:7456:1: ( '..' )
-            // InternalSignalDSL.g:7457:2: '..'
+            // InternalSignalDSL.g:7719:1: ( '..' )
+            // InternalSignalDSL.g:7720:2: '..'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpOtherAccess().getFullStopFullStopKeyword_2_1()); 
@@ -25798,16 +26583,16 @@
 
 
     // $ANTLR start "rule__OpOther__Group_5__0"
-    // InternalSignalDSL.g:7467:1: rule__OpOther__Group_5__0 : rule__OpOther__Group_5__0__Impl rule__OpOther__Group_5__1 ;
+    // InternalSignalDSL.g:7730: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:7471:1: ( rule__OpOther__Group_5__0__Impl rule__OpOther__Group_5__1 )
-            // InternalSignalDSL.g:7472:2: rule__OpOther__Group_5__0__Impl rule__OpOther__Group_5__1
+            // InternalSignalDSL.g:7734:1: ( rule__OpOther__Group_5__0__Impl rule__OpOther__Group_5__1 )
+            // InternalSignalDSL.g:7735:2: rule__OpOther__Group_5__0__Impl rule__OpOther__Group_5__1
             {
-            pushFollow(FOLLOW_52);
+            pushFollow(FOLLOW_57);
             rule__OpOther__Group_5__0__Impl();
 
             state._fsp--;
@@ -25836,17 +26621,17 @@
 
 
     // $ANTLR start "rule__OpOther__Group_5__0__Impl"
-    // InternalSignalDSL.g:7479:1: rule__OpOther__Group_5__0__Impl : ( '>' ) ;
+    // InternalSignalDSL.g:7742:1: rule__OpOther__Group_5__0__Impl : ( '>' ) ;
     public final void rule__OpOther__Group_5__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:7483:1: ( ( '>' ) )
-            // InternalSignalDSL.g:7484:1: ( '>' )
+            // InternalSignalDSL.g:7746:1: ( ( '>' ) )
+            // InternalSignalDSL.g:7747:1: ( '>' )
             {
-            // InternalSignalDSL.g:7484:1: ( '>' )
-            // InternalSignalDSL.g:7485:2: '>'
+            // InternalSignalDSL.g:7747:1: ( '>' )
+            // InternalSignalDSL.g:7748:2: '>'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_0()); 
@@ -25877,14 +26662,14 @@
 
 
     // $ANTLR start "rule__OpOther__Group_5__1"
-    // InternalSignalDSL.g:7494:1: rule__OpOther__Group_5__1 : rule__OpOther__Group_5__1__Impl ;
+    // InternalSignalDSL.g:7757: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:7498:1: ( rule__OpOther__Group_5__1__Impl )
-            // InternalSignalDSL.g:7499:2: rule__OpOther__Group_5__1__Impl
+            // InternalSignalDSL.g:7761:1: ( rule__OpOther__Group_5__1__Impl )
+            // InternalSignalDSL.g:7762:2: rule__OpOther__Group_5__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__OpOther__Group_5__1__Impl();
@@ -25910,23 +26695,23 @@
 
 
     // $ANTLR start "rule__OpOther__Group_5__1__Impl"
-    // InternalSignalDSL.g:7505:1: rule__OpOther__Group_5__1__Impl : ( ( rule__OpOther__Alternatives_5_1 ) ) ;
+    // InternalSignalDSL.g:7768: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:7509:1: ( ( ( rule__OpOther__Alternatives_5_1 ) ) )
-            // InternalSignalDSL.g:7510:1: ( ( rule__OpOther__Alternatives_5_1 ) )
+            // InternalSignalDSL.g:7772:1: ( ( ( rule__OpOther__Alternatives_5_1 ) ) )
+            // InternalSignalDSL.g:7773:1: ( ( rule__OpOther__Alternatives_5_1 ) )
             {
-            // InternalSignalDSL.g:7510:1: ( ( rule__OpOther__Alternatives_5_1 ) )
-            // InternalSignalDSL.g:7511:2: ( rule__OpOther__Alternatives_5_1 )
+            // InternalSignalDSL.g:7773:1: ( ( rule__OpOther__Alternatives_5_1 ) )
+            // InternalSignalDSL.g:7774:2: ( rule__OpOther__Alternatives_5_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpOtherAccess().getAlternatives_5_1()); 
             }
-            // InternalSignalDSL.g:7512:2: ( rule__OpOther__Alternatives_5_1 )
-            // InternalSignalDSL.g:7512:3: rule__OpOther__Alternatives_5_1
+            // InternalSignalDSL.g:7775:2: ( rule__OpOther__Alternatives_5_1 )
+            // InternalSignalDSL.g:7775:3: rule__OpOther__Alternatives_5_1
             {
             pushFollow(FOLLOW_2);
             rule__OpOther__Alternatives_5_1();
@@ -25961,14 +26746,14 @@
 
 
     // $ANTLR start "rule__OpOther__Group_5_1_0__0"
-    // InternalSignalDSL.g:7521:1: rule__OpOther__Group_5_1_0__0 : rule__OpOther__Group_5_1_0__0__Impl ;
+    // InternalSignalDSL.g:7784: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:7525:1: ( rule__OpOther__Group_5_1_0__0__Impl )
-            // InternalSignalDSL.g:7526:2: rule__OpOther__Group_5_1_0__0__Impl
+            // InternalSignalDSL.g:7788:1: ( rule__OpOther__Group_5_1_0__0__Impl )
+            // InternalSignalDSL.g:7789:2: rule__OpOther__Group_5_1_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__OpOther__Group_5_1_0__0__Impl();
@@ -25994,23 +26779,23 @@
 
 
     // $ANTLR start "rule__OpOther__Group_5_1_0__0__Impl"
-    // InternalSignalDSL.g:7532:1: rule__OpOther__Group_5_1_0__0__Impl : ( ( rule__OpOther__Group_5_1_0_0__0 ) ) ;
+    // InternalSignalDSL.g:7795: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:7536:1: ( ( ( rule__OpOther__Group_5_1_0_0__0 ) ) )
-            // InternalSignalDSL.g:7537:1: ( ( rule__OpOther__Group_5_1_0_0__0 ) )
+            // InternalSignalDSL.g:7799:1: ( ( ( rule__OpOther__Group_5_1_0_0__0 ) ) )
+            // InternalSignalDSL.g:7800:1: ( ( rule__OpOther__Group_5_1_0_0__0 ) )
             {
-            // InternalSignalDSL.g:7537:1: ( ( rule__OpOther__Group_5_1_0_0__0 ) )
-            // InternalSignalDSL.g:7538:2: ( rule__OpOther__Group_5_1_0_0__0 )
+            // InternalSignalDSL.g:7800:1: ( ( rule__OpOther__Group_5_1_0_0__0 ) )
+            // InternalSignalDSL.g:7801:2: ( rule__OpOther__Group_5_1_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpOtherAccess().getGroup_5_1_0_0()); 
             }
-            // InternalSignalDSL.g:7539:2: ( rule__OpOther__Group_5_1_0_0__0 )
-            // InternalSignalDSL.g:7539:3: rule__OpOther__Group_5_1_0_0__0
+            // InternalSignalDSL.g:7802:2: ( rule__OpOther__Group_5_1_0_0__0 )
+            // InternalSignalDSL.g:7802:3: rule__OpOther__Group_5_1_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__OpOther__Group_5_1_0_0__0();
@@ -26045,16 +26830,16 @@
 
 
     // $ANTLR start "rule__OpOther__Group_5_1_0_0__0"
-    // InternalSignalDSL.g:7548: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:7811: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:7552:1: ( rule__OpOther__Group_5_1_0_0__0__Impl rule__OpOther__Group_5_1_0_0__1 )
-            // InternalSignalDSL.g:7553:2: rule__OpOther__Group_5_1_0_0__0__Impl rule__OpOther__Group_5_1_0_0__1
+            // InternalSignalDSL.g:7815:1: ( rule__OpOther__Group_5_1_0_0__0__Impl rule__OpOther__Group_5_1_0_0__1 )
+            // InternalSignalDSL.g:7816:2: rule__OpOther__Group_5_1_0_0__0__Impl rule__OpOther__Group_5_1_0_0__1
             {
-            pushFollow(FOLLOW_52);
+            pushFollow(FOLLOW_57);
             rule__OpOther__Group_5_1_0_0__0__Impl();
 
             state._fsp--;
@@ -26083,17 +26868,17 @@
 
 
     // $ANTLR start "rule__OpOther__Group_5_1_0_0__0__Impl"
-    // InternalSignalDSL.g:7560:1: rule__OpOther__Group_5_1_0_0__0__Impl : ( '>' ) ;
+    // InternalSignalDSL.g:7823: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:7564:1: ( ( '>' ) )
-            // InternalSignalDSL.g:7565:1: ( '>' )
+            // InternalSignalDSL.g:7827:1: ( ( '>' ) )
+            // InternalSignalDSL.g:7828:1: ( '>' )
             {
-            // InternalSignalDSL.g:7565:1: ( '>' )
-            // InternalSignalDSL.g:7566:2: '>'
+            // InternalSignalDSL.g:7828:1: ( '>' )
+            // InternalSignalDSL.g:7829:2: '>'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_1_0_0_0()); 
@@ -26124,14 +26909,14 @@
 
 
     // $ANTLR start "rule__OpOther__Group_5_1_0_0__1"
-    // InternalSignalDSL.g:7575:1: rule__OpOther__Group_5_1_0_0__1 : rule__OpOther__Group_5_1_0_0__1__Impl ;
+    // InternalSignalDSL.g:7838: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:7579:1: ( rule__OpOther__Group_5_1_0_0__1__Impl )
-            // InternalSignalDSL.g:7580:2: rule__OpOther__Group_5_1_0_0__1__Impl
+            // InternalSignalDSL.g:7842:1: ( rule__OpOther__Group_5_1_0_0__1__Impl )
+            // InternalSignalDSL.g:7843:2: rule__OpOther__Group_5_1_0_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__OpOther__Group_5_1_0_0__1__Impl();
@@ -26157,17 +26942,17 @@
 
 
     // $ANTLR start "rule__OpOther__Group_5_1_0_0__1__Impl"
-    // InternalSignalDSL.g:7586:1: rule__OpOther__Group_5_1_0_0__1__Impl : ( '>' ) ;
+    // InternalSignalDSL.g:7849: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:7590:1: ( ( '>' ) )
-            // InternalSignalDSL.g:7591:1: ( '>' )
+            // InternalSignalDSL.g:7853:1: ( ( '>' ) )
+            // InternalSignalDSL.g:7854:1: ( '>' )
             {
-            // InternalSignalDSL.g:7591:1: ( '>' )
-            // InternalSignalDSL.g:7592:2: '>'
+            // InternalSignalDSL.g:7854:1: ( '>' )
+            // InternalSignalDSL.g:7855:2: '>'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_1_0_0_1()); 
@@ -26198,16 +26983,16 @@
 
 
     // $ANTLR start "rule__OpOther__Group_6__0"
-    // InternalSignalDSL.g:7602:1: rule__OpOther__Group_6__0 : rule__OpOther__Group_6__0__Impl rule__OpOther__Group_6__1 ;
+    // InternalSignalDSL.g:7865: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:7606:1: ( rule__OpOther__Group_6__0__Impl rule__OpOther__Group_6__1 )
-            // InternalSignalDSL.g:7607:2: rule__OpOther__Group_6__0__Impl rule__OpOther__Group_6__1
+            // InternalSignalDSL.g:7869:1: ( rule__OpOther__Group_6__0__Impl rule__OpOther__Group_6__1 )
+            // InternalSignalDSL.g:7870:2: rule__OpOther__Group_6__0__Impl rule__OpOther__Group_6__1
             {
-            pushFollow(FOLLOW_53);
+            pushFollow(FOLLOW_58);
             rule__OpOther__Group_6__0__Impl();
 
             state._fsp--;
@@ -26236,17 +27021,17 @@
 
 
     // $ANTLR start "rule__OpOther__Group_6__0__Impl"
-    // InternalSignalDSL.g:7614:1: rule__OpOther__Group_6__0__Impl : ( '<' ) ;
+    // InternalSignalDSL.g:7877:1: rule__OpOther__Group_6__0__Impl : ( '<' ) ;
     public final void rule__OpOther__Group_6__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:7618:1: ( ( '<' ) )
-            // InternalSignalDSL.g:7619:1: ( '<' )
+            // InternalSignalDSL.g:7881:1: ( ( '<' ) )
+            // InternalSignalDSL.g:7882:1: ( '<' )
             {
-            // InternalSignalDSL.g:7619:1: ( '<' )
-            // InternalSignalDSL.g:7620:2: '<'
+            // InternalSignalDSL.g:7882:1: ( '<' )
+            // InternalSignalDSL.g:7883:2: '<'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_0()); 
@@ -26277,14 +27062,14 @@
 
 
     // $ANTLR start "rule__OpOther__Group_6__1"
-    // InternalSignalDSL.g:7629:1: rule__OpOther__Group_6__1 : rule__OpOther__Group_6__1__Impl ;
+    // InternalSignalDSL.g:7892: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:7633:1: ( rule__OpOther__Group_6__1__Impl )
-            // InternalSignalDSL.g:7634:2: rule__OpOther__Group_6__1__Impl
+            // InternalSignalDSL.g:7896:1: ( rule__OpOther__Group_6__1__Impl )
+            // InternalSignalDSL.g:7897:2: rule__OpOther__Group_6__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__OpOther__Group_6__1__Impl();
@@ -26310,23 +27095,23 @@
 
 
     // $ANTLR start "rule__OpOther__Group_6__1__Impl"
-    // InternalSignalDSL.g:7640:1: rule__OpOther__Group_6__1__Impl : ( ( rule__OpOther__Alternatives_6_1 ) ) ;
+    // InternalSignalDSL.g:7903: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:7644:1: ( ( ( rule__OpOther__Alternatives_6_1 ) ) )
-            // InternalSignalDSL.g:7645:1: ( ( rule__OpOther__Alternatives_6_1 ) )
+            // InternalSignalDSL.g:7907:1: ( ( ( rule__OpOther__Alternatives_6_1 ) ) )
+            // InternalSignalDSL.g:7908:1: ( ( rule__OpOther__Alternatives_6_1 ) )
             {
-            // InternalSignalDSL.g:7645:1: ( ( rule__OpOther__Alternatives_6_1 ) )
-            // InternalSignalDSL.g:7646:2: ( rule__OpOther__Alternatives_6_1 )
+            // InternalSignalDSL.g:7908:1: ( ( rule__OpOther__Alternatives_6_1 ) )
+            // InternalSignalDSL.g:7909:2: ( rule__OpOther__Alternatives_6_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpOtherAccess().getAlternatives_6_1()); 
             }
-            // InternalSignalDSL.g:7647:2: ( rule__OpOther__Alternatives_6_1 )
-            // InternalSignalDSL.g:7647:3: rule__OpOther__Alternatives_6_1
+            // InternalSignalDSL.g:7910:2: ( rule__OpOther__Alternatives_6_1 )
+            // InternalSignalDSL.g:7910:3: rule__OpOther__Alternatives_6_1
             {
             pushFollow(FOLLOW_2);
             rule__OpOther__Alternatives_6_1();
@@ -26361,14 +27146,14 @@
 
 
     // $ANTLR start "rule__OpOther__Group_6_1_0__0"
-    // InternalSignalDSL.g:7656:1: rule__OpOther__Group_6_1_0__0 : rule__OpOther__Group_6_1_0__0__Impl ;
+    // InternalSignalDSL.g:7919: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:7660:1: ( rule__OpOther__Group_6_1_0__0__Impl )
-            // InternalSignalDSL.g:7661:2: rule__OpOther__Group_6_1_0__0__Impl
+            // InternalSignalDSL.g:7923:1: ( rule__OpOther__Group_6_1_0__0__Impl )
+            // InternalSignalDSL.g:7924:2: rule__OpOther__Group_6_1_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__OpOther__Group_6_1_0__0__Impl();
@@ -26394,23 +27179,23 @@
 
 
     // $ANTLR start "rule__OpOther__Group_6_1_0__0__Impl"
-    // InternalSignalDSL.g:7667:1: rule__OpOther__Group_6_1_0__0__Impl : ( ( rule__OpOther__Group_6_1_0_0__0 ) ) ;
+    // InternalSignalDSL.g:7930: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:7671:1: ( ( ( rule__OpOther__Group_6_1_0_0__0 ) ) )
-            // InternalSignalDSL.g:7672:1: ( ( rule__OpOther__Group_6_1_0_0__0 ) )
+            // InternalSignalDSL.g:7934:1: ( ( ( rule__OpOther__Group_6_1_0_0__0 ) ) )
+            // InternalSignalDSL.g:7935:1: ( ( rule__OpOther__Group_6_1_0_0__0 ) )
             {
-            // InternalSignalDSL.g:7672:1: ( ( rule__OpOther__Group_6_1_0_0__0 ) )
-            // InternalSignalDSL.g:7673:2: ( rule__OpOther__Group_6_1_0_0__0 )
+            // InternalSignalDSL.g:7935:1: ( ( rule__OpOther__Group_6_1_0_0__0 ) )
+            // InternalSignalDSL.g:7936:2: ( rule__OpOther__Group_6_1_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpOtherAccess().getGroup_6_1_0_0()); 
             }
-            // InternalSignalDSL.g:7674:2: ( rule__OpOther__Group_6_1_0_0__0 )
-            // InternalSignalDSL.g:7674:3: rule__OpOther__Group_6_1_0_0__0
+            // InternalSignalDSL.g:7937:2: ( rule__OpOther__Group_6_1_0_0__0 )
+            // InternalSignalDSL.g:7937:3: rule__OpOther__Group_6_1_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__OpOther__Group_6_1_0_0__0();
@@ -26445,16 +27230,16 @@
 
 
     // $ANTLR start "rule__OpOther__Group_6_1_0_0__0"
-    // InternalSignalDSL.g:7683: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:7946: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:7687:1: ( rule__OpOther__Group_6_1_0_0__0__Impl rule__OpOther__Group_6_1_0_0__1 )
-            // InternalSignalDSL.g:7688:2: rule__OpOther__Group_6_1_0_0__0__Impl rule__OpOther__Group_6_1_0_0__1
+            // InternalSignalDSL.g:7950:1: ( rule__OpOther__Group_6_1_0_0__0__Impl rule__OpOther__Group_6_1_0_0__1 )
+            // InternalSignalDSL.g:7951:2: rule__OpOther__Group_6_1_0_0__0__Impl rule__OpOther__Group_6_1_0_0__1
             {
-            pushFollow(FOLLOW_37);
+            pushFollow(FOLLOW_42);
             rule__OpOther__Group_6_1_0_0__0__Impl();
 
             state._fsp--;
@@ -26483,17 +27268,17 @@
 
 
     // $ANTLR start "rule__OpOther__Group_6_1_0_0__0__Impl"
-    // InternalSignalDSL.g:7695:1: rule__OpOther__Group_6_1_0_0__0__Impl : ( '<' ) ;
+    // InternalSignalDSL.g:7958: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:7699:1: ( ( '<' ) )
-            // InternalSignalDSL.g:7700:1: ( '<' )
+            // InternalSignalDSL.g:7962:1: ( ( '<' ) )
+            // InternalSignalDSL.g:7963:1: ( '<' )
             {
-            // InternalSignalDSL.g:7700:1: ( '<' )
-            // InternalSignalDSL.g:7701:2: '<'
+            // InternalSignalDSL.g:7963:1: ( '<' )
+            // InternalSignalDSL.g:7964:2: '<'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_1_0_0_0()); 
@@ -26524,14 +27309,14 @@
 
 
     // $ANTLR start "rule__OpOther__Group_6_1_0_0__1"
-    // InternalSignalDSL.g:7710:1: rule__OpOther__Group_6_1_0_0__1 : rule__OpOther__Group_6_1_0_0__1__Impl ;
+    // InternalSignalDSL.g:7973: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:7714:1: ( rule__OpOther__Group_6_1_0_0__1__Impl )
-            // InternalSignalDSL.g:7715:2: rule__OpOther__Group_6_1_0_0__1__Impl
+            // InternalSignalDSL.g:7977:1: ( rule__OpOther__Group_6_1_0_0__1__Impl )
+            // InternalSignalDSL.g:7978:2: rule__OpOther__Group_6_1_0_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__OpOther__Group_6_1_0_0__1__Impl();
@@ -26557,17 +27342,17 @@
 
 
     // $ANTLR start "rule__OpOther__Group_6_1_0_0__1__Impl"
-    // InternalSignalDSL.g:7721:1: rule__OpOther__Group_6_1_0_0__1__Impl : ( '<' ) ;
+    // InternalSignalDSL.g:7984: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:7725:1: ( ( '<' ) )
-            // InternalSignalDSL.g:7726:1: ( '<' )
+            // InternalSignalDSL.g:7988:1: ( ( '<' ) )
+            // InternalSignalDSL.g:7989:1: ( '<' )
             {
-            // InternalSignalDSL.g:7726:1: ( '<' )
-            // InternalSignalDSL.g:7727:2: '<'
+            // InternalSignalDSL.g:7989:1: ( '<' )
+            // InternalSignalDSL.g:7990:2: '<'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_1_0_0_1()); 
@@ -26598,16 +27383,16 @@
 
 
     // $ANTLR start "rule__XAdditiveExpression__Group__0"
-    // InternalSignalDSL.g:7737:1: rule__XAdditiveExpression__Group__0 : rule__XAdditiveExpression__Group__0__Impl rule__XAdditiveExpression__Group__1 ;
+    // InternalSignalDSL.g:8000: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:7741:1: ( rule__XAdditiveExpression__Group__0__Impl rule__XAdditiveExpression__Group__1 )
-            // InternalSignalDSL.g:7742:2: rule__XAdditiveExpression__Group__0__Impl rule__XAdditiveExpression__Group__1
+            // InternalSignalDSL.g:8004:1: ( rule__XAdditiveExpression__Group__0__Impl rule__XAdditiveExpression__Group__1 )
+            // InternalSignalDSL.g:8005:2: rule__XAdditiveExpression__Group__0__Impl rule__XAdditiveExpression__Group__1
             {
-            pushFollow(FOLLOW_54);
+            pushFollow(FOLLOW_59);
             rule__XAdditiveExpression__Group__0__Impl();
 
             state._fsp--;
@@ -26636,17 +27421,17 @@
 
 
     // $ANTLR start "rule__XAdditiveExpression__Group__0__Impl"
-    // InternalSignalDSL.g:7749:1: rule__XAdditiveExpression__Group__0__Impl : ( ruleXMultiplicativeExpression ) ;
+    // InternalSignalDSL.g:8012:1: rule__XAdditiveExpression__Group__0__Impl : ( ruleXMultiplicativeExpression ) ;
     public final void rule__XAdditiveExpression__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:7753:1: ( ( ruleXMultiplicativeExpression ) )
-            // InternalSignalDSL.g:7754:1: ( ruleXMultiplicativeExpression )
+            // InternalSignalDSL.g:8016:1: ( ( ruleXMultiplicativeExpression ) )
+            // InternalSignalDSL.g:8017:1: ( ruleXMultiplicativeExpression )
             {
-            // InternalSignalDSL.g:7754:1: ( ruleXMultiplicativeExpression )
-            // InternalSignalDSL.g:7755:2: ruleXMultiplicativeExpression
+            // InternalSignalDSL.g:8017:1: ( ruleXMultiplicativeExpression )
+            // InternalSignalDSL.g:8018:2: ruleXMultiplicativeExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAdditiveExpressionAccess().getXMultiplicativeExpressionParserRuleCall_0()); 
@@ -26681,14 +27466,14 @@
 
 
     // $ANTLR start "rule__XAdditiveExpression__Group__1"
-    // InternalSignalDSL.g:7764:1: rule__XAdditiveExpression__Group__1 : rule__XAdditiveExpression__Group__1__Impl ;
+    // InternalSignalDSL.g:8027: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:7768:1: ( rule__XAdditiveExpression__Group__1__Impl )
-            // InternalSignalDSL.g:7769:2: rule__XAdditiveExpression__Group__1__Impl
+            // InternalSignalDSL.g:8031:1: ( rule__XAdditiveExpression__Group__1__Impl )
+            // InternalSignalDSL.g:8032:2: rule__XAdditiveExpression__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAdditiveExpression__Group__1__Impl();
@@ -26714,52 +27499,52 @@
 
 
     // $ANTLR start "rule__XAdditiveExpression__Group__1__Impl"
-    // InternalSignalDSL.g:7775:1: rule__XAdditiveExpression__Group__1__Impl : ( ( rule__XAdditiveExpression__Group_1__0 )* ) ;
+    // InternalSignalDSL.g:8038: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:7779:1: ( ( ( rule__XAdditiveExpression__Group_1__0 )* ) )
-            // InternalSignalDSL.g:7780:1: ( ( rule__XAdditiveExpression__Group_1__0 )* )
+            // InternalSignalDSL.g:8042:1: ( ( ( rule__XAdditiveExpression__Group_1__0 )* ) )
+            // InternalSignalDSL.g:8043:1: ( ( rule__XAdditiveExpression__Group_1__0 )* )
             {
-            // InternalSignalDSL.g:7780:1: ( ( rule__XAdditiveExpression__Group_1__0 )* )
-            // InternalSignalDSL.g:7781:2: ( rule__XAdditiveExpression__Group_1__0 )*
+            // InternalSignalDSL.g:8043:1: ( ( rule__XAdditiveExpression__Group_1__0 )* )
+            // InternalSignalDSL.g:8044:2: ( rule__XAdditiveExpression__Group_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAdditiveExpressionAccess().getGroup_1()); 
             }
-            // InternalSignalDSL.g:7782:2: ( rule__XAdditiveExpression__Group_1__0 )*
-            loop72:
+            // InternalSignalDSL.g:8045:2: ( rule__XAdditiveExpression__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==35) ) {
-                    int LA72_2 = input.LA(2);
+                if ( (LA75_0==35) ) {
+                    int LA75_2 = input.LA(2);
 
-                    if ( (synpred126_InternalSignalDSL()) ) {
-                        alt72=1;
+                    if ( (synpred123_InternalSignalDSL()) ) {
+                        alt75=1;
                     }
 
 
                 }
-                else if ( (LA72_0==34) ) {
-                    int LA72_3 = input.LA(2);
+                else if ( (LA75_0==34) ) {
+                    int LA75_3 = input.LA(2);
 
-                    if ( (synpred126_InternalSignalDSL()) ) {
-                        alt72=1;
+                    if ( (synpred123_InternalSignalDSL()) ) {
+                        alt75=1;
                     }
 
 
                 }
 
 
-                switch (alt72) {
+                switch (alt75) {
             	case 1 :
-            	    // InternalSignalDSL.g:7782:3: rule__XAdditiveExpression__Group_1__0
+            	    // InternalSignalDSL.g:8045:3: rule__XAdditiveExpression__Group_1__0
             	    {
-            	    pushFollow(FOLLOW_55);
+            	    pushFollow(FOLLOW_60);
             	    rule__XAdditiveExpression__Group_1__0();
 
             	    state._fsp--;
@@ -26769,7 +27554,7 @@
             	    break;
 
             	default :
-            	    break loop72;
+            	    break loop75;
                 }
             } while (true);
 
@@ -26798,16 +27583,16 @@
 
 
     // $ANTLR start "rule__XAdditiveExpression__Group_1__0"
-    // InternalSignalDSL.g:7791:1: rule__XAdditiveExpression__Group_1__0 : rule__XAdditiveExpression__Group_1__0__Impl rule__XAdditiveExpression__Group_1__1 ;
+    // InternalSignalDSL.g:8054: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:7795:1: ( rule__XAdditiveExpression__Group_1__0__Impl rule__XAdditiveExpression__Group_1__1 )
-            // InternalSignalDSL.g:7796:2: rule__XAdditiveExpression__Group_1__0__Impl rule__XAdditiveExpression__Group_1__1
+            // InternalSignalDSL.g:8058:1: ( rule__XAdditiveExpression__Group_1__0__Impl rule__XAdditiveExpression__Group_1__1 )
+            // InternalSignalDSL.g:8059:2: rule__XAdditiveExpression__Group_1__0__Impl rule__XAdditiveExpression__Group_1__1
             {
-            pushFollow(FOLLOW_30);
+            pushFollow(FOLLOW_35);
             rule__XAdditiveExpression__Group_1__0__Impl();
 
             state._fsp--;
@@ -26836,23 +27621,23 @@
 
 
     // $ANTLR start "rule__XAdditiveExpression__Group_1__0__Impl"
-    // InternalSignalDSL.g:7803:1: rule__XAdditiveExpression__Group_1__0__Impl : ( ( rule__XAdditiveExpression__Group_1_0__0 ) ) ;
+    // InternalSignalDSL.g:8066: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:7807:1: ( ( ( rule__XAdditiveExpression__Group_1_0__0 ) ) )
-            // InternalSignalDSL.g:7808:1: ( ( rule__XAdditiveExpression__Group_1_0__0 ) )
+            // InternalSignalDSL.g:8070:1: ( ( ( rule__XAdditiveExpression__Group_1_0__0 ) ) )
+            // InternalSignalDSL.g:8071:1: ( ( rule__XAdditiveExpression__Group_1_0__0 ) )
             {
-            // InternalSignalDSL.g:7808:1: ( ( rule__XAdditiveExpression__Group_1_0__0 ) )
-            // InternalSignalDSL.g:7809:2: ( rule__XAdditiveExpression__Group_1_0__0 )
+            // InternalSignalDSL.g:8071:1: ( ( rule__XAdditiveExpression__Group_1_0__0 ) )
+            // InternalSignalDSL.g:8072:2: ( rule__XAdditiveExpression__Group_1_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAdditiveExpressionAccess().getGroup_1_0()); 
             }
-            // InternalSignalDSL.g:7810:2: ( rule__XAdditiveExpression__Group_1_0__0 )
-            // InternalSignalDSL.g:7810:3: rule__XAdditiveExpression__Group_1_0__0
+            // InternalSignalDSL.g:8073:2: ( rule__XAdditiveExpression__Group_1_0__0 )
+            // InternalSignalDSL.g:8073:3: rule__XAdditiveExpression__Group_1_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XAdditiveExpression__Group_1_0__0();
@@ -26887,14 +27672,14 @@
 
 
     // $ANTLR start "rule__XAdditiveExpression__Group_1__1"
-    // InternalSignalDSL.g:7818:1: rule__XAdditiveExpression__Group_1__1 : rule__XAdditiveExpression__Group_1__1__Impl ;
+    // InternalSignalDSL.g:8081: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:7822:1: ( rule__XAdditiveExpression__Group_1__1__Impl )
-            // InternalSignalDSL.g:7823:2: rule__XAdditiveExpression__Group_1__1__Impl
+            // InternalSignalDSL.g:8085:1: ( rule__XAdditiveExpression__Group_1__1__Impl )
+            // InternalSignalDSL.g:8086:2: rule__XAdditiveExpression__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAdditiveExpression__Group_1__1__Impl();
@@ -26920,23 +27705,23 @@
 
 
     // $ANTLR start "rule__XAdditiveExpression__Group_1__1__Impl"
-    // InternalSignalDSL.g:7829:1: rule__XAdditiveExpression__Group_1__1__Impl : ( ( rule__XAdditiveExpression__RightOperandAssignment_1_1 ) ) ;
+    // InternalSignalDSL.g:8092: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:7833:1: ( ( ( rule__XAdditiveExpression__RightOperandAssignment_1_1 ) ) )
-            // InternalSignalDSL.g:7834:1: ( ( rule__XAdditiveExpression__RightOperandAssignment_1_1 ) )
+            // InternalSignalDSL.g:8096:1: ( ( ( rule__XAdditiveExpression__RightOperandAssignment_1_1 ) ) )
+            // InternalSignalDSL.g:8097:1: ( ( rule__XAdditiveExpression__RightOperandAssignment_1_1 ) )
             {
-            // InternalSignalDSL.g:7834:1: ( ( rule__XAdditiveExpression__RightOperandAssignment_1_1 ) )
-            // InternalSignalDSL.g:7835:2: ( rule__XAdditiveExpression__RightOperandAssignment_1_1 )
+            // InternalSignalDSL.g:8097:1: ( ( rule__XAdditiveExpression__RightOperandAssignment_1_1 ) )
+            // InternalSignalDSL.g:8098:2: ( rule__XAdditiveExpression__RightOperandAssignment_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAdditiveExpressionAccess().getRightOperandAssignment_1_1()); 
             }
-            // InternalSignalDSL.g:7836:2: ( rule__XAdditiveExpression__RightOperandAssignment_1_1 )
-            // InternalSignalDSL.g:7836:3: rule__XAdditiveExpression__RightOperandAssignment_1_1
+            // InternalSignalDSL.g:8099:2: ( rule__XAdditiveExpression__RightOperandAssignment_1_1 )
+            // InternalSignalDSL.g:8099:3: rule__XAdditiveExpression__RightOperandAssignment_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XAdditiveExpression__RightOperandAssignment_1_1();
@@ -26971,14 +27756,14 @@
 
 
     // $ANTLR start "rule__XAdditiveExpression__Group_1_0__0"
-    // InternalSignalDSL.g:7845:1: rule__XAdditiveExpression__Group_1_0__0 : rule__XAdditiveExpression__Group_1_0__0__Impl ;
+    // InternalSignalDSL.g:8108: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:7849:1: ( rule__XAdditiveExpression__Group_1_0__0__Impl )
-            // InternalSignalDSL.g:7850:2: rule__XAdditiveExpression__Group_1_0__0__Impl
+            // InternalSignalDSL.g:8112:1: ( rule__XAdditiveExpression__Group_1_0__0__Impl )
+            // InternalSignalDSL.g:8113:2: rule__XAdditiveExpression__Group_1_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAdditiveExpression__Group_1_0__0__Impl();
@@ -27004,23 +27789,23 @@
 
 
     // $ANTLR start "rule__XAdditiveExpression__Group_1_0__0__Impl"
-    // InternalSignalDSL.g:7856:1: rule__XAdditiveExpression__Group_1_0__0__Impl : ( ( rule__XAdditiveExpression__Group_1_0_0__0 ) ) ;
+    // InternalSignalDSL.g:8119: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:7860:1: ( ( ( rule__XAdditiveExpression__Group_1_0_0__0 ) ) )
-            // InternalSignalDSL.g:7861:1: ( ( rule__XAdditiveExpression__Group_1_0_0__0 ) )
+            // InternalSignalDSL.g:8123:1: ( ( ( rule__XAdditiveExpression__Group_1_0_0__0 ) ) )
+            // InternalSignalDSL.g:8124:1: ( ( rule__XAdditiveExpression__Group_1_0_0__0 ) )
             {
-            // InternalSignalDSL.g:7861:1: ( ( rule__XAdditiveExpression__Group_1_0_0__0 ) )
-            // InternalSignalDSL.g:7862:2: ( rule__XAdditiveExpression__Group_1_0_0__0 )
+            // InternalSignalDSL.g:8124:1: ( ( rule__XAdditiveExpression__Group_1_0_0__0 ) )
+            // InternalSignalDSL.g:8125:2: ( rule__XAdditiveExpression__Group_1_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAdditiveExpressionAccess().getGroup_1_0_0()); 
             }
-            // InternalSignalDSL.g:7863:2: ( rule__XAdditiveExpression__Group_1_0_0__0 )
-            // InternalSignalDSL.g:7863:3: rule__XAdditiveExpression__Group_1_0_0__0
+            // InternalSignalDSL.g:8126:2: ( rule__XAdditiveExpression__Group_1_0_0__0 )
+            // InternalSignalDSL.g:8126:3: rule__XAdditiveExpression__Group_1_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XAdditiveExpression__Group_1_0_0__0();
@@ -27055,16 +27840,16 @@
 
 
     // $ANTLR start "rule__XAdditiveExpression__Group_1_0_0__0"
-    // InternalSignalDSL.g:7872: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:8135: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:7876:1: ( rule__XAdditiveExpression__Group_1_0_0__0__Impl rule__XAdditiveExpression__Group_1_0_0__1 )
-            // InternalSignalDSL.g:7877:2: rule__XAdditiveExpression__Group_1_0_0__0__Impl rule__XAdditiveExpression__Group_1_0_0__1
+            // InternalSignalDSL.g:8139:1: ( rule__XAdditiveExpression__Group_1_0_0__0__Impl rule__XAdditiveExpression__Group_1_0_0__1 )
+            // InternalSignalDSL.g:8140:2: rule__XAdditiveExpression__Group_1_0_0__0__Impl rule__XAdditiveExpression__Group_1_0_0__1
             {
-            pushFollow(FOLLOW_54);
+            pushFollow(FOLLOW_59);
             rule__XAdditiveExpression__Group_1_0_0__0__Impl();
 
             state._fsp--;
@@ -27093,23 +27878,23 @@
 
 
     // $ANTLR start "rule__XAdditiveExpression__Group_1_0_0__0__Impl"
-    // InternalSignalDSL.g:7884:1: rule__XAdditiveExpression__Group_1_0_0__0__Impl : ( () ) ;
+    // InternalSignalDSL.g:8147: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:7888:1: ( ( () ) )
-            // InternalSignalDSL.g:7889:1: ( () )
+            // InternalSignalDSL.g:8151:1: ( ( () ) )
+            // InternalSignalDSL.g:8152:1: ( () )
             {
-            // InternalSignalDSL.g:7889:1: ( () )
-            // InternalSignalDSL.g:7890:2: ()
+            // InternalSignalDSL.g:8152:1: ( () )
+            // InternalSignalDSL.g:8153:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAdditiveExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()); 
             }
-            // InternalSignalDSL.g:7891:2: ()
-            // InternalSignalDSL.g:7891:3: 
+            // InternalSignalDSL.g:8154:2: ()
+            // InternalSignalDSL.g:8154:3: 
             {
             }
 
@@ -27134,14 +27919,14 @@
 
 
     // $ANTLR start "rule__XAdditiveExpression__Group_1_0_0__1"
-    // InternalSignalDSL.g:7899:1: rule__XAdditiveExpression__Group_1_0_0__1 : rule__XAdditiveExpression__Group_1_0_0__1__Impl ;
+    // InternalSignalDSL.g:8162: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:7903:1: ( rule__XAdditiveExpression__Group_1_0_0__1__Impl )
-            // InternalSignalDSL.g:7904:2: rule__XAdditiveExpression__Group_1_0_0__1__Impl
+            // InternalSignalDSL.g:8166:1: ( rule__XAdditiveExpression__Group_1_0_0__1__Impl )
+            // InternalSignalDSL.g:8167:2: rule__XAdditiveExpression__Group_1_0_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAdditiveExpression__Group_1_0_0__1__Impl();
@@ -27167,23 +27952,23 @@
 
 
     // $ANTLR start "rule__XAdditiveExpression__Group_1_0_0__1__Impl"
-    // InternalSignalDSL.g:7910:1: rule__XAdditiveExpression__Group_1_0_0__1__Impl : ( ( rule__XAdditiveExpression__FeatureAssignment_1_0_0_1 ) ) ;
+    // InternalSignalDSL.g:8173: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:7914:1: ( ( ( rule__XAdditiveExpression__FeatureAssignment_1_0_0_1 ) ) )
-            // InternalSignalDSL.g:7915:1: ( ( rule__XAdditiveExpression__FeatureAssignment_1_0_0_1 ) )
+            // InternalSignalDSL.g:8177:1: ( ( ( rule__XAdditiveExpression__FeatureAssignment_1_0_0_1 ) ) )
+            // InternalSignalDSL.g:8178:1: ( ( rule__XAdditiveExpression__FeatureAssignment_1_0_0_1 ) )
             {
-            // InternalSignalDSL.g:7915:1: ( ( rule__XAdditiveExpression__FeatureAssignment_1_0_0_1 ) )
-            // InternalSignalDSL.g:7916:2: ( rule__XAdditiveExpression__FeatureAssignment_1_0_0_1 )
+            // InternalSignalDSL.g:8178:1: ( ( rule__XAdditiveExpression__FeatureAssignment_1_0_0_1 ) )
+            // InternalSignalDSL.g:8179:2: ( rule__XAdditiveExpression__FeatureAssignment_1_0_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAdditiveExpressionAccess().getFeatureAssignment_1_0_0_1()); 
             }
-            // InternalSignalDSL.g:7917:2: ( rule__XAdditiveExpression__FeatureAssignment_1_0_0_1 )
-            // InternalSignalDSL.g:7917:3: rule__XAdditiveExpression__FeatureAssignment_1_0_0_1
+            // InternalSignalDSL.g:8180:2: ( rule__XAdditiveExpression__FeatureAssignment_1_0_0_1 )
+            // InternalSignalDSL.g:8180:3: rule__XAdditiveExpression__FeatureAssignment_1_0_0_1
             {
             pushFollow(FOLLOW_2);
             rule__XAdditiveExpression__FeatureAssignment_1_0_0_1();
@@ -27218,16 +28003,16 @@
 
 
     // $ANTLR start "rule__XMultiplicativeExpression__Group__0"
-    // InternalSignalDSL.g:7926:1: rule__XMultiplicativeExpression__Group__0 : rule__XMultiplicativeExpression__Group__0__Impl rule__XMultiplicativeExpression__Group__1 ;
+    // InternalSignalDSL.g:8189: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:7930:1: ( rule__XMultiplicativeExpression__Group__0__Impl rule__XMultiplicativeExpression__Group__1 )
-            // InternalSignalDSL.g:7931:2: rule__XMultiplicativeExpression__Group__0__Impl rule__XMultiplicativeExpression__Group__1
+            // InternalSignalDSL.g:8193:1: ( rule__XMultiplicativeExpression__Group__0__Impl rule__XMultiplicativeExpression__Group__1 )
+            // InternalSignalDSL.g:8194:2: rule__XMultiplicativeExpression__Group__0__Impl rule__XMultiplicativeExpression__Group__1
             {
-            pushFollow(FOLLOW_56);
+            pushFollow(FOLLOW_61);
             rule__XMultiplicativeExpression__Group__0__Impl();
 
             state._fsp--;
@@ -27256,17 +28041,17 @@
 
 
     // $ANTLR start "rule__XMultiplicativeExpression__Group__0__Impl"
-    // InternalSignalDSL.g:7938:1: rule__XMultiplicativeExpression__Group__0__Impl : ( ruleXUnaryOperation ) ;
+    // InternalSignalDSL.g:8201:1: rule__XMultiplicativeExpression__Group__0__Impl : ( ruleXUnaryOperation ) ;
     public final void rule__XMultiplicativeExpression__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:7942:1: ( ( ruleXUnaryOperation ) )
-            // InternalSignalDSL.g:7943:1: ( ruleXUnaryOperation )
+            // InternalSignalDSL.g:8205:1: ( ( ruleXUnaryOperation ) )
+            // InternalSignalDSL.g:8206:1: ( ruleXUnaryOperation )
             {
-            // InternalSignalDSL.g:7943:1: ( ruleXUnaryOperation )
-            // InternalSignalDSL.g:7944:2: ruleXUnaryOperation
+            // InternalSignalDSL.g:8206:1: ( ruleXUnaryOperation )
+            // InternalSignalDSL.g:8207:2: ruleXUnaryOperation
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMultiplicativeExpressionAccess().getXUnaryOperationParserRuleCall_0()); 
@@ -27301,14 +28086,14 @@
 
 
     // $ANTLR start "rule__XMultiplicativeExpression__Group__1"
-    // InternalSignalDSL.g:7953:1: rule__XMultiplicativeExpression__Group__1 : rule__XMultiplicativeExpression__Group__1__Impl ;
+    // InternalSignalDSL.g:8216: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:7957:1: ( rule__XMultiplicativeExpression__Group__1__Impl )
-            // InternalSignalDSL.g:7958:2: rule__XMultiplicativeExpression__Group__1__Impl
+            // InternalSignalDSL.g:8220:1: ( rule__XMultiplicativeExpression__Group__1__Impl )
+            // InternalSignalDSL.g:8221:2: rule__XMultiplicativeExpression__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XMultiplicativeExpression__Group__1__Impl();
@@ -27334,32 +28119,32 @@
 
 
     // $ANTLR start "rule__XMultiplicativeExpression__Group__1__Impl"
-    // InternalSignalDSL.g:7964:1: rule__XMultiplicativeExpression__Group__1__Impl : ( ( rule__XMultiplicativeExpression__Group_1__0 )* ) ;
+    // InternalSignalDSL.g:8227: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:7968:1: ( ( ( rule__XMultiplicativeExpression__Group_1__0 )* ) )
-            // InternalSignalDSL.g:7969:1: ( ( rule__XMultiplicativeExpression__Group_1__0 )* )
+            // InternalSignalDSL.g:8231:1: ( ( ( rule__XMultiplicativeExpression__Group_1__0 )* ) )
+            // InternalSignalDSL.g:8232:1: ( ( rule__XMultiplicativeExpression__Group_1__0 )* )
             {
-            // InternalSignalDSL.g:7969:1: ( ( rule__XMultiplicativeExpression__Group_1__0 )* )
-            // InternalSignalDSL.g:7970:2: ( rule__XMultiplicativeExpression__Group_1__0 )*
+            // InternalSignalDSL.g:8232:1: ( ( rule__XMultiplicativeExpression__Group_1__0 )* )
+            // InternalSignalDSL.g:8233:2: ( rule__XMultiplicativeExpression__Group_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMultiplicativeExpressionAccess().getGroup_1()); 
             }
-            // InternalSignalDSL.g:7971:2: ( rule__XMultiplicativeExpression__Group_1__0 )*
-            loop73:
+            // InternalSignalDSL.g:8234:2: ( rule__XMultiplicativeExpression__Group_1__0 )*
+            loop76:
             do {
-                int alt73=2;
+                int alt76=2;
                 switch ( input.LA(1) ) {
                 case 36:
                     {
-                    int LA73_2 = input.LA(2);
+                    int LA76_2 = input.LA(2);
 
-                    if ( (synpred127_InternalSignalDSL()) ) {
-                        alt73=1;
+                    if ( (synpred124_InternalSignalDSL()) ) {
+                        alt76=1;
                     }
 
 
@@ -27367,10 +28152,10 @@
                     break;
                 case 37:
                     {
-                    int LA73_3 = input.LA(2);
+                    int LA76_3 = input.LA(2);
 
-                    if ( (synpred127_InternalSignalDSL()) ) {
-                        alt73=1;
+                    if ( (synpred124_InternalSignalDSL()) ) {
+                        alt76=1;
                     }
 
 
@@ -27378,10 +28163,10 @@
                     break;
                 case 38:
                     {
-                    int LA73_4 = input.LA(2);
+                    int LA76_4 = input.LA(2);
 
-                    if ( (synpred127_InternalSignalDSL()) ) {
-                        alt73=1;
+                    if ( (synpred124_InternalSignalDSL()) ) {
+                        alt76=1;
                     }
 
 
@@ -27389,10 +28174,10 @@
                     break;
                 case 39:
                     {
-                    int LA73_5 = input.LA(2);
+                    int LA76_5 = input.LA(2);
 
-                    if ( (synpred127_InternalSignalDSL()) ) {
-                        alt73=1;
+                    if ( (synpred124_InternalSignalDSL()) ) {
+                        alt76=1;
                     }
 
 
@@ -27401,11 +28186,11 @@
 
                 }
 
-                switch (alt73) {
+                switch (alt76) {
             	case 1 :
-            	    // InternalSignalDSL.g:7971:3: rule__XMultiplicativeExpression__Group_1__0
+            	    // InternalSignalDSL.g:8234:3: rule__XMultiplicativeExpression__Group_1__0
             	    {
-            	    pushFollow(FOLLOW_57);
+            	    pushFollow(FOLLOW_62);
             	    rule__XMultiplicativeExpression__Group_1__0();
 
             	    state._fsp--;
@@ -27415,7 +28200,7 @@
             	    break;
 
             	default :
-            	    break loop73;
+            	    break loop76;
                 }
             } while (true);
 
@@ -27444,16 +28229,16 @@
 
 
     // $ANTLR start "rule__XMultiplicativeExpression__Group_1__0"
-    // InternalSignalDSL.g:7980:1: rule__XMultiplicativeExpression__Group_1__0 : rule__XMultiplicativeExpression__Group_1__0__Impl rule__XMultiplicativeExpression__Group_1__1 ;
+    // InternalSignalDSL.g:8243: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:7984:1: ( rule__XMultiplicativeExpression__Group_1__0__Impl rule__XMultiplicativeExpression__Group_1__1 )
-            // InternalSignalDSL.g:7985:2: rule__XMultiplicativeExpression__Group_1__0__Impl rule__XMultiplicativeExpression__Group_1__1
+            // InternalSignalDSL.g:8247:1: ( rule__XMultiplicativeExpression__Group_1__0__Impl rule__XMultiplicativeExpression__Group_1__1 )
+            // InternalSignalDSL.g:8248:2: rule__XMultiplicativeExpression__Group_1__0__Impl rule__XMultiplicativeExpression__Group_1__1
             {
-            pushFollow(FOLLOW_30);
+            pushFollow(FOLLOW_35);
             rule__XMultiplicativeExpression__Group_1__0__Impl();
 
             state._fsp--;
@@ -27482,23 +28267,23 @@
 
 
     // $ANTLR start "rule__XMultiplicativeExpression__Group_1__0__Impl"
-    // InternalSignalDSL.g:7992:1: rule__XMultiplicativeExpression__Group_1__0__Impl : ( ( rule__XMultiplicativeExpression__Group_1_0__0 ) ) ;
+    // InternalSignalDSL.g:8255: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:7996:1: ( ( ( rule__XMultiplicativeExpression__Group_1_0__0 ) ) )
-            // InternalSignalDSL.g:7997:1: ( ( rule__XMultiplicativeExpression__Group_1_0__0 ) )
+            // InternalSignalDSL.g:8259:1: ( ( ( rule__XMultiplicativeExpression__Group_1_0__0 ) ) )
+            // InternalSignalDSL.g:8260:1: ( ( rule__XMultiplicativeExpression__Group_1_0__0 ) )
             {
-            // InternalSignalDSL.g:7997:1: ( ( rule__XMultiplicativeExpression__Group_1_0__0 ) )
-            // InternalSignalDSL.g:7998:2: ( rule__XMultiplicativeExpression__Group_1_0__0 )
+            // InternalSignalDSL.g:8260:1: ( ( rule__XMultiplicativeExpression__Group_1_0__0 ) )
+            // InternalSignalDSL.g:8261:2: ( rule__XMultiplicativeExpression__Group_1_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMultiplicativeExpressionAccess().getGroup_1_0()); 
             }
-            // InternalSignalDSL.g:7999:2: ( rule__XMultiplicativeExpression__Group_1_0__0 )
-            // InternalSignalDSL.g:7999:3: rule__XMultiplicativeExpression__Group_1_0__0
+            // InternalSignalDSL.g:8262:2: ( rule__XMultiplicativeExpression__Group_1_0__0 )
+            // InternalSignalDSL.g:8262:3: rule__XMultiplicativeExpression__Group_1_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XMultiplicativeExpression__Group_1_0__0();
@@ -27533,14 +28318,14 @@
 
 
     // $ANTLR start "rule__XMultiplicativeExpression__Group_1__1"
-    // InternalSignalDSL.g:8007:1: rule__XMultiplicativeExpression__Group_1__1 : rule__XMultiplicativeExpression__Group_1__1__Impl ;
+    // InternalSignalDSL.g:8270: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:8011:1: ( rule__XMultiplicativeExpression__Group_1__1__Impl )
-            // InternalSignalDSL.g:8012:2: rule__XMultiplicativeExpression__Group_1__1__Impl
+            // InternalSignalDSL.g:8274:1: ( rule__XMultiplicativeExpression__Group_1__1__Impl )
+            // InternalSignalDSL.g:8275:2: rule__XMultiplicativeExpression__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XMultiplicativeExpression__Group_1__1__Impl();
@@ -27566,23 +28351,23 @@
 
 
     // $ANTLR start "rule__XMultiplicativeExpression__Group_1__1__Impl"
-    // InternalSignalDSL.g:8018:1: rule__XMultiplicativeExpression__Group_1__1__Impl : ( ( rule__XMultiplicativeExpression__RightOperandAssignment_1_1 ) ) ;
+    // InternalSignalDSL.g:8281: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:8022:1: ( ( ( rule__XMultiplicativeExpression__RightOperandAssignment_1_1 ) ) )
-            // InternalSignalDSL.g:8023:1: ( ( rule__XMultiplicativeExpression__RightOperandAssignment_1_1 ) )
+            // InternalSignalDSL.g:8285:1: ( ( ( rule__XMultiplicativeExpression__RightOperandAssignment_1_1 ) ) )
+            // InternalSignalDSL.g:8286:1: ( ( rule__XMultiplicativeExpression__RightOperandAssignment_1_1 ) )
             {
-            // InternalSignalDSL.g:8023:1: ( ( rule__XMultiplicativeExpression__RightOperandAssignment_1_1 ) )
-            // InternalSignalDSL.g:8024:2: ( rule__XMultiplicativeExpression__RightOperandAssignment_1_1 )
+            // InternalSignalDSL.g:8286:1: ( ( rule__XMultiplicativeExpression__RightOperandAssignment_1_1 ) )
+            // InternalSignalDSL.g:8287:2: ( rule__XMultiplicativeExpression__RightOperandAssignment_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMultiplicativeExpressionAccess().getRightOperandAssignment_1_1()); 
             }
-            // InternalSignalDSL.g:8025:2: ( rule__XMultiplicativeExpression__RightOperandAssignment_1_1 )
-            // InternalSignalDSL.g:8025:3: rule__XMultiplicativeExpression__RightOperandAssignment_1_1
+            // InternalSignalDSL.g:8288:2: ( rule__XMultiplicativeExpression__RightOperandAssignment_1_1 )
+            // InternalSignalDSL.g:8288:3: rule__XMultiplicativeExpression__RightOperandAssignment_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XMultiplicativeExpression__RightOperandAssignment_1_1();
@@ -27617,14 +28402,14 @@
 
 
     // $ANTLR start "rule__XMultiplicativeExpression__Group_1_0__0"
-    // InternalSignalDSL.g:8034:1: rule__XMultiplicativeExpression__Group_1_0__0 : rule__XMultiplicativeExpression__Group_1_0__0__Impl ;
+    // InternalSignalDSL.g:8297: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:8038:1: ( rule__XMultiplicativeExpression__Group_1_0__0__Impl )
-            // InternalSignalDSL.g:8039:2: rule__XMultiplicativeExpression__Group_1_0__0__Impl
+            // InternalSignalDSL.g:8301:1: ( rule__XMultiplicativeExpression__Group_1_0__0__Impl )
+            // InternalSignalDSL.g:8302:2: rule__XMultiplicativeExpression__Group_1_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XMultiplicativeExpression__Group_1_0__0__Impl();
@@ -27650,23 +28435,23 @@
 
 
     // $ANTLR start "rule__XMultiplicativeExpression__Group_1_0__0__Impl"
-    // InternalSignalDSL.g:8045:1: rule__XMultiplicativeExpression__Group_1_0__0__Impl : ( ( rule__XMultiplicativeExpression__Group_1_0_0__0 ) ) ;
+    // InternalSignalDSL.g:8308: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:8049:1: ( ( ( rule__XMultiplicativeExpression__Group_1_0_0__0 ) ) )
-            // InternalSignalDSL.g:8050:1: ( ( rule__XMultiplicativeExpression__Group_1_0_0__0 ) )
+            // InternalSignalDSL.g:8312:1: ( ( ( rule__XMultiplicativeExpression__Group_1_0_0__0 ) ) )
+            // InternalSignalDSL.g:8313:1: ( ( rule__XMultiplicativeExpression__Group_1_0_0__0 ) )
             {
-            // InternalSignalDSL.g:8050:1: ( ( rule__XMultiplicativeExpression__Group_1_0_0__0 ) )
-            // InternalSignalDSL.g:8051:2: ( rule__XMultiplicativeExpression__Group_1_0_0__0 )
+            // InternalSignalDSL.g:8313:1: ( ( rule__XMultiplicativeExpression__Group_1_0_0__0 ) )
+            // InternalSignalDSL.g:8314:2: ( rule__XMultiplicativeExpression__Group_1_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMultiplicativeExpressionAccess().getGroup_1_0_0()); 
             }
-            // InternalSignalDSL.g:8052:2: ( rule__XMultiplicativeExpression__Group_1_0_0__0 )
-            // InternalSignalDSL.g:8052:3: rule__XMultiplicativeExpression__Group_1_0_0__0
+            // InternalSignalDSL.g:8315:2: ( rule__XMultiplicativeExpression__Group_1_0_0__0 )
+            // InternalSignalDSL.g:8315:3: rule__XMultiplicativeExpression__Group_1_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XMultiplicativeExpression__Group_1_0_0__0();
@@ -27701,16 +28486,16 @@
 
 
     // $ANTLR start "rule__XMultiplicativeExpression__Group_1_0_0__0"
-    // InternalSignalDSL.g:8061: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:8324: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:8065:1: ( rule__XMultiplicativeExpression__Group_1_0_0__0__Impl rule__XMultiplicativeExpression__Group_1_0_0__1 )
-            // InternalSignalDSL.g:8066:2: rule__XMultiplicativeExpression__Group_1_0_0__0__Impl rule__XMultiplicativeExpression__Group_1_0_0__1
+            // InternalSignalDSL.g:8328:1: ( rule__XMultiplicativeExpression__Group_1_0_0__0__Impl rule__XMultiplicativeExpression__Group_1_0_0__1 )
+            // InternalSignalDSL.g:8329:2: rule__XMultiplicativeExpression__Group_1_0_0__0__Impl rule__XMultiplicativeExpression__Group_1_0_0__1
             {
-            pushFollow(FOLLOW_56);
+            pushFollow(FOLLOW_61);
             rule__XMultiplicativeExpression__Group_1_0_0__0__Impl();
 
             state._fsp--;
@@ -27739,23 +28524,23 @@
 
 
     // $ANTLR start "rule__XMultiplicativeExpression__Group_1_0_0__0__Impl"
-    // InternalSignalDSL.g:8073:1: rule__XMultiplicativeExpression__Group_1_0_0__0__Impl : ( () ) ;
+    // InternalSignalDSL.g:8336: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:8077:1: ( ( () ) )
-            // InternalSignalDSL.g:8078:1: ( () )
+            // InternalSignalDSL.g:8340:1: ( ( () ) )
+            // InternalSignalDSL.g:8341:1: ( () )
             {
-            // InternalSignalDSL.g:8078:1: ( () )
-            // InternalSignalDSL.g:8079:2: ()
+            // InternalSignalDSL.g:8341:1: ( () )
+            // InternalSignalDSL.g:8342:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMultiplicativeExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()); 
             }
-            // InternalSignalDSL.g:8080:2: ()
-            // InternalSignalDSL.g:8080:3: 
+            // InternalSignalDSL.g:8343:2: ()
+            // InternalSignalDSL.g:8343:3: 
             {
             }
 
@@ -27780,14 +28565,14 @@
 
 
     // $ANTLR start "rule__XMultiplicativeExpression__Group_1_0_0__1"
-    // InternalSignalDSL.g:8088:1: rule__XMultiplicativeExpression__Group_1_0_0__1 : rule__XMultiplicativeExpression__Group_1_0_0__1__Impl ;
+    // InternalSignalDSL.g:8351: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:8092:1: ( rule__XMultiplicativeExpression__Group_1_0_0__1__Impl )
-            // InternalSignalDSL.g:8093:2: rule__XMultiplicativeExpression__Group_1_0_0__1__Impl
+            // InternalSignalDSL.g:8355:1: ( rule__XMultiplicativeExpression__Group_1_0_0__1__Impl )
+            // InternalSignalDSL.g:8356:2: rule__XMultiplicativeExpression__Group_1_0_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XMultiplicativeExpression__Group_1_0_0__1__Impl();
@@ -27813,23 +28598,23 @@
 
 
     // $ANTLR start "rule__XMultiplicativeExpression__Group_1_0_0__1__Impl"
-    // InternalSignalDSL.g:8099:1: rule__XMultiplicativeExpression__Group_1_0_0__1__Impl : ( ( rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1 ) ) ;
+    // InternalSignalDSL.g:8362: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:8103:1: ( ( ( rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1 ) ) )
-            // InternalSignalDSL.g:8104:1: ( ( rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1 ) )
+            // InternalSignalDSL.g:8366:1: ( ( ( rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1 ) ) )
+            // InternalSignalDSL.g:8367:1: ( ( rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1 ) )
             {
-            // InternalSignalDSL.g:8104:1: ( ( rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1 ) )
-            // InternalSignalDSL.g:8105:2: ( rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1 )
+            // InternalSignalDSL.g:8367:1: ( ( rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1 ) )
+            // InternalSignalDSL.g:8368:2: ( rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMultiplicativeExpressionAccess().getFeatureAssignment_1_0_0_1()); 
             }
-            // InternalSignalDSL.g:8106:2: ( rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1 )
-            // InternalSignalDSL.g:8106:3: rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1
+            // InternalSignalDSL.g:8369:2: ( rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1 )
+            // InternalSignalDSL.g:8369:3: rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1
             {
             pushFollow(FOLLOW_2);
             rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1();
@@ -27864,16 +28649,16 @@
 
 
     // $ANTLR start "rule__XUnaryOperation__Group_0__0"
-    // InternalSignalDSL.g:8115:1: rule__XUnaryOperation__Group_0__0 : rule__XUnaryOperation__Group_0__0__Impl rule__XUnaryOperation__Group_0__1 ;
+    // InternalSignalDSL.g:8378: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:8119:1: ( rule__XUnaryOperation__Group_0__0__Impl rule__XUnaryOperation__Group_0__1 )
-            // InternalSignalDSL.g:8120:2: rule__XUnaryOperation__Group_0__0__Impl rule__XUnaryOperation__Group_0__1
+            // InternalSignalDSL.g:8382:1: ( rule__XUnaryOperation__Group_0__0__Impl rule__XUnaryOperation__Group_0__1 )
+            // InternalSignalDSL.g:8383:2: rule__XUnaryOperation__Group_0__0__Impl rule__XUnaryOperation__Group_0__1
             {
-            pushFollow(FOLLOW_58);
+            pushFollow(FOLLOW_63);
             rule__XUnaryOperation__Group_0__0__Impl();
 
             state._fsp--;
@@ -27902,23 +28687,23 @@
 
 
     // $ANTLR start "rule__XUnaryOperation__Group_0__0__Impl"
-    // InternalSignalDSL.g:8127:1: rule__XUnaryOperation__Group_0__0__Impl : ( () ) ;
+    // InternalSignalDSL.g:8390:1: rule__XUnaryOperation__Group_0__0__Impl : ( () ) ;
     public final void rule__XUnaryOperation__Group_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:8131:1: ( ( () ) )
-            // InternalSignalDSL.g:8132:1: ( () )
+            // InternalSignalDSL.g:8394:1: ( ( () ) )
+            // InternalSignalDSL.g:8395:1: ( () )
             {
-            // InternalSignalDSL.g:8132:1: ( () )
-            // InternalSignalDSL.g:8133:2: ()
+            // InternalSignalDSL.g:8395:1: ( () )
+            // InternalSignalDSL.g:8396:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXUnaryOperationAccess().getXUnaryOperationAction_0_0()); 
             }
-            // InternalSignalDSL.g:8134:2: ()
-            // InternalSignalDSL.g:8134:3: 
+            // InternalSignalDSL.g:8397:2: ()
+            // InternalSignalDSL.g:8397:3: 
             {
             }
 
@@ -27943,16 +28728,16 @@
 
 
     // $ANTLR start "rule__XUnaryOperation__Group_0__1"
-    // InternalSignalDSL.g:8142:1: rule__XUnaryOperation__Group_0__1 : rule__XUnaryOperation__Group_0__1__Impl rule__XUnaryOperation__Group_0__2 ;
+    // InternalSignalDSL.g:8405: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:8146:1: ( rule__XUnaryOperation__Group_0__1__Impl rule__XUnaryOperation__Group_0__2 )
-            // InternalSignalDSL.g:8147:2: rule__XUnaryOperation__Group_0__1__Impl rule__XUnaryOperation__Group_0__2
+            // InternalSignalDSL.g:8409:1: ( rule__XUnaryOperation__Group_0__1__Impl rule__XUnaryOperation__Group_0__2 )
+            // InternalSignalDSL.g:8410:2: rule__XUnaryOperation__Group_0__1__Impl rule__XUnaryOperation__Group_0__2
             {
-            pushFollow(FOLLOW_30);
+            pushFollow(FOLLOW_35);
             rule__XUnaryOperation__Group_0__1__Impl();
 
             state._fsp--;
@@ -27981,23 +28766,23 @@
 
 
     // $ANTLR start "rule__XUnaryOperation__Group_0__1__Impl"
-    // InternalSignalDSL.g:8154:1: rule__XUnaryOperation__Group_0__1__Impl : ( ( rule__XUnaryOperation__FeatureAssignment_0_1 ) ) ;
+    // InternalSignalDSL.g:8417: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:8158:1: ( ( ( rule__XUnaryOperation__FeatureAssignment_0_1 ) ) )
-            // InternalSignalDSL.g:8159:1: ( ( rule__XUnaryOperation__FeatureAssignment_0_1 ) )
+            // InternalSignalDSL.g:8421:1: ( ( ( rule__XUnaryOperation__FeatureAssignment_0_1 ) ) )
+            // InternalSignalDSL.g:8422:1: ( ( rule__XUnaryOperation__FeatureAssignment_0_1 ) )
             {
-            // InternalSignalDSL.g:8159:1: ( ( rule__XUnaryOperation__FeatureAssignment_0_1 ) )
-            // InternalSignalDSL.g:8160:2: ( rule__XUnaryOperation__FeatureAssignment_0_1 )
+            // InternalSignalDSL.g:8422:1: ( ( rule__XUnaryOperation__FeatureAssignment_0_1 ) )
+            // InternalSignalDSL.g:8423:2: ( rule__XUnaryOperation__FeatureAssignment_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXUnaryOperationAccess().getFeatureAssignment_0_1()); 
             }
-            // InternalSignalDSL.g:8161:2: ( rule__XUnaryOperation__FeatureAssignment_0_1 )
-            // InternalSignalDSL.g:8161:3: rule__XUnaryOperation__FeatureAssignment_0_1
+            // InternalSignalDSL.g:8424:2: ( rule__XUnaryOperation__FeatureAssignment_0_1 )
+            // InternalSignalDSL.g:8424:3: rule__XUnaryOperation__FeatureAssignment_0_1
             {
             pushFollow(FOLLOW_2);
             rule__XUnaryOperation__FeatureAssignment_0_1();
@@ -28032,14 +28817,14 @@
 
 
     // $ANTLR start "rule__XUnaryOperation__Group_0__2"
-    // InternalSignalDSL.g:8169:1: rule__XUnaryOperation__Group_0__2 : rule__XUnaryOperation__Group_0__2__Impl ;
+    // InternalSignalDSL.g:8432: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:8173:1: ( rule__XUnaryOperation__Group_0__2__Impl )
-            // InternalSignalDSL.g:8174:2: rule__XUnaryOperation__Group_0__2__Impl
+            // InternalSignalDSL.g:8436:1: ( rule__XUnaryOperation__Group_0__2__Impl )
+            // InternalSignalDSL.g:8437:2: rule__XUnaryOperation__Group_0__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XUnaryOperation__Group_0__2__Impl();
@@ -28065,23 +28850,23 @@
 
 
     // $ANTLR start "rule__XUnaryOperation__Group_0__2__Impl"
-    // InternalSignalDSL.g:8180:1: rule__XUnaryOperation__Group_0__2__Impl : ( ( rule__XUnaryOperation__OperandAssignment_0_2 ) ) ;
+    // InternalSignalDSL.g:8443: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:8184:1: ( ( ( rule__XUnaryOperation__OperandAssignment_0_2 ) ) )
-            // InternalSignalDSL.g:8185:1: ( ( rule__XUnaryOperation__OperandAssignment_0_2 ) )
+            // InternalSignalDSL.g:8447:1: ( ( ( rule__XUnaryOperation__OperandAssignment_0_2 ) ) )
+            // InternalSignalDSL.g:8448:1: ( ( rule__XUnaryOperation__OperandAssignment_0_2 ) )
             {
-            // InternalSignalDSL.g:8185:1: ( ( rule__XUnaryOperation__OperandAssignment_0_2 ) )
-            // InternalSignalDSL.g:8186:2: ( rule__XUnaryOperation__OperandAssignment_0_2 )
+            // InternalSignalDSL.g:8448:1: ( ( rule__XUnaryOperation__OperandAssignment_0_2 ) )
+            // InternalSignalDSL.g:8449:2: ( rule__XUnaryOperation__OperandAssignment_0_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXUnaryOperationAccess().getOperandAssignment_0_2()); 
             }
-            // InternalSignalDSL.g:8187:2: ( rule__XUnaryOperation__OperandAssignment_0_2 )
-            // InternalSignalDSL.g:8187:3: rule__XUnaryOperation__OperandAssignment_0_2
+            // InternalSignalDSL.g:8450:2: ( rule__XUnaryOperation__OperandAssignment_0_2 )
+            // InternalSignalDSL.g:8450:3: rule__XUnaryOperation__OperandAssignment_0_2
             {
             pushFollow(FOLLOW_2);
             rule__XUnaryOperation__OperandAssignment_0_2();
@@ -28116,16 +28901,16 @@
 
 
     // $ANTLR start "rule__XCastedExpression__Group__0"
-    // InternalSignalDSL.g:8196:1: rule__XCastedExpression__Group__0 : rule__XCastedExpression__Group__0__Impl rule__XCastedExpression__Group__1 ;
+    // InternalSignalDSL.g:8459: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:8200:1: ( rule__XCastedExpression__Group__0__Impl rule__XCastedExpression__Group__1 )
-            // InternalSignalDSL.g:8201:2: rule__XCastedExpression__Group__0__Impl rule__XCastedExpression__Group__1
+            // InternalSignalDSL.g:8463:1: ( rule__XCastedExpression__Group__0__Impl rule__XCastedExpression__Group__1 )
+            // InternalSignalDSL.g:8464:2: rule__XCastedExpression__Group__0__Impl rule__XCastedExpression__Group__1
             {
-            pushFollow(FOLLOW_59);
+            pushFollow(FOLLOW_64);
             rule__XCastedExpression__Group__0__Impl();
 
             state._fsp--;
@@ -28154,17 +28939,17 @@
 
 
     // $ANTLR start "rule__XCastedExpression__Group__0__Impl"
-    // InternalSignalDSL.g:8208:1: rule__XCastedExpression__Group__0__Impl : ( ruleXPostfixOperation ) ;
+    // InternalSignalDSL.g:8471:1: rule__XCastedExpression__Group__0__Impl : ( ruleXPostfixOperation ) ;
     public final void rule__XCastedExpression__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:8212:1: ( ( ruleXPostfixOperation ) )
-            // InternalSignalDSL.g:8213:1: ( ruleXPostfixOperation )
+            // InternalSignalDSL.g:8475:1: ( ( ruleXPostfixOperation ) )
+            // InternalSignalDSL.g:8476:1: ( ruleXPostfixOperation )
             {
-            // InternalSignalDSL.g:8213:1: ( ruleXPostfixOperation )
-            // InternalSignalDSL.g:8214:2: ruleXPostfixOperation
+            // InternalSignalDSL.g:8476:1: ( ruleXPostfixOperation )
+            // InternalSignalDSL.g:8477:2: ruleXPostfixOperation
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCastedExpressionAccess().getXPostfixOperationParserRuleCall_0()); 
@@ -28199,14 +28984,14 @@
 
 
     // $ANTLR start "rule__XCastedExpression__Group__1"
-    // InternalSignalDSL.g:8223:1: rule__XCastedExpression__Group__1 : rule__XCastedExpression__Group__1__Impl ;
+    // InternalSignalDSL.g:8486: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:8227:1: ( rule__XCastedExpression__Group__1__Impl )
-            // InternalSignalDSL.g:8228:2: rule__XCastedExpression__Group__1__Impl
+            // InternalSignalDSL.g:8490:1: ( rule__XCastedExpression__Group__1__Impl )
+            // InternalSignalDSL.g:8491:2: rule__XCastedExpression__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XCastedExpression__Group__1__Impl();
@@ -28232,43 +29017,43 @@
 
 
     // $ANTLR start "rule__XCastedExpression__Group__1__Impl"
-    // InternalSignalDSL.g:8234:1: rule__XCastedExpression__Group__1__Impl : ( ( rule__XCastedExpression__Group_1__0 )* ) ;
+    // InternalSignalDSL.g:8497: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:8238:1: ( ( ( rule__XCastedExpression__Group_1__0 )* ) )
-            // InternalSignalDSL.g:8239:1: ( ( rule__XCastedExpression__Group_1__0 )* )
+            // InternalSignalDSL.g:8501:1: ( ( ( rule__XCastedExpression__Group_1__0 )* ) )
+            // InternalSignalDSL.g:8502:1: ( ( rule__XCastedExpression__Group_1__0 )* )
             {
-            // InternalSignalDSL.g:8239:1: ( ( rule__XCastedExpression__Group_1__0 )* )
-            // InternalSignalDSL.g:8240:2: ( rule__XCastedExpression__Group_1__0 )*
+            // InternalSignalDSL.g:8502:1: ( ( rule__XCastedExpression__Group_1__0 )* )
+            // InternalSignalDSL.g:8503:2: ( rule__XCastedExpression__Group_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCastedExpressionAccess().getGroup_1()); 
             }
-            // InternalSignalDSL.g:8241:2: ( rule__XCastedExpression__Group_1__0 )*
-            loop74:
+            // InternalSignalDSL.g:8504:2: ( rule__XCastedExpression__Group_1__0 )*
+            loop77:
             do {
-                int alt74=2;
-                int LA74_0 = input.LA(1);
+                int alt77=2;
+                int LA77_0 = input.LA(1);
 
-                if ( (LA74_0==83) ) {
-                    int LA74_2 = input.LA(2);
+                if ( (LA77_0==81) ) {
+                    int LA77_2 = input.LA(2);
 
-                    if ( (synpred128_InternalSignalDSL()) ) {
-                        alt74=1;
+                    if ( (synpred125_InternalSignalDSL()) ) {
+                        alt77=1;
                     }
 
 
                 }
 
 
-                switch (alt74) {
+                switch (alt77) {
             	case 1 :
-            	    // InternalSignalDSL.g:8241:3: rule__XCastedExpression__Group_1__0
+            	    // InternalSignalDSL.g:8504:3: rule__XCastedExpression__Group_1__0
             	    {
-            	    pushFollow(FOLLOW_60);
+            	    pushFollow(FOLLOW_65);
             	    rule__XCastedExpression__Group_1__0();
 
             	    state._fsp--;
@@ -28278,7 +29063,7 @@
             	    break;
 
             	default :
-            	    break loop74;
+            	    break loop77;
                 }
             } while (true);
 
@@ -28307,16 +29092,16 @@
 
 
     // $ANTLR start "rule__XCastedExpression__Group_1__0"
-    // InternalSignalDSL.g:8250:1: rule__XCastedExpression__Group_1__0 : rule__XCastedExpression__Group_1__0__Impl rule__XCastedExpression__Group_1__1 ;
+    // InternalSignalDSL.g:8513: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:8254:1: ( rule__XCastedExpression__Group_1__0__Impl rule__XCastedExpression__Group_1__1 )
-            // InternalSignalDSL.g:8255:2: rule__XCastedExpression__Group_1__0__Impl rule__XCastedExpression__Group_1__1
+            // InternalSignalDSL.g:8517:1: ( rule__XCastedExpression__Group_1__0__Impl rule__XCastedExpression__Group_1__1 )
+            // InternalSignalDSL.g:8518:2: rule__XCastedExpression__Group_1__0__Impl rule__XCastedExpression__Group_1__1
             {
-            pushFollow(FOLLOW_47);
+            pushFollow(FOLLOW_52);
             rule__XCastedExpression__Group_1__0__Impl();
 
             state._fsp--;
@@ -28345,23 +29130,23 @@
 
 
     // $ANTLR start "rule__XCastedExpression__Group_1__0__Impl"
-    // InternalSignalDSL.g:8262:1: rule__XCastedExpression__Group_1__0__Impl : ( ( rule__XCastedExpression__Group_1_0__0 ) ) ;
+    // InternalSignalDSL.g:8525: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:8266:1: ( ( ( rule__XCastedExpression__Group_1_0__0 ) ) )
-            // InternalSignalDSL.g:8267:1: ( ( rule__XCastedExpression__Group_1_0__0 ) )
+            // InternalSignalDSL.g:8529:1: ( ( ( rule__XCastedExpression__Group_1_0__0 ) ) )
+            // InternalSignalDSL.g:8530:1: ( ( rule__XCastedExpression__Group_1_0__0 ) )
             {
-            // InternalSignalDSL.g:8267:1: ( ( rule__XCastedExpression__Group_1_0__0 ) )
-            // InternalSignalDSL.g:8268:2: ( rule__XCastedExpression__Group_1_0__0 )
+            // InternalSignalDSL.g:8530:1: ( ( rule__XCastedExpression__Group_1_0__0 ) )
+            // InternalSignalDSL.g:8531:2: ( rule__XCastedExpression__Group_1_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCastedExpressionAccess().getGroup_1_0()); 
             }
-            // InternalSignalDSL.g:8269:2: ( rule__XCastedExpression__Group_1_0__0 )
-            // InternalSignalDSL.g:8269:3: rule__XCastedExpression__Group_1_0__0
+            // InternalSignalDSL.g:8532:2: ( rule__XCastedExpression__Group_1_0__0 )
+            // InternalSignalDSL.g:8532:3: rule__XCastedExpression__Group_1_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XCastedExpression__Group_1_0__0();
@@ -28396,14 +29181,14 @@
 
 
     // $ANTLR start "rule__XCastedExpression__Group_1__1"
-    // InternalSignalDSL.g:8277:1: rule__XCastedExpression__Group_1__1 : rule__XCastedExpression__Group_1__1__Impl ;
+    // InternalSignalDSL.g:8540: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:8281:1: ( rule__XCastedExpression__Group_1__1__Impl )
-            // InternalSignalDSL.g:8282:2: rule__XCastedExpression__Group_1__1__Impl
+            // InternalSignalDSL.g:8544:1: ( rule__XCastedExpression__Group_1__1__Impl )
+            // InternalSignalDSL.g:8545:2: rule__XCastedExpression__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XCastedExpression__Group_1__1__Impl();
@@ -28429,23 +29214,23 @@
 
 
     // $ANTLR start "rule__XCastedExpression__Group_1__1__Impl"
-    // InternalSignalDSL.g:8288:1: rule__XCastedExpression__Group_1__1__Impl : ( ( rule__XCastedExpression__TypeAssignment_1_1 ) ) ;
+    // InternalSignalDSL.g:8551: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:8292:1: ( ( ( rule__XCastedExpression__TypeAssignment_1_1 ) ) )
-            // InternalSignalDSL.g:8293:1: ( ( rule__XCastedExpression__TypeAssignment_1_1 ) )
+            // InternalSignalDSL.g:8555:1: ( ( ( rule__XCastedExpression__TypeAssignment_1_1 ) ) )
+            // InternalSignalDSL.g:8556:1: ( ( rule__XCastedExpression__TypeAssignment_1_1 ) )
             {
-            // InternalSignalDSL.g:8293:1: ( ( rule__XCastedExpression__TypeAssignment_1_1 ) )
-            // InternalSignalDSL.g:8294:2: ( rule__XCastedExpression__TypeAssignment_1_1 )
+            // InternalSignalDSL.g:8556:1: ( ( rule__XCastedExpression__TypeAssignment_1_1 ) )
+            // InternalSignalDSL.g:8557:2: ( rule__XCastedExpression__TypeAssignment_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCastedExpressionAccess().getTypeAssignment_1_1()); 
             }
-            // InternalSignalDSL.g:8295:2: ( rule__XCastedExpression__TypeAssignment_1_1 )
-            // InternalSignalDSL.g:8295:3: rule__XCastedExpression__TypeAssignment_1_1
+            // InternalSignalDSL.g:8558:2: ( rule__XCastedExpression__TypeAssignment_1_1 )
+            // InternalSignalDSL.g:8558:3: rule__XCastedExpression__TypeAssignment_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XCastedExpression__TypeAssignment_1_1();
@@ -28480,14 +29265,14 @@
 
 
     // $ANTLR start "rule__XCastedExpression__Group_1_0__0"
-    // InternalSignalDSL.g:8304:1: rule__XCastedExpression__Group_1_0__0 : rule__XCastedExpression__Group_1_0__0__Impl ;
+    // InternalSignalDSL.g:8567: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:8308:1: ( rule__XCastedExpression__Group_1_0__0__Impl )
-            // InternalSignalDSL.g:8309:2: rule__XCastedExpression__Group_1_0__0__Impl
+            // InternalSignalDSL.g:8571:1: ( rule__XCastedExpression__Group_1_0__0__Impl )
+            // InternalSignalDSL.g:8572:2: rule__XCastedExpression__Group_1_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XCastedExpression__Group_1_0__0__Impl();
@@ -28513,23 +29298,23 @@
 
 
     // $ANTLR start "rule__XCastedExpression__Group_1_0__0__Impl"
-    // InternalSignalDSL.g:8315:1: rule__XCastedExpression__Group_1_0__0__Impl : ( ( rule__XCastedExpression__Group_1_0_0__0 ) ) ;
+    // InternalSignalDSL.g:8578: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:8319:1: ( ( ( rule__XCastedExpression__Group_1_0_0__0 ) ) )
-            // InternalSignalDSL.g:8320:1: ( ( rule__XCastedExpression__Group_1_0_0__0 ) )
+            // InternalSignalDSL.g:8582:1: ( ( ( rule__XCastedExpression__Group_1_0_0__0 ) ) )
+            // InternalSignalDSL.g:8583:1: ( ( rule__XCastedExpression__Group_1_0_0__0 ) )
             {
-            // InternalSignalDSL.g:8320:1: ( ( rule__XCastedExpression__Group_1_0_0__0 ) )
-            // InternalSignalDSL.g:8321:2: ( rule__XCastedExpression__Group_1_0_0__0 )
+            // InternalSignalDSL.g:8583:1: ( ( rule__XCastedExpression__Group_1_0_0__0 ) )
+            // InternalSignalDSL.g:8584:2: ( rule__XCastedExpression__Group_1_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCastedExpressionAccess().getGroup_1_0_0()); 
             }
-            // InternalSignalDSL.g:8322:2: ( rule__XCastedExpression__Group_1_0_0__0 )
-            // InternalSignalDSL.g:8322:3: rule__XCastedExpression__Group_1_0_0__0
+            // InternalSignalDSL.g:8585:2: ( rule__XCastedExpression__Group_1_0_0__0 )
+            // InternalSignalDSL.g:8585:3: rule__XCastedExpression__Group_1_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XCastedExpression__Group_1_0_0__0();
@@ -28564,16 +29349,16 @@
 
 
     // $ANTLR start "rule__XCastedExpression__Group_1_0_0__0"
-    // InternalSignalDSL.g:8331: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:8594: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:8335:1: ( rule__XCastedExpression__Group_1_0_0__0__Impl rule__XCastedExpression__Group_1_0_0__1 )
-            // InternalSignalDSL.g:8336:2: rule__XCastedExpression__Group_1_0_0__0__Impl rule__XCastedExpression__Group_1_0_0__1
+            // InternalSignalDSL.g:8598:1: ( rule__XCastedExpression__Group_1_0_0__0__Impl rule__XCastedExpression__Group_1_0_0__1 )
+            // InternalSignalDSL.g:8599:2: rule__XCastedExpression__Group_1_0_0__0__Impl rule__XCastedExpression__Group_1_0_0__1
             {
-            pushFollow(FOLLOW_59);
+            pushFollow(FOLLOW_64);
             rule__XCastedExpression__Group_1_0_0__0__Impl();
 
             state._fsp--;
@@ -28602,23 +29387,23 @@
 
 
     // $ANTLR start "rule__XCastedExpression__Group_1_0_0__0__Impl"
-    // InternalSignalDSL.g:8343:1: rule__XCastedExpression__Group_1_0_0__0__Impl : ( () ) ;
+    // InternalSignalDSL.g:8606: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:8347:1: ( ( () ) )
-            // InternalSignalDSL.g:8348:1: ( () )
+            // InternalSignalDSL.g:8610:1: ( ( () ) )
+            // InternalSignalDSL.g:8611:1: ( () )
             {
-            // InternalSignalDSL.g:8348:1: ( () )
-            // InternalSignalDSL.g:8349:2: ()
+            // InternalSignalDSL.g:8611:1: ( () )
+            // InternalSignalDSL.g:8612:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCastedExpressionAccess().getXCastedExpressionTargetAction_1_0_0_0()); 
             }
-            // InternalSignalDSL.g:8350:2: ()
-            // InternalSignalDSL.g:8350:3: 
+            // InternalSignalDSL.g:8613:2: ()
+            // InternalSignalDSL.g:8613:3: 
             {
             }
 
@@ -28643,14 +29428,14 @@
 
 
     // $ANTLR start "rule__XCastedExpression__Group_1_0_0__1"
-    // InternalSignalDSL.g:8358:1: rule__XCastedExpression__Group_1_0_0__1 : rule__XCastedExpression__Group_1_0_0__1__Impl ;
+    // InternalSignalDSL.g:8621: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:8362:1: ( rule__XCastedExpression__Group_1_0_0__1__Impl )
-            // InternalSignalDSL.g:8363:2: rule__XCastedExpression__Group_1_0_0__1__Impl
+            // InternalSignalDSL.g:8625:1: ( rule__XCastedExpression__Group_1_0_0__1__Impl )
+            // InternalSignalDSL.g:8626:2: rule__XCastedExpression__Group_1_0_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XCastedExpression__Group_1_0_0__1__Impl();
@@ -28676,22 +29461,22 @@
 
 
     // $ANTLR start "rule__XCastedExpression__Group_1_0_0__1__Impl"
-    // InternalSignalDSL.g:8369:1: rule__XCastedExpression__Group_1_0_0__1__Impl : ( 'as' ) ;
+    // InternalSignalDSL.g:8632: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:8373:1: ( ( 'as' ) )
-            // InternalSignalDSL.g:8374:1: ( 'as' )
+            // InternalSignalDSL.g:8636:1: ( ( 'as' ) )
+            // InternalSignalDSL.g:8637:1: ( 'as' )
             {
-            // InternalSignalDSL.g:8374:1: ( 'as' )
-            // InternalSignalDSL.g:8375:2: 'as'
+            // InternalSignalDSL.g:8637:1: ( 'as' )
+            // InternalSignalDSL.g:8638:2: 'as'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCastedExpressionAccess().getAsKeyword_1_0_0_1()); 
             }
-            match(input,83,FOLLOW_2); if (state.failed) return ;
+            match(input,81,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXCastedExpressionAccess().getAsKeyword_1_0_0_1()); 
             }
@@ -28717,16 +29502,16 @@
 
 
     // $ANTLR start "rule__XPostfixOperation__Group__0"
-    // InternalSignalDSL.g:8385:1: rule__XPostfixOperation__Group__0 : rule__XPostfixOperation__Group__0__Impl rule__XPostfixOperation__Group__1 ;
+    // InternalSignalDSL.g:8648: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:8389:1: ( rule__XPostfixOperation__Group__0__Impl rule__XPostfixOperation__Group__1 )
-            // InternalSignalDSL.g:8390:2: rule__XPostfixOperation__Group__0__Impl rule__XPostfixOperation__Group__1
+            // InternalSignalDSL.g:8652:1: ( rule__XPostfixOperation__Group__0__Impl rule__XPostfixOperation__Group__1 )
+            // InternalSignalDSL.g:8653:2: rule__XPostfixOperation__Group__0__Impl rule__XPostfixOperation__Group__1
             {
-            pushFollow(FOLLOW_61);
+            pushFollow(FOLLOW_66);
             rule__XPostfixOperation__Group__0__Impl();
 
             state._fsp--;
@@ -28755,17 +29540,17 @@
 
 
     // $ANTLR start "rule__XPostfixOperation__Group__0__Impl"
-    // InternalSignalDSL.g:8397:1: rule__XPostfixOperation__Group__0__Impl : ( ruleXMemberFeatureCall ) ;
+    // InternalSignalDSL.g:8660:1: rule__XPostfixOperation__Group__0__Impl : ( ruleXMemberFeatureCall ) ;
     public final void rule__XPostfixOperation__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:8401:1: ( ( ruleXMemberFeatureCall ) )
-            // InternalSignalDSL.g:8402:1: ( ruleXMemberFeatureCall )
+            // InternalSignalDSL.g:8664:1: ( ( ruleXMemberFeatureCall ) )
+            // InternalSignalDSL.g:8665:1: ( ruleXMemberFeatureCall )
             {
-            // InternalSignalDSL.g:8402:1: ( ruleXMemberFeatureCall )
-            // InternalSignalDSL.g:8403:2: ruleXMemberFeatureCall
+            // InternalSignalDSL.g:8665:1: ( ruleXMemberFeatureCall )
+            // InternalSignalDSL.g:8666:2: ruleXMemberFeatureCall
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXPostfixOperationAccess().getXMemberFeatureCallParserRuleCall_0()); 
@@ -28800,14 +29585,14 @@
 
 
     // $ANTLR start "rule__XPostfixOperation__Group__1"
-    // InternalSignalDSL.g:8412:1: rule__XPostfixOperation__Group__1 : rule__XPostfixOperation__Group__1__Impl ;
+    // InternalSignalDSL.g:8675: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:8416:1: ( rule__XPostfixOperation__Group__1__Impl )
-            // InternalSignalDSL.g:8417:2: rule__XPostfixOperation__Group__1__Impl
+            // InternalSignalDSL.g:8679:1: ( rule__XPostfixOperation__Group__1__Impl )
+            // InternalSignalDSL.g:8680:2: rule__XPostfixOperation__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XPostfixOperation__Group__1__Impl();
@@ -28833,42 +29618,42 @@
 
 
     // $ANTLR start "rule__XPostfixOperation__Group__1__Impl"
-    // InternalSignalDSL.g:8423:1: rule__XPostfixOperation__Group__1__Impl : ( ( rule__XPostfixOperation__Group_1__0 )? ) ;
+    // InternalSignalDSL.g:8686: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:8427:1: ( ( ( rule__XPostfixOperation__Group_1__0 )? ) )
-            // InternalSignalDSL.g:8428:1: ( ( rule__XPostfixOperation__Group_1__0 )? )
+            // InternalSignalDSL.g:8690:1: ( ( ( rule__XPostfixOperation__Group_1__0 )? ) )
+            // InternalSignalDSL.g:8691:1: ( ( rule__XPostfixOperation__Group_1__0 )? )
             {
-            // InternalSignalDSL.g:8428:1: ( ( rule__XPostfixOperation__Group_1__0 )? )
-            // InternalSignalDSL.g:8429:2: ( rule__XPostfixOperation__Group_1__0 )?
+            // InternalSignalDSL.g:8691:1: ( ( rule__XPostfixOperation__Group_1__0 )? )
+            // InternalSignalDSL.g:8692:2: ( rule__XPostfixOperation__Group_1__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXPostfixOperationAccess().getGroup_1()); 
             }
-            // InternalSignalDSL.g:8430:2: ( rule__XPostfixOperation__Group_1__0 )?
-            int alt75=2;
-            int LA75_0 = input.LA(1);
+            // InternalSignalDSL.g:8693:2: ( rule__XPostfixOperation__Group_1__0 )?
+            int alt78=2;
+            int LA78_0 = input.LA(1);
 
-            if ( (LA75_0==41) ) {
-                int LA75_1 = input.LA(2);
+            if ( (LA78_0==41) ) {
+                int LA78_1 = input.LA(2);
 
-                if ( (synpred129_InternalSignalDSL()) ) {
-                    alt75=1;
+                if ( (synpred126_InternalSignalDSL()) ) {
+                    alt78=1;
                 }
             }
-            else if ( (LA75_0==42) ) {
-                int LA75_2 = input.LA(2);
+            else if ( (LA78_0==42) ) {
+                int LA78_2 = input.LA(2);
 
-                if ( (synpred129_InternalSignalDSL()) ) {
-                    alt75=1;
+                if ( (synpred126_InternalSignalDSL()) ) {
+                    alt78=1;
                 }
             }
-            switch (alt75) {
+            switch (alt78) {
                 case 1 :
-                    // InternalSignalDSL.g:8430:3: rule__XPostfixOperation__Group_1__0
+                    // InternalSignalDSL.g:8693:3: rule__XPostfixOperation__Group_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XPostfixOperation__Group_1__0();
@@ -28906,14 +29691,14 @@
 
 
     // $ANTLR start "rule__XPostfixOperation__Group_1__0"
-    // InternalSignalDSL.g:8439:1: rule__XPostfixOperation__Group_1__0 : rule__XPostfixOperation__Group_1__0__Impl ;
+    // InternalSignalDSL.g:8702: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:8443:1: ( rule__XPostfixOperation__Group_1__0__Impl )
-            // InternalSignalDSL.g:8444:2: rule__XPostfixOperation__Group_1__0__Impl
+            // InternalSignalDSL.g:8706:1: ( rule__XPostfixOperation__Group_1__0__Impl )
+            // InternalSignalDSL.g:8707:2: rule__XPostfixOperation__Group_1__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XPostfixOperation__Group_1__0__Impl();
@@ -28939,23 +29724,23 @@
 
 
     // $ANTLR start "rule__XPostfixOperation__Group_1__0__Impl"
-    // InternalSignalDSL.g:8450:1: rule__XPostfixOperation__Group_1__0__Impl : ( ( rule__XPostfixOperation__Group_1_0__0 ) ) ;
+    // InternalSignalDSL.g:8713: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:8454:1: ( ( ( rule__XPostfixOperation__Group_1_0__0 ) ) )
-            // InternalSignalDSL.g:8455:1: ( ( rule__XPostfixOperation__Group_1_0__0 ) )
+            // InternalSignalDSL.g:8717:1: ( ( ( rule__XPostfixOperation__Group_1_0__0 ) ) )
+            // InternalSignalDSL.g:8718:1: ( ( rule__XPostfixOperation__Group_1_0__0 ) )
             {
-            // InternalSignalDSL.g:8455:1: ( ( rule__XPostfixOperation__Group_1_0__0 ) )
-            // InternalSignalDSL.g:8456:2: ( rule__XPostfixOperation__Group_1_0__0 )
+            // InternalSignalDSL.g:8718:1: ( ( rule__XPostfixOperation__Group_1_0__0 ) )
+            // InternalSignalDSL.g:8719:2: ( rule__XPostfixOperation__Group_1_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXPostfixOperationAccess().getGroup_1_0()); 
             }
-            // InternalSignalDSL.g:8457:2: ( rule__XPostfixOperation__Group_1_0__0 )
-            // InternalSignalDSL.g:8457:3: rule__XPostfixOperation__Group_1_0__0
+            // InternalSignalDSL.g:8720:2: ( rule__XPostfixOperation__Group_1_0__0 )
+            // InternalSignalDSL.g:8720:3: rule__XPostfixOperation__Group_1_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XPostfixOperation__Group_1_0__0();
@@ -28990,16 +29775,16 @@
 
 
     // $ANTLR start "rule__XPostfixOperation__Group_1_0__0"
-    // InternalSignalDSL.g:8466:1: rule__XPostfixOperation__Group_1_0__0 : rule__XPostfixOperation__Group_1_0__0__Impl rule__XPostfixOperation__Group_1_0__1 ;
+    // InternalSignalDSL.g:8729: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:8470:1: ( rule__XPostfixOperation__Group_1_0__0__Impl rule__XPostfixOperation__Group_1_0__1 )
-            // InternalSignalDSL.g:8471:2: rule__XPostfixOperation__Group_1_0__0__Impl rule__XPostfixOperation__Group_1_0__1
+            // InternalSignalDSL.g:8733:1: ( rule__XPostfixOperation__Group_1_0__0__Impl rule__XPostfixOperation__Group_1_0__1 )
+            // InternalSignalDSL.g:8734:2: rule__XPostfixOperation__Group_1_0__0__Impl rule__XPostfixOperation__Group_1_0__1
             {
-            pushFollow(FOLLOW_61);
+            pushFollow(FOLLOW_66);
             rule__XPostfixOperation__Group_1_0__0__Impl();
 
             state._fsp--;
@@ -29028,23 +29813,23 @@
 
 
     // $ANTLR start "rule__XPostfixOperation__Group_1_0__0__Impl"
-    // InternalSignalDSL.g:8478:1: rule__XPostfixOperation__Group_1_0__0__Impl : ( () ) ;
+    // InternalSignalDSL.g:8741: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:8482:1: ( ( () ) )
-            // InternalSignalDSL.g:8483:1: ( () )
+            // InternalSignalDSL.g:8745:1: ( ( () ) )
+            // InternalSignalDSL.g:8746:1: ( () )
             {
-            // InternalSignalDSL.g:8483:1: ( () )
-            // InternalSignalDSL.g:8484:2: ()
+            // InternalSignalDSL.g:8746:1: ( () )
+            // InternalSignalDSL.g:8747:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXPostfixOperationAccess().getXPostfixOperationOperandAction_1_0_0()); 
             }
-            // InternalSignalDSL.g:8485:2: ()
-            // InternalSignalDSL.g:8485:3: 
+            // InternalSignalDSL.g:8748:2: ()
+            // InternalSignalDSL.g:8748:3: 
             {
             }
 
@@ -29069,14 +29854,14 @@
 
 
     // $ANTLR start "rule__XPostfixOperation__Group_1_0__1"
-    // InternalSignalDSL.g:8493:1: rule__XPostfixOperation__Group_1_0__1 : rule__XPostfixOperation__Group_1_0__1__Impl ;
+    // InternalSignalDSL.g:8756: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:8497:1: ( rule__XPostfixOperation__Group_1_0__1__Impl )
-            // InternalSignalDSL.g:8498:2: rule__XPostfixOperation__Group_1_0__1__Impl
+            // InternalSignalDSL.g:8760:1: ( rule__XPostfixOperation__Group_1_0__1__Impl )
+            // InternalSignalDSL.g:8761:2: rule__XPostfixOperation__Group_1_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XPostfixOperation__Group_1_0__1__Impl();
@@ -29102,23 +29887,23 @@
 
 
     // $ANTLR start "rule__XPostfixOperation__Group_1_0__1__Impl"
-    // InternalSignalDSL.g:8504:1: rule__XPostfixOperation__Group_1_0__1__Impl : ( ( rule__XPostfixOperation__FeatureAssignment_1_0_1 ) ) ;
+    // InternalSignalDSL.g:8767: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:8508:1: ( ( ( rule__XPostfixOperation__FeatureAssignment_1_0_1 ) ) )
-            // InternalSignalDSL.g:8509:1: ( ( rule__XPostfixOperation__FeatureAssignment_1_0_1 ) )
+            // InternalSignalDSL.g:8771:1: ( ( ( rule__XPostfixOperation__FeatureAssignment_1_0_1 ) ) )
+            // InternalSignalDSL.g:8772:1: ( ( rule__XPostfixOperation__FeatureAssignment_1_0_1 ) )
             {
-            // InternalSignalDSL.g:8509:1: ( ( rule__XPostfixOperation__FeatureAssignment_1_0_1 ) )
-            // InternalSignalDSL.g:8510:2: ( rule__XPostfixOperation__FeatureAssignment_1_0_1 )
+            // InternalSignalDSL.g:8772:1: ( ( rule__XPostfixOperation__FeatureAssignment_1_0_1 ) )
+            // InternalSignalDSL.g:8773:2: ( rule__XPostfixOperation__FeatureAssignment_1_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXPostfixOperationAccess().getFeatureAssignment_1_0_1()); 
             }
-            // InternalSignalDSL.g:8511:2: ( rule__XPostfixOperation__FeatureAssignment_1_0_1 )
-            // InternalSignalDSL.g:8511:3: rule__XPostfixOperation__FeatureAssignment_1_0_1
+            // InternalSignalDSL.g:8774:2: ( rule__XPostfixOperation__FeatureAssignment_1_0_1 )
+            // InternalSignalDSL.g:8774:3: rule__XPostfixOperation__FeatureAssignment_1_0_1
             {
             pushFollow(FOLLOW_2);
             rule__XPostfixOperation__FeatureAssignment_1_0_1();
@@ -29153,16 +29938,16 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group__0"
-    // InternalSignalDSL.g:8520:1: rule__XMemberFeatureCall__Group__0 : rule__XMemberFeatureCall__Group__0__Impl rule__XMemberFeatureCall__Group__1 ;
+    // InternalSignalDSL.g:8783: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:8524:1: ( rule__XMemberFeatureCall__Group__0__Impl rule__XMemberFeatureCall__Group__1 )
-            // InternalSignalDSL.g:8525:2: rule__XMemberFeatureCall__Group__0__Impl rule__XMemberFeatureCall__Group__1
+            // InternalSignalDSL.g:8787:1: ( rule__XMemberFeatureCall__Group__0__Impl rule__XMemberFeatureCall__Group__1 )
+            // InternalSignalDSL.g:8788:2: rule__XMemberFeatureCall__Group__0__Impl rule__XMemberFeatureCall__Group__1
             {
-            pushFollow(FOLLOW_62);
+            pushFollow(FOLLOW_67);
             rule__XMemberFeatureCall__Group__0__Impl();
 
             state._fsp--;
@@ -29191,17 +29976,17 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group__0__Impl"
-    // InternalSignalDSL.g:8532:1: rule__XMemberFeatureCall__Group__0__Impl : ( ruleXPrimaryExpression ) ;
+    // InternalSignalDSL.g:8795:1: rule__XMemberFeatureCall__Group__0__Impl : ( ruleXPrimaryExpression ) ;
     public final void rule__XMemberFeatureCall__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:8536:1: ( ( ruleXPrimaryExpression ) )
-            // InternalSignalDSL.g:8537:1: ( ruleXPrimaryExpression )
+            // InternalSignalDSL.g:8799:1: ( ( ruleXPrimaryExpression ) )
+            // InternalSignalDSL.g:8800:1: ( ruleXPrimaryExpression )
             {
-            // InternalSignalDSL.g:8537:1: ( ruleXPrimaryExpression )
-            // InternalSignalDSL.g:8538:2: ruleXPrimaryExpression
+            // InternalSignalDSL.g:8800:1: ( ruleXPrimaryExpression )
+            // InternalSignalDSL.g:8801:2: ruleXPrimaryExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getXPrimaryExpressionParserRuleCall_0()); 
@@ -29236,14 +30021,14 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group__1"
-    // InternalSignalDSL.g:8547:1: rule__XMemberFeatureCall__Group__1 : rule__XMemberFeatureCall__Group__1__Impl ;
+    // InternalSignalDSL.g:8810: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:8551:1: ( rule__XMemberFeatureCall__Group__1__Impl )
-            // InternalSignalDSL.g:8552:2: rule__XMemberFeatureCall__Group__1__Impl
+            // InternalSignalDSL.g:8814:1: ( rule__XMemberFeatureCall__Group__1__Impl )
+            // InternalSignalDSL.g:8815:2: rule__XMemberFeatureCall__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__Group__1__Impl();
@@ -29269,54 +30054,54 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group__1__Impl"
-    // InternalSignalDSL.g:8558:1: rule__XMemberFeatureCall__Group__1__Impl : ( ( rule__XMemberFeatureCall__Alternatives_1 )* ) ;
+    // InternalSignalDSL.g:8821: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:8562:1: ( ( ( rule__XMemberFeatureCall__Alternatives_1 )* ) )
-            // InternalSignalDSL.g:8563:1: ( ( rule__XMemberFeatureCall__Alternatives_1 )* )
+            // InternalSignalDSL.g:8825:1: ( ( ( rule__XMemberFeatureCall__Alternatives_1 )* ) )
+            // InternalSignalDSL.g:8826:1: ( ( rule__XMemberFeatureCall__Alternatives_1 )* )
             {
-            // InternalSignalDSL.g:8563:1: ( ( rule__XMemberFeatureCall__Alternatives_1 )* )
-            // InternalSignalDSL.g:8564:2: ( rule__XMemberFeatureCall__Alternatives_1 )*
+            // InternalSignalDSL.g:8826:1: ( ( rule__XMemberFeatureCall__Alternatives_1 )* )
+            // InternalSignalDSL.g:8827:2: ( rule__XMemberFeatureCall__Alternatives_1 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getAlternatives_1()); 
             }
-            // InternalSignalDSL.g:8565:2: ( rule__XMemberFeatureCall__Alternatives_1 )*
-            loop76:
+            // InternalSignalDSL.g:8828:2: ( rule__XMemberFeatureCall__Alternatives_1 )*
+            loop79:
             do {
-                int alt76=2;
+                int alt79=2;
                 switch ( input.LA(1) ) {
                 case 43:
                     {
-                    int LA76_2 = input.LA(2);
+                    int LA79_2 = input.LA(2);
 
-                    if ( (synpred130_InternalSignalDSL()) ) {
-                        alt76=1;
+                    if ( (synpred127_InternalSignalDSL()) ) {
+                        alt79=1;
                     }
 
 
                     }
                     break;
-                case 104:
+                case 102:
                     {
-                    int LA76_3 = input.LA(2);
+                    int LA79_3 = input.LA(2);
 
-                    if ( (synpred130_InternalSignalDSL()) ) {
-                        alt76=1;
+                    if ( (synpred127_InternalSignalDSL()) ) {
+                        alt79=1;
                     }
 
 
                     }
                     break;
-                case 105:
+                case 103:
                     {
-                    int LA76_4 = input.LA(2);
+                    int LA79_4 = input.LA(2);
 
-                    if ( (synpred130_InternalSignalDSL()) ) {
-                        alt76=1;
+                    if ( (synpred127_InternalSignalDSL()) ) {
+                        alt79=1;
                     }
 
 
@@ -29325,11 +30110,11 @@
 
                 }
 
-                switch (alt76) {
+                switch (alt79) {
             	case 1 :
-            	    // InternalSignalDSL.g:8565:3: rule__XMemberFeatureCall__Alternatives_1
+            	    // InternalSignalDSL.g:8828:3: rule__XMemberFeatureCall__Alternatives_1
             	    {
-            	    pushFollow(FOLLOW_63);
+            	    pushFollow(FOLLOW_68);
             	    rule__XMemberFeatureCall__Alternatives_1();
 
             	    state._fsp--;
@@ -29339,7 +30124,7 @@
             	    break;
 
             	default :
-            	    break loop76;
+            	    break loop79;
                 }
             } while (true);
 
@@ -29368,16 +30153,16 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_0__0"
-    // InternalSignalDSL.g:8574:1: rule__XMemberFeatureCall__Group_1_0__0 : rule__XMemberFeatureCall__Group_1_0__0__Impl rule__XMemberFeatureCall__Group_1_0__1 ;
+    // InternalSignalDSL.g:8837: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:8578:1: ( rule__XMemberFeatureCall__Group_1_0__0__Impl rule__XMemberFeatureCall__Group_1_0__1 )
-            // InternalSignalDSL.g:8579:2: rule__XMemberFeatureCall__Group_1_0__0__Impl rule__XMemberFeatureCall__Group_1_0__1
+            // InternalSignalDSL.g:8841:1: ( rule__XMemberFeatureCall__Group_1_0__0__Impl rule__XMemberFeatureCall__Group_1_0__1 )
+            // InternalSignalDSL.g:8842:2: rule__XMemberFeatureCall__Group_1_0__0__Impl rule__XMemberFeatureCall__Group_1_0__1
             {
-            pushFollow(FOLLOW_30);
+            pushFollow(FOLLOW_35);
             rule__XMemberFeatureCall__Group_1_0__0__Impl();
 
             state._fsp--;
@@ -29406,23 +30191,23 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_0__0__Impl"
-    // InternalSignalDSL.g:8586:1: rule__XMemberFeatureCall__Group_1_0__0__Impl : ( ( rule__XMemberFeatureCall__Group_1_0_0__0 ) ) ;
+    // InternalSignalDSL.g:8849: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:8590:1: ( ( ( rule__XMemberFeatureCall__Group_1_0_0__0 ) ) )
-            // InternalSignalDSL.g:8591:1: ( ( rule__XMemberFeatureCall__Group_1_0_0__0 ) )
+            // InternalSignalDSL.g:8853:1: ( ( ( rule__XMemberFeatureCall__Group_1_0_0__0 ) ) )
+            // InternalSignalDSL.g:8854:1: ( ( rule__XMemberFeatureCall__Group_1_0_0__0 ) )
             {
-            // InternalSignalDSL.g:8591:1: ( ( rule__XMemberFeatureCall__Group_1_0_0__0 ) )
-            // InternalSignalDSL.g:8592:2: ( rule__XMemberFeatureCall__Group_1_0_0__0 )
+            // InternalSignalDSL.g:8854:1: ( ( rule__XMemberFeatureCall__Group_1_0_0__0 ) )
+            // InternalSignalDSL.g:8855:2: ( rule__XMemberFeatureCall__Group_1_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_0_0()); 
             }
-            // InternalSignalDSL.g:8593:2: ( rule__XMemberFeatureCall__Group_1_0_0__0 )
-            // InternalSignalDSL.g:8593:3: rule__XMemberFeatureCall__Group_1_0_0__0
+            // InternalSignalDSL.g:8856:2: ( rule__XMemberFeatureCall__Group_1_0_0__0 )
+            // InternalSignalDSL.g:8856:3: rule__XMemberFeatureCall__Group_1_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__Group_1_0_0__0();
@@ -29457,14 +30242,14 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_0__1"
-    // InternalSignalDSL.g:8601:1: rule__XMemberFeatureCall__Group_1_0__1 : rule__XMemberFeatureCall__Group_1_0__1__Impl ;
+    // InternalSignalDSL.g:8864: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:8605:1: ( rule__XMemberFeatureCall__Group_1_0__1__Impl )
-            // InternalSignalDSL.g:8606:2: rule__XMemberFeatureCall__Group_1_0__1__Impl
+            // InternalSignalDSL.g:8868:1: ( rule__XMemberFeatureCall__Group_1_0__1__Impl )
+            // InternalSignalDSL.g:8869:2: rule__XMemberFeatureCall__Group_1_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__Group_1_0__1__Impl();
@@ -29490,23 +30275,23 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_0__1__Impl"
-    // InternalSignalDSL.g:8612:1: rule__XMemberFeatureCall__Group_1_0__1__Impl : ( ( rule__XMemberFeatureCall__ValueAssignment_1_0_1 ) ) ;
+    // InternalSignalDSL.g:8875: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:8616:1: ( ( ( rule__XMemberFeatureCall__ValueAssignment_1_0_1 ) ) )
-            // InternalSignalDSL.g:8617:1: ( ( rule__XMemberFeatureCall__ValueAssignment_1_0_1 ) )
+            // InternalSignalDSL.g:8879:1: ( ( ( rule__XMemberFeatureCall__ValueAssignment_1_0_1 ) ) )
+            // InternalSignalDSL.g:8880:1: ( ( rule__XMemberFeatureCall__ValueAssignment_1_0_1 ) )
             {
-            // InternalSignalDSL.g:8617:1: ( ( rule__XMemberFeatureCall__ValueAssignment_1_0_1 ) )
-            // InternalSignalDSL.g:8618:2: ( rule__XMemberFeatureCall__ValueAssignment_1_0_1 )
+            // InternalSignalDSL.g:8880:1: ( ( rule__XMemberFeatureCall__ValueAssignment_1_0_1 ) )
+            // InternalSignalDSL.g:8881:2: ( rule__XMemberFeatureCall__ValueAssignment_1_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getValueAssignment_1_0_1()); 
             }
-            // InternalSignalDSL.g:8619:2: ( rule__XMemberFeatureCall__ValueAssignment_1_0_1 )
-            // InternalSignalDSL.g:8619:3: rule__XMemberFeatureCall__ValueAssignment_1_0_1
+            // InternalSignalDSL.g:8882:2: ( rule__XMemberFeatureCall__ValueAssignment_1_0_1 )
+            // InternalSignalDSL.g:8882:3: rule__XMemberFeatureCall__ValueAssignment_1_0_1
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__ValueAssignment_1_0_1();
@@ -29541,14 +30326,14 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_0_0__0"
-    // InternalSignalDSL.g:8628:1: rule__XMemberFeatureCall__Group_1_0_0__0 : rule__XMemberFeatureCall__Group_1_0_0__0__Impl ;
+    // InternalSignalDSL.g:8891: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:8632:1: ( rule__XMemberFeatureCall__Group_1_0_0__0__Impl )
-            // InternalSignalDSL.g:8633:2: rule__XMemberFeatureCall__Group_1_0_0__0__Impl
+            // InternalSignalDSL.g:8895:1: ( rule__XMemberFeatureCall__Group_1_0_0__0__Impl )
+            // InternalSignalDSL.g:8896:2: rule__XMemberFeatureCall__Group_1_0_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__Group_1_0_0__0__Impl();
@@ -29574,23 +30359,23 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_0_0__0__Impl"
-    // InternalSignalDSL.g:8639:1: rule__XMemberFeatureCall__Group_1_0_0__0__Impl : ( ( rule__XMemberFeatureCall__Group_1_0_0_0__0 ) ) ;
+    // InternalSignalDSL.g:8902: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:8643:1: ( ( ( rule__XMemberFeatureCall__Group_1_0_0_0__0 ) ) )
-            // InternalSignalDSL.g:8644:1: ( ( rule__XMemberFeatureCall__Group_1_0_0_0__0 ) )
+            // InternalSignalDSL.g:8906:1: ( ( ( rule__XMemberFeatureCall__Group_1_0_0_0__0 ) ) )
+            // InternalSignalDSL.g:8907:1: ( ( rule__XMemberFeatureCall__Group_1_0_0_0__0 ) )
             {
-            // InternalSignalDSL.g:8644:1: ( ( rule__XMemberFeatureCall__Group_1_0_0_0__0 ) )
-            // InternalSignalDSL.g:8645:2: ( rule__XMemberFeatureCall__Group_1_0_0_0__0 )
+            // InternalSignalDSL.g:8907:1: ( ( rule__XMemberFeatureCall__Group_1_0_0_0__0 ) )
+            // InternalSignalDSL.g:8908:2: ( rule__XMemberFeatureCall__Group_1_0_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_0_0_0()); 
             }
-            // InternalSignalDSL.g:8646:2: ( rule__XMemberFeatureCall__Group_1_0_0_0__0 )
-            // InternalSignalDSL.g:8646:3: rule__XMemberFeatureCall__Group_1_0_0_0__0
+            // InternalSignalDSL.g:8909:2: ( rule__XMemberFeatureCall__Group_1_0_0_0__0 )
+            // InternalSignalDSL.g:8909:3: rule__XMemberFeatureCall__Group_1_0_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__Group_1_0_0_0__0();
@@ -29625,16 +30410,16 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_0_0_0__0"
-    // InternalSignalDSL.g:8655: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:8918: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:8659:1: ( rule__XMemberFeatureCall__Group_1_0_0_0__0__Impl rule__XMemberFeatureCall__Group_1_0_0_0__1 )
-            // InternalSignalDSL.g:8660:2: rule__XMemberFeatureCall__Group_1_0_0_0__0__Impl rule__XMemberFeatureCall__Group_1_0_0_0__1
+            // InternalSignalDSL.g:8922:1: ( rule__XMemberFeatureCall__Group_1_0_0_0__0__Impl rule__XMemberFeatureCall__Group_1_0_0_0__1 )
+            // InternalSignalDSL.g:8923:2: rule__XMemberFeatureCall__Group_1_0_0_0__0__Impl rule__XMemberFeatureCall__Group_1_0_0_0__1
             {
-            pushFollow(FOLLOW_64);
+            pushFollow(FOLLOW_69);
             rule__XMemberFeatureCall__Group_1_0_0_0__0__Impl();
 
             state._fsp--;
@@ -29663,23 +30448,23 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_0_0_0__0__Impl"
-    // InternalSignalDSL.g:8667:1: rule__XMemberFeatureCall__Group_1_0_0_0__0__Impl : ( () ) ;
+    // InternalSignalDSL.g:8930: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:8671:1: ( ( () ) )
-            // InternalSignalDSL.g:8672:1: ( () )
+            // InternalSignalDSL.g:8934:1: ( ( () ) )
+            // InternalSignalDSL.g:8935:1: ( () )
             {
-            // InternalSignalDSL.g:8672:1: ( () )
-            // InternalSignalDSL.g:8673:2: ()
+            // InternalSignalDSL.g:8935:1: ( () )
+            // InternalSignalDSL.g:8936:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getXAssignmentAssignableAction_1_0_0_0_0()); 
             }
-            // InternalSignalDSL.g:8674:2: ()
-            // InternalSignalDSL.g:8674:3: 
+            // InternalSignalDSL.g:8937:2: ()
+            // InternalSignalDSL.g:8937:3: 
             {
             }
 
@@ -29704,16 +30489,16 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_0_0_0__1"
-    // InternalSignalDSL.g:8682: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:8945: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:8686:1: ( rule__XMemberFeatureCall__Group_1_0_0_0__1__Impl rule__XMemberFeatureCall__Group_1_0_0_0__2 )
-            // InternalSignalDSL.g:8687:2: rule__XMemberFeatureCall__Group_1_0_0_0__1__Impl rule__XMemberFeatureCall__Group_1_0_0_0__2
+            // InternalSignalDSL.g:8949:1: ( rule__XMemberFeatureCall__Group_1_0_0_0__1__Impl rule__XMemberFeatureCall__Group_1_0_0_0__2 )
+            // InternalSignalDSL.g:8950:2: rule__XMemberFeatureCall__Group_1_0_0_0__1__Impl rule__XMemberFeatureCall__Group_1_0_0_0__2
             {
-            pushFollow(FOLLOW_35);
+            pushFollow(FOLLOW_40);
             rule__XMemberFeatureCall__Group_1_0_0_0__1__Impl();
 
             state._fsp--;
@@ -29742,23 +30527,23 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_0_0_0__1__Impl"
-    // InternalSignalDSL.g:8694:1: rule__XMemberFeatureCall__Group_1_0_0_0__1__Impl : ( ( rule__XMemberFeatureCall__Alternatives_1_0_0_0_1 ) ) ;
+    // InternalSignalDSL.g:8957: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:8698:1: ( ( ( rule__XMemberFeatureCall__Alternatives_1_0_0_0_1 ) ) )
-            // InternalSignalDSL.g:8699:1: ( ( rule__XMemberFeatureCall__Alternatives_1_0_0_0_1 ) )
+            // InternalSignalDSL.g:8961:1: ( ( ( rule__XMemberFeatureCall__Alternatives_1_0_0_0_1 ) ) )
+            // InternalSignalDSL.g:8962:1: ( ( rule__XMemberFeatureCall__Alternatives_1_0_0_0_1 ) )
             {
-            // InternalSignalDSL.g:8699:1: ( ( rule__XMemberFeatureCall__Alternatives_1_0_0_0_1 ) )
-            // InternalSignalDSL.g:8700:2: ( rule__XMemberFeatureCall__Alternatives_1_0_0_0_1 )
+            // InternalSignalDSL.g:8962:1: ( ( rule__XMemberFeatureCall__Alternatives_1_0_0_0_1 ) )
+            // InternalSignalDSL.g:8963:2: ( rule__XMemberFeatureCall__Alternatives_1_0_0_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getAlternatives_1_0_0_0_1()); 
             }
-            // InternalSignalDSL.g:8701:2: ( rule__XMemberFeatureCall__Alternatives_1_0_0_0_1 )
-            // InternalSignalDSL.g:8701:3: rule__XMemberFeatureCall__Alternatives_1_0_0_0_1
+            // InternalSignalDSL.g:8964:2: ( rule__XMemberFeatureCall__Alternatives_1_0_0_0_1 )
+            // InternalSignalDSL.g:8964:3: rule__XMemberFeatureCall__Alternatives_1_0_0_0_1
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__Alternatives_1_0_0_0_1();
@@ -29793,16 +30578,16 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_0_0_0__2"
-    // InternalSignalDSL.g:8709: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:8972: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:8713:1: ( rule__XMemberFeatureCall__Group_1_0_0_0__2__Impl rule__XMemberFeatureCall__Group_1_0_0_0__3 )
-            // InternalSignalDSL.g:8714:2: rule__XMemberFeatureCall__Group_1_0_0_0__2__Impl rule__XMemberFeatureCall__Group_1_0_0_0__3
+            // InternalSignalDSL.g:8976:1: ( rule__XMemberFeatureCall__Group_1_0_0_0__2__Impl rule__XMemberFeatureCall__Group_1_0_0_0__3 )
+            // InternalSignalDSL.g:8977:2: rule__XMemberFeatureCall__Group_1_0_0_0__2__Impl rule__XMemberFeatureCall__Group_1_0_0_0__3
             {
-            pushFollow(FOLLOW_31);
+            pushFollow(FOLLOW_36);
             rule__XMemberFeatureCall__Group_1_0_0_0__2__Impl();
 
             state._fsp--;
@@ -29831,23 +30616,23 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_0_0_0__2__Impl"
-    // InternalSignalDSL.g:8721:1: rule__XMemberFeatureCall__Group_1_0_0_0__2__Impl : ( ( rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2 ) ) ;
+    // InternalSignalDSL.g:8984: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:8725:1: ( ( ( rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2 ) ) )
-            // InternalSignalDSL.g:8726:1: ( ( rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2 ) )
+            // InternalSignalDSL.g:8988:1: ( ( ( rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2 ) ) )
+            // InternalSignalDSL.g:8989:1: ( ( rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2 ) )
             {
-            // InternalSignalDSL.g:8726:1: ( ( rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2 ) )
-            // InternalSignalDSL.g:8727:2: ( rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2 )
+            // InternalSignalDSL.g:8989:1: ( ( rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2 ) )
+            // InternalSignalDSL.g:8990:2: ( rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getFeatureAssignment_1_0_0_0_2()); 
             }
-            // InternalSignalDSL.g:8728:2: ( rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2 )
-            // InternalSignalDSL.g:8728:3: rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2
+            // InternalSignalDSL.g:8991:2: ( rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2 )
+            // InternalSignalDSL.g:8991:3: rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2();
@@ -29882,14 +30667,14 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_0_0_0__3"
-    // InternalSignalDSL.g:8736:1: rule__XMemberFeatureCall__Group_1_0_0_0__3 : rule__XMemberFeatureCall__Group_1_0_0_0__3__Impl ;
+    // InternalSignalDSL.g:8999: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:8740:1: ( rule__XMemberFeatureCall__Group_1_0_0_0__3__Impl )
-            // InternalSignalDSL.g:8741:2: rule__XMemberFeatureCall__Group_1_0_0_0__3__Impl
+            // InternalSignalDSL.g:9003:1: ( rule__XMemberFeatureCall__Group_1_0_0_0__3__Impl )
+            // InternalSignalDSL.g:9004:2: rule__XMemberFeatureCall__Group_1_0_0_0__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__Group_1_0_0_0__3__Impl();
@@ -29915,17 +30700,17 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_0_0_0__3__Impl"
-    // InternalSignalDSL.g:8747:1: rule__XMemberFeatureCall__Group_1_0_0_0__3__Impl : ( ruleOpSingleAssign ) ;
+    // InternalSignalDSL.g:9010: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:8751:1: ( ( ruleOpSingleAssign ) )
-            // InternalSignalDSL.g:8752:1: ( ruleOpSingleAssign )
+            // InternalSignalDSL.g:9014:1: ( ( ruleOpSingleAssign ) )
+            // InternalSignalDSL.g:9015:1: ( ruleOpSingleAssign )
             {
-            // InternalSignalDSL.g:8752:1: ( ruleOpSingleAssign )
-            // InternalSignalDSL.g:8753:2: ruleOpSingleAssign
+            // InternalSignalDSL.g:9015:1: ( ruleOpSingleAssign )
+            // InternalSignalDSL.g:9016:2: ruleOpSingleAssign
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getOpSingleAssignParserRuleCall_1_0_0_0_3()); 
@@ -29960,16 +30745,16 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1__0"
-    // InternalSignalDSL.g:8763:1: rule__XMemberFeatureCall__Group_1_1__0 : rule__XMemberFeatureCall__Group_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1__1 ;
+    // InternalSignalDSL.g:9026: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:8767:1: ( rule__XMemberFeatureCall__Group_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1__1 )
-            // InternalSignalDSL.g:8768:2: rule__XMemberFeatureCall__Group_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1__1
+            // InternalSignalDSL.g:9030:1: ( rule__XMemberFeatureCall__Group_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1__1 )
+            // InternalSignalDSL.g:9031:2: rule__XMemberFeatureCall__Group_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1__1
             {
-            pushFollow(FOLLOW_65);
+            pushFollow(FOLLOW_70);
             rule__XMemberFeatureCall__Group_1_1__0__Impl();
 
             state._fsp--;
@@ -29998,23 +30783,23 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1__0__Impl"
-    // InternalSignalDSL.g:8775:1: rule__XMemberFeatureCall__Group_1_1__0__Impl : ( ( rule__XMemberFeatureCall__Group_1_1_0__0 ) ) ;
+    // InternalSignalDSL.g:9038: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:8779:1: ( ( ( rule__XMemberFeatureCall__Group_1_1_0__0 ) ) )
-            // InternalSignalDSL.g:8780:1: ( ( rule__XMemberFeatureCall__Group_1_1_0__0 ) )
+            // InternalSignalDSL.g:9042:1: ( ( ( rule__XMemberFeatureCall__Group_1_1_0__0 ) ) )
+            // InternalSignalDSL.g:9043:1: ( ( rule__XMemberFeatureCall__Group_1_1_0__0 ) )
             {
-            // InternalSignalDSL.g:8780:1: ( ( rule__XMemberFeatureCall__Group_1_1_0__0 ) )
-            // InternalSignalDSL.g:8781:2: ( rule__XMemberFeatureCall__Group_1_1_0__0 )
+            // InternalSignalDSL.g:9043:1: ( ( rule__XMemberFeatureCall__Group_1_1_0__0 ) )
+            // InternalSignalDSL.g:9044:2: ( rule__XMemberFeatureCall__Group_1_1_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_0()); 
             }
-            // InternalSignalDSL.g:8782:2: ( rule__XMemberFeatureCall__Group_1_1_0__0 )
-            // InternalSignalDSL.g:8782:3: rule__XMemberFeatureCall__Group_1_1_0__0
+            // InternalSignalDSL.g:9045:2: ( rule__XMemberFeatureCall__Group_1_1_0__0 )
+            // InternalSignalDSL.g:9045:3: rule__XMemberFeatureCall__Group_1_1_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__Group_1_1_0__0();
@@ -30049,16 +30834,16 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1__1"
-    // InternalSignalDSL.g:8790:1: rule__XMemberFeatureCall__Group_1_1__1 : rule__XMemberFeatureCall__Group_1_1__1__Impl rule__XMemberFeatureCall__Group_1_1__2 ;
+    // InternalSignalDSL.g:9053: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:8794:1: ( rule__XMemberFeatureCall__Group_1_1__1__Impl rule__XMemberFeatureCall__Group_1_1__2 )
-            // InternalSignalDSL.g:8795:2: rule__XMemberFeatureCall__Group_1_1__1__Impl rule__XMemberFeatureCall__Group_1_1__2
+            // InternalSignalDSL.g:9057:1: ( rule__XMemberFeatureCall__Group_1_1__1__Impl rule__XMemberFeatureCall__Group_1_1__2 )
+            // InternalSignalDSL.g:9058:2: rule__XMemberFeatureCall__Group_1_1__1__Impl rule__XMemberFeatureCall__Group_1_1__2
             {
-            pushFollow(FOLLOW_65);
+            pushFollow(FOLLOW_70);
             rule__XMemberFeatureCall__Group_1_1__1__Impl();
 
             state._fsp--;
@@ -30087,31 +30872,31 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1__1__Impl"
-    // InternalSignalDSL.g:8802:1: rule__XMemberFeatureCall__Group_1_1__1__Impl : ( ( rule__XMemberFeatureCall__Group_1_1_1__0 )? ) ;
+    // InternalSignalDSL.g:9065: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:8806:1: ( ( ( rule__XMemberFeatureCall__Group_1_1_1__0 )? ) )
-            // InternalSignalDSL.g:8807:1: ( ( rule__XMemberFeatureCall__Group_1_1_1__0 )? )
+            // InternalSignalDSL.g:9069:1: ( ( ( rule__XMemberFeatureCall__Group_1_1_1__0 )? ) )
+            // InternalSignalDSL.g:9070:1: ( ( rule__XMemberFeatureCall__Group_1_1_1__0 )? )
             {
-            // InternalSignalDSL.g:8807:1: ( ( rule__XMemberFeatureCall__Group_1_1_1__0 )? )
-            // InternalSignalDSL.g:8808:2: ( rule__XMemberFeatureCall__Group_1_1_1__0 )?
+            // InternalSignalDSL.g:9070:1: ( ( rule__XMemberFeatureCall__Group_1_1_1__0 )? )
+            // InternalSignalDSL.g:9071:2: ( rule__XMemberFeatureCall__Group_1_1_1__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_1()); 
             }
-            // InternalSignalDSL.g:8809:2: ( rule__XMemberFeatureCall__Group_1_1_1__0 )?
-            int alt77=2;
-            int LA77_0 = input.LA(1);
+            // InternalSignalDSL.g:9072:2: ( rule__XMemberFeatureCall__Group_1_1_1__0 )?
+            int alt80=2;
+            int LA80_0 = input.LA(1);
 
-            if ( (LA77_0==27) ) {
-                alt77=1;
+            if ( (LA80_0==27) ) {
+                alt80=1;
             }
-            switch (alt77) {
+            switch (alt80) {
                 case 1 :
-                    // InternalSignalDSL.g:8809:3: rule__XMemberFeatureCall__Group_1_1_1__0
+                    // InternalSignalDSL.g:9072:3: rule__XMemberFeatureCall__Group_1_1_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XMemberFeatureCall__Group_1_1_1__0();
@@ -30149,16 +30934,16 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1__2"
-    // InternalSignalDSL.g:8817:1: rule__XMemberFeatureCall__Group_1_1__2 : rule__XMemberFeatureCall__Group_1_1__2__Impl rule__XMemberFeatureCall__Group_1_1__3 ;
+    // InternalSignalDSL.g:9080: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:8821:1: ( rule__XMemberFeatureCall__Group_1_1__2__Impl rule__XMemberFeatureCall__Group_1_1__3 )
-            // InternalSignalDSL.g:8822:2: rule__XMemberFeatureCall__Group_1_1__2__Impl rule__XMemberFeatureCall__Group_1_1__3
+            // InternalSignalDSL.g:9084:1: ( rule__XMemberFeatureCall__Group_1_1__2__Impl rule__XMemberFeatureCall__Group_1_1__3 )
+            // InternalSignalDSL.g:9085:2: rule__XMemberFeatureCall__Group_1_1__2__Impl rule__XMemberFeatureCall__Group_1_1__3
             {
-            pushFollow(FOLLOW_66);
+            pushFollow(FOLLOW_71);
             rule__XMemberFeatureCall__Group_1_1__2__Impl();
 
             state._fsp--;
@@ -30187,23 +30972,23 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1__2__Impl"
-    // InternalSignalDSL.g:8829:1: rule__XMemberFeatureCall__Group_1_1__2__Impl : ( ( rule__XMemberFeatureCall__FeatureAssignment_1_1_2 ) ) ;
+    // InternalSignalDSL.g:9092: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:8833:1: ( ( ( rule__XMemberFeatureCall__FeatureAssignment_1_1_2 ) ) )
-            // InternalSignalDSL.g:8834:1: ( ( rule__XMemberFeatureCall__FeatureAssignment_1_1_2 ) )
+            // InternalSignalDSL.g:9096:1: ( ( ( rule__XMemberFeatureCall__FeatureAssignment_1_1_2 ) ) )
+            // InternalSignalDSL.g:9097:1: ( ( rule__XMemberFeatureCall__FeatureAssignment_1_1_2 ) )
             {
-            // InternalSignalDSL.g:8834:1: ( ( rule__XMemberFeatureCall__FeatureAssignment_1_1_2 ) )
-            // InternalSignalDSL.g:8835:2: ( rule__XMemberFeatureCall__FeatureAssignment_1_1_2 )
+            // InternalSignalDSL.g:9097:1: ( ( rule__XMemberFeatureCall__FeatureAssignment_1_1_2 ) )
+            // InternalSignalDSL.g:9098:2: ( rule__XMemberFeatureCall__FeatureAssignment_1_1_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getFeatureAssignment_1_1_2()); 
             }
-            // InternalSignalDSL.g:8836:2: ( rule__XMemberFeatureCall__FeatureAssignment_1_1_2 )
-            // InternalSignalDSL.g:8836:3: rule__XMemberFeatureCall__FeatureAssignment_1_1_2
+            // InternalSignalDSL.g:9099:2: ( rule__XMemberFeatureCall__FeatureAssignment_1_1_2 )
+            // InternalSignalDSL.g:9099:3: rule__XMemberFeatureCall__FeatureAssignment_1_1_2
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__FeatureAssignment_1_1_2();
@@ -30238,16 +31023,16 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1__3"
-    // InternalSignalDSL.g:8844:1: rule__XMemberFeatureCall__Group_1_1__3 : rule__XMemberFeatureCall__Group_1_1__3__Impl rule__XMemberFeatureCall__Group_1_1__4 ;
+    // InternalSignalDSL.g:9107: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:8848:1: ( rule__XMemberFeatureCall__Group_1_1__3__Impl rule__XMemberFeatureCall__Group_1_1__4 )
-            // InternalSignalDSL.g:8849:2: rule__XMemberFeatureCall__Group_1_1__3__Impl rule__XMemberFeatureCall__Group_1_1__4
+            // InternalSignalDSL.g:9111:1: ( rule__XMemberFeatureCall__Group_1_1__3__Impl rule__XMemberFeatureCall__Group_1_1__4 )
+            // InternalSignalDSL.g:9112:2: rule__XMemberFeatureCall__Group_1_1__3__Impl rule__XMemberFeatureCall__Group_1_1__4
             {
-            pushFollow(FOLLOW_66);
+            pushFollow(FOLLOW_71);
             rule__XMemberFeatureCall__Group_1_1__3__Impl();
 
             state._fsp--;
@@ -30276,27 +31061,27 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1__3__Impl"
-    // InternalSignalDSL.g:8856:1: rule__XMemberFeatureCall__Group_1_1__3__Impl : ( ( rule__XMemberFeatureCall__Group_1_1_3__0 )? ) ;
+    // InternalSignalDSL.g:9119: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:8860:1: ( ( ( rule__XMemberFeatureCall__Group_1_1_3__0 )? ) )
-            // InternalSignalDSL.g:8861:1: ( ( rule__XMemberFeatureCall__Group_1_1_3__0 )? )
+            // InternalSignalDSL.g:9123:1: ( ( ( rule__XMemberFeatureCall__Group_1_1_3__0 )? ) )
+            // InternalSignalDSL.g:9124:1: ( ( rule__XMemberFeatureCall__Group_1_1_3__0 )? )
             {
-            // InternalSignalDSL.g:8861:1: ( ( rule__XMemberFeatureCall__Group_1_1_3__0 )? )
-            // InternalSignalDSL.g:8862:2: ( rule__XMemberFeatureCall__Group_1_1_3__0 )?
+            // InternalSignalDSL.g:9124:1: ( ( rule__XMemberFeatureCall__Group_1_1_3__0 )? )
+            // InternalSignalDSL.g:9125:2: ( rule__XMemberFeatureCall__Group_1_1_3__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_3()); 
             }
-            // InternalSignalDSL.g:8863:2: ( rule__XMemberFeatureCall__Group_1_1_3__0 )?
-            int alt78=2;
-            alt78 = dfa78.predict(input);
-            switch (alt78) {
+            // InternalSignalDSL.g:9126:2: ( rule__XMemberFeatureCall__Group_1_1_3__0 )?
+            int alt81=2;
+            alt81 = dfa81.predict(input);
+            switch (alt81) {
                 case 1 :
-                    // InternalSignalDSL.g:8863:3: rule__XMemberFeatureCall__Group_1_1_3__0
+                    // InternalSignalDSL.g:9126:3: rule__XMemberFeatureCall__Group_1_1_3__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XMemberFeatureCall__Group_1_1_3__0();
@@ -30334,14 +31119,14 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1__4"
-    // InternalSignalDSL.g:8871:1: rule__XMemberFeatureCall__Group_1_1__4 : rule__XMemberFeatureCall__Group_1_1__4__Impl ;
+    // InternalSignalDSL.g:9134: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:8875:1: ( rule__XMemberFeatureCall__Group_1_1__4__Impl )
-            // InternalSignalDSL.g:8876:2: rule__XMemberFeatureCall__Group_1_1__4__Impl
+            // InternalSignalDSL.g:9138:1: ( rule__XMemberFeatureCall__Group_1_1__4__Impl )
+            // InternalSignalDSL.g:9139:2: rule__XMemberFeatureCall__Group_1_1__4__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__Group_1_1__4__Impl();
@@ -30367,27 +31152,27 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1__4__Impl"
-    // InternalSignalDSL.g:8882:1: rule__XMemberFeatureCall__Group_1_1__4__Impl : ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 )? ) ;
+    // InternalSignalDSL.g:9145: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:8886:1: ( ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 )? ) )
-            // InternalSignalDSL.g:8887:1: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 )? )
+            // InternalSignalDSL.g:9149:1: ( ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 )? ) )
+            // InternalSignalDSL.g:9150:1: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 )? )
             {
-            // InternalSignalDSL.g:8887:1: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 )? )
-            // InternalSignalDSL.g:8888:2: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 )?
+            // InternalSignalDSL.g:9150:1: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 )? )
+            // InternalSignalDSL.g:9151:2: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsAssignment_1_1_4()); 
             }
-            // InternalSignalDSL.g:8889:2: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 )?
-            int alt79=2;
-            alt79 = dfa79.predict(input);
-            switch (alt79) {
+            // InternalSignalDSL.g:9152:2: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 )?
+            int alt82=2;
+            alt82 = dfa82.predict(input);
+            switch (alt82) {
                 case 1 :
-                    // InternalSignalDSL.g:8889:3: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4
+                    // InternalSignalDSL.g:9152:3: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4
                     {
                     pushFollow(FOLLOW_2);
                     rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4();
@@ -30425,14 +31210,14 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_0__0"
-    // InternalSignalDSL.g:8898:1: rule__XMemberFeatureCall__Group_1_1_0__0 : rule__XMemberFeatureCall__Group_1_1_0__0__Impl ;
+    // InternalSignalDSL.g:9161: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:8902:1: ( rule__XMemberFeatureCall__Group_1_1_0__0__Impl )
-            // InternalSignalDSL.g:8903:2: rule__XMemberFeatureCall__Group_1_1_0__0__Impl
+            // InternalSignalDSL.g:9165:1: ( rule__XMemberFeatureCall__Group_1_1_0__0__Impl )
+            // InternalSignalDSL.g:9166:2: rule__XMemberFeatureCall__Group_1_1_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__Group_1_1_0__0__Impl();
@@ -30458,23 +31243,23 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_0__0__Impl"
-    // InternalSignalDSL.g:8909:1: rule__XMemberFeatureCall__Group_1_1_0__0__Impl : ( ( rule__XMemberFeatureCall__Group_1_1_0_0__0 ) ) ;
+    // InternalSignalDSL.g:9172: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:8913:1: ( ( ( rule__XMemberFeatureCall__Group_1_1_0_0__0 ) ) )
-            // InternalSignalDSL.g:8914:1: ( ( rule__XMemberFeatureCall__Group_1_1_0_0__0 ) )
+            // InternalSignalDSL.g:9176:1: ( ( ( rule__XMemberFeatureCall__Group_1_1_0_0__0 ) ) )
+            // InternalSignalDSL.g:9177:1: ( ( rule__XMemberFeatureCall__Group_1_1_0_0__0 ) )
             {
-            // InternalSignalDSL.g:8914:1: ( ( rule__XMemberFeatureCall__Group_1_1_0_0__0 ) )
-            // InternalSignalDSL.g:8915:2: ( rule__XMemberFeatureCall__Group_1_1_0_0__0 )
+            // InternalSignalDSL.g:9177:1: ( ( rule__XMemberFeatureCall__Group_1_1_0_0__0 ) )
+            // InternalSignalDSL.g:9178:2: ( rule__XMemberFeatureCall__Group_1_1_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_0_0()); 
             }
-            // InternalSignalDSL.g:8916:2: ( rule__XMemberFeatureCall__Group_1_1_0_0__0 )
-            // InternalSignalDSL.g:8916:3: rule__XMemberFeatureCall__Group_1_1_0_0__0
+            // InternalSignalDSL.g:9179:2: ( rule__XMemberFeatureCall__Group_1_1_0_0__0 )
+            // InternalSignalDSL.g:9179:3: rule__XMemberFeatureCall__Group_1_1_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__Group_1_1_0_0__0();
@@ -30509,16 +31294,16 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_0_0__0"
-    // InternalSignalDSL.g:8925: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:9188: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:8929:1: ( rule__XMemberFeatureCall__Group_1_1_0_0__0__Impl rule__XMemberFeatureCall__Group_1_1_0_0__1 )
-            // InternalSignalDSL.g:8930:2: rule__XMemberFeatureCall__Group_1_1_0_0__0__Impl rule__XMemberFeatureCall__Group_1_1_0_0__1
+            // InternalSignalDSL.g:9192:1: ( rule__XMemberFeatureCall__Group_1_1_0_0__0__Impl rule__XMemberFeatureCall__Group_1_1_0_0__1 )
+            // InternalSignalDSL.g:9193:2: rule__XMemberFeatureCall__Group_1_1_0_0__0__Impl rule__XMemberFeatureCall__Group_1_1_0_0__1
             {
-            pushFollow(FOLLOW_62);
+            pushFollow(FOLLOW_67);
             rule__XMemberFeatureCall__Group_1_1_0_0__0__Impl();
 
             state._fsp--;
@@ -30547,23 +31332,23 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_0_0__0__Impl"
-    // InternalSignalDSL.g:8937:1: rule__XMemberFeatureCall__Group_1_1_0_0__0__Impl : ( () ) ;
+    // InternalSignalDSL.g:9200: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:8941:1: ( ( () ) )
-            // InternalSignalDSL.g:8942:1: ( () )
+            // InternalSignalDSL.g:9204:1: ( ( () ) )
+            // InternalSignalDSL.g:9205:1: ( () )
             {
-            // InternalSignalDSL.g:8942:1: ( () )
-            // InternalSignalDSL.g:8943:2: ()
+            // InternalSignalDSL.g:9205:1: ( () )
+            // InternalSignalDSL.g:9206:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getXMemberFeatureCallMemberCallTargetAction_1_1_0_0_0()); 
             }
-            // InternalSignalDSL.g:8944:2: ()
-            // InternalSignalDSL.g:8944:3: 
+            // InternalSignalDSL.g:9207:2: ()
+            // InternalSignalDSL.g:9207:3: 
             {
             }
 
@@ -30588,14 +31373,14 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_0_0__1"
-    // InternalSignalDSL.g:8952:1: rule__XMemberFeatureCall__Group_1_1_0_0__1 : rule__XMemberFeatureCall__Group_1_1_0_0__1__Impl ;
+    // InternalSignalDSL.g:9215: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:8956:1: ( rule__XMemberFeatureCall__Group_1_1_0_0__1__Impl )
-            // InternalSignalDSL.g:8957:2: rule__XMemberFeatureCall__Group_1_1_0_0__1__Impl
+            // InternalSignalDSL.g:9219:1: ( rule__XMemberFeatureCall__Group_1_1_0_0__1__Impl )
+            // InternalSignalDSL.g:9220:2: rule__XMemberFeatureCall__Group_1_1_0_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__Group_1_1_0_0__1__Impl();
@@ -30621,23 +31406,23 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_0_0__1__Impl"
-    // InternalSignalDSL.g:8963:1: rule__XMemberFeatureCall__Group_1_1_0_0__1__Impl : ( ( rule__XMemberFeatureCall__Alternatives_1_1_0_0_1 ) ) ;
+    // InternalSignalDSL.g:9226: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:8967:1: ( ( ( rule__XMemberFeatureCall__Alternatives_1_1_0_0_1 ) ) )
-            // InternalSignalDSL.g:8968:1: ( ( rule__XMemberFeatureCall__Alternatives_1_1_0_0_1 ) )
+            // InternalSignalDSL.g:9230:1: ( ( ( rule__XMemberFeatureCall__Alternatives_1_1_0_0_1 ) ) )
+            // InternalSignalDSL.g:9231:1: ( ( rule__XMemberFeatureCall__Alternatives_1_1_0_0_1 ) )
             {
-            // InternalSignalDSL.g:8968:1: ( ( rule__XMemberFeatureCall__Alternatives_1_1_0_0_1 ) )
-            // InternalSignalDSL.g:8969:2: ( rule__XMemberFeatureCall__Alternatives_1_1_0_0_1 )
+            // InternalSignalDSL.g:9231:1: ( ( rule__XMemberFeatureCall__Alternatives_1_1_0_0_1 ) )
+            // InternalSignalDSL.g:9232:2: ( rule__XMemberFeatureCall__Alternatives_1_1_0_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getAlternatives_1_1_0_0_1()); 
             }
-            // InternalSignalDSL.g:8970:2: ( rule__XMemberFeatureCall__Alternatives_1_1_0_0_1 )
-            // InternalSignalDSL.g:8970:3: rule__XMemberFeatureCall__Alternatives_1_1_0_0_1
+            // InternalSignalDSL.g:9233:2: ( rule__XMemberFeatureCall__Alternatives_1_1_0_0_1 )
+            // InternalSignalDSL.g:9233:3: rule__XMemberFeatureCall__Alternatives_1_1_0_0_1
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__Alternatives_1_1_0_0_1();
@@ -30672,16 +31457,16 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_1__0"
-    // InternalSignalDSL.g:8979: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:9242: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:8983:1: ( rule__XMemberFeatureCall__Group_1_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1_1__1 )
-            // InternalSignalDSL.g:8984:2: rule__XMemberFeatureCall__Group_1_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1_1__1
+            // InternalSignalDSL.g:9246:1: ( rule__XMemberFeatureCall__Group_1_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1_1__1 )
+            // InternalSignalDSL.g:9247:2: rule__XMemberFeatureCall__Group_1_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1_1__1
             {
-            pushFollow(FOLLOW_67);
+            pushFollow(FOLLOW_72);
             rule__XMemberFeatureCall__Group_1_1_1__0__Impl();
 
             state._fsp--;
@@ -30710,17 +31495,17 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_1__0__Impl"
-    // InternalSignalDSL.g:8991:1: rule__XMemberFeatureCall__Group_1_1_1__0__Impl : ( '<' ) ;
+    // InternalSignalDSL.g:9254: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:8995:1: ( ( '<' ) )
-            // InternalSignalDSL.g:8996:1: ( '<' )
+            // InternalSignalDSL.g:9258:1: ( ( '<' ) )
+            // InternalSignalDSL.g:9259:1: ( '<' )
             {
-            // InternalSignalDSL.g:8996:1: ( '<' )
-            // InternalSignalDSL.g:8997:2: '<'
+            // InternalSignalDSL.g:9259:1: ( '<' )
+            // InternalSignalDSL.g:9260:2: '<'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getLessThanSignKeyword_1_1_1_0()); 
@@ -30751,16 +31536,16 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_1__1"
-    // InternalSignalDSL.g:9006: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:9269: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:9010:1: ( rule__XMemberFeatureCall__Group_1_1_1__1__Impl rule__XMemberFeatureCall__Group_1_1_1__2 )
-            // InternalSignalDSL.g:9011:2: rule__XMemberFeatureCall__Group_1_1_1__1__Impl rule__XMemberFeatureCall__Group_1_1_1__2
+            // InternalSignalDSL.g:9273:1: ( rule__XMemberFeatureCall__Group_1_1_1__1__Impl rule__XMemberFeatureCall__Group_1_1_1__2 )
+            // InternalSignalDSL.g:9274:2: rule__XMemberFeatureCall__Group_1_1_1__1__Impl rule__XMemberFeatureCall__Group_1_1_1__2
             {
-            pushFollow(FOLLOW_68);
+            pushFollow(FOLLOW_73);
             rule__XMemberFeatureCall__Group_1_1_1__1__Impl();
 
             state._fsp--;
@@ -30789,23 +31574,23 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_1__1__Impl"
-    // InternalSignalDSL.g:9018:1: rule__XMemberFeatureCall__Group_1_1_1__1__Impl : ( ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1 ) ) ;
+    // InternalSignalDSL.g:9281: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:9022:1: ( ( ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1 ) ) )
-            // InternalSignalDSL.g:9023:1: ( ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1 ) )
+            // InternalSignalDSL.g:9285:1: ( ( ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1 ) ) )
+            // InternalSignalDSL.g:9286:1: ( ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1 ) )
             {
-            // InternalSignalDSL.g:9023:1: ( ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1 ) )
-            // InternalSignalDSL.g:9024:2: ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1 )
+            // InternalSignalDSL.g:9286:1: ( ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1 ) )
+            // InternalSignalDSL.g:9287:2: ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getTypeArgumentsAssignment_1_1_1_1()); 
             }
-            // InternalSignalDSL.g:9025:2: ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1 )
-            // InternalSignalDSL.g:9025:3: rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1
+            // InternalSignalDSL.g:9288:2: ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1 )
+            // InternalSignalDSL.g:9288:3: rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1();
@@ -30840,16 +31625,16 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_1__2"
-    // InternalSignalDSL.g:9033: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:9296: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:9037:1: ( rule__XMemberFeatureCall__Group_1_1_1__2__Impl rule__XMemberFeatureCall__Group_1_1_1__3 )
-            // InternalSignalDSL.g:9038:2: rule__XMemberFeatureCall__Group_1_1_1__2__Impl rule__XMemberFeatureCall__Group_1_1_1__3
+            // InternalSignalDSL.g:9300:1: ( rule__XMemberFeatureCall__Group_1_1_1__2__Impl rule__XMemberFeatureCall__Group_1_1_1__3 )
+            // InternalSignalDSL.g:9301:2: rule__XMemberFeatureCall__Group_1_1_1__2__Impl rule__XMemberFeatureCall__Group_1_1_1__3
             {
-            pushFollow(FOLLOW_68);
+            pushFollow(FOLLOW_73);
             rule__XMemberFeatureCall__Group_1_1_1__2__Impl();
 
             state._fsp--;
@@ -30878,37 +31663,37 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_1__2__Impl"
-    // InternalSignalDSL.g:9045:1: rule__XMemberFeatureCall__Group_1_1_1__2__Impl : ( ( rule__XMemberFeatureCall__Group_1_1_1_2__0 )* ) ;
+    // InternalSignalDSL.g:9308: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:9049:1: ( ( ( rule__XMemberFeatureCall__Group_1_1_1_2__0 )* ) )
-            // InternalSignalDSL.g:9050:1: ( ( rule__XMemberFeatureCall__Group_1_1_1_2__0 )* )
+            // InternalSignalDSL.g:9312:1: ( ( ( rule__XMemberFeatureCall__Group_1_1_1_2__0 )* ) )
+            // InternalSignalDSL.g:9313:1: ( ( rule__XMemberFeatureCall__Group_1_1_1_2__0 )* )
             {
-            // InternalSignalDSL.g:9050:1: ( ( rule__XMemberFeatureCall__Group_1_1_1_2__0 )* )
-            // InternalSignalDSL.g:9051:2: ( rule__XMemberFeatureCall__Group_1_1_1_2__0 )*
+            // InternalSignalDSL.g:9313:1: ( ( rule__XMemberFeatureCall__Group_1_1_1_2__0 )* )
+            // InternalSignalDSL.g:9314:2: ( rule__XMemberFeatureCall__Group_1_1_1_2__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_1_2()); 
             }
-            // InternalSignalDSL.g:9052:2: ( rule__XMemberFeatureCall__Group_1_1_1_2__0 )*
-            loop80:
+            // InternalSignalDSL.g:9315:2: ( rule__XMemberFeatureCall__Group_1_1_1_2__0 )*
+            loop83:
             do {
-                int alt80=2;
-                int LA80_0 = input.LA(1);
+                int alt83=2;
+                int LA83_0 = input.LA(1);
 
-                if ( (LA80_0==78) ) {
-                    alt80=1;
+                if ( (LA83_0==76) ) {
+                    alt83=1;
                 }
 
 
-                switch (alt80) {
+                switch (alt83) {
             	case 1 :
-            	    // InternalSignalDSL.g:9052:3: rule__XMemberFeatureCall__Group_1_1_1_2__0
+            	    // InternalSignalDSL.g:9315:3: rule__XMemberFeatureCall__Group_1_1_1_2__0
             	    {
-            	    pushFollow(FOLLOW_29);
+            	    pushFollow(FOLLOW_34);
             	    rule__XMemberFeatureCall__Group_1_1_1_2__0();
 
             	    state._fsp--;
@@ -30918,7 +31703,7 @@
             	    break;
 
             	default :
-            	    break loop80;
+            	    break loop83;
                 }
             } while (true);
 
@@ -30947,14 +31732,14 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_1__3"
-    // InternalSignalDSL.g:9060:1: rule__XMemberFeatureCall__Group_1_1_1__3 : rule__XMemberFeatureCall__Group_1_1_1__3__Impl ;
+    // InternalSignalDSL.g:9323: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:9064:1: ( rule__XMemberFeatureCall__Group_1_1_1__3__Impl )
-            // InternalSignalDSL.g:9065:2: rule__XMemberFeatureCall__Group_1_1_1__3__Impl
+            // InternalSignalDSL.g:9327:1: ( rule__XMemberFeatureCall__Group_1_1_1__3__Impl )
+            // InternalSignalDSL.g:9328:2: rule__XMemberFeatureCall__Group_1_1_1__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__Group_1_1_1__3__Impl();
@@ -30980,17 +31765,17 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_1__3__Impl"
-    // InternalSignalDSL.g:9071:1: rule__XMemberFeatureCall__Group_1_1_1__3__Impl : ( '>' ) ;
+    // InternalSignalDSL.g:9334: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:9075:1: ( ( '>' ) )
-            // InternalSignalDSL.g:9076:1: ( '>' )
+            // InternalSignalDSL.g:9338:1: ( ( '>' ) )
+            // InternalSignalDSL.g:9339:1: ( '>' )
             {
-            // InternalSignalDSL.g:9076:1: ( '>' )
-            // InternalSignalDSL.g:9077:2: '>'
+            // InternalSignalDSL.g:9339:1: ( '>' )
+            // InternalSignalDSL.g:9340:2: '>'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getGreaterThanSignKeyword_1_1_1_3()); 
@@ -31021,16 +31806,16 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_1_2__0"
-    // InternalSignalDSL.g:9087: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:9350: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:9091:1: ( rule__XMemberFeatureCall__Group_1_1_1_2__0__Impl rule__XMemberFeatureCall__Group_1_1_1_2__1 )
-            // InternalSignalDSL.g:9092:2: rule__XMemberFeatureCall__Group_1_1_1_2__0__Impl rule__XMemberFeatureCall__Group_1_1_1_2__1
+            // InternalSignalDSL.g:9354:1: ( rule__XMemberFeatureCall__Group_1_1_1_2__0__Impl rule__XMemberFeatureCall__Group_1_1_1_2__1 )
+            // InternalSignalDSL.g:9355:2: rule__XMemberFeatureCall__Group_1_1_1_2__0__Impl rule__XMemberFeatureCall__Group_1_1_1_2__1
             {
-            pushFollow(FOLLOW_67);
+            pushFollow(FOLLOW_72);
             rule__XMemberFeatureCall__Group_1_1_1_2__0__Impl();
 
             state._fsp--;
@@ -31059,22 +31844,22 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_1_2__0__Impl"
-    // InternalSignalDSL.g:9099:1: rule__XMemberFeatureCall__Group_1_1_1_2__0__Impl : ( ',' ) ;
+    // InternalSignalDSL.g:9362: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:9103:1: ( ( ',' ) )
-            // InternalSignalDSL.g:9104:1: ( ',' )
+            // InternalSignalDSL.g:9366:1: ( ( ',' ) )
+            // InternalSignalDSL.g:9367:1: ( ',' )
             {
-            // InternalSignalDSL.g:9104:1: ( ',' )
-            // InternalSignalDSL.g:9105:2: ','
+            // InternalSignalDSL.g:9367:1: ( ',' )
+            // InternalSignalDSL.g:9368:2: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getCommaKeyword_1_1_1_2_0()); 
             }
-            match(input,78,FOLLOW_2); if (state.failed) return ;
+            match(input,76,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXMemberFeatureCallAccess().getCommaKeyword_1_1_1_2_0()); 
             }
@@ -31100,14 +31885,14 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_1_2__1"
-    // InternalSignalDSL.g:9114:1: rule__XMemberFeatureCall__Group_1_1_1_2__1 : rule__XMemberFeatureCall__Group_1_1_1_2__1__Impl ;
+    // InternalSignalDSL.g:9377: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:9118:1: ( rule__XMemberFeatureCall__Group_1_1_1_2__1__Impl )
-            // InternalSignalDSL.g:9119:2: rule__XMemberFeatureCall__Group_1_1_1_2__1__Impl
+            // InternalSignalDSL.g:9381:1: ( rule__XMemberFeatureCall__Group_1_1_1_2__1__Impl )
+            // InternalSignalDSL.g:9382:2: rule__XMemberFeatureCall__Group_1_1_1_2__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__Group_1_1_1_2__1__Impl();
@@ -31133,23 +31918,23 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_1_2__1__Impl"
-    // InternalSignalDSL.g:9125:1: rule__XMemberFeatureCall__Group_1_1_1_2__1__Impl : ( ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1 ) ) ;
+    // InternalSignalDSL.g:9388: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:9129:1: ( ( ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1 ) ) )
-            // InternalSignalDSL.g:9130:1: ( ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1 ) )
+            // InternalSignalDSL.g:9392:1: ( ( ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1 ) ) )
+            // InternalSignalDSL.g:9393:1: ( ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1 ) )
             {
-            // InternalSignalDSL.g:9130:1: ( ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1 ) )
-            // InternalSignalDSL.g:9131:2: ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1 )
+            // InternalSignalDSL.g:9393:1: ( ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1 ) )
+            // InternalSignalDSL.g:9394:2: ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getTypeArgumentsAssignment_1_1_1_2_1()); 
             }
-            // InternalSignalDSL.g:9132:2: ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1 )
-            // InternalSignalDSL.g:9132:3: rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1
+            // InternalSignalDSL.g:9395:2: ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1 )
+            // InternalSignalDSL.g:9395:3: rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1();
@@ -31184,16 +31969,16 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_3__0"
-    // InternalSignalDSL.g:9141: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:9404: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:9145:1: ( rule__XMemberFeatureCall__Group_1_1_3__0__Impl rule__XMemberFeatureCall__Group_1_1_3__1 )
-            // InternalSignalDSL.g:9146:2: rule__XMemberFeatureCall__Group_1_1_3__0__Impl rule__XMemberFeatureCall__Group_1_1_3__1
+            // InternalSignalDSL.g:9408:1: ( rule__XMemberFeatureCall__Group_1_1_3__0__Impl rule__XMemberFeatureCall__Group_1_1_3__1 )
+            // InternalSignalDSL.g:9409:2: rule__XMemberFeatureCall__Group_1_1_3__0__Impl rule__XMemberFeatureCall__Group_1_1_3__1
             {
-            pushFollow(FOLLOW_69);
+            pushFollow(FOLLOW_74);
             rule__XMemberFeatureCall__Group_1_1_3__0__Impl();
 
             state._fsp--;
@@ -31222,23 +32007,23 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_3__0__Impl"
-    // InternalSignalDSL.g:9153:1: rule__XMemberFeatureCall__Group_1_1_3__0__Impl : ( ( rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0 ) ) ;
+    // InternalSignalDSL.g:9416: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:9157:1: ( ( ( rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0 ) ) )
-            // InternalSignalDSL.g:9158:1: ( ( rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0 ) )
+            // InternalSignalDSL.g:9420:1: ( ( ( rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0 ) ) )
+            // InternalSignalDSL.g:9421:1: ( ( rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0 ) )
             {
-            // InternalSignalDSL.g:9158:1: ( ( rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0 ) )
-            // InternalSignalDSL.g:9159:2: ( rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0 )
+            // InternalSignalDSL.g:9421:1: ( ( rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0 ) )
+            // InternalSignalDSL.g:9422:2: ( rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getExplicitOperationCallAssignment_1_1_3_0()); 
             }
-            // InternalSignalDSL.g:9160:2: ( rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0 )
-            // InternalSignalDSL.g:9160:3: rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0
+            // InternalSignalDSL.g:9423:2: ( rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0 )
+            // InternalSignalDSL.g:9423:3: rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0();
@@ -31273,16 +32058,16 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_3__1"
-    // InternalSignalDSL.g:9168: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:9431: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:9172:1: ( rule__XMemberFeatureCall__Group_1_1_3__1__Impl rule__XMemberFeatureCall__Group_1_1_3__2 )
-            // InternalSignalDSL.g:9173:2: rule__XMemberFeatureCall__Group_1_1_3__1__Impl rule__XMemberFeatureCall__Group_1_1_3__2
+            // InternalSignalDSL.g:9435:1: ( rule__XMemberFeatureCall__Group_1_1_3__1__Impl rule__XMemberFeatureCall__Group_1_1_3__2 )
+            // InternalSignalDSL.g:9436:2: rule__XMemberFeatureCall__Group_1_1_3__1__Impl rule__XMemberFeatureCall__Group_1_1_3__2
             {
-            pushFollow(FOLLOW_69);
+            pushFollow(FOLLOW_74);
             rule__XMemberFeatureCall__Group_1_1_3__1__Impl();
 
             state._fsp--;
@@ -31311,31 +32096,31 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_3__1__Impl"
-    // InternalSignalDSL.g:9180:1: rule__XMemberFeatureCall__Group_1_1_3__1__Impl : ( ( rule__XMemberFeatureCall__Alternatives_1_1_3_1 )? ) ;
+    // InternalSignalDSL.g:9443: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:9184:1: ( ( ( rule__XMemberFeatureCall__Alternatives_1_1_3_1 )? ) )
-            // InternalSignalDSL.g:9185:1: ( ( rule__XMemberFeatureCall__Alternatives_1_1_3_1 )? )
+            // InternalSignalDSL.g:9447:1: ( ( ( rule__XMemberFeatureCall__Alternatives_1_1_3_1 )? ) )
+            // InternalSignalDSL.g:9448:1: ( ( rule__XMemberFeatureCall__Alternatives_1_1_3_1 )? )
             {
-            // InternalSignalDSL.g:9185:1: ( ( rule__XMemberFeatureCall__Alternatives_1_1_3_1 )? )
-            // InternalSignalDSL.g:9186:2: ( rule__XMemberFeatureCall__Alternatives_1_1_3_1 )?
+            // InternalSignalDSL.g:9448:1: ( ( rule__XMemberFeatureCall__Alternatives_1_1_3_1 )? )
+            // InternalSignalDSL.g:9449:2: ( rule__XMemberFeatureCall__Alternatives_1_1_3_1 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getAlternatives_1_1_3_1()); 
             }
-            // InternalSignalDSL.g:9187:2: ( rule__XMemberFeatureCall__Alternatives_1_1_3_1 )?
-            int alt81=2;
-            int LA81_0 = input.LA(1);
+            // InternalSignalDSL.g:9450:2: ( rule__XMemberFeatureCall__Alternatives_1_1_3_1 )?
+            int alt84=2;
+            int LA84_0 = input.LA(1);
 
-            if ( ((LA81_0>=RULE_ID && LA81_0<=RULE_STRING)||LA81_0==27||LA81_0==31||(LA81_0>=34 && LA81_0<=35)||LA81_0==40||(LA81_0>=45 && LA81_0<=50)||LA81_0==68||LA81_0==72||LA81_0==76||(LA81_0>=80 && LA81_0<=81)||LA81_0==84||LA81_0==86||(LA81_0>=90 && LA81_0<=97)||LA81_0==99||LA81_0==106||LA81_0==108) ) {
-                alt81=1;
+            if ( ((LA84_0>=RULE_ID && LA84_0<=RULE_STRING)||LA84_0==27||LA84_0==31||(LA84_0>=34 && LA84_0<=35)||LA84_0==40||(LA84_0>=45 && LA84_0<=50)||LA84_0==64||LA84_0==68||LA84_0==74||(LA84_0>=78 && LA84_0<=79)||LA84_0==82||LA84_0==84||(LA84_0>=88 && LA84_0<=95)||LA84_0==97||LA84_0==104||LA84_0==106) ) {
+                alt84=1;
             }
-            switch (alt81) {
+            switch (alt84) {
                 case 1 :
-                    // InternalSignalDSL.g:9187:3: rule__XMemberFeatureCall__Alternatives_1_1_3_1
+                    // InternalSignalDSL.g:9450:3: rule__XMemberFeatureCall__Alternatives_1_1_3_1
                     {
                     pushFollow(FOLLOW_2);
                     rule__XMemberFeatureCall__Alternatives_1_1_3_1();
@@ -31373,14 +32158,14 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_3__2"
-    // InternalSignalDSL.g:9195:1: rule__XMemberFeatureCall__Group_1_1_3__2 : rule__XMemberFeatureCall__Group_1_1_3__2__Impl ;
+    // InternalSignalDSL.g:9458: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:9199:1: ( rule__XMemberFeatureCall__Group_1_1_3__2__Impl )
-            // InternalSignalDSL.g:9200:2: rule__XMemberFeatureCall__Group_1_1_3__2__Impl
+            // InternalSignalDSL.g:9462:1: ( rule__XMemberFeatureCall__Group_1_1_3__2__Impl )
+            // InternalSignalDSL.g:9463:2: rule__XMemberFeatureCall__Group_1_1_3__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__Group_1_1_3__2__Impl();
@@ -31406,22 +32191,22 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_3__2__Impl"
-    // InternalSignalDSL.g:9206:1: rule__XMemberFeatureCall__Group_1_1_3__2__Impl : ( ')' ) ;
+    // InternalSignalDSL.g:9469: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:9210:1: ( ( ')' ) )
-            // InternalSignalDSL.g:9211:1: ( ')' )
+            // InternalSignalDSL.g:9473:1: ( ( ')' ) )
+            // InternalSignalDSL.g:9474:1: ( ')' )
             {
-            // InternalSignalDSL.g:9211:1: ( ')' )
-            // InternalSignalDSL.g:9212:2: ')'
+            // InternalSignalDSL.g:9474:1: ( ')' )
+            // InternalSignalDSL.g:9475:2: ')'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getRightParenthesisKeyword_1_1_3_2()); 
             }
-            match(input,77,FOLLOW_2); if (state.failed) return ;
+            match(input,75,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXMemberFeatureCallAccess().getRightParenthesisKeyword_1_1_3_2()); 
             }
@@ -31447,16 +32232,16 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_3_1_1__0"
-    // InternalSignalDSL.g:9222: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:9485: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:9226:1: ( rule__XMemberFeatureCall__Group_1_1_3_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1_3_1_1__1 )
-            // InternalSignalDSL.g:9227:2: rule__XMemberFeatureCall__Group_1_1_3_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1_3_1_1__1
+            // InternalSignalDSL.g:9489:1: ( rule__XMemberFeatureCall__Group_1_1_3_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1_3_1_1__1 )
+            // InternalSignalDSL.g:9490:2: rule__XMemberFeatureCall__Group_1_1_3_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1_3_1_1__1
             {
-            pushFollow(FOLLOW_28);
+            pushFollow(FOLLOW_33);
             rule__XMemberFeatureCall__Group_1_1_3_1_1__0__Impl();
 
             state._fsp--;
@@ -31485,23 +32270,23 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_3_1_1__0__Impl"
-    // InternalSignalDSL.g:9234:1: rule__XMemberFeatureCall__Group_1_1_3_1_1__0__Impl : ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0 ) ) ;
+    // InternalSignalDSL.g:9497: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:9238:1: ( ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0 ) ) )
-            // InternalSignalDSL.g:9239:1: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0 ) )
+            // InternalSignalDSL.g:9501:1: ( ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0 ) ) )
+            // InternalSignalDSL.g:9502:1: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0 ) )
             {
-            // InternalSignalDSL.g:9239:1: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0 ) )
-            // InternalSignalDSL.g:9240:2: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0 )
+            // InternalSignalDSL.g:9502:1: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0 ) )
+            // InternalSignalDSL.g:9503: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:9241:2: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0 )
-            // InternalSignalDSL.g:9241:3: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0
+            // InternalSignalDSL.g:9504:2: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0 )
+            // InternalSignalDSL.g:9504:3: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0();
@@ -31536,14 +32321,14 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_3_1_1__1"
-    // InternalSignalDSL.g:9249:1: rule__XMemberFeatureCall__Group_1_1_3_1_1__1 : rule__XMemberFeatureCall__Group_1_1_3_1_1__1__Impl ;
+    // InternalSignalDSL.g:9512: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:9253:1: ( rule__XMemberFeatureCall__Group_1_1_3_1_1__1__Impl )
-            // InternalSignalDSL.g:9254:2: rule__XMemberFeatureCall__Group_1_1_3_1_1__1__Impl
+            // InternalSignalDSL.g:9516:1: ( rule__XMemberFeatureCall__Group_1_1_3_1_1__1__Impl )
+            // InternalSignalDSL.g:9517:2: rule__XMemberFeatureCall__Group_1_1_3_1_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__Group_1_1_3_1_1__1__Impl();
@@ -31569,37 +32354,37 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_3_1_1__1__Impl"
-    // InternalSignalDSL.g:9260:1: rule__XMemberFeatureCall__Group_1_1_3_1_1__1__Impl : ( ( rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0 )* ) ;
+    // InternalSignalDSL.g:9523: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:9264:1: ( ( ( rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0 )* ) )
-            // InternalSignalDSL.g:9265:1: ( ( rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0 )* )
+            // InternalSignalDSL.g:9527:1: ( ( ( rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0 )* ) )
+            // InternalSignalDSL.g:9528:1: ( ( rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0 )* )
             {
-            // InternalSignalDSL.g:9265:1: ( ( rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0 )* )
-            // InternalSignalDSL.g:9266:2: ( rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0 )*
+            // InternalSignalDSL.g:9528:1: ( ( rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0 )* )
+            // InternalSignalDSL.g:9529: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:9267:2: ( rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0 )*
-            loop82:
+            // InternalSignalDSL.g:9530:2: ( rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0 )*
+            loop85:
             do {
-                int alt82=2;
-                int LA82_0 = input.LA(1);
+                int alt85=2;
+                int LA85_0 = input.LA(1);
 
-                if ( (LA82_0==78) ) {
-                    alt82=1;
+                if ( (LA85_0==76) ) {
+                    alt85=1;
                 }
 
 
-                switch (alt82) {
+                switch (alt85) {
             	case 1 :
-            	    // InternalSignalDSL.g:9267:3: rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0
+            	    // InternalSignalDSL.g:9530:3: rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0
             	    {
-            	    pushFollow(FOLLOW_29);
+            	    pushFollow(FOLLOW_34);
             	    rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0();
 
             	    state._fsp--;
@@ -31609,7 +32394,7 @@
             	    break;
 
             	default :
-            	    break loop82;
+            	    break loop85;
                 }
             } while (true);
 
@@ -31638,16 +32423,16 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0"
-    // InternalSignalDSL.g:9276: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:9539: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:9280:1: ( rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1 )
-            // InternalSignalDSL.g:9281:2: rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1
+            // InternalSignalDSL.g:9543:1: ( rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1 )
+            // InternalSignalDSL.g:9544:2: rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1
             {
-            pushFollow(FOLLOW_30);
+            pushFollow(FOLLOW_35);
             rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0__Impl();
 
             state._fsp--;
@@ -31676,22 +32461,22 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0__Impl"
-    // InternalSignalDSL.g:9288:1: rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0__Impl : ( ',' ) ;
+    // InternalSignalDSL.g:9551: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:9292:1: ( ( ',' ) )
-            // InternalSignalDSL.g:9293:1: ( ',' )
+            // InternalSignalDSL.g:9555:1: ( ( ',' ) )
+            // InternalSignalDSL.g:9556:1: ( ',' )
             {
-            // InternalSignalDSL.g:9293:1: ( ',' )
-            // InternalSignalDSL.g:9294:2: ','
+            // InternalSignalDSL.g:9556:1: ( ',' )
+            // InternalSignalDSL.g:9557:2: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getCommaKeyword_1_1_3_1_1_1_0()); 
             }
-            match(input,78,FOLLOW_2); if (state.failed) return ;
+            match(input,76,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXMemberFeatureCallAccess().getCommaKeyword_1_1_3_1_1_1_0()); 
             }
@@ -31717,14 +32502,14 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1"
-    // InternalSignalDSL.g:9303:1: rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1 : rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1__Impl ;
+    // InternalSignalDSL.g:9566: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:9307:1: ( rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1__Impl )
-            // InternalSignalDSL.g:9308:2: rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1__Impl
+            // InternalSignalDSL.g:9570:1: ( rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1__Impl )
+            // InternalSignalDSL.g:9571: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();
@@ -31750,23 +32535,23 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1__Impl"
-    // InternalSignalDSL.g:9314:1: rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1__Impl : ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1 ) ) ;
+    // InternalSignalDSL.g:9577: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:9318:1: ( ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1 ) ) )
-            // InternalSignalDSL.g:9319:1: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1 ) )
+            // InternalSignalDSL.g:9581:1: ( ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1 ) ) )
+            // InternalSignalDSL.g:9582:1: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1 ) )
             {
-            // InternalSignalDSL.g:9319:1: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1 ) )
-            // InternalSignalDSL.g:9320:2: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1 )
+            // InternalSignalDSL.g:9582:1: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1 ) )
+            // InternalSignalDSL.g:9583: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:9321:2: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1 )
-            // InternalSignalDSL.g:9321:3: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1
+            // InternalSignalDSL.g:9584:2: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1 )
+            // InternalSignalDSL.g:9584:3: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1();
@@ -31801,16 +32586,16 @@
 
 
     // $ANTLR start "rule__XSetLiteral__Group__0"
-    // InternalSignalDSL.g:9330:1: rule__XSetLiteral__Group__0 : rule__XSetLiteral__Group__0__Impl rule__XSetLiteral__Group__1 ;
+    // InternalSignalDSL.g:9593: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:9334:1: ( rule__XSetLiteral__Group__0__Impl rule__XSetLiteral__Group__1 )
-            // InternalSignalDSL.g:9335:2: rule__XSetLiteral__Group__0__Impl rule__XSetLiteral__Group__1
+            // InternalSignalDSL.g:9597:1: ( rule__XSetLiteral__Group__0__Impl rule__XSetLiteral__Group__1 )
+            // InternalSignalDSL.g:9598:2: rule__XSetLiteral__Group__0__Impl rule__XSetLiteral__Group__1
             {
-            pushFollow(FOLLOW_33);
+            pushFollow(FOLLOW_38);
             rule__XSetLiteral__Group__0__Impl();
 
             state._fsp--;
@@ -31839,23 +32624,23 @@
 
 
     // $ANTLR start "rule__XSetLiteral__Group__0__Impl"
-    // InternalSignalDSL.g:9342:1: rule__XSetLiteral__Group__0__Impl : ( () ) ;
+    // InternalSignalDSL.g:9605:1: rule__XSetLiteral__Group__0__Impl : ( () ) ;
     public final void rule__XSetLiteral__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:9346:1: ( ( () ) )
-            // InternalSignalDSL.g:9347:1: ( () )
+            // InternalSignalDSL.g:9609:1: ( ( () ) )
+            // InternalSignalDSL.g:9610:1: ( () )
             {
-            // InternalSignalDSL.g:9347:1: ( () )
-            // InternalSignalDSL.g:9348:2: ()
+            // InternalSignalDSL.g:9610:1: ( () )
+            // InternalSignalDSL.g:9611:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSetLiteralAccess().getXSetLiteralAction_0()); 
             }
-            // InternalSignalDSL.g:9349:2: ()
-            // InternalSignalDSL.g:9349:3: 
+            // InternalSignalDSL.g:9612:2: ()
+            // InternalSignalDSL.g:9612:3: 
             {
             }
 
@@ -31880,14 +32665,14 @@
 
 
     // $ANTLR start "rule__XSetLiteral__Group__1"
-    // InternalSignalDSL.g:9357:1: rule__XSetLiteral__Group__1 : rule__XSetLiteral__Group__1__Impl rule__XSetLiteral__Group__2 ;
+    // InternalSignalDSL.g:9620: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:9361:1: ( rule__XSetLiteral__Group__1__Impl rule__XSetLiteral__Group__2 )
-            // InternalSignalDSL.g:9362:2: rule__XSetLiteral__Group__1__Impl rule__XSetLiteral__Group__2
+            // InternalSignalDSL.g:9624:1: ( rule__XSetLiteral__Group__1__Impl rule__XSetLiteral__Group__2 )
+            // InternalSignalDSL.g:9625:2: rule__XSetLiteral__Group__1__Impl rule__XSetLiteral__Group__2
             {
             pushFollow(FOLLOW_8);
             rule__XSetLiteral__Group__1__Impl();
@@ -31918,22 +32703,22 @@
 
 
     // $ANTLR start "rule__XSetLiteral__Group__1__Impl"
-    // InternalSignalDSL.g:9369:1: rule__XSetLiteral__Group__1__Impl : ( '#' ) ;
+    // InternalSignalDSL.g:9632:1: rule__XSetLiteral__Group__1__Impl : ( '#' ) ;
     public final void rule__XSetLiteral__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:9373:1: ( ( '#' ) )
-            // InternalSignalDSL.g:9374:1: ( '#' )
+            // InternalSignalDSL.g:9636:1: ( ( '#' ) )
+            // InternalSignalDSL.g:9637:1: ( '#' )
             {
-            // InternalSignalDSL.g:9374:1: ( '#' )
-            // InternalSignalDSL.g:9375:2: '#'
+            // InternalSignalDSL.g:9637:1: ( '#' )
+            // InternalSignalDSL.g:9638:2: '#'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSetLiteralAccess().getNumberSignKeyword_1()); 
             }
-            match(input,80,FOLLOW_2); if (state.failed) return ;
+            match(input,78,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXSetLiteralAccess().getNumberSignKeyword_1()); 
             }
@@ -31959,16 +32744,16 @@
 
 
     // $ANTLR start "rule__XSetLiteral__Group__2"
-    // InternalSignalDSL.g:9384:1: rule__XSetLiteral__Group__2 : rule__XSetLiteral__Group__2__Impl rule__XSetLiteral__Group__3 ;
+    // InternalSignalDSL.g:9647: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:9388:1: ( rule__XSetLiteral__Group__2__Impl rule__XSetLiteral__Group__3 )
-            // InternalSignalDSL.g:9389:2: rule__XSetLiteral__Group__2__Impl rule__XSetLiteral__Group__3
+            // InternalSignalDSL.g:9651:1: ( rule__XSetLiteral__Group__2__Impl rule__XSetLiteral__Group__3 )
+            // InternalSignalDSL.g:9652:2: rule__XSetLiteral__Group__2__Impl rule__XSetLiteral__Group__3
             {
-            pushFollow(FOLLOW_70);
+            pushFollow(FOLLOW_75);
             rule__XSetLiteral__Group__2__Impl();
 
             state._fsp--;
@@ -31997,22 +32782,22 @@
 
 
     // $ANTLR start "rule__XSetLiteral__Group__2__Impl"
-    // InternalSignalDSL.g:9396:1: rule__XSetLiteral__Group__2__Impl : ( '{' ) ;
+    // InternalSignalDSL.g:9659:1: rule__XSetLiteral__Group__2__Impl : ( '{' ) ;
     public final void rule__XSetLiteral__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:9400:1: ( ( '{' ) )
-            // InternalSignalDSL.g:9401:1: ( '{' )
+            // InternalSignalDSL.g:9663:1: ( ( '{' ) )
+            // InternalSignalDSL.g:9664:1: ( '{' )
             {
-            // InternalSignalDSL.g:9401:1: ( '{' )
-            // InternalSignalDSL.g:9402:2: '{'
+            // InternalSignalDSL.g:9664:1: ( '{' )
+            // InternalSignalDSL.g:9665:2: '{'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSetLiteralAccess().getLeftCurlyBracketKeyword_2()); 
             }
-            match(input,68,FOLLOW_2); if (state.failed) return ;
+            match(input,64,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXSetLiteralAccess().getLeftCurlyBracketKeyword_2()); 
             }
@@ -32038,16 +32823,16 @@
 
 
     // $ANTLR start "rule__XSetLiteral__Group__3"
-    // InternalSignalDSL.g:9411:1: rule__XSetLiteral__Group__3 : rule__XSetLiteral__Group__3__Impl rule__XSetLiteral__Group__4 ;
+    // InternalSignalDSL.g:9674: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:9415:1: ( rule__XSetLiteral__Group__3__Impl rule__XSetLiteral__Group__4 )
-            // InternalSignalDSL.g:9416:2: rule__XSetLiteral__Group__3__Impl rule__XSetLiteral__Group__4
+            // InternalSignalDSL.g:9678:1: ( rule__XSetLiteral__Group__3__Impl rule__XSetLiteral__Group__4 )
+            // InternalSignalDSL.g:9679:2: rule__XSetLiteral__Group__3__Impl rule__XSetLiteral__Group__4
             {
-            pushFollow(FOLLOW_70);
+            pushFollow(FOLLOW_75);
             rule__XSetLiteral__Group__3__Impl();
 
             state._fsp--;
@@ -32076,31 +32861,31 @@
 
 
     // $ANTLR start "rule__XSetLiteral__Group__3__Impl"
-    // InternalSignalDSL.g:9423:1: rule__XSetLiteral__Group__3__Impl : ( ( rule__XSetLiteral__Group_3__0 )? ) ;
+    // InternalSignalDSL.g:9686: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:9427:1: ( ( ( rule__XSetLiteral__Group_3__0 )? ) )
-            // InternalSignalDSL.g:9428:1: ( ( rule__XSetLiteral__Group_3__0 )? )
+            // InternalSignalDSL.g:9690:1: ( ( ( rule__XSetLiteral__Group_3__0 )? ) )
+            // InternalSignalDSL.g:9691:1: ( ( rule__XSetLiteral__Group_3__0 )? )
             {
-            // InternalSignalDSL.g:9428:1: ( ( rule__XSetLiteral__Group_3__0 )? )
-            // InternalSignalDSL.g:9429:2: ( rule__XSetLiteral__Group_3__0 )?
+            // InternalSignalDSL.g:9691:1: ( ( rule__XSetLiteral__Group_3__0 )? )
+            // InternalSignalDSL.g:9692:2: ( rule__XSetLiteral__Group_3__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSetLiteralAccess().getGroup_3()); 
             }
-            // InternalSignalDSL.g:9430:2: ( rule__XSetLiteral__Group_3__0 )?
-            int alt83=2;
-            int LA83_0 = input.LA(1);
+            // InternalSignalDSL.g:9693:2: ( rule__XSetLiteral__Group_3__0 )?
+            int alt86=2;
+            int LA86_0 = input.LA(1);
 
-            if ( ((LA83_0>=RULE_ID && LA83_0<=RULE_STRING)||LA83_0==27||(LA83_0>=34 && LA83_0<=35)||LA83_0==40||(LA83_0>=45 && LA83_0<=50)||LA83_0==68||LA83_0==72||LA83_0==76||(LA83_0>=80 && LA83_0<=81)||LA83_0==84||LA83_0==86||(LA83_0>=90 && LA83_0<=97)||LA83_0==99||LA83_0==108) ) {
-                alt83=1;
+            if ( ((LA86_0>=RULE_ID && LA86_0<=RULE_STRING)||LA86_0==27||(LA86_0>=34 && LA86_0<=35)||LA86_0==40||(LA86_0>=45 && LA86_0<=50)||LA86_0==64||LA86_0==68||LA86_0==74||(LA86_0>=78 && LA86_0<=79)||LA86_0==82||LA86_0==84||(LA86_0>=88 && LA86_0<=95)||LA86_0==97||LA86_0==106) ) {
+                alt86=1;
             }
-            switch (alt83) {
+            switch (alt86) {
                 case 1 :
-                    // InternalSignalDSL.g:9430:3: rule__XSetLiteral__Group_3__0
+                    // InternalSignalDSL.g:9693:3: rule__XSetLiteral__Group_3__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XSetLiteral__Group_3__0();
@@ -32138,14 +32923,14 @@
 
 
     // $ANTLR start "rule__XSetLiteral__Group__4"
-    // InternalSignalDSL.g:9438:1: rule__XSetLiteral__Group__4 : rule__XSetLiteral__Group__4__Impl ;
+    // InternalSignalDSL.g:9701: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:9442:1: ( rule__XSetLiteral__Group__4__Impl )
-            // InternalSignalDSL.g:9443:2: rule__XSetLiteral__Group__4__Impl
+            // InternalSignalDSL.g:9705:1: ( rule__XSetLiteral__Group__4__Impl )
+            // InternalSignalDSL.g:9706:2: rule__XSetLiteral__Group__4__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XSetLiteral__Group__4__Impl();
@@ -32171,22 +32956,22 @@
 
 
     // $ANTLR start "rule__XSetLiteral__Group__4__Impl"
-    // InternalSignalDSL.g:9449:1: rule__XSetLiteral__Group__4__Impl : ( '}' ) ;
+    // InternalSignalDSL.g:9712:1: rule__XSetLiteral__Group__4__Impl : ( '}' ) ;
     public final void rule__XSetLiteral__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:9453:1: ( ( '}' ) )
-            // InternalSignalDSL.g:9454:1: ( '}' )
+            // InternalSignalDSL.g:9716:1: ( ( '}' ) )
+            // InternalSignalDSL.g:9717:1: ( '}' )
             {
-            // InternalSignalDSL.g:9454:1: ( '}' )
-            // InternalSignalDSL.g:9455:2: '}'
+            // InternalSignalDSL.g:9717:1: ( '}' )
+            // InternalSignalDSL.g:9718:2: '}'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSetLiteralAccess().getRightCurlyBracketKeyword_4()); 
             }
-            match(input,69,FOLLOW_2); if (state.failed) return ;
+            match(input,65,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXSetLiteralAccess().getRightCurlyBracketKeyword_4()); 
             }
@@ -32212,16 +32997,16 @@
 
 
     // $ANTLR start "rule__XSetLiteral__Group_3__0"
-    // InternalSignalDSL.g:9465:1: rule__XSetLiteral__Group_3__0 : rule__XSetLiteral__Group_3__0__Impl rule__XSetLiteral__Group_3__1 ;
+    // InternalSignalDSL.g:9728: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:9469:1: ( rule__XSetLiteral__Group_3__0__Impl rule__XSetLiteral__Group_3__1 )
-            // InternalSignalDSL.g:9470:2: rule__XSetLiteral__Group_3__0__Impl rule__XSetLiteral__Group_3__1
+            // InternalSignalDSL.g:9732:1: ( rule__XSetLiteral__Group_3__0__Impl rule__XSetLiteral__Group_3__1 )
+            // InternalSignalDSL.g:9733:2: rule__XSetLiteral__Group_3__0__Impl rule__XSetLiteral__Group_3__1
             {
-            pushFollow(FOLLOW_28);
+            pushFollow(FOLLOW_33);
             rule__XSetLiteral__Group_3__0__Impl();
 
             state._fsp--;
@@ -32250,23 +33035,23 @@
 
 
     // $ANTLR start "rule__XSetLiteral__Group_3__0__Impl"
-    // InternalSignalDSL.g:9477:1: rule__XSetLiteral__Group_3__0__Impl : ( ( rule__XSetLiteral__ElementsAssignment_3_0 ) ) ;
+    // InternalSignalDSL.g:9740: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:9481:1: ( ( ( rule__XSetLiteral__ElementsAssignment_3_0 ) ) )
-            // InternalSignalDSL.g:9482:1: ( ( rule__XSetLiteral__ElementsAssignment_3_0 ) )
+            // InternalSignalDSL.g:9744:1: ( ( ( rule__XSetLiteral__ElementsAssignment_3_0 ) ) )
+            // InternalSignalDSL.g:9745:1: ( ( rule__XSetLiteral__ElementsAssignment_3_0 ) )
             {
-            // InternalSignalDSL.g:9482:1: ( ( rule__XSetLiteral__ElementsAssignment_3_0 ) )
-            // InternalSignalDSL.g:9483:2: ( rule__XSetLiteral__ElementsAssignment_3_0 )
+            // InternalSignalDSL.g:9745:1: ( ( rule__XSetLiteral__ElementsAssignment_3_0 ) )
+            // InternalSignalDSL.g:9746:2: ( rule__XSetLiteral__ElementsAssignment_3_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSetLiteralAccess().getElementsAssignment_3_0()); 
             }
-            // InternalSignalDSL.g:9484:2: ( rule__XSetLiteral__ElementsAssignment_3_0 )
-            // InternalSignalDSL.g:9484:3: rule__XSetLiteral__ElementsAssignment_3_0
+            // InternalSignalDSL.g:9747:2: ( rule__XSetLiteral__ElementsAssignment_3_0 )
+            // InternalSignalDSL.g:9747:3: rule__XSetLiteral__ElementsAssignment_3_0
             {
             pushFollow(FOLLOW_2);
             rule__XSetLiteral__ElementsAssignment_3_0();
@@ -32301,14 +33086,14 @@
 
 
     // $ANTLR start "rule__XSetLiteral__Group_3__1"
-    // InternalSignalDSL.g:9492:1: rule__XSetLiteral__Group_3__1 : rule__XSetLiteral__Group_3__1__Impl ;
+    // InternalSignalDSL.g:9755: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:9496:1: ( rule__XSetLiteral__Group_3__1__Impl )
-            // InternalSignalDSL.g:9497:2: rule__XSetLiteral__Group_3__1__Impl
+            // InternalSignalDSL.g:9759:1: ( rule__XSetLiteral__Group_3__1__Impl )
+            // InternalSignalDSL.g:9760:2: rule__XSetLiteral__Group_3__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XSetLiteral__Group_3__1__Impl();
@@ -32334,37 +33119,37 @@
 
 
     // $ANTLR start "rule__XSetLiteral__Group_3__1__Impl"
-    // InternalSignalDSL.g:9503:1: rule__XSetLiteral__Group_3__1__Impl : ( ( rule__XSetLiteral__Group_3_1__0 )* ) ;
+    // InternalSignalDSL.g:9766: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:9507:1: ( ( ( rule__XSetLiteral__Group_3_1__0 )* ) )
-            // InternalSignalDSL.g:9508:1: ( ( rule__XSetLiteral__Group_3_1__0 )* )
+            // InternalSignalDSL.g:9770:1: ( ( ( rule__XSetLiteral__Group_3_1__0 )* ) )
+            // InternalSignalDSL.g:9771:1: ( ( rule__XSetLiteral__Group_3_1__0 )* )
             {
-            // InternalSignalDSL.g:9508:1: ( ( rule__XSetLiteral__Group_3_1__0 )* )
-            // InternalSignalDSL.g:9509:2: ( rule__XSetLiteral__Group_3_1__0 )*
+            // InternalSignalDSL.g:9771:1: ( ( rule__XSetLiteral__Group_3_1__0 )* )
+            // InternalSignalDSL.g:9772:2: ( rule__XSetLiteral__Group_3_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSetLiteralAccess().getGroup_3_1()); 
             }
-            // InternalSignalDSL.g:9510:2: ( rule__XSetLiteral__Group_3_1__0 )*
-            loop84:
+            // InternalSignalDSL.g:9773:2: ( rule__XSetLiteral__Group_3_1__0 )*
+            loop87:
             do {
-                int alt84=2;
-                int LA84_0 = input.LA(1);
+                int alt87=2;
+                int LA87_0 = input.LA(1);
 
-                if ( (LA84_0==78) ) {
-                    alt84=1;
+                if ( (LA87_0==76) ) {
+                    alt87=1;
                 }
 
 
-                switch (alt84) {
+                switch (alt87) {
             	case 1 :
-            	    // InternalSignalDSL.g:9510:3: rule__XSetLiteral__Group_3_1__0
+            	    // InternalSignalDSL.g:9773:3: rule__XSetLiteral__Group_3_1__0
             	    {
-            	    pushFollow(FOLLOW_29);
+            	    pushFollow(FOLLOW_34);
             	    rule__XSetLiteral__Group_3_1__0();
 
             	    state._fsp--;
@@ -32374,7 +33159,7 @@
             	    break;
 
             	default :
-            	    break loop84;
+            	    break loop87;
                 }
             } while (true);
 
@@ -32403,16 +33188,16 @@
 
 
     // $ANTLR start "rule__XSetLiteral__Group_3_1__0"
-    // InternalSignalDSL.g:9519:1: rule__XSetLiteral__Group_3_1__0 : rule__XSetLiteral__Group_3_1__0__Impl rule__XSetLiteral__Group_3_1__1 ;
+    // InternalSignalDSL.g:9782: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:9523:1: ( rule__XSetLiteral__Group_3_1__0__Impl rule__XSetLiteral__Group_3_1__1 )
-            // InternalSignalDSL.g:9524:2: rule__XSetLiteral__Group_3_1__0__Impl rule__XSetLiteral__Group_3_1__1
+            // InternalSignalDSL.g:9786:1: ( rule__XSetLiteral__Group_3_1__0__Impl rule__XSetLiteral__Group_3_1__1 )
+            // InternalSignalDSL.g:9787:2: rule__XSetLiteral__Group_3_1__0__Impl rule__XSetLiteral__Group_3_1__1
             {
-            pushFollow(FOLLOW_30);
+            pushFollow(FOLLOW_35);
             rule__XSetLiteral__Group_3_1__0__Impl();
 
             state._fsp--;
@@ -32441,22 +33226,22 @@
 
 
     // $ANTLR start "rule__XSetLiteral__Group_3_1__0__Impl"
-    // InternalSignalDSL.g:9531:1: rule__XSetLiteral__Group_3_1__0__Impl : ( ',' ) ;
+    // InternalSignalDSL.g:9794: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:9535:1: ( ( ',' ) )
-            // InternalSignalDSL.g:9536:1: ( ',' )
+            // InternalSignalDSL.g:9798:1: ( ( ',' ) )
+            // InternalSignalDSL.g:9799:1: ( ',' )
             {
-            // InternalSignalDSL.g:9536:1: ( ',' )
-            // InternalSignalDSL.g:9537:2: ','
+            // InternalSignalDSL.g:9799:1: ( ',' )
+            // InternalSignalDSL.g:9800:2: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSetLiteralAccess().getCommaKeyword_3_1_0()); 
             }
-            match(input,78,FOLLOW_2); if (state.failed) return ;
+            match(input,76,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXSetLiteralAccess().getCommaKeyword_3_1_0()); 
             }
@@ -32482,14 +33267,14 @@
 
 
     // $ANTLR start "rule__XSetLiteral__Group_3_1__1"
-    // InternalSignalDSL.g:9546:1: rule__XSetLiteral__Group_3_1__1 : rule__XSetLiteral__Group_3_1__1__Impl ;
+    // InternalSignalDSL.g:9809: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:9550:1: ( rule__XSetLiteral__Group_3_1__1__Impl )
-            // InternalSignalDSL.g:9551:2: rule__XSetLiteral__Group_3_1__1__Impl
+            // InternalSignalDSL.g:9813:1: ( rule__XSetLiteral__Group_3_1__1__Impl )
+            // InternalSignalDSL.g:9814:2: rule__XSetLiteral__Group_3_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XSetLiteral__Group_3_1__1__Impl();
@@ -32515,23 +33300,23 @@
 
 
     // $ANTLR start "rule__XSetLiteral__Group_3_1__1__Impl"
-    // InternalSignalDSL.g:9557:1: rule__XSetLiteral__Group_3_1__1__Impl : ( ( rule__XSetLiteral__ElementsAssignment_3_1_1 ) ) ;
+    // InternalSignalDSL.g:9820: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:9561:1: ( ( ( rule__XSetLiteral__ElementsAssignment_3_1_1 ) ) )
-            // InternalSignalDSL.g:9562:1: ( ( rule__XSetLiteral__ElementsAssignment_3_1_1 ) )
+            // InternalSignalDSL.g:9824:1: ( ( ( rule__XSetLiteral__ElementsAssignment_3_1_1 ) ) )
+            // InternalSignalDSL.g:9825:1: ( ( rule__XSetLiteral__ElementsAssignment_3_1_1 ) )
             {
-            // InternalSignalDSL.g:9562:1: ( ( rule__XSetLiteral__ElementsAssignment_3_1_1 ) )
-            // InternalSignalDSL.g:9563:2: ( rule__XSetLiteral__ElementsAssignment_3_1_1 )
+            // InternalSignalDSL.g:9825:1: ( ( rule__XSetLiteral__ElementsAssignment_3_1_1 ) )
+            // InternalSignalDSL.g:9826:2: ( rule__XSetLiteral__ElementsAssignment_3_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSetLiteralAccess().getElementsAssignment_3_1_1()); 
             }
-            // InternalSignalDSL.g:9564:2: ( rule__XSetLiteral__ElementsAssignment_3_1_1 )
-            // InternalSignalDSL.g:9564:3: rule__XSetLiteral__ElementsAssignment_3_1_1
+            // InternalSignalDSL.g:9827:2: ( rule__XSetLiteral__ElementsAssignment_3_1_1 )
+            // InternalSignalDSL.g:9827:3: rule__XSetLiteral__ElementsAssignment_3_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XSetLiteral__ElementsAssignment_3_1_1();
@@ -32566,16 +33351,16 @@
 
 
     // $ANTLR start "rule__XListLiteral__Group__0"
-    // InternalSignalDSL.g:9573:1: rule__XListLiteral__Group__0 : rule__XListLiteral__Group__0__Impl rule__XListLiteral__Group__1 ;
+    // InternalSignalDSL.g:9836: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:9577:1: ( rule__XListLiteral__Group__0__Impl rule__XListLiteral__Group__1 )
-            // InternalSignalDSL.g:9578:2: rule__XListLiteral__Group__0__Impl rule__XListLiteral__Group__1
+            // InternalSignalDSL.g:9840:1: ( rule__XListLiteral__Group__0__Impl rule__XListLiteral__Group__1 )
+            // InternalSignalDSL.g:9841:2: rule__XListLiteral__Group__0__Impl rule__XListLiteral__Group__1
             {
-            pushFollow(FOLLOW_33);
+            pushFollow(FOLLOW_38);
             rule__XListLiteral__Group__0__Impl();
 
             state._fsp--;
@@ -32604,23 +33389,23 @@
 
 
     // $ANTLR start "rule__XListLiteral__Group__0__Impl"
-    // InternalSignalDSL.g:9585:1: rule__XListLiteral__Group__0__Impl : ( () ) ;
+    // InternalSignalDSL.g:9848:1: rule__XListLiteral__Group__0__Impl : ( () ) ;
     public final void rule__XListLiteral__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:9589:1: ( ( () ) )
-            // InternalSignalDSL.g:9590:1: ( () )
+            // InternalSignalDSL.g:9852:1: ( ( () ) )
+            // InternalSignalDSL.g:9853:1: ( () )
             {
-            // InternalSignalDSL.g:9590:1: ( () )
-            // InternalSignalDSL.g:9591:2: ()
+            // InternalSignalDSL.g:9853:1: ( () )
+            // InternalSignalDSL.g:9854:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXListLiteralAccess().getXListLiteralAction_0()); 
             }
-            // InternalSignalDSL.g:9592:2: ()
-            // InternalSignalDSL.g:9592:3: 
+            // InternalSignalDSL.g:9855:2: ()
+            // InternalSignalDSL.g:9855:3: 
             {
             }
 
@@ -32645,16 +33430,16 @@
 
 
     // $ANTLR start "rule__XListLiteral__Group__1"
-    // InternalSignalDSL.g:9600:1: rule__XListLiteral__Group__1 : rule__XListLiteral__Group__1__Impl rule__XListLiteral__Group__2 ;
+    // InternalSignalDSL.g:9863: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:9604:1: ( rule__XListLiteral__Group__1__Impl rule__XListLiteral__Group__2 )
-            // InternalSignalDSL.g:9605:2: rule__XListLiteral__Group__1__Impl rule__XListLiteral__Group__2
+            // InternalSignalDSL.g:9867:1: ( rule__XListLiteral__Group__1__Impl rule__XListLiteral__Group__2 )
+            // InternalSignalDSL.g:9868:2: rule__XListLiteral__Group__1__Impl rule__XListLiteral__Group__2
             {
-            pushFollow(FOLLOW_34);
+            pushFollow(FOLLOW_39);
             rule__XListLiteral__Group__1__Impl();
 
             state._fsp--;
@@ -32683,22 +33468,22 @@
 
 
     // $ANTLR start "rule__XListLiteral__Group__1__Impl"
-    // InternalSignalDSL.g:9612:1: rule__XListLiteral__Group__1__Impl : ( '#' ) ;
+    // InternalSignalDSL.g:9875:1: rule__XListLiteral__Group__1__Impl : ( '#' ) ;
     public final void rule__XListLiteral__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:9616:1: ( ( '#' ) )
-            // InternalSignalDSL.g:9617:1: ( '#' )
+            // InternalSignalDSL.g:9879:1: ( ( '#' ) )
+            // InternalSignalDSL.g:9880:1: ( '#' )
             {
-            // InternalSignalDSL.g:9617:1: ( '#' )
-            // InternalSignalDSL.g:9618:2: '#'
+            // InternalSignalDSL.g:9880:1: ( '#' )
+            // InternalSignalDSL.g:9881:2: '#'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXListLiteralAccess().getNumberSignKeyword_1()); 
             }
-            match(input,80,FOLLOW_2); if (state.failed) return ;
+            match(input,78,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXListLiteralAccess().getNumberSignKeyword_1()); 
             }
@@ -32724,16 +33509,16 @@
 
 
     // $ANTLR start "rule__XListLiteral__Group__2"
-    // InternalSignalDSL.g:9627:1: rule__XListLiteral__Group__2 : rule__XListLiteral__Group__2__Impl rule__XListLiteral__Group__3 ;
+    // InternalSignalDSL.g:9890: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:9631:1: ( rule__XListLiteral__Group__2__Impl rule__XListLiteral__Group__3 )
-            // InternalSignalDSL.g:9632:2: rule__XListLiteral__Group__2__Impl rule__XListLiteral__Group__3
+            // InternalSignalDSL.g:9894:1: ( rule__XListLiteral__Group__2__Impl rule__XListLiteral__Group__3 )
+            // InternalSignalDSL.g:9895:2: rule__XListLiteral__Group__2__Impl rule__XListLiteral__Group__3
             {
-            pushFollow(FOLLOW_32);
+            pushFollow(FOLLOW_37);
             rule__XListLiteral__Group__2__Impl();
 
             state._fsp--;
@@ -32762,22 +33547,22 @@
 
 
     // $ANTLR start "rule__XListLiteral__Group__2__Impl"
-    // InternalSignalDSL.g:9639:1: rule__XListLiteral__Group__2__Impl : ( '[' ) ;
+    // InternalSignalDSL.g:9902:1: rule__XListLiteral__Group__2__Impl : ( '[' ) ;
     public final void rule__XListLiteral__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:9643:1: ( ( '[' ) )
-            // InternalSignalDSL.g:9644:1: ( '[' )
+            // InternalSignalDSL.g:9906:1: ( ( '[' ) )
+            // InternalSignalDSL.g:9907:1: ( '[' )
             {
-            // InternalSignalDSL.g:9644:1: ( '[' )
-            // InternalSignalDSL.g:9645:2: '['
+            // InternalSignalDSL.g:9907:1: ( '[' )
+            // InternalSignalDSL.g:9908:2: '['
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXListLiteralAccess().getLeftSquareBracketKeyword_2()); 
             }
-            match(input,81,FOLLOW_2); if (state.failed) return ;
+            match(input,79,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXListLiteralAccess().getLeftSquareBracketKeyword_2()); 
             }
@@ -32803,16 +33588,16 @@
 
 
     // $ANTLR start "rule__XListLiteral__Group__3"
-    // InternalSignalDSL.g:9654:1: rule__XListLiteral__Group__3 : rule__XListLiteral__Group__3__Impl rule__XListLiteral__Group__4 ;
+    // InternalSignalDSL.g:9917: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:9658:1: ( rule__XListLiteral__Group__3__Impl rule__XListLiteral__Group__4 )
-            // InternalSignalDSL.g:9659:2: rule__XListLiteral__Group__3__Impl rule__XListLiteral__Group__4
+            // InternalSignalDSL.g:9921:1: ( rule__XListLiteral__Group__3__Impl rule__XListLiteral__Group__4 )
+            // InternalSignalDSL.g:9922:2: rule__XListLiteral__Group__3__Impl rule__XListLiteral__Group__4
             {
-            pushFollow(FOLLOW_32);
+            pushFollow(FOLLOW_37);
             rule__XListLiteral__Group__3__Impl();
 
             state._fsp--;
@@ -32841,31 +33626,31 @@
 
 
     // $ANTLR start "rule__XListLiteral__Group__3__Impl"
-    // InternalSignalDSL.g:9666:1: rule__XListLiteral__Group__3__Impl : ( ( rule__XListLiteral__Group_3__0 )? ) ;
+    // InternalSignalDSL.g:9929: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:9670:1: ( ( ( rule__XListLiteral__Group_3__0 )? ) )
-            // InternalSignalDSL.g:9671:1: ( ( rule__XListLiteral__Group_3__0 )? )
+            // InternalSignalDSL.g:9933:1: ( ( ( rule__XListLiteral__Group_3__0 )? ) )
+            // InternalSignalDSL.g:9934:1: ( ( rule__XListLiteral__Group_3__0 )? )
             {
-            // InternalSignalDSL.g:9671:1: ( ( rule__XListLiteral__Group_3__0 )? )
-            // InternalSignalDSL.g:9672:2: ( rule__XListLiteral__Group_3__0 )?
+            // InternalSignalDSL.g:9934:1: ( ( rule__XListLiteral__Group_3__0 )? )
+            // InternalSignalDSL.g:9935:2: ( rule__XListLiteral__Group_3__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXListLiteralAccess().getGroup_3()); 
             }
-            // InternalSignalDSL.g:9673:2: ( rule__XListLiteral__Group_3__0 )?
-            int alt85=2;
-            int LA85_0 = input.LA(1);
+            // InternalSignalDSL.g:9936:2: ( rule__XListLiteral__Group_3__0 )?
+            int alt88=2;
+            int LA88_0 = input.LA(1);
 
-            if ( ((LA85_0>=RULE_ID && LA85_0<=RULE_STRING)||LA85_0==27||(LA85_0>=34 && LA85_0<=35)||LA85_0==40||(LA85_0>=45 && LA85_0<=50)||LA85_0==68||LA85_0==72||LA85_0==76||(LA85_0>=80 && LA85_0<=81)||LA85_0==84||LA85_0==86||(LA85_0>=90 && LA85_0<=97)||LA85_0==99||LA85_0==108) ) {
-                alt85=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==64||LA88_0==68||LA88_0==74||(LA88_0>=78 && LA88_0<=79)||LA88_0==82||LA88_0==84||(LA88_0>=88 && LA88_0<=95)||LA88_0==97||LA88_0==106) ) {
+                alt88=1;
             }
-            switch (alt85) {
+            switch (alt88) {
                 case 1 :
-                    // InternalSignalDSL.g:9673:3: rule__XListLiteral__Group_3__0
+                    // InternalSignalDSL.g:9936:3: rule__XListLiteral__Group_3__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XListLiteral__Group_3__0();
@@ -32903,14 +33688,14 @@
 
 
     // $ANTLR start "rule__XListLiteral__Group__4"
-    // InternalSignalDSL.g:9681:1: rule__XListLiteral__Group__4 : rule__XListLiteral__Group__4__Impl ;
+    // InternalSignalDSL.g:9944: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:9685:1: ( rule__XListLiteral__Group__4__Impl )
-            // InternalSignalDSL.g:9686:2: rule__XListLiteral__Group__4__Impl
+            // InternalSignalDSL.g:9948:1: ( rule__XListLiteral__Group__4__Impl )
+            // InternalSignalDSL.g:9949:2: rule__XListLiteral__Group__4__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XListLiteral__Group__4__Impl();
@@ -32936,22 +33721,22 @@
 
 
     // $ANTLR start "rule__XListLiteral__Group__4__Impl"
-    // InternalSignalDSL.g:9692:1: rule__XListLiteral__Group__4__Impl : ( ']' ) ;
+    // InternalSignalDSL.g:9955:1: rule__XListLiteral__Group__4__Impl : ( ']' ) ;
     public final void rule__XListLiteral__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:9696:1: ( ( ']' ) )
-            // InternalSignalDSL.g:9697:1: ( ']' )
+            // InternalSignalDSL.g:9959:1: ( ( ']' ) )
+            // InternalSignalDSL.g:9960:1: ( ']' )
             {
-            // InternalSignalDSL.g:9697:1: ( ']' )
-            // InternalSignalDSL.g:9698:2: ']'
+            // InternalSignalDSL.g:9960:1: ( ']' )
+            // InternalSignalDSL.g:9961:2: ']'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXListLiteralAccess().getRightSquareBracketKeyword_4()); 
             }
-            match(input,79,FOLLOW_2); if (state.failed) return ;
+            match(input,77,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXListLiteralAccess().getRightSquareBracketKeyword_4()); 
             }
@@ -32977,16 +33762,16 @@
 
 
     // $ANTLR start "rule__XListLiteral__Group_3__0"
-    // InternalSignalDSL.g:9708:1: rule__XListLiteral__Group_3__0 : rule__XListLiteral__Group_3__0__Impl rule__XListLiteral__Group_3__1 ;
+    // InternalSignalDSL.g:9971: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:9712:1: ( rule__XListLiteral__Group_3__0__Impl rule__XListLiteral__Group_3__1 )
-            // InternalSignalDSL.g:9713:2: rule__XListLiteral__Group_3__0__Impl rule__XListLiteral__Group_3__1
+            // InternalSignalDSL.g:9975:1: ( rule__XListLiteral__Group_3__0__Impl rule__XListLiteral__Group_3__1 )
+            // InternalSignalDSL.g:9976:2: rule__XListLiteral__Group_3__0__Impl rule__XListLiteral__Group_3__1
             {
-            pushFollow(FOLLOW_28);
+            pushFollow(FOLLOW_33);
             rule__XListLiteral__Group_3__0__Impl();
 
             state._fsp--;
@@ -33015,23 +33800,23 @@
 
 
     // $ANTLR start "rule__XListLiteral__Group_3__0__Impl"
-    // InternalSignalDSL.g:9720:1: rule__XListLiteral__Group_3__0__Impl : ( ( rule__XListLiteral__ElementsAssignment_3_0 ) ) ;
+    // InternalSignalDSL.g:9983: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:9724:1: ( ( ( rule__XListLiteral__ElementsAssignment_3_0 ) ) )
-            // InternalSignalDSL.g:9725:1: ( ( rule__XListLiteral__ElementsAssignment_3_0 ) )
+            // InternalSignalDSL.g:9987:1: ( ( ( rule__XListLiteral__ElementsAssignment_3_0 ) ) )
+            // InternalSignalDSL.g:9988:1: ( ( rule__XListLiteral__ElementsAssignment_3_0 ) )
             {
-            // InternalSignalDSL.g:9725:1: ( ( rule__XListLiteral__ElementsAssignment_3_0 ) )
-            // InternalSignalDSL.g:9726:2: ( rule__XListLiteral__ElementsAssignment_3_0 )
+            // InternalSignalDSL.g:9988:1: ( ( rule__XListLiteral__ElementsAssignment_3_0 ) )
+            // InternalSignalDSL.g:9989:2: ( rule__XListLiteral__ElementsAssignment_3_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXListLiteralAccess().getElementsAssignment_3_0()); 
             }
-            // InternalSignalDSL.g:9727:2: ( rule__XListLiteral__ElementsAssignment_3_0 )
-            // InternalSignalDSL.g:9727:3: rule__XListLiteral__ElementsAssignment_3_0
+            // InternalSignalDSL.g:9990:2: ( rule__XListLiteral__ElementsAssignment_3_0 )
+            // InternalSignalDSL.g:9990:3: rule__XListLiteral__ElementsAssignment_3_0
             {
             pushFollow(FOLLOW_2);
             rule__XListLiteral__ElementsAssignment_3_0();
@@ -33066,14 +33851,14 @@
 
 
     // $ANTLR start "rule__XListLiteral__Group_3__1"
-    // InternalSignalDSL.g:9735:1: rule__XListLiteral__Group_3__1 : rule__XListLiteral__Group_3__1__Impl ;
+    // InternalSignalDSL.g:9998: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:9739:1: ( rule__XListLiteral__Group_3__1__Impl )
-            // InternalSignalDSL.g:9740:2: rule__XListLiteral__Group_3__1__Impl
+            // InternalSignalDSL.g:10002:1: ( rule__XListLiteral__Group_3__1__Impl )
+            // InternalSignalDSL.g:10003:2: rule__XListLiteral__Group_3__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XListLiteral__Group_3__1__Impl();
@@ -33099,37 +33884,37 @@
 
 
     // $ANTLR start "rule__XListLiteral__Group_3__1__Impl"
-    // InternalSignalDSL.g:9746:1: rule__XListLiteral__Group_3__1__Impl : ( ( rule__XListLiteral__Group_3_1__0 )* ) ;
+    // InternalSignalDSL.g:10009: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:9750:1: ( ( ( rule__XListLiteral__Group_3_1__0 )* ) )
-            // InternalSignalDSL.g:9751:1: ( ( rule__XListLiteral__Group_3_1__0 )* )
+            // InternalSignalDSL.g:10013:1: ( ( ( rule__XListLiteral__Group_3_1__0 )* ) )
+            // InternalSignalDSL.g:10014:1: ( ( rule__XListLiteral__Group_3_1__0 )* )
             {
-            // InternalSignalDSL.g:9751:1: ( ( rule__XListLiteral__Group_3_1__0 )* )
-            // InternalSignalDSL.g:9752:2: ( rule__XListLiteral__Group_3_1__0 )*
+            // InternalSignalDSL.g:10014:1: ( ( rule__XListLiteral__Group_3_1__0 )* )
+            // InternalSignalDSL.g:10015:2: ( rule__XListLiteral__Group_3_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXListLiteralAccess().getGroup_3_1()); 
             }
-            // InternalSignalDSL.g:9753:2: ( rule__XListLiteral__Group_3_1__0 )*
-            loop86:
+            // InternalSignalDSL.g:10016:2: ( rule__XListLiteral__Group_3_1__0 )*
+            loop89:
             do {
-                int alt86=2;
-                int LA86_0 = input.LA(1);
+                int alt89=2;
+                int LA89_0 = input.LA(1);
 
-                if ( (LA86_0==78) ) {
-                    alt86=1;
+                if ( (LA89_0==76) ) {
+                    alt89=1;
                 }
 
 
-                switch (alt86) {
+                switch (alt89) {
             	case 1 :
-            	    // InternalSignalDSL.g:9753:3: rule__XListLiteral__Group_3_1__0
+            	    // InternalSignalDSL.g:10016:3: rule__XListLiteral__Group_3_1__0
             	    {
-            	    pushFollow(FOLLOW_29);
+            	    pushFollow(FOLLOW_34);
             	    rule__XListLiteral__Group_3_1__0();
 
             	    state._fsp--;
@@ -33139,7 +33924,7 @@
             	    break;
 
             	default :
-            	    break loop86;
+            	    break loop89;
                 }
             } while (true);
 
@@ -33168,16 +33953,16 @@
 
 
     // $ANTLR start "rule__XListLiteral__Group_3_1__0"
-    // InternalSignalDSL.g:9762:1: rule__XListLiteral__Group_3_1__0 : rule__XListLiteral__Group_3_1__0__Impl rule__XListLiteral__Group_3_1__1 ;
+    // InternalSignalDSL.g:10025: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:9766:1: ( rule__XListLiteral__Group_3_1__0__Impl rule__XListLiteral__Group_3_1__1 )
-            // InternalSignalDSL.g:9767:2: rule__XListLiteral__Group_3_1__0__Impl rule__XListLiteral__Group_3_1__1
+            // InternalSignalDSL.g:10029:1: ( rule__XListLiteral__Group_3_1__0__Impl rule__XListLiteral__Group_3_1__1 )
+            // InternalSignalDSL.g:10030:2: rule__XListLiteral__Group_3_1__0__Impl rule__XListLiteral__Group_3_1__1
             {
-            pushFollow(FOLLOW_30);
+            pushFollow(FOLLOW_35);
             rule__XListLiteral__Group_3_1__0__Impl();
 
             state._fsp--;
@@ -33206,22 +33991,22 @@
 
 
     // $ANTLR start "rule__XListLiteral__Group_3_1__0__Impl"
-    // InternalSignalDSL.g:9774:1: rule__XListLiteral__Group_3_1__0__Impl : ( ',' ) ;
+    // InternalSignalDSL.g:10037: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:9778:1: ( ( ',' ) )
-            // InternalSignalDSL.g:9779:1: ( ',' )
+            // InternalSignalDSL.g:10041:1: ( ( ',' ) )
+            // InternalSignalDSL.g:10042:1: ( ',' )
             {
-            // InternalSignalDSL.g:9779:1: ( ',' )
-            // InternalSignalDSL.g:9780:2: ','
+            // InternalSignalDSL.g:10042:1: ( ',' )
+            // InternalSignalDSL.g:10043:2: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXListLiteralAccess().getCommaKeyword_3_1_0()); 
             }
-            match(input,78,FOLLOW_2); if (state.failed) return ;
+            match(input,76,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXListLiteralAccess().getCommaKeyword_3_1_0()); 
             }
@@ -33247,14 +34032,14 @@
 
 
     // $ANTLR start "rule__XListLiteral__Group_3_1__1"
-    // InternalSignalDSL.g:9789:1: rule__XListLiteral__Group_3_1__1 : rule__XListLiteral__Group_3_1__1__Impl ;
+    // InternalSignalDSL.g:10052: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:9793:1: ( rule__XListLiteral__Group_3_1__1__Impl )
-            // InternalSignalDSL.g:9794:2: rule__XListLiteral__Group_3_1__1__Impl
+            // InternalSignalDSL.g:10056:1: ( rule__XListLiteral__Group_3_1__1__Impl )
+            // InternalSignalDSL.g:10057:2: rule__XListLiteral__Group_3_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XListLiteral__Group_3_1__1__Impl();
@@ -33280,23 +34065,23 @@
 
 
     // $ANTLR start "rule__XListLiteral__Group_3_1__1__Impl"
-    // InternalSignalDSL.g:9800:1: rule__XListLiteral__Group_3_1__1__Impl : ( ( rule__XListLiteral__ElementsAssignment_3_1_1 ) ) ;
+    // InternalSignalDSL.g:10063: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:9804:1: ( ( ( rule__XListLiteral__ElementsAssignment_3_1_1 ) ) )
-            // InternalSignalDSL.g:9805:1: ( ( rule__XListLiteral__ElementsAssignment_3_1_1 ) )
+            // InternalSignalDSL.g:10067:1: ( ( ( rule__XListLiteral__ElementsAssignment_3_1_1 ) ) )
+            // InternalSignalDSL.g:10068:1: ( ( rule__XListLiteral__ElementsAssignment_3_1_1 ) )
             {
-            // InternalSignalDSL.g:9805:1: ( ( rule__XListLiteral__ElementsAssignment_3_1_1 ) )
-            // InternalSignalDSL.g:9806:2: ( rule__XListLiteral__ElementsAssignment_3_1_1 )
+            // InternalSignalDSL.g:10068:1: ( ( rule__XListLiteral__ElementsAssignment_3_1_1 ) )
+            // InternalSignalDSL.g:10069:2: ( rule__XListLiteral__ElementsAssignment_3_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXListLiteralAccess().getElementsAssignment_3_1_1()); 
             }
-            // InternalSignalDSL.g:9807:2: ( rule__XListLiteral__ElementsAssignment_3_1_1 )
-            // InternalSignalDSL.g:9807:3: rule__XListLiteral__ElementsAssignment_3_1_1
+            // InternalSignalDSL.g:10070:2: ( rule__XListLiteral__ElementsAssignment_3_1_1 )
+            // InternalSignalDSL.g:10070:3: rule__XListLiteral__ElementsAssignment_3_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XListLiteral__ElementsAssignment_3_1_1();
@@ -33331,16 +34116,16 @@
 
 
     // $ANTLR start "rule__XClosure__Group__0"
-    // InternalSignalDSL.g:9816:1: rule__XClosure__Group__0 : rule__XClosure__Group__0__Impl rule__XClosure__Group__1 ;
+    // InternalSignalDSL.g:10079: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:9820:1: ( rule__XClosure__Group__0__Impl rule__XClosure__Group__1 )
-            // InternalSignalDSL.g:9821:2: rule__XClosure__Group__0__Impl rule__XClosure__Group__1
+            // InternalSignalDSL.g:10083:1: ( rule__XClosure__Group__0__Impl rule__XClosure__Group__1 )
+            // InternalSignalDSL.g:10084:2: rule__XClosure__Group__0__Impl rule__XClosure__Group__1
             {
-            pushFollow(FOLLOW_71);
+            pushFollow(FOLLOW_76);
             rule__XClosure__Group__0__Impl();
 
             state._fsp--;
@@ -33369,23 +34154,23 @@
 
 
     // $ANTLR start "rule__XClosure__Group__0__Impl"
-    // InternalSignalDSL.g:9828:1: rule__XClosure__Group__0__Impl : ( ( rule__XClosure__Group_0__0 ) ) ;
+    // InternalSignalDSL.g:10091: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:9832:1: ( ( ( rule__XClosure__Group_0__0 ) ) )
-            // InternalSignalDSL.g:9833:1: ( ( rule__XClosure__Group_0__0 ) )
+            // InternalSignalDSL.g:10095:1: ( ( ( rule__XClosure__Group_0__0 ) ) )
+            // InternalSignalDSL.g:10096:1: ( ( rule__XClosure__Group_0__0 ) )
             {
-            // InternalSignalDSL.g:9833:1: ( ( rule__XClosure__Group_0__0 ) )
-            // InternalSignalDSL.g:9834:2: ( rule__XClosure__Group_0__0 )
+            // InternalSignalDSL.g:10096:1: ( ( rule__XClosure__Group_0__0 ) )
+            // InternalSignalDSL.g:10097:2: ( rule__XClosure__Group_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXClosureAccess().getGroup_0()); 
             }
-            // InternalSignalDSL.g:9835:2: ( rule__XClosure__Group_0__0 )
-            // InternalSignalDSL.g:9835:3: rule__XClosure__Group_0__0
+            // InternalSignalDSL.g:10098:2: ( rule__XClosure__Group_0__0 )
+            // InternalSignalDSL.g:10098:3: rule__XClosure__Group_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XClosure__Group_0__0();
@@ -33420,16 +34205,16 @@
 
 
     // $ANTLR start "rule__XClosure__Group__1"
-    // InternalSignalDSL.g:9843:1: rule__XClosure__Group__1 : rule__XClosure__Group__1__Impl rule__XClosure__Group__2 ;
+    // InternalSignalDSL.g:10106: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:9847:1: ( rule__XClosure__Group__1__Impl rule__XClosure__Group__2 )
-            // InternalSignalDSL.g:9848:2: rule__XClosure__Group__1__Impl rule__XClosure__Group__2
+            // InternalSignalDSL.g:10110:1: ( rule__XClosure__Group__1__Impl rule__XClosure__Group__2 )
+            // InternalSignalDSL.g:10111:2: rule__XClosure__Group__1__Impl rule__XClosure__Group__2
             {
-            pushFollow(FOLLOW_71);
+            pushFollow(FOLLOW_76);
             rule__XClosure__Group__1__Impl();
 
             state._fsp--;
@@ -33458,27 +34243,27 @@
 
 
     // $ANTLR start "rule__XClosure__Group__1__Impl"
-    // InternalSignalDSL.g:9855:1: rule__XClosure__Group__1__Impl : ( ( rule__XClosure__Group_1__0 )? ) ;
+    // InternalSignalDSL.g:10118: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:9859:1: ( ( ( rule__XClosure__Group_1__0 )? ) )
-            // InternalSignalDSL.g:9860:1: ( ( rule__XClosure__Group_1__0 )? )
+            // InternalSignalDSL.g:10122:1: ( ( ( rule__XClosure__Group_1__0 )? ) )
+            // InternalSignalDSL.g:10123:1: ( ( rule__XClosure__Group_1__0 )? )
             {
-            // InternalSignalDSL.g:9860:1: ( ( rule__XClosure__Group_1__0 )? )
-            // InternalSignalDSL.g:9861:2: ( rule__XClosure__Group_1__0 )?
+            // InternalSignalDSL.g:10123:1: ( ( rule__XClosure__Group_1__0 )? )
+            // InternalSignalDSL.g:10124:2: ( rule__XClosure__Group_1__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXClosureAccess().getGroup_1()); 
             }
-            // InternalSignalDSL.g:9862:2: ( rule__XClosure__Group_1__0 )?
-            int alt87=2;
-            alt87 = dfa87.predict(input);
-            switch (alt87) {
+            // InternalSignalDSL.g:10125:2: ( rule__XClosure__Group_1__0 )?
+            int alt90=2;
+            alt90 = dfa90.predict(input);
+            switch (alt90) {
                 case 1 :
-                    // InternalSignalDSL.g:9862:3: rule__XClosure__Group_1__0
+                    // InternalSignalDSL.g:10125:3: rule__XClosure__Group_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XClosure__Group_1__0();
@@ -33516,16 +34301,16 @@
 
 
     // $ANTLR start "rule__XClosure__Group__2"
-    // InternalSignalDSL.g:9870:1: rule__XClosure__Group__2 : rule__XClosure__Group__2__Impl rule__XClosure__Group__3 ;
+    // InternalSignalDSL.g:10133: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:9874:1: ( rule__XClosure__Group__2__Impl rule__XClosure__Group__3 )
-            // InternalSignalDSL.g:9875:2: rule__XClosure__Group__2__Impl rule__XClosure__Group__3
+            // InternalSignalDSL.g:10137:1: ( rule__XClosure__Group__2__Impl rule__XClosure__Group__3 )
+            // InternalSignalDSL.g:10138:2: rule__XClosure__Group__2__Impl rule__XClosure__Group__3
             {
-            pushFollow(FOLLOW_72);
+            pushFollow(FOLLOW_77);
             rule__XClosure__Group__2__Impl();
 
             state._fsp--;
@@ -33554,23 +34339,23 @@
 
 
     // $ANTLR start "rule__XClosure__Group__2__Impl"
-    // InternalSignalDSL.g:9882:1: rule__XClosure__Group__2__Impl : ( ( rule__XClosure__ExpressionAssignment_2 ) ) ;
+    // InternalSignalDSL.g:10145: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:9886:1: ( ( ( rule__XClosure__ExpressionAssignment_2 ) ) )
-            // InternalSignalDSL.g:9887:1: ( ( rule__XClosure__ExpressionAssignment_2 ) )
+            // InternalSignalDSL.g:10149:1: ( ( ( rule__XClosure__ExpressionAssignment_2 ) ) )
+            // InternalSignalDSL.g:10150:1: ( ( rule__XClosure__ExpressionAssignment_2 ) )
             {
-            // InternalSignalDSL.g:9887:1: ( ( rule__XClosure__ExpressionAssignment_2 ) )
-            // InternalSignalDSL.g:9888:2: ( rule__XClosure__ExpressionAssignment_2 )
+            // InternalSignalDSL.g:10150:1: ( ( rule__XClosure__ExpressionAssignment_2 ) )
+            // InternalSignalDSL.g:10151:2: ( rule__XClosure__ExpressionAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXClosureAccess().getExpressionAssignment_2()); 
             }
-            // InternalSignalDSL.g:9889:2: ( rule__XClosure__ExpressionAssignment_2 )
-            // InternalSignalDSL.g:9889:3: rule__XClosure__ExpressionAssignment_2
+            // InternalSignalDSL.g:10152:2: ( rule__XClosure__ExpressionAssignment_2 )
+            // InternalSignalDSL.g:10152:3: rule__XClosure__ExpressionAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__XClosure__ExpressionAssignment_2();
@@ -33605,14 +34390,14 @@
 
 
     // $ANTLR start "rule__XClosure__Group__3"
-    // InternalSignalDSL.g:9897:1: rule__XClosure__Group__3 : rule__XClosure__Group__3__Impl ;
+    // InternalSignalDSL.g:10160: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:9901:1: ( rule__XClosure__Group__3__Impl )
-            // InternalSignalDSL.g:9902:2: rule__XClosure__Group__3__Impl
+            // InternalSignalDSL.g:10164:1: ( rule__XClosure__Group__3__Impl )
+            // InternalSignalDSL.g:10165:2: rule__XClosure__Group__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XClosure__Group__3__Impl();
@@ -33638,22 +34423,22 @@
 
 
     // $ANTLR start "rule__XClosure__Group__3__Impl"
-    // InternalSignalDSL.g:9908:1: rule__XClosure__Group__3__Impl : ( ']' ) ;
+    // InternalSignalDSL.g:10171:1: rule__XClosure__Group__3__Impl : ( ']' ) ;
     public final void rule__XClosure__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:9912:1: ( ( ']' ) )
-            // InternalSignalDSL.g:9913:1: ( ']' )
+            // InternalSignalDSL.g:10175:1: ( ( ']' ) )
+            // InternalSignalDSL.g:10176:1: ( ']' )
             {
-            // InternalSignalDSL.g:9913:1: ( ']' )
-            // InternalSignalDSL.g:9914:2: ']'
+            // InternalSignalDSL.g:10176:1: ( ']' )
+            // InternalSignalDSL.g:10177:2: ']'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXClosureAccess().getRightSquareBracketKeyword_3()); 
             }
-            match(input,79,FOLLOW_2); if (state.failed) return ;
+            match(input,77,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXClosureAccess().getRightSquareBracketKeyword_3()); 
             }
@@ -33679,14 +34464,14 @@
 
 
     // $ANTLR start "rule__XClosure__Group_0__0"
-    // InternalSignalDSL.g:9924:1: rule__XClosure__Group_0__0 : rule__XClosure__Group_0__0__Impl ;
+    // InternalSignalDSL.g:10187: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:9928:1: ( rule__XClosure__Group_0__0__Impl )
-            // InternalSignalDSL.g:9929:2: rule__XClosure__Group_0__0__Impl
+            // InternalSignalDSL.g:10191:1: ( rule__XClosure__Group_0__0__Impl )
+            // InternalSignalDSL.g:10192:2: rule__XClosure__Group_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XClosure__Group_0__0__Impl();
@@ -33712,23 +34497,23 @@
 
 
     // $ANTLR start "rule__XClosure__Group_0__0__Impl"
-    // InternalSignalDSL.g:9935:1: rule__XClosure__Group_0__0__Impl : ( ( rule__XClosure__Group_0_0__0 ) ) ;
+    // InternalSignalDSL.g:10198: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:9939:1: ( ( ( rule__XClosure__Group_0_0__0 ) ) )
-            // InternalSignalDSL.g:9940:1: ( ( rule__XClosure__Group_0_0__0 ) )
+            // InternalSignalDSL.g:10202:1: ( ( ( rule__XClosure__Group_0_0__0 ) ) )
+            // InternalSignalDSL.g:10203:1: ( ( rule__XClosure__Group_0_0__0 ) )
             {
-            // InternalSignalDSL.g:9940:1: ( ( rule__XClosure__Group_0_0__0 ) )
-            // InternalSignalDSL.g:9941:2: ( rule__XClosure__Group_0_0__0 )
+            // InternalSignalDSL.g:10203:1: ( ( rule__XClosure__Group_0_0__0 ) )
+            // InternalSignalDSL.g:10204:2: ( rule__XClosure__Group_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXClosureAccess().getGroup_0_0()); 
             }
-            // InternalSignalDSL.g:9942:2: ( rule__XClosure__Group_0_0__0 )
-            // InternalSignalDSL.g:9942:3: rule__XClosure__Group_0_0__0
+            // InternalSignalDSL.g:10205:2: ( rule__XClosure__Group_0_0__0 )
+            // InternalSignalDSL.g:10205:3: rule__XClosure__Group_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XClosure__Group_0_0__0();
@@ -33763,16 +34548,16 @@
 
 
     // $ANTLR start "rule__XClosure__Group_0_0__0"
-    // InternalSignalDSL.g:9951:1: rule__XClosure__Group_0_0__0 : rule__XClosure__Group_0_0__0__Impl rule__XClosure__Group_0_0__1 ;
+    // InternalSignalDSL.g:10214: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:9955:1: ( rule__XClosure__Group_0_0__0__Impl rule__XClosure__Group_0_0__1 )
-            // InternalSignalDSL.g:9956:2: rule__XClosure__Group_0_0__0__Impl rule__XClosure__Group_0_0__1
+            // InternalSignalDSL.g:10218:1: ( rule__XClosure__Group_0_0__0__Impl rule__XClosure__Group_0_0__1 )
+            // InternalSignalDSL.g:10219:2: rule__XClosure__Group_0_0__0__Impl rule__XClosure__Group_0_0__1
             {
-            pushFollow(FOLLOW_34);
+            pushFollow(FOLLOW_39);
             rule__XClosure__Group_0_0__0__Impl();
 
             state._fsp--;
@@ -33801,23 +34586,23 @@
 
 
     // $ANTLR start "rule__XClosure__Group_0_0__0__Impl"
-    // InternalSignalDSL.g:9963:1: rule__XClosure__Group_0_0__0__Impl : ( () ) ;
+    // InternalSignalDSL.g:10226: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:9967:1: ( ( () ) )
-            // InternalSignalDSL.g:9968:1: ( () )
+            // InternalSignalDSL.g:10230:1: ( ( () ) )
+            // InternalSignalDSL.g:10231:1: ( () )
             {
-            // InternalSignalDSL.g:9968:1: ( () )
-            // InternalSignalDSL.g:9969:2: ()
+            // InternalSignalDSL.g:10231:1: ( () )
+            // InternalSignalDSL.g:10232:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXClosureAccess().getXClosureAction_0_0_0()); 
             }
-            // InternalSignalDSL.g:9970:2: ()
-            // InternalSignalDSL.g:9970:3: 
+            // InternalSignalDSL.g:10233:2: ()
+            // InternalSignalDSL.g:10233:3: 
             {
             }
 
@@ -33842,14 +34627,14 @@
 
 
     // $ANTLR start "rule__XClosure__Group_0_0__1"
-    // InternalSignalDSL.g:9978:1: rule__XClosure__Group_0_0__1 : rule__XClosure__Group_0_0__1__Impl ;
+    // InternalSignalDSL.g:10241: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:9982:1: ( rule__XClosure__Group_0_0__1__Impl )
-            // InternalSignalDSL.g:9983:2: rule__XClosure__Group_0_0__1__Impl
+            // InternalSignalDSL.g:10245:1: ( rule__XClosure__Group_0_0__1__Impl )
+            // InternalSignalDSL.g:10246:2: rule__XClosure__Group_0_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XClosure__Group_0_0__1__Impl();
@@ -33875,22 +34660,22 @@
 
 
     // $ANTLR start "rule__XClosure__Group_0_0__1__Impl"
-    // InternalSignalDSL.g:9989:1: rule__XClosure__Group_0_0__1__Impl : ( '[' ) ;
+    // InternalSignalDSL.g:10252: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:9993:1: ( ( '[' ) )
-            // InternalSignalDSL.g:9994:1: ( '[' )
+            // InternalSignalDSL.g:10256:1: ( ( '[' ) )
+            // InternalSignalDSL.g:10257:1: ( '[' )
             {
-            // InternalSignalDSL.g:9994:1: ( '[' )
-            // InternalSignalDSL.g:9995:2: '['
+            // InternalSignalDSL.g:10257:1: ( '[' )
+            // InternalSignalDSL.g:10258:2: '['
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXClosureAccess().getLeftSquareBracketKeyword_0_0_1()); 
             }
-            match(input,81,FOLLOW_2); if (state.failed) return ;
+            match(input,79,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXClosureAccess().getLeftSquareBracketKeyword_0_0_1()); 
             }
@@ -33916,14 +34701,14 @@
 
 
     // $ANTLR start "rule__XClosure__Group_1__0"
-    // InternalSignalDSL.g:10005:1: rule__XClosure__Group_1__0 : rule__XClosure__Group_1__0__Impl ;
+    // InternalSignalDSL.g:10268: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:10009:1: ( rule__XClosure__Group_1__0__Impl )
-            // InternalSignalDSL.g:10010:2: rule__XClosure__Group_1__0__Impl
+            // InternalSignalDSL.g:10272:1: ( rule__XClosure__Group_1__0__Impl )
+            // InternalSignalDSL.g:10273:2: rule__XClosure__Group_1__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XClosure__Group_1__0__Impl();
@@ -33949,23 +34734,23 @@
 
 
     // $ANTLR start "rule__XClosure__Group_1__0__Impl"
-    // InternalSignalDSL.g:10016:1: rule__XClosure__Group_1__0__Impl : ( ( rule__XClosure__Group_1_0__0 ) ) ;
+    // InternalSignalDSL.g:10279: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:10020:1: ( ( ( rule__XClosure__Group_1_0__0 ) ) )
-            // InternalSignalDSL.g:10021:1: ( ( rule__XClosure__Group_1_0__0 ) )
+            // InternalSignalDSL.g:10283:1: ( ( ( rule__XClosure__Group_1_0__0 ) ) )
+            // InternalSignalDSL.g:10284:1: ( ( rule__XClosure__Group_1_0__0 ) )
             {
-            // InternalSignalDSL.g:10021:1: ( ( rule__XClosure__Group_1_0__0 ) )
-            // InternalSignalDSL.g:10022:2: ( rule__XClosure__Group_1_0__0 )
+            // InternalSignalDSL.g:10284:1: ( ( rule__XClosure__Group_1_0__0 ) )
+            // InternalSignalDSL.g:10285:2: ( rule__XClosure__Group_1_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXClosureAccess().getGroup_1_0()); 
             }
-            // InternalSignalDSL.g:10023:2: ( rule__XClosure__Group_1_0__0 )
-            // InternalSignalDSL.g:10023:3: rule__XClosure__Group_1_0__0
+            // InternalSignalDSL.g:10286:2: ( rule__XClosure__Group_1_0__0 )
+            // InternalSignalDSL.g:10286:3: rule__XClosure__Group_1_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XClosure__Group_1_0__0();
@@ -34000,16 +34785,16 @@
 
 
     // $ANTLR start "rule__XClosure__Group_1_0__0"
-    // InternalSignalDSL.g:10032:1: rule__XClosure__Group_1_0__0 : rule__XClosure__Group_1_0__0__Impl rule__XClosure__Group_1_0__1 ;
+    // InternalSignalDSL.g:10295: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:10036:1: ( rule__XClosure__Group_1_0__0__Impl rule__XClosure__Group_1_0__1 )
-            // InternalSignalDSL.g:10037:2: rule__XClosure__Group_1_0__0__Impl rule__XClosure__Group_1_0__1
+            // InternalSignalDSL.g:10299:1: ( rule__XClosure__Group_1_0__0__Impl rule__XClosure__Group_1_0__1 )
+            // InternalSignalDSL.g:10300:2: rule__XClosure__Group_1_0__0__Impl rule__XClosure__Group_1_0__1
             {
-            pushFollow(FOLLOW_73);
+            pushFollow(FOLLOW_78);
             rule__XClosure__Group_1_0__0__Impl();
 
             state._fsp--;
@@ -34038,31 +34823,31 @@
 
 
     // $ANTLR start "rule__XClosure__Group_1_0__0__Impl"
-    // InternalSignalDSL.g:10044:1: rule__XClosure__Group_1_0__0__Impl : ( ( rule__XClosure__Group_1_0_0__0 )? ) ;
+    // InternalSignalDSL.g:10307: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:10048:1: ( ( ( rule__XClosure__Group_1_0_0__0 )? ) )
-            // InternalSignalDSL.g:10049:1: ( ( rule__XClosure__Group_1_0_0__0 )? )
+            // InternalSignalDSL.g:10311:1: ( ( ( rule__XClosure__Group_1_0_0__0 )? ) )
+            // InternalSignalDSL.g:10312:1: ( ( rule__XClosure__Group_1_0_0__0 )? )
             {
-            // InternalSignalDSL.g:10049:1: ( ( rule__XClosure__Group_1_0_0__0 )? )
-            // InternalSignalDSL.g:10050:2: ( rule__XClosure__Group_1_0_0__0 )?
+            // InternalSignalDSL.g:10312:1: ( ( rule__XClosure__Group_1_0_0__0 )? )
+            // InternalSignalDSL.g:10313:2: ( rule__XClosure__Group_1_0_0__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXClosureAccess().getGroup_1_0_0()); 
             }
-            // InternalSignalDSL.g:10051:2: ( rule__XClosure__Group_1_0_0__0 )?
-            int alt88=2;
-            int LA88_0 = input.LA(1);
+            // InternalSignalDSL.g:10314:2: ( rule__XClosure__Group_1_0_0__0 )?
+            int alt91=2;
+            int LA91_0 = input.LA(1);
 
-            if ( (LA88_0==RULE_ID||LA88_0==31||LA88_0==76) ) {
-                alt88=1;
+            if ( (LA91_0==RULE_ID||LA91_0==31||LA91_0==74) ) {
+                alt91=1;
             }
-            switch (alt88) {
+            switch (alt91) {
                 case 1 :
-                    // InternalSignalDSL.g:10051:3: rule__XClosure__Group_1_0_0__0
+                    // InternalSignalDSL.g:10314:3: rule__XClosure__Group_1_0_0__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XClosure__Group_1_0_0__0();
@@ -34100,14 +34885,14 @@
 
 
     // $ANTLR start "rule__XClosure__Group_1_0__1"
-    // InternalSignalDSL.g:10059:1: rule__XClosure__Group_1_0__1 : rule__XClosure__Group_1_0__1__Impl ;
+    // InternalSignalDSL.g:10322: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:10063:1: ( rule__XClosure__Group_1_0__1__Impl )
-            // InternalSignalDSL.g:10064:2: rule__XClosure__Group_1_0__1__Impl
+            // InternalSignalDSL.g:10326:1: ( rule__XClosure__Group_1_0__1__Impl )
+            // InternalSignalDSL.g:10327:2: rule__XClosure__Group_1_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XClosure__Group_1_0__1__Impl();
@@ -34133,23 +34918,23 @@
 
 
     // $ANTLR start "rule__XClosure__Group_1_0__1__Impl"
-    // InternalSignalDSL.g:10070:1: rule__XClosure__Group_1_0__1__Impl : ( ( rule__XClosure__ExplicitSyntaxAssignment_1_0_1 ) ) ;
+    // InternalSignalDSL.g:10333: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:10074:1: ( ( ( rule__XClosure__ExplicitSyntaxAssignment_1_0_1 ) ) )
-            // InternalSignalDSL.g:10075:1: ( ( rule__XClosure__ExplicitSyntaxAssignment_1_0_1 ) )
+            // InternalSignalDSL.g:10337:1: ( ( ( rule__XClosure__ExplicitSyntaxAssignment_1_0_1 ) ) )
+            // InternalSignalDSL.g:10338:1: ( ( rule__XClosure__ExplicitSyntaxAssignment_1_0_1 ) )
             {
-            // InternalSignalDSL.g:10075:1: ( ( rule__XClosure__ExplicitSyntaxAssignment_1_0_1 ) )
-            // InternalSignalDSL.g:10076:2: ( rule__XClosure__ExplicitSyntaxAssignment_1_0_1 )
+            // InternalSignalDSL.g:10338:1: ( ( rule__XClosure__ExplicitSyntaxAssignment_1_0_1 ) )
+            // InternalSignalDSL.g:10339:2: ( rule__XClosure__ExplicitSyntaxAssignment_1_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXClosureAccess().getExplicitSyntaxAssignment_1_0_1()); 
             }
-            // InternalSignalDSL.g:10077:2: ( rule__XClosure__ExplicitSyntaxAssignment_1_0_1 )
-            // InternalSignalDSL.g:10077:3: rule__XClosure__ExplicitSyntaxAssignment_1_0_1
+            // InternalSignalDSL.g:10340:2: ( rule__XClosure__ExplicitSyntaxAssignment_1_0_1 )
+            // InternalSignalDSL.g:10340:3: rule__XClosure__ExplicitSyntaxAssignment_1_0_1
             {
             pushFollow(FOLLOW_2);
             rule__XClosure__ExplicitSyntaxAssignment_1_0_1();
@@ -34184,16 +34969,16 @@
 
 
     // $ANTLR start "rule__XClosure__Group_1_0_0__0"
-    // InternalSignalDSL.g:10086: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:10349: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:10090:1: ( rule__XClosure__Group_1_0_0__0__Impl rule__XClosure__Group_1_0_0__1 )
-            // InternalSignalDSL.g:10091:2: rule__XClosure__Group_1_0_0__0__Impl rule__XClosure__Group_1_0_0__1
+            // InternalSignalDSL.g:10353:1: ( rule__XClosure__Group_1_0_0__0__Impl rule__XClosure__Group_1_0_0__1 )
+            // InternalSignalDSL.g:10354:2: rule__XClosure__Group_1_0_0__0__Impl rule__XClosure__Group_1_0_0__1
             {
-            pushFollow(FOLLOW_28);
+            pushFollow(FOLLOW_33);
             rule__XClosure__Group_1_0_0__0__Impl();
 
             state._fsp--;
@@ -34222,23 +35007,23 @@
 
 
     // $ANTLR start "rule__XClosure__Group_1_0_0__0__Impl"
-    // InternalSignalDSL.g:10098:1: rule__XClosure__Group_1_0_0__0__Impl : ( ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0 ) ) ;
+    // InternalSignalDSL.g:10361: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:10102:1: ( ( ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0 ) ) )
-            // InternalSignalDSL.g:10103:1: ( ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0 ) )
+            // InternalSignalDSL.g:10365:1: ( ( ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0 ) ) )
+            // InternalSignalDSL.g:10366:1: ( ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0 ) )
             {
-            // InternalSignalDSL.g:10103:1: ( ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0 ) )
-            // InternalSignalDSL.g:10104:2: ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0 )
+            // InternalSignalDSL.g:10366:1: ( ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0 ) )
+            // InternalSignalDSL.g:10367:2: ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXClosureAccess().getDeclaredFormalParametersAssignment_1_0_0_0()); 
             }
-            // InternalSignalDSL.g:10105:2: ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0 )
-            // InternalSignalDSL.g:10105:3: rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0
+            // InternalSignalDSL.g:10368:2: ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0 )
+            // InternalSignalDSL.g:10368:3: rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0
             {
             pushFollow(FOLLOW_2);
             rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0();
@@ -34273,14 +35058,14 @@
 
 
     // $ANTLR start "rule__XClosure__Group_1_0_0__1"
-    // InternalSignalDSL.g:10113:1: rule__XClosure__Group_1_0_0__1 : rule__XClosure__Group_1_0_0__1__Impl ;
+    // InternalSignalDSL.g:10376: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:10117:1: ( rule__XClosure__Group_1_0_0__1__Impl )
-            // InternalSignalDSL.g:10118:2: rule__XClosure__Group_1_0_0__1__Impl
+            // InternalSignalDSL.g:10380:1: ( rule__XClosure__Group_1_0_0__1__Impl )
+            // InternalSignalDSL.g:10381:2: rule__XClosure__Group_1_0_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XClosure__Group_1_0_0__1__Impl();
@@ -34306,37 +35091,37 @@
 
 
     // $ANTLR start "rule__XClosure__Group_1_0_0__1__Impl"
-    // InternalSignalDSL.g:10124:1: rule__XClosure__Group_1_0_0__1__Impl : ( ( rule__XClosure__Group_1_0_0_1__0 )* ) ;
+    // InternalSignalDSL.g:10387: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:10128:1: ( ( ( rule__XClosure__Group_1_0_0_1__0 )* ) )
-            // InternalSignalDSL.g:10129:1: ( ( rule__XClosure__Group_1_0_0_1__0 )* )
+            // InternalSignalDSL.g:10391:1: ( ( ( rule__XClosure__Group_1_0_0_1__0 )* ) )
+            // InternalSignalDSL.g:10392:1: ( ( rule__XClosure__Group_1_0_0_1__0 )* )
             {
-            // InternalSignalDSL.g:10129:1: ( ( rule__XClosure__Group_1_0_0_1__0 )* )
-            // InternalSignalDSL.g:10130:2: ( rule__XClosure__Group_1_0_0_1__0 )*
+            // InternalSignalDSL.g:10392:1: ( ( rule__XClosure__Group_1_0_0_1__0 )* )
+            // InternalSignalDSL.g:10393:2: ( rule__XClosure__Group_1_0_0_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXClosureAccess().getGroup_1_0_0_1()); 
             }
-            // InternalSignalDSL.g:10131:2: ( rule__XClosure__Group_1_0_0_1__0 )*
-            loop89:
+            // InternalSignalDSL.g:10394:2: ( rule__XClosure__Group_1_0_0_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==78) ) {
-                    alt89=1;
+                if ( (LA92_0==76) ) {
+                    alt92=1;
                 }
 
 
-                switch (alt89) {
+                switch (alt92) {
             	case 1 :
-            	    // InternalSignalDSL.g:10131:3: rule__XClosure__Group_1_0_0_1__0
+            	    // InternalSignalDSL.g:10394:3: rule__XClosure__Group_1_0_0_1__0
             	    {
-            	    pushFollow(FOLLOW_29);
+            	    pushFollow(FOLLOW_34);
             	    rule__XClosure__Group_1_0_0_1__0();
 
             	    state._fsp--;
@@ -34346,7 +35131,7 @@
             	    break;
 
             	default :
-            	    break loop89;
+            	    break loop92;
                 }
             } while (true);
 
@@ -34375,16 +35160,16 @@
 
 
     // $ANTLR start "rule__XClosure__Group_1_0_0_1__0"
-    // InternalSignalDSL.g:10140: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:10403: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:10144:1: ( rule__XClosure__Group_1_0_0_1__0__Impl rule__XClosure__Group_1_0_0_1__1 )
-            // InternalSignalDSL.g:10145:2: rule__XClosure__Group_1_0_0_1__0__Impl rule__XClosure__Group_1_0_0_1__1
+            // InternalSignalDSL.g:10407:1: ( rule__XClosure__Group_1_0_0_1__0__Impl rule__XClosure__Group_1_0_0_1__1 )
+            // InternalSignalDSL.g:10408:2: rule__XClosure__Group_1_0_0_1__0__Impl rule__XClosure__Group_1_0_0_1__1
             {
-            pushFollow(FOLLOW_47);
+            pushFollow(FOLLOW_52);
             rule__XClosure__Group_1_0_0_1__0__Impl();
 
             state._fsp--;
@@ -34413,22 +35198,22 @@
 
 
     // $ANTLR start "rule__XClosure__Group_1_0_0_1__0__Impl"
-    // InternalSignalDSL.g:10152:1: rule__XClosure__Group_1_0_0_1__0__Impl : ( ',' ) ;
+    // InternalSignalDSL.g:10415: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:10156:1: ( ( ',' ) )
-            // InternalSignalDSL.g:10157:1: ( ',' )
+            // InternalSignalDSL.g:10419:1: ( ( ',' ) )
+            // InternalSignalDSL.g:10420:1: ( ',' )
             {
-            // InternalSignalDSL.g:10157:1: ( ',' )
-            // InternalSignalDSL.g:10158:2: ','
+            // InternalSignalDSL.g:10420:1: ( ',' )
+            // InternalSignalDSL.g:10421:2: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXClosureAccess().getCommaKeyword_1_0_0_1_0()); 
             }
-            match(input,78,FOLLOW_2); if (state.failed) return ;
+            match(input,76,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXClosureAccess().getCommaKeyword_1_0_0_1_0()); 
             }
@@ -34454,14 +35239,14 @@
 
 
     // $ANTLR start "rule__XClosure__Group_1_0_0_1__1"
-    // InternalSignalDSL.g:10167:1: rule__XClosure__Group_1_0_0_1__1 : rule__XClosure__Group_1_0_0_1__1__Impl ;
+    // InternalSignalDSL.g:10430: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:10171:1: ( rule__XClosure__Group_1_0_0_1__1__Impl )
-            // InternalSignalDSL.g:10172:2: rule__XClosure__Group_1_0_0_1__1__Impl
+            // InternalSignalDSL.g:10434:1: ( rule__XClosure__Group_1_0_0_1__1__Impl )
+            // InternalSignalDSL.g:10435:2: rule__XClosure__Group_1_0_0_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XClosure__Group_1_0_0_1__1__Impl();
@@ -34487,23 +35272,23 @@
 
 
     // $ANTLR start "rule__XClosure__Group_1_0_0_1__1__Impl"
-    // InternalSignalDSL.g:10178:1: rule__XClosure__Group_1_0_0_1__1__Impl : ( ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1 ) ) ;
+    // InternalSignalDSL.g:10441: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:10182:1: ( ( ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1 ) ) )
-            // InternalSignalDSL.g:10183:1: ( ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1 ) )
+            // InternalSignalDSL.g:10445:1: ( ( ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1 ) ) )
+            // InternalSignalDSL.g:10446:1: ( ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1 ) )
             {
-            // InternalSignalDSL.g:10183:1: ( ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1 ) )
-            // InternalSignalDSL.g:10184:2: ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1 )
+            // InternalSignalDSL.g:10446:1: ( ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1 ) )
+            // InternalSignalDSL.g:10447:2: ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXClosureAccess().getDeclaredFormalParametersAssignment_1_0_0_1_1()); 
             }
-            // InternalSignalDSL.g:10185:2: ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1 )
-            // InternalSignalDSL.g:10185:3: rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1
+            // InternalSignalDSL.g:10448:2: ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1 )
+            // InternalSignalDSL.g:10448:3: rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1();
@@ -34538,16 +35323,16 @@
 
 
     // $ANTLR start "rule__XExpressionInClosure__Group__0"
-    // InternalSignalDSL.g:10194:1: rule__XExpressionInClosure__Group__0 : rule__XExpressionInClosure__Group__0__Impl rule__XExpressionInClosure__Group__1 ;
+    // InternalSignalDSL.g:10457: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:10198:1: ( rule__XExpressionInClosure__Group__0__Impl rule__XExpressionInClosure__Group__1 )
-            // InternalSignalDSL.g:10199:2: rule__XExpressionInClosure__Group__0__Impl rule__XExpressionInClosure__Group__1
+            // InternalSignalDSL.g:10461:1: ( rule__XExpressionInClosure__Group__0__Impl rule__XExpressionInClosure__Group__1 )
+            // InternalSignalDSL.g:10462:2: rule__XExpressionInClosure__Group__0__Impl rule__XExpressionInClosure__Group__1
             {
-            pushFollow(FOLLOW_71);
+            pushFollow(FOLLOW_76);
             rule__XExpressionInClosure__Group__0__Impl();
 
             state._fsp--;
@@ -34576,23 +35361,23 @@
 
 
     // $ANTLR start "rule__XExpressionInClosure__Group__0__Impl"
-    // InternalSignalDSL.g:10206:1: rule__XExpressionInClosure__Group__0__Impl : ( () ) ;
+    // InternalSignalDSL.g:10469:1: rule__XExpressionInClosure__Group__0__Impl : ( () ) ;
     public final void rule__XExpressionInClosure__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:10210:1: ( ( () ) )
-            // InternalSignalDSL.g:10211:1: ( () )
+            // InternalSignalDSL.g:10473:1: ( ( () ) )
+            // InternalSignalDSL.g:10474:1: ( () )
             {
-            // InternalSignalDSL.g:10211:1: ( () )
-            // InternalSignalDSL.g:10212:2: ()
+            // InternalSignalDSL.g:10474:1: ( () )
+            // InternalSignalDSL.g:10475:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXExpressionInClosureAccess().getXBlockExpressionAction_0()); 
             }
-            // InternalSignalDSL.g:10213:2: ()
-            // InternalSignalDSL.g:10213:3: 
+            // InternalSignalDSL.g:10476:2: ()
+            // InternalSignalDSL.g:10476:3: 
             {
             }
 
@@ -34617,14 +35402,14 @@
 
 
     // $ANTLR start "rule__XExpressionInClosure__Group__1"
-    // InternalSignalDSL.g:10221:1: rule__XExpressionInClosure__Group__1 : rule__XExpressionInClosure__Group__1__Impl ;
+    // InternalSignalDSL.g:10484: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:10225:1: ( rule__XExpressionInClosure__Group__1__Impl )
-            // InternalSignalDSL.g:10226:2: rule__XExpressionInClosure__Group__1__Impl
+            // InternalSignalDSL.g:10488:1: ( rule__XExpressionInClosure__Group__1__Impl )
+            // InternalSignalDSL.g:10489:2: rule__XExpressionInClosure__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XExpressionInClosure__Group__1__Impl();
@@ -34650,37 +35435,37 @@
 
 
     // $ANTLR start "rule__XExpressionInClosure__Group__1__Impl"
-    // InternalSignalDSL.g:10232:1: rule__XExpressionInClosure__Group__1__Impl : ( ( rule__XExpressionInClosure__Group_1__0 )* ) ;
+    // InternalSignalDSL.g:10495: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:10236:1: ( ( ( rule__XExpressionInClosure__Group_1__0 )* ) )
-            // InternalSignalDSL.g:10237:1: ( ( rule__XExpressionInClosure__Group_1__0 )* )
+            // InternalSignalDSL.g:10499:1: ( ( ( rule__XExpressionInClosure__Group_1__0 )* ) )
+            // InternalSignalDSL.g:10500:1: ( ( rule__XExpressionInClosure__Group_1__0 )* )
             {
-            // InternalSignalDSL.g:10237:1: ( ( rule__XExpressionInClosure__Group_1__0 )* )
-            // InternalSignalDSL.g:10238:2: ( rule__XExpressionInClosure__Group_1__0 )*
+            // InternalSignalDSL.g:10500:1: ( ( rule__XExpressionInClosure__Group_1__0 )* )
+            // InternalSignalDSL.g:10501:2: ( rule__XExpressionInClosure__Group_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXExpressionInClosureAccess().getGroup_1()); 
             }
-            // InternalSignalDSL.g:10239:2: ( rule__XExpressionInClosure__Group_1__0 )*
-            loop90:
+            // InternalSignalDSL.g:10502:2: ( rule__XExpressionInClosure__Group_1__0 )*
+            loop93:
             do {
-                int alt90=2;
-                int LA90_0 = input.LA(1);
+                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>=44 && LA90_0<=50)||LA90_0==68||LA90_0==72||LA90_0==76||(LA90_0>=80 && LA90_0<=81)||LA90_0==84||LA90_0==86||(LA90_0>=90 && LA90_0<=97)||LA90_0==99||(LA90_0>=107 && LA90_0<=108)) ) {
-                    alt90=1;
+                if ( ((LA93_0>=RULE_ID && LA93_0<=RULE_STRING)||LA93_0==27||(LA93_0>=34 && LA93_0<=35)||LA93_0==40||(LA93_0>=44 && LA93_0<=50)||LA93_0==64||LA93_0==68||LA93_0==74||(LA93_0>=78 && LA93_0<=79)||LA93_0==82||LA93_0==84||(LA93_0>=88 && LA93_0<=95)||LA93_0==97||(LA93_0>=105 && LA93_0<=106)) ) {
+                    alt93=1;
                 }
 
 
-                switch (alt90) {
+                switch (alt93) {
             	case 1 :
-            	    // InternalSignalDSL.g:10239:3: rule__XExpressionInClosure__Group_1__0
+            	    // InternalSignalDSL.g:10502:3: rule__XExpressionInClosure__Group_1__0
             	    {
-            	    pushFollow(FOLLOW_74);
+            	    pushFollow(FOLLOW_79);
             	    rule__XExpressionInClosure__Group_1__0();
 
             	    state._fsp--;
@@ -34690,7 +35475,7 @@
             	    break;
 
             	default :
-            	    break loop90;
+            	    break loop93;
                 }
             } while (true);
 
@@ -34719,16 +35504,16 @@
 
 
     // $ANTLR start "rule__XExpressionInClosure__Group_1__0"
-    // InternalSignalDSL.g:10248:1: rule__XExpressionInClosure__Group_1__0 : rule__XExpressionInClosure__Group_1__0__Impl rule__XExpressionInClosure__Group_1__1 ;
+    // InternalSignalDSL.g:10511: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:10252:1: ( rule__XExpressionInClosure__Group_1__0__Impl rule__XExpressionInClosure__Group_1__1 )
-            // InternalSignalDSL.g:10253:2: rule__XExpressionInClosure__Group_1__0__Impl rule__XExpressionInClosure__Group_1__1
+            // InternalSignalDSL.g:10515:1: ( rule__XExpressionInClosure__Group_1__0__Impl rule__XExpressionInClosure__Group_1__1 )
+            // InternalSignalDSL.g:10516:2: rule__XExpressionInClosure__Group_1__0__Impl rule__XExpressionInClosure__Group_1__1
             {
-            pushFollow(FOLLOW_22);
+            pushFollow(FOLLOW_27);
             rule__XExpressionInClosure__Group_1__0__Impl();
 
             state._fsp--;
@@ -34757,23 +35542,23 @@
 
 
     // $ANTLR start "rule__XExpressionInClosure__Group_1__0__Impl"
-    // InternalSignalDSL.g:10260:1: rule__XExpressionInClosure__Group_1__0__Impl : ( ( rule__XExpressionInClosure__ExpressionsAssignment_1_0 ) ) ;
+    // InternalSignalDSL.g:10523: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:10264:1: ( ( ( rule__XExpressionInClosure__ExpressionsAssignment_1_0 ) ) )
-            // InternalSignalDSL.g:10265:1: ( ( rule__XExpressionInClosure__ExpressionsAssignment_1_0 ) )
+            // InternalSignalDSL.g:10527:1: ( ( ( rule__XExpressionInClosure__ExpressionsAssignment_1_0 ) ) )
+            // InternalSignalDSL.g:10528:1: ( ( rule__XExpressionInClosure__ExpressionsAssignment_1_0 ) )
             {
-            // InternalSignalDSL.g:10265:1: ( ( rule__XExpressionInClosure__ExpressionsAssignment_1_0 ) )
-            // InternalSignalDSL.g:10266:2: ( rule__XExpressionInClosure__ExpressionsAssignment_1_0 )
+            // InternalSignalDSL.g:10528:1: ( ( rule__XExpressionInClosure__ExpressionsAssignment_1_0 ) )
+            // InternalSignalDSL.g:10529:2: ( rule__XExpressionInClosure__ExpressionsAssignment_1_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXExpressionInClosureAccess().getExpressionsAssignment_1_0()); 
             }
-            // InternalSignalDSL.g:10267:2: ( rule__XExpressionInClosure__ExpressionsAssignment_1_0 )
-            // InternalSignalDSL.g:10267:3: rule__XExpressionInClosure__ExpressionsAssignment_1_0
+            // InternalSignalDSL.g:10530:2: ( rule__XExpressionInClosure__ExpressionsAssignment_1_0 )
+            // InternalSignalDSL.g:10530:3: rule__XExpressionInClosure__ExpressionsAssignment_1_0
             {
             pushFollow(FOLLOW_2);
             rule__XExpressionInClosure__ExpressionsAssignment_1_0();
@@ -34808,14 +35593,14 @@
 
 
     // $ANTLR start "rule__XExpressionInClosure__Group_1__1"
-    // InternalSignalDSL.g:10275:1: rule__XExpressionInClosure__Group_1__1 : rule__XExpressionInClosure__Group_1__1__Impl ;
+    // InternalSignalDSL.g:10538: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:10279:1: ( rule__XExpressionInClosure__Group_1__1__Impl )
-            // InternalSignalDSL.g:10280:2: rule__XExpressionInClosure__Group_1__1__Impl
+            // InternalSignalDSL.g:10542:1: ( rule__XExpressionInClosure__Group_1__1__Impl )
+            // InternalSignalDSL.g:10543:2: rule__XExpressionInClosure__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XExpressionInClosure__Group_1__1__Impl();
@@ -34841,33 +35626,33 @@
 
 
     // $ANTLR start "rule__XExpressionInClosure__Group_1__1__Impl"
-    // InternalSignalDSL.g:10286:1: rule__XExpressionInClosure__Group_1__1__Impl : ( ( ';' )? ) ;
+    // InternalSignalDSL.g:10549:1: rule__XExpressionInClosure__Group_1__1__Impl : ( ( ';' )? ) ;
     public final void rule__XExpressionInClosure__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:10290:1: ( ( ( ';' )? ) )
-            // InternalSignalDSL.g:10291:1: ( ( ';' )? )
+            // InternalSignalDSL.g:10553:1: ( ( ( ';' )? ) )
+            // InternalSignalDSL.g:10554:1: ( ( ';' )? )
             {
-            // InternalSignalDSL.g:10291:1: ( ( ';' )? )
-            // InternalSignalDSL.g:10292:2: ( ';' )?
+            // InternalSignalDSL.g:10554:1: ( ( ';' )? )
+            // InternalSignalDSL.g:10555:2: ( ';' )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXExpressionInClosureAccess().getSemicolonKeyword_1_1()); 
             }
-            // InternalSignalDSL.g:10293:2: ( ';' )?
-            int alt91=2;
-            int LA91_0 = input.LA(1);
+            // InternalSignalDSL.g:10556:2: ( ';' )?
+            int alt94=2;
+            int LA94_0 = input.LA(1);
 
-            if ( (LA91_0==74) ) {
-                alt91=1;
+            if ( (LA94_0==72) ) {
+                alt94=1;
             }
-            switch (alt91) {
+            switch (alt94) {
                 case 1 :
-                    // InternalSignalDSL.g:10293:3: ';'
+                    // InternalSignalDSL.g:10556:3: ';'
                     {
-                    match(input,74,FOLLOW_2); if (state.failed) return ;
+                    match(input,72,FOLLOW_2); if (state.failed) return ;
 
                     }
                     break;
@@ -34899,16 +35684,16 @@
 
 
     // $ANTLR start "rule__XShortClosure__Group__0"
-    // InternalSignalDSL.g:10302:1: rule__XShortClosure__Group__0 : rule__XShortClosure__Group__0__Impl rule__XShortClosure__Group__1 ;
+    // InternalSignalDSL.g:10565: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:10306:1: ( rule__XShortClosure__Group__0__Impl rule__XShortClosure__Group__1 )
-            // InternalSignalDSL.g:10307:2: rule__XShortClosure__Group__0__Impl rule__XShortClosure__Group__1
+            // InternalSignalDSL.g:10569:1: ( rule__XShortClosure__Group__0__Impl rule__XShortClosure__Group__1 )
+            // InternalSignalDSL.g:10570:2: rule__XShortClosure__Group__0__Impl rule__XShortClosure__Group__1
             {
-            pushFollow(FOLLOW_30);
+            pushFollow(FOLLOW_35);
             rule__XShortClosure__Group__0__Impl();
 
             state._fsp--;
@@ -34937,23 +35722,23 @@
 
 
     // $ANTLR start "rule__XShortClosure__Group__0__Impl"
-    // InternalSignalDSL.g:10314:1: rule__XShortClosure__Group__0__Impl : ( ( rule__XShortClosure__Group_0__0 ) ) ;
+    // InternalSignalDSL.g:10577: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:10318:1: ( ( ( rule__XShortClosure__Group_0__0 ) ) )
-            // InternalSignalDSL.g:10319:1: ( ( rule__XShortClosure__Group_0__0 ) )
+            // InternalSignalDSL.g:10581:1: ( ( ( rule__XShortClosure__Group_0__0 ) ) )
+            // InternalSignalDSL.g:10582:1: ( ( rule__XShortClosure__Group_0__0 ) )
             {
-            // InternalSignalDSL.g:10319:1: ( ( rule__XShortClosure__Group_0__0 ) )
-            // InternalSignalDSL.g:10320:2: ( rule__XShortClosure__Group_0__0 )
+            // InternalSignalDSL.g:10582:1: ( ( rule__XShortClosure__Group_0__0 ) )
+            // InternalSignalDSL.g:10583:2: ( rule__XShortClosure__Group_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXShortClosureAccess().getGroup_0()); 
             }
-            // InternalSignalDSL.g:10321:2: ( rule__XShortClosure__Group_0__0 )
-            // InternalSignalDSL.g:10321:3: rule__XShortClosure__Group_0__0
+            // InternalSignalDSL.g:10584:2: ( rule__XShortClosure__Group_0__0 )
+            // InternalSignalDSL.g:10584:3: rule__XShortClosure__Group_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XShortClosure__Group_0__0();
@@ -34988,14 +35773,14 @@
 
 
     // $ANTLR start "rule__XShortClosure__Group__1"
-    // InternalSignalDSL.g:10329:1: rule__XShortClosure__Group__1 : rule__XShortClosure__Group__1__Impl ;
+    // InternalSignalDSL.g:10592: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:10333:1: ( rule__XShortClosure__Group__1__Impl )
-            // InternalSignalDSL.g:10334:2: rule__XShortClosure__Group__1__Impl
+            // InternalSignalDSL.g:10596:1: ( rule__XShortClosure__Group__1__Impl )
+            // InternalSignalDSL.g:10597:2: rule__XShortClosure__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XShortClosure__Group__1__Impl();
@@ -35021,23 +35806,23 @@
 
 
     // $ANTLR start "rule__XShortClosure__Group__1__Impl"
-    // InternalSignalDSL.g:10340:1: rule__XShortClosure__Group__1__Impl : ( ( rule__XShortClosure__ExpressionAssignment_1 ) ) ;
+    // InternalSignalDSL.g:10603: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:10344:1: ( ( ( rule__XShortClosure__ExpressionAssignment_1 ) ) )
-            // InternalSignalDSL.g:10345:1: ( ( rule__XShortClosure__ExpressionAssignment_1 ) )
+            // InternalSignalDSL.g:10607:1: ( ( ( rule__XShortClosure__ExpressionAssignment_1 ) ) )
+            // InternalSignalDSL.g:10608:1: ( ( rule__XShortClosure__ExpressionAssignment_1 ) )
             {
-            // InternalSignalDSL.g:10345:1: ( ( rule__XShortClosure__ExpressionAssignment_1 ) )
-            // InternalSignalDSL.g:10346:2: ( rule__XShortClosure__ExpressionAssignment_1 )
+            // InternalSignalDSL.g:10608:1: ( ( rule__XShortClosure__ExpressionAssignment_1 ) )
+            // InternalSignalDSL.g:10609:2: ( rule__XShortClosure__ExpressionAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXShortClosureAccess().getExpressionAssignment_1()); 
             }
-            // InternalSignalDSL.g:10347:2: ( rule__XShortClosure__ExpressionAssignment_1 )
-            // InternalSignalDSL.g:10347:3: rule__XShortClosure__ExpressionAssignment_1
+            // InternalSignalDSL.g:10610:2: ( rule__XShortClosure__ExpressionAssignment_1 )
+            // InternalSignalDSL.g:10610:3: rule__XShortClosure__ExpressionAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__XShortClosure__ExpressionAssignment_1();
@@ -35072,14 +35857,14 @@
 
 
     // $ANTLR start "rule__XShortClosure__Group_0__0"
-    // InternalSignalDSL.g:10356:1: rule__XShortClosure__Group_0__0 : rule__XShortClosure__Group_0__0__Impl ;
+    // InternalSignalDSL.g:10619: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:10360:1: ( rule__XShortClosure__Group_0__0__Impl )
-            // InternalSignalDSL.g:10361:2: rule__XShortClosure__Group_0__0__Impl
+            // InternalSignalDSL.g:10623:1: ( rule__XShortClosure__Group_0__0__Impl )
+            // InternalSignalDSL.g:10624:2: rule__XShortClosure__Group_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XShortClosure__Group_0__0__Impl();
@@ -35105,23 +35890,23 @@
 
 
     // $ANTLR start "rule__XShortClosure__Group_0__0__Impl"
-    // InternalSignalDSL.g:10367:1: rule__XShortClosure__Group_0__0__Impl : ( ( rule__XShortClosure__Group_0_0__0 ) ) ;
+    // InternalSignalDSL.g:10630: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:10371:1: ( ( ( rule__XShortClosure__Group_0_0__0 ) ) )
-            // InternalSignalDSL.g:10372:1: ( ( rule__XShortClosure__Group_0_0__0 ) )
+            // InternalSignalDSL.g:10634:1: ( ( ( rule__XShortClosure__Group_0_0__0 ) ) )
+            // InternalSignalDSL.g:10635:1: ( ( rule__XShortClosure__Group_0_0__0 ) )
             {
-            // InternalSignalDSL.g:10372:1: ( ( rule__XShortClosure__Group_0_0__0 ) )
-            // InternalSignalDSL.g:10373:2: ( rule__XShortClosure__Group_0_0__0 )
+            // InternalSignalDSL.g:10635:1: ( ( rule__XShortClosure__Group_0_0__0 ) )
+            // InternalSignalDSL.g:10636:2: ( rule__XShortClosure__Group_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXShortClosureAccess().getGroup_0_0()); 
             }
-            // InternalSignalDSL.g:10374:2: ( rule__XShortClosure__Group_0_0__0 )
-            // InternalSignalDSL.g:10374:3: rule__XShortClosure__Group_0_0__0
+            // InternalSignalDSL.g:10637:2: ( rule__XShortClosure__Group_0_0__0 )
+            // InternalSignalDSL.g:10637:3: rule__XShortClosure__Group_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XShortClosure__Group_0_0__0();
@@ -35156,16 +35941,16 @@
 
 
     // $ANTLR start "rule__XShortClosure__Group_0_0__0"
-    // InternalSignalDSL.g:10383:1: rule__XShortClosure__Group_0_0__0 : rule__XShortClosure__Group_0_0__0__Impl rule__XShortClosure__Group_0_0__1 ;
+    // InternalSignalDSL.g:10646: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:10387:1: ( rule__XShortClosure__Group_0_0__0__Impl rule__XShortClosure__Group_0_0__1 )
-            // InternalSignalDSL.g:10388:2: rule__XShortClosure__Group_0_0__0__Impl rule__XShortClosure__Group_0_0__1
+            // InternalSignalDSL.g:10650:1: ( rule__XShortClosure__Group_0_0__0__Impl rule__XShortClosure__Group_0_0__1 )
+            // InternalSignalDSL.g:10651:2: rule__XShortClosure__Group_0_0__0__Impl rule__XShortClosure__Group_0_0__1
             {
-            pushFollow(FOLLOW_73);
+            pushFollow(FOLLOW_78);
             rule__XShortClosure__Group_0_0__0__Impl();
 
             state._fsp--;
@@ -35194,23 +35979,23 @@
 
 
     // $ANTLR start "rule__XShortClosure__Group_0_0__0__Impl"
-    // InternalSignalDSL.g:10395:1: rule__XShortClosure__Group_0_0__0__Impl : ( () ) ;
+    // InternalSignalDSL.g:10658: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:10399:1: ( ( () ) )
-            // InternalSignalDSL.g:10400:1: ( () )
+            // InternalSignalDSL.g:10662:1: ( ( () ) )
+            // InternalSignalDSL.g:10663:1: ( () )
             {
-            // InternalSignalDSL.g:10400:1: ( () )
-            // InternalSignalDSL.g:10401:2: ()
+            // InternalSignalDSL.g:10663:1: ( () )
+            // InternalSignalDSL.g:10664:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXShortClosureAccess().getXClosureAction_0_0_0()); 
             }
-            // InternalSignalDSL.g:10402:2: ()
-            // InternalSignalDSL.g:10402:3: 
+            // InternalSignalDSL.g:10665:2: ()
+            // InternalSignalDSL.g:10665:3: 
             {
             }
 
@@ -35235,16 +36020,16 @@
 
 
     // $ANTLR start "rule__XShortClosure__Group_0_0__1"
-    // InternalSignalDSL.g:10410:1: rule__XShortClosure__Group_0_0__1 : rule__XShortClosure__Group_0_0__1__Impl rule__XShortClosure__Group_0_0__2 ;
+    // InternalSignalDSL.g:10673: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:10414:1: ( rule__XShortClosure__Group_0_0__1__Impl rule__XShortClosure__Group_0_0__2 )
-            // InternalSignalDSL.g:10415:2: rule__XShortClosure__Group_0_0__1__Impl rule__XShortClosure__Group_0_0__2
+            // InternalSignalDSL.g:10677:1: ( rule__XShortClosure__Group_0_0__1__Impl rule__XShortClosure__Group_0_0__2 )
+            // InternalSignalDSL.g:10678:2: rule__XShortClosure__Group_0_0__1__Impl rule__XShortClosure__Group_0_0__2
             {
-            pushFollow(FOLLOW_73);
+            pushFollow(FOLLOW_78);
             rule__XShortClosure__Group_0_0__1__Impl();
 
             state._fsp--;
@@ -35273,31 +36058,31 @@
 
 
     // $ANTLR start "rule__XShortClosure__Group_0_0__1__Impl"
-    // InternalSignalDSL.g:10422:1: rule__XShortClosure__Group_0_0__1__Impl : ( ( rule__XShortClosure__Group_0_0_1__0 )? ) ;
+    // InternalSignalDSL.g:10685: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:10426:1: ( ( ( rule__XShortClosure__Group_0_0_1__0 )? ) )
-            // InternalSignalDSL.g:10427:1: ( ( rule__XShortClosure__Group_0_0_1__0 )? )
+            // InternalSignalDSL.g:10689:1: ( ( ( rule__XShortClosure__Group_0_0_1__0 )? ) )
+            // InternalSignalDSL.g:10690:1: ( ( rule__XShortClosure__Group_0_0_1__0 )? )
             {
-            // InternalSignalDSL.g:10427:1: ( ( rule__XShortClosure__Group_0_0_1__0 )? )
-            // InternalSignalDSL.g:10428:2: ( rule__XShortClosure__Group_0_0_1__0 )?
+            // InternalSignalDSL.g:10690:1: ( ( rule__XShortClosure__Group_0_0_1__0 )? )
+            // InternalSignalDSL.g:10691:2: ( rule__XShortClosure__Group_0_0_1__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXShortClosureAccess().getGroup_0_0_1()); 
             }
-            // InternalSignalDSL.g:10429:2: ( rule__XShortClosure__Group_0_0_1__0 )?
-            int alt92=2;
-            int LA92_0 = input.LA(1);
+            // InternalSignalDSL.g:10692:2: ( rule__XShortClosure__Group_0_0_1__0 )?
+            int alt95=2;
+            int LA95_0 = input.LA(1);
 
-            if ( (LA92_0==RULE_ID||LA92_0==31||LA92_0==76) ) {
-                alt92=1;
+            if ( (LA95_0==RULE_ID||LA95_0==31||LA95_0==74) ) {
+                alt95=1;
             }
-            switch (alt92) {
+            switch (alt95) {
                 case 1 :
-                    // InternalSignalDSL.g:10429:3: rule__XShortClosure__Group_0_0_1__0
+                    // InternalSignalDSL.g:10692:3: rule__XShortClosure__Group_0_0_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XShortClosure__Group_0_0_1__0();
@@ -35335,14 +36120,14 @@
 
 
     // $ANTLR start "rule__XShortClosure__Group_0_0__2"
-    // InternalSignalDSL.g:10437:1: rule__XShortClosure__Group_0_0__2 : rule__XShortClosure__Group_0_0__2__Impl ;
+    // InternalSignalDSL.g:10700: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:10441:1: ( rule__XShortClosure__Group_0_0__2__Impl )
-            // InternalSignalDSL.g:10442:2: rule__XShortClosure__Group_0_0__2__Impl
+            // InternalSignalDSL.g:10704:1: ( rule__XShortClosure__Group_0_0__2__Impl )
+            // InternalSignalDSL.g:10705:2: rule__XShortClosure__Group_0_0__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XShortClosure__Group_0_0__2__Impl();
@@ -35368,23 +36153,23 @@
 
 
     // $ANTLR start "rule__XShortClosure__Group_0_0__2__Impl"
-    // InternalSignalDSL.g:10448:1: rule__XShortClosure__Group_0_0__2__Impl : ( ( rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2 ) ) ;
+    // InternalSignalDSL.g:10711: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:10452:1: ( ( ( rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2 ) ) )
-            // InternalSignalDSL.g:10453:1: ( ( rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2 ) )
+            // InternalSignalDSL.g:10715:1: ( ( ( rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2 ) ) )
+            // InternalSignalDSL.g:10716:1: ( ( rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2 ) )
             {
-            // InternalSignalDSL.g:10453:1: ( ( rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2 ) )
-            // InternalSignalDSL.g:10454:2: ( rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2 )
+            // InternalSignalDSL.g:10716:1: ( ( rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2 ) )
+            // InternalSignalDSL.g:10717:2: ( rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXShortClosureAccess().getExplicitSyntaxAssignment_0_0_2()); 
             }
-            // InternalSignalDSL.g:10455:2: ( rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2 )
-            // InternalSignalDSL.g:10455:3: rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2
+            // InternalSignalDSL.g:10718:2: ( rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2 )
+            // InternalSignalDSL.g:10718:3: rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2
             {
             pushFollow(FOLLOW_2);
             rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2();
@@ -35419,16 +36204,16 @@
 
 
     // $ANTLR start "rule__XShortClosure__Group_0_0_1__0"
-    // InternalSignalDSL.g:10464: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:10727: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:10468:1: ( rule__XShortClosure__Group_0_0_1__0__Impl rule__XShortClosure__Group_0_0_1__1 )
-            // InternalSignalDSL.g:10469:2: rule__XShortClosure__Group_0_0_1__0__Impl rule__XShortClosure__Group_0_0_1__1
+            // InternalSignalDSL.g:10731:1: ( rule__XShortClosure__Group_0_0_1__0__Impl rule__XShortClosure__Group_0_0_1__1 )
+            // InternalSignalDSL.g:10732:2: rule__XShortClosure__Group_0_0_1__0__Impl rule__XShortClosure__Group_0_0_1__1
             {
-            pushFollow(FOLLOW_28);
+            pushFollow(FOLLOW_33);
             rule__XShortClosure__Group_0_0_1__0__Impl();
 
             state._fsp--;
@@ -35457,23 +36242,23 @@
 
 
     // $ANTLR start "rule__XShortClosure__Group_0_0_1__0__Impl"
-    // InternalSignalDSL.g:10476:1: rule__XShortClosure__Group_0_0_1__0__Impl : ( ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0 ) ) ;
+    // InternalSignalDSL.g:10739: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:10480:1: ( ( ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0 ) ) )
-            // InternalSignalDSL.g:10481:1: ( ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0 ) )
+            // InternalSignalDSL.g:10743:1: ( ( ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0 ) ) )
+            // InternalSignalDSL.g:10744:1: ( ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0 ) )
             {
-            // InternalSignalDSL.g:10481:1: ( ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0 ) )
-            // InternalSignalDSL.g:10482:2: ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0 )
+            // InternalSignalDSL.g:10744:1: ( ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0 ) )
+            // InternalSignalDSL.g:10745:2: ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXShortClosureAccess().getDeclaredFormalParametersAssignment_0_0_1_0()); 
             }
-            // InternalSignalDSL.g:10483:2: ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0 )
-            // InternalSignalDSL.g:10483:3: rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0
+            // InternalSignalDSL.g:10746:2: ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0 )
+            // InternalSignalDSL.g:10746:3: rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0
             {
             pushFollow(FOLLOW_2);
             rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0();
@@ -35508,14 +36293,14 @@
 
 
     // $ANTLR start "rule__XShortClosure__Group_0_0_1__1"
-    // InternalSignalDSL.g:10491:1: rule__XShortClosure__Group_0_0_1__1 : rule__XShortClosure__Group_0_0_1__1__Impl ;
+    // InternalSignalDSL.g:10754: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:10495:1: ( rule__XShortClosure__Group_0_0_1__1__Impl )
-            // InternalSignalDSL.g:10496:2: rule__XShortClosure__Group_0_0_1__1__Impl
+            // InternalSignalDSL.g:10758:1: ( rule__XShortClosure__Group_0_0_1__1__Impl )
+            // InternalSignalDSL.g:10759:2: rule__XShortClosure__Group_0_0_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XShortClosure__Group_0_0_1__1__Impl();
@@ -35541,37 +36326,37 @@
 
 
     // $ANTLR start "rule__XShortClosure__Group_0_0_1__1__Impl"
-    // InternalSignalDSL.g:10502:1: rule__XShortClosure__Group_0_0_1__1__Impl : ( ( rule__XShortClosure__Group_0_0_1_1__0 )* ) ;
+    // InternalSignalDSL.g:10765: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:10506:1: ( ( ( rule__XShortClosure__Group_0_0_1_1__0 )* ) )
-            // InternalSignalDSL.g:10507:1: ( ( rule__XShortClosure__Group_0_0_1_1__0 )* )
+            // InternalSignalDSL.g:10769:1: ( ( ( rule__XShortClosure__Group_0_0_1_1__0 )* ) )
+            // InternalSignalDSL.g:10770:1: ( ( rule__XShortClosure__Group_0_0_1_1__0 )* )
             {
-            // InternalSignalDSL.g:10507:1: ( ( rule__XShortClosure__Group_0_0_1_1__0 )* )
-            // InternalSignalDSL.g:10508:2: ( rule__XShortClosure__Group_0_0_1_1__0 )*
+            // InternalSignalDSL.g:10770:1: ( ( rule__XShortClosure__Group_0_0_1_1__0 )* )
+            // InternalSignalDSL.g:10771:2: ( rule__XShortClosure__Group_0_0_1_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXShortClosureAccess().getGroup_0_0_1_1()); 
             }
-            // InternalSignalDSL.g:10509:2: ( rule__XShortClosure__Group_0_0_1_1__0 )*
-            loop93:
+            // InternalSignalDSL.g:10772:2: ( rule__XShortClosure__Group_0_0_1_1__0 )*
+            loop96:
             do {
-                int alt93=2;
-                int LA93_0 = input.LA(1);
+                int alt96=2;
+                int LA96_0 = input.LA(1);
 
-                if ( (LA93_0==78) ) {
-                    alt93=1;
+                if ( (LA96_0==76) ) {
+                    alt96=1;
                 }
 
 
-                switch (alt93) {
+                switch (alt96) {
             	case 1 :
-            	    // InternalSignalDSL.g:10509:3: rule__XShortClosure__Group_0_0_1_1__0
+            	    // InternalSignalDSL.g:10772:3: rule__XShortClosure__Group_0_0_1_1__0
             	    {
-            	    pushFollow(FOLLOW_29);
+            	    pushFollow(FOLLOW_34);
             	    rule__XShortClosure__Group_0_0_1_1__0();
 
             	    state._fsp--;
@@ -35581,7 +36366,7 @@
             	    break;
 
             	default :
-            	    break loop93;
+            	    break loop96;
                 }
             } while (true);
 
@@ -35610,16 +36395,16 @@
 
 
     // $ANTLR start "rule__XShortClosure__Group_0_0_1_1__0"
-    // InternalSignalDSL.g:10518: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:10781: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:10522:1: ( rule__XShortClosure__Group_0_0_1_1__0__Impl rule__XShortClosure__Group_0_0_1_1__1 )
-            // InternalSignalDSL.g:10523:2: rule__XShortClosure__Group_0_0_1_1__0__Impl rule__XShortClosure__Group_0_0_1_1__1
+            // InternalSignalDSL.g:10785:1: ( rule__XShortClosure__Group_0_0_1_1__0__Impl rule__XShortClosure__Group_0_0_1_1__1 )
+            // InternalSignalDSL.g:10786:2: rule__XShortClosure__Group_0_0_1_1__0__Impl rule__XShortClosure__Group_0_0_1_1__1
             {
-            pushFollow(FOLLOW_47);
+            pushFollow(FOLLOW_52);
             rule__XShortClosure__Group_0_0_1_1__0__Impl();
 
             state._fsp--;
@@ -35648,22 +36433,22 @@
 
 
     // $ANTLR start "rule__XShortClosure__Group_0_0_1_1__0__Impl"
-    // InternalSignalDSL.g:10530:1: rule__XShortClosure__Group_0_0_1_1__0__Impl : ( ',' ) ;
+    // InternalSignalDSL.g:10793: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:10534:1: ( ( ',' ) )
-            // InternalSignalDSL.g:10535:1: ( ',' )
+            // InternalSignalDSL.g:10797:1: ( ( ',' ) )
+            // InternalSignalDSL.g:10798:1: ( ',' )
             {
-            // InternalSignalDSL.g:10535:1: ( ',' )
-            // InternalSignalDSL.g:10536:2: ','
+            // InternalSignalDSL.g:10798:1: ( ',' )
+            // InternalSignalDSL.g:10799:2: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXShortClosureAccess().getCommaKeyword_0_0_1_1_0()); 
             }
-            match(input,78,FOLLOW_2); if (state.failed) return ;
+            match(input,76,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXShortClosureAccess().getCommaKeyword_0_0_1_1_0()); 
             }
@@ -35689,14 +36474,14 @@
 
 
     // $ANTLR start "rule__XShortClosure__Group_0_0_1_1__1"
-    // InternalSignalDSL.g:10545:1: rule__XShortClosure__Group_0_0_1_1__1 : rule__XShortClosure__Group_0_0_1_1__1__Impl ;
+    // InternalSignalDSL.g:10808: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:10549:1: ( rule__XShortClosure__Group_0_0_1_1__1__Impl )
-            // InternalSignalDSL.g:10550:2: rule__XShortClosure__Group_0_0_1_1__1__Impl
+            // InternalSignalDSL.g:10812:1: ( rule__XShortClosure__Group_0_0_1_1__1__Impl )
+            // InternalSignalDSL.g:10813:2: rule__XShortClosure__Group_0_0_1_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XShortClosure__Group_0_0_1_1__1__Impl();
@@ -35722,23 +36507,23 @@
 
 
     // $ANTLR start "rule__XShortClosure__Group_0_0_1_1__1__Impl"
-    // InternalSignalDSL.g:10556:1: rule__XShortClosure__Group_0_0_1_1__1__Impl : ( ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1 ) ) ;
+    // InternalSignalDSL.g:10819: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:10560:1: ( ( ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1 ) ) )
-            // InternalSignalDSL.g:10561:1: ( ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1 ) )
+            // InternalSignalDSL.g:10823:1: ( ( ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1 ) ) )
+            // InternalSignalDSL.g:10824:1: ( ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1 ) )
             {
-            // InternalSignalDSL.g:10561:1: ( ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1 ) )
-            // InternalSignalDSL.g:10562:2: ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1 )
+            // InternalSignalDSL.g:10824:1: ( ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1 ) )
+            // InternalSignalDSL.g:10825:2: ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXShortClosureAccess().getDeclaredFormalParametersAssignment_0_0_1_1_1()); 
             }
-            // InternalSignalDSL.g:10563:2: ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1 )
-            // InternalSignalDSL.g:10563:3: rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1
+            // InternalSignalDSL.g:10826:2: ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1 )
+            // InternalSignalDSL.g:10826:3: rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1();
@@ -35773,16 +36558,16 @@
 
 
     // $ANTLR start "rule__XParenthesizedExpression__Group__0"
-    // InternalSignalDSL.g:10572:1: rule__XParenthesizedExpression__Group__0 : rule__XParenthesizedExpression__Group__0__Impl rule__XParenthesizedExpression__Group__1 ;
+    // InternalSignalDSL.g:10835: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:10576:1: ( rule__XParenthesizedExpression__Group__0__Impl rule__XParenthesizedExpression__Group__1 )
-            // InternalSignalDSL.g:10577:2: rule__XParenthesizedExpression__Group__0__Impl rule__XParenthesizedExpression__Group__1
+            // InternalSignalDSL.g:10839:1: ( rule__XParenthesizedExpression__Group__0__Impl rule__XParenthesizedExpression__Group__1 )
+            // InternalSignalDSL.g:10840:2: rule__XParenthesizedExpression__Group__0__Impl rule__XParenthesizedExpression__Group__1
             {
-            pushFollow(FOLLOW_30);
+            pushFollow(FOLLOW_35);
             rule__XParenthesizedExpression__Group__0__Impl();
 
             state._fsp--;
@@ -35811,22 +36596,22 @@
 
 
     // $ANTLR start "rule__XParenthesizedExpression__Group__0__Impl"
-    // InternalSignalDSL.g:10584:1: rule__XParenthesizedExpression__Group__0__Impl : ( '(' ) ;
+    // InternalSignalDSL.g:10847:1: rule__XParenthesizedExpression__Group__0__Impl : ( '(' ) ;
     public final void rule__XParenthesizedExpression__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:10588:1: ( ( '(' ) )
-            // InternalSignalDSL.g:10589:1: ( '(' )
+            // InternalSignalDSL.g:10851:1: ( ( '(' ) )
+            // InternalSignalDSL.g:10852:1: ( '(' )
             {
-            // InternalSignalDSL.g:10589:1: ( '(' )
-            // InternalSignalDSL.g:10590:2: '('
+            // InternalSignalDSL.g:10852:1: ( '(' )
+            // InternalSignalDSL.g:10853:2: '('
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXParenthesizedExpressionAccess().getLeftParenthesisKeyword_0()); 
             }
-            match(input,76,FOLLOW_2); if (state.failed) return ;
+            match(input,74,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXParenthesizedExpressionAccess().getLeftParenthesisKeyword_0()); 
             }
@@ -35852,16 +36637,16 @@
 
 
     // $ANTLR start "rule__XParenthesizedExpression__Group__1"
-    // InternalSignalDSL.g:10599:1: rule__XParenthesizedExpression__Group__1 : rule__XParenthesizedExpression__Group__1__Impl rule__XParenthesizedExpression__Group__2 ;
+    // InternalSignalDSL.g:10862: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:10603:1: ( rule__XParenthesizedExpression__Group__1__Impl rule__XParenthesizedExpression__Group__2 )
-            // InternalSignalDSL.g:10604:2: rule__XParenthesizedExpression__Group__1__Impl rule__XParenthesizedExpression__Group__2
+            // InternalSignalDSL.g:10866:1: ( rule__XParenthesizedExpression__Group__1__Impl rule__XParenthesizedExpression__Group__2 )
+            // InternalSignalDSL.g:10867:2: rule__XParenthesizedExpression__Group__1__Impl rule__XParenthesizedExpression__Group__2
             {
-            pushFollow(FOLLOW_75);
+            pushFollow(FOLLOW_80);
             rule__XParenthesizedExpression__Group__1__Impl();
 
             state._fsp--;
@@ -35890,17 +36675,17 @@
 
 
     // $ANTLR start "rule__XParenthesizedExpression__Group__1__Impl"
-    // InternalSignalDSL.g:10611:1: rule__XParenthesizedExpression__Group__1__Impl : ( ruleXExpression ) ;
+    // InternalSignalDSL.g:10874:1: rule__XParenthesizedExpression__Group__1__Impl : ( ruleXExpression ) ;
     public final void rule__XParenthesizedExpression__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:10615:1: ( ( ruleXExpression ) )
-            // InternalSignalDSL.g:10616:1: ( ruleXExpression )
+            // InternalSignalDSL.g:10878:1: ( ( ruleXExpression ) )
+            // InternalSignalDSL.g:10879:1: ( ruleXExpression )
             {
-            // InternalSignalDSL.g:10616:1: ( ruleXExpression )
-            // InternalSignalDSL.g:10617:2: ruleXExpression
+            // InternalSignalDSL.g:10879:1: ( ruleXExpression )
+            // InternalSignalDSL.g:10880:2: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXParenthesizedExpressionAccess().getXExpressionParserRuleCall_1()); 
@@ -35935,14 +36720,14 @@
 
 
     // $ANTLR start "rule__XParenthesizedExpression__Group__2"
-    // InternalSignalDSL.g:10626:1: rule__XParenthesizedExpression__Group__2 : rule__XParenthesizedExpression__Group__2__Impl ;
+    // InternalSignalDSL.g:10889: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:10630:1: ( rule__XParenthesizedExpression__Group__2__Impl )
-            // InternalSignalDSL.g:10631:2: rule__XParenthesizedExpression__Group__2__Impl
+            // InternalSignalDSL.g:10893:1: ( rule__XParenthesizedExpression__Group__2__Impl )
+            // InternalSignalDSL.g:10894:2: rule__XParenthesizedExpression__Group__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XParenthesizedExpression__Group__2__Impl();
@@ -35968,22 +36753,22 @@
 
 
     // $ANTLR start "rule__XParenthesizedExpression__Group__2__Impl"
-    // InternalSignalDSL.g:10637:1: rule__XParenthesizedExpression__Group__2__Impl : ( ')' ) ;
+    // InternalSignalDSL.g:10900:1: rule__XParenthesizedExpression__Group__2__Impl : ( ')' ) ;
     public final void rule__XParenthesizedExpression__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:10641:1: ( ( ')' ) )
-            // InternalSignalDSL.g:10642:1: ( ')' )
+            // InternalSignalDSL.g:10904:1: ( ( ')' ) )
+            // InternalSignalDSL.g:10905:1: ( ')' )
             {
-            // InternalSignalDSL.g:10642:1: ( ')' )
-            // InternalSignalDSL.g:10643:2: ')'
+            // InternalSignalDSL.g:10905:1: ( ')' )
+            // InternalSignalDSL.g:10906:2: ')'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXParenthesizedExpressionAccess().getRightParenthesisKeyword_2()); 
             }
-            match(input,77,FOLLOW_2); if (state.failed) return ;
+            match(input,75,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXParenthesizedExpressionAccess().getRightParenthesisKeyword_2()); 
             }
@@ -36009,16 +36794,16 @@
 
 
     // $ANTLR start "rule__XIfExpression__Group__0"
-    // InternalSignalDSL.g:10653:1: rule__XIfExpression__Group__0 : rule__XIfExpression__Group__0__Impl rule__XIfExpression__Group__1 ;
+    // InternalSignalDSL.g:10916: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:10657:1: ( rule__XIfExpression__Group__0__Impl rule__XIfExpression__Group__1 )
-            // InternalSignalDSL.g:10658:2: rule__XIfExpression__Group__0__Impl rule__XIfExpression__Group__1
+            // InternalSignalDSL.g:10920:1: ( rule__XIfExpression__Group__0__Impl rule__XIfExpression__Group__1 )
+            // InternalSignalDSL.g:10921:2: rule__XIfExpression__Group__0__Impl rule__XIfExpression__Group__1
             {
-            pushFollow(FOLLOW_76);
+            pushFollow(FOLLOW_81);
             rule__XIfExpression__Group__0__Impl();
 
             state._fsp--;
@@ -36047,23 +36832,23 @@
 
 
     // $ANTLR start "rule__XIfExpression__Group__0__Impl"
-    // InternalSignalDSL.g:10665:1: rule__XIfExpression__Group__0__Impl : ( () ) ;
+    // InternalSignalDSL.g:10928:1: rule__XIfExpression__Group__0__Impl : ( () ) ;
     public final void rule__XIfExpression__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:10669:1: ( ( () ) )
-            // InternalSignalDSL.g:10670:1: ( () )
+            // InternalSignalDSL.g:10932:1: ( ( () ) )
+            // InternalSignalDSL.g:10933:1: ( () )
             {
-            // InternalSignalDSL.g:10670:1: ( () )
-            // InternalSignalDSL.g:10671:2: ()
+            // InternalSignalDSL.g:10933:1: ( () )
+            // InternalSignalDSL.g:10934:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXIfExpressionAccess().getXIfExpressionAction_0()); 
             }
-            // InternalSignalDSL.g:10672:2: ()
-            // InternalSignalDSL.g:10672:3: 
+            // InternalSignalDSL.g:10935:2: ()
+            // InternalSignalDSL.g:10935:3: 
             {
             }
 
@@ -36088,16 +36873,16 @@
 
 
     // $ANTLR start "rule__XIfExpression__Group__1"
-    // InternalSignalDSL.g:10680:1: rule__XIfExpression__Group__1 : rule__XIfExpression__Group__1__Impl rule__XIfExpression__Group__2 ;
+    // InternalSignalDSL.g:10943: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:10684:1: ( rule__XIfExpression__Group__1__Impl rule__XIfExpression__Group__2 )
-            // InternalSignalDSL.g:10685:2: rule__XIfExpression__Group__1__Impl rule__XIfExpression__Group__2
+            // InternalSignalDSL.g:10947:1: ( rule__XIfExpression__Group__1__Impl rule__XIfExpression__Group__2 )
+            // InternalSignalDSL.g:10948:2: rule__XIfExpression__Group__1__Impl rule__XIfExpression__Group__2
             {
-            pushFollow(FOLLOW_26);
+            pushFollow(FOLLOW_31);
             rule__XIfExpression__Group__1__Impl();
 
             state._fsp--;
@@ -36126,22 +36911,22 @@
 
 
     // $ANTLR start "rule__XIfExpression__Group__1__Impl"
-    // InternalSignalDSL.g:10692:1: rule__XIfExpression__Group__1__Impl : ( 'if' ) ;
+    // InternalSignalDSL.g:10955:1: rule__XIfExpression__Group__1__Impl : ( 'if' ) ;
     public final void rule__XIfExpression__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:10696:1: ( ( 'if' ) )
-            // InternalSignalDSL.g:10697:1: ( 'if' )
+            // InternalSignalDSL.g:10959:1: ( ( 'if' ) )
+            // InternalSignalDSL.g:10960:1: ( 'if' )
             {
-            // InternalSignalDSL.g:10697:1: ( 'if' )
-            // InternalSignalDSL.g:10698:2: 'if'
+            // InternalSignalDSL.g:10960:1: ( 'if' )
+            // InternalSignalDSL.g:10961:2: 'if'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXIfExpressionAccess().getIfKeyword_1()); 
             }
-            match(input,84,FOLLOW_2); if (state.failed) return ;
+            match(input,82,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXIfExpressionAccess().getIfKeyword_1()); 
             }
@@ -36167,16 +36952,16 @@
 
 
     // $ANTLR start "rule__XIfExpression__Group__2"
-    // InternalSignalDSL.g:10707:1: rule__XIfExpression__Group__2 : rule__XIfExpression__Group__2__Impl rule__XIfExpression__Group__3 ;
+    // InternalSignalDSL.g:10970: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:10711:1: ( rule__XIfExpression__Group__2__Impl rule__XIfExpression__Group__3 )
-            // InternalSignalDSL.g:10712:2: rule__XIfExpression__Group__2__Impl rule__XIfExpression__Group__3
+            // InternalSignalDSL.g:10974:1: ( rule__XIfExpression__Group__2__Impl rule__XIfExpression__Group__3 )
+            // InternalSignalDSL.g:10975:2: rule__XIfExpression__Group__2__Impl rule__XIfExpression__Group__3
             {
-            pushFollow(FOLLOW_30);
+            pushFollow(FOLLOW_35);
             rule__XIfExpression__Group__2__Impl();
 
             state._fsp--;
@@ -36205,22 +36990,22 @@
 
 
     // $ANTLR start "rule__XIfExpression__Group__2__Impl"
-    // InternalSignalDSL.g:10719:1: rule__XIfExpression__Group__2__Impl : ( '(' ) ;
+    // InternalSignalDSL.g:10982:1: rule__XIfExpression__Group__2__Impl : ( '(' ) ;
     public final void rule__XIfExpression__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:10723:1: ( ( '(' ) )
-            // InternalSignalDSL.g:10724:1: ( '(' )
+            // InternalSignalDSL.g:10986:1: ( ( '(' ) )
+            // InternalSignalDSL.g:10987:1: ( '(' )
             {
-            // InternalSignalDSL.g:10724:1: ( '(' )
-            // InternalSignalDSL.g:10725:2: '('
+            // InternalSignalDSL.g:10987:1: ( '(' )
+            // InternalSignalDSL.g:10988:2: '('
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXIfExpressionAccess().getLeftParenthesisKeyword_2()); 
             }
-            match(input,76,FOLLOW_2); if (state.failed) return ;
+            match(input,74,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXIfExpressionAccess().getLeftParenthesisKeyword_2()); 
             }
@@ -36246,16 +37031,16 @@
 
 
     // $ANTLR start "rule__XIfExpression__Group__3"
-    // InternalSignalDSL.g:10734:1: rule__XIfExpression__Group__3 : rule__XIfExpression__Group__3__Impl rule__XIfExpression__Group__4 ;
+    // InternalSignalDSL.g:10997: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:10738:1: ( rule__XIfExpression__Group__3__Impl rule__XIfExpression__Group__4 )
-            // InternalSignalDSL.g:10739:2: rule__XIfExpression__Group__3__Impl rule__XIfExpression__Group__4
+            // InternalSignalDSL.g:11001:1: ( rule__XIfExpression__Group__3__Impl rule__XIfExpression__Group__4 )
+            // InternalSignalDSL.g:11002:2: rule__XIfExpression__Group__3__Impl rule__XIfExpression__Group__4
             {
-            pushFollow(FOLLOW_75);
+            pushFollow(FOLLOW_80);
             rule__XIfExpression__Group__3__Impl();
 
             state._fsp--;
@@ -36284,23 +37069,23 @@
 
 
     // $ANTLR start "rule__XIfExpression__Group__3__Impl"
-    // InternalSignalDSL.g:10746:1: rule__XIfExpression__Group__3__Impl : ( ( rule__XIfExpression__IfAssignment_3 ) ) ;
+    // InternalSignalDSL.g:11009: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:10750:1: ( ( ( rule__XIfExpression__IfAssignment_3 ) ) )
-            // InternalSignalDSL.g:10751:1: ( ( rule__XIfExpression__IfAssignment_3 ) )
+            // InternalSignalDSL.g:11013:1: ( ( ( rule__XIfExpression__IfAssignment_3 ) ) )
+            // InternalSignalDSL.g:11014:1: ( ( rule__XIfExpression__IfAssignment_3 ) )
             {
-            // InternalSignalDSL.g:10751:1: ( ( rule__XIfExpression__IfAssignment_3 ) )
-            // InternalSignalDSL.g:10752:2: ( rule__XIfExpression__IfAssignment_3 )
+            // InternalSignalDSL.g:11014:1: ( ( rule__XIfExpression__IfAssignment_3 ) )
+            // InternalSignalDSL.g:11015:2: ( rule__XIfExpression__IfAssignment_3 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXIfExpressionAccess().getIfAssignment_3()); 
             }
-            // InternalSignalDSL.g:10753:2: ( rule__XIfExpression__IfAssignment_3 )
-            // InternalSignalDSL.g:10753:3: rule__XIfExpression__IfAssignment_3
+            // InternalSignalDSL.g:11016:2: ( rule__XIfExpression__IfAssignment_3 )
+            // InternalSignalDSL.g:11016:3: rule__XIfExpression__IfAssignment_3
             {
             pushFollow(FOLLOW_2);
             rule__XIfExpression__IfAssignment_3();
@@ -36335,16 +37120,16 @@
 
 
     // $ANTLR start "rule__XIfExpression__Group__4"
-    // InternalSignalDSL.g:10761:1: rule__XIfExpression__Group__4 : rule__XIfExpression__Group__4__Impl rule__XIfExpression__Group__5 ;
+    // InternalSignalDSL.g:11024: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:10765:1: ( rule__XIfExpression__Group__4__Impl rule__XIfExpression__Group__5 )
-            // InternalSignalDSL.g:10766:2: rule__XIfExpression__Group__4__Impl rule__XIfExpression__Group__5
+            // InternalSignalDSL.g:11028:1: ( rule__XIfExpression__Group__4__Impl rule__XIfExpression__Group__5 )
+            // InternalSignalDSL.g:11029:2: rule__XIfExpression__Group__4__Impl rule__XIfExpression__Group__5
             {
-            pushFollow(FOLLOW_30);
+            pushFollow(FOLLOW_35);
             rule__XIfExpression__Group__4__Impl();
 
             state._fsp--;
@@ -36373,22 +37158,22 @@
 
 
     // $ANTLR start "rule__XIfExpression__Group__4__Impl"
-    // InternalSignalDSL.g:10773:1: rule__XIfExpression__Group__4__Impl : ( ')' ) ;
+    // InternalSignalDSL.g:11036:1: rule__XIfExpression__Group__4__Impl : ( ')' ) ;
     public final void rule__XIfExpression__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:10777:1: ( ( ')' ) )
-            // InternalSignalDSL.g:10778:1: ( ')' )
+            // InternalSignalDSL.g:11040:1: ( ( ')' ) )
+            // InternalSignalDSL.g:11041:1: ( ')' )
             {
-            // InternalSignalDSL.g:10778:1: ( ')' )
-            // InternalSignalDSL.g:10779:2: ')'
+            // InternalSignalDSL.g:11041:1: ( ')' )
+            // InternalSignalDSL.g:11042:2: ')'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXIfExpressionAccess().getRightParenthesisKeyword_4()); 
             }
-            match(input,77,FOLLOW_2); if (state.failed) return ;
+            match(input,75,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXIfExpressionAccess().getRightParenthesisKeyword_4()); 
             }
@@ -36414,16 +37199,16 @@
 
 
     // $ANTLR start "rule__XIfExpression__Group__5"
-    // InternalSignalDSL.g:10788:1: rule__XIfExpression__Group__5 : rule__XIfExpression__Group__5__Impl rule__XIfExpression__Group__6 ;
+    // InternalSignalDSL.g:11051: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:10792:1: ( rule__XIfExpression__Group__5__Impl rule__XIfExpression__Group__6 )
-            // InternalSignalDSL.g:10793:2: rule__XIfExpression__Group__5__Impl rule__XIfExpression__Group__6
+            // InternalSignalDSL.g:11055:1: ( rule__XIfExpression__Group__5__Impl rule__XIfExpression__Group__6 )
+            // InternalSignalDSL.g:11056:2: rule__XIfExpression__Group__5__Impl rule__XIfExpression__Group__6
             {
-            pushFollow(FOLLOW_77);
+            pushFollow(FOLLOW_82);
             rule__XIfExpression__Group__5__Impl();
 
             state._fsp--;
@@ -36452,23 +37237,23 @@
 
 
     // $ANTLR start "rule__XIfExpression__Group__5__Impl"
-    // InternalSignalDSL.g:10800:1: rule__XIfExpression__Group__5__Impl : ( ( rule__XIfExpression__ThenAssignment_5 ) ) ;
+    // InternalSignalDSL.g:11063: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:10804:1: ( ( ( rule__XIfExpression__ThenAssignment_5 ) ) )
-            // InternalSignalDSL.g:10805:1: ( ( rule__XIfExpression__ThenAssignment_5 ) )
+            // InternalSignalDSL.g:11067:1: ( ( ( rule__XIfExpression__ThenAssignment_5 ) ) )
+            // InternalSignalDSL.g:11068:1: ( ( rule__XIfExpression__ThenAssignment_5 ) )
             {
-            // InternalSignalDSL.g:10805:1: ( ( rule__XIfExpression__ThenAssignment_5 ) )
-            // InternalSignalDSL.g:10806:2: ( rule__XIfExpression__ThenAssignment_5 )
+            // InternalSignalDSL.g:11068:1: ( ( rule__XIfExpression__ThenAssignment_5 ) )
+            // InternalSignalDSL.g:11069:2: ( rule__XIfExpression__ThenAssignment_5 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXIfExpressionAccess().getThenAssignment_5()); 
             }
-            // InternalSignalDSL.g:10807:2: ( rule__XIfExpression__ThenAssignment_5 )
-            // InternalSignalDSL.g:10807:3: rule__XIfExpression__ThenAssignment_5
+            // InternalSignalDSL.g:11070:2: ( rule__XIfExpression__ThenAssignment_5 )
+            // InternalSignalDSL.g:11070:3: rule__XIfExpression__ThenAssignment_5
             {
             pushFollow(FOLLOW_2);
             rule__XIfExpression__ThenAssignment_5();
@@ -36503,14 +37288,14 @@
 
 
     // $ANTLR start "rule__XIfExpression__Group__6"
-    // InternalSignalDSL.g:10815:1: rule__XIfExpression__Group__6 : rule__XIfExpression__Group__6__Impl ;
+    // InternalSignalDSL.g:11078: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:10819:1: ( rule__XIfExpression__Group__6__Impl )
-            // InternalSignalDSL.g:10820:2: rule__XIfExpression__Group__6__Impl
+            // InternalSignalDSL.g:11082:1: ( rule__XIfExpression__Group__6__Impl )
+            // InternalSignalDSL.g:11083:2: rule__XIfExpression__Group__6__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XIfExpression__Group__6__Impl();
@@ -36536,35 +37321,35 @@
 
 
     // $ANTLR start "rule__XIfExpression__Group__6__Impl"
-    // InternalSignalDSL.g:10826:1: rule__XIfExpression__Group__6__Impl : ( ( rule__XIfExpression__Group_6__0 )? ) ;
+    // InternalSignalDSL.g:11089: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:10830:1: ( ( ( rule__XIfExpression__Group_6__0 )? ) )
-            // InternalSignalDSL.g:10831:1: ( ( rule__XIfExpression__Group_6__0 )? )
+            // InternalSignalDSL.g:11093:1: ( ( ( rule__XIfExpression__Group_6__0 )? ) )
+            // InternalSignalDSL.g:11094:1: ( ( rule__XIfExpression__Group_6__0 )? )
             {
-            // InternalSignalDSL.g:10831:1: ( ( rule__XIfExpression__Group_6__0 )? )
-            // InternalSignalDSL.g:10832:2: ( rule__XIfExpression__Group_6__0 )?
+            // InternalSignalDSL.g:11094:1: ( ( rule__XIfExpression__Group_6__0 )? )
+            // InternalSignalDSL.g:11095:2: ( rule__XIfExpression__Group_6__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXIfExpressionAccess().getGroup_6()); 
             }
-            // InternalSignalDSL.g:10833:2: ( rule__XIfExpression__Group_6__0 )?
-            int alt94=2;
-            int LA94_0 = input.LA(1);
+            // InternalSignalDSL.g:11096:2: ( rule__XIfExpression__Group_6__0 )?
+            int alt97=2;
+            int LA97_0 = input.LA(1);
 
-            if ( (LA94_0==85) ) {
-                int LA94_1 = input.LA(2);
+            if ( (LA97_0==83) ) {
+                int LA97_1 = input.LA(2);
 
-                if ( (synpred148_InternalSignalDSL()) ) {
-                    alt94=1;
+                if ( (synpred145_InternalSignalDSL()) ) {
+                    alt97=1;
                 }
             }
-            switch (alt94) {
+            switch (alt97) {
                 case 1 :
-                    // InternalSignalDSL.g:10833:3: rule__XIfExpression__Group_6__0
+                    // InternalSignalDSL.g:11096:3: rule__XIfExpression__Group_6__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XIfExpression__Group_6__0();
@@ -36602,16 +37387,16 @@
 
 
     // $ANTLR start "rule__XIfExpression__Group_6__0"
-    // InternalSignalDSL.g:10842:1: rule__XIfExpression__Group_6__0 : rule__XIfExpression__Group_6__0__Impl rule__XIfExpression__Group_6__1 ;
+    // InternalSignalDSL.g:11105: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:10846:1: ( rule__XIfExpression__Group_6__0__Impl rule__XIfExpression__Group_6__1 )
-            // InternalSignalDSL.g:10847:2: rule__XIfExpression__Group_6__0__Impl rule__XIfExpression__Group_6__1
+            // InternalSignalDSL.g:11109:1: ( rule__XIfExpression__Group_6__0__Impl rule__XIfExpression__Group_6__1 )
+            // InternalSignalDSL.g:11110:2: rule__XIfExpression__Group_6__0__Impl rule__XIfExpression__Group_6__1
             {
-            pushFollow(FOLLOW_30);
+            pushFollow(FOLLOW_35);
             rule__XIfExpression__Group_6__0__Impl();
 
             state._fsp--;
@@ -36640,25 +37425,25 @@
 
 
     // $ANTLR start "rule__XIfExpression__Group_6__0__Impl"
-    // InternalSignalDSL.g:10854:1: rule__XIfExpression__Group_6__0__Impl : ( ( 'else' ) ) ;
+    // InternalSignalDSL.g:11117: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:10858:1: ( ( ( 'else' ) ) )
-            // InternalSignalDSL.g:10859:1: ( ( 'else' ) )
+            // InternalSignalDSL.g:11121:1: ( ( ( 'else' ) ) )
+            // InternalSignalDSL.g:11122:1: ( ( 'else' ) )
             {
-            // InternalSignalDSL.g:10859:1: ( ( 'else' ) )
-            // InternalSignalDSL.g:10860:2: ( 'else' )
+            // InternalSignalDSL.g:11122:1: ( ( 'else' ) )
+            // InternalSignalDSL.g:11123:2: ( 'else' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXIfExpressionAccess().getElseKeyword_6_0()); 
             }
-            // InternalSignalDSL.g:10861:2: ( 'else' )
-            // InternalSignalDSL.g:10861:3: 'else'
+            // InternalSignalDSL.g:11124:2: ( 'else' )
+            // InternalSignalDSL.g:11124:3: 'else'
             {
-            match(input,85,FOLLOW_2); if (state.failed) return ;
+            match(input,83,FOLLOW_2); if (state.failed) return ;
 
             }
 
@@ -36687,14 +37472,14 @@
 
 
     // $ANTLR start "rule__XIfExpression__Group_6__1"
-    // InternalSignalDSL.g:10869:1: rule__XIfExpression__Group_6__1 : rule__XIfExpression__Group_6__1__Impl ;
+    // InternalSignalDSL.g:11132: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:10873:1: ( rule__XIfExpression__Group_6__1__Impl )
-            // InternalSignalDSL.g:10874:2: rule__XIfExpression__Group_6__1__Impl
+            // InternalSignalDSL.g:11136:1: ( rule__XIfExpression__Group_6__1__Impl )
+            // InternalSignalDSL.g:11137:2: rule__XIfExpression__Group_6__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XIfExpression__Group_6__1__Impl();
@@ -36720,23 +37505,23 @@
 
 
     // $ANTLR start "rule__XIfExpression__Group_6__1__Impl"
-    // InternalSignalDSL.g:10880:1: rule__XIfExpression__Group_6__1__Impl : ( ( rule__XIfExpression__ElseAssignment_6_1 ) ) ;
+    // InternalSignalDSL.g:11143: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:10884:1: ( ( ( rule__XIfExpression__ElseAssignment_6_1 ) ) )
-            // InternalSignalDSL.g:10885:1: ( ( rule__XIfExpression__ElseAssignment_6_1 ) )
+            // InternalSignalDSL.g:11147:1: ( ( ( rule__XIfExpression__ElseAssignment_6_1 ) ) )
+            // InternalSignalDSL.g:11148:1: ( ( rule__XIfExpression__ElseAssignment_6_1 ) )
             {
-            // InternalSignalDSL.g:10885:1: ( ( rule__XIfExpression__ElseAssignment_6_1 ) )
-            // InternalSignalDSL.g:10886:2: ( rule__XIfExpression__ElseAssignment_6_1 )
+            // InternalSignalDSL.g:11148:1: ( ( rule__XIfExpression__ElseAssignment_6_1 ) )
+            // InternalSignalDSL.g:11149:2: ( rule__XIfExpression__ElseAssignment_6_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXIfExpressionAccess().getElseAssignment_6_1()); 
             }
-            // InternalSignalDSL.g:10887:2: ( rule__XIfExpression__ElseAssignment_6_1 )
-            // InternalSignalDSL.g:10887:3: rule__XIfExpression__ElseAssignment_6_1
+            // InternalSignalDSL.g:11150:2: ( rule__XIfExpression__ElseAssignment_6_1 )
+            // InternalSignalDSL.g:11150:3: rule__XIfExpression__ElseAssignment_6_1
             {
             pushFollow(FOLLOW_2);
             rule__XIfExpression__ElseAssignment_6_1();
@@ -36771,16 +37556,16 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group__0"
-    // InternalSignalDSL.g:10896:1: rule__XSwitchExpression__Group__0 : rule__XSwitchExpression__Group__0__Impl rule__XSwitchExpression__Group__1 ;
+    // InternalSignalDSL.g:11159: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:10900:1: ( rule__XSwitchExpression__Group__0__Impl rule__XSwitchExpression__Group__1 )
-            // InternalSignalDSL.g:10901:2: rule__XSwitchExpression__Group__0__Impl rule__XSwitchExpression__Group__1
+            // InternalSignalDSL.g:11163:1: ( rule__XSwitchExpression__Group__0__Impl rule__XSwitchExpression__Group__1 )
+            // InternalSignalDSL.g:11164:2: rule__XSwitchExpression__Group__0__Impl rule__XSwitchExpression__Group__1
             {
-            pushFollow(FOLLOW_78);
+            pushFollow(FOLLOW_83);
             rule__XSwitchExpression__Group__0__Impl();
 
             state._fsp--;
@@ -36809,23 +37594,23 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group__0__Impl"
-    // InternalSignalDSL.g:10908:1: rule__XSwitchExpression__Group__0__Impl : ( () ) ;
+    // InternalSignalDSL.g:11171:1: rule__XSwitchExpression__Group__0__Impl : ( () ) ;
     public final void rule__XSwitchExpression__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:10912:1: ( ( () ) )
-            // InternalSignalDSL.g:10913:1: ( () )
+            // InternalSignalDSL.g:11175:1: ( ( () ) )
+            // InternalSignalDSL.g:11176:1: ( () )
             {
-            // InternalSignalDSL.g:10913:1: ( () )
-            // InternalSignalDSL.g:10914:2: ()
+            // InternalSignalDSL.g:11176:1: ( () )
+            // InternalSignalDSL.g:11177:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getXSwitchExpressionAction_0()); 
             }
-            // InternalSignalDSL.g:10915:2: ()
-            // InternalSignalDSL.g:10915:3: 
+            // InternalSignalDSL.g:11178:2: ()
+            // InternalSignalDSL.g:11178:3: 
             {
             }
 
@@ -36850,16 +37635,16 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group__1"
-    // InternalSignalDSL.g:10923:1: rule__XSwitchExpression__Group__1 : rule__XSwitchExpression__Group__1__Impl rule__XSwitchExpression__Group__2 ;
+    // InternalSignalDSL.g:11186: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:10927:1: ( rule__XSwitchExpression__Group__1__Impl rule__XSwitchExpression__Group__2 )
-            // InternalSignalDSL.g:10928:2: rule__XSwitchExpression__Group__1__Impl rule__XSwitchExpression__Group__2
+            // InternalSignalDSL.g:11190:1: ( rule__XSwitchExpression__Group__1__Impl rule__XSwitchExpression__Group__2 )
+            // InternalSignalDSL.g:11191:2: rule__XSwitchExpression__Group__1__Impl rule__XSwitchExpression__Group__2
             {
-            pushFollow(FOLLOW_79);
+            pushFollow(FOLLOW_84);
             rule__XSwitchExpression__Group__1__Impl();
 
             state._fsp--;
@@ -36888,22 +37673,22 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group__1__Impl"
-    // InternalSignalDSL.g:10935:1: rule__XSwitchExpression__Group__1__Impl : ( 'switch' ) ;
+    // InternalSignalDSL.g:11198:1: rule__XSwitchExpression__Group__1__Impl : ( 'switch' ) ;
     public final void rule__XSwitchExpression__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:10939:1: ( ( 'switch' ) )
-            // InternalSignalDSL.g:10940:1: ( 'switch' )
+            // InternalSignalDSL.g:11202:1: ( ( 'switch' ) )
+            // InternalSignalDSL.g:11203:1: ( 'switch' )
             {
-            // InternalSignalDSL.g:10940:1: ( 'switch' )
-            // InternalSignalDSL.g:10941:2: 'switch'
+            // InternalSignalDSL.g:11203:1: ( 'switch' )
+            // InternalSignalDSL.g:11204:2: 'switch'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getSwitchKeyword_1()); 
             }
-            match(input,86,FOLLOW_2); if (state.failed) return ;
+            match(input,84,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXSwitchExpressionAccess().getSwitchKeyword_1()); 
             }
@@ -36929,14 +37714,14 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group__2"
-    // InternalSignalDSL.g:10950:1: rule__XSwitchExpression__Group__2 : rule__XSwitchExpression__Group__2__Impl rule__XSwitchExpression__Group__3 ;
+    // InternalSignalDSL.g:11213: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:10954:1: ( rule__XSwitchExpression__Group__2__Impl rule__XSwitchExpression__Group__3 )
-            // InternalSignalDSL.g:10955:2: rule__XSwitchExpression__Group__2__Impl rule__XSwitchExpression__Group__3
+            // InternalSignalDSL.g:11217:1: ( rule__XSwitchExpression__Group__2__Impl rule__XSwitchExpression__Group__3 )
+            // InternalSignalDSL.g:11218:2: rule__XSwitchExpression__Group__2__Impl rule__XSwitchExpression__Group__3
             {
             pushFollow(FOLLOW_8);
             rule__XSwitchExpression__Group__2__Impl();
@@ -36967,23 +37752,23 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group__2__Impl"
-    // InternalSignalDSL.g:10962:1: rule__XSwitchExpression__Group__2__Impl : ( ( rule__XSwitchExpression__Alternatives_2 ) ) ;
+    // InternalSignalDSL.g:11225: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:10966:1: ( ( ( rule__XSwitchExpression__Alternatives_2 ) ) )
-            // InternalSignalDSL.g:10967:1: ( ( rule__XSwitchExpression__Alternatives_2 ) )
+            // InternalSignalDSL.g:11229:1: ( ( ( rule__XSwitchExpression__Alternatives_2 ) ) )
+            // InternalSignalDSL.g:11230:1: ( ( rule__XSwitchExpression__Alternatives_2 ) )
             {
-            // InternalSignalDSL.g:10967:1: ( ( rule__XSwitchExpression__Alternatives_2 ) )
-            // InternalSignalDSL.g:10968:2: ( rule__XSwitchExpression__Alternatives_2 )
+            // InternalSignalDSL.g:11230:1: ( ( rule__XSwitchExpression__Alternatives_2 ) )
+            // InternalSignalDSL.g:11231:2: ( rule__XSwitchExpression__Alternatives_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getAlternatives_2()); 
             }
-            // InternalSignalDSL.g:10969:2: ( rule__XSwitchExpression__Alternatives_2 )
-            // InternalSignalDSL.g:10969:3: rule__XSwitchExpression__Alternatives_2
+            // InternalSignalDSL.g:11232:2: ( rule__XSwitchExpression__Alternatives_2 )
+            // InternalSignalDSL.g:11232:3: rule__XSwitchExpression__Alternatives_2
             {
             pushFollow(FOLLOW_2);
             rule__XSwitchExpression__Alternatives_2();
@@ -37018,16 +37803,16 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group__3"
-    // InternalSignalDSL.g:10977:1: rule__XSwitchExpression__Group__3 : rule__XSwitchExpression__Group__3__Impl rule__XSwitchExpression__Group__4 ;
+    // InternalSignalDSL.g:11240: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:10981:1: ( rule__XSwitchExpression__Group__3__Impl rule__XSwitchExpression__Group__4 )
-            // InternalSignalDSL.g:10982:2: rule__XSwitchExpression__Group__3__Impl rule__XSwitchExpression__Group__4
+            // InternalSignalDSL.g:11244:1: ( rule__XSwitchExpression__Group__3__Impl rule__XSwitchExpression__Group__4 )
+            // InternalSignalDSL.g:11245:2: rule__XSwitchExpression__Group__3__Impl rule__XSwitchExpression__Group__4
             {
-            pushFollow(FOLLOW_80);
+            pushFollow(FOLLOW_85);
             rule__XSwitchExpression__Group__3__Impl();
 
             state._fsp--;
@@ -37056,22 +37841,22 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group__3__Impl"
-    // InternalSignalDSL.g:10989:1: rule__XSwitchExpression__Group__3__Impl : ( '{' ) ;
+    // InternalSignalDSL.g:11252:1: rule__XSwitchExpression__Group__3__Impl : ( '{' ) ;
     public final void rule__XSwitchExpression__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:10993:1: ( ( '{' ) )
-            // InternalSignalDSL.g:10994:1: ( '{' )
+            // InternalSignalDSL.g:11256:1: ( ( '{' ) )
+            // InternalSignalDSL.g:11257:1: ( '{' )
             {
-            // InternalSignalDSL.g:10994:1: ( '{' )
-            // InternalSignalDSL.g:10995:2: '{'
+            // InternalSignalDSL.g:11257:1: ( '{' )
+            // InternalSignalDSL.g:11258:2: '{'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getLeftCurlyBracketKeyword_3()); 
             }
-            match(input,68,FOLLOW_2); if (state.failed) return ;
+            match(input,64,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXSwitchExpressionAccess().getLeftCurlyBracketKeyword_3()); 
             }
@@ -37097,16 +37882,16 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group__4"
-    // InternalSignalDSL.g:11004:1: rule__XSwitchExpression__Group__4 : rule__XSwitchExpression__Group__4__Impl rule__XSwitchExpression__Group__5 ;
+    // InternalSignalDSL.g:11267: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:11008:1: ( rule__XSwitchExpression__Group__4__Impl rule__XSwitchExpression__Group__5 )
-            // InternalSignalDSL.g:11009:2: rule__XSwitchExpression__Group__4__Impl rule__XSwitchExpression__Group__5
+            // InternalSignalDSL.g:11271:1: ( rule__XSwitchExpression__Group__4__Impl rule__XSwitchExpression__Group__5 )
+            // InternalSignalDSL.g:11272:2: rule__XSwitchExpression__Group__4__Impl rule__XSwitchExpression__Group__5
             {
-            pushFollow(FOLLOW_80);
+            pushFollow(FOLLOW_85);
             rule__XSwitchExpression__Group__4__Impl();
 
             state._fsp--;
@@ -37135,37 +37920,37 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group__4__Impl"
-    // InternalSignalDSL.g:11016:1: rule__XSwitchExpression__Group__4__Impl : ( ( rule__XSwitchExpression__CasesAssignment_4 )* ) ;
+    // InternalSignalDSL.g:11279: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:11020:1: ( ( ( rule__XSwitchExpression__CasesAssignment_4 )* ) )
-            // InternalSignalDSL.g:11021:1: ( ( rule__XSwitchExpression__CasesAssignment_4 )* )
+            // InternalSignalDSL.g:11283:1: ( ( ( rule__XSwitchExpression__CasesAssignment_4 )* ) )
+            // InternalSignalDSL.g:11284:1: ( ( rule__XSwitchExpression__CasesAssignment_4 )* )
             {
-            // InternalSignalDSL.g:11021:1: ( ( rule__XSwitchExpression__CasesAssignment_4 )* )
-            // InternalSignalDSL.g:11022:2: ( rule__XSwitchExpression__CasesAssignment_4 )*
+            // InternalSignalDSL.g:11284:1: ( ( rule__XSwitchExpression__CasesAssignment_4 )* )
+            // InternalSignalDSL.g:11285:2: ( rule__XSwitchExpression__CasesAssignment_4 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getCasesAssignment_4()); 
             }
-            // InternalSignalDSL.g:11023:2: ( rule__XSwitchExpression__CasesAssignment_4 )*
-            loop95:
+            // InternalSignalDSL.g:11286:2: ( rule__XSwitchExpression__CasesAssignment_4 )*
+            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==31||LA95_0==76||LA95_0==78||LA95_0==87||LA95_0==89) ) {
-                    alt95=1;
+                if ( (LA98_0==RULE_ID||LA98_0==31||LA98_0==74||LA98_0==76||LA98_0==85||LA98_0==87) ) {
+                    alt98=1;
                 }
 
 
-                switch (alt95) {
+                switch (alt98) {
             	case 1 :
-            	    // InternalSignalDSL.g:11023:3: rule__XSwitchExpression__CasesAssignment_4
+            	    // InternalSignalDSL.g:11286:3: rule__XSwitchExpression__CasesAssignment_4
             	    {
-            	    pushFollow(FOLLOW_81);
+            	    pushFollow(FOLLOW_86);
             	    rule__XSwitchExpression__CasesAssignment_4();
 
             	    state._fsp--;
@@ -37175,7 +37960,7 @@
             	    break;
 
             	default :
-            	    break loop95;
+            	    break loop98;
                 }
             } while (true);
 
@@ -37204,16 +37989,16 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group__5"
-    // InternalSignalDSL.g:11031:1: rule__XSwitchExpression__Group__5 : rule__XSwitchExpression__Group__5__Impl rule__XSwitchExpression__Group__6 ;
+    // InternalSignalDSL.g:11294: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:11035:1: ( rule__XSwitchExpression__Group__5__Impl rule__XSwitchExpression__Group__6 )
-            // InternalSignalDSL.g:11036:2: rule__XSwitchExpression__Group__5__Impl rule__XSwitchExpression__Group__6
+            // InternalSignalDSL.g:11298:1: ( rule__XSwitchExpression__Group__5__Impl rule__XSwitchExpression__Group__6 )
+            // InternalSignalDSL.g:11299:2: rule__XSwitchExpression__Group__5__Impl rule__XSwitchExpression__Group__6
             {
-            pushFollow(FOLLOW_80);
+            pushFollow(FOLLOW_85);
             rule__XSwitchExpression__Group__5__Impl();
 
             state._fsp--;
@@ -37242,31 +38027,31 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group__5__Impl"
-    // InternalSignalDSL.g:11043:1: rule__XSwitchExpression__Group__5__Impl : ( ( rule__XSwitchExpression__Group_5__0 )? ) ;
+    // InternalSignalDSL.g:11306: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:11047:1: ( ( ( rule__XSwitchExpression__Group_5__0 )? ) )
-            // InternalSignalDSL.g:11048:1: ( ( rule__XSwitchExpression__Group_5__0 )? )
+            // InternalSignalDSL.g:11310:1: ( ( ( rule__XSwitchExpression__Group_5__0 )? ) )
+            // InternalSignalDSL.g:11311:1: ( ( rule__XSwitchExpression__Group_5__0 )? )
             {
-            // InternalSignalDSL.g:11048:1: ( ( rule__XSwitchExpression__Group_5__0 )? )
-            // InternalSignalDSL.g:11049:2: ( rule__XSwitchExpression__Group_5__0 )?
+            // InternalSignalDSL.g:11311:1: ( ( rule__XSwitchExpression__Group_5__0 )? )
+            // InternalSignalDSL.g:11312:2: ( rule__XSwitchExpression__Group_5__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getGroup_5()); 
             }
-            // InternalSignalDSL.g:11050:2: ( rule__XSwitchExpression__Group_5__0 )?
-            int alt96=2;
-            int LA96_0 = input.LA(1);
+            // InternalSignalDSL.g:11313:2: ( rule__XSwitchExpression__Group_5__0 )?
+            int alt99=2;
+            int LA99_0 = input.LA(1);
 
-            if ( (LA96_0==88) ) {
-                alt96=1;
+            if ( (LA99_0==86) ) {
+                alt99=1;
             }
-            switch (alt96) {
+            switch (alt99) {
                 case 1 :
-                    // InternalSignalDSL.g:11050:3: rule__XSwitchExpression__Group_5__0
+                    // InternalSignalDSL.g:11313:3: rule__XSwitchExpression__Group_5__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XSwitchExpression__Group_5__0();
@@ -37304,14 +38089,14 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group__6"
-    // InternalSignalDSL.g:11058:1: rule__XSwitchExpression__Group__6 : rule__XSwitchExpression__Group__6__Impl ;
+    // InternalSignalDSL.g:11321: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:11062:1: ( rule__XSwitchExpression__Group__6__Impl )
-            // InternalSignalDSL.g:11063:2: rule__XSwitchExpression__Group__6__Impl
+            // InternalSignalDSL.g:11325:1: ( rule__XSwitchExpression__Group__6__Impl )
+            // InternalSignalDSL.g:11326:2: rule__XSwitchExpression__Group__6__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XSwitchExpression__Group__6__Impl();
@@ -37337,22 +38122,22 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group__6__Impl"
-    // InternalSignalDSL.g:11069:1: rule__XSwitchExpression__Group__6__Impl : ( '}' ) ;
+    // InternalSignalDSL.g:11332:1: rule__XSwitchExpression__Group__6__Impl : ( '}' ) ;
     public final void rule__XSwitchExpression__Group__6__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:11073:1: ( ( '}' ) )
-            // InternalSignalDSL.g:11074:1: ( '}' )
+            // InternalSignalDSL.g:11336:1: ( ( '}' ) )
+            // InternalSignalDSL.g:11337:1: ( '}' )
             {
-            // InternalSignalDSL.g:11074:1: ( '}' )
-            // InternalSignalDSL.g:11075:2: '}'
+            // InternalSignalDSL.g:11337:1: ( '}' )
+            // InternalSignalDSL.g:11338:2: '}'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getRightCurlyBracketKeyword_6()); 
             }
-            match(input,69,FOLLOW_2); if (state.failed) return ;
+            match(input,65,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXSwitchExpressionAccess().getRightCurlyBracketKeyword_6()); 
             }
@@ -37378,16 +38163,16 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_0__0"
-    // InternalSignalDSL.g:11085:1: rule__XSwitchExpression__Group_2_0__0 : rule__XSwitchExpression__Group_2_0__0__Impl rule__XSwitchExpression__Group_2_0__1 ;
+    // InternalSignalDSL.g:11348: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:11089:1: ( rule__XSwitchExpression__Group_2_0__0__Impl rule__XSwitchExpression__Group_2_0__1 )
-            // InternalSignalDSL.g:11090:2: rule__XSwitchExpression__Group_2_0__0__Impl rule__XSwitchExpression__Group_2_0__1
+            // InternalSignalDSL.g:11352:1: ( rule__XSwitchExpression__Group_2_0__0__Impl rule__XSwitchExpression__Group_2_0__1 )
+            // InternalSignalDSL.g:11353:2: rule__XSwitchExpression__Group_2_0__0__Impl rule__XSwitchExpression__Group_2_0__1
             {
-            pushFollow(FOLLOW_30);
+            pushFollow(FOLLOW_35);
             rule__XSwitchExpression__Group_2_0__0__Impl();
 
             state._fsp--;
@@ -37416,23 +38201,23 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_0__0__Impl"
-    // InternalSignalDSL.g:11097:1: rule__XSwitchExpression__Group_2_0__0__Impl : ( ( rule__XSwitchExpression__Group_2_0_0__0 ) ) ;
+    // InternalSignalDSL.g:11360: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:11101:1: ( ( ( rule__XSwitchExpression__Group_2_0_0__0 ) ) )
-            // InternalSignalDSL.g:11102:1: ( ( rule__XSwitchExpression__Group_2_0_0__0 ) )
+            // InternalSignalDSL.g:11364:1: ( ( ( rule__XSwitchExpression__Group_2_0_0__0 ) ) )
+            // InternalSignalDSL.g:11365:1: ( ( rule__XSwitchExpression__Group_2_0_0__0 ) )
             {
-            // InternalSignalDSL.g:11102:1: ( ( rule__XSwitchExpression__Group_2_0_0__0 ) )
-            // InternalSignalDSL.g:11103:2: ( rule__XSwitchExpression__Group_2_0_0__0 )
+            // InternalSignalDSL.g:11365:1: ( ( rule__XSwitchExpression__Group_2_0_0__0 ) )
+            // InternalSignalDSL.g:11366:2: ( rule__XSwitchExpression__Group_2_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getGroup_2_0_0()); 
             }
-            // InternalSignalDSL.g:11104:2: ( rule__XSwitchExpression__Group_2_0_0__0 )
-            // InternalSignalDSL.g:11104:3: rule__XSwitchExpression__Group_2_0_0__0
+            // InternalSignalDSL.g:11367:2: ( rule__XSwitchExpression__Group_2_0_0__0 )
+            // InternalSignalDSL.g:11367:3: rule__XSwitchExpression__Group_2_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XSwitchExpression__Group_2_0_0__0();
@@ -37467,16 +38252,16 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_0__1"
-    // InternalSignalDSL.g:11112:1: rule__XSwitchExpression__Group_2_0__1 : rule__XSwitchExpression__Group_2_0__1__Impl rule__XSwitchExpression__Group_2_0__2 ;
+    // InternalSignalDSL.g:11375: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:11116:1: ( rule__XSwitchExpression__Group_2_0__1__Impl rule__XSwitchExpression__Group_2_0__2 )
-            // InternalSignalDSL.g:11117:2: rule__XSwitchExpression__Group_2_0__1__Impl rule__XSwitchExpression__Group_2_0__2
+            // InternalSignalDSL.g:11379:1: ( rule__XSwitchExpression__Group_2_0__1__Impl rule__XSwitchExpression__Group_2_0__2 )
+            // InternalSignalDSL.g:11380:2: rule__XSwitchExpression__Group_2_0__1__Impl rule__XSwitchExpression__Group_2_0__2
             {
-            pushFollow(FOLLOW_75);
+            pushFollow(FOLLOW_80);
             rule__XSwitchExpression__Group_2_0__1__Impl();
 
             state._fsp--;
@@ -37505,23 +38290,23 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_0__1__Impl"
-    // InternalSignalDSL.g:11124:1: rule__XSwitchExpression__Group_2_0__1__Impl : ( ( rule__XSwitchExpression__SwitchAssignment_2_0_1 ) ) ;
+    // InternalSignalDSL.g:11387: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:11128:1: ( ( ( rule__XSwitchExpression__SwitchAssignment_2_0_1 ) ) )
-            // InternalSignalDSL.g:11129:1: ( ( rule__XSwitchExpression__SwitchAssignment_2_0_1 ) )
+            // InternalSignalDSL.g:11391:1: ( ( ( rule__XSwitchExpression__SwitchAssignment_2_0_1 ) ) )
+            // InternalSignalDSL.g:11392:1: ( ( rule__XSwitchExpression__SwitchAssignment_2_0_1 ) )
             {
-            // InternalSignalDSL.g:11129:1: ( ( rule__XSwitchExpression__SwitchAssignment_2_0_1 ) )
-            // InternalSignalDSL.g:11130:2: ( rule__XSwitchExpression__SwitchAssignment_2_0_1 )
+            // InternalSignalDSL.g:11392:1: ( ( rule__XSwitchExpression__SwitchAssignment_2_0_1 ) )
+            // InternalSignalDSL.g:11393:2: ( rule__XSwitchExpression__SwitchAssignment_2_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getSwitchAssignment_2_0_1()); 
             }
-            // InternalSignalDSL.g:11131:2: ( rule__XSwitchExpression__SwitchAssignment_2_0_1 )
-            // InternalSignalDSL.g:11131:3: rule__XSwitchExpression__SwitchAssignment_2_0_1
+            // InternalSignalDSL.g:11394:2: ( rule__XSwitchExpression__SwitchAssignment_2_0_1 )
+            // InternalSignalDSL.g:11394:3: rule__XSwitchExpression__SwitchAssignment_2_0_1
             {
             pushFollow(FOLLOW_2);
             rule__XSwitchExpression__SwitchAssignment_2_0_1();
@@ -37556,14 +38341,14 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_0__2"
-    // InternalSignalDSL.g:11139:1: rule__XSwitchExpression__Group_2_0__2 : rule__XSwitchExpression__Group_2_0__2__Impl ;
+    // InternalSignalDSL.g:11402: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:11143:1: ( rule__XSwitchExpression__Group_2_0__2__Impl )
-            // InternalSignalDSL.g:11144:2: rule__XSwitchExpression__Group_2_0__2__Impl
+            // InternalSignalDSL.g:11406:1: ( rule__XSwitchExpression__Group_2_0__2__Impl )
+            // InternalSignalDSL.g:11407:2: rule__XSwitchExpression__Group_2_0__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XSwitchExpression__Group_2_0__2__Impl();
@@ -37589,22 +38374,22 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_0__2__Impl"
-    // InternalSignalDSL.g:11150:1: rule__XSwitchExpression__Group_2_0__2__Impl : ( ')' ) ;
+    // InternalSignalDSL.g:11413: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:11154:1: ( ( ')' ) )
-            // InternalSignalDSL.g:11155:1: ( ')' )
+            // InternalSignalDSL.g:11417:1: ( ( ')' ) )
+            // InternalSignalDSL.g:11418:1: ( ')' )
             {
-            // InternalSignalDSL.g:11155:1: ( ')' )
-            // InternalSignalDSL.g:11156:2: ')'
+            // InternalSignalDSL.g:11418:1: ( ')' )
+            // InternalSignalDSL.g:11419:2: ')'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getRightParenthesisKeyword_2_0_2()); 
             }
-            match(input,77,FOLLOW_2); if (state.failed) return ;
+            match(input,75,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXSwitchExpressionAccess().getRightParenthesisKeyword_2_0_2()); 
             }
@@ -37630,14 +38415,14 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_0_0__0"
-    // InternalSignalDSL.g:11166:1: rule__XSwitchExpression__Group_2_0_0__0 : rule__XSwitchExpression__Group_2_0_0__0__Impl ;
+    // InternalSignalDSL.g:11429: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:11170:1: ( rule__XSwitchExpression__Group_2_0_0__0__Impl )
-            // InternalSignalDSL.g:11171:2: rule__XSwitchExpression__Group_2_0_0__0__Impl
+            // InternalSignalDSL.g:11433:1: ( rule__XSwitchExpression__Group_2_0_0__0__Impl )
+            // InternalSignalDSL.g:11434:2: rule__XSwitchExpression__Group_2_0_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XSwitchExpression__Group_2_0_0__0__Impl();
@@ -37663,23 +38448,23 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_0_0__0__Impl"
-    // InternalSignalDSL.g:11177:1: rule__XSwitchExpression__Group_2_0_0__0__Impl : ( ( rule__XSwitchExpression__Group_2_0_0_0__0 ) ) ;
+    // InternalSignalDSL.g:11440: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:11181:1: ( ( ( rule__XSwitchExpression__Group_2_0_0_0__0 ) ) )
-            // InternalSignalDSL.g:11182:1: ( ( rule__XSwitchExpression__Group_2_0_0_0__0 ) )
+            // InternalSignalDSL.g:11444:1: ( ( ( rule__XSwitchExpression__Group_2_0_0_0__0 ) ) )
+            // InternalSignalDSL.g:11445:1: ( ( rule__XSwitchExpression__Group_2_0_0_0__0 ) )
             {
-            // InternalSignalDSL.g:11182:1: ( ( rule__XSwitchExpression__Group_2_0_0_0__0 ) )
-            // InternalSignalDSL.g:11183:2: ( rule__XSwitchExpression__Group_2_0_0_0__0 )
+            // InternalSignalDSL.g:11445:1: ( ( rule__XSwitchExpression__Group_2_0_0_0__0 ) )
+            // InternalSignalDSL.g:11446:2: ( rule__XSwitchExpression__Group_2_0_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getGroup_2_0_0_0()); 
             }
-            // InternalSignalDSL.g:11184:2: ( rule__XSwitchExpression__Group_2_0_0_0__0 )
-            // InternalSignalDSL.g:11184:3: rule__XSwitchExpression__Group_2_0_0_0__0
+            // InternalSignalDSL.g:11447:2: ( rule__XSwitchExpression__Group_2_0_0_0__0 )
+            // InternalSignalDSL.g:11447:3: rule__XSwitchExpression__Group_2_0_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XSwitchExpression__Group_2_0_0_0__0();
@@ -37714,16 +38499,16 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_0_0_0__0"
-    // InternalSignalDSL.g:11193: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:11456: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:11197:1: ( rule__XSwitchExpression__Group_2_0_0_0__0__Impl rule__XSwitchExpression__Group_2_0_0_0__1 )
-            // InternalSignalDSL.g:11198:2: rule__XSwitchExpression__Group_2_0_0_0__0__Impl rule__XSwitchExpression__Group_2_0_0_0__1
+            // InternalSignalDSL.g:11460:1: ( rule__XSwitchExpression__Group_2_0_0_0__0__Impl rule__XSwitchExpression__Group_2_0_0_0__1 )
+            // InternalSignalDSL.g:11461:2: rule__XSwitchExpression__Group_2_0_0_0__0__Impl rule__XSwitchExpression__Group_2_0_0_0__1
             {
-            pushFollow(FOLLOW_47);
+            pushFollow(FOLLOW_52);
             rule__XSwitchExpression__Group_2_0_0_0__0__Impl();
 
             state._fsp--;
@@ -37752,22 +38537,22 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_0_0_0__0__Impl"
-    // InternalSignalDSL.g:11205:1: rule__XSwitchExpression__Group_2_0_0_0__0__Impl : ( '(' ) ;
+    // InternalSignalDSL.g:11468: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:11209:1: ( ( '(' ) )
-            // InternalSignalDSL.g:11210:1: ( '(' )
+            // InternalSignalDSL.g:11472:1: ( ( '(' ) )
+            // InternalSignalDSL.g:11473:1: ( '(' )
             {
-            // InternalSignalDSL.g:11210:1: ( '(' )
-            // InternalSignalDSL.g:11211:2: '('
+            // InternalSignalDSL.g:11473:1: ( '(' )
+            // InternalSignalDSL.g:11474:2: '('
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getLeftParenthesisKeyword_2_0_0_0_0()); 
             }
-            match(input,76,FOLLOW_2); if (state.failed) return ;
+            match(input,74,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXSwitchExpressionAccess().getLeftParenthesisKeyword_2_0_0_0_0()); 
             }
@@ -37793,16 +38578,16 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_0_0_0__1"
-    // InternalSignalDSL.g:11220: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:11483: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:11224:1: ( rule__XSwitchExpression__Group_2_0_0_0__1__Impl rule__XSwitchExpression__Group_2_0_0_0__2 )
-            // InternalSignalDSL.g:11225:2: rule__XSwitchExpression__Group_2_0_0_0__1__Impl rule__XSwitchExpression__Group_2_0_0_0__2
+            // InternalSignalDSL.g:11487:1: ( rule__XSwitchExpression__Group_2_0_0_0__1__Impl rule__XSwitchExpression__Group_2_0_0_0__2 )
+            // InternalSignalDSL.g:11488:2: rule__XSwitchExpression__Group_2_0_0_0__1__Impl rule__XSwitchExpression__Group_2_0_0_0__2
             {
-            pushFollow(FOLLOW_82);
+            pushFollow(FOLLOW_87);
             rule__XSwitchExpression__Group_2_0_0_0__1__Impl();
 
             state._fsp--;
@@ -37831,23 +38616,23 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_0_0_0__1__Impl"
-    // InternalSignalDSL.g:11232:1: rule__XSwitchExpression__Group_2_0_0_0__1__Impl : ( ( rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1 ) ) ;
+    // InternalSignalDSL.g:11495: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:11236:1: ( ( ( rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1 ) ) )
-            // InternalSignalDSL.g:11237:1: ( ( rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1 ) )
+            // InternalSignalDSL.g:11499:1: ( ( ( rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1 ) ) )
+            // InternalSignalDSL.g:11500:1: ( ( rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1 ) )
             {
-            // InternalSignalDSL.g:11237:1: ( ( rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1 ) )
-            // InternalSignalDSL.g:11238:2: ( rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1 )
+            // InternalSignalDSL.g:11500:1: ( ( rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1 ) )
+            // InternalSignalDSL.g:11501:2: ( rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getDeclaredParamAssignment_2_0_0_0_1()); 
             }
-            // InternalSignalDSL.g:11239:2: ( rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1 )
-            // InternalSignalDSL.g:11239:3: rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1
+            // InternalSignalDSL.g:11502:2: ( rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1 )
+            // InternalSignalDSL.g:11502:3: rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1
             {
             pushFollow(FOLLOW_2);
             rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1();
@@ -37882,14 +38667,14 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_0_0_0__2"
-    // InternalSignalDSL.g:11247:1: rule__XSwitchExpression__Group_2_0_0_0__2 : rule__XSwitchExpression__Group_2_0_0_0__2__Impl ;
+    // InternalSignalDSL.g:11510: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:11251:1: ( rule__XSwitchExpression__Group_2_0_0_0__2__Impl )
-            // InternalSignalDSL.g:11252:2: rule__XSwitchExpression__Group_2_0_0_0__2__Impl
+            // InternalSignalDSL.g:11514:1: ( rule__XSwitchExpression__Group_2_0_0_0__2__Impl )
+            // InternalSignalDSL.g:11515:2: rule__XSwitchExpression__Group_2_0_0_0__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XSwitchExpression__Group_2_0_0_0__2__Impl();
@@ -37915,22 +38700,22 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_0_0_0__2__Impl"
-    // InternalSignalDSL.g:11258:1: rule__XSwitchExpression__Group_2_0_0_0__2__Impl : ( ':' ) ;
+    // InternalSignalDSL.g:11521: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:11262:1: ( ( ':' ) )
-            // InternalSignalDSL.g:11263:1: ( ':' )
+            // InternalSignalDSL.g:11525:1: ( ( ':' ) )
+            // InternalSignalDSL.g:11526:1: ( ':' )
             {
-            // InternalSignalDSL.g:11263:1: ( ':' )
-            // InternalSignalDSL.g:11264:2: ':'
+            // InternalSignalDSL.g:11526:1: ( ':' )
+            // InternalSignalDSL.g:11527:2: ':'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getColonKeyword_2_0_0_0_2()); 
             }
-            match(input,87,FOLLOW_2); if (state.failed) return ;
+            match(input,85,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXSwitchExpressionAccess().getColonKeyword_2_0_0_0_2()); 
             }
@@ -37956,16 +38741,16 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_1__0"
-    // InternalSignalDSL.g:11274:1: rule__XSwitchExpression__Group_2_1__0 : rule__XSwitchExpression__Group_2_1__0__Impl rule__XSwitchExpression__Group_2_1__1 ;
+    // InternalSignalDSL.g:11537: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:11278:1: ( rule__XSwitchExpression__Group_2_1__0__Impl rule__XSwitchExpression__Group_2_1__1 )
-            // InternalSignalDSL.g:11279:2: rule__XSwitchExpression__Group_2_1__0__Impl rule__XSwitchExpression__Group_2_1__1
+            // InternalSignalDSL.g:11541:1: ( rule__XSwitchExpression__Group_2_1__0__Impl rule__XSwitchExpression__Group_2_1__1 )
+            // InternalSignalDSL.g:11542:2: rule__XSwitchExpression__Group_2_1__0__Impl rule__XSwitchExpression__Group_2_1__1
             {
-            pushFollow(FOLLOW_79);
+            pushFollow(FOLLOW_84);
             rule__XSwitchExpression__Group_2_1__0__Impl();
 
             state._fsp--;
@@ -37994,27 +38779,27 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_1__0__Impl"
-    // InternalSignalDSL.g:11286:1: rule__XSwitchExpression__Group_2_1__0__Impl : ( ( rule__XSwitchExpression__Group_2_1_0__0 )? ) ;
+    // InternalSignalDSL.g:11549: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:11290:1: ( ( ( rule__XSwitchExpression__Group_2_1_0__0 )? ) )
-            // InternalSignalDSL.g:11291:1: ( ( rule__XSwitchExpression__Group_2_1_0__0 )? )
+            // InternalSignalDSL.g:11553:1: ( ( ( rule__XSwitchExpression__Group_2_1_0__0 )? ) )
+            // InternalSignalDSL.g:11554:1: ( ( rule__XSwitchExpression__Group_2_1_0__0 )? )
             {
-            // InternalSignalDSL.g:11291:1: ( ( rule__XSwitchExpression__Group_2_1_0__0 )? )
-            // InternalSignalDSL.g:11292:2: ( rule__XSwitchExpression__Group_2_1_0__0 )?
+            // InternalSignalDSL.g:11554:1: ( ( rule__XSwitchExpression__Group_2_1_0__0 )? )
+            // InternalSignalDSL.g:11555:2: ( rule__XSwitchExpression__Group_2_1_0__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getGroup_2_1_0()); 
             }
-            // InternalSignalDSL.g:11293:2: ( rule__XSwitchExpression__Group_2_1_0__0 )?
-            int alt97=2;
-            alt97 = dfa97.predict(input);
-            switch (alt97) {
+            // InternalSignalDSL.g:11556:2: ( rule__XSwitchExpression__Group_2_1_0__0 )?
+            int alt100=2;
+            alt100 = dfa100.predict(input);
+            switch (alt100) {
                 case 1 :
-                    // InternalSignalDSL.g:11293:3: rule__XSwitchExpression__Group_2_1_0__0
+                    // InternalSignalDSL.g:11556:3: rule__XSwitchExpression__Group_2_1_0__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XSwitchExpression__Group_2_1_0__0();
@@ -38052,14 +38837,14 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_1__1"
-    // InternalSignalDSL.g:11301:1: rule__XSwitchExpression__Group_2_1__1 : rule__XSwitchExpression__Group_2_1__1__Impl ;
+    // InternalSignalDSL.g:11564: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:11305:1: ( rule__XSwitchExpression__Group_2_1__1__Impl )
-            // InternalSignalDSL.g:11306:2: rule__XSwitchExpression__Group_2_1__1__Impl
+            // InternalSignalDSL.g:11568:1: ( rule__XSwitchExpression__Group_2_1__1__Impl )
+            // InternalSignalDSL.g:11569:2: rule__XSwitchExpression__Group_2_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XSwitchExpression__Group_2_1__1__Impl();
@@ -38085,23 +38870,23 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_1__1__Impl"
-    // InternalSignalDSL.g:11312:1: rule__XSwitchExpression__Group_2_1__1__Impl : ( ( rule__XSwitchExpression__SwitchAssignment_2_1_1 ) ) ;
+    // InternalSignalDSL.g:11575: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:11316:1: ( ( ( rule__XSwitchExpression__SwitchAssignment_2_1_1 ) ) )
-            // InternalSignalDSL.g:11317:1: ( ( rule__XSwitchExpression__SwitchAssignment_2_1_1 ) )
+            // InternalSignalDSL.g:11579:1: ( ( ( rule__XSwitchExpression__SwitchAssignment_2_1_1 ) ) )
+            // InternalSignalDSL.g:11580:1: ( ( rule__XSwitchExpression__SwitchAssignment_2_1_1 ) )
             {
-            // InternalSignalDSL.g:11317:1: ( ( rule__XSwitchExpression__SwitchAssignment_2_1_1 ) )
-            // InternalSignalDSL.g:11318:2: ( rule__XSwitchExpression__SwitchAssignment_2_1_1 )
+            // InternalSignalDSL.g:11580:1: ( ( rule__XSwitchExpression__SwitchAssignment_2_1_1 ) )
+            // InternalSignalDSL.g:11581:2: ( rule__XSwitchExpression__SwitchAssignment_2_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getSwitchAssignment_2_1_1()); 
             }
-            // InternalSignalDSL.g:11319:2: ( rule__XSwitchExpression__SwitchAssignment_2_1_1 )
-            // InternalSignalDSL.g:11319:3: rule__XSwitchExpression__SwitchAssignment_2_1_1
+            // InternalSignalDSL.g:11582:2: ( rule__XSwitchExpression__SwitchAssignment_2_1_1 )
+            // InternalSignalDSL.g:11582:3: rule__XSwitchExpression__SwitchAssignment_2_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XSwitchExpression__SwitchAssignment_2_1_1();
@@ -38136,14 +38921,14 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_1_0__0"
-    // InternalSignalDSL.g:11328:1: rule__XSwitchExpression__Group_2_1_0__0 : rule__XSwitchExpression__Group_2_1_0__0__Impl ;
+    // InternalSignalDSL.g:11591: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:11332:1: ( rule__XSwitchExpression__Group_2_1_0__0__Impl )
-            // InternalSignalDSL.g:11333:2: rule__XSwitchExpression__Group_2_1_0__0__Impl
+            // InternalSignalDSL.g:11595:1: ( rule__XSwitchExpression__Group_2_1_0__0__Impl )
+            // InternalSignalDSL.g:11596:2: rule__XSwitchExpression__Group_2_1_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XSwitchExpression__Group_2_1_0__0__Impl();
@@ -38169,23 +38954,23 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_1_0__0__Impl"
-    // InternalSignalDSL.g:11339:1: rule__XSwitchExpression__Group_2_1_0__0__Impl : ( ( rule__XSwitchExpression__Group_2_1_0_0__0 ) ) ;
+    // InternalSignalDSL.g:11602: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:11343:1: ( ( ( rule__XSwitchExpression__Group_2_1_0_0__0 ) ) )
-            // InternalSignalDSL.g:11344:1: ( ( rule__XSwitchExpression__Group_2_1_0_0__0 ) )
+            // InternalSignalDSL.g:11606:1: ( ( ( rule__XSwitchExpression__Group_2_1_0_0__0 ) ) )
+            // InternalSignalDSL.g:11607:1: ( ( rule__XSwitchExpression__Group_2_1_0_0__0 ) )
             {
-            // InternalSignalDSL.g:11344:1: ( ( rule__XSwitchExpression__Group_2_1_0_0__0 ) )
-            // InternalSignalDSL.g:11345:2: ( rule__XSwitchExpression__Group_2_1_0_0__0 )
+            // InternalSignalDSL.g:11607:1: ( ( rule__XSwitchExpression__Group_2_1_0_0__0 ) )
+            // InternalSignalDSL.g:11608:2: ( rule__XSwitchExpression__Group_2_1_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getGroup_2_1_0_0()); 
             }
-            // InternalSignalDSL.g:11346:2: ( rule__XSwitchExpression__Group_2_1_0_0__0 )
-            // InternalSignalDSL.g:11346:3: rule__XSwitchExpression__Group_2_1_0_0__0
+            // InternalSignalDSL.g:11609:2: ( rule__XSwitchExpression__Group_2_1_0_0__0 )
+            // InternalSignalDSL.g:11609:3: rule__XSwitchExpression__Group_2_1_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XSwitchExpression__Group_2_1_0_0__0();
@@ -38220,16 +39005,16 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_1_0_0__0"
-    // InternalSignalDSL.g:11355: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:11618: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:11359:1: ( rule__XSwitchExpression__Group_2_1_0_0__0__Impl rule__XSwitchExpression__Group_2_1_0_0__1 )
-            // InternalSignalDSL.g:11360:2: rule__XSwitchExpression__Group_2_1_0_0__0__Impl rule__XSwitchExpression__Group_2_1_0_0__1
+            // InternalSignalDSL.g:11622:1: ( rule__XSwitchExpression__Group_2_1_0_0__0__Impl rule__XSwitchExpression__Group_2_1_0_0__1 )
+            // InternalSignalDSL.g:11623:2: rule__XSwitchExpression__Group_2_1_0_0__0__Impl rule__XSwitchExpression__Group_2_1_0_0__1
             {
-            pushFollow(FOLLOW_82);
+            pushFollow(FOLLOW_87);
             rule__XSwitchExpression__Group_2_1_0_0__0__Impl();
 
             state._fsp--;
@@ -38258,23 +39043,23 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_1_0_0__0__Impl"
-    // InternalSignalDSL.g:11367:1: rule__XSwitchExpression__Group_2_1_0_0__0__Impl : ( ( rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0 ) ) ;
+    // InternalSignalDSL.g:11630: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:11371:1: ( ( ( rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0 ) ) )
-            // InternalSignalDSL.g:11372:1: ( ( rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0 ) )
+            // InternalSignalDSL.g:11634:1: ( ( ( rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0 ) ) )
+            // InternalSignalDSL.g:11635:1: ( ( rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0 ) )
             {
-            // InternalSignalDSL.g:11372:1: ( ( rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0 ) )
-            // InternalSignalDSL.g:11373:2: ( rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0 )
+            // InternalSignalDSL.g:11635:1: ( ( rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0 ) )
+            // InternalSignalDSL.g:11636:2: ( rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getDeclaredParamAssignment_2_1_0_0_0()); 
             }
-            // InternalSignalDSL.g:11374:2: ( rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0 )
-            // InternalSignalDSL.g:11374:3: rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0
+            // InternalSignalDSL.g:11637:2: ( rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0 )
+            // InternalSignalDSL.g:11637:3: rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0
             {
             pushFollow(FOLLOW_2);
             rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0();
@@ -38309,14 +39094,14 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_1_0_0__1"
-    // InternalSignalDSL.g:11382:1: rule__XSwitchExpression__Group_2_1_0_0__1 : rule__XSwitchExpression__Group_2_1_0_0__1__Impl ;
+    // InternalSignalDSL.g:11645: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:11386:1: ( rule__XSwitchExpression__Group_2_1_0_0__1__Impl )
-            // InternalSignalDSL.g:11387:2: rule__XSwitchExpression__Group_2_1_0_0__1__Impl
+            // InternalSignalDSL.g:11649:1: ( rule__XSwitchExpression__Group_2_1_0_0__1__Impl )
+            // InternalSignalDSL.g:11650:2: rule__XSwitchExpression__Group_2_1_0_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XSwitchExpression__Group_2_1_0_0__1__Impl();
@@ -38342,22 +39127,22 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_1_0_0__1__Impl"
-    // InternalSignalDSL.g:11393:1: rule__XSwitchExpression__Group_2_1_0_0__1__Impl : ( ':' ) ;
+    // InternalSignalDSL.g:11656: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:11397:1: ( ( ':' ) )
-            // InternalSignalDSL.g:11398:1: ( ':' )
+            // InternalSignalDSL.g:11660:1: ( ( ':' ) )
+            // InternalSignalDSL.g:11661:1: ( ':' )
             {
-            // InternalSignalDSL.g:11398:1: ( ':' )
-            // InternalSignalDSL.g:11399:2: ':'
+            // InternalSignalDSL.g:11661:1: ( ':' )
+            // InternalSignalDSL.g:11662:2: ':'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getColonKeyword_2_1_0_0_1()); 
             }
-            match(input,87,FOLLOW_2); if (state.failed) return ;
+            match(input,85,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXSwitchExpressionAccess().getColonKeyword_2_1_0_0_1()); 
             }
@@ -38383,16 +39168,16 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_5__0"
-    // InternalSignalDSL.g:11409:1: rule__XSwitchExpression__Group_5__0 : rule__XSwitchExpression__Group_5__0__Impl rule__XSwitchExpression__Group_5__1 ;
+    // InternalSignalDSL.g:11672: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:11413:1: ( rule__XSwitchExpression__Group_5__0__Impl rule__XSwitchExpression__Group_5__1 )
-            // InternalSignalDSL.g:11414:2: rule__XSwitchExpression__Group_5__0__Impl rule__XSwitchExpression__Group_5__1
+            // InternalSignalDSL.g:11676:1: ( rule__XSwitchExpression__Group_5__0__Impl rule__XSwitchExpression__Group_5__1 )
+            // InternalSignalDSL.g:11677:2: rule__XSwitchExpression__Group_5__0__Impl rule__XSwitchExpression__Group_5__1
             {
-            pushFollow(FOLLOW_82);
+            pushFollow(FOLLOW_87);
             rule__XSwitchExpression__Group_5__0__Impl();
 
             state._fsp--;
@@ -38421,22 +39206,22 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_5__0__Impl"
-    // InternalSignalDSL.g:11421:1: rule__XSwitchExpression__Group_5__0__Impl : ( 'default' ) ;
+    // InternalSignalDSL.g:11684: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:11425:1: ( ( 'default' ) )
-            // InternalSignalDSL.g:11426:1: ( 'default' )
+            // InternalSignalDSL.g:11688:1: ( ( 'default' ) )
+            // InternalSignalDSL.g:11689:1: ( 'default' )
             {
-            // InternalSignalDSL.g:11426:1: ( 'default' )
-            // InternalSignalDSL.g:11427:2: 'default'
+            // InternalSignalDSL.g:11689:1: ( 'default' )
+            // InternalSignalDSL.g:11690:2: 'default'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getDefaultKeyword_5_0()); 
             }
-            match(input,88,FOLLOW_2); if (state.failed) return ;
+            match(input,86,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXSwitchExpressionAccess().getDefaultKeyword_5_0()); 
             }
@@ -38462,16 +39247,16 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_5__1"
-    // InternalSignalDSL.g:11436:1: rule__XSwitchExpression__Group_5__1 : rule__XSwitchExpression__Group_5__1__Impl rule__XSwitchExpression__Group_5__2 ;
+    // InternalSignalDSL.g:11699: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:11440:1: ( rule__XSwitchExpression__Group_5__1__Impl rule__XSwitchExpression__Group_5__2 )
-            // InternalSignalDSL.g:11441:2: rule__XSwitchExpression__Group_5__1__Impl rule__XSwitchExpression__Group_5__2
+            // InternalSignalDSL.g:11703:1: ( rule__XSwitchExpression__Group_5__1__Impl rule__XSwitchExpression__Group_5__2 )
+            // InternalSignalDSL.g:11704:2: rule__XSwitchExpression__Group_5__1__Impl rule__XSwitchExpression__Group_5__2
             {
-            pushFollow(FOLLOW_30);
+            pushFollow(FOLLOW_35);
             rule__XSwitchExpression__Group_5__1__Impl();
 
             state._fsp--;
@@ -38500,22 +39285,22 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_5__1__Impl"
-    // InternalSignalDSL.g:11448:1: rule__XSwitchExpression__Group_5__1__Impl : ( ':' ) ;
+    // InternalSignalDSL.g:11711:1: rule__XSwitchExpression__Group_5__1__Impl : ( ':' ) ;
     public final void rule__XSwitchExpression__Group_5__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:11452:1: ( ( ':' ) )
-            // InternalSignalDSL.g:11453:1: ( ':' )
+            // InternalSignalDSL.g:11715:1: ( ( ':' ) )
+            // InternalSignalDSL.g:11716:1: ( ':' )
             {
-            // InternalSignalDSL.g:11453:1: ( ':' )
-            // InternalSignalDSL.g:11454:2: ':'
+            // InternalSignalDSL.g:11716:1: ( ':' )
+            // InternalSignalDSL.g:11717:2: ':'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getColonKeyword_5_1()); 
             }
-            match(input,87,FOLLOW_2); if (state.failed) return ;
+            match(input,85,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXSwitchExpressionAccess().getColonKeyword_5_1()); 
             }
@@ -38541,14 +39326,14 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_5__2"
-    // InternalSignalDSL.g:11463:1: rule__XSwitchExpression__Group_5__2 : rule__XSwitchExpression__Group_5__2__Impl ;
+    // InternalSignalDSL.g:11726: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:11467:1: ( rule__XSwitchExpression__Group_5__2__Impl )
-            // InternalSignalDSL.g:11468:2: rule__XSwitchExpression__Group_5__2__Impl
+            // InternalSignalDSL.g:11730:1: ( rule__XSwitchExpression__Group_5__2__Impl )
+            // InternalSignalDSL.g:11731:2: rule__XSwitchExpression__Group_5__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XSwitchExpression__Group_5__2__Impl();
@@ -38574,23 +39359,23 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_5__2__Impl"
-    // InternalSignalDSL.g:11474:1: rule__XSwitchExpression__Group_5__2__Impl : ( ( rule__XSwitchExpression__DefaultAssignment_5_2 ) ) ;
+    // InternalSignalDSL.g:11737: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:11478:1: ( ( ( rule__XSwitchExpression__DefaultAssignment_5_2 ) ) )
-            // InternalSignalDSL.g:11479:1: ( ( rule__XSwitchExpression__DefaultAssignment_5_2 ) )
+            // InternalSignalDSL.g:11741:1: ( ( ( rule__XSwitchExpression__DefaultAssignment_5_2 ) ) )
+            // InternalSignalDSL.g:11742:1: ( ( rule__XSwitchExpression__DefaultAssignment_5_2 ) )
             {
-            // InternalSignalDSL.g:11479:1: ( ( rule__XSwitchExpression__DefaultAssignment_5_2 ) )
-            // InternalSignalDSL.g:11480:2: ( rule__XSwitchExpression__DefaultAssignment_5_2 )
+            // InternalSignalDSL.g:11742:1: ( ( rule__XSwitchExpression__DefaultAssignment_5_2 ) )
+            // InternalSignalDSL.g:11743:2: ( rule__XSwitchExpression__DefaultAssignment_5_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getDefaultAssignment_5_2()); 
             }
-            // InternalSignalDSL.g:11481:2: ( rule__XSwitchExpression__DefaultAssignment_5_2 )
-            // InternalSignalDSL.g:11481:3: rule__XSwitchExpression__DefaultAssignment_5_2
+            // InternalSignalDSL.g:11744:2: ( rule__XSwitchExpression__DefaultAssignment_5_2 )
+            // InternalSignalDSL.g:11744:3: rule__XSwitchExpression__DefaultAssignment_5_2
             {
             pushFollow(FOLLOW_2);
             rule__XSwitchExpression__DefaultAssignment_5_2();
@@ -38625,16 +39410,16 @@
 
 
     // $ANTLR start "rule__XCasePart__Group__0"
-    // InternalSignalDSL.g:11490:1: rule__XCasePart__Group__0 : rule__XCasePart__Group__0__Impl rule__XCasePart__Group__1 ;
+    // InternalSignalDSL.g:11753: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:11494:1: ( rule__XCasePart__Group__0__Impl rule__XCasePart__Group__1 )
-            // InternalSignalDSL.g:11495:2: rule__XCasePart__Group__0__Impl rule__XCasePart__Group__1
+            // InternalSignalDSL.g:11757:1: ( rule__XCasePart__Group__0__Impl rule__XCasePart__Group__1 )
+            // InternalSignalDSL.g:11758:2: rule__XCasePart__Group__0__Impl rule__XCasePart__Group__1
             {
-            pushFollow(FOLLOW_83);
+            pushFollow(FOLLOW_88);
             rule__XCasePart__Group__0__Impl();
 
             state._fsp--;
@@ -38663,23 +39448,23 @@
 
 
     // $ANTLR start "rule__XCasePart__Group__0__Impl"
-    // InternalSignalDSL.g:11502:1: rule__XCasePart__Group__0__Impl : ( () ) ;
+    // InternalSignalDSL.g:11765:1: rule__XCasePart__Group__0__Impl : ( () ) ;
     public final void rule__XCasePart__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:11506:1: ( ( () ) )
-            // InternalSignalDSL.g:11507:1: ( () )
+            // InternalSignalDSL.g:11769:1: ( ( () ) )
+            // InternalSignalDSL.g:11770:1: ( () )
             {
-            // InternalSignalDSL.g:11507:1: ( () )
-            // InternalSignalDSL.g:11508:2: ()
+            // InternalSignalDSL.g:11770:1: ( () )
+            // InternalSignalDSL.g:11771:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCasePartAccess().getXCasePartAction_0()); 
             }
-            // InternalSignalDSL.g:11509:2: ()
-            // InternalSignalDSL.g:11509:3: 
+            // InternalSignalDSL.g:11772:2: ()
+            // InternalSignalDSL.g:11772:3: 
             {
             }
 
@@ -38704,16 +39489,16 @@
 
 
     // $ANTLR start "rule__XCasePart__Group__1"
-    // InternalSignalDSL.g:11517:1: rule__XCasePart__Group__1 : rule__XCasePart__Group__1__Impl rule__XCasePart__Group__2 ;
+    // InternalSignalDSL.g:11780: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:11521:1: ( rule__XCasePart__Group__1__Impl rule__XCasePart__Group__2 )
-            // InternalSignalDSL.g:11522:2: rule__XCasePart__Group__1__Impl rule__XCasePart__Group__2
+            // InternalSignalDSL.g:11784:1: ( rule__XCasePart__Group__1__Impl rule__XCasePart__Group__2 )
+            // InternalSignalDSL.g:11785:2: rule__XCasePart__Group__1__Impl rule__XCasePart__Group__2
             {
-            pushFollow(FOLLOW_83);
+            pushFollow(FOLLOW_88);
             rule__XCasePart__Group__1__Impl();
 
             state._fsp--;
@@ -38742,31 +39527,31 @@
 
 
     // $ANTLR start "rule__XCasePart__Group__1__Impl"
-    // InternalSignalDSL.g:11529:1: rule__XCasePart__Group__1__Impl : ( ( rule__XCasePart__TypeGuardAssignment_1 )? ) ;
+    // InternalSignalDSL.g:11792: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:11533:1: ( ( ( rule__XCasePart__TypeGuardAssignment_1 )? ) )
-            // InternalSignalDSL.g:11534:1: ( ( rule__XCasePart__TypeGuardAssignment_1 )? )
+            // InternalSignalDSL.g:11796:1: ( ( ( rule__XCasePart__TypeGuardAssignment_1 )? ) )
+            // InternalSignalDSL.g:11797:1: ( ( rule__XCasePart__TypeGuardAssignment_1 )? )
             {
-            // InternalSignalDSL.g:11534:1: ( ( rule__XCasePart__TypeGuardAssignment_1 )? )
-            // InternalSignalDSL.g:11535:2: ( rule__XCasePart__TypeGuardAssignment_1 )?
+            // InternalSignalDSL.g:11797:1: ( ( rule__XCasePart__TypeGuardAssignment_1 )? )
+            // InternalSignalDSL.g:11798:2: ( rule__XCasePart__TypeGuardAssignment_1 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCasePartAccess().getTypeGuardAssignment_1()); 
             }
-            // InternalSignalDSL.g:11536:2: ( rule__XCasePart__TypeGuardAssignment_1 )?
-            int alt98=2;
-            int LA98_0 = input.LA(1);
+            // InternalSignalDSL.g:11799:2: ( rule__XCasePart__TypeGuardAssignment_1 )?
+            int alt101=2;
+            int LA101_0 = input.LA(1);
 
-            if ( (LA98_0==RULE_ID||LA98_0==31||LA98_0==76) ) {
-                alt98=1;
+            if ( (LA101_0==RULE_ID||LA101_0==31||LA101_0==74) ) {
+                alt101=1;
             }
-            switch (alt98) {
+            switch (alt101) {
                 case 1 :
-                    // InternalSignalDSL.g:11536:3: rule__XCasePart__TypeGuardAssignment_1
+                    // InternalSignalDSL.g:11799:3: rule__XCasePart__TypeGuardAssignment_1
                     {
                     pushFollow(FOLLOW_2);
                     rule__XCasePart__TypeGuardAssignment_1();
@@ -38804,16 +39589,16 @@
 
 
     // $ANTLR start "rule__XCasePart__Group__2"
-    // InternalSignalDSL.g:11544:1: rule__XCasePart__Group__2 : rule__XCasePart__Group__2__Impl rule__XCasePart__Group__3 ;
+    // InternalSignalDSL.g:11807: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:11548:1: ( rule__XCasePart__Group__2__Impl rule__XCasePart__Group__3 )
-            // InternalSignalDSL.g:11549:2: rule__XCasePart__Group__2__Impl rule__XCasePart__Group__3
+            // InternalSignalDSL.g:11811:1: ( rule__XCasePart__Group__2__Impl rule__XCasePart__Group__3 )
+            // InternalSignalDSL.g:11812:2: rule__XCasePart__Group__2__Impl rule__XCasePart__Group__3
             {
-            pushFollow(FOLLOW_83);
+            pushFollow(FOLLOW_88);
             rule__XCasePart__Group__2__Impl();
 
             state._fsp--;
@@ -38842,31 +39627,31 @@
 
 
     // $ANTLR start "rule__XCasePart__Group__2__Impl"
-    // InternalSignalDSL.g:11556:1: rule__XCasePart__Group__2__Impl : ( ( rule__XCasePart__Group_2__0 )? ) ;
+    // InternalSignalDSL.g:11819: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:11560:1: ( ( ( rule__XCasePart__Group_2__0 )? ) )
-            // InternalSignalDSL.g:11561:1: ( ( rule__XCasePart__Group_2__0 )? )
+            // InternalSignalDSL.g:11823:1: ( ( ( rule__XCasePart__Group_2__0 )? ) )
+            // InternalSignalDSL.g:11824:1: ( ( rule__XCasePart__Group_2__0 )? )
             {
-            // InternalSignalDSL.g:11561:1: ( ( rule__XCasePart__Group_2__0 )? )
-            // InternalSignalDSL.g:11562:2: ( rule__XCasePart__Group_2__0 )?
+            // InternalSignalDSL.g:11824:1: ( ( rule__XCasePart__Group_2__0 )? )
+            // InternalSignalDSL.g:11825:2: ( rule__XCasePart__Group_2__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCasePartAccess().getGroup_2()); 
             }
-            // InternalSignalDSL.g:11563:2: ( rule__XCasePart__Group_2__0 )?
-            int alt99=2;
-            int LA99_0 = input.LA(1);
+            // InternalSignalDSL.g:11826:2: ( rule__XCasePart__Group_2__0 )?
+            int alt102=2;
+            int LA102_0 = input.LA(1);
 
-            if ( (LA99_0==89) ) {
-                alt99=1;
+            if ( (LA102_0==87) ) {
+                alt102=1;
             }
-            switch (alt99) {
+            switch (alt102) {
                 case 1 :
-                    // InternalSignalDSL.g:11563:3: rule__XCasePart__Group_2__0
+                    // InternalSignalDSL.g:11826:3: rule__XCasePart__Group_2__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XCasePart__Group_2__0();
@@ -38904,14 +39689,14 @@
 
 
     // $ANTLR start "rule__XCasePart__Group__3"
-    // InternalSignalDSL.g:11571:1: rule__XCasePart__Group__3 : rule__XCasePart__Group__3__Impl ;
+    // InternalSignalDSL.g:11834: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:11575:1: ( rule__XCasePart__Group__3__Impl )
-            // InternalSignalDSL.g:11576:2: rule__XCasePart__Group__3__Impl
+            // InternalSignalDSL.g:11838:1: ( rule__XCasePart__Group__3__Impl )
+            // InternalSignalDSL.g:11839:2: rule__XCasePart__Group__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XCasePart__Group__3__Impl();
@@ -38937,23 +39722,23 @@
 
 
     // $ANTLR start "rule__XCasePart__Group__3__Impl"
-    // InternalSignalDSL.g:11582:1: rule__XCasePart__Group__3__Impl : ( ( rule__XCasePart__Alternatives_3 ) ) ;
+    // InternalSignalDSL.g:11845: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:11586:1: ( ( ( rule__XCasePart__Alternatives_3 ) ) )
-            // InternalSignalDSL.g:11587:1: ( ( rule__XCasePart__Alternatives_3 ) )
+            // InternalSignalDSL.g:11849:1: ( ( ( rule__XCasePart__Alternatives_3 ) ) )
+            // InternalSignalDSL.g:11850:1: ( ( rule__XCasePart__Alternatives_3 ) )
             {
-            // InternalSignalDSL.g:11587:1: ( ( rule__XCasePart__Alternatives_3 ) )
-            // InternalSignalDSL.g:11588:2: ( rule__XCasePart__Alternatives_3 )
+            // InternalSignalDSL.g:11850:1: ( ( rule__XCasePart__Alternatives_3 ) )
+            // InternalSignalDSL.g:11851:2: ( rule__XCasePart__Alternatives_3 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCasePartAccess().getAlternatives_3()); 
             }
-            // InternalSignalDSL.g:11589:2: ( rule__XCasePart__Alternatives_3 )
-            // InternalSignalDSL.g:11589:3: rule__XCasePart__Alternatives_3
+            // InternalSignalDSL.g:11852:2: ( rule__XCasePart__Alternatives_3 )
+            // InternalSignalDSL.g:11852:3: rule__XCasePart__Alternatives_3
             {
             pushFollow(FOLLOW_2);
             rule__XCasePart__Alternatives_3();
@@ -38988,16 +39773,16 @@
 
 
     // $ANTLR start "rule__XCasePart__Group_2__0"
-    // InternalSignalDSL.g:11598:1: rule__XCasePart__Group_2__0 : rule__XCasePart__Group_2__0__Impl rule__XCasePart__Group_2__1 ;
+    // InternalSignalDSL.g:11861: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:11602:1: ( rule__XCasePart__Group_2__0__Impl rule__XCasePart__Group_2__1 )
-            // InternalSignalDSL.g:11603:2: rule__XCasePart__Group_2__0__Impl rule__XCasePart__Group_2__1
+            // InternalSignalDSL.g:11865:1: ( rule__XCasePart__Group_2__0__Impl rule__XCasePart__Group_2__1 )
+            // InternalSignalDSL.g:11866:2: rule__XCasePart__Group_2__0__Impl rule__XCasePart__Group_2__1
             {
-            pushFollow(FOLLOW_30);
+            pushFollow(FOLLOW_35);
             rule__XCasePart__Group_2__0__Impl();
 
             state._fsp--;
@@ -39026,22 +39811,22 @@
 
 
     // $ANTLR start "rule__XCasePart__Group_2__0__Impl"
-    // InternalSignalDSL.g:11610:1: rule__XCasePart__Group_2__0__Impl : ( 'case' ) ;
+    // InternalSignalDSL.g:11873: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:11614:1: ( ( 'case' ) )
-            // InternalSignalDSL.g:11615:1: ( 'case' )
+            // InternalSignalDSL.g:11877:1: ( ( 'case' ) )
+            // InternalSignalDSL.g:11878:1: ( 'case' )
             {
-            // InternalSignalDSL.g:11615:1: ( 'case' )
-            // InternalSignalDSL.g:11616:2: 'case'
+            // InternalSignalDSL.g:11878:1: ( 'case' )
+            // InternalSignalDSL.g:11879:2: 'case'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCasePartAccess().getCaseKeyword_2_0()); 
             }
-            match(input,89,FOLLOW_2); if (state.failed) return ;
+            match(input,87,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXCasePartAccess().getCaseKeyword_2_0()); 
             }
@@ -39067,14 +39852,14 @@
 
 
     // $ANTLR start "rule__XCasePart__Group_2__1"
-    // InternalSignalDSL.g:11625:1: rule__XCasePart__Group_2__1 : rule__XCasePart__Group_2__1__Impl ;
+    // InternalSignalDSL.g:11888: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:11629:1: ( rule__XCasePart__Group_2__1__Impl )
-            // InternalSignalDSL.g:11630:2: rule__XCasePart__Group_2__1__Impl
+            // InternalSignalDSL.g:11892:1: ( rule__XCasePart__Group_2__1__Impl )
+            // InternalSignalDSL.g:11893:2: rule__XCasePart__Group_2__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XCasePart__Group_2__1__Impl();
@@ -39100,23 +39885,23 @@
 
 
     // $ANTLR start "rule__XCasePart__Group_2__1__Impl"
-    // InternalSignalDSL.g:11636:1: rule__XCasePart__Group_2__1__Impl : ( ( rule__XCasePart__CaseAssignment_2_1 ) ) ;
+    // InternalSignalDSL.g:11899: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:11640:1: ( ( ( rule__XCasePart__CaseAssignment_2_1 ) ) )
-            // InternalSignalDSL.g:11641:1: ( ( rule__XCasePart__CaseAssignment_2_1 ) )
+            // InternalSignalDSL.g:11903:1: ( ( ( rule__XCasePart__CaseAssignment_2_1 ) ) )
+            // InternalSignalDSL.g:11904:1: ( ( rule__XCasePart__CaseAssignment_2_1 ) )
             {
-            // InternalSignalDSL.g:11641:1: ( ( rule__XCasePart__CaseAssignment_2_1 ) )
-            // InternalSignalDSL.g:11642:2: ( rule__XCasePart__CaseAssignment_2_1 )
+            // InternalSignalDSL.g:11904:1: ( ( rule__XCasePart__CaseAssignment_2_1 ) )
+            // InternalSignalDSL.g:11905:2: ( rule__XCasePart__CaseAssignment_2_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCasePartAccess().getCaseAssignment_2_1()); 
             }
-            // InternalSignalDSL.g:11643:2: ( rule__XCasePart__CaseAssignment_2_1 )
-            // InternalSignalDSL.g:11643:3: rule__XCasePart__CaseAssignment_2_1
+            // InternalSignalDSL.g:11906:2: ( rule__XCasePart__CaseAssignment_2_1 )
+            // InternalSignalDSL.g:11906:3: rule__XCasePart__CaseAssignment_2_1
             {
             pushFollow(FOLLOW_2);
             rule__XCasePart__CaseAssignment_2_1();
@@ -39151,16 +39936,16 @@
 
 
     // $ANTLR start "rule__XCasePart__Group_3_0__0"
-    // InternalSignalDSL.g:11652:1: rule__XCasePart__Group_3_0__0 : rule__XCasePart__Group_3_0__0__Impl rule__XCasePart__Group_3_0__1 ;
+    // InternalSignalDSL.g:11915: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:11656:1: ( rule__XCasePart__Group_3_0__0__Impl rule__XCasePart__Group_3_0__1 )
-            // InternalSignalDSL.g:11657:2: rule__XCasePart__Group_3_0__0__Impl rule__XCasePart__Group_3_0__1
+            // InternalSignalDSL.g:11919:1: ( rule__XCasePart__Group_3_0__0__Impl rule__XCasePart__Group_3_0__1 )
+            // InternalSignalDSL.g:11920:2: rule__XCasePart__Group_3_0__0__Impl rule__XCasePart__Group_3_0__1
             {
-            pushFollow(FOLLOW_30);
+            pushFollow(FOLLOW_35);
             rule__XCasePart__Group_3_0__0__Impl();
 
             state._fsp--;
@@ -39189,22 +39974,22 @@
 
 
     // $ANTLR start "rule__XCasePart__Group_3_0__0__Impl"
-    // InternalSignalDSL.g:11664:1: rule__XCasePart__Group_3_0__0__Impl : ( ':' ) ;
+    // InternalSignalDSL.g:11927: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:11668:1: ( ( ':' ) )
-            // InternalSignalDSL.g:11669:1: ( ':' )
+            // InternalSignalDSL.g:11931:1: ( ( ':' ) )
+            // InternalSignalDSL.g:11932:1: ( ':' )
             {
-            // InternalSignalDSL.g:11669:1: ( ':' )
-            // InternalSignalDSL.g:11670:2: ':'
+            // InternalSignalDSL.g:11932:1: ( ':' )
+            // InternalSignalDSL.g:11933:2: ':'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCasePartAccess().getColonKeyword_3_0_0()); 
             }
-            match(input,87,FOLLOW_2); if (state.failed) return ;
+            match(input,85,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXCasePartAccess().getColonKeyword_3_0_0()); 
             }
@@ -39230,14 +40015,14 @@
 
 
     // $ANTLR start "rule__XCasePart__Group_3_0__1"
-    // InternalSignalDSL.g:11679:1: rule__XCasePart__Group_3_0__1 : rule__XCasePart__Group_3_0__1__Impl ;
+    // InternalSignalDSL.g:11942: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:11683:1: ( rule__XCasePart__Group_3_0__1__Impl )
-            // InternalSignalDSL.g:11684:2: rule__XCasePart__Group_3_0__1__Impl
+            // InternalSignalDSL.g:11946:1: ( rule__XCasePart__Group_3_0__1__Impl )
+            // InternalSignalDSL.g:11947:2: rule__XCasePart__Group_3_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XCasePart__Group_3_0__1__Impl();
@@ -39263,23 +40048,23 @@
 
 
     // $ANTLR start "rule__XCasePart__Group_3_0__1__Impl"
-    // InternalSignalDSL.g:11690:1: rule__XCasePart__Group_3_0__1__Impl : ( ( rule__XCasePart__ThenAssignment_3_0_1 ) ) ;
+    // InternalSignalDSL.g:11953: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:11694:1: ( ( ( rule__XCasePart__ThenAssignment_3_0_1 ) ) )
-            // InternalSignalDSL.g:11695:1: ( ( rule__XCasePart__ThenAssignment_3_0_1 ) )
+            // InternalSignalDSL.g:11957:1: ( ( ( rule__XCasePart__ThenAssignment_3_0_1 ) ) )
+            // InternalSignalDSL.g:11958:1: ( ( rule__XCasePart__ThenAssignment_3_0_1 ) )
             {
-            // InternalSignalDSL.g:11695:1: ( ( rule__XCasePart__ThenAssignment_3_0_1 ) )
-            // InternalSignalDSL.g:11696:2: ( rule__XCasePart__ThenAssignment_3_0_1 )
+            // InternalSignalDSL.g:11958:1: ( ( rule__XCasePart__ThenAssignment_3_0_1 ) )
+            // InternalSignalDSL.g:11959:2: ( rule__XCasePart__ThenAssignment_3_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCasePartAccess().getThenAssignment_3_0_1()); 
             }
-            // InternalSignalDSL.g:11697:2: ( rule__XCasePart__ThenAssignment_3_0_1 )
-            // InternalSignalDSL.g:11697:3: rule__XCasePart__ThenAssignment_3_0_1
+            // InternalSignalDSL.g:11960:2: ( rule__XCasePart__ThenAssignment_3_0_1 )
+            // InternalSignalDSL.g:11960:3: rule__XCasePart__ThenAssignment_3_0_1
             {
             pushFollow(FOLLOW_2);
             rule__XCasePart__ThenAssignment_3_0_1();
@@ -39314,16 +40099,16 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__Group__0"
-    // InternalSignalDSL.g:11706:1: rule__XForLoopExpression__Group__0 : rule__XForLoopExpression__Group__0__Impl rule__XForLoopExpression__Group__1 ;
+    // InternalSignalDSL.g:11969: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:11710:1: ( rule__XForLoopExpression__Group__0__Impl rule__XForLoopExpression__Group__1 )
-            // InternalSignalDSL.g:11711:2: rule__XForLoopExpression__Group__0__Impl rule__XForLoopExpression__Group__1
+            // InternalSignalDSL.g:11973:1: ( rule__XForLoopExpression__Group__0__Impl rule__XForLoopExpression__Group__1 )
+            // InternalSignalDSL.g:11974:2: rule__XForLoopExpression__Group__0__Impl rule__XForLoopExpression__Group__1
             {
-            pushFollow(FOLLOW_30);
+            pushFollow(FOLLOW_35);
             rule__XForLoopExpression__Group__0__Impl();
 
             state._fsp--;
@@ -39352,23 +40137,23 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__Group__0__Impl"
-    // InternalSignalDSL.g:11718:1: rule__XForLoopExpression__Group__0__Impl : ( ( rule__XForLoopExpression__Group_0__0 ) ) ;
+    // InternalSignalDSL.g:11981: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:11722:1: ( ( ( rule__XForLoopExpression__Group_0__0 ) ) )
-            // InternalSignalDSL.g:11723:1: ( ( rule__XForLoopExpression__Group_0__0 ) )
+            // InternalSignalDSL.g:11985:1: ( ( ( rule__XForLoopExpression__Group_0__0 ) ) )
+            // InternalSignalDSL.g:11986:1: ( ( rule__XForLoopExpression__Group_0__0 ) )
             {
-            // InternalSignalDSL.g:11723:1: ( ( rule__XForLoopExpression__Group_0__0 ) )
-            // InternalSignalDSL.g:11724:2: ( rule__XForLoopExpression__Group_0__0 )
+            // InternalSignalDSL.g:11986:1: ( ( rule__XForLoopExpression__Group_0__0 ) )
+            // InternalSignalDSL.g:11987:2: ( rule__XForLoopExpression__Group_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXForLoopExpressionAccess().getGroup_0()); 
             }
-            // InternalSignalDSL.g:11725:2: ( rule__XForLoopExpression__Group_0__0 )
-            // InternalSignalDSL.g:11725:3: rule__XForLoopExpression__Group_0__0
+            // InternalSignalDSL.g:11988:2: ( rule__XForLoopExpression__Group_0__0 )
+            // InternalSignalDSL.g:11988:3: rule__XForLoopExpression__Group_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XForLoopExpression__Group_0__0();
@@ -39403,16 +40188,16 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__Group__1"
-    // InternalSignalDSL.g:11733:1: rule__XForLoopExpression__Group__1 : rule__XForLoopExpression__Group__1__Impl rule__XForLoopExpression__Group__2 ;
+    // InternalSignalDSL.g:11996: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:11737:1: ( rule__XForLoopExpression__Group__1__Impl rule__XForLoopExpression__Group__2 )
-            // InternalSignalDSL.g:11738:2: rule__XForLoopExpression__Group__1__Impl rule__XForLoopExpression__Group__2
+            // InternalSignalDSL.g:12000:1: ( rule__XForLoopExpression__Group__1__Impl rule__XForLoopExpression__Group__2 )
+            // InternalSignalDSL.g:12001:2: rule__XForLoopExpression__Group__1__Impl rule__XForLoopExpression__Group__2
             {
-            pushFollow(FOLLOW_75);
+            pushFollow(FOLLOW_80);
             rule__XForLoopExpression__Group__1__Impl();
 
             state._fsp--;
@@ -39441,23 +40226,23 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__Group__1__Impl"
-    // InternalSignalDSL.g:11745:1: rule__XForLoopExpression__Group__1__Impl : ( ( rule__XForLoopExpression__ForExpressionAssignment_1 ) ) ;
+    // InternalSignalDSL.g:12008: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:11749:1: ( ( ( rule__XForLoopExpression__ForExpressionAssignment_1 ) ) )
-            // InternalSignalDSL.g:11750:1: ( ( rule__XForLoopExpression__ForExpressionAssignment_1 ) )
+            // InternalSignalDSL.g:12012:1: ( ( ( rule__XForLoopExpression__ForExpressionAssignment_1 ) ) )
+            // InternalSignalDSL.g:12013:1: ( ( rule__XForLoopExpression__ForExpressionAssignment_1 ) )
             {
-            // InternalSignalDSL.g:11750:1: ( ( rule__XForLoopExpression__ForExpressionAssignment_1 ) )
-            // InternalSignalDSL.g:11751:2: ( rule__XForLoopExpression__ForExpressionAssignment_1 )
+            // InternalSignalDSL.g:12013:1: ( ( rule__XForLoopExpression__ForExpressionAssignment_1 ) )
+            // InternalSignalDSL.g:12014:2: ( rule__XForLoopExpression__ForExpressionAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXForLoopExpressionAccess().getForExpressionAssignment_1()); 
             }
-            // InternalSignalDSL.g:11752:2: ( rule__XForLoopExpression__ForExpressionAssignment_1 )
-            // InternalSignalDSL.g:11752:3: rule__XForLoopExpression__ForExpressionAssignment_1
+            // InternalSignalDSL.g:12015:2: ( rule__XForLoopExpression__ForExpressionAssignment_1 )
+            // InternalSignalDSL.g:12015:3: rule__XForLoopExpression__ForExpressionAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__XForLoopExpression__ForExpressionAssignment_1();
@@ -39492,16 +40277,16 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__Group__2"
-    // InternalSignalDSL.g:11760:1: rule__XForLoopExpression__Group__2 : rule__XForLoopExpression__Group__2__Impl rule__XForLoopExpression__Group__3 ;
+    // InternalSignalDSL.g:12023: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:11764:1: ( rule__XForLoopExpression__Group__2__Impl rule__XForLoopExpression__Group__3 )
-            // InternalSignalDSL.g:11765:2: rule__XForLoopExpression__Group__2__Impl rule__XForLoopExpression__Group__3
+            // InternalSignalDSL.g:12027:1: ( rule__XForLoopExpression__Group__2__Impl rule__XForLoopExpression__Group__3 )
+            // InternalSignalDSL.g:12028:2: rule__XForLoopExpression__Group__2__Impl rule__XForLoopExpression__Group__3
             {
-            pushFollow(FOLLOW_30);
+            pushFollow(FOLLOW_35);
             rule__XForLoopExpression__Group__2__Impl();
 
             state._fsp--;
@@ -39530,22 +40315,22 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__Group__2__Impl"
-    // InternalSignalDSL.g:11772:1: rule__XForLoopExpression__Group__2__Impl : ( ')' ) ;
+    // InternalSignalDSL.g:12035:1: rule__XForLoopExpression__Group__2__Impl : ( ')' ) ;
     public final void rule__XForLoopExpression__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:11776:1: ( ( ')' ) )
-            // InternalSignalDSL.g:11777:1: ( ')' )
+            // InternalSignalDSL.g:12039:1: ( ( ')' ) )
+            // InternalSignalDSL.g:12040:1: ( ')' )
             {
-            // InternalSignalDSL.g:11777:1: ( ')' )
-            // InternalSignalDSL.g:11778:2: ')'
+            // InternalSignalDSL.g:12040:1: ( ')' )
+            // InternalSignalDSL.g:12041:2: ')'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXForLoopExpressionAccess().getRightParenthesisKeyword_2()); 
             }
-            match(input,77,FOLLOW_2); if (state.failed) return ;
+            match(input,75,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXForLoopExpressionAccess().getRightParenthesisKeyword_2()); 
             }
@@ -39571,14 +40356,14 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__Group__3"
-    // InternalSignalDSL.g:11787:1: rule__XForLoopExpression__Group__3 : rule__XForLoopExpression__Group__3__Impl ;
+    // InternalSignalDSL.g:12050: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:11791:1: ( rule__XForLoopExpression__Group__3__Impl )
-            // InternalSignalDSL.g:11792:2: rule__XForLoopExpression__Group__3__Impl
+            // InternalSignalDSL.g:12054:1: ( rule__XForLoopExpression__Group__3__Impl )
+            // InternalSignalDSL.g:12055:2: rule__XForLoopExpression__Group__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XForLoopExpression__Group__3__Impl();
@@ -39604,23 +40389,23 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__Group__3__Impl"
-    // InternalSignalDSL.g:11798:1: rule__XForLoopExpression__Group__3__Impl : ( ( rule__XForLoopExpression__EachExpressionAssignment_3 ) ) ;
+    // InternalSignalDSL.g:12061: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:11802:1: ( ( ( rule__XForLoopExpression__EachExpressionAssignment_3 ) ) )
-            // InternalSignalDSL.g:11803:1: ( ( rule__XForLoopExpression__EachExpressionAssignment_3 ) )
+            // InternalSignalDSL.g:12065:1: ( ( ( rule__XForLoopExpression__EachExpressionAssignment_3 ) ) )
+            // InternalSignalDSL.g:12066:1: ( ( rule__XForLoopExpression__EachExpressionAssignment_3 ) )
             {
-            // InternalSignalDSL.g:11803:1: ( ( rule__XForLoopExpression__EachExpressionAssignment_3 ) )
-            // InternalSignalDSL.g:11804:2: ( rule__XForLoopExpression__EachExpressionAssignment_3 )
+            // InternalSignalDSL.g:12066:1: ( ( rule__XForLoopExpression__EachExpressionAssignment_3 ) )
+            // InternalSignalDSL.g:12067:2: ( rule__XForLoopExpression__EachExpressionAssignment_3 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXForLoopExpressionAccess().getEachExpressionAssignment_3()); 
             }
-            // InternalSignalDSL.g:11805:2: ( rule__XForLoopExpression__EachExpressionAssignment_3 )
-            // InternalSignalDSL.g:11805:3: rule__XForLoopExpression__EachExpressionAssignment_3
+            // InternalSignalDSL.g:12068:2: ( rule__XForLoopExpression__EachExpressionAssignment_3 )
+            // InternalSignalDSL.g:12068:3: rule__XForLoopExpression__EachExpressionAssignment_3
             {
             pushFollow(FOLLOW_2);
             rule__XForLoopExpression__EachExpressionAssignment_3();
@@ -39655,14 +40440,14 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__Group_0__0"
-    // InternalSignalDSL.g:11814:1: rule__XForLoopExpression__Group_0__0 : rule__XForLoopExpression__Group_0__0__Impl ;
+    // InternalSignalDSL.g:12077: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:11818:1: ( rule__XForLoopExpression__Group_0__0__Impl )
-            // InternalSignalDSL.g:11819:2: rule__XForLoopExpression__Group_0__0__Impl
+            // InternalSignalDSL.g:12081:1: ( rule__XForLoopExpression__Group_0__0__Impl )
+            // InternalSignalDSL.g:12082:2: rule__XForLoopExpression__Group_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XForLoopExpression__Group_0__0__Impl();
@@ -39688,23 +40473,23 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__Group_0__0__Impl"
-    // InternalSignalDSL.g:11825:1: rule__XForLoopExpression__Group_0__0__Impl : ( ( rule__XForLoopExpression__Group_0_0__0 ) ) ;
+    // InternalSignalDSL.g:12088: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:11829:1: ( ( ( rule__XForLoopExpression__Group_0_0__0 ) ) )
-            // InternalSignalDSL.g:11830:1: ( ( rule__XForLoopExpression__Group_0_0__0 ) )
+            // InternalSignalDSL.g:12092:1: ( ( ( rule__XForLoopExpression__Group_0_0__0 ) ) )
+            // InternalSignalDSL.g:12093:1: ( ( rule__XForLoopExpression__Group_0_0__0 ) )
             {
-            // InternalSignalDSL.g:11830:1: ( ( rule__XForLoopExpression__Group_0_0__0 ) )
-            // InternalSignalDSL.g:11831:2: ( rule__XForLoopExpression__Group_0_0__0 )
+            // InternalSignalDSL.g:12093:1: ( ( rule__XForLoopExpression__Group_0_0__0 ) )
+            // InternalSignalDSL.g:12094:2: ( rule__XForLoopExpression__Group_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXForLoopExpressionAccess().getGroup_0_0()); 
             }
-            // InternalSignalDSL.g:11832:2: ( rule__XForLoopExpression__Group_0_0__0 )
-            // InternalSignalDSL.g:11832:3: rule__XForLoopExpression__Group_0_0__0
+            // InternalSignalDSL.g:12095:2: ( rule__XForLoopExpression__Group_0_0__0 )
+            // InternalSignalDSL.g:12095:3: rule__XForLoopExpression__Group_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XForLoopExpression__Group_0_0__0();
@@ -39739,16 +40524,16 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__Group_0_0__0"
-    // InternalSignalDSL.g:11841:1: rule__XForLoopExpression__Group_0_0__0 : rule__XForLoopExpression__Group_0_0__0__Impl rule__XForLoopExpression__Group_0_0__1 ;
+    // InternalSignalDSL.g:12104: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:11845:1: ( rule__XForLoopExpression__Group_0_0__0__Impl rule__XForLoopExpression__Group_0_0__1 )
-            // InternalSignalDSL.g:11846:2: rule__XForLoopExpression__Group_0_0__0__Impl rule__XForLoopExpression__Group_0_0__1
+            // InternalSignalDSL.g:12108:1: ( rule__XForLoopExpression__Group_0_0__0__Impl rule__XForLoopExpression__Group_0_0__1 )
+            // InternalSignalDSL.g:12109:2: rule__XForLoopExpression__Group_0_0__0__Impl rule__XForLoopExpression__Group_0_0__1
             {
-            pushFollow(FOLLOW_15);
+            pushFollow(FOLLOW_14);
             rule__XForLoopExpression__Group_0_0__0__Impl();
 
             state._fsp--;
@@ -39777,23 +40562,23 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__Group_0_0__0__Impl"
-    // InternalSignalDSL.g:11853:1: rule__XForLoopExpression__Group_0_0__0__Impl : ( () ) ;
+    // InternalSignalDSL.g:12116: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:11857:1: ( ( () ) )
-            // InternalSignalDSL.g:11858:1: ( () )
+            // InternalSignalDSL.g:12120:1: ( ( () ) )
+            // InternalSignalDSL.g:12121:1: ( () )
             {
-            // InternalSignalDSL.g:11858:1: ( () )
-            // InternalSignalDSL.g:11859:2: ()
+            // InternalSignalDSL.g:12121:1: ( () )
+            // InternalSignalDSL.g:12122:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXForLoopExpressionAccess().getXForLoopExpressionAction_0_0_0()); 
             }
-            // InternalSignalDSL.g:11860:2: ()
-            // InternalSignalDSL.g:11860:3: 
+            // InternalSignalDSL.g:12123:2: ()
+            // InternalSignalDSL.g:12123:3: 
             {
             }
 
@@ -39818,16 +40603,16 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__Group_0_0__1"
-    // InternalSignalDSL.g:11868:1: rule__XForLoopExpression__Group_0_0__1 : rule__XForLoopExpression__Group_0_0__1__Impl rule__XForLoopExpression__Group_0_0__2 ;
+    // InternalSignalDSL.g:12131: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:11872:1: ( rule__XForLoopExpression__Group_0_0__1__Impl rule__XForLoopExpression__Group_0_0__2 )
-            // InternalSignalDSL.g:11873:2: rule__XForLoopExpression__Group_0_0__1__Impl rule__XForLoopExpression__Group_0_0__2
+            // InternalSignalDSL.g:12135:1: ( rule__XForLoopExpression__Group_0_0__1__Impl rule__XForLoopExpression__Group_0_0__2 )
+            // InternalSignalDSL.g:12136:2: rule__XForLoopExpression__Group_0_0__1__Impl rule__XForLoopExpression__Group_0_0__2
             {
-            pushFollow(FOLLOW_26);
+            pushFollow(FOLLOW_31);
             rule__XForLoopExpression__Group_0_0__1__Impl();
 
             state._fsp--;
@@ -39856,22 +40641,22 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__Group_0_0__1__Impl"
-    // InternalSignalDSL.g:11880:1: rule__XForLoopExpression__Group_0_0__1__Impl : ( 'for' ) ;
+    // InternalSignalDSL.g:12143: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:11884:1: ( ( 'for' ) )
-            // InternalSignalDSL.g:11885:1: ( 'for' )
+            // InternalSignalDSL.g:12147:1: ( ( 'for' ) )
+            // InternalSignalDSL.g:12148:1: ( 'for' )
             {
-            // InternalSignalDSL.g:11885:1: ( 'for' )
-            // InternalSignalDSL.g:11886:2: 'for'
+            // InternalSignalDSL.g:12148:1: ( 'for' )
+            // InternalSignalDSL.g:12149:2: 'for'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXForLoopExpressionAccess().getForKeyword_0_0_1()); 
             }
-            match(input,72,FOLLOW_2); if (state.failed) return ;
+            match(input,68,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXForLoopExpressionAccess().getForKeyword_0_0_1()); 
             }
@@ -39897,16 +40682,16 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__Group_0_0__2"
-    // InternalSignalDSL.g:11895:1: rule__XForLoopExpression__Group_0_0__2 : rule__XForLoopExpression__Group_0_0__2__Impl rule__XForLoopExpression__Group_0_0__3 ;
+    // InternalSignalDSL.g:12158: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:11899:1: ( rule__XForLoopExpression__Group_0_0__2__Impl rule__XForLoopExpression__Group_0_0__3 )
-            // InternalSignalDSL.g:11900:2: rule__XForLoopExpression__Group_0_0__2__Impl rule__XForLoopExpression__Group_0_0__3
+            // InternalSignalDSL.g:12162:1: ( rule__XForLoopExpression__Group_0_0__2__Impl rule__XForLoopExpression__Group_0_0__3 )
+            // InternalSignalDSL.g:12163:2: rule__XForLoopExpression__Group_0_0__2__Impl rule__XForLoopExpression__Group_0_0__3
             {
-            pushFollow(FOLLOW_47);
+            pushFollow(FOLLOW_52);
             rule__XForLoopExpression__Group_0_0__2__Impl();
 
             state._fsp--;
@@ -39935,22 +40720,22 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__Group_0_0__2__Impl"
-    // InternalSignalDSL.g:11907:1: rule__XForLoopExpression__Group_0_0__2__Impl : ( '(' ) ;
+    // InternalSignalDSL.g:12170: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:11911:1: ( ( '(' ) )
-            // InternalSignalDSL.g:11912:1: ( '(' )
+            // InternalSignalDSL.g:12174:1: ( ( '(' ) )
+            // InternalSignalDSL.g:12175:1: ( '(' )
             {
-            // InternalSignalDSL.g:11912:1: ( '(' )
-            // InternalSignalDSL.g:11913:2: '('
+            // InternalSignalDSL.g:12175:1: ( '(' )
+            // InternalSignalDSL.g:12176:2: '('
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXForLoopExpressionAccess().getLeftParenthesisKeyword_0_0_2()); 
             }
-            match(input,76,FOLLOW_2); if (state.failed) return ;
+            match(input,74,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXForLoopExpressionAccess().getLeftParenthesisKeyword_0_0_2()); 
             }
@@ -39976,16 +40761,16 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__Group_0_0__3"
-    // InternalSignalDSL.g:11922:1: rule__XForLoopExpression__Group_0_0__3 : rule__XForLoopExpression__Group_0_0__3__Impl rule__XForLoopExpression__Group_0_0__4 ;
+    // InternalSignalDSL.g:12185: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:11926:1: ( rule__XForLoopExpression__Group_0_0__3__Impl rule__XForLoopExpression__Group_0_0__4 )
-            // InternalSignalDSL.g:11927:2: rule__XForLoopExpression__Group_0_0__3__Impl rule__XForLoopExpression__Group_0_0__4
+            // InternalSignalDSL.g:12189:1: ( rule__XForLoopExpression__Group_0_0__3__Impl rule__XForLoopExpression__Group_0_0__4 )
+            // InternalSignalDSL.g:12190:2: rule__XForLoopExpression__Group_0_0__3__Impl rule__XForLoopExpression__Group_0_0__4
             {
-            pushFollow(FOLLOW_82);
+            pushFollow(FOLLOW_87);
             rule__XForLoopExpression__Group_0_0__3__Impl();
 
             state._fsp--;
@@ -40014,23 +40799,23 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__Group_0_0__3__Impl"
-    // InternalSignalDSL.g:11934:1: rule__XForLoopExpression__Group_0_0__3__Impl : ( ( rule__XForLoopExpression__DeclaredParamAssignment_0_0_3 ) ) ;
+    // InternalSignalDSL.g:12197: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:11938:1: ( ( ( rule__XForLoopExpression__DeclaredParamAssignment_0_0_3 ) ) )
-            // InternalSignalDSL.g:11939:1: ( ( rule__XForLoopExpression__DeclaredParamAssignment_0_0_3 ) )
+            // InternalSignalDSL.g:12201:1: ( ( ( rule__XForLoopExpression__DeclaredParamAssignment_0_0_3 ) ) )
+            // InternalSignalDSL.g:12202:1: ( ( rule__XForLoopExpression__DeclaredParamAssignment_0_0_3 ) )
             {
-            // InternalSignalDSL.g:11939:1: ( ( rule__XForLoopExpression__DeclaredParamAssignment_0_0_3 ) )
-            // InternalSignalDSL.g:11940:2: ( rule__XForLoopExpression__DeclaredParamAssignment_0_0_3 )
+            // InternalSignalDSL.g:12202:1: ( ( rule__XForLoopExpression__DeclaredParamAssignment_0_0_3 ) )
+            // InternalSignalDSL.g:12203:2: ( rule__XForLoopExpression__DeclaredParamAssignment_0_0_3 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXForLoopExpressionAccess().getDeclaredParamAssignment_0_0_3()); 
             }
-            // InternalSignalDSL.g:11941:2: ( rule__XForLoopExpression__DeclaredParamAssignment_0_0_3 )
-            // InternalSignalDSL.g:11941:3: rule__XForLoopExpression__DeclaredParamAssignment_0_0_3
+            // InternalSignalDSL.g:12204:2: ( rule__XForLoopExpression__DeclaredParamAssignment_0_0_3 )
+            // InternalSignalDSL.g:12204:3: rule__XForLoopExpression__DeclaredParamAssignment_0_0_3
             {
             pushFollow(FOLLOW_2);
             rule__XForLoopExpression__DeclaredParamAssignment_0_0_3();
@@ -40065,14 +40850,14 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__Group_0_0__4"
-    // InternalSignalDSL.g:11949:1: rule__XForLoopExpression__Group_0_0__4 : rule__XForLoopExpression__Group_0_0__4__Impl ;
+    // InternalSignalDSL.g:12212: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:11953:1: ( rule__XForLoopExpression__Group_0_0__4__Impl )
-            // InternalSignalDSL.g:11954:2: rule__XForLoopExpression__Group_0_0__4__Impl
+            // InternalSignalDSL.g:12216:1: ( rule__XForLoopExpression__Group_0_0__4__Impl )
+            // InternalSignalDSL.g:12217:2: rule__XForLoopExpression__Group_0_0__4__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XForLoopExpression__Group_0_0__4__Impl();
@@ -40098,22 +40883,22 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__Group_0_0__4__Impl"
-    // InternalSignalDSL.g:11960:1: rule__XForLoopExpression__Group_0_0__4__Impl : ( ':' ) ;
+    // InternalSignalDSL.g:12223: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:11964:1: ( ( ':' ) )
-            // InternalSignalDSL.g:11965:1: ( ':' )
+            // InternalSignalDSL.g:12227:1: ( ( ':' ) )
+            // InternalSignalDSL.g:12228:1: ( ':' )
             {
-            // InternalSignalDSL.g:11965:1: ( ':' )
-            // InternalSignalDSL.g:11966:2: ':'
+            // InternalSignalDSL.g:12228:1: ( ':' )
+            // InternalSignalDSL.g:12229:2: ':'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXForLoopExpressionAccess().getColonKeyword_0_0_4()); 
             }
-            match(input,87,FOLLOW_2); if (state.failed) return ;
+            match(input,85,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXForLoopExpressionAccess().getColonKeyword_0_0_4()); 
             }
@@ -40139,16 +40924,16 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group__0"
-    // InternalSignalDSL.g:11976:1: rule__XBasicForLoopExpression__Group__0 : rule__XBasicForLoopExpression__Group__0__Impl rule__XBasicForLoopExpression__Group__1 ;
+    // InternalSignalDSL.g:12239: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:11980:1: ( rule__XBasicForLoopExpression__Group__0__Impl rule__XBasicForLoopExpression__Group__1 )
-            // InternalSignalDSL.g:11981:2: rule__XBasicForLoopExpression__Group__0__Impl rule__XBasicForLoopExpression__Group__1
+            // InternalSignalDSL.g:12243:1: ( rule__XBasicForLoopExpression__Group__0__Impl rule__XBasicForLoopExpression__Group__1 )
+            // InternalSignalDSL.g:12244:2: rule__XBasicForLoopExpression__Group__0__Impl rule__XBasicForLoopExpression__Group__1
             {
-            pushFollow(FOLLOW_15);
+            pushFollow(FOLLOW_14);
             rule__XBasicForLoopExpression__Group__0__Impl();
 
             state._fsp--;
@@ -40177,23 +40962,23 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group__0__Impl"
-    // InternalSignalDSL.g:11988:1: rule__XBasicForLoopExpression__Group__0__Impl : ( () ) ;
+    // InternalSignalDSL.g:12251:1: rule__XBasicForLoopExpression__Group__0__Impl : ( () ) ;
     public final void rule__XBasicForLoopExpression__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:11992:1: ( ( () ) )
-            // InternalSignalDSL.g:11993:1: ( () )
+            // InternalSignalDSL.g:12255:1: ( ( () ) )
+            // InternalSignalDSL.g:12256:1: ( () )
             {
-            // InternalSignalDSL.g:11993:1: ( () )
-            // InternalSignalDSL.g:11994:2: ()
+            // InternalSignalDSL.g:12256:1: ( () )
+            // InternalSignalDSL.g:12257:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getXBasicForLoopExpressionAction_0()); 
             }
-            // InternalSignalDSL.g:11995:2: ()
-            // InternalSignalDSL.g:11995:3: 
+            // InternalSignalDSL.g:12258:2: ()
+            // InternalSignalDSL.g:12258:3: 
             {
             }
 
@@ -40218,16 +41003,16 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group__1"
-    // InternalSignalDSL.g:12003:1: rule__XBasicForLoopExpression__Group__1 : rule__XBasicForLoopExpression__Group__1__Impl rule__XBasicForLoopExpression__Group__2 ;
+    // InternalSignalDSL.g:12266: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:12007:1: ( rule__XBasicForLoopExpression__Group__1__Impl rule__XBasicForLoopExpression__Group__2 )
-            // InternalSignalDSL.g:12008:2: rule__XBasicForLoopExpression__Group__1__Impl rule__XBasicForLoopExpression__Group__2
+            // InternalSignalDSL.g:12270:1: ( rule__XBasicForLoopExpression__Group__1__Impl rule__XBasicForLoopExpression__Group__2 )
+            // InternalSignalDSL.g:12271:2: rule__XBasicForLoopExpression__Group__1__Impl rule__XBasicForLoopExpression__Group__2
             {
-            pushFollow(FOLLOW_26);
+            pushFollow(FOLLOW_31);
             rule__XBasicForLoopExpression__Group__1__Impl();
 
             state._fsp--;
@@ -40256,22 +41041,22 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group__1__Impl"
-    // InternalSignalDSL.g:12015:1: rule__XBasicForLoopExpression__Group__1__Impl : ( 'for' ) ;
+    // InternalSignalDSL.g:12278:1: rule__XBasicForLoopExpression__Group__1__Impl : ( 'for' ) ;
     public final void rule__XBasicForLoopExpression__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:12019:1: ( ( 'for' ) )
-            // InternalSignalDSL.g:12020:1: ( 'for' )
+            // InternalSignalDSL.g:12282:1: ( ( 'for' ) )
+            // InternalSignalDSL.g:12283:1: ( 'for' )
             {
-            // InternalSignalDSL.g:12020:1: ( 'for' )
-            // InternalSignalDSL.g:12021:2: 'for'
+            // InternalSignalDSL.g:12283:1: ( 'for' )
+            // InternalSignalDSL.g:12284:2: 'for'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getForKeyword_1()); 
             }
-            match(input,72,FOLLOW_2); if (state.failed) return ;
+            match(input,68,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXBasicForLoopExpressionAccess().getForKeyword_1()); 
             }
@@ -40297,16 +41082,16 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group__2"
-    // InternalSignalDSL.g:12030:1: rule__XBasicForLoopExpression__Group__2 : rule__XBasicForLoopExpression__Group__2__Impl rule__XBasicForLoopExpression__Group__3 ;
+    // InternalSignalDSL.g:12293: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:12034:1: ( rule__XBasicForLoopExpression__Group__2__Impl rule__XBasicForLoopExpression__Group__3 )
-            // InternalSignalDSL.g:12035:2: rule__XBasicForLoopExpression__Group__2__Impl rule__XBasicForLoopExpression__Group__3
+            // InternalSignalDSL.g:12297:1: ( rule__XBasicForLoopExpression__Group__2__Impl rule__XBasicForLoopExpression__Group__3 )
+            // InternalSignalDSL.g:12298:2: rule__XBasicForLoopExpression__Group__2__Impl rule__XBasicForLoopExpression__Group__3
             {
-            pushFollow(FOLLOW_84);
+            pushFollow(FOLLOW_89);
             rule__XBasicForLoopExpression__Group__2__Impl();
 
             state._fsp--;
@@ -40335,22 +41120,22 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group__2__Impl"
-    // InternalSignalDSL.g:12042:1: rule__XBasicForLoopExpression__Group__2__Impl : ( '(' ) ;
+    // InternalSignalDSL.g:12305:1: rule__XBasicForLoopExpression__Group__2__Impl : ( '(' ) ;
     public final void rule__XBasicForLoopExpression__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:12046:1: ( ( '(' ) )
-            // InternalSignalDSL.g:12047:1: ( '(' )
+            // InternalSignalDSL.g:12309:1: ( ( '(' ) )
+            // InternalSignalDSL.g:12310:1: ( '(' )
             {
-            // InternalSignalDSL.g:12047:1: ( '(' )
-            // InternalSignalDSL.g:12048:2: '('
+            // InternalSignalDSL.g:12310:1: ( '(' )
+            // InternalSignalDSL.g:12311:2: '('
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getLeftParenthesisKeyword_2()); 
             }
-            match(input,76,FOLLOW_2); if (state.failed) return ;
+            match(input,74,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXBasicForLoopExpressionAccess().getLeftParenthesisKeyword_2()); 
             }
@@ -40376,16 +41161,16 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group__3"
-    // InternalSignalDSL.g:12057:1: rule__XBasicForLoopExpression__Group__3 : rule__XBasicForLoopExpression__Group__3__Impl rule__XBasicForLoopExpression__Group__4 ;
+    // InternalSignalDSL.g:12320: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:12061:1: ( rule__XBasicForLoopExpression__Group__3__Impl rule__XBasicForLoopExpression__Group__4 )
-            // InternalSignalDSL.g:12062:2: rule__XBasicForLoopExpression__Group__3__Impl rule__XBasicForLoopExpression__Group__4
+            // InternalSignalDSL.g:12324:1: ( rule__XBasicForLoopExpression__Group__3__Impl rule__XBasicForLoopExpression__Group__4 )
+            // InternalSignalDSL.g:12325:2: rule__XBasicForLoopExpression__Group__3__Impl rule__XBasicForLoopExpression__Group__4
             {
-            pushFollow(FOLLOW_84);
+            pushFollow(FOLLOW_89);
             rule__XBasicForLoopExpression__Group__3__Impl();
 
             state._fsp--;
@@ -40414,31 +41199,31 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group__3__Impl"
-    // InternalSignalDSL.g:12069:1: rule__XBasicForLoopExpression__Group__3__Impl : ( ( rule__XBasicForLoopExpression__Group_3__0 )? ) ;
+    // InternalSignalDSL.g:12332: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:12073:1: ( ( ( rule__XBasicForLoopExpression__Group_3__0 )? ) )
-            // InternalSignalDSL.g:12074:1: ( ( rule__XBasicForLoopExpression__Group_3__0 )? )
+            // InternalSignalDSL.g:12336:1: ( ( ( rule__XBasicForLoopExpression__Group_3__0 )? ) )
+            // InternalSignalDSL.g:12337:1: ( ( rule__XBasicForLoopExpression__Group_3__0 )? )
             {
-            // InternalSignalDSL.g:12074:1: ( ( rule__XBasicForLoopExpression__Group_3__0 )? )
-            // InternalSignalDSL.g:12075:2: ( rule__XBasicForLoopExpression__Group_3__0 )?
+            // InternalSignalDSL.g:12337:1: ( ( rule__XBasicForLoopExpression__Group_3__0 )? )
+            // InternalSignalDSL.g:12338:2: ( rule__XBasicForLoopExpression__Group_3__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getGroup_3()); 
             }
-            // InternalSignalDSL.g:12076:2: ( rule__XBasicForLoopExpression__Group_3__0 )?
-            int alt100=2;
-            int LA100_0 = input.LA(1);
+            // InternalSignalDSL.g:12339:2: ( rule__XBasicForLoopExpression__Group_3__0 )?
+            int alt103=2;
+            int LA103_0 = input.LA(1);
 
-            if ( ((LA100_0>=RULE_ID && LA100_0<=RULE_STRING)||LA100_0==27||(LA100_0>=34 && LA100_0<=35)||LA100_0==40||(LA100_0>=44 && LA100_0<=50)||LA100_0==68||LA100_0==72||LA100_0==76||(LA100_0>=80 && LA100_0<=81)||LA100_0==84||LA100_0==86||(LA100_0>=90 && LA100_0<=97)||LA100_0==99||(LA100_0>=107 && LA100_0<=108)) ) {
-                alt100=1;
+            if ( ((LA103_0>=RULE_ID && LA103_0<=RULE_STRING)||LA103_0==27||(LA103_0>=34 && LA103_0<=35)||LA103_0==40||(LA103_0>=44 && LA103_0<=50)||LA103_0==64||LA103_0==68||LA103_0==74||(LA103_0>=78 && LA103_0<=79)||LA103_0==82||LA103_0==84||(LA103_0>=88 && LA103_0<=95)||LA103_0==97||(LA103_0>=105 && LA103_0<=106)) ) {
+                alt103=1;
             }
-            switch (alt100) {
+            switch (alt103) {
                 case 1 :
-                    // InternalSignalDSL.g:12076:3: rule__XBasicForLoopExpression__Group_3__0
+                    // InternalSignalDSL.g:12339:3: rule__XBasicForLoopExpression__Group_3__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XBasicForLoopExpression__Group_3__0();
@@ -40476,16 +41261,16 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group__4"
-    // InternalSignalDSL.g:12084:1: rule__XBasicForLoopExpression__Group__4 : rule__XBasicForLoopExpression__Group__4__Impl rule__XBasicForLoopExpression__Group__5 ;
+    // InternalSignalDSL.g:12347: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:12088:1: ( rule__XBasicForLoopExpression__Group__4__Impl rule__XBasicForLoopExpression__Group__5 )
-            // InternalSignalDSL.g:12089:2: rule__XBasicForLoopExpression__Group__4__Impl rule__XBasicForLoopExpression__Group__5
+            // InternalSignalDSL.g:12351:1: ( rule__XBasicForLoopExpression__Group__4__Impl rule__XBasicForLoopExpression__Group__5 )
+            // InternalSignalDSL.g:12352:2: rule__XBasicForLoopExpression__Group__4__Impl rule__XBasicForLoopExpression__Group__5
             {
-            pushFollow(FOLLOW_85);
+            pushFollow(FOLLOW_90);
             rule__XBasicForLoopExpression__Group__4__Impl();
 
             state._fsp--;
@@ -40514,22 +41299,22 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group__4__Impl"
-    // InternalSignalDSL.g:12096:1: rule__XBasicForLoopExpression__Group__4__Impl : ( ';' ) ;
+    // InternalSignalDSL.g:12359:1: rule__XBasicForLoopExpression__Group__4__Impl : ( ';' ) ;
     public final void rule__XBasicForLoopExpression__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:12100:1: ( ( ';' ) )
-            // InternalSignalDSL.g:12101:1: ( ';' )
+            // InternalSignalDSL.g:12363:1: ( ( ';' ) )
+            // InternalSignalDSL.g:12364:1: ( ';' )
             {
-            // InternalSignalDSL.g:12101:1: ( ';' )
-            // InternalSignalDSL.g:12102:2: ';'
+            // InternalSignalDSL.g:12364:1: ( ';' )
+            // InternalSignalDSL.g:12365:2: ';'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getSemicolonKeyword_4()); 
             }
-            match(input,74,FOLLOW_2); if (state.failed) return ;
+            match(input,72,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXBasicForLoopExpressionAccess().getSemicolonKeyword_4()); 
             }
@@ -40555,16 +41340,16 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group__5"
-    // InternalSignalDSL.g:12111:1: rule__XBasicForLoopExpression__Group__5 : rule__XBasicForLoopExpression__Group__5__Impl rule__XBasicForLoopExpression__Group__6 ;
+    // InternalSignalDSL.g:12374: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:12115:1: ( rule__XBasicForLoopExpression__Group__5__Impl rule__XBasicForLoopExpression__Group__6 )
-            // InternalSignalDSL.g:12116:2: rule__XBasicForLoopExpression__Group__5__Impl rule__XBasicForLoopExpression__Group__6
+            // InternalSignalDSL.g:12378:1: ( rule__XBasicForLoopExpression__Group__5__Impl rule__XBasicForLoopExpression__Group__6 )
+            // InternalSignalDSL.g:12379:2: rule__XBasicForLoopExpression__Group__5__Impl rule__XBasicForLoopExpression__Group__6
             {
-            pushFollow(FOLLOW_85);
+            pushFollow(FOLLOW_90);
             rule__XBasicForLoopExpression__Group__5__Impl();
 
             state._fsp--;
@@ -40593,31 +41378,31 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group__5__Impl"
-    // InternalSignalDSL.g:12123:1: rule__XBasicForLoopExpression__Group__5__Impl : ( ( rule__XBasicForLoopExpression__ExpressionAssignment_5 )? ) ;
+    // InternalSignalDSL.g:12386: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:12127:1: ( ( ( rule__XBasicForLoopExpression__ExpressionAssignment_5 )? ) )
-            // InternalSignalDSL.g:12128:1: ( ( rule__XBasicForLoopExpression__ExpressionAssignment_5 )? )
+            // InternalSignalDSL.g:12390:1: ( ( ( rule__XBasicForLoopExpression__ExpressionAssignment_5 )? ) )
+            // InternalSignalDSL.g:12391:1: ( ( rule__XBasicForLoopExpression__ExpressionAssignment_5 )? )
             {
-            // InternalSignalDSL.g:12128:1: ( ( rule__XBasicForLoopExpression__ExpressionAssignment_5 )? )
-            // InternalSignalDSL.g:12129:2: ( rule__XBasicForLoopExpression__ExpressionAssignment_5 )?
+            // InternalSignalDSL.g:12391:1: ( ( rule__XBasicForLoopExpression__ExpressionAssignment_5 )? )
+            // InternalSignalDSL.g:12392:2: ( rule__XBasicForLoopExpression__ExpressionAssignment_5 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getExpressionAssignment_5()); 
             }
-            // InternalSignalDSL.g:12130:2: ( rule__XBasicForLoopExpression__ExpressionAssignment_5 )?
-            int alt101=2;
-            int LA101_0 = input.LA(1);
+            // InternalSignalDSL.g:12393:2: ( rule__XBasicForLoopExpression__ExpressionAssignment_5 )?
+            int alt104=2;
+            int LA104_0 = input.LA(1);
 
-            if ( ((LA101_0>=RULE_ID && LA101_0<=RULE_STRING)||LA101_0==27||(LA101_0>=34 && LA101_0<=35)||LA101_0==40||(LA101_0>=45 && LA101_0<=50)||LA101_0==68||LA101_0==72||LA101_0==76||(LA101_0>=80 && LA101_0<=81)||LA101_0==84||LA101_0==86||(LA101_0>=90 && LA101_0<=97)||LA101_0==99||LA101_0==108) ) {
-                alt101=1;
+            if ( ((LA104_0>=RULE_ID && LA104_0<=RULE_STRING)||LA104_0==27||(LA104_0>=34 && LA104_0<=35)||LA104_0==40||(LA104_0>=45 && LA104_0<=50)||LA104_0==64||LA104_0==68||LA104_0==74||(LA104_0>=78 && LA104_0<=79)||LA104_0==82||LA104_0==84||(LA104_0>=88 && LA104_0<=95)||LA104_0==97||LA104_0==106) ) {
+                alt104=1;
             }
-            switch (alt101) {
+            switch (alt104) {
                 case 1 :
-                    // InternalSignalDSL.g:12130:3: rule__XBasicForLoopExpression__ExpressionAssignment_5
+                    // InternalSignalDSL.g:12393:3: rule__XBasicForLoopExpression__ExpressionAssignment_5
                     {
                     pushFollow(FOLLOW_2);
                     rule__XBasicForLoopExpression__ExpressionAssignment_5();
@@ -40655,16 +41440,16 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group__6"
-    // InternalSignalDSL.g:12138:1: rule__XBasicForLoopExpression__Group__6 : rule__XBasicForLoopExpression__Group__6__Impl rule__XBasicForLoopExpression__Group__7 ;
+    // InternalSignalDSL.g:12401: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:12142:1: ( rule__XBasicForLoopExpression__Group__6__Impl rule__XBasicForLoopExpression__Group__7 )
-            // InternalSignalDSL.g:12143:2: rule__XBasicForLoopExpression__Group__6__Impl rule__XBasicForLoopExpression__Group__7
+            // InternalSignalDSL.g:12405:1: ( rule__XBasicForLoopExpression__Group__6__Impl rule__XBasicForLoopExpression__Group__7 )
+            // InternalSignalDSL.g:12406:2: rule__XBasicForLoopExpression__Group__6__Impl rule__XBasicForLoopExpression__Group__7
             {
-            pushFollow(FOLLOW_27);
+            pushFollow(FOLLOW_32);
             rule__XBasicForLoopExpression__Group__6__Impl();
 
             state._fsp--;
@@ -40693,22 +41478,22 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group__6__Impl"
-    // InternalSignalDSL.g:12150:1: rule__XBasicForLoopExpression__Group__6__Impl : ( ';' ) ;
+    // InternalSignalDSL.g:12413:1: rule__XBasicForLoopExpression__Group__6__Impl : ( ';' ) ;
     public final void rule__XBasicForLoopExpression__Group__6__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:12154:1: ( ( ';' ) )
-            // InternalSignalDSL.g:12155:1: ( ';' )
+            // InternalSignalDSL.g:12417:1: ( ( ';' ) )
+            // InternalSignalDSL.g:12418:1: ( ';' )
             {
-            // InternalSignalDSL.g:12155:1: ( ';' )
-            // InternalSignalDSL.g:12156:2: ';'
+            // InternalSignalDSL.g:12418:1: ( ';' )
+            // InternalSignalDSL.g:12419:2: ';'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getSemicolonKeyword_6()); 
             }
-            match(input,74,FOLLOW_2); if (state.failed) return ;
+            match(input,72,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXBasicForLoopExpressionAccess().getSemicolonKeyword_6()); 
             }
@@ -40734,16 +41519,16 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group__7"
-    // InternalSignalDSL.g:12165:1: rule__XBasicForLoopExpression__Group__7 : rule__XBasicForLoopExpression__Group__7__Impl rule__XBasicForLoopExpression__Group__8 ;
+    // InternalSignalDSL.g:12428: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:12169:1: ( rule__XBasicForLoopExpression__Group__7__Impl rule__XBasicForLoopExpression__Group__8 )
-            // InternalSignalDSL.g:12170:2: rule__XBasicForLoopExpression__Group__7__Impl rule__XBasicForLoopExpression__Group__8
+            // InternalSignalDSL.g:12432:1: ( rule__XBasicForLoopExpression__Group__7__Impl rule__XBasicForLoopExpression__Group__8 )
+            // InternalSignalDSL.g:12433:2: rule__XBasicForLoopExpression__Group__7__Impl rule__XBasicForLoopExpression__Group__8
             {
-            pushFollow(FOLLOW_27);
+            pushFollow(FOLLOW_32);
             rule__XBasicForLoopExpression__Group__7__Impl();
 
             state._fsp--;
@@ -40772,31 +41557,31 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group__7__Impl"
-    // InternalSignalDSL.g:12177:1: rule__XBasicForLoopExpression__Group__7__Impl : ( ( rule__XBasicForLoopExpression__Group_7__0 )? ) ;
+    // InternalSignalDSL.g:12440: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:12181:1: ( ( ( rule__XBasicForLoopExpression__Group_7__0 )? ) )
-            // InternalSignalDSL.g:12182:1: ( ( rule__XBasicForLoopExpression__Group_7__0 )? )
+            // InternalSignalDSL.g:12444:1: ( ( ( rule__XBasicForLoopExpression__Group_7__0 )? ) )
+            // InternalSignalDSL.g:12445:1: ( ( rule__XBasicForLoopExpression__Group_7__0 )? )
             {
-            // InternalSignalDSL.g:12182:1: ( ( rule__XBasicForLoopExpression__Group_7__0 )? )
-            // InternalSignalDSL.g:12183:2: ( rule__XBasicForLoopExpression__Group_7__0 )?
+            // InternalSignalDSL.g:12445:1: ( ( rule__XBasicForLoopExpression__Group_7__0 )? )
+            // InternalSignalDSL.g:12446:2: ( rule__XBasicForLoopExpression__Group_7__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getGroup_7()); 
             }
-            // InternalSignalDSL.g:12184:2: ( rule__XBasicForLoopExpression__Group_7__0 )?
-            int alt102=2;
-            int LA102_0 = input.LA(1);
+            // InternalSignalDSL.g:12447:2: ( rule__XBasicForLoopExpression__Group_7__0 )?
+            int alt105=2;
+            int LA105_0 = input.LA(1);
 
-            if ( ((LA102_0>=RULE_ID && LA102_0<=RULE_STRING)||LA102_0==27||(LA102_0>=34 && LA102_0<=35)||LA102_0==40||(LA102_0>=45 && LA102_0<=50)||LA102_0==68||LA102_0==72||LA102_0==76||(LA102_0>=80 && LA102_0<=81)||LA102_0==84||LA102_0==86||(LA102_0>=90 && LA102_0<=97)||LA102_0==99||LA102_0==108) ) {
-                alt102=1;
+            if ( ((LA105_0>=RULE_ID && LA105_0<=RULE_STRING)||LA105_0==27||(LA105_0>=34 && LA105_0<=35)||LA105_0==40||(LA105_0>=45 && LA105_0<=50)||LA105_0==64||LA105_0==68||LA105_0==74||(LA105_0>=78 && LA105_0<=79)||LA105_0==82||LA105_0==84||(LA105_0>=88 && LA105_0<=95)||LA105_0==97||LA105_0==106) ) {
+                alt105=1;
             }
-            switch (alt102) {
+            switch (alt105) {
                 case 1 :
-                    // InternalSignalDSL.g:12184:3: rule__XBasicForLoopExpression__Group_7__0
+                    // InternalSignalDSL.g:12447:3: rule__XBasicForLoopExpression__Group_7__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XBasicForLoopExpression__Group_7__0();
@@ -40834,16 +41619,16 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group__8"
-    // InternalSignalDSL.g:12192:1: rule__XBasicForLoopExpression__Group__8 : rule__XBasicForLoopExpression__Group__8__Impl rule__XBasicForLoopExpression__Group__9 ;
+    // InternalSignalDSL.g:12455: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:12196:1: ( rule__XBasicForLoopExpression__Group__8__Impl rule__XBasicForLoopExpression__Group__9 )
-            // InternalSignalDSL.g:12197:2: rule__XBasicForLoopExpression__Group__8__Impl rule__XBasicForLoopExpression__Group__9
+            // InternalSignalDSL.g:12459:1: ( rule__XBasicForLoopExpression__Group__8__Impl rule__XBasicForLoopExpression__Group__9 )
+            // InternalSignalDSL.g:12460:2: rule__XBasicForLoopExpression__Group__8__Impl rule__XBasicForLoopExpression__Group__9
             {
-            pushFollow(FOLLOW_30);
+            pushFollow(FOLLOW_35);
             rule__XBasicForLoopExpression__Group__8__Impl();
 
             state._fsp--;
@@ -40872,22 +41657,22 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group__8__Impl"
-    // InternalSignalDSL.g:12204:1: rule__XBasicForLoopExpression__Group__8__Impl : ( ')' ) ;
+    // InternalSignalDSL.g:12467:1: rule__XBasicForLoopExpression__Group__8__Impl : ( ')' ) ;
     public final void rule__XBasicForLoopExpression__Group__8__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:12208:1: ( ( ')' ) )
-            // InternalSignalDSL.g:12209:1: ( ')' )
+            // InternalSignalDSL.g:12471:1: ( ( ')' ) )
+            // InternalSignalDSL.g:12472:1: ( ')' )
             {
-            // InternalSignalDSL.g:12209:1: ( ')' )
-            // InternalSignalDSL.g:12210:2: ')'
+            // InternalSignalDSL.g:12472:1: ( ')' )
+            // InternalSignalDSL.g:12473:2: ')'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getRightParenthesisKeyword_8()); 
             }
-            match(input,77,FOLLOW_2); if (state.failed) return ;
+            match(input,75,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXBasicForLoopExpressionAccess().getRightParenthesisKeyword_8()); 
             }
@@ -40913,14 +41698,14 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group__9"
-    // InternalSignalDSL.g:12219:1: rule__XBasicForLoopExpression__Group__9 : rule__XBasicForLoopExpression__Group__9__Impl ;
+    // InternalSignalDSL.g:12482: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:12223:1: ( rule__XBasicForLoopExpression__Group__9__Impl )
-            // InternalSignalDSL.g:12224:2: rule__XBasicForLoopExpression__Group__9__Impl
+            // InternalSignalDSL.g:12486:1: ( rule__XBasicForLoopExpression__Group__9__Impl )
+            // InternalSignalDSL.g:12487:2: rule__XBasicForLoopExpression__Group__9__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XBasicForLoopExpression__Group__9__Impl();
@@ -40946,23 +41731,23 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group__9__Impl"
-    // InternalSignalDSL.g:12230:1: rule__XBasicForLoopExpression__Group__9__Impl : ( ( rule__XBasicForLoopExpression__EachExpressionAssignment_9 ) ) ;
+    // InternalSignalDSL.g:12493: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:12234:1: ( ( ( rule__XBasicForLoopExpression__EachExpressionAssignment_9 ) ) )
-            // InternalSignalDSL.g:12235:1: ( ( rule__XBasicForLoopExpression__EachExpressionAssignment_9 ) )
+            // InternalSignalDSL.g:12497:1: ( ( ( rule__XBasicForLoopExpression__EachExpressionAssignment_9 ) ) )
+            // InternalSignalDSL.g:12498:1: ( ( rule__XBasicForLoopExpression__EachExpressionAssignment_9 ) )
             {
-            // InternalSignalDSL.g:12235:1: ( ( rule__XBasicForLoopExpression__EachExpressionAssignment_9 ) )
-            // InternalSignalDSL.g:12236:2: ( rule__XBasicForLoopExpression__EachExpressionAssignment_9 )
+            // InternalSignalDSL.g:12498:1: ( ( rule__XBasicForLoopExpression__EachExpressionAssignment_9 ) )
+            // InternalSignalDSL.g:12499:2: ( rule__XBasicForLoopExpression__EachExpressionAssignment_9 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getEachExpressionAssignment_9()); 
             }
-            // InternalSignalDSL.g:12237:2: ( rule__XBasicForLoopExpression__EachExpressionAssignment_9 )
-            // InternalSignalDSL.g:12237:3: rule__XBasicForLoopExpression__EachExpressionAssignment_9
+            // InternalSignalDSL.g:12500:2: ( rule__XBasicForLoopExpression__EachExpressionAssignment_9 )
+            // InternalSignalDSL.g:12500:3: rule__XBasicForLoopExpression__EachExpressionAssignment_9
             {
             pushFollow(FOLLOW_2);
             rule__XBasicForLoopExpression__EachExpressionAssignment_9();
@@ -40997,16 +41782,16 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group_3__0"
-    // InternalSignalDSL.g:12246:1: rule__XBasicForLoopExpression__Group_3__0 : rule__XBasicForLoopExpression__Group_3__0__Impl rule__XBasicForLoopExpression__Group_3__1 ;
+    // InternalSignalDSL.g:12509: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:12250:1: ( rule__XBasicForLoopExpression__Group_3__0__Impl rule__XBasicForLoopExpression__Group_3__1 )
-            // InternalSignalDSL.g:12251:2: rule__XBasicForLoopExpression__Group_3__0__Impl rule__XBasicForLoopExpression__Group_3__1
+            // InternalSignalDSL.g:12513:1: ( rule__XBasicForLoopExpression__Group_3__0__Impl rule__XBasicForLoopExpression__Group_3__1 )
+            // InternalSignalDSL.g:12514:2: rule__XBasicForLoopExpression__Group_3__0__Impl rule__XBasicForLoopExpression__Group_3__1
             {
-            pushFollow(FOLLOW_28);
+            pushFollow(FOLLOW_33);
             rule__XBasicForLoopExpression__Group_3__0__Impl();
 
             state._fsp--;
@@ -41035,23 +41820,23 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group_3__0__Impl"
-    // InternalSignalDSL.g:12258:1: rule__XBasicForLoopExpression__Group_3__0__Impl : ( ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0 ) ) ;
+    // InternalSignalDSL.g:12521: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:12262:1: ( ( ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0 ) ) )
-            // InternalSignalDSL.g:12263:1: ( ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0 ) )
+            // InternalSignalDSL.g:12525:1: ( ( ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0 ) ) )
+            // InternalSignalDSL.g:12526:1: ( ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0 ) )
             {
-            // InternalSignalDSL.g:12263:1: ( ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0 ) )
-            // InternalSignalDSL.g:12264:2: ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0 )
+            // InternalSignalDSL.g:12526:1: ( ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0 ) )
+            // InternalSignalDSL.g:12527:2: ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getInitExpressionsAssignment_3_0()); 
             }
-            // InternalSignalDSL.g:12265:2: ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0 )
-            // InternalSignalDSL.g:12265:3: rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0
+            // InternalSignalDSL.g:12528:2: ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0 )
+            // InternalSignalDSL.g:12528:3: rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0
             {
             pushFollow(FOLLOW_2);
             rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0();
@@ -41086,14 +41871,14 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group_3__1"
-    // InternalSignalDSL.g:12273:1: rule__XBasicForLoopExpression__Group_3__1 : rule__XBasicForLoopExpression__Group_3__1__Impl ;
+    // InternalSignalDSL.g:12536: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:12277:1: ( rule__XBasicForLoopExpression__Group_3__1__Impl )
-            // InternalSignalDSL.g:12278:2: rule__XBasicForLoopExpression__Group_3__1__Impl
+            // InternalSignalDSL.g:12540:1: ( rule__XBasicForLoopExpression__Group_3__1__Impl )
+            // InternalSignalDSL.g:12541:2: rule__XBasicForLoopExpression__Group_3__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XBasicForLoopExpression__Group_3__1__Impl();
@@ -41119,37 +41904,37 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group_3__1__Impl"
-    // InternalSignalDSL.g:12284:1: rule__XBasicForLoopExpression__Group_3__1__Impl : ( ( rule__XBasicForLoopExpression__Group_3_1__0 )* ) ;
+    // InternalSignalDSL.g:12547: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:12288:1: ( ( ( rule__XBasicForLoopExpression__Group_3_1__0 )* ) )
-            // InternalSignalDSL.g:12289:1: ( ( rule__XBasicForLoopExpression__Group_3_1__0 )* )
+            // InternalSignalDSL.g:12551:1: ( ( ( rule__XBasicForLoopExpression__Group_3_1__0 )* ) )
+            // InternalSignalDSL.g:12552:1: ( ( rule__XBasicForLoopExpression__Group_3_1__0 )* )
             {
-            // InternalSignalDSL.g:12289:1: ( ( rule__XBasicForLoopExpression__Group_3_1__0 )* )
-            // InternalSignalDSL.g:12290:2: ( rule__XBasicForLoopExpression__Group_3_1__0 )*
+            // InternalSignalDSL.g:12552:1: ( ( rule__XBasicForLoopExpression__Group_3_1__0 )* )
+            // InternalSignalDSL.g:12553:2: ( rule__XBasicForLoopExpression__Group_3_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getGroup_3_1()); 
             }
-            // InternalSignalDSL.g:12291:2: ( rule__XBasicForLoopExpression__Group_3_1__0 )*
-            loop103:
+            // InternalSignalDSL.g:12554:2: ( rule__XBasicForLoopExpression__Group_3_1__0 )*
+            loop106:
             do {
-                int alt103=2;
-                int LA103_0 = input.LA(1);
+                int alt106=2;
+                int LA106_0 = input.LA(1);
 
-                if ( (LA103_0==78) ) {
-                    alt103=1;
+                if ( (LA106_0==76) ) {
+                    alt106=1;
                 }
 
 
-                switch (alt103) {
+                switch (alt106) {
             	case 1 :
-            	    // InternalSignalDSL.g:12291:3: rule__XBasicForLoopExpression__Group_3_1__0
+            	    // InternalSignalDSL.g:12554:3: rule__XBasicForLoopExpression__Group_3_1__0
             	    {
-            	    pushFollow(FOLLOW_29);
+            	    pushFollow(FOLLOW_34);
             	    rule__XBasicForLoopExpression__Group_3_1__0();
 
             	    state._fsp--;
@@ -41159,7 +41944,7 @@
             	    break;
 
             	default :
-            	    break loop103;
+            	    break loop106;
                 }
             } while (true);
 
@@ -41188,16 +41973,16 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group_3_1__0"
-    // InternalSignalDSL.g:12300:1: rule__XBasicForLoopExpression__Group_3_1__0 : rule__XBasicForLoopExpression__Group_3_1__0__Impl rule__XBasicForLoopExpression__Group_3_1__1 ;
+    // InternalSignalDSL.g:12563: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:12304:1: ( rule__XBasicForLoopExpression__Group_3_1__0__Impl rule__XBasicForLoopExpression__Group_3_1__1 )
-            // InternalSignalDSL.g:12305:2: rule__XBasicForLoopExpression__Group_3_1__0__Impl rule__XBasicForLoopExpression__Group_3_1__1
+            // InternalSignalDSL.g:12567:1: ( rule__XBasicForLoopExpression__Group_3_1__0__Impl rule__XBasicForLoopExpression__Group_3_1__1 )
+            // InternalSignalDSL.g:12568:2: rule__XBasicForLoopExpression__Group_3_1__0__Impl rule__XBasicForLoopExpression__Group_3_1__1
             {
-            pushFollow(FOLLOW_86);
+            pushFollow(FOLLOW_91);
             rule__XBasicForLoopExpression__Group_3_1__0__Impl();
 
             state._fsp--;
@@ -41226,22 +42011,22 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group_3_1__0__Impl"
-    // InternalSignalDSL.g:12312:1: rule__XBasicForLoopExpression__Group_3_1__0__Impl : ( ',' ) ;
+    // InternalSignalDSL.g:12575: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:12316:1: ( ( ',' ) )
-            // InternalSignalDSL.g:12317:1: ( ',' )
+            // InternalSignalDSL.g:12579:1: ( ( ',' ) )
+            // InternalSignalDSL.g:12580:1: ( ',' )
             {
-            // InternalSignalDSL.g:12317:1: ( ',' )
-            // InternalSignalDSL.g:12318:2: ','
+            // InternalSignalDSL.g:12580:1: ( ',' )
+            // InternalSignalDSL.g:12581:2: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getCommaKeyword_3_1_0()); 
             }
-            match(input,78,FOLLOW_2); if (state.failed) return ;
+            match(input,76,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXBasicForLoopExpressionAccess().getCommaKeyword_3_1_0()); 
             }
@@ -41267,14 +42052,14 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group_3_1__1"
-    // InternalSignalDSL.g:12327:1: rule__XBasicForLoopExpression__Group_3_1__1 : rule__XBasicForLoopExpression__Group_3_1__1__Impl ;
+    // InternalSignalDSL.g:12590: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:12331:1: ( rule__XBasicForLoopExpression__Group_3_1__1__Impl )
-            // InternalSignalDSL.g:12332:2: rule__XBasicForLoopExpression__Group_3_1__1__Impl
+            // InternalSignalDSL.g:12594:1: ( rule__XBasicForLoopExpression__Group_3_1__1__Impl )
+            // InternalSignalDSL.g:12595:2: rule__XBasicForLoopExpression__Group_3_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XBasicForLoopExpression__Group_3_1__1__Impl();
@@ -41300,23 +42085,23 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group_3_1__1__Impl"
-    // InternalSignalDSL.g:12338:1: rule__XBasicForLoopExpression__Group_3_1__1__Impl : ( ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1 ) ) ;
+    // InternalSignalDSL.g:12601: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:12342:1: ( ( ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1 ) ) )
-            // InternalSignalDSL.g:12343:1: ( ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1 ) )
+            // InternalSignalDSL.g:12605:1: ( ( ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1 ) ) )
+            // InternalSignalDSL.g:12606:1: ( ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1 ) )
             {
-            // InternalSignalDSL.g:12343:1: ( ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1 ) )
-            // InternalSignalDSL.g:12344:2: ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1 )
+            // InternalSignalDSL.g:12606:1: ( ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1 ) )
+            // InternalSignalDSL.g:12607:2: ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getInitExpressionsAssignment_3_1_1()); 
             }
-            // InternalSignalDSL.g:12345:2: ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1 )
-            // InternalSignalDSL.g:12345:3: rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1
+            // InternalSignalDSL.g:12608:2: ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1 )
+            // InternalSignalDSL.g:12608:3: rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1();
@@ -41351,16 +42136,16 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group_7__0"
-    // InternalSignalDSL.g:12354:1: rule__XBasicForLoopExpression__Group_7__0 : rule__XBasicForLoopExpression__Group_7__0__Impl rule__XBasicForLoopExpression__Group_7__1 ;
+    // InternalSignalDSL.g:12617: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:12358:1: ( rule__XBasicForLoopExpression__Group_7__0__Impl rule__XBasicForLoopExpression__Group_7__1 )
-            // InternalSignalDSL.g:12359:2: rule__XBasicForLoopExpression__Group_7__0__Impl rule__XBasicForLoopExpression__Group_7__1
+            // InternalSignalDSL.g:12621:1: ( rule__XBasicForLoopExpression__Group_7__0__Impl rule__XBasicForLoopExpression__Group_7__1 )
+            // InternalSignalDSL.g:12622:2: rule__XBasicForLoopExpression__Group_7__0__Impl rule__XBasicForLoopExpression__Group_7__1
             {
-            pushFollow(FOLLOW_28);
+            pushFollow(FOLLOW_33);
             rule__XBasicForLoopExpression__Group_7__0__Impl();
 
             state._fsp--;
@@ -41389,23 +42174,23 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group_7__0__Impl"
-    // InternalSignalDSL.g:12366:1: rule__XBasicForLoopExpression__Group_7__0__Impl : ( ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0 ) ) ;
+    // InternalSignalDSL.g:12629: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:12370:1: ( ( ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0 ) ) )
-            // InternalSignalDSL.g:12371:1: ( ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0 ) )
+            // InternalSignalDSL.g:12633:1: ( ( ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0 ) ) )
+            // InternalSignalDSL.g:12634:1: ( ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0 ) )
             {
-            // InternalSignalDSL.g:12371:1: ( ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0 ) )
-            // InternalSignalDSL.g:12372:2: ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0 )
+            // InternalSignalDSL.g:12634:1: ( ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0 ) )
+            // InternalSignalDSL.g:12635:2: ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getUpdateExpressionsAssignment_7_0()); 
             }
-            // InternalSignalDSL.g:12373:2: ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0 )
-            // InternalSignalDSL.g:12373:3: rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0
+            // InternalSignalDSL.g:12636:2: ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0 )
+            // InternalSignalDSL.g:12636:3: rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0
             {
             pushFollow(FOLLOW_2);
             rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0();
@@ -41440,14 +42225,14 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group_7__1"
-    // InternalSignalDSL.g:12381:1: rule__XBasicForLoopExpression__Group_7__1 : rule__XBasicForLoopExpression__Group_7__1__Impl ;
+    // InternalSignalDSL.g:12644: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:12385:1: ( rule__XBasicForLoopExpression__Group_7__1__Impl )
-            // InternalSignalDSL.g:12386:2: rule__XBasicForLoopExpression__Group_7__1__Impl
+            // InternalSignalDSL.g:12648:1: ( rule__XBasicForLoopExpression__Group_7__1__Impl )
+            // InternalSignalDSL.g:12649:2: rule__XBasicForLoopExpression__Group_7__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XBasicForLoopExpression__Group_7__1__Impl();
@@ -41473,37 +42258,37 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group_7__1__Impl"
-    // InternalSignalDSL.g:12392:1: rule__XBasicForLoopExpression__Group_7__1__Impl : ( ( rule__XBasicForLoopExpression__Group_7_1__0 )* ) ;
+    // InternalSignalDSL.g:12655: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:12396:1: ( ( ( rule__XBasicForLoopExpression__Group_7_1__0 )* ) )
-            // InternalSignalDSL.g:12397:1: ( ( rule__XBasicForLoopExpression__Group_7_1__0 )* )
+            // InternalSignalDSL.g:12659:1: ( ( ( rule__XBasicForLoopExpression__Group_7_1__0 )* ) )
+            // InternalSignalDSL.g:12660:1: ( ( rule__XBasicForLoopExpression__Group_7_1__0 )* )
             {
-            // InternalSignalDSL.g:12397:1: ( ( rule__XBasicForLoopExpression__Group_7_1__0 )* )
-            // InternalSignalDSL.g:12398:2: ( rule__XBasicForLoopExpression__Group_7_1__0 )*
+            // InternalSignalDSL.g:12660:1: ( ( rule__XBasicForLoopExpression__Group_7_1__0 )* )
+            // InternalSignalDSL.g:12661:2: ( rule__XBasicForLoopExpression__Group_7_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getGroup_7_1()); 
             }
-            // InternalSignalDSL.g:12399:2: ( rule__XBasicForLoopExpression__Group_7_1__0 )*
-            loop104:
+            // InternalSignalDSL.g:12662:2: ( rule__XBasicForLoopExpression__Group_7_1__0 )*
+            loop107:
             do {
-                int alt104=2;
-                int LA104_0 = input.LA(1);
+                int alt107=2;
+                int LA107_0 = input.LA(1);
 
-                if ( (LA104_0==78) ) {
-                    alt104=1;
+                if ( (LA107_0==76) ) {
+                    alt107=1;
                 }
 
 
-                switch (alt104) {
+                switch (alt107) {
             	case 1 :
-            	    // InternalSignalDSL.g:12399:3: rule__XBasicForLoopExpression__Group_7_1__0
+            	    // InternalSignalDSL.g:12662:3: rule__XBasicForLoopExpression__Group_7_1__0
             	    {
-            	    pushFollow(FOLLOW_29);
+            	    pushFollow(FOLLOW_34);
             	    rule__XBasicForLoopExpression__Group_7_1__0();
 
             	    state._fsp--;
@@ -41513,7 +42298,7 @@
             	    break;
 
             	default :
-            	    break loop104;
+            	    break loop107;
                 }
             } while (true);
 
@@ -41542,16 +42327,16 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group_7_1__0"
-    // InternalSignalDSL.g:12408:1: rule__XBasicForLoopExpression__Group_7_1__0 : rule__XBasicForLoopExpression__Group_7_1__0__Impl rule__XBasicForLoopExpression__Group_7_1__1 ;
+    // InternalSignalDSL.g:12671: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:12412:1: ( rule__XBasicForLoopExpression__Group_7_1__0__Impl rule__XBasicForLoopExpression__Group_7_1__1 )
-            // InternalSignalDSL.g:12413:2: rule__XBasicForLoopExpression__Group_7_1__0__Impl rule__XBasicForLoopExpression__Group_7_1__1
+            // InternalSignalDSL.g:12675:1: ( rule__XBasicForLoopExpression__Group_7_1__0__Impl rule__XBasicForLoopExpression__Group_7_1__1 )
+            // InternalSignalDSL.g:12676:2: rule__XBasicForLoopExpression__Group_7_1__0__Impl rule__XBasicForLoopExpression__Group_7_1__1
             {
-            pushFollow(FOLLOW_30);
+            pushFollow(FOLLOW_35);
             rule__XBasicForLoopExpression__Group_7_1__0__Impl();
 
             state._fsp--;
@@ -41580,22 +42365,22 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group_7_1__0__Impl"
-    // InternalSignalDSL.g:12420:1: rule__XBasicForLoopExpression__Group_7_1__0__Impl : ( ',' ) ;
+    // InternalSignalDSL.g:12683: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:12424:1: ( ( ',' ) )
-            // InternalSignalDSL.g:12425:1: ( ',' )
+            // InternalSignalDSL.g:12687:1: ( ( ',' ) )
+            // InternalSignalDSL.g:12688:1: ( ',' )
             {
-            // InternalSignalDSL.g:12425:1: ( ',' )
-            // InternalSignalDSL.g:12426:2: ','
+            // InternalSignalDSL.g:12688:1: ( ',' )
+            // InternalSignalDSL.g:12689:2: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getCommaKeyword_7_1_0()); 
             }
-            match(input,78,FOLLOW_2); if (state.failed) return ;
+            match(input,76,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXBasicForLoopExpressionAccess().getCommaKeyword_7_1_0()); 
             }
@@ -41621,14 +42406,14 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group_7_1__1"
-    // InternalSignalDSL.g:12435:1: rule__XBasicForLoopExpression__Group_7_1__1 : rule__XBasicForLoopExpression__Group_7_1__1__Impl ;
+    // InternalSignalDSL.g:12698: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:12439:1: ( rule__XBasicForLoopExpression__Group_7_1__1__Impl )
-            // InternalSignalDSL.g:12440:2: rule__XBasicForLoopExpression__Group_7_1__1__Impl
+            // InternalSignalDSL.g:12702:1: ( rule__XBasicForLoopExpression__Group_7_1__1__Impl )
+            // InternalSignalDSL.g:12703:2: rule__XBasicForLoopExpression__Group_7_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XBasicForLoopExpression__Group_7_1__1__Impl();
@@ -41654,23 +42439,23 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group_7_1__1__Impl"
-    // InternalSignalDSL.g:12446:1: rule__XBasicForLoopExpression__Group_7_1__1__Impl : ( ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1 ) ) ;
+    // InternalSignalDSL.g:12709: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:12450:1: ( ( ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1 ) ) )
-            // InternalSignalDSL.g:12451:1: ( ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1 ) )
+            // InternalSignalDSL.g:12713:1: ( ( ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1 ) ) )
+            // InternalSignalDSL.g:12714:1: ( ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1 ) )
             {
-            // InternalSignalDSL.g:12451:1: ( ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1 ) )
-            // InternalSignalDSL.g:12452:2: ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1 )
+            // InternalSignalDSL.g:12714:1: ( ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1 ) )
+            // InternalSignalDSL.g:12715:2: ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getUpdateExpressionsAssignment_7_1_1()); 
             }
-            // InternalSignalDSL.g:12453:2: ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1 )
-            // InternalSignalDSL.g:12453:3: rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1
+            // InternalSignalDSL.g:12716:2: ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1 )
+            // InternalSignalDSL.g:12716:3: rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1();
@@ -41705,16 +42490,16 @@
 
 
     // $ANTLR start "rule__XWhileExpression__Group__0"
-    // InternalSignalDSL.g:12462:1: rule__XWhileExpression__Group__0 : rule__XWhileExpression__Group__0__Impl rule__XWhileExpression__Group__1 ;
+    // InternalSignalDSL.g:12725: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:12466:1: ( rule__XWhileExpression__Group__0__Impl rule__XWhileExpression__Group__1 )
-            // InternalSignalDSL.g:12467:2: rule__XWhileExpression__Group__0__Impl rule__XWhileExpression__Group__1
+            // InternalSignalDSL.g:12729:1: ( rule__XWhileExpression__Group__0__Impl rule__XWhileExpression__Group__1 )
+            // InternalSignalDSL.g:12730:2: rule__XWhileExpression__Group__0__Impl rule__XWhileExpression__Group__1
             {
-            pushFollow(FOLLOW_87);
+            pushFollow(FOLLOW_92);
             rule__XWhileExpression__Group__0__Impl();
 
             state._fsp--;
@@ -41743,23 +42528,23 @@
 
 
     // $ANTLR start "rule__XWhileExpression__Group__0__Impl"
-    // InternalSignalDSL.g:12474:1: rule__XWhileExpression__Group__0__Impl : ( () ) ;
+    // InternalSignalDSL.g:12737:1: rule__XWhileExpression__Group__0__Impl : ( () ) ;
     public final void rule__XWhileExpression__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:12478:1: ( ( () ) )
-            // InternalSignalDSL.g:12479:1: ( () )
+            // InternalSignalDSL.g:12741:1: ( ( () ) )
+            // InternalSignalDSL.g:12742:1: ( () )
             {
-            // InternalSignalDSL.g:12479:1: ( () )
-            // InternalSignalDSL.g:12480:2: ()
+            // InternalSignalDSL.g:12742:1: ( () )
+            // InternalSignalDSL.g:12743:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXWhileExpressionAccess().getXWhileExpressionAction_0()); 
             }
-            // InternalSignalDSL.g:12481:2: ()
-            // InternalSignalDSL.g:12481:3: 
+            // InternalSignalDSL.g:12744:2: ()
+            // InternalSignalDSL.g:12744:3: 
             {
             }
 
@@ -41784,16 +42569,16 @@
 
 
     // $ANTLR start "rule__XWhileExpression__Group__1"
-    // InternalSignalDSL.g:12489:1: rule__XWhileExpression__Group__1 : rule__XWhileExpression__Group__1__Impl rule__XWhileExpression__Group__2 ;
+    // InternalSignalDSL.g:12752: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:12493:1: ( rule__XWhileExpression__Group__1__Impl rule__XWhileExpression__Group__2 )
-            // InternalSignalDSL.g:12494:2: rule__XWhileExpression__Group__1__Impl rule__XWhileExpression__Group__2
+            // InternalSignalDSL.g:12756:1: ( rule__XWhileExpression__Group__1__Impl rule__XWhileExpression__Group__2 )
+            // InternalSignalDSL.g:12757:2: rule__XWhileExpression__Group__1__Impl rule__XWhileExpression__Group__2
             {
-            pushFollow(FOLLOW_26);
+            pushFollow(FOLLOW_31);
             rule__XWhileExpression__Group__1__Impl();
 
             state._fsp--;
@@ -41822,22 +42607,22 @@
 
 
     // $ANTLR start "rule__XWhileExpression__Group__1__Impl"
-    // InternalSignalDSL.g:12501:1: rule__XWhileExpression__Group__1__Impl : ( 'while' ) ;
+    // InternalSignalDSL.g:12764:1: rule__XWhileExpression__Group__1__Impl : ( 'while' ) ;
     public final void rule__XWhileExpression__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:12505:1: ( ( 'while' ) )
-            // InternalSignalDSL.g:12506:1: ( 'while' )
+            // InternalSignalDSL.g:12768:1: ( ( 'while' ) )
+            // InternalSignalDSL.g:12769:1: ( 'while' )
             {
-            // InternalSignalDSL.g:12506:1: ( 'while' )
-            // InternalSignalDSL.g:12507:2: 'while'
+            // InternalSignalDSL.g:12769:1: ( 'while' )
+            // InternalSignalDSL.g:12770:2: 'while'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXWhileExpressionAccess().getWhileKeyword_1()); 
             }
-            match(input,90,FOLLOW_2); if (state.failed) return ;
+            match(input,88,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXWhileExpressionAccess().getWhileKeyword_1()); 
             }
@@ -41863,16 +42648,16 @@
 
 
     // $ANTLR start "rule__XWhileExpression__Group__2"
-    // InternalSignalDSL.g:12516:1: rule__XWhileExpression__Group__2 : rule__XWhileExpression__Group__2__Impl rule__XWhileExpression__Group__3 ;
+    // InternalSignalDSL.g:12779: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:12520:1: ( rule__XWhileExpression__Group__2__Impl rule__XWhileExpression__Group__3 )
-            // InternalSignalDSL.g:12521:2: rule__XWhileExpression__Group__2__Impl rule__XWhileExpression__Group__3
+            // InternalSignalDSL.g:12783:1: ( rule__XWhileExpression__Group__2__Impl rule__XWhileExpression__Group__3 )
+            // InternalSignalDSL.g:12784:2: rule__XWhileExpression__Group__2__Impl rule__XWhileExpression__Group__3
             {
-            pushFollow(FOLLOW_30);
+            pushFollow(FOLLOW_35);
             rule__XWhileExpression__Group__2__Impl();
 
             state._fsp--;
@@ -41901,22 +42686,22 @@
 
 
     // $ANTLR start "rule__XWhileExpression__Group__2__Impl"
-    // InternalSignalDSL.g:12528:1: rule__XWhileExpression__Group__2__Impl : ( '(' ) ;
+    // InternalSignalDSL.g:12791:1: rule__XWhileExpression__Group__2__Impl : ( '(' ) ;
     public final void rule__XWhileExpression__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:12532:1: ( ( '(' ) )
-            // InternalSignalDSL.g:12533:1: ( '(' )
+            // InternalSignalDSL.g:12795:1: ( ( '(' ) )
+            // InternalSignalDSL.g:12796:1: ( '(' )
             {
-            // InternalSignalDSL.g:12533:1: ( '(' )
-            // InternalSignalDSL.g:12534:2: '('
+            // InternalSignalDSL.g:12796:1: ( '(' )
+            // InternalSignalDSL.g:12797:2: '('
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXWhileExpressionAccess().getLeftParenthesisKeyword_2()); 
             }
-            match(input,76,FOLLOW_2); if (state.failed) return ;
+            match(input,74,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXWhileExpressionAccess().getLeftParenthesisKeyword_2()); 
             }
@@ -41942,16 +42727,16 @@
 
 
     // $ANTLR start "rule__XWhileExpression__Group__3"
-    // InternalSignalDSL.g:12543:1: rule__XWhileExpression__Group__3 : rule__XWhileExpression__Group__3__Impl rule__XWhileExpression__Group__4 ;
+    // InternalSignalDSL.g:12806: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:12547:1: ( rule__XWhileExpression__Group__3__Impl rule__XWhileExpression__Group__4 )
-            // InternalSignalDSL.g:12548:2: rule__XWhileExpression__Group__3__Impl rule__XWhileExpression__Group__4
+            // InternalSignalDSL.g:12810:1: ( rule__XWhileExpression__Group__3__Impl rule__XWhileExpression__Group__4 )
+            // InternalSignalDSL.g:12811:2: rule__XWhileExpression__Group__3__Impl rule__XWhileExpression__Group__4
             {
-            pushFollow(FOLLOW_75);
+            pushFollow(FOLLOW_80);
             rule__XWhileExpression__Group__3__Impl();
 
             state._fsp--;
@@ -41980,23 +42765,23 @@
 
 
     // $ANTLR start "rule__XWhileExpression__Group__3__Impl"
-    // InternalSignalDSL.g:12555:1: rule__XWhileExpression__Group__3__Impl : ( ( rule__XWhileExpression__PredicateAssignment_3 ) ) ;
+    // InternalSignalDSL.g:12818: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:12559:1: ( ( ( rule__XWhileExpression__PredicateAssignment_3 ) ) )
-            // InternalSignalDSL.g:12560:1: ( ( rule__XWhileExpression__PredicateAssignment_3 ) )
+            // InternalSignalDSL.g:12822:1: ( ( ( rule__XWhileExpression__PredicateAssignment_3 ) ) )
+            // InternalSignalDSL.g:12823:1: ( ( rule__XWhileExpression__PredicateAssignment_3 ) )
             {
-            // InternalSignalDSL.g:12560:1: ( ( rule__XWhileExpression__PredicateAssignment_3 ) )
-            // InternalSignalDSL.g:12561:2: ( rule__XWhileExpression__PredicateAssignment_3 )
+            // InternalSignalDSL.g:12823:1: ( ( rule__XWhileExpression__PredicateAssignment_3 ) )
+            // InternalSignalDSL.g:12824:2: ( rule__XWhileExpression__PredicateAssignment_3 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXWhileExpressionAccess().getPredicateAssignment_3()); 
             }
-            // InternalSignalDSL.g:12562:2: ( rule__XWhileExpression__PredicateAssignment_3 )
-            // InternalSignalDSL.g:12562:3: rule__XWhileExpression__PredicateAssignment_3
+            // InternalSignalDSL.g:12825:2: ( rule__XWhileExpression__PredicateAssignment_3 )
+            // InternalSignalDSL.g:12825:3: rule__XWhileExpression__PredicateAssignment_3
             {
             pushFollow(FOLLOW_2);
             rule__XWhileExpression__PredicateAssignment_3();
@@ -42031,16 +42816,16 @@
 
 
     // $ANTLR start "rule__XWhileExpression__Group__4"
-    // InternalSignalDSL.g:12570:1: rule__XWhileExpression__Group__4 : rule__XWhileExpression__Group__4__Impl rule__XWhileExpression__Group__5 ;
+    // InternalSignalDSL.g:12833: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:12574:1: ( rule__XWhileExpression__Group__4__Impl rule__XWhileExpression__Group__5 )
-            // InternalSignalDSL.g:12575:2: rule__XWhileExpression__Group__4__Impl rule__XWhileExpression__Group__5
+            // InternalSignalDSL.g:12837:1: ( rule__XWhileExpression__Group__4__Impl rule__XWhileExpression__Group__5 )
+            // InternalSignalDSL.g:12838:2: rule__XWhileExpression__Group__4__Impl rule__XWhileExpression__Group__5
             {
-            pushFollow(FOLLOW_30);
+            pushFollow(FOLLOW_35);
             rule__XWhileExpression__Group__4__Impl();
 
             state._fsp--;
@@ -42069,22 +42854,22 @@
 
 
     // $ANTLR start "rule__XWhileExpression__Group__4__Impl"
-    // InternalSignalDSL.g:12582:1: rule__XWhileExpression__Group__4__Impl : ( ')' ) ;
+    // InternalSignalDSL.g:12845:1: rule__XWhileExpression__Group__4__Impl : ( ')' ) ;
     public final void rule__XWhileExpression__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:12586:1: ( ( ')' ) )
-            // InternalSignalDSL.g:12587:1: ( ')' )
+            // InternalSignalDSL.g:12849:1: ( ( ')' ) )
+            // InternalSignalDSL.g:12850:1: ( ')' )
             {
-            // InternalSignalDSL.g:12587:1: ( ')' )
-            // InternalSignalDSL.g:12588:2: ')'
+            // InternalSignalDSL.g:12850:1: ( ')' )
+            // InternalSignalDSL.g:12851:2: ')'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXWhileExpressionAccess().getRightParenthesisKeyword_4()); 
             }
-            match(input,77,FOLLOW_2); if (state.failed) return ;
+            match(input,75,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXWhileExpressionAccess().getRightParenthesisKeyword_4()); 
             }
@@ -42110,14 +42895,14 @@
 
 
     // $ANTLR start "rule__XWhileExpression__Group__5"
-    // InternalSignalDSL.g:12597:1: rule__XWhileExpression__Group__5 : rule__XWhileExpression__Group__5__Impl ;
+    // InternalSignalDSL.g:12860: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:12601:1: ( rule__XWhileExpression__Group__5__Impl )
-            // InternalSignalDSL.g:12602:2: rule__XWhileExpression__Group__5__Impl
+            // InternalSignalDSL.g:12864:1: ( rule__XWhileExpression__Group__5__Impl )
+            // InternalSignalDSL.g:12865:2: rule__XWhileExpression__Group__5__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XWhileExpression__Group__5__Impl();
@@ -42143,23 +42928,23 @@
 
 
     // $ANTLR start "rule__XWhileExpression__Group__5__Impl"
-    // InternalSignalDSL.g:12608:1: rule__XWhileExpression__Group__5__Impl : ( ( rule__XWhileExpression__BodyAssignment_5 ) ) ;
+    // InternalSignalDSL.g:12871: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:12612:1: ( ( ( rule__XWhileExpression__BodyAssignment_5 ) ) )
-            // InternalSignalDSL.g:12613:1: ( ( rule__XWhileExpression__BodyAssignment_5 ) )
+            // InternalSignalDSL.g:12875:1: ( ( ( rule__XWhileExpression__BodyAssignment_5 ) ) )
+            // InternalSignalDSL.g:12876:1: ( ( rule__XWhileExpression__BodyAssignment_5 ) )
             {
-            // InternalSignalDSL.g:12613:1: ( ( rule__XWhileExpression__BodyAssignment_5 ) )
-            // InternalSignalDSL.g:12614:2: ( rule__XWhileExpression__BodyAssignment_5 )
+            // InternalSignalDSL.g:12876:1: ( ( rule__XWhileExpression__BodyAssignment_5 ) )
+            // InternalSignalDSL.g:12877:2: ( rule__XWhileExpression__BodyAssignment_5 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXWhileExpressionAccess().getBodyAssignment_5()); 
             }
-            // InternalSignalDSL.g:12615:2: ( rule__XWhileExpression__BodyAssignment_5 )
-            // InternalSignalDSL.g:12615:3: rule__XWhileExpression__BodyAssignment_5
+            // InternalSignalDSL.g:12878:2: ( rule__XWhileExpression__BodyAssignment_5 )
+            // InternalSignalDSL.g:12878:3: rule__XWhileExpression__BodyAssignment_5
             {
             pushFollow(FOLLOW_2);
             rule__XWhileExpression__BodyAssignment_5();
@@ -42194,16 +42979,16 @@
 
 
     // $ANTLR start "rule__XDoWhileExpression__Group__0"
-    // InternalSignalDSL.g:12624:1: rule__XDoWhileExpression__Group__0 : rule__XDoWhileExpression__Group__0__Impl rule__XDoWhileExpression__Group__1 ;
+    // InternalSignalDSL.g:12887: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:12628:1: ( rule__XDoWhileExpression__Group__0__Impl rule__XDoWhileExpression__Group__1 )
-            // InternalSignalDSL.g:12629:2: rule__XDoWhileExpression__Group__0__Impl rule__XDoWhileExpression__Group__1
+            // InternalSignalDSL.g:12891:1: ( rule__XDoWhileExpression__Group__0__Impl rule__XDoWhileExpression__Group__1 )
+            // InternalSignalDSL.g:12892:2: rule__XDoWhileExpression__Group__0__Impl rule__XDoWhileExpression__Group__1
             {
-            pushFollow(FOLLOW_88);
+            pushFollow(FOLLOW_93);
             rule__XDoWhileExpression__Group__0__Impl();
 
             state._fsp--;
@@ -42232,23 +43017,23 @@
 
 
     // $ANTLR start "rule__XDoWhileExpression__Group__0__Impl"
-    // InternalSignalDSL.g:12636:1: rule__XDoWhileExpression__Group__0__Impl : ( () ) ;
+    // InternalSignalDSL.g:12899:1: rule__XDoWhileExpression__Group__0__Impl : ( () ) ;
     public final void rule__XDoWhileExpression__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:12640:1: ( ( () ) )
-            // InternalSignalDSL.g:12641:1: ( () )
+            // InternalSignalDSL.g:12903:1: ( ( () ) )
+            // InternalSignalDSL.g:12904:1: ( () )
             {
-            // InternalSignalDSL.g:12641:1: ( () )
-            // InternalSignalDSL.g:12642:2: ()
+            // InternalSignalDSL.g:12904:1: ( () )
+            // InternalSignalDSL.g:12905:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXDoWhileExpressionAccess().getXDoWhileExpressionAction_0()); 
             }
-            // InternalSignalDSL.g:12643:2: ()
-            // InternalSignalDSL.g:12643:3: 
+            // InternalSignalDSL.g:12906:2: ()
+            // InternalSignalDSL.g:12906:3: 
             {
             }
 
@@ -42273,16 +43058,16 @@
 
 
     // $ANTLR start "rule__XDoWhileExpression__Group__1"
-    // InternalSignalDSL.g:12651:1: rule__XDoWhileExpression__Group__1 : rule__XDoWhileExpression__Group__1__Impl rule__XDoWhileExpression__Group__2 ;
+    // InternalSignalDSL.g:12914: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:12655:1: ( rule__XDoWhileExpression__Group__1__Impl rule__XDoWhileExpression__Group__2 )
-            // InternalSignalDSL.g:12656:2: rule__XDoWhileExpression__Group__1__Impl rule__XDoWhileExpression__Group__2
+            // InternalSignalDSL.g:12918:1: ( rule__XDoWhileExpression__Group__1__Impl rule__XDoWhileExpression__Group__2 )
+            // InternalSignalDSL.g:12919:2: rule__XDoWhileExpression__Group__1__Impl rule__XDoWhileExpression__Group__2
             {
-            pushFollow(FOLLOW_30);
+            pushFollow(FOLLOW_35);
             rule__XDoWhileExpression__Group__1__Impl();
 
             state._fsp--;
@@ -42311,22 +43096,22 @@
 
 
     // $ANTLR start "rule__XDoWhileExpression__Group__1__Impl"
-    // InternalSignalDSL.g:12663:1: rule__XDoWhileExpression__Group__1__Impl : ( 'do' ) ;
+    // InternalSignalDSL.g:12926:1: rule__XDoWhileExpression__Group__1__Impl : ( 'do' ) ;
     public final void rule__XDoWhileExpression__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:12667:1: ( ( 'do' ) )
-            // InternalSignalDSL.g:12668:1: ( 'do' )
+            // InternalSignalDSL.g:12930:1: ( ( 'do' ) )
+            // InternalSignalDSL.g:12931:1: ( 'do' )
             {
-            // InternalSignalDSL.g:12668:1: ( 'do' )
-            // InternalSignalDSL.g:12669:2: 'do'
+            // InternalSignalDSL.g:12931:1: ( 'do' )
+            // InternalSignalDSL.g:12932:2: 'do'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXDoWhileExpressionAccess().getDoKeyword_1()); 
             }
-            match(input,91,FOLLOW_2); if (state.failed) return ;
+            match(input,89,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXDoWhileExpressionAccess().getDoKeyword_1()); 
             }
@@ -42352,16 +43137,16 @@
 
 
     // $ANTLR start "rule__XDoWhileExpression__Group__2"
-    // InternalSignalDSL.g:12678:1: rule__XDoWhileExpression__Group__2 : rule__XDoWhileExpression__Group__2__Impl rule__XDoWhileExpression__Group__3 ;
+    // InternalSignalDSL.g:12941: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:12682:1: ( rule__XDoWhileExpression__Group__2__Impl rule__XDoWhileExpression__Group__3 )
-            // InternalSignalDSL.g:12683:2: rule__XDoWhileExpression__Group__2__Impl rule__XDoWhileExpression__Group__3
+            // InternalSignalDSL.g:12945:1: ( rule__XDoWhileExpression__Group__2__Impl rule__XDoWhileExpression__Group__3 )
+            // InternalSignalDSL.g:12946:2: rule__XDoWhileExpression__Group__2__Impl rule__XDoWhileExpression__Group__3
             {
-            pushFollow(FOLLOW_87);
+            pushFollow(FOLLOW_92);
             rule__XDoWhileExpression__Group__2__Impl();
 
             state._fsp--;
@@ -42390,23 +43175,23 @@
 
 
     // $ANTLR start "rule__XDoWhileExpression__Group__2__Impl"
-    // InternalSignalDSL.g:12690:1: rule__XDoWhileExpression__Group__2__Impl : ( ( rule__XDoWhileExpression__BodyAssignment_2 ) ) ;
+    // InternalSignalDSL.g:12953: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:12694:1: ( ( ( rule__XDoWhileExpression__BodyAssignment_2 ) ) )
-            // InternalSignalDSL.g:12695:1: ( ( rule__XDoWhileExpression__BodyAssignment_2 ) )
+            // InternalSignalDSL.g:12957:1: ( ( ( rule__XDoWhileExpression__BodyAssignment_2 ) ) )
+            // InternalSignalDSL.g:12958:1: ( ( rule__XDoWhileExpression__BodyAssignment_2 ) )
             {
-            // InternalSignalDSL.g:12695:1: ( ( rule__XDoWhileExpression__BodyAssignment_2 ) )
-            // InternalSignalDSL.g:12696:2: ( rule__XDoWhileExpression__BodyAssignment_2 )
+            // InternalSignalDSL.g:12958:1: ( ( rule__XDoWhileExpression__BodyAssignment_2 ) )
+            // InternalSignalDSL.g:12959:2: ( rule__XDoWhileExpression__BodyAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXDoWhileExpressionAccess().getBodyAssignment_2()); 
             }
-            // InternalSignalDSL.g:12697:2: ( rule__XDoWhileExpression__BodyAssignment_2 )
-            // InternalSignalDSL.g:12697:3: rule__XDoWhileExpression__BodyAssignment_2
+            // InternalSignalDSL.g:12960:2: ( rule__XDoWhileExpression__BodyAssignment_2 )
+            // InternalSignalDSL.g:12960:3: rule__XDoWhileExpression__BodyAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__XDoWhileExpression__BodyAssignment_2();
@@ -42441,16 +43226,16 @@
 
 
     // $ANTLR start "rule__XDoWhileExpression__Group__3"
-    // InternalSignalDSL.g:12705:1: rule__XDoWhileExpression__Group__3 : rule__XDoWhileExpression__Group__3__Impl rule__XDoWhileExpression__Group__4 ;
+    // InternalSignalDSL.g:12968: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:12709:1: ( rule__XDoWhileExpression__Group__3__Impl rule__XDoWhileExpression__Group__4 )
-            // InternalSignalDSL.g:12710:2: rule__XDoWhileExpression__Group__3__Impl rule__XDoWhileExpression__Group__4
+            // InternalSignalDSL.g:12972:1: ( rule__XDoWhileExpression__Group__3__Impl rule__XDoWhileExpression__Group__4 )
+            // InternalSignalDSL.g:12973:2: rule__XDoWhileExpression__Group__3__Impl rule__XDoWhileExpression__Group__4
             {
-            pushFollow(FOLLOW_26);
+            pushFollow(FOLLOW_31);
             rule__XDoWhileExpression__Group__3__Impl();
 
             state._fsp--;
@@ -42479,22 +43264,22 @@
 
 
     // $ANTLR start "rule__XDoWhileExpression__Group__3__Impl"
-    // InternalSignalDSL.g:12717:1: rule__XDoWhileExpression__Group__3__Impl : ( 'while' ) ;
+    // InternalSignalDSL.g:12980:1: rule__XDoWhileExpression__Group__3__Impl : ( 'while' ) ;
     public final void rule__XDoWhileExpression__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:12721:1: ( ( 'while' ) )
-            // InternalSignalDSL.g:12722:1: ( 'while' )
+            // InternalSignalDSL.g:12984:1: ( ( 'while' ) )
+            // InternalSignalDSL.g:12985:1: ( 'while' )
             {
-            // InternalSignalDSL.g:12722:1: ( 'while' )
-            // InternalSignalDSL.g:12723:2: 'while'
+            // InternalSignalDSL.g:12985:1: ( 'while' )
+            // InternalSignalDSL.g:12986:2: 'while'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXDoWhileExpressionAccess().getWhileKeyword_3()); 
             }
-            match(input,90,FOLLOW_2); if (state.failed) return ;
+            match(input,88,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXDoWhileExpressionAccess().getWhileKeyword_3()); 
             }
@@ -42520,16 +43305,16 @@
 
 
     // $ANTLR start "rule__XDoWhileExpression__Group__4"
-    // InternalSignalDSL.g:12732:1: rule__XDoWhileExpression__Group__4 : rule__XDoWhileExpression__Group__4__Impl rule__XDoWhileExpression__Group__5 ;
+    // InternalSignalDSL.g:12995: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:12736:1: ( rule__XDoWhileExpression__Group__4__Impl rule__XDoWhileExpression__Group__5 )
-            // InternalSignalDSL.g:12737:2: rule__XDoWhileExpression__Group__4__Impl rule__XDoWhileExpression__Group__5
+            // InternalSignalDSL.g:12999:1: ( rule__XDoWhileExpression__Group__4__Impl rule__XDoWhileExpression__Group__5 )
+            // InternalSignalDSL.g:13000:2: rule__XDoWhileExpression__Group__4__Impl rule__XDoWhileExpression__Group__5
             {
-            pushFollow(FOLLOW_30);
+            pushFollow(FOLLOW_35);
             rule__XDoWhileExpression__Group__4__Impl();
 
             state._fsp--;
@@ -42558,22 +43343,22 @@
 
 
     // $ANTLR start "rule__XDoWhileExpression__Group__4__Impl"
-    // InternalSignalDSL.g:12744:1: rule__XDoWhileExpression__Group__4__Impl : ( '(' ) ;
+    // InternalSignalDSL.g:13007:1: rule__XDoWhileExpression__Group__4__Impl : ( '(' ) ;
     public final void rule__XDoWhileExpression__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:12748:1: ( ( '(' ) )
-            // InternalSignalDSL.g:12749:1: ( '(' )
+            // InternalSignalDSL.g:13011:1: ( ( '(' ) )
+            // InternalSignalDSL.g:13012:1: ( '(' )
             {
-            // InternalSignalDSL.g:12749:1: ( '(' )
-            // InternalSignalDSL.g:12750:2: '('
+            // InternalSignalDSL.g:13012:1: ( '(' )
+            // InternalSignalDSL.g:13013:2: '('
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXDoWhileExpressionAccess().getLeftParenthesisKeyword_4()); 
             }
-            match(input,76,FOLLOW_2); if (state.failed) return ;
+            match(input,74,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXDoWhileExpressionAccess().getLeftParenthesisKeyword_4()); 
             }
@@ -42599,16 +43384,16 @@
 
 
     // $ANTLR start "rule__XDoWhileExpression__Group__5"
-    // InternalSignalDSL.g:12759:1: rule__XDoWhileExpression__Group__5 : rule__XDoWhileExpression__Group__5__Impl rule__XDoWhileExpression__Group__6 ;
+    // InternalSignalDSL.g:13022: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:12763:1: ( rule__XDoWhileExpression__Group__5__Impl rule__XDoWhileExpression__Group__6 )
-            // InternalSignalDSL.g:12764:2: rule__XDoWhileExpression__Group__5__Impl rule__XDoWhileExpression__Group__6
+            // InternalSignalDSL.g:13026:1: ( rule__XDoWhileExpression__Group__5__Impl rule__XDoWhileExpression__Group__6 )
+            // InternalSignalDSL.g:13027:2: rule__XDoWhileExpression__Group__5__Impl rule__XDoWhileExpression__Group__6
             {
-            pushFollow(FOLLOW_75);
+            pushFollow(FOLLOW_80);
             rule__XDoWhileExpression__Group__5__Impl();
 
             state._fsp--;
@@ -42637,23 +43422,23 @@
 
 
     // $ANTLR start "rule__XDoWhileExpression__Group__5__Impl"
-    // InternalSignalDSL.g:12771:1: rule__XDoWhileExpression__Group__5__Impl : ( ( rule__XDoWhileExpression__PredicateAssignment_5 ) ) ;
+    // InternalSignalDSL.g:13034: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:12775:1: ( ( ( rule__XDoWhileExpression__PredicateAssignment_5 ) ) )
-            // InternalSignalDSL.g:12776:1: ( ( rule__XDoWhileExpression__PredicateAssignment_5 ) )
+            // InternalSignalDSL.g:13038:1: ( ( ( rule__XDoWhileExpression__PredicateAssignment_5 ) ) )
+            // InternalSignalDSL.g:13039:1: ( ( rule__XDoWhileExpression__PredicateAssignment_5 ) )
             {
-            // InternalSignalDSL.g:12776:1: ( ( rule__XDoWhileExpression__PredicateAssignment_5 ) )
-            // InternalSignalDSL.g:12777:2: ( rule__XDoWhileExpression__PredicateAssignment_5 )
+            // InternalSignalDSL.g:13039:1: ( ( rule__XDoWhileExpression__PredicateAssignment_5 ) )
+            // InternalSignalDSL.g:13040:2: ( rule__XDoWhileExpression__PredicateAssignment_5 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXDoWhileExpressionAccess().getPredicateAssignment_5()); 
             }
-            // InternalSignalDSL.g:12778:2: ( rule__XDoWhileExpression__PredicateAssignment_5 )
-            // InternalSignalDSL.g:12778:3: rule__XDoWhileExpression__PredicateAssignment_5
+            // InternalSignalDSL.g:13041:2: ( rule__XDoWhileExpression__PredicateAssignment_5 )
+            // InternalSignalDSL.g:13041:3: rule__XDoWhileExpression__PredicateAssignment_5
             {
             pushFollow(FOLLOW_2);
             rule__XDoWhileExpression__PredicateAssignment_5();
@@ -42688,14 +43473,14 @@
 
 
     // $ANTLR start "rule__XDoWhileExpression__Group__6"
-    // InternalSignalDSL.g:12786:1: rule__XDoWhileExpression__Group__6 : rule__XDoWhileExpression__Group__6__Impl ;
+    // InternalSignalDSL.g:13049: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:12790:1: ( rule__XDoWhileExpression__Group__6__Impl )
-            // InternalSignalDSL.g:12791:2: rule__XDoWhileExpression__Group__6__Impl
+            // InternalSignalDSL.g:13053:1: ( rule__XDoWhileExpression__Group__6__Impl )
+            // InternalSignalDSL.g:13054:2: rule__XDoWhileExpression__Group__6__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XDoWhileExpression__Group__6__Impl();
@@ -42721,22 +43506,22 @@
 
 
     // $ANTLR start "rule__XDoWhileExpression__Group__6__Impl"
-    // InternalSignalDSL.g:12797:1: rule__XDoWhileExpression__Group__6__Impl : ( ')' ) ;
+    // InternalSignalDSL.g:13060:1: rule__XDoWhileExpression__Group__6__Impl : ( ')' ) ;
     public final void rule__XDoWhileExpression__Group__6__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:12801:1: ( ( ')' ) )
-            // InternalSignalDSL.g:12802:1: ( ')' )
+            // InternalSignalDSL.g:13064:1: ( ( ')' ) )
+            // InternalSignalDSL.g:13065:1: ( ')' )
             {
-            // InternalSignalDSL.g:12802:1: ( ')' )
-            // InternalSignalDSL.g:12803:2: ')'
+            // InternalSignalDSL.g:13065:1: ( ')' )
+            // InternalSignalDSL.g:13066:2: ')'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXDoWhileExpressionAccess().getRightParenthesisKeyword_6()); 
             }
-            match(input,77,FOLLOW_2); if (state.failed) return ;
+            match(input,75,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXDoWhileExpressionAccess().getRightParenthesisKeyword_6()); 
             }
@@ -42762,14 +43547,14 @@
 
 
     // $ANTLR start "rule__XBlockExpression__Group__0"
-    // InternalSignalDSL.g:12813:1: rule__XBlockExpression__Group__0 : rule__XBlockExpression__Group__0__Impl rule__XBlockExpression__Group__1 ;
+    // InternalSignalDSL.g:13076: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:12817:1: ( rule__XBlockExpression__Group__0__Impl rule__XBlockExpression__Group__1 )
-            // InternalSignalDSL.g:12818:2: rule__XBlockExpression__Group__0__Impl rule__XBlockExpression__Group__1
+            // InternalSignalDSL.g:13080:1: ( rule__XBlockExpression__Group__0__Impl rule__XBlockExpression__Group__1 )
+            // InternalSignalDSL.g:13081:2: rule__XBlockExpression__Group__0__Impl rule__XBlockExpression__Group__1
             {
             pushFollow(FOLLOW_8);
             rule__XBlockExpression__Group__0__Impl();
@@ -42800,23 +43585,23 @@
 
 
     // $ANTLR start "rule__XBlockExpression__Group__0__Impl"
-    // InternalSignalDSL.g:12825:1: rule__XBlockExpression__Group__0__Impl : ( () ) ;
+    // InternalSignalDSL.g:13088:1: rule__XBlockExpression__Group__0__Impl : ( () ) ;
     public final void rule__XBlockExpression__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:12829:1: ( ( () ) )
-            // InternalSignalDSL.g:12830:1: ( () )
+            // InternalSignalDSL.g:13092:1: ( ( () ) )
+            // InternalSignalDSL.g:13093:1: ( () )
             {
-            // InternalSignalDSL.g:12830:1: ( () )
-            // InternalSignalDSL.g:12831:2: ()
+            // InternalSignalDSL.g:13093:1: ( () )
+            // InternalSignalDSL.g:13094:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBlockExpressionAccess().getXBlockExpressionAction_0()); 
             }
-            // InternalSignalDSL.g:12832:2: ()
-            // InternalSignalDSL.g:12832:3: 
+            // InternalSignalDSL.g:13095:2: ()
+            // InternalSignalDSL.g:13095:3: 
             {
             }
 
@@ -42841,16 +43626,16 @@
 
 
     // $ANTLR start "rule__XBlockExpression__Group__1"
-    // InternalSignalDSL.g:12840:1: rule__XBlockExpression__Group__1 : rule__XBlockExpression__Group__1__Impl rule__XBlockExpression__Group__2 ;
+    // InternalSignalDSL.g:13103: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:12844:1: ( rule__XBlockExpression__Group__1__Impl rule__XBlockExpression__Group__2 )
-            // InternalSignalDSL.g:12845:2: rule__XBlockExpression__Group__1__Impl rule__XBlockExpression__Group__2
+            // InternalSignalDSL.g:13107:1: ( rule__XBlockExpression__Group__1__Impl rule__XBlockExpression__Group__2 )
+            // InternalSignalDSL.g:13108:2: rule__XBlockExpression__Group__1__Impl rule__XBlockExpression__Group__2
             {
-            pushFollow(FOLLOW_89);
+            pushFollow(FOLLOW_94);
             rule__XBlockExpression__Group__1__Impl();
 
             state._fsp--;
@@ -42879,22 +43664,22 @@
 
 
     // $ANTLR start "rule__XBlockExpression__Group__1__Impl"
-    // InternalSignalDSL.g:12852:1: rule__XBlockExpression__Group__1__Impl : ( '{' ) ;
+    // InternalSignalDSL.g:13115:1: rule__XBlockExpression__Group__1__Impl : ( '{' ) ;
     public final void rule__XBlockExpression__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:12856:1: ( ( '{' ) )
-            // InternalSignalDSL.g:12857:1: ( '{' )
+            // InternalSignalDSL.g:13119:1: ( ( '{' ) )
+            // InternalSignalDSL.g:13120:1: ( '{' )
             {
-            // InternalSignalDSL.g:12857:1: ( '{' )
-            // InternalSignalDSL.g:12858:2: '{'
+            // InternalSignalDSL.g:13120:1: ( '{' )
+            // InternalSignalDSL.g:13121:2: '{'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBlockExpressionAccess().getLeftCurlyBracketKeyword_1()); 
             }
-            match(input,68,FOLLOW_2); if (state.failed) return ;
+            match(input,64,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXBlockExpressionAccess().getLeftCurlyBracketKeyword_1()); 
             }
@@ -42920,16 +43705,16 @@
 
 
     // $ANTLR start "rule__XBlockExpression__Group__2"
-    // InternalSignalDSL.g:12867:1: rule__XBlockExpression__Group__2 : rule__XBlockExpression__Group__2__Impl rule__XBlockExpression__Group__3 ;
+    // InternalSignalDSL.g:13130: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:12871:1: ( rule__XBlockExpression__Group__2__Impl rule__XBlockExpression__Group__3 )
-            // InternalSignalDSL.g:12872:2: rule__XBlockExpression__Group__2__Impl rule__XBlockExpression__Group__3
+            // InternalSignalDSL.g:13134:1: ( rule__XBlockExpression__Group__2__Impl rule__XBlockExpression__Group__3 )
+            // InternalSignalDSL.g:13135:2: rule__XBlockExpression__Group__2__Impl rule__XBlockExpression__Group__3
             {
-            pushFollow(FOLLOW_89);
+            pushFollow(FOLLOW_94);
             rule__XBlockExpression__Group__2__Impl();
 
             state._fsp--;
@@ -42958,37 +43743,37 @@
 
 
     // $ANTLR start "rule__XBlockExpression__Group__2__Impl"
-    // InternalSignalDSL.g:12879:1: rule__XBlockExpression__Group__2__Impl : ( ( rule__XBlockExpression__Group_2__0 )* ) ;
+    // InternalSignalDSL.g:13142: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:12883:1: ( ( ( rule__XBlockExpression__Group_2__0 )* ) )
-            // InternalSignalDSL.g:12884:1: ( ( rule__XBlockExpression__Group_2__0 )* )
+            // InternalSignalDSL.g:13146:1: ( ( ( rule__XBlockExpression__Group_2__0 )* ) )
+            // InternalSignalDSL.g:13147:1: ( ( rule__XBlockExpression__Group_2__0 )* )
             {
-            // InternalSignalDSL.g:12884:1: ( ( rule__XBlockExpression__Group_2__0 )* )
-            // InternalSignalDSL.g:12885:2: ( rule__XBlockExpression__Group_2__0 )*
+            // InternalSignalDSL.g:13147:1: ( ( rule__XBlockExpression__Group_2__0 )* )
+            // InternalSignalDSL.g:13148:2: ( rule__XBlockExpression__Group_2__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBlockExpressionAccess().getGroup_2()); 
             }
-            // InternalSignalDSL.g:12886:2: ( rule__XBlockExpression__Group_2__0 )*
-            loop105:
+            // InternalSignalDSL.g:13149:2: ( rule__XBlockExpression__Group_2__0 )*
+            loop108:
             do {
-                int alt105=2;
-                int LA105_0 = input.LA(1);
+                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==68||LA105_0==72||LA105_0==76||(LA105_0>=80 && LA105_0<=81)||LA105_0==84||LA105_0==86||(LA105_0>=90 && LA105_0<=97)||LA105_0==99||(LA105_0>=107 && LA105_0<=108)) ) {
-                    alt105=1;
+                if ( ((LA108_0>=RULE_ID && LA108_0<=RULE_STRING)||LA108_0==27||(LA108_0>=34 && LA108_0<=35)||LA108_0==40||(LA108_0>=44 && LA108_0<=50)||LA108_0==64||LA108_0==68||LA108_0==74||(LA108_0>=78 && LA108_0<=79)||LA108_0==82||LA108_0==84||(LA108_0>=88 && LA108_0<=95)||LA108_0==97||(LA108_0>=105 && LA108_0<=106)) ) {
+                    alt108=1;
                 }
 
 
-                switch (alt105) {
+                switch (alt108) {
             	case 1 :
-            	    // InternalSignalDSL.g:12886:3: rule__XBlockExpression__Group_2__0
+            	    // InternalSignalDSL.g:13149:3: rule__XBlockExpression__Group_2__0
             	    {
-            	    pushFollow(FOLLOW_74);
+            	    pushFollow(FOLLOW_79);
             	    rule__XBlockExpression__Group_2__0();
 
             	    state._fsp--;
@@ -42998,7 +43783,7 @@
             	    break;
 
             	default :
-            	    break loop105;
+            	    break loop108;
                 }
             } while (true);
 
@@ -43027,14 +43812,14 @@
 
 
     // $ANTLR start "rule__XBlockExpression__Group__3"
-    // InternalSignalDSL.g:12894:1: rule__XBlockExpression__Group__3 : rule__XBlockExpression__Group__3__Impl ;
+    // InternalSignalDSL.g:13157: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:12898:1: ( rule__XBlockExpression__Group__3__Impl )
-            // InternalSignalDSL.g:12899:2: rule__XBlockExpression__Group__3__Impl
+            // InternalSignalDSL.g:13161:1: ( rule__XBlockExpression__Group__3__Impl )
+            // InternalSignalDSL.g:13162:2: rule__XBlockExpression__Group__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XBlockExpression__Group__3__Impl();
@@ -43060,22 +43845,22 @@
 
 
     // $ANTLR start "rule__XBlockExpression__Group__3__Impl"
-    // InternalSignalDSL.g:12905:1: rule__XBlockExpression__Group__3__Impl : ( '}' ) ;
+    // InternalSignalDSL.g:13168:1: rule__XBlockExpression__Group__3__Impl : ( '}' ) ;
     public final void rule__XBlockExpression__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:12909:1: ( ( '}' ) )
-            // InternalSignalDSL.g:12910:1: ( '}' )
+            // InternalSignalDSL.g:13172:1: ( ( '}' ) )
+            // InternalSignalDSL.g:13173:1: ( '}' )
             {
-            // InternalSignalDSL.g:12910:1: ( '}' )
-            // InternalSignalDSL.g:12911:2: '}'
+            // InternalSignalDSL.g:13173:1: ( '}' )
+            // InternalSignalDSL.g:13174:2: '}'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBlockExpressionAccess().getRightCurlyBracketKeyword_3()); 
             }
-            match(input,69,FOLLOW_2); if (state.failed) return ;
+            match(input,65,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXBlockExpressionAccess().getRightCurlyBracketKeyword_3()); 
             }
@@ -43101,16 +43886,16 @@
 
 
     // $ANTLR start "rule__XBlockExpression__Group_2__0"
-    // InternalSignalDSL.g:12921:1: rule__XBlockExpression__Group_2__0 : rule__XBlockExpression__Group_2__0__Impl rule__XBlockExpression__Group_2__1 ;
+    // InternalSignalDSL.g:13184: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:12925:1: ( rule__XBlockExpression__Group_2__0__Impl rule__XBlockExpression__Group_2__1 )
-            // InternalSignalDSL.g:12926:2: rule__XBlockExpression__Group_2__0__Impl rule__XBlockExpression__Group_2__1
+            // InternalSignalDSL.g:13188:1: ( rule__XBlockExpression__Group_2__0__Impl rule__XBlockExpression__Group_2__1 )
+            // InternalSignalDSL.g:13189:2: rule__XBlockExpression__Group_2__0__Impl rule__XBlockExpression__Group_2__1
             {
-            pushFollow(FOLLOW_22);
+            pushFollow(FOLLOW_27);
             rule__XBlockExpression__Group_2__0__Impl();
 
             state._fsp--;
@@ -43139,23 +43924,23 @@
 
 
     // $ANTLR start "rule__XBlockExpression__Group_2__0__Impl"
-    // InternalSignalDSL.g:12933:1: rule__XBlockExpression__Group_2__0__Impl : ( ( rule__XBlockExpression__ExpressionsAssignment_2_0 ) ) ;
+    // InternalSignalDSL.g:13196: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:12937:1: ( ( ( rule__XBlockExpression__ExpressionsAssignment_2_0 ) ) )
-            // InternalSignalDSL.g:12938:1: ( ( rule__XBlockExpression__ExpressionsAssignment_2_0 ) )
+            // InternalSignalDSL.g:13200:1: ( ( ( rule__XBlockExpression__ExpressionsAssignment_2_0 ) ) )
+            // InternalSignalDSL.g:13201:1: ( ( rule__XBlockExpression__ExpressionsAssignment_2_0 ) )
             {
-            // InternalSignalDSL.g:12938:1: ( ( rule__XBlockExpression__ExpressionsAssignment_2_0 ) )
-            // InternalSignalDSL.g:12939:2: ( rule__XBlockExpression__ExpressionsAssignment_2_0 )
+            // InternalSignalDSL.g:13201:1: ( ( rule__XBlockExpression__ExpressionsAssignment_2_0 ) )
+            // InternalSignalDSL.g:13202:2: ( rule__XBlockExpression__ExpressionsAssignment_2_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBlockExpressionAccess().getExpressionsAssignment_2_0()); 
             }
-            // InternalSignalDSL.g:12940:2: ( rule__XBlockExpression__ExpressionsAssignment_2_0 )
-            // InternalSignalDSL.g:12940:3: rule__XBlockExpression__ExpressionsAssignment_2_0
+            // InternalSignalDSL.g:13203:2: ( rule__XBlockExpression__ExpressionsAssignment_2_0 )
+            // InternalSignalDSL.g:13203:3: rule__XBlockExpression__ExpressionsAssignment_2_0
             {
             pushFollow(FOLLOW_2);
             rule__XBlockExpression__ExpressionsAssignment_2_0();
@@ -43190,14 +43975,14 @@
 
 
     // $ANTLR start "rule__XBlockExpression__Group_2__1"
-    // InternalSignalDSL.g:12948:1: rule__XBlockExpression__Group_2__1 : rule__XBlockExpression__Group_2__1__Impl ;
+    // InternalSignalDSL.g:13211: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:12952:1: ( rule__XBlockExpression__Group_2__1__Impl )
-            // InternalSignalDSL.g:12953:2: rule__XBlockExpression__Group_2__1__Impl
+            // InternalSignalDSL.g:13215:1: ( rule__XBlockExpression__Group_2__1__Impl )
+            // InternalSignalDSL.g:13216:2: rule__XBlockExpression__Group_2__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XBlockExpression__Group_2__1__Impl();
@@ -43223,33 +44008,33 @@
 
 
     // $ANTLR start "rule__XBlockExpression__Group_2__1__Impl"
-    // InternalSignalDSL.g:12959:1: rule__XBlockExpression__Group_2__1__Impl : ( ( ';' )? ) ;
+    // InternalSignalDSL.g:13222:1: rule__XBlockExpression__Group_2__1__Impl : ( ( ';' )? ) ;
     public final void rule__XBlockExpression__Group_2__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:12963:1: ( ( ( ';' )? ) )
-            // InternalSignalDSL.g:12964:1: ( ( ';' )? )
+            // InternalSignalDSL.g:13226:1: ( ( ( ';' )? ) )
+            // InternalSignalDSL.g:13227:1: ( ( ';' )? )
             {
-            // InternalSignalDSL.g:12964:1: ( ( ';' )? )
-            // InternalSignalDSL.g:12965:2: ( ';' )?
+            // InternalSignalDSL.g:13227:1: ( ( ';' )? )
+            // InternalSignalDSL.g:13228:2: ( ';' )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBlockExpressionAccess().getSemicolonKeyword_2_1()); 
             }
-            // InternalSignalDSL.g:12966:2: ( ';' )?
-            int alt106=2;
-            int LA106_0 = input.LA(1);
+            // InternalSignalDSL.g:13229:2: ( ';' )?
+            int alt109=2;
+            int LA109_0 = input.LA(1);
 
-            if ( (LA106_0==74) ) {
-                alt106=1;
+            if ( (LA109_0==72) ) {
+                alt109=1;
             }
-            switch (alt106) {
+            switch (alt109) {
                 case 1 :
-                    // InternalSignalDSL.g:12966:3: ';'
+                    // InternalSignalDSL.g:13229:3: ';'
                     {
-                    match(input,74,FOLLOW_2); if (state.failed) return ;
+                    match(input,72,FOLLOW_2); if (state.failed) return ;
 
                     }
                     break;
@@ -43281,16 +44066,16 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__Group__0"
-    // InternalSignalDSL.g:12975:1: rule__XVariableDeclaration__Group__0 : rule__XVariableDeclaration__Group__0__Impl rule__XVariableDeclaration__Group__1 ;
+    // InternalSignalDSL.g:13238: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:12979:1: ( rule__XVariableDeclaration__Group__0__Impl rule__XVariableDeclaration__Group__1 )
-            // InternalSignalDSL.g:12980:2: rule__XVariableDeclaration__Group__0__Impl rule__XVariableDeclaration__Group__1
+            // InternalSignalDSL.g:13242:1: ( rule__XVariableDeclaration__Group__0__Impl rule__XVariableDeclaration__Group__1 )
+            // InternalSignalDSL.g:13243:2: rule__XVariableDeclaration__Group__0__Impl rule__XVariableDeclaration__Group__1
             {
-            pushFollow(FOLLOW_90);
+            pushFollow(FOLLOW_95);
             rule__XVariableDeclaration__Group__0__Impl();
 
             state._fsp--;
@@ -43319,23 +44104,23 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__Group__0__Impl"
-    // InternalSignalDSL.g:12987:1: rule__XVariableDeclaration__Group__0__Impl : ( () ) ;
+    // InternalSignalDSL.g:13250:1: rule__XVariableDeclaration__Group__0__Impl : ( () ) ;
     public final void rule__XVariableDeclaration__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:12991:1: ( ( () ) )
-            // InternalSignalDSL.g:12992:1: ( () )
+            // InternalSignalDSL.g:13254:1: ( ( () ) )
+            // InternalSignalDSL.g:13255:1: ( () )
             {
-            // InternalSignalDSL.g:12992:1: ( () )
-            // InternalSignalDSL.g:12993:2: ()
+            // InternalSignalDSL.g:13255:1: ( () )
+            // InternalSignalDSL.g:13256:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXVariableDeclarationAccess().getXVariableDeclarationAction_0()); 
             }
-            // InternalSignalDSL.g:12994:2: ()
-            // InternalSignalDSL.g:12994:3: 
+            // InternalSignalDSL.g:13257:2: ()
+            // InternalSignalDSL.g:13257:3: 
             {
             }
 
@@ -43360,16 +44145,16 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__Group__1"
-    // InternalSignalDSL.g:13002:1: rule__XVariableDeclaration__Group__1 : rule__XVariableDeclaration__Group__1__Impl rule__XVariableDeclaration__Group__2 ;
+    // InternalSignalDSL.g:13265: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:13006:1: ( rule__XVariableDeclaration__Group__1__Impl rule__XVariableDeclaration__Group__2 )
-            // InternalSignalDSL.g:13007:2: rule__XVariableDeclaration__Group__1__Impl rule__XVariableDeclaration__Group__2
+            // InternalSignalDSL.g:13269:1: ( rule__XVariableDeclaration__Group__1__Impl rule__XVariableDeclaration__Group__2 )
+            // InternalSignalDSL.g:13270:2: rule__XVariableDeclaration__Group__1__Impl rule__XVariableDeclaration__Group__2
             {
-            pushFollow(FOLLOW_47);
+            pushFollow(FOLLOW_52);
             rule__XVariableDeclaration__Group__1__Impl();
 
             state._fsp--;
@@ -43398,23 +44183,23 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__Group__1__Impl"
-    // InternalSignalDSL.g:13014:1: rule__XVariableDeclaration__Group__1__Impl : ( ( rule__XVariableDeclaration__Alternatives_1 ) ) ;
+    // InternalSignalDSL.g:13277: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:13018:1: ( ( ( rule__XVariableDeclaration__Alternatives_1 ) ) )
-            // InternalSignalDSL.g:13019:1: ( ( rule__XVariableDeclaration__Alternatives_1 ) )
+            // InternalSignalDSL.g:13281:1: ( ( ( rule__XVariableDeclaration__Alternatives_1 ) ) )
+            // InternalSignalDSL.g:13282:1: ( ( rule__XVariableDeclaration__Alternatives_1 ) )
             {
-            // InternalSignalDSL.g:13019:1: ( ( rule__XVariableDeclaration__Alternatives_1 ) )
-            // InternalSignalDSL.g:13020:2: ( rule__XVariableDeclaration__Alternatives_1 )
+            // InternalSignalDSL.g:13282:1: ( ( rule__XVariableDeclaration__Alternatives_1 ) )
+            // InternalSignalDSL.g:13283:2: ( rule__XVariableDeclaration__Alternatives_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXVariableDeclarationAccess().getAlternatives_1()); 
             }
-            // InternalSignalDSL.g:13021:2: ( rule__XVariableDeclaration__Alternatives_1 )
-            // InternalSignalDSL.g:13021:3: rule__XVariableDeclaration__Alternatives_1
+            // InternalSignalDSL.g:13284:2: ( rule__XVariableDeclaration__Alternatives_1 )
+            // InternalSignalDSL.g:13284:3: rule__XVariableDeclaration__Alternatives_1
             {
             pushFollow(FOLLOW_2);
             rule__XVariableDeclaration__Alternatives_1();
@@ -43449,16 +44234,16 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__Group__2"
-    // InternalSignalDSL.g:13029:1: rule__XVariableDeclaration__Group__2 : rule__XVariableDeclaration__Group__2__Impl rule__XVariableDeclaration__Group__3 ;
+    // InternalSignalDSL.g:13292: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:13033:1: ( rule__XVariableDeclaration__Group__2__Impl rule__XVariableDeclaration__Group__3 )
-            // InternalSignalDSL.g:13034:2: rule__XVariableDeclaration__Group__2__Impl rule__XVariableDeclaration__Group__3
+            // InternalSignalDSL.g:13296:1: ( rule__XVariableDeclaration__Group__2__Impl rule__XVariableDeclaration__Group__3 )
+            // InternalSignalDSL.g:13297:2: rule__XVariableDeclaration__Group__2__Impl rule__XVariableDeclaration__Group__3
             {
-            pushFollow(FOLLOW_31);
+            pushFollow(FOLLOW_36);
             rule__XVariableDeclaration__Group__2__Impl();
 
             state._fsp--;
@@ -43487,23 +44272,23 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__Group__2__Impl"
-    // InternalSignalDSL.g:13041:1: rule__XVariableDeclaration__Group__2__Impl : ( ( rule__XVariableDeclaration__Alternatives_2 ) ) ;
+    // InternalSignalDSL.g:13304: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:13045:1: ( ( ( rule__XVariableDeclaration__Alternatives_2 ) ) )
-            // InternalSignalDSL.g:13046:1: ( ( rule__XVariableDeclaration__Alternatives_2 ) )
+            // InternalSignalDSL.g:13308:1: ( ( ( rule__XVariableDeclaration__Alternatives_2 ) ) )
+            // InternalSignalDSL.g:13309:1: ( ( rule__XVariableDeclaration__Alternatives_2 ) )
             {
-            // InternalSignalDSL.g:13046:1: ( ( rule__XVariableDeclaration__Alternatives_2 ) )
-            // InternalSignalDSL.g:13047:2: ( rule__XVariableDeclaration__Alternatives_2 )
+            // InternalSignalDSL.g:13309:1: ( ( rule__XVariableDeclaration__Alternatives_2 ) )
+            // InternalSignalDSL.g:13310:2: ( rule__XVariableDeclaration__Alternatives_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXVariableDeclarationAccess().getAlternatives_2()); 
             }
-            // InternalSignalDSL.g:13048:2: ( rule__XVariableDeclaration__Alternatives_2 )
-            // InternalSignalDSL.g:13048:3: rule__XVariableDeclaration__Alternatives_2
+            // InternalSignalDSL.g:13311:2: ( rule__XVariableDeclaration__Alternatives_2 )
+            // InternalSignalDSL.g:13311:3: rule__XVariableDeclaration__Alternatives_2
             {
             pushFollow(FOLLOW_2);
             rule__XVariableDeclaration__Alternatives_2();
@@ -43538,14 +44323,14 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__Group__3"
-    // InternalSignalDSL.g:13056:1: rule__XVariableDeclaration__Group__3 : rule__XVariableDeclaration__Group__3__Impl ;
+    // InternalSignalDSL.g:13319: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:13060:1: ( rule__XVariableDeclaration__Group__3__Impl )
-            // InternalSignalDSL.g:13061:2: rule__XVariableDeclaration__Group__3__Impl
+            // InternalSignalDSL.g:13323:1: ( rule__XVariableDeclaration__Group__3__Impl )
+            // InternalSignalDSL.g:13324:2: rule__XVariableDeclaration__Group__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XVariableDeclaration__Group__3__Impl();
@@ -43571,31 +44356,31 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__Group__3__Impl"
-    // InternalSignalDSL.g:13067:1: rule__XVariableDeclaration__Group__3__Impl : ( ( rule__XVariableDeclaration__Group_3__0 )? ) ;
+    // InternalSignalDSL.g:13330: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:13071:1: ( ( ( rule__XVariableDeclaration__Group_3__0 )? ) )
-            // InternalSignalDSL.g:13072:1: ( ( rule__XVariableDeclaration__Group_3__0 )? )
+            // InternalSignalDSL.g:13334:1: ( ( ( rule__XVariableDeclaration__Group_3__0 )? ) )
+            // InternalSignalDSL.g:13335:1: ( ( rule__XVariableDeclaration__Group_3__0 )? )
             {
-            // InternalSignalDSL.g:13072:1: ( ( rule__XVariableDeclaration__Group_3__0 )? )
-            // InternalSignalDSL.g:13073:2: ( rule__XVariableDeclaration__Group_3__0 )?
+            // InternalSignalDSL.g:13335:1: ( ( rule__XVariableDeclaration__Group_3__0 )? )
+            // InternalSignalDSL.g:13336:2: ( rule__XVariableDeclaration__Group_3__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXVariableDeclarationAccess().getGroup_3()); 
             }
-            // InternalSignalDSL.g:13074:2: ( rule__XVariableDeclaration__Group_3__0 )?
-            int alt107=2;
-            int LA107_0 = input.LA(1);
+            // InternalSignalDSL.g:13337:2: ( rule__XVariableDeclaration__Group_3__0 )?
+            int alt110=2;
+            int LA110_0 = input.LA(1);
 
-            if ( (LA107_0==13) ) {
-                alt107=1;
+            if ( (LA110_0==13) ) {
+                alt110=1;
             }
-            switch (alt107) {
+            switch (alt110) {
                 case 1 :
-                    // InternalSignalDSL.g:13074:3: rule__XVariableDeclaration__Group_3__0
+                    // InternalSignalDSL.g:13337:3: rule__XVariableDeclaration__Group_3__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XVariableDeclaration__Group_3__0();
@@ -43633,14 +44418,14 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__Group_2_0__0"
-    // InternalSignalDSL.g:13083:1: rule__XVariableDeclaration__Group_2_0__0 : rule__XVariableDeclaration__Group_2_0__0__Impl ;
+    // InternalSignalDSL.g:13346: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:13087:1: ( rule__XVariableDeclaration__Group_2_0__0__Impl )
-            // InternalSignalDSL.g:13088:2: rule__XVariableDeclaration__Group_2_0__0__Impl
+            // InternalSignalDSL.g:13350:1: ( rule__XVariableDeclaration__Group_2_0__0__Impl )
+            // InternalSignalDSL.g:13351:2: rule__XVariableDeclaration__Group_2_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XVariableDeclaration__Group_2_0__0__Impl();
@@ -43666,23 +44451,23 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__Group_2_0__0__Impl"
-    // InternalSignalDSL.g:13094:1: rule__XVariableDeclaration__Group_2_0__0__Impl : ( ( rule__XVariableDeclaration__Group_2_0_0__0 ) ) ;
+    // InternalSignalDSL.g:13357: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:13098:1: ( ( ( rule__XVariableDeclaration__Group_2_0_0__0 ) ) )
-            // InternalSignalDSL.g:13099:1: ( ( rule__XVariableDeclaration__Group_2_0_0__0 ) )
+            // InternalSignalDSL.g:13361:1: ( ( ( rule__XVariableDeclaration__Group_2_0_0__0 ) ) )
+            // InternalSignalDSL.g:13362:1: ( ( rule__XVariableDeclaration__Group_2_0_0__0 ) )
             {
-            // InternalSignalDSL.g:13099:1: ( ( rule__XVariableDeclaration__Group_2_0_0__0 ) )
-            // InternalSignalDSL.g:13100:2: ( rule__XVariableDeclaration__Group_2_0_0__0 )
+            // InternalSignalDSL.g:13362:1: ( ( rule__XVariableDeclaration__Group_2_0_0__0 ) )
+            // InternalSignalDSL.g:13363:2: ( rule__XVariableDeclaration__Group_2_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXVariableDeclarationAccess().getGroup_2_0_0()); 
             }
-            // InternalSignalDSL.g:13101:2: ( rule__XVariableDeclaration__Group_2_0_0__0 )
-            // InternalSignalDSL.g:13101:3: rule__XVariableDeclaration__Group_2_0_0__0
+            // InternalSignalDSL.g:13364:2: ( rule__XVariableDeclaration__Group_2_0_0__0 )
+            // InternalSignalDSL.g:13364:3: rule__XVariableDeclaration__Group_2_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XVariableDeclaration__Group_2_0_0__0();
@@ -43717,14 +44502,14 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__Group_2_0_0__0"
-    // InternalSignalDSL.g:13110: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:13373: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:13114:1: ( rule__XVariableDeclaration__Group_2_0_0__0__Impl rule__XVariableDeclaration__Group_2_0_0__1 )
-            // InternalSignalDSL.g:13115:2: rule__XVariableDeclaration__Group_2_0_0__0__Impl rule__XVariableDeclaration__Group_2_0_0__1
+            // InternalSignalDSL.g:13377:1: ( rule__XVariableDeclaration__Group_2_0_0__0__Impl rule__XVariableDeclaration__Group_2_0_0__1 )
+            // InternalSignalDSL.g:13378:2: rule__XVariableDeclaration__Group_2_0_0__0__Impl rule__XVariableDeclaration__Group_2_0_0__1
             {
             pushFollow(FOLLOW_7);
             rule__XVariableDeclaration__Group_2_0_0__0__Impl();
@@ -43755,23 +44540,23 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__Group_2_0_0__0__Impl"
-    // InternalSignalDSL.g:13122:1: rule__XVariableDeclaration__Group_2_0_0__0__Impl : ( ( rule__XVariableDeclaration__TypeAssignment_2_0_0_0 ) ) ;
+    // InternalSignalDSL.g:13385: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:13126:1: ( ( ( rule__XVariableDeclaration__TypeAssignment_2_0_0_0 ) ) )
-            // InternalSignalDSL.g:13127:1: ( ( rule__XVariableDeclaration__TypeAssignment_2_0_0_0 ) )
+            // InternalSignalDSL.g:13389:1: ( ( ( rule__XVariableDeclaration__TypeAssignment_2_0_0_0 ) ) )
+            // InternalSignalDSL.g:13390:1: ( ( rule__XVariableDeclaration__TypeAssignment_2_0_0_0 ) )
             {
-            // InternalSignalDSL.g:13127:1: ( ( rule__XVariableDeclaration__TypeAssignment_2_0_0_0 ) )
-            // InternalSignalDSL.g:13128:2: ( rule__XVariableDeclaration__TypeAssignment_2_0_0_0 )
+            // InternalSignalDSL.g:13390:1: ( ( rule__XVariableDeclaration__TypeAssignment_2_0_0_0 ) )
+            // InternalSignalDSL.g:13391:2: ( rule__XVariableDeclaration__TypeAssignment_2_0_0_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXVariableDeclarationAccess().getTypeAssignment_2_0_0_0()); 
             }
-            // InternalSignalDSL.g:13129:2: ( rule__XVariableDeclaration__TypeAssignment_2_0_0_0 )
-            // InternalSignalDSL.g:13129:3: rule__XVariableDeclaration__TypeAssignment_2_0_0_0
+            // InternalSignalDSL.g:13392:2: ( rule__XVariableDeclaration__TypeAssignment_2_0_0_0 )
+            // InternalSignalDSL.g:13392:3: rule__XVariableDeclaration__TypeAssignment_2_0_0_0
             {
             pushFollow(FOLLOW_2);
             rule__XVariableDeclaration__TypeAssignment_2_0_0_0();
@@ -43806,14 +44591,14 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__Group_2_0_0__1"
-    // InternalSignalDSL.g:13137:1: rule__XVariableDeclaration__Group_2_0_0__1 : rule__XVariableDeclaration__Group_2_0_0__1__Impl ;
+    // InternalSignalDSL.g:13400: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:13141:1: ( rule__XVariableDeclaration__Group_2_0_0__1__Impl )
-            // InternalSignalDSL.g:13142:2: rule__XVariableDeclaration__Group_2_0_0__1__Impl
+            // InternalSignalDSL.g:13404:1: ( rule__XVariableDeclaration__Group_2_0_0__1__Impl )
+            // InternalSignalDSL.g:13405:2: rule__XVariableDeclaration__Group_2_0_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XVariableDeclaration__Group_2_0_0__1__Impl();
@@ -43839,23 +44624,23 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__Group_2_0_0__1__Impl"
-    // InternalSignalDSL.g:13148:1: rule__XVariableDeclaration__Group_2_0_0__1__Impl : ( ( rule__XVariableDeclaration__NameAssignment_2_0_0_1 ) ) ;
+    // InternalSignalDSL.g:13411: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:13152:1: ( ( ( rule__XVariableDeclaration__NameAssignment_2_0_0_1 ) ) )
-            // InternalSignalDSL.g:13153:1: ( ( rule__XVariableDeclaration__NameAssignment_2_0_0_1 ) )
+            // InternalSignalDSL.g:13415:1: ( ( ( rule__XVariableDeclaration__NameAssignment_2_0_0_1 ) ) )
+            // InternalSignalDSL.g:13416:1: ( ( rule__XVariableDeclaration__NameAssignment_2_0_0_1 ) )
             {
-            // InternalSignalDSL.g:13153:1: ( ( rule__XVariableDeclaration__NameAssignment_2_0_0_1 ) )
-            // InternalSignalDSL.g:13154:2: ( rule__XVariableDeclaration__NameAssignment_2_0_0_1 )
+            // InternalSignalDSL.g:13416:1: ( ( rule__XVariableDeclaration__NameAssignment_2_0_0_1 ) )
+            // InternalSignalDSL.g:13417:2: ( rule__XVariableDeclaration__NameAssignment_2_0_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXVariableDeclarationAccess().getNameAssignment_2_0_0_1()); 
             }
-            // InternalSignalDSL.g:13155:2: ( rule__XVariableDeclaration__NameAssignment_2_0_0_1 )
-            // InternalSignalDSL.g:13155:3: rule__XVariableDeclaration__NameAssignment_2_0_0_1
+            // InternalSignalDSL.g:13418:2: ( rule__XVariableDeclaration__NameAssignment_2_0_0_1 )
+            // InternalSignalDSL.g:13418:3: rule__XVariableDeclaration__NameAssignment_2_0_0_1
             {
             pushFollow(FOLLOW_2);
             rule__XVariableDeclaration__NameAssignment_2_0_0_1();
@@ -43890,16 +44675,16 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__Group_3__0"
-    // InternalSignalDSL.g:13164:1: rule__XVariableDeclaration__Group_3__0 : rule__XVariableDeclaration__Group_3__0__Impl rule__XVariableDeclaration__Group_3__1 ;
+    // InternalSignalDSL.g:13427: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:13168:1: ( rule__XVariableDeclaration__Group_3__0__Impl rule__XVariableDeclaration__Group_3__1 )
-            // InternalSignalDSL.g:13169:2: rule__XVariableDeclaration__Group_3__0__Impl rule__XVariableDeclaration__Group_3__1
+            // InternalSignalDSL.g:13431:1: ( rule__XVariableDeclaration__Group_3__0__Impl rule__XVariableDeclaration__Group_3__1 )
+            // InternalSignalDSL.g:13432:2: rule__XVariableDeclaration__Group_3__0__Impl rule__XVariableDeclaration__Group_3__1
             {
-            pushFollow(FOLLOW_30);
+            pushFollow(FOLLOW_35);
             rule__XVariableDeclaration__Group_3__0__Impl();
 
             state._fsp--;
@@ -43928,17 +44713,17 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__Group_3__0__Impl"
-    // InternalSignalDSL.g:13176:1: rule__XVariableDeclaration__Group_3__0__Impl : ( '=' ) ;
+    // InternalSignalDSL.g:13439:1: rule__XVariableDeclaration__Group_3__0__Impl : ( '=' ) ;
     public final void rule__XVariableDeclaration__Group_3__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:13180:1: ( ( '=' ) )
-            // InternalSignalDSL.g:13181:1: ( '=' )
+            // InternalSignalDSL.g:13443:1: ( ( '=' ) )
+            // InternalSignalDSL.g:13444:1: ( '=' )
             {
-            // InternalSignalDSL.g:13181:1: ( '=' )
-            // InternalSignalDSL.g:13182:2: '='
+            // InternalSignalDSL.g:13444:1: ( '=' )
+            // InternalSignalDSL.g:13445:2: '='
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXVariableDeclarationAccess().getEqualsSignKeyword_3_0()); 
@@ -43969,14 +44754,14 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__Group_3__1"
-    // InternalSignalDSL.g:13191:1: rule__XVariableDeclaration__Group_3__1 : rule__XVariableDeclaration__Group_3__1__Impl ;
+    // InternalSignalDSL.g:13454: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:13195:1: ( rule__XVariableDeclaration__Group_3__1__Impl )
-            // InternalSignalDSL.g:13196:2: rule__XVariableDeclaration__Group_3__1__Impl
+            // InternalSignalDSL.g:13458:1: ( rule__XVariableDeclaration__Group_3__1__Impl )
+            // InternalSignalDSL.g:13459:2: rule__XVariableDeclaration__Group_3__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XVariableDeclaration__Group_3__1__Impl();
@@ -44002,23 +44787,23 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__Group_3__1__Impl"
-    // InternalSignalDSL.g:13202:1: rule__XVariableDeclaration__Group_3__1__Impl : ( ( rule__XVariableDeclaration__RightAssignment_3_1 ) ) ;
+    // InternalSignalDSL.g:13465: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:13206:1: ( ( ( rule__XVariableDeclaration__RightAssignment_3_1 ) ) )
-            // InternalSignalDSL.g:13207:1: ( ( rule__XVariableDeclaration__RightAssignment_3_1 ) )
+            // InternalSignalDSL.g:13469:1: ( ( ( rule__XVariableDeclaration__RightAssignment_3_1 ) ) )
+            // InternalSignalDSL.g:13470:1: ( ( rule__XVariableDeclaration__RightAssignment_3_1 ) )
             {
-            // InternalSignalDSL.g:13207:1: ( ( rule__XVariableDeclaration__RightAssignment_3_1 ) )
-            // InternalSignalDSL.g:13208:2: ( rule__XVariableDeclaration__RightAssignment_3_1 )
+            // InternalSignalDSL.g:13470:1: ( ( rule__XVariableDeclaration__RightAssignment_3_1 ) )
+            // InternalSignalDSL.g:13471:2: ( rule__XVariableDeclaration__RightAssignment_3_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXVariableDeclarationAccess().getRightAssignment_3_1()); 
             }
-            // InternalSignalDSL.g:13209:2: ( rule__XVariableDeclaration__RightAssignment_3_1 )
-            // InternalSignalDSL.g:13209:3: rule__XVariableDeclaration__RightAssignment_3_1
+            // InternalSignalDSL.g:13472:2: ( rule__XVariableDeclaration__RightAssignment_3_1 )
+            // InternalSignalDSL.g:13472:3: rule__XVariableDeclaration__RightAssignment_3_1
             {
             pushFollow(FOLLOW_2);
             rule__XVariableDeclaration__RightAssignment_3_1();
@@ -44053,16 +44838,16 @@
 
 
     // $ANTLR start "rule__JvmFormalParameter__Group__0"
-    // InternalSignalDSL.g:13218:1: rule__JvmFormalParameter__Group__0 : rule__JvmFormalParameter__Group__0__Impl rule__JvmFormalParameter__Group__1 ;
+    // InternalSignalDSL.g:13481: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:13222:1: ( rule__JvmFormalParameter__Group__0__Impl rule__JvmFormalParameter__Group__1 )
-            // InternalSignalDSL.g:13223:2: rule__JvmFormalParameter__Group__0__Impl rule__JvmFormalParameter__Group__1
+            // InternalSignalDSL.g:13485:1: ( rule__JvmFormalParameter__Group__0__Impl rule__JvmFormalParameter__Group__1 )
+            // InternalSignalDSL.g:13486:2: rule__JvmFormalParameter__Group__0__Impl rule__JvmFormalParameter__Group__1
             {
-            pushFollow(FOLLOW_47);
+            pushFollow(FOLLOW_52);
             rule__JvmFormalParameter__Group__0__Impl();
 
             state._fsp--;
@@ -44091,38 +44876,38 @@
 
 
     // $ANTLR start "rule__JvmFormalParameter__Group__0__Impl"
-    // InternalSignalDSL.g:13230:1: rule__JvmFormalParameter__Group__0__Impl : ( ( rule__JvmFormalParameter__ParameterTypeAssignment_0 )? ) ;
+    // InternalSignalDSL.g:13493: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:13234:1: ( ( ( rule__JvmFormalParameter__ParameterTypeAssignment_0 )? ) )
-            // InternalSignalDSL.g:13235:1: ( ( rule__JvmFormalParameter__ParameterTypeAssignment_0 )? )
+            // InternalSignalDSL.g:13497:1: ( ( ( rule__JvmFormalParameter__ParameterTypeAssignment_0 )? ) )
+            // InternalSignalDSL.g:13498:1: ( ( rule__JvmFormalParameter__ParameterTypeAssignment_0 )? )
             {
-            // InternalSignalDSL.g:13235:1: ( ( rule__JvmFormalParameter__ParameterTypeAssignment_0 )? )
-            // InternalSignalDSL.g:13236:2: ( rule__JvmFormalParameter__ParameterTypeAssignment_0 )?
+            // InternalSignalDSL.g:13498:1: ( ( rule__JvmFormalParameter__ParameterTypeAssignment_0 )? )
+            // InternalSignalDSL.g:13499:2: ( rule__JvmFormalParameter__ParameterTypeAssignment_0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmFormalParameterAccess().getParameterTypeAssignment_0()); 
             }
-            // InternalSignalDSL.g:13237:2: ( rule__JvmFormalParameter__ParameterTypeAssignment_0 )?
-            int alt108=2;
-            int LA108_0 = input.LA(1);
+            // InternalSignalDSL.g:13500:2: ( rule__JvmFormalParameter__ParameterTypeAssignment_0 )?
+            int alt111=2;
+            int LA111_0 = input.LA(1);
 
-            if ( (LA108_0==RULE_ID) ) {
-                int LA108_1 = input.LA(2);
+            if ( (LA111_0==RULE_ID) ) {
+                int LA111_1 = input.LA(2);
 
-                if ( (LA108_1==RULE_ID||LA108_1==27||LA108_1==43||LA108_1==81) ) {
-                    alt108=1;
+                if ( (LA111_1==RULE_ID||LA111_1==27||LA111_1==43||LA111_1==79) ) {
+                    alt111=1;
                 }
             }
-            else if ( (LA108_0==31||LA108_0==76) ) {
-                alt108=1;
+            else if ( (LA111_0==31||LA111_0==74) ) {
+                alt111=1;
             }
-            switch (alt108) {
+            switch (alt111) {
                 case 1 :
-                    // InternalSignalDSL.g:13237:3: rule__JvmFormalParameter__ParameterTypeAssignment_0
+                    // InternalSignalDSL.g:13500:3: rule__JvmFormalParameter__ParameterTypeAssignment_0
                     {
                     pushFollow(FOLLOW_2);
                     rule__JvmFormalParameter__ParameterTypeAssignment_0();
@@ -44160,14 +44945,14 @@
 
 
     // $ANTLR start "rule__JvmFormalParameter__Group__1"
-    // InternalSignalDSL.g:13245:1: rule__JvmFormalParameter__Group__1 : rule__JvmFormalParameter__Group__1__Impl ;
+    // InternalSignalDSL.g:13508: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:13249:1: ( rule__JvmFormalParameter__Group__1__Impl )
-            // InternalSignalDSL.g:13250:2: rule__JvmFormalParameter__Group__1__Impl
+            // InternalSignalDSL.g:13512:1: ( rule__JvmFormalParameter__Group__1__Impl )
+            // InternalSignalDSL.g:13513:2: rule__JvmFormalParameter__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__JvmFormalParameter__Group__1__Impl();
@@ -44193,23 +44978,23 @@
 
 
     // $ANTLR start "rule__JvmFormalParameter__Group__1__Impl"
-    // InternalSignalDSL.g:13256:1: rule__JvmFormalParameter__Group__1__Impl : ( ( rule__JvmFormalParameter__NameAssignment_1 ) ) ;
+    // InternalSignalDSL.g:13519: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:13260:1: ( ( ( rule__JvmFormalParameter__NameAssignment_1 ) ) )
-            // InternalSignalDSL.g:13261:1: ( ( rule__JvmFormalParameter__NameAssignment_1 ) )
+            // InternalSignalDSL.g:13523:1: ( ( ( rule__JvmFormalParameter__NameAssignment_1 ) ) )
+            // InternalSignalDSL.g:13524:1: ( ( rule__JvmFormalParameter__NameAssignment_1 ) )
             {
-            // InternalSignalDSL.g:13261:1: ( ( rule__JvmFormalParameter__NameAssignment_1 ) )
-            // InternalSignalDSL.g:13262:2: ( rule__JvmFormalParameter__NameAssignment_1 )
+            // InternalSignalDSL.g:13524:1: ( ( rule__JvmFormalParameter__NameAssignment_1 ) )
+            // InternalSignalDSL.g:13525:2: ( rule__JvmFormalParameter__NameAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmFormalParameterAccess().getNameAssignment_1()); 
             }
-            // InternalSignalDSL.g:13263:2: ( rule__JvmFormalParameter__NameAssignment_1 )
-            // InternalSignalDSL.g:13263:3: rule__JvmFormalParameter__NameAssignment_1
+            // InternalSignalDSL.g:13526:2: ( rule__JvmFormalParameter__NameAssignment_1 )
+            // InternalSignalDSL.g:13526:3: rule__JvmFormalParameter__NameAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__JvmFormalParameter__NameAssignment_1();
@@ -44244,14 +45029,14 @@
 
 
     // $ANTLR start "rule__FullJvmFormalParameter__Group__0"
-    // InternalSignalDSL.g:13272:1: rule__FullJvmFormalParameter__Group__0 : rule__FullJvmFormalParameter__Group__0__Impl rule__FullJvmFormalParameter__Group__1 ;
+    // InternalSignalDSL.g:13535: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:13276:1: ( rule__FullJvmFormalParameter__Group__0__Impl rule__FullJvmFormalParameter__Group__1 )
-            // InternalSignalDSL.g:13277:2: rule__FullJvmFormalParameter__Group__0__Impl rule__FullJvmFormalParameter__Group__1
+            // InternalSignalDSL.g:13539:1: ( rule__FullJvmFormalParameter__Group__0__Impl rule__FullJvmFormalParameter__Group__1 )
+            // InternalSignalDSL.g:13540:2: rule__FullJvmFormalParameter__Group__0__Impl rule__FullJvmFormalParameter__Group__1
             {
             pushFollow(FOLLOW_7);
             rule__FullJvmFormalParameter__Group__0__Impl();
@@ -44282,23 +45067,23 @@
 
 
     // $ANTLR start "rule__FullJvmFormalParameter__Group__0__Impl"
-    // InternalSignalDSL.g:13284:1: rule__FullJvmFormalParameter__Group__0__Impl : ( ( rule__FullJvmFormalParameter__ParameterTypeAssignment_0 ) ) ;
+    // InternalSignalDSL.g:13547: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:13288:1: ( ( ( rule__FullJvmFormalParameter__ParameterTypeAssignment_0 ) ) )
-            // InternalSignalDSL.g:13289:1: ( ( rule__FullJvmFormalParameter__ParameterTypeAssignment_0 ) )
+            // InternalSignalDSL.g:13551:1: ( ( ( rule__FullJvmFormalParameter__ParameterTypeAssignment_0 ) ) )
+            // InternalSignalDSL.g:13552:1: ( ( rule__FullJvmFormalParameter__ParameterTypeAssignment_0 ) )
             {
-            // InternalSignalDSL.g:13289:1: ( ( rule__FullJvmFormalParameter__ParameterTypeAssignment_0 ) )
-            // InternalSignalDSL.g:13290:2: ( rule__FullJvmFormalParameter__ParameterTypeAssignment_0 )
+            // InternalSignalDSL.g:13552:1: ( ( rule__FullJvmFormalParameter__ParameterTypeAssignment_0 ) )
+            // InternalSignalDSL.g:13553:2: ( rule__FullJvmFormalParameter__ParameterTypeAssignment_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getFullJvmFormalParameterAccess().getParameterTypeAssignment_0()); 
             }
-            // InternalSignalDSL.g:13291:2: ( rule__FullJvmFormalParameter__ParameterTypeAssignment_0 )
-            // InternalSignalDSL.g:13291:3: rule__FullJvmFormalParameter__ParameterTypeAssignment_0
+            // InternalSignalDSL.g:13554:2: ( rule__FullJvmFormalParameter__ParameterTypeAssignment_0 )
+            // InternalSignalDSL.g:13554:3: rule__FullJvmFormalParameter__ParameterTypeAssignment_0
             {
             pushFollow(FOLLOW_2);
             rule__FullJvmFormalParameter__ParameterTypeAssignment_0();
@@ -44333,14 +45118,14 @@
 
 
     // $ANTLR start "rule__FullJvmFormalParameter__Group__1"
-    // InternalSignalDSL.g:13299:1: rule__FullJvmFormalParameter__Group__1 : rule__FullJvmFormalParameter__Group__1__Impl ;
+    // InternalSignalDSL.g:13562: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:13303:1: ( rule__FullJvmFormalParameter__Group__1__Impl )
-            // InternalSignalDSL.g:13304:2: rule__FullJvmFormalParameter__Group__1__Impl
+            // InternalSignalDSL.g:13566:1: ( rule__FullJvmFormalParameter__Group__1__Impl )
+            // InternalSignalDSL.g:13567:2: rule__FullJvmFormalParameter__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__FullJvmFormalParameter__Group__1__Impl();
@@ -44366,23 +45151,23 @@
 
 
     // $ANTLR start "rule__FullJvmFormalParameter__Group__1__Impl"
-    // InternalSignalDSL.g:13310:1: rule__FullJvmFormalParameter__Group__1__Impl : ( ( rule__FullJvmFormalParameter__NameAssignment_1 ) ) ;
+    // InternalSignalDSL.g:13573: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:13314:1: ( ( ( rule__FullJvmFormalParameter__NameAssignment_1 ) ) )
-            // InternalSignalDSL.g:13315:1: ( ( rule__FullJvmFormalParameter__NameAssignment_1 ) )
+            // InternalSignalDSL.g:13577:1: ( ( ( rule__FullJvmFormalParameter__NameAssignment_1 ) ) )
+            // InternalSignalDSL.g:13578:1: ( ( rule__FullJvmFormalParameter__NameAssignment_1 ) )
             {
-            // InternalSignalDSL.g:13315:1: ( ( rule__FullJvmFormalParameter__NameAssignment_1 ) )
-            // InternalSignalDSL.g:13316:2: ( rule__FullJvmFormalParameter__NameAssignment_1 )
+            // InternalSignalDSL.g:13578:1: ( ( rule__FullJvmFormalParameter__NameAssignment_1 ) )
+            // InternalSignalDSL.g:13579:2: ( rule__FullJvmFormalParameter__NameAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getFullJvmFormalParameterAccess().getNameAssignment_1()); 
             }
-            // InternalSignalDSL.g:13317:2: ( rule__FullJvmFormalParameter__NameAssignment_1 )
-            // InternalSignalDSL.g:13317:3: rule__FullJvmFormalParameter__NameAssignment_1
+            // InternalSignalDSL.g:13580:2: ( rule__FullJvmFormalParameter__NameAssignment_1 )
+            // InternalSignalDSL.g:13580:3: rule__FullJvmFormalParameter__NameAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__FullJvmFormalParameter__NameAssignment_1();
@@ -44417,16 +45202,16 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group__0"
-    // InternalSignalDSL.g:13326:1: rule__XFeatureCall__Group__0 : rule__XFeatureCall__Group__0__Impl rule__XFeatureCall__Group__1 ;
+    // InternalSignalDSL.g:13589: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:13330:1: ( rule__XFeatureCall__Group__0__Impl rule__XFeatureCall__Group__1 )
-            // InternalSignalDSL.g:13331:2: rule__XFeatureCall__Group__0__Impl rule__XFeatureCall__Group__1
+            // InternalSignalDSL.g:13593:1: ( rule__XFeatureCall__Group__0__Impl rule__XFeatureCall__Group__1 )
+            // InternalSignalDSL.g:13594:2: rule__XFeatureCall__Group__0__Impl rule__XFeatureCall__Group__1
             {
-            pushFollow(FOLLOW_65);
+            pushFollow(FOLLOW_70);
             rule__XFeatureCall__Group__0__Impl();
 
             state._fsp--;
@@ -44455,23 +45240,23 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group__0__Impl"
-    // InternalSignalDSL.g:13338:1: rule__XFeatureCall__Group__0__Impl : ( () ) ;
+    // InternalSignalDSL.g:13601:1: rule__XFeatureCall__Group__0__Impl : ( () ) ;
     public final void rule__XFeatureCall__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:13342:1: ( ( () ) )
-            // InternalSignalDSL.g:13343:1: ( () )
+            // InternalSignalDSL.g:13605:1: ( ( () ) )
+            // InternalSignalDSL.g:13606:1: ( () )
             {
-            // InternalSignalDSL.g:13343:1: ( () )
-            // InternalSignalDSL.g:13344:2: ()
+            // InternalSignalDSL.g:13606:1: ( () )
+            // InternalSignalDSL.g:13607:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getXFeatureCallAction_0()); 
             }
-            // InternalSignalDSL.g:13345:2: ()
-            // InternalSignalDSL.g:13345:3: 
+            // InternalSignalDSL.g:13608:2: ()
+            // InternalSignalDSL.g:13608:3: 
             {
             }
 
@@ -44496,16 +45281,16 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group__1"
-    // InternalSignalDSL.g:13353:1: rule__XFeatureCall__Group__1 : rule__XFeatureCall__Group__1__Impl rule__XFeatureCall__Group__2 ;
+    // InternalSignalDSL.g:13616: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:13357:1: ( rule__XFeatureCall__Group__1__Impl rule__XFeatureCall__Group__2 )
-            // InternalSignalDSL.g:13358:2: rule__XFeatureCall__Group__1__Impl rule__XFeatureCall__Group__2
+            // InternalSignalDSL.g:13620:1: ( rule__XFeatureCall__Group__1__Impl rule__XFeatureCall__Group__2 )
+            // InternalSignalDSL.g:13621:2: rule__XFeatureCall__Group__1__Impl rule__XFeatureCall__Group__2
             {
-            pushFollow(FOLLOW_65);
+            pushFollow(FOLLOW_70);
             rule__XFeatureCall__Group__1__Impl();
 
             state._fsp--;
@@ -44534,31 +45319,31 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group__1__Impl"
-    // InternalSignalDSL.g:13365:1: rule__XFeatureCall__Group__1__Impl : ( ( rule__XFeatureCall__Group_1__0 )? ) ;
+    // InternalSignalDSL.g:13628: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:13369:1: ( ( ( rule__XFeatureCall__Group_1__0 )? ) )
-            // InternalSignalDSL.g:13370:1: ( ( rule__XFeatureCall__Group_1__0 )? )
+            // InternalSignalDSL.g:13632:1: ( ( ( rule__XFeatureCall__Group_1__0 )? ) )
+            // InternalSignalDSL.g:13633:1: ( ( rule__XFeatureCall__Group_1__0 )? )
             {
-            // InternalSignalDSL.g:13370:1: ( ( rule__XFeatureCall__Group_1__0 )? )
-            // InternalSignalDSL.g:13371:2: ( rule__XFeatureCall__Group_1__0 )?
+            // InternalSignalDSL.g:13633:1: ( ( rule__XFeatureCall__Group_1__0 )? )
+            // InternalSignalDSL.g:13634:2: ( rule__XFeatureCall__Group_1__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getGroup_1()); 
             }
-            // InternalSignalDSL.g:13372:2: ( rule__XFeatureCall__Group_1__0 )?
-            int alt109=2;
-            int LA109_0 = input.LA(1);
+            // InternalSignalDSL.g:13635:2: ( rule__XFeatureCall__Group_1__0 )?
+            int alt112=2;
+            int LA112_0 = input.LA(1);
 
-            if ( (LA109_0==27) ) {
-                alt109=1;
+            if ( (LA112_0==27) ) {
+                alt112=1;
             }
-            switch (alt109) {
+            switch (alt112) {
                 case 1 :
-                    // InternalSignalDSL.g:13372:3: rule__XFeatureCall__Group_1__0
+                    // InternalSignalDSL.g:13635:3: rule__XFeatureCall__Group_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XFeatureCall__Group_1__0();
@@ -44596,16 +45381,16 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group__2"
-    // InternalSignalDSL.g:13380:1: rule__XFeatureCall__Group__2 : rule__XFeatureCall__Group__2__Impl rule__XFeatureCall__Group__3 ;
+    // InternalSignalDSL.g:13643: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:13384:1: ( rule__XFeatureCall__Group__2__Impl rule__XFeatureCall__Group__3 )
-            // InternalSignalDSL.g:13385:2: rule__XFeatureCall__Group__2__Impl rule__XFeatureCall__Group__3
+            // InternalSignalDSL.g:13647:1: ( rule__XFeatureCall__Group__2__Impl rule__XFeatureCall__Group__3 )
+            // InternalSignalDSL.g:13648:2: rule__XFeatureCall__Group__2__Impl rule__XFeatureCall__Group__3
             {
-            pushFollow(FOLLOW_66);
+            pushFollow(FOLLOW_71);
             rule__XFeatureCall__Group__2__Impl();
 
             state._fsp--;
@@ -44634,23 +45419,23 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group__2__Impl"
-    // InternalSignalDSL.g:13392:1: rule__XFeatureCall__Group__2__Impl : ( ( rule__XFeatureCall__FeatureAssignment_2 ) ) ;
+    // InternalSignalDSL.g:13655: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:13396:1: ( ( ( rule__XFeatureCall__FeatureAssignment_2 ) ) )
-            // InternalSignalDSL.g:13397:1: ( ( rule__XFeatureCall__FeatureAssignment_2 ) )
+            // InternalSignalDSL.g:13659:1: ( ( ( rule__XFeatureCall__FeatureAssignment_2 ) ) )
+            // InternalSignalDSL.g:13660:1: ( ( rule__XFeatureCall__FeatureAssignment_2 ) )
             {
-            // InternalSignalDSL.g:13397:1: ( ( rule__XFeatureCall__FeatureAssignment_2 ) )
-            // InternalSignalDSL.g:13398:2: ( rule__XFeatureCall__FeatureAssignment_2 )
+            // InternalSignalDSL.g:13660:1: ( ( rule__XFeatureCall__FeatureAssignment_2 ) )
+            // InternalSignalDSL.g:13661:2: ( rule__XFeatureCall__FeatureAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getFeatureAssignment_2()); 
             }
-            // InternalSignalDSL.g:13399:2: ( rule__XFeatureCall__FeatureAssignment_2 )
-            // InternalSignalDSL.g:13399:3: rule__XFeatureCall__FeatureAssignment_2
+            // InternalSignalDSL.g:13662:2: ( rule__XFeatureCall__FeatureAssignment_2 )
+            // InternalSignalDSL.g:13662:3: rule__XFeatureCall__FeatureAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__XFeatureCall__FeatureAssignment_2();
@@ -44685,16 +45470,16 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group__3"
-    // InternalSignalDSL.g:13407:1: rule__XFeatureCall__Group__3 : rule__XFeatureCall__Group__3__Impl rule__XFeatureCall__Group__4 ;
+    // InternalSignalDSL.g:13670: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:13411:1: ( rule__XFeatureCall__Group__3__Impl rule__XFeatureCall__Group__4 )
-            // InternalSignalDSL.g:13412:2: rule__XFeatureCall__Group__3__Impl rule__XFeatureCall__Group__4
+            // InternalSignalDSL.g:13674:1: ( rule__XFeatureCall__Group__3__Impl rule__XFeatureCall__Group__4 )
+            // InternalSignalDSL.g:13675:2: rule__XFeatureCall__Group__3__Impl rule__XFeatureCall__Group__4
             {
-            pushFollow(FOLLOW_66);
+            pushFollow(FOLLOW_71);
             rule__XFeatureCall__Group__3__Impl();
 
             state._fsp--;
@@ -44723,27 +45508,27 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group__3__Impl"
-    // InternalSignalDSL.g:13419:1: rule__XFeatureCall__Group__3__Impl : ( ( rule__XFeatureCall__Group_3__0 )? ) ;
+    // InternalSignalDSL.g:13682: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:13423:1: ( ( ( rule__XFeatureCall__Group_3__0 )? ) )
-            // InternalSignalDSL.g:13424:1: ( ( rule__XFeatureCall__Group_3__0 )? )
+            // InternalSignalDSL.g:13686:1: ( ( ( rule__XFeatureCall__Group_3__0 )? ) )
+            // InternalSignalDSL.g:13687:1: ( ( rule__XFeatureCall__Group_3__0 )? )
             {
-            // InternalSignalDSL.g:13424:1: ( ( rule__XFeatureCall__Group_3__0 )? )
-            // InternalSignalDSL.g:13425:2: ( rule__XFeatureCall__Group_3__0 )?
+            // InternalSignalDSL.g:13687:1: ( ( rule__XFeatureCall__Group_3__0 )? )
+            // InternalSignalDSL.g:13688:2: ( rule__XFeatureCall__Group_3__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getGroup_3()); 
             }
-            // InternalSignalDSL.g:13426:2: ( rule__XFeatureCall__Group_3__0 )?
-            int alt110=2;
-            alt110 = dfa110.predict(input);
-            switch (alt110) {
+            // InternalSignalDSL.g:13689:2: ( rule__XFeatureCall__Group_3__0 )?
+            int alt113=2;
+            alt113 = dfa113.predict(input);
+            switch (alt113) {
                 case 1 :
-                    // InternalSignalDSL.g:13426:3: rule__XFeatureCall__Group_3__0
+                    // InternalSignalDSL.g:13689:3: rule__XFeatureCall__Group_3__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XFeatureCall__Group_3__0();
@@ -44781,14 +45566,14 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group__4"
-    // InternalSignalDSL.g:13434:1: rule__XFeatureCall__Group__4 : rule__XFeatureCall__Group__4__Impl ;
+    // InternalSignalDSL.g:13697: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:13438:1: ( rule__XFeatureCall__Group__4__Impl )
-            // InternalSignalDSL.g:13439:2: rule__XFeatureCall__Group__4__Impl
+            // InternalSignalDSL.g:13701:1: ( rule__XFeatureCall__Group__4__Impl )
+            // InternalSignalDSL.g:13702:2: rule__XFeatureCall__Group__4__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XFeatureCall__Group__4__Impl();
@@ -44814,27 +45599,27 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group__4__Impl"
-    // InternalSignalDSL.g:13445:1: rule__XFeatureCall__Group__4__Impl : ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_4 )? ) ;
+    // InternalSignalDSL.g:13708: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:13449:1: ( ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_4 )? ) )
-            // InternalSignalDSL.g:13450:1: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_4 )? )
+            // InternalSignalDSL.g:13712:1: ( ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_4 )? ) )
+            // InternalSignalDSL.g:13713:1: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_4 )? )
             {
-            // InternalSignalDSL.g:13450:1: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_4 )? )
-            // InternalSignalDSL.g:13451:2: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_4 )?
+            // InternalSignalDSL.g:13713:1: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_4 )? )
+            // InternalSignalDSL.g:13714:2: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_4 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsAssignment_4()); 
             }
-            // InternalSignalDSL.g:13452:2: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_4 )?
-            int alt111=2;
-            alt111 = dfa111.predict(input);
-            switch (alt111) {
+            // InternalSignalDSL.g:13715:2: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_4 )?
+            int alt114=2;
+            alt114 = dfa114.predict(input);
+            switch (alt114) {
                 case 1 :
-                    // InternalSignalDSL.g:13452:3: rule__XFeatureCall__FeatureCallArgumentsAssignment_4
+                    // InternalSignalDSL.g:13715:3: rule__XFeatureCall__FeatureCallArgumentsAssignment_4
                     {
                     pushFollow(FOLLOW_2);
                     rule__XFeatureCall__FeatureCallArgumentsAssignment_4();
@@ -44872,16 +45657,16 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_1__0"
-    // InternalSignalDSL.g:13461:1: rule__XFeatureCall__Group_1__0 : rule__XFeatureCall__Group_1__0__Impl rule__XFeatureCall__Group_1__1 ;
+    // InternalSignalDSL.g:13724: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:13465:1: ( rule__XFeatureCall__Group_1__0__Impl rule__XFeatureCall__Group_1__1 )
-            // InternalSignalDSL.g:13466:2: rule__XFeatureCall__Group_1__0__Impl rule__XFeatureCall__Group_1__1
+            // InternalSignalDSL.g:13728:1: ( rule__XFeatureCall__Group_1__0__Impl rule__XFeatureCall__Group_1__1 )
+            // InternalSignalDSL.g:13729:2: rule__XFeatureCall__Group_1__0__Impl rule__XFeatureCall__Group_1__1
             {
-            pushFollow(FOLLOW_67);
+            pushFollow(FOLLOW_72);
             rule__XFeatureCall__Group_1__0__Impl();
 
             state._fsp--;
@@ -44910,17 +45695,17 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_1__0__Impl"
-    // InternalSignalDSL.g:13473:1: rule__XFeatureCall__Group_1__0__Impl : ( '<' ) ;
+    // InternalSignalDSL.g:13736:1: rule__XFeatureCall__Group_1__0__Impl : ( '<' ) ;
     public final void rule__XFeatureCall__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:13477:1: ( ( '<' ) )
-            // InternalSignalDSL.g:13478:1: ( '<' )
+            // InternalSignalDSL.g:13740:1: ( ( '<' ) )
+            // InternalSignalDSL.g:13741:1: ( '<' )
             {
-            // InternalSignalDSL.g:13478:1: ( '<' )
-            // InternalSignalDSL.g:13479:2: '<'
+            // InternalSignalDSL.g:13741:1: ( '<' )
+            // InternalSignalDSL.g:13742:2: '<'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getLessThanSignKeyword_1_0()); 
@@ -44951,16 +45736,16 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_1__1"
-    // InternalSignalDSL.g:13488:1: rule__XFeatureCall__Group_1__1 : rule__XFeatureCall__Group_1__1__Impl rule__XFeatureCall__Group_1__2 ;
+    // InternalSignalDSL.g:13751: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:13492:1: ( rule__XFeatureCall__Group_1__1__Impl rule__XFeatureCall__Group_1__2 )
-            // InternalSignalDSL.g:13493:2: rule__XFeatureCall__Group_1__1__Impl rule__XFeatureCall__Group_1__2
+            // InternalSignalDSL.g:13755:1: ( rule__XFeatureCall__Group_1__1__Impl rule__XFeatureCall__Group_1__2 )
+            // InternalSignalDSL.g:13756:2: rule__XFeatureCall__Group_1__1__Impl rule__XFeatureCall__Group_1__2
             {
-            pushFollow(FOLLOW_68);
+            pushFollow(FOLLOW_73);
             rule__XFeatureCall__Group_1__1__Impl();
 
             state._fsp--;
@@ -44989,23 +45774,23 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_1__1__Impl"
-    // InternalSignalDSL.g:13500:1: rule__XFeatureCall__Group_1__1__Impl : ( ( rule__XFeatureCall__TypeArgumentsAssignment_1_1 ) ) ;
+    // InternalSignalDSL.g:13763: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:13504:1: ( ( ( rule__XFeatureCall__TypeArgumentsAssignment_1_1 ) ) )
-            // InternalSignalDSL.g:13505:1: ( ( rule__XFeatureCall__TypeArgumentsAssignment_1_1 ) )
+            // InternalSignalDSL.g:13767:1: ( ( ( rule__XFeatureCall__TypeArgumentsAssignment_1_1 ) ) )
+            // InternalSignalDSL.g:13768:1: ( ( rule__XFeatureCall__TypeArgumentsAssignment_1_1 ) )
             {
-            // InternalSignalDSL.g:13505:1: ( ( rule__XFeatureCall__TypeArgumentsAssignment_1_1 ) )
-            // InternalSignalDSL.g:13506:2: ( rule__XFeatureCall__TypeArgumentsAssignment_1_1 )
+            // InternalSignalDSL.g:13768:1: ( ( rule__XFeatureCall__TypeArgumentsAssignment_1_1 ) )
+            // InternalSignalDSL.g:13769:2: ( rule__XFeatureCall__TypeArgumentsAssignment_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getTypeArgumentsAssignment_1_1()); 
             }
-            // InternalSignalDSL.g:13507:2: ( rule__XFeatureCall__TypeArgumentsAssignment_1_1 )
-            // InternalSignalDSL.g:13507:3: rule__XFeatureCall__TypeArgumentsAssignment_1_1
+            // InternalSignalDSL.g:13770:2: ( rule__XFeatureCall__TypeArgumentsAssignment_1_1 )
+            // InternalSignalDSL.g:13770:3: rule__XFeatureCall__TypeArgumentsAssignment_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XFeatureCall__TypeArgumentsAssignment_1_1();
@@ -45040,16 +45825,16 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_1__2"
-    // InternalSignalDSL.g:13515:1: rule__XFeatureCall__Group_1__2 : rule__XFeatureCall__Group_1__2__Impl rule__XFeatureCall__Group_1__3 ;
+    // InternalSignalDSL.g:13778: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:13519:1: ( rule__XFeatureCall__Group_1__2__Impl rule__XFeatureCall__Group_1__3 )
-            // InternalSignalDSL.g:13520:2: rule__XFeatureCall__Group_1__2__Impl rule__XFeatureCall__Group_1__3
+            // InternalSignalDSL.g:13782:1: ( rule__XFeatureCall__Group_1__2__Impl rule__XFeatureCall__Group_1__3 )
+            // InternalSignalDSL.g:13783:2: rule__XFeatureCall__Group_1__2__Impl rule__XFeatureCall__Group_1__3
             {
-            pushFollow(FOLLOW_68);
+            pushFollow(FOLLOW_73);
             rule__XFeatureCall__Group_1__2__Impl();
 
             state._fsp--;
@@ -45078,37 +45863,37 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_1__2__Impl"
-    // InternalSignalDSL.g:13527:1: rule__XFeatureCall__Group_1__2__Impl : ( ( rule__XFeatureCall__Group_1_2__0 )* ) ;
+    // InternalSignalDSL.g:13790: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:13531:1: ( ( ( rule__XFeatureCall__Group_1_2__0 )* ) )
-            // InternalSignalDSL.g:13532:1: ( ( rule__XFeatureCall__Group_1_2__0 )* )
+            // InternalSignalDSL.g:13794:1: ( ( ( rule__XFeatureCall__Group_1_2__0 )* ) )
+            // InternalSignalDSL.g:13795:1: ( ( rule__XFeatureCall__Group_1_2__0 )* )
             {
-            // InternalSignalDSL.g:13532:1: ( ( rule__XFeatureCall__Group_1_2__0 )* )
-            // InternalSignalDSL.g:13533:2: ( rule__XFeatureCall__Group_1_2__0 )*
+            // InternalSignalDSL.g:13795:1: ( ( rule__XFeatureCall__Group_1_2__0 )* )
+            // InternalSignalDSL.g:13796:2: ( rule__XFeatureCall__Group_1_2__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getGroup_1_2()); 
             }
-            // InternalSignalDSL.g:13534:2: ( rule__XFeatureCall__Group_1_2__0 )*
-            loop112:
+            // InternalSignalDSL.g:13797:2: ( rule__XFeatureCall__Group_1_2__0 )*
+            loop115:
             do {
-                int alt112=2;
-                int LA112_0 = input.LA(1);
+                int alt115=2;
+                int LA115_0 = input.LA(1);
 
-                if ( (LA112_0==78) ) {
-                    alt112=1;
+                if ( (LA115_0==76) ) {
+                    alt115=1;
                 }
 
 
-                switch (alt112) {
+                switch (alt115) {
             	case 1 :
-            	    // InternalSignalDSL.g:13534:3: rule__XFeatureCall__Group_1_2__0
+            	    // InternalSignalDSL.g:13797:3: rule__XFeatureCall__Group_1_2__0
             	    {
-            	    pushFollow(FOLLOW_29);
+            	    pushFollow(FOLLOW_34);
             	    rule__XFeatureCall__Group_1_2__0();
 
             	    state._fsp--;
@@ -45118,7 +45903,7 @@
             	    break;
 
             	default :
-            	    break loop112;
+            	    break loop115;
                 }
             } while (true);
 
@@ -45147,14 +45932,14 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_1__3"
-    // InternalSignalDSL.g:13542:1: rule__XFeatureCall__Group_1__3 : rule__XFeatureCall__Group_1__3__Impl ;
+    // InternalSignalDSL.g:13805: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:13546:1: ( rule__XFeatureCall__Group_1__3__Impl )
-            // InternalSignalDSL.g:13547:2: rule__XFeatureCall__Group_1__3__Impl
+            // InternalSignalDSL.g:13809:1: ( rule__XFeatureCall__Group_1__3__Impl )
+            // InternalSignalDSL.g:13810:2: rule__XFeatureCall__Group_1__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XFeatureCall__Group_1__3__Impl();
@@ -45180,17 +45965,17 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_1__3__Impl"
-    // InternalSignalDSL.g:13553:1: rule__XFeatureCall__Group_1__3__Impl : ( '>' ) ;
+    // InternalSignalDSL.g:13816:1: rule__XFeatureCall__Group_1__3__Impl : ( '>' ) ;
     public final void rule__XFeatureCall__Group_1__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:13557:1: ( ( '>' ) )
-            // InternalSignalDSL.g:13558:1: ( '>' )
+            // InternalSignalDSL.g:13820:1: ( ( '>' ) )
+            // InternalSignalDSL.g:13821:1: ( '>' )
             {
-            // InternalSignalDSL.g:13558:1: ( '>' )
-            // InternalSignalDSL.g:13559:2: '>'
+            // InternalSignalDSL.g:13821:1: ( '>' )
+            // InternalSignalDSL.g:13822:2: '>'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getGreaterThanSignKeyword_1_3()); 
@@ -45221,16 +46006,16 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_1_2__0"
-    // InternalSignalDSL.g:13569:1: rule__XFeatureCall__Group_1_2__0 : rule__XFeatureCall__Group_1_2__0__Impl rule__XFeatureCall__Group_1_2__1 ;
+    // InternalSignalDSL.g:13832: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:13573:1: ( rule__XFeatureCall__Group_1_2__0__Impl rule__XFeatureCall__Group_1_2__1 )
-            // InternalSignalDSL.g:13574:2: rule__XFeatureCall__Group_1_2__0__Impl rule__XFeatureCall__Group_1_2__1
+            // InternalSignalDSL.g:13836:1: ( rule__XFeatureCall__Group_1_2__0__Impl rule__XFeatureCall__Group_1_2__1 )
+            // InternalSignalDSL.g:13837:2: rule__XFeatureCall__Group_1_2__0__Impl rule__XFeatureCall__Group_1_2__1
             {
-            pushFollow(FOLLOW_67);
+            pushFollow(FOLLOW_72);
             rule__XFeatureCall__Group_1_2__0__Impl();
 
             state._fsp--;
@@ -45259,22 +46044,22 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_1_2__0__Impl"
-    // InternalSignalDSL.g:13581:1: rule__XFeatureCall__Group_1_2__0__Impl : ( ',' ) ;
+    // InternalSignalDSL.g:13844: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:13585:1: ( ( ',' ) )
-            // InternalSignalDSL.g:13586:1: ( ',' )
+            // InternalSignalDSL.g:13848:1: ( ( ',' ) )
+            // InternalSignalDSL.g:13849:1: ( ',' )
             {
-            // InternalSignalDSL.g:13586:1: ( ',' )
-            // InternalSignalDSL.g:13587:2: ','
+            // InternalSignalDSL.g:13849:1: ( ',' )
+            // InternalSignalDSL.g:13850:2: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getCommaKeyword_1_2_0()); 
             }
-            match(input,78,FOLLOW_2); if (state.failed) return ;
+            match(input,76,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXFeatureCallAccess().getCommaKeyword_1_2_0()); 
             }
@@ -45300,14 +46085,14 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_1_2__1"
-    // InternalSignalDSL.g:13596:1: rule__XFeatureCall__Group_1_2__1 : rule__XFeatureCall__Group_1_2__1__Impl ;
+    // InternalSignalDSL.g:13859: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:13600:1: ( rule__XFeatureCall__Group_1_2__1__Impl )
-            // InternalSignalDSL.g:13601:2: rule__XFeatureCall__Group_1_2__1__Impl
+            // InternalSignalDSL.g:13863:1: ( rule__XFeatureCall__Group_1_2__1__Impl )
+            // InternalSignalDSL.g:13864:2: rule__XFeatureCall__Group_1_2__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XFeatureCall__Group_1_2__1__Impl();
@@ -45333,23 +46118,23 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_1_2__1__Impl"
-    // InternalSignalDSL.g:13607:1: rule__XFeatureCall__Group_1_2__1__Impl : ( ( rule__XFeatureCall__TypeArgumentsAssignment_1_2_1 ) ) ;
+    // InternalSignalDSL.g:13870: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:13611:1: ( ( ( rule__XFeatureCall__TypeArgumentsAssignment_1_2_1 ) ) )
-            // InternalSignalDSL.g:13612:1: ( ( rule__XFeatureCall__TypeArgumentsAssignment_1_2_1 ) )
+            // InternalSignalDSL.g:13874:1: ( ( ( rule__XFeatureCall__TypeArgumentsAssignment_1_2_1 ) ) )
+            // InternalSignalDSL.g:13875:1: ( ( rule__XFeatureCall__TypeArgumentsAssignment_1_2_1 ) )
             {
-            // InternalSignalDSL.g:13612:1: ( ( rule__XFeatureCall__TypeArgumentsAssignment_1_2_1 ) )
-            // InternalSignalDSL.g:13613:2: ( rule__XFeatureCall__TypeArgumentsAssignment_1_2_1 )
+            // InternalSignalDSL.g:13875:1: ( ( rule__XFeatureCall__TypeArgumentsAssignment_1_2_1 ) )
+            // InternalSignalDSL.g:13876:2: ( rule__XFeatureCall__TypeArgumentsAssignment_1_2_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getTypeArgumentsAssignment_1_2_1()); 
             }
-            // InternalSignalDSL.g:13614:2: ( rule__XFeatureCall__TypeArgumentsAssignment_1_2_1 )
-            // InternalSignalDSL.g:13614:3: rule__XFeatureCall__TypeArgumentsAssignment_1_2_1
+            // InternalSignalDSL.g:13877:2: ( rule__XFeatureCall__TypeArgumentsAssignment_1_2_1 )
+            // InternalSignalDSL.g:13877:3: rule__XFeatureCall__TypeArgumentsAssignment_1_2_1
             {
             pushFollow(FOLLOW_2);
             rule__XFeatureCall__TypeArgumentsAssignment_1_2_1();
@@ -45384,16 +46169,16 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_3__0"
-    // InternalSignalDSL.g:13623:1: rule__XFeatureCall__Group_3__0 : rule__XFeatureCall__Group_3__0__Impl rule__XFeatureCall__Group_3__1 ;
+    // InternalSignalDSL.g:13886: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:13627:1: ( rule__XFeatureCall__Group_3__0__Impl rule__XFeatureCall__Group_3__1 )
-            // InternalSignalDSL.g:13628:2: rule__XFeatureCall__Group_3__0__Impl rule__XFeatureCall__Group_3__1
+            // InternalSignalDSL.g:13890:1: ( rule__XFeatureCall__Group_3__0__Impl rule__XFeatureCall__Group_3__1 )
+            // InternalSignalDSL.g:13891:2: rule__XFeatureCall__Group_3__0__Impl rule__XFeatureCall__Group_3__1
             {
-            pushFollow(FOLLOW_69);
+            pushFollow(FOLLOW_74);
             rule__XFeatureCall__Group_3__0__Impl();
 
             state._fsp--;
@@ -45422,23 +46207,23 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_3__0__Impl"
-    // InternalSignalDSL.g:13635:1: rule__XFeatureCall__Group_3__0__Impl : ( ( rule__XFeatureCall__ExplicitOperationCallAssignment_3_0 ) ) ;
+    // InternalSignalDSL.g:13898: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:13639:1: ( ( ( rule__XFeatureCall__ExplicitOperationCallAssignment_3_0 ) ) )
-            // InternalSignalDSL.g:13640:1: ( ( rule__XFeatureCall__ExplicitOperationCallAssignment_3_0 ) )
+            // InternalSignalDSL.g:13902:1: ( ( ( rule__XFeatureCall__ExplicitOperationCallAssignment_3_0 ) ) )
+            // InternalSignalDSL.g:13903:1: ( ( rule__XFeatureCall__ExplicitOperationCallAssignment_3_0 ) )
             {
-            // InternalSignalDSL.g:13640:1: ( ( rule__XFeatureCall__ExplicitOperationCallAssignment_3_0 ) )
-            // InternalSignalDSL.g:13641:2: ( rule__XFeatureCall__ExplicitOperationCallAssignment_3_0 )
+            // InternalSignalDSL.g:13903:1: ( ( rule__XFeatureCall__ExplicitOperationCallAssignment_3_0 ) )
+            // InternalSignalDSL.g:13904:2: ( rule__XFeatureCall__ExplicitOperationCallAssignment_3_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getExplicitOperationCallAssignment_3_0()); 
             }
-            // InternalSignalDSL.g:13642:2: ( rule__XFeatureCall__ExplicitOperationCallAssignment_3_0 )
-            // InternalSignalDSL.g:13642:3: rule__XFeatureCall__ExplicitOperationCallAssignment_3_0
+            // InternalSignalDSL.g:13905:2: ( rule__XFeatureCall__ExplicitOperationCallAssignment_3_0 )
+            // InternalSignalDSL.g:13905:3: rule__XFeatureCall__ExplicitOperationCallAssignment_3_0
             {
             pushFollow(FOLLOW_2);
             rule__XFeatureCall__ExplicitOperationCallAssignment_3_0();
@@ -45473,16 +46258,16 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_3__1"
-    // InternalSignalDSL.g:13650:1: rule__XFeatureCall__Group_3__1 : rule__XFeatureCall__Group_3__1__Impl rule__XFeatureCall__Group_3__2 ;
+    // InternalSignalDSL.g:13913: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:13654:1: ( rule__XFeatureCall__Group_3__1__Impl rule__XFeatureCall__Group_3__2 )
-            // InternalSignalDSL.g:13655:2: rule__XFeatureCall__Group_3__1__Impl rule__XFeatureCall__Group_3__2
+            // InternalSignalDSL.g:13917:1: ( rule__XFeatureCall__Group_3__1__Impl rule__XFeatureCall__Group_3__2 )
+            // InternalSignalDSL.g:13918:2: rule__XFeatureCall__Group_3__1__Impl rule__XFeatureCall__Group_3__2
             {
-            pushFollow(FOLLOW_69);
+            pushFollow(FOLLOW_74);
             rule__XFeatureCall__Group_3__1__Impl();
 
             state._fsp--;
@@ -45511,31 +46296,31 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_3__1__Impl"
-    // InternalSignalDSL.g:13662:1: rule__XFeatureCall__Group_3__1__Impl : ( ( rule__XFeatureCall__Alternatives_3_1 )? ) ;
+    // InternalSignalDSL.g:13925: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:13666:1: ( ( ( rule__XFeatureCall__Alternatives_3_1 )? ) )
-            // InternalSignalDSL.g:13667:1: ( ( rule__XFeatureCall__Alternatives_3_1 )? )
+            // InternalSignalDSL.g:13929:1: ( ( ( rule__XFeatureCall__Alternatives_3_1 )? ) )
+            // InternalSignalDSL.g:13930:1: ( ( rule__XFeatureCall__Alternatives_3_1 )? )
             {
-            // InternalSignalDSL.g:13667:1: ( ( rule__XFeatureCall__Alternatives_3_1 )? )
-            // InternalSignalDSL.g:13668:2: ( rule__XFeatureCall__Alternatives_3_1 )?
+            // InternalSignalDSL.g:13930:1: ( ( rule__XFeatureCall__Alternatives_3_1 )? )
+            // InternalSignalDSL.g:13931:2: ( rule__XFeatureCall__Alternatives_3_1 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getAlternatives_3_1()); 
             }
-            // InternalSignalDSL.g:13669:2: ( rule__XFeatureCall__Alternatives_3_1 )?
-            int alt113=2;
-            int LA113_0 = input.LA(1);
+            // InternalSignalDSL.g:13932:2: ( rule__XFeatureCall__Alternatives_3_1 )?
+            int alt116=2;
+            int LA116_0 = input.LA(1);
 
-            if ( ((LA113_0>=RULE_ID && LA113_0<=RULE_STRING)||LA113_0==27||LA113_0==31||(LA113_0>=34 && LA113_0<=35)||LA113_0==40||(LA113_0>=45 && LA113_0<=50)||LA113_0==68||LA113_0==72||LA113_0==76||(LA113_0>=80 && LA113_0<=81)||LA113_0==84||LA113_0==86||(LA113_0>=90 && LA113_0<=97)||LA113_0==99||LA113_0==106||LA113_0==108) ) {
-                alt113=1;
+            if ( ((LA116_0>=RULE_ID && LA116_0<=RULE_STRING)||LA116_0==27||LA116_0==31||(LA116_0>=34 && LA116_0<=35)||LA116_0==40||(LA116_0>=45 && LA116_0<=50)||LA116_0==64||LA116_0==68||LA116_0==74||(LA116_0>=78 && LA116_0<=79)||LA116_0==82||LA116_0==84||(LA116_0>=88 && LA116_0<=95)||LA116_0==97||LA116_0==104||LA116_0==106) ) {
+                alt116=1;
             }
-            switch (alt113) {
+            switch (alt116) {
                 case 1 :
-                    // InternalSignalDSL.g:13669:3: rule__XFeatureCall__Alternatives_3_1
+                    // InternalSignalDSL.g:13932:3: rule__XFeatureCall__Alternatives_3_1
                     {
                     pushFollow(FOLLOW_2);
                     rule__XFeatureCall__Alternatives_3_1();
@@ -45573,14 +46358,14 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_3__2"
-    // InternalSignalDSL.g:13677:1: rule__XFeatureCall__Group_3__2 : rule__XFeatureCall__Group_3__2__Impl ;
+    // InternalSignalDSL.g:13940: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:13681:1: ( rule__XFeatureCall__Group_3__2__Impl )
-            // InternalSignalDSL.g:13682:2: rule__XFeatureCall__Group_3__2__Impl
+            // InternalSignalDSL.g:13944:1: ( rule__XFeatureCall__Group_3__2__Impl )
+            // InternalSignalDSL.g:13945:2: rule__XFeatureCall__Group_3__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XFeatureCall__Group_3__2__Impl();
@@ -45606,22 +46391,22 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_3__2__Impl"
-    // InternalSignalDSL.g:13688:1: rule__XFeatureCall__Group_3__2__Impl : ( ')' ) ;
+    // InternalSignalDSL.g:13951:1: rule__XFeatureCall__Group_3__2__Impl : ( ')' ) ;
     public final void rule__XFeatureCall__Group_3__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:13692:1: ( ( ')' ) )
-            // InternalSignalDSL.g:13693:1: ( ')' )
+            // InternalSignalDSL.g:13955:1: ( ( ')' ) )
+            // InternalSignalDSL.g:13956:1: ( ')' )
             {
-            // InternalSignalDSL.g:13693:1: ( ')' )
-            // InternalSignalDSL.g:13694:2: ')'
+            // InternalSignalDSL.g:13956:1: ( ')' )
+            // InternalSignalDSL.g:13957:2: ')'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getRightParenthesisKeyword_3_2()); 
             }
-            match(input,77,FOLLOW_2); if (state.failed) return ;
+            match(input,75,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXFeatureCallAccess().getRightParenthesisKeyword_3_2()); 
             }
@@ -45647,16 +46432,16 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_3_1_1__0"
-    // InternalSignalDSL.g:13704: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:13967: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:13708:1: ( rule__XFeatureCall__Group_3_1_1__0__Impl rule__XFeatureCall__Group_3_1_1__1 )
-            // InternalSignalDSL.g:13709:2: rule__XFeatureCall__Group_3_1_1__0__Impl rule__XFeatureCall__Group_3_1_1__1
+            // InternalSignalDSL.g:13971:1: ( rule__XFeatureCall__Group_3_1_1__0__Impl rule__XFeatureCall__Group_3_1_1__1 )
+            // InternalSignalDSL.g:13972:2: rule__XFeatureCall__Group_3_1_1__0__Impl rule__XFeatureCall__Group_3_1_1__1
             {
-            pushFollow(FOLLOW_28);
+            pushFollow(FOLLOW_33);
             rule__XFeatureCall__Group_3_1_1__0__Impl();
 
             state._fsp--;
@@ -45685,23 +46470,23 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_3_1_1__0__Impl"
-    // InternalSignalDSL.g:13716:1: rule__XFeatureCall__Group_3_1_1__0__Impl : ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0 ) ) ;
+    // InternalSignalDSL.g:13979: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:13720:1: ( ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0 ) ) )
-            // InternalSignalDSL.g:13721:1: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0 ) )
+            // InternalSignalDSL.g:13983:1: ( ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0 ) ) )
+            // InternalSignalDSL.g:13984:1: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0 ) )
             {
-            // InternalSignalDSL.g:13721:1: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0 ) )
-            // InternalSignalDSL.g:13722:2: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0 )
+            // InternalSignalDSL.g:13984:1: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0 ) )
+            // InternalSignalDSL.g:13985:2: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsAssignment_3_1_1_0()); 
             }
-            // InternalSignalDSL.g:13723:2: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0 )
-            // InternalSignalDSL.g:13723:3: rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0
+            // InternalSignalDSL.g:13986:2: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0 )
+            // InternalSignalDSL.g:13986:3: rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0
             {
             pushFollow(FOLLOW_2);
             rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0();
@@ -45736,14 +46521,14 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_3_1_1__1"
-    // InternalSignalDSL.g:13731:1: rule__XFeatureCall__Group_3_1_1__1 : rule__XFeatureCall__Group_3_1_1__1__Impl ;
+    // InternalSignalDSL.g:13994: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:13735:1: ( rule__XFeatureCall__Group_3_1_1__1__Impl )
-            // InternalSignalDSL.g:13736:2: rule__XFeatureCall__Group_3_1_1__1__Impl
+            // InternalSignalDSL.g:13998:1: ( rule__XFeatureCall__Group_3_1_1__1__Impl )
+            // InternalSignalDSL.g:13999:2: rule__XFeatureCall__Group_3_1_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XFeatureCall__Group_3_1_1__1__Impl();
@@ -45769,37 +46554,37 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_3_1_1__1__Impl"
-    // InternalSignalDSL.g:13742:1: rule__XFeatureCall__Group_3_1_1__1__Impl : ( ( rule__XFeatureCall__Group_3_1_1_1__0 )* ) ;
+    // InternalSignalDSL.g:14005: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:13746:1: ( ( ( rule__XFeatureCall__Group_3_1_1_1__0 )* ) )
-            // InternalSignalDSL.g:13747:1: ( ( rule__XFeatureCall__Group_3_1_1_1__0 )* )
+            // InternalSignalDSL.g:14009:1: ( ( ( rule__XFeatureCall__Group_3_1_1_1__0 )* ) )
+            // InternalSignalDSL.g:14010:1: ( ( rule__XFeatureCall__Group_3_1_1_1__0 )* )
             {
-            // InternalSignalDSL.g:13747:1: ( ( rule__XFeatureCall__Group_3_1_1_1__0 )* )
-            // InternalSignalDSL.g:13748:2: ( rule__XFeatureCall__Group_3_1_1_1__0 )*
+            // InternalSignalDSL.g:14010:1: ( ( rule__XFeatureCall__Group_3_1_1_1__0 )* )
+            // InternalSignalDSL.g:14011:2: ( rule__XFeatureCall__Group_3_1_1_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getGroup_3_1_1_1()); 
             }
-            // InternalSignalDSL.g:13749:2: ( rule__XFeatureCall__Group_3_1_1_1__0 )*
-            loop114:
+            // InternalSignalDSL.g:14012:2: ( rule__XFeatureCall__Group_3_1_1_1__0 )*
+            loop117:
             do {
-                int alt114=2;
-                int LA114_0 = input.LA(1);
+                int alt117=2;
+                int LA117_0 = input.LA(1);
 
-                if ( (LA114_0==78) ) {
-                    alt114=1;
+                if ( (LA117_0==76) ) {
+                    alt117=1;
                 }
 
 
-                switch (alt114) {
+                switch (alt117) {
             	case 1 :
-            	    // InternalSignalDSL.g:13749:3: rule__XFeatureCall__Group_3_1_1_1__0
+            	    // InternalSignalDSL.g:14012:3: rule__XFeatureCall__Group_3_1_1_1__0
             	    {
-            	    pushFollow(FOLLOW_29);
+            	    pushFollow(FOLLOW_34);
             	    rule__XFeatureCall__Group_3_1_1_1__0();
 
             	    state._fsp--;
@@ -45809,7 +46594,7 @@
             	    break;
 
             	default :
-            	    break loop114;
+            	    break loop117;
                 }
             } while (true);
 
@@ -45838,16 +46623,16 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_3_1_1_1__0"
-    // InternalSignalDSL.g:13758: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:14021: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:13762:1: ( rule__XFeatureCall__Group_3_1_1_1__0__Impl rule__XFeatureCall__Group_3_1_1_1__1 )
-            // InternalSignalDSL.g:13763:2: rule__XFeatureCall__Group_3_1_1_1__0__Impl rule__XFeatureCall__Group_3_1_1_1__1
+            // InternalSignalDSL.g:14025:1: ( rule__XFeatureCall__Group_3_1_1_1__0__Impl rule__XFeatureCall__Group_3_1_1_1__1 )
+            // InternalSignalDSL.g:14026:2: rule__XFeatureCall__Group_3_1_1_1__0__Impl rule__XFeatureCall__Group_3_1_1_1__1
             {
-            pushFollow(FOLLOW_30);
+            pushFollow(FOLLOW_35);
             rule__XFeatureCall__Group_3_1_1_1__0__Impl();
 
             state._fsp--;
@@ -45876,22 +46661,22 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_3_1_1_1__0__Impl"
-    // InternalSignalDSL.g:13770:1: rule__XFeatureCall__Group_3_1_1_1__0__Impl : ( ',' ) ;
+    // InternalSignalDSL.g:14033: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:13774:1: ( ( ',' ) )
-            // InternalSignalDSL.g:13775:1: ( ',' )
+            // InternalSignalDSL.g:14037:1: ( ( ',' ) )
+            // InternalSignalDSL.g:14038:1: ( ',' )
             {
-            // InternalSignalDSL.g:13775:1: ( ',' )
-            // InternalSignalDSL.g:13776:2: ','
+            // InternalSignalDSL.g:14038:1: ( ',' )
+            // InternalSignalDSL.g:14039:2: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getCommaKeyword_3_1_1_1_0()); 
             }
-            match(input,78,FOLLOW_2); if (state.failed) return ;
+            match(input,76,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXFeatureCallAccess().getCommaKeyword_3_1_1_1_0()); 
             }
@@ -45917,14 +46702,14 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_3_1_1_1__1"
-    // InternalSignalDSL.g:13785:1: rule__XFeatureCall__Group_3_1_1_1__1 : rule__XFeatureCall__Group_3_1_1_1__1__Impl ;
+    // InternalSignalDSL.g:14048: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:13789:1: ( rule__XFeatureCall__Group_3_1_1_1__1__Impl )
-            // InternalSignalDSL.g:13790:2: rule__XFeatureCall__Group_3_1_1_1__1__Impl
+            // InternalSignalDSL.g:14052:1: ( rule__XFeatureCall__Group_3_1_1_1__1__Impl )
+            // InternalSignalDSL.g:14053:2: rule__XFeatureCall__Group_3_1_1_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XFeatureCall__Group_3_1_1_1__1__Impl();
@@ -45950,23 +46735,23 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_3_1_1_1__1__Impl"
-    // InternalSignalDSL.g:13796:1: rule__XFeatureCall__Group_3_1_1_1__1__Impl : ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1 ) ) ;
+    // InternalSignalDSL.g:14059: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:13800:1: ( ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1 ) ) )
-            // InternalSignalDSL.g:13801:1: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1 ) )
+            // InternalSignalDSL.g:14063:1: ( ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1 ) ) )
+            // InternalSignalDSL.g:14064:1: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1 ) )
             {
-            // InternalSignalDSL.g:13801:1: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1 ) )
-            // InternalSignalDSL.g:13802:2: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1 )
+            // InternalSignalDSL.g:14064:1: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1 ) )
+            // InternalSignalDSL.g:14065:2: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsAssignment_3_1_1_1_1()); 
             }
-            // InternalSignalDSL.g:13803:2: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1 )
-            // InternalSignalDSL.g:13803:3: rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1
+            // InternalSignalDSL.g:14066:2: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1 )
+            // InternalSignalDSL.g:14066:3: rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1();
@@ -46001,16 +46786,16 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group__0"
-    // InternalSignalDSL.g:13812:1: rule__XConstructorCall__Group__0 : rule__XConstructorCall__Group__0__Impl rule__XConstructorCall__Group__1 ;
+    // InternalSignalDSL.g:14075: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:13816:1: ( rule__XConstructorCall__Group__0__Impl rule__XConstructorCall__Group__1 )
-            // InternalSignalDSL.g:13817:2: rule__XConstructorCall__Group__0__Impl rule__XConstructorCall__Group__1
+            // InternalSignalDSL.g:14079:1: ( rule__XConstructorCall__Group__0__Impl rule__XConstructorCall__Group__1 )
+            // InternalSignalDSL.g:14080:2: rule__XConstructorCall__Group__0__Impl rule__XConstructorCall__Group__1
             {
-            pushFollow(FOLLOW_91);
+            pushFollow(FOLLOW_96);
             rule__XConstructorCall__Group__0__Impl();
 
             state._fsp--;
@@ -46039,23 +46824,23 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group__0__Impl"
-    // InternalSignalDSL.g:13824:1: rule__XConstructorCall__Group__0__Impl : ( () ) ;
+    // InternalSignalDSL.g:14087:1: rule__XConstructorCall__Group__0__Impl : ( () ) ;
     public final void rule__XConstructorCall__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:13828:1: ( ( () ) )
-            // InternalSignalDSL.g:13829:1: ( () )
+            // InternalSignalDSL.g:14091:1: ( ( () ) )
+            // InternalSignalDSL.g:14092:1: ( () )
             {
-            // InternalSignalDSL.g:13829:1: ( () )
-            // InternalSignalDSL.g:13830:2: ()
+            // InternalSignalDSL.g:14092:1: ( () )
+            // InternalSignalDSL.g:14093:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getXConstructorCallAction_0()); 
             }
-            // InternalSignalDSL.g:13831:2: ()
-            // InternalSignalDSL.g:13831:3: 
+            // InternalSignalDSL.g:14094:2: ()
+            // InternalSignalDSL.g:14094:3: 
             {
             }
 
@@ -46080,14 +46865,14 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group__1"
-    // InternalSignalDSL.g:13839:1: rule__XConstructorCall__Group__1 : rule__XConstructorCall__Group__1__Impl rule__XConstructorCall__Group__2 ;
+    // InternalSignalDSL.g:14102: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:13843:1: ( rule__XConstructorCall__Group__1__Impl rule__XConstructorCall__Group__2 )
-            // InternalSignalDSL.g:13844:2: rule__XConstructorCall__Group__1__Impl rule__XConstructorCall__Group__2
+            // InternalSignalDSL.g:14106:1: ( rule__XConstructorCall__Group__1__Impl rule__XConstructorCall__Group__2 )
+            // InternalSignalDSL.g:14107:2: rule__XConstructorCall__Group__1__Impl rule__XConstructorCall__Group__2
             {
             pushFollow(FOLLOW_7);
             rule__XConstructorCall__Group__1__Impl();
@@ -46118,22 +46903,22 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group__1__Impl"
-    // InternalSignalDSL.g:13851:1: rule__XConstructorCall__Group__1__Impl : ( 'new' ) ;
+    // InternalSignalDSL.g:14114:1: rule__XConstructorCall__Group__1__Impl : ( 'new' ) ;
     public final void rule__XConstructorCall__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:13855:1: ( ( 'new' ) )
-            // InternalSignalDSL.g:13856:1: ( 'new' )
+            // InternalSignalDSL.g:14118:1: ( ( 'new' ) )
+            // InternalSignalDSL.g:14119:1: ( 'new' )
             {
-            // InternalSignalDSL.g:13856:1: ( 'new' )
-            // InternalSignalDSL.g:13857:2: 'new'
+            // InternalSignalDSL.g:14119:1: ( 'new' )
+            // InternalSignalDSL.g:14120:2: 'new'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getNewKeyword_1()); 
             }
-            match(input,92,FOLLOW_2); if (state.failed) return ;
+            match(input,90,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXConstructorCallAccess().getNewKeyword_1()); 
             }
@@ -46159,16 +46944,16 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group__2"
-    // InternalSignalDSL.g:13866:1: rule__XConstructorCall__Group__2 : rule__XConstructorCall__Group__2__Impl rule__XConstructorCall__Group__3 ;
+    // InternalSignalDSL.g:14129: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:13870:1: ( rule__XConstructorCall__Group__2__Impl rule__XConstructorCall__Group__3 )
-            // InternalSignalDSL.g:13871:2: rule__XConstructorCall__Group__2__Impl rule__XConstructorCall__Group__3
+            // InternalSignalDSL.g:14133:1: ( rule__XConstructorCall__Group__2__Impl rule__XConstructorCall__Group__3 )
+            // InternalSignalDSL.g:14134:2: rule__XConstructorCall__Group__2__Impl rule__XConstructorCall__Group__3
             {
-            pushFollow(FOLLOW_92);
+            pushFollow(FOLLOW_97);
             rule__XConstructorCall__Group__2__Impl();
 
             state._fsp--;
@@ -46197,23 +46982,23 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group__2__Impl"
-    // InternalSignalDSL.g:13878:1: rule__XConstructorCall__Group__2__Impl : ( ( rule__XConstructorCall__ConstructorAssignment_2 ) ) ;
+    // InternalSignalDSL.g:14141: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:13882:1: ( ( ( rule__XConstructorCall__ConstructorAssignment_2 ) ) )
-            // InternalSignalDSL.g:13883:1: ( ( rule__XConstructorCall__ConstructorAssignment_2 ) )
+            // InternalSignalDSL.g:14145:1: ( ( ( rule__XConstructorCall__ConstructorAssignment_2 ) ) )
+            // InternalSignalDSL.g:14146:1: ( ( rule__XConstructorCall__ConstructorAssignment_2 ) )
             {
-            // InternalSignalDSL.g:13883:1: ( ( rule__XConstructorCall__ConstructorAssignment_2 ) )
-            // InternalSignalDSL.g:13884:2: ( rule__XConstructorCall__ConstructorAssignment_2 )
+            // InternalSignalDSL.g:14146:1: ( ( rule__XConstructorCall__ConstructorAssignment_2 ) )
+            // InternalSignalDSL.g:14147:2: ( rule__XConstructorCall__ConstructorAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getConstructorAssignment_2()); 
             }
-            // InternalSignalDSL.g:13885:2: ( rule__XConstructorCall__ConstructorAssignment_2 )
-            // InternalSignalDSL.g:13885:3: rule__XConstructorCall__ConstructorAssignment_2
+            // InternalSignalDSL.g:14148:2: ( rule__XConstructorCall__ConstructorAssignment_2 )
+            // InternalSignalDSL.g:14148:3: rule__XConstructorCall__ConstructorAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__XConstructorCall__ConstructorAssignment_2();
@@ -46248,16 +47033,16 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group__3"
-    // InternalSignalDSL.g:13893:1: rule__XConstructorCall__Group__3 : rule__XConstructorCall__Group__3__Impl rule__XConstructorCall__Group__4 ;
+    // InternalSignalDSL.g:14156: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:13897:1: ( rule__XConstructorCall__Group__3__Impl rule__XConstructorCall__Group__4 )
-            // InternalSignalDSL.g:13898:2: rule__XConstructorCall__Group__3__Impl rule__XConstructorCall__Group__4
+            // InternalSignalDSL.g:14160:1: ( rule__XConstructorCall__Group__3__Impl rule__XConstructorCall__Group__4 )
+            // InternalSignalDSL.g:14161:2: rule__XConstructorCall__Group__3__Impl rule__XConstructorCall__Group__4
             {
-            pushFollow(FOLLOW_92);
+            pushFollow(FOLLOW_97);
             rule__XConstructorCall__Group__3__Impl();
 
             state._fsp--;
@@ -46286,27 +47071,27 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group__3__Impl"
-    // InternalSignalDSL.g:13905:1: rule__XConstructorCall__Group__3__Impl : ( ( rule__XConstructorCall__Group_3__0 )? ) ;
+    // InternalSignalDSL.g:14168: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:13909:1: ( ( ( rule__XConstructorCall__Group_3__0 )? ) )
-            // InternalSignalDSL.g:13910:1: ( ( rule__XConstructorCall__Group_3__0 )? )
+            // InternalSignalDSL.g:14172:1: ( ( ( rule__XConstructorCall__Group_3__0 )? ) )
+            // InternalSignalDSL.g:14173:1: ( ( rule__XConstructorCall__Group_3__0 )? )
             {
-            // InternalSignalDSL.g:13910:1: ( ( rule__XConstructorCall__Group_3__0 )? )
-            // InternalSignalDSL.g:13911:2: ( rule__XConstructorCall__Group_3__0 )?
+            // InternalSignalDSL.g:14173:1: ( ( rule__XConstructorCall__Group_3__0 )? )
+            // InternalSignalDSL.g:14174:2: ( rule__XConstructorCall__Group_3__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getGroup_3()); 
             }
-            // InternalSignalDSL.g:13912:2: ( rule__XConstructorCall__Group_3__0 )?
-            int alt115=2;
-            alt115 = dfa115.predict(input);
-            switch (alt115) {
+            // InternalSignalDSL.g:14175:2: ( rule__XConstructorCall__Group_3__0 )?
+            int alt118=2;
+            alt118 = dfa118.predict(input);
+            switch (alt118) {
                 case 1 :
-                    // InternalSignalDSL.g:13912:3: rule__XConstructorCall__Group_3__0
+                    // InternalSignalDSL.g:14175:3: rule__XConstructorCall__Group_3__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XConstructorCall__Group_3__0();
@@ -46344,16 +47129,16 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group__4"
-    // InternalSignalDSL.g:13920:1: rule__XConstructorCall__Group__4 : rule__XConstructorCall__Group__4__Impl rule__XConstructorCall__Group__5 ;
+    // InternalSignalDSL.g:14183: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:13924:1: ( rule__XConstructorCall__Group__4__Impl rule__XConstructorCall__Group__5 )
-            // InternalSignalDSL.g:13925:2: rule__XConstructorCall__Group__4__Impl rule__XConstructorCall__Group__5
+            // InternalSignalDSL.g:14187:1: ( rule__XConstructorCall__Group__4__Impl rule__XConstructorCall__Group__5 )
+            // InternalSignalDSL.g:14188:2: rule__XConstructorCall__Group__4__Impl rule__XConstructorCall__Group__5
             {
-            pushFollow(FOLLOW_92);
+            pushFollow(FOLLOW_97);
             rule__XConstructorCall__Group__4__Impl();
 
             state._fsp--;
@@ -46382,27 +47167,27 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group__4__Impl"
-    // InternalSignalDSL.g:13932:1: rule__XConstructorCall__Group__4__Impl : ( ( rule__XConstructorCall__Group_4__0 )? ) ;
+    // InternalSignalDSL.g:14195: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:13936:1: ( ( ( rule__XConstructorCall__Group_4__0 )? ) )
-            // InternalSignalDSL.g:13937:1: ( ( rule__XConstructorCall__Group_4__0 )? )
+            // InternalSignalDSL.g:14199:1: ( ( ( rule__XConstructorCall__Group_4__0 )? ) )
+            // InternalSignalDSL.g:14200:1: ( ( rule__XConstructorCall__Group_4__0 )? )
             {
-            // InternalSignalDSL.g:13937:1: ( ( rule__XConstructorCall__Group_4__0 )? )
-            // InternalSignalDSL.g:13938:2: ( rule__XConstructorCall__Group_4__0 )?
+            // InternalSignalDSL.g:14200:1: ( ( rule__XConstructorCall__Group_4__0 )? )
+            // InternalSignalDSL.g:14201:2: ( rule__XConstructorCall__Group_4__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getGroup_4()); 
             }
-            // InternalSignalDSL.g:13939:2: ( rule__XConstructorCall__Group_4__0 )?
-            int alt116=2;
-            alt116 = dfa116.predict(input);
-            switch (alt116) {
+            // InternalSignalDSL.g:14202:2: ( rule__XConstructorCall__Group_4__0 )?
+            int alt119=2;
+            alt119 = dfa119.predict(input);
+            switch (alt119) {
                 case 1 :
-                    // InternalSignalDSL.g:13939:3: rule__XConstructorCall__Group_4__0
+                    // InternalSignalDSL.g:14202:3: rule__XConstructorCall__Group_4__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XConstructorCall__Group_4__0();
@@ -46440,14 +47225,14 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group__5"
-    // InternalSignalDSL.g:13947:1: rule__XConstructorCall__Group__5 : rule__XConstructorCall__Group__5__Impl ;
+    // InternalSignalDSL.g:14210: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:13951:1: ( rule__XConstructorCall__Group__5__Impl )
-            // InternalSignalDSL.g:13952:2: rule__XConstructorCall__Group__5__Impl
+            // InternalSignalDSL.g:14214:1: ( rule__XConstructorCall__Group__5__Impl )
+            // InternalSignalDSL.g:14215:2: rule__XConstructorCall__Group__5__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XConstructorCall__Group__5__Impl();
@@ -46473,27 +47258,27 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group__5__Impl"
-    // InternalSignalDSL.g:13958:1: rule__XConstructorCall__Group__5__Impl : ( ( rule__XConstructorCall__ArgumentsAssignment_5 )? ) ;
+    // InternalSignalDSL.g:14221: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:13962:1: ( ( ( rule__XConstructorCall__ArgumentsAssignment_5 )? ) )
-            // InternalSignalDSL.g:13963:1: ( ( rule__XConstructorCall__ArgumentsAssignment_5 )? )
+            // InternalSignalDSL.g:14225:1: ( ( ( rule__XConstructorCall__ArgumentsAssignment_5 )? ) )
+            // InternalSignalDSL.g:14226:1: ( ( rule__XConstructorCall__ArgumentsAssignment_5 )? )
             {
-            // InternalSignalDSL.g:13963:1: ( ( rule__XConstructorCall__ArgumentsAssignment_5 )? )
-            // InternalSignalDSL.g:13964:2: ( rule__XConstructorCall__ArgumentsAssignment_5 )?
+            // InternalSignalDSL.g:14226:1: ( ( rule__XConstructorCall__ArgumentsAssignment_5 )? )
+            // InternalSignalDSL.g:14227:2: ( rule__XConstructorCall__ArgumentsAssignment_5 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getArgumentsAssignment_5()); 
             }
-            // InternalSignalDSL.g:13965:2: ( rule__XConstructorCall__ArgumentsAssignment_5 )?
-            int alt117=2;
-            alt117 = dfa117.predict(input);
-            switch (alt117) {
+            // InternalSignalDSL.g:14228:2: ( rule__XConstructorCall__ArgumentsAssignment_5 )?
+            int alt120=2;
+            alt120 = dfa120.predict(input);
+            switch (alt120) {
                 case 1 :
-                    // InternalSignalDSL.g:13965:3: rule__XConstructorCall__ArgumentsAssignment_5
+                    // InternalSignalDSL.g:14228:3: rule__XConstructorCall__ArgumentsAssignment_5
                     {
                     pushFollow(FOLLOW_2);
                     rule__XConstructorCall__ArgumentsAssignment_5();
@@ -46531,16 +47316,16 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_3__0"
-    // InternalSignalDSL.g:13974:1: rule__XConstructorCall__Group_3__0 : rule__XConstructorCall__Group_3__0__Impl rule__XConstructorCall__Group_3__1 ;
+    // InternalSignalDSL.g:14237: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:13978:1: ( rule__XConstructorCall__Group_3__0__Impl rule__XConstructorCall__Group_3__1 )
-            // InternalSignalDSL.g:13979:2: rule__XConstructorCall__Group_3__0__Impl rule__XConstructorCall__Group_3__1
+            // InternalSignalDSL.g:14241:1: ( rule__XConstructorCall__Group_3__0__Impl rule__XConstructorCall__Group_3__1 )
+            // InternalSignalDSL.g:14242:2: rule__XConstructorCall__Group_3__0__Impl rule__XConstructorCall__Group_3__1
             {
-            pushFollow(FOLLOW_67);
+            pushFollow(FOLLOW_72);
             rule__XConstructorCall__Group_3__0__Impl();
 
             state._fsp--;
@@ -46569,23 +47354,23 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_3__0__Impl"
-    // InternalSignalDSL.g:13986:1: rule__XConstructorCall__Group_3__0__Impl : ( ( '<' ) ) ;
+    // InternalSignalDSL.g:14249:1: rule__XConstructorCall__Group_3__0__Impl : ( ( '<' ) ) ;
     public final void rule__XConstructorCall__Group_3__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:13990:1: ( ( ( '<' ) ) )
-            // InternalSignalDSL.g:13991:1: ( ( '<' ) )
+            // InternalSignalDSL.g:14253:1: ( ( ( '<' ) ) )
+            // InternalSignalDSL.g:14254:1: ( ( '<' ) )
             {
-            // InternalSignalDSL.g:13991:1: ( ( '<' ) )
-            // InternalSignalDSL.g:13992:2: ( '<' )
+            // InternalSignalDSL.g:14254:1: ( ( '<' ) )
+            // InternalSignalDSL.g:14255:2: ( '<' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getLessThanSignKeyword_3_0()); 
             }
-            // InternalSignalDSL.g:13993:2: ( '<' )
-            // InternalSignalDSL.g:13993:3: '<'
+            // InternalSignalDSL.g:14256:2: ( '<' )
+            // InternalSignalDSL.g:14256:3: '<'
             {
             match(input,27,FOLLOW_2); if (state.failed) return ;
 
@@ -46616,16 +47401,16 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_3__1"
-    // InternalSignalDSL.g:14001:1: rule__XConstructorCall__Group_3__1 : rule__XConstructorCall__Group_3__1__Impl rule__XConstructorCall__Group_3__2 ;
+    // InternalSignalDSL.g:14264: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:14005:1: ( rule__XConstructorCall__Group_3__1__Impl rule__XConstructorCall__Group_3__2 )
-            // InternalSignalDSL.g:14006:2: rule__XConstructorCall__Group_3__1__Impl rule__XConstructorCall__Group_3__2
+            // InternalSignalDSL.g:14268:1: ( rule__XConstructorCall__Group_3__1__Impl rule__XConstructorCall__Group_3__2 )
+            // InternalSignalDSL.g:14269:2: rule__XConstructorCall__Group_3__1__Impl rule__XConstructorCall__Group_3__2
             {
-            pushFollow(FOLLOW_68);
+            pushFollow(FOLLOW_73);
             rule__XConstructorCall__Group_3__1__Impl();
 
             state._fsp--;
@@ -46654,23 +47439,23 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_3__1__Impl"
-    // InternalSignalDSL.g:14013:1: rule__XConstructorCall__Group_3__1__Impl : ( ( rule__XConstructorCall__TypeArgumentsAssignment_3_1 ) ) ;
+    // InternalSignalDSL.g:14276: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:14017:1: ( ( ( rule__XConstructorCall__TypeArgumentsAssignment_3_1 ) ) )
-            // InternalSignalDSL.g:14018:1: ( ( rule__XConstructorCall__TypeArgumentsAssignment_3_1 ) )
+            // InternalSignalDSL.g:14280:1: ( ( ( rule__XConstructorCall__TypeArgumentsAssignment_3_1 ) ) )
+            // InternalSignalDSL.g:14281:1: ( ( rule__XConstructorCall__TypeArgumentsAssignment_3_1 ) )
             {
-            // InternalSignalDSL.g:14018:1: ( ( rule__XConstructorCall__TypeArgumentsAssignment_3_1 ) )
-            // InternalSignalDSL.g:14019:2: ( rule__XConstructorCall__TypeArgumentsAssignment_3_1 )
+            // InternalSignalDSL.g:14281:1: ( ( rule__XConstructorCall__TypeArgumentsAssignment_3_1 ) )
+            // InternalSignalDSL.g:14282:2: ( rule__XConstructorCall__TypeArgumentsAssignment_3_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getTypeArgumentsAssignment_3_1()); 
             }
-            // InternalSignalDSL.g:14020:2: ( rule__XConstructorCall__TypeArgumentsAssignment_3_1 )
-            // InternalSignalDSL.g:14020:3: rule__XConstructorCall__TypeArgumentsAssignment_3_1
+            // InternalSignalDSL.g:14283:2: ( rule__XConstructorCall__TypeArgumentsAssignment_3_1 )
+            // InternalSignalDSL.g:14283:3: rule__XConstructorCall__TypeArgumentsAssignment_3_1
             {
             pushFollow(FOLLOW_2);
             rule__XConstructorCall__TypeArgumentsAssignment_3_1();
@@ -46705,16 +47490,16 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_3__2"
-    // InternalSignalDSL.g:14028:1: rule__XConstructorCall__Group_3__2 : rule__XConstructorCall__Group_3__2__Impl rule__XConstructorCall__Group_3__3 ;
+    // InternalSignalDSL.g:14291: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:14032:1: ( rule__XConstructorCall__Group_3__2__Impl rule__XConstructorCall__Group_3__3 )
-            // InternalSignalDSL.g:14033:2: rule__XConstructorCall__Group_3__2__Impl rule__XConstructorCall__Group_3__3
+            // InternalSignalDSL.g:14295:1: ( rule__XConstructorCall__Group_3__2__Impl rule__XConstructorCall__Group_3__3 )
+            // InternalSignalDSL.g:14296:2: rule__XConstructorCall__Group_3__2__Impl rule__XConstructorCall__Group_3__3
             {
-            pushFollow(FOLLOW_68);
+            pushFollow(FOLLOW_73);
             rule__XConstructorCall__Group_3__2__Impl();
 
             state._fsp--;
@@ -46743,37 +47528,37 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_3__2__Impl"
-    // InternalSignalDSL.g:14040:1: rule__XConstructorCall__Group_3__2__Impl : ( ( rule__XConstructorCall__Group_3_2__0 )* ) ;
+    // InternalSignalDSL.g:14303: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:14044:1: ( ( ( rule__XConstructorCall__Group_3_2__0 )* ) )
-            // InternalSignalDSL.g:14045:1: ( ( rule__XConstructorCall__Group_3_2__0 )* )
+            // InternalSignalDSL.g:14307:1: ( ( ( rule__XConstructorCall__Group_3_2__0 )* ) )
+            // InternalSignalDSL.g:14308:1: ( ( rule__XConstructorCall__Group_3_2__0 )* )
             {
-            // InternalSignalDSL.g:14045:1: ( ( rule__XConstructorCall__Group_3_2__0 )* )
-            // InternalSignalDSL.g:14046:2: ( rule__XConstructorCall__Group_3_2__0 )*
+            // InternalSignalDSL.g:14308:1: ( ( rule__XConstructorCall__Group_3_2__0 )* )
+            // InternalSignalDSL.g:14309:2: ( rule__XConstructorCall__Group_3_2__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getGroup_3_2()); 
             }
-            // InternalSignalDSL.g:14047:2: ( rule__XConstructorCall__Group_3_2__0 )*
-            loop118:
+            // InternalSignalDSL.g:14310:2: ( rule__XConstructorCall__Group_3_2__0 )*
+            loop121:
             do {
-                int alt118=2;
-                int LA118_0 = input.LA(1);
+                int alt121=2;
+                int LA121_0 = input.LA(1);
 
-                if ( (LA118_0==78) ) {
-                    alt118=1;
+                if ( (LA121_0==76) ) {
+                    alt121=1;
                 }
 
 
-                switch (alt118) {
+                switch (alt121) {
             	case 1 :
-            	    // InternalSignalDSL.g:14047:3: rule__XConstructorCall__Group_3_2__0
+            	    // InternalSignalDSL.g:14310:3: rule__XConstructorCall__Group_3_2__0
             	    {
-            	    pushFollow(FOLLOW_29);
+            	    pushFollow(FOLLOW_34);
             	    rule__XConstructorCall__Group_3_2__0();
 
             	    state._fsp--;
@@ -46783,7 +47568,7 @@
             	    break;
 
             	default :
-            	    break loop118;
+            	    break loop121;
                 }
             } while (true);
 
@@ -46812,14 +47597,14 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_3__3"
-    // InternalSignalDSL.g:14055:1: rule__XConstructorCall__Group_3__3 : rule__XConstructorCall__Group_3__3__Impl ;
+    // InternalSignalDSL.g:14318: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:14059:1: ( rule__XConstructorCall__Group_3__3__Impl )
-            // InternalSignalDSL.g:14060:2: rule__XConstructorCall__Group_3__3__Impl
+            // InternalSignalDSL.g:14322:1: ( rule__XConstructorCall__Group_3__3__Impl )
+            // InternalSignalDSL.g:14323:2: rule__XConstructorCall__Group_3__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XConstructorCall__Group_3__3__Impl();
@@ -46845,17 +47630,17 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_3__3__Impl"
-    // InternalSignalDSL.g:14066:1: rule__XConstructorCall__Group_3__3__Impl : ( '>' ) ;
+    // InternalSignalDSL.g:14329:1: rule__XConstructorCall__Group_3__3__Impl : ( '>' ) ;
     public final void rule__XConstructorCall__Group_3__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:14070:1: ( ( '>' ) )
-            // InternalSignalDSL.g:14071:1: ( '>' )
+            // InternalSignalDSL.g:14333:1: ( ( '>' ) )
+            // InternalSignalDSL.g:14334:1: ( '>' )
             {
-            // InternalSignalDSL.g:14071:1: ( '>' )
-            // InternalSignalDSL.g:14072:2: '>'
+            // InternalSignalDSL.g:14334:1: ( '>' )
+            // InternalSignalDSL.g:14335:2: '>'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getGreaterThanSignKeyword_3_3()); 
@@ -46886,16 +47671,16 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_3_2__0"
-    // InternalSignalDSL.g:14082:1: rule__XConstructorCall__Group_3_2__0 : rule__XConstructorCall__Group_3_2__0__Impl rule__XConstructorCall__Group_3_2__1 ;
+    // InternalSignalDSL.g:14345: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:14086:1: ( rule__XConstructorCall__Group_3_2__0__Impl rule__XConstructorCall__Group_3_2__1 )
-            // InternalSignalDSL.g:14087:2: rule__XConstructorCall__Group_3_2__0__Impl rule__XConstructorCall__Group_3_2__1
+            // InternalSignalDSL.g:14349:1: ( rule__XConstructorCall__Group_3_2__0__Impl rule__XConstructorCall__Group_3_2__1 )
+            // InternalSignalDSL.g:14350:2: rule__XConstructorCall__Group_3_2__0__Impl rule__XConstructorCall__Group_3_2__1
             {
-            pushFollow(FOLLOW_67);
+            pushFollow(FOLLOW_72);
             rule__XConstructorCall__Group_3_2__0__Impl();
 
             state._fsp--;
@@ -46924,22 +47709,22 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_3_2__0__Impl"
-    // InternalSignalDSL.g:14094:1: rule__XConstructorCall__Group_3_2__0__Impl : ( ',' ) ;
+    // InternalSignalDSL.g:14357: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:14098:1: ( ( ',' ) )
-            // InternalSignalDSL.g:14099:1: ( ',' )
+            // InternalSignalDSL.g:14361:1: ( ( ',' ) )
+            // InternalSignalDSL.g:14362:1: ( ',' )
             {
-            // InternalSignalDSL.g:14099:1: ( ',' )
-            // InternalSignalDSL.g:14100:2: ','
+            // InternalSignalDSL.g:14362:1: ( ',' )
+            // InternalSignalDSL.g:14363:2: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getCommaKeyword_3_2_0()); 
             }
-            match(input,78,FOLLOW_2); if (state.failed) return ;
+            match(input,76,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXConstructorCallAccess().getCommaKeyword_3_2_0()); 
             }
@@ -46965,14 +47750,14 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_3_2__1"
-    // InternalSignalDSL.g:14109:1: rule__XConstructorCall__Group_3_2__1 : rule__XConstructorCall__Group_3_2__1__Impl ;
+    // InternalSignalDSL.g:14372: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:14113:1: ( rule__XConstructorCall__Group_3_2__1__Impl )
-            // InternalSignalDSL.g:14114:2: rule__XConstructorCall__Group_3_2__1__Impl
+            // InternalSignalDSL.g:14376:1: ( rule__XConstructorCall__Group_3_2__1__Impl )
+            // InternalSignalDSL.g:14377:2: rule__XConstructorCall__Group_3_2__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XConstructorCall__Group_3_2__1__Impl();
@@ -46998,23 +47783,23 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_3_2__1__Impl"
-    // InternalSignalDSL.g:14120:1: rule__XConstructorCall__Group_3_2__1__Impl : ( ( rule__XConstructorCall__TypeArgumentsAssignment_3_2_1 ) ) ;
+    // InternalSignalDSL.g:14383: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:14124:1: ( ( ( rule__XConstructorCall__TypeArgumentsAssignment_3_2_1 ) ) )
-            // InternalSignalDSL.g:14125:1: ( ( rule__XConstructorCall__TypeArgumentsAssignment_3_2_1 ) )
+            // InternalSignalDSL.g:14387:1: ( ( ( rule__XConstructorCall__TypeArgumentsAssignment_3_2_1 ) ) )
+            // InternalSignalDSL.g:14388:1: ( ( rule__XConstructorCall__TypeArgumentsAssignment_3_2_1 ) )
             {
-            // InternalSignalDSL.g:14125:1: ( ( rule__XConstructorCall__TypeArgumentsAssignment_3_2_1 ) )
-            // InternalSignalDSL.g:14126:2: ( rule__XConstructorCall__TypeArgumentsAssignment_3_2_1 )
+            // InternalSignalDSL.g:14388:1: ( ( rule__XConstructorCall__TypeArgumentsAssignment_3_2_1 ) )
+            // InternalSignalDSL.g:14389:2: ( rule__XConstructorCall__TypeArgumentsAssignment_3_2_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getTypeArgumentsAssignment_3_2_1()); 
             }
-            // InternalSignalDSL.g:14127:2: ( rule__XConstructorCall__TypeArgumentsAssignment_3_2_1 )
-            // InternalSignalDSL.g:14127:3: rule__XConstructorCall__TypeArgumentsAssignment_3_2_1
+            // InternalSignalDSL.g:14390:2: ( rule__XConstructorCall__TypeArgumentsAssignment_3_2_1 )
+            // InternalSignalDSL.g:14390:3: rule__XConstructorCall__TypeArgumentsAssignment_3_2_1
             {
             pushFollow(FOLLOW_2);
             rule__XConstructorCall__TypeArgumentsAssignment_3_2_1();
@@ -47049,16 +47834,16 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_4__0"
-    // InternalSignalDSL.g:14136:1: rule__XConstructorCall__Group_4__0 : rule__XConstructorCall__Group_4__0__Impl rule__XConstructorCall__Group_4__1 ;
+    // InternalSignalDSL.g:14399: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:14140:1: ( rule__XConstructorCall__Group_4__0__Impl rule__XConstructorCall__Group_4__1 )
-            // InternalSignalDSL.g:14141:2: rule__XConstructorCall__Group_4__0__Impl rule__XConstructorCall__Group_4__1
+            // InternalSignalDSL.g:14403:1: ( rule__XConstructorCall__Group_4__0__Impl rule__XConstructorCall__Group_4__1 )
+            // InternalSignalDSL.g:14404:2: rule__XConstructorCall__Group_4__0__Impl rule__XConstructorCall__Group_4__1
             {
-            pushFollow(FOLLOW_69);
+            pushFollow(FOLLOW_74);
             rule__XConstructorCall__Group_4__0__Impl();
 
             state._fsp--;
@@ -47087,23 +47872,23 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_4__0__Impl"
-    // InternalSignalDSL.g:14148:1: rule__XConstructorCall__Group_4__0__Impl : ( ( rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0 ) ) ;
+    // InternalSignalDSL.g:14411: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:14152:1: ( ( ( rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0 ) ) )
-            // InternalSignalDSL.g:14153:1: ( ( rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0 ) )
+            // InternalSignalDSL.g:14415:1: ( ( ( rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0 ) ) )
+            // InternalSignalDSL.g:14416:1: ( ( rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0 ) )
             {
-            // InternalSignalDSL.g:14153:1: ( ( rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0 ) )
-            // InternalSignalDSL.g:14154:2: ( rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0 )
+            // InternalSignalDSL.g:14416:1: ( ( rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0 ) )
+            // InternalSignalDSL.g:14417:2: ( rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getExplicitConstructorCallAssignment_4_0()); 
             }
-            // InternalSignalDSL.g:14155:2: ( rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0 )
-            // InternalSignalDSL.g:14155:3: rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0
+            // InternalSignalDSL.g:14418:2: ( rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0 )
+            // InternalSignalDSL.g:14418:3: rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0
             {
             pushFollow(FOLLOW_2);
             rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0();
@@ -47138,16 +47923,16 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_4__1"
-    // InternalSignalDSL.g:14163:1: rule__XConstructorCall__Group_4__1 : rule__XConstructorCall__Group_4__1__Impl rule__XConstructorCall__Group_4__2 ;
+    // InternalSignalDSL.g:14426: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:14167:1: ( rule__XConstructorCall__Group_4__1__Impl rule__XConstructorCall__Group_4__2 )
-            // InternalSignalDSL.g:14168:2: rule__XConstructorCall__Group_4__1__Impl rule__XConstructorCall__Group_4__2
+            // InternalSignalDSL.g:14430:1: ( rule__XConstructorCall__Group_4__1__Impl rule__XConstructorCall__Group_4__2 )
+            // InternalSignalDSL.g:14431:2: rule__XConstructorCall__Group_4__1__Impl rule__XConstructorCall__Group_4__2
             {
-            pushFollow(FOLLOW_69);
+            pushFollow(FOLLOW_74);
             rule__XConstructorCall__Group_4__1__Impl();
 
             state._fsp--;
@@ -47176,31 +47961,31 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_4__1__Impl"
-    // InternalSignalDSL.g:14175:1: rule__XConstructorCall__Group_4__1__Impl : ( ( rule__XConstructorCall__Alternatives_4_1 )? ) ;
+    // InternalSignalDSL.g:14438: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:14179:1: ( ( ( rule__XConstructorCall__Alternatives_4_1 )? ) )
-            // InternalSignalDSL.g:14180:1: ( ( rule__XConstructorCall__Alternatives_4_1 )? )
+            // InternalSignalDSL.g:14442:1: ( ( ( rule__XConstructorCall__Alternatives_4_1 )? ) )
+            // InternalSignalDSL.g:14443:1: ( ( rule__XConstructorCall__Alternatives_4_1 )? )
             {
-            // InternalSignalDSL.g:14180:1: ( ( rule__XConstructorCall__Alternatives_4_1 )? )
-            // InternalSignalDSL.g:14181:2: ( rule__XConstructorCall__Alternatives_4_1 )?
+            // InternalSignalDSL.g:14443:1: ( ( rule__XConstructorCall__Alternatives_4_1 )? )
+            // InternalSignalDSL.g:14444:2: ( rule__XConstructorCall__Alternatives_4_1 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getAlternatives_4_1()); 
             }
-            // InternalSignalDSL.g:14182:2: ( rule__XConstructorCall__Alternatives_4_1 )?
-            int alt119=2;
-            int LA119_0 = input.LA(1);
+            // InternalSignalDSL.g:14445:2: ( rule__XConstructorCall__Alternatives_4_1 )?
+            int alt122=2;
+            int LA122_0 = input.LA(1);
 
-            if ( ((LA119_0>=RULE_ID && LA119_0<=RULE_STRING)||LA119_0==27||LA119_0==31||(LA119_0>=34 && LA119_0<=35)||LA119_0==40||(LA119_0>=45 && LA119_0<=50)||LA119_0==68||LA119_0==72||LA119_0==76||(LA119_0>=80 && LA119_0<=81)||LA119_0==84||LA119_0==86||(LA119_0>=90 && LA119_0<=97)||LA119_0==99||LA119_0==106||LA119_0==108) ) {
-                alt119=1;
+            if ( ((LA122_0>=RULE_ID && LA122_0<=RULE_STRING)||LA122_0==27||LA122_0==31||(LA122_0>=34 && LA122_0<=35)||LA122_0==40||(LA122_0>=45 && LA122_0<=50)||LA122_0==64||LA122_0==68||LA122_0==74||(LA122_0>=78 && LA122_0<=79)||LA122_0==82||LA122_0==84||(LA122_0>=88 && LA122_0<=95)||LA122_0==97||LA122_0==104||LA122_0==106) ) {
+                alt122=1;
             }
-            switch (alt119) {
+            switch (alt122) {
                 case 1 :
-                    // InternalSignalDSL.g:14182:3: rule__XConstructorCall__Alternatives_4_1
+                    // InternalSignalDSL.g:14445:3: rule__XConstructorCall__Alternatives_4_1
                     {
                     pushFollow(FOLLOW_2);
                     rule__XConstructorCall__Alternatives_4_1();
@@ -47238,14 +48023,14 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_4__2"
-    // InternalSignalDSL.g:14190:1: rule__XConstructorCall__Group_4__2 : rule__XConstructorCall__Group_4__2__Impl ;
+    // InternalSignalDSL.g:14453: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:14194:1: ( rule__XConstructorCall__Group_4__2__Impl )
-            // InternalSignalDSL.g:14195:2: rule__XConstructorCall__Group_4__2__Impl
+            // InternalSignalDSL.g:14457:1: ( rule__XConstructorCall__Group_4__2__Impl )
+            // InternalSignalDSL.g:14458:2: rule__XConstructorCall__Group_4__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XConstructorCall__Group_4__2__Impl();
@@ -47271,22 +48056,22 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_4__2__Impl"
-    // InternalSignalDSL.g:14201:1: rule__XConstructorCall__Group_4__2__Impl : ( ')' ) ;
+    // InternalSignalDSL.g:14464:1: rule__XConstructorCall__Group_4__2__Impl : ( ')' ) ;
     public final void rule__XConstructorCall__Group_4__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:14205:1: ( ( ')' ) )
-            // InternalSignalDSL.g:14206:1: ( ')' )
+            // InternalSignalDSL.g:14468:1: ( ( ')' ) )
+            // InternalSignalDSL.g:14469:1: ( ')' )
             {
-            // InternalSignalDSL.g:14206:1: ( ')' )
-            // InternalSignalDSL.g:14207:2: ')'
+            // InternalSignalDSL.g:14469:1: ( ')' )
+            // InternalSignalDSL.g:14470:2: ')'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getRightParenthesisKeyword_4_2()); 
             }
-            match(input,77,FOLLOW_2); if (state.failed) return ;
+            match(input,75,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXConstructorCallAccess().getRightParenthesisKeyword_4_2()); 
             }
@@ -47312,16 +48097,16 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_4_1_1__0"
-    // InternalSignalDSL.g:14217: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:14480: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:14221:1: ( rule__XConstructorCall__Group_4_1_1__0__Impl rule__XConstructorCall__Group_4_1_1__1 )
-            // InternalSignalDSL.g:14222:2: rule__XConstructorCall__Group_4_1_1__0__Impl rule__XConstructorCall__Group_4_1_1__1
+            // InternalSignalDSL.g:14484:1: ( rule__XConstructorCall__Group_4_1_1__0__Impl rule__XConstructorCall__Group_4_1_1__1 )
+            // InternalSignalDSL.g:14485:2: rule__XConstructorCall__Group_4_1_1__0__Impl rule__XConstructorCall__Group_4_1_1__1
             {
-            pushFollow(FOLLOW_28);
+            pushFollow(FOLLOW_33);
             rule__XConstructorCall__Group_4_1_1__0__Impl();
 
             state._fsp--;
@@ -47350,23 +48135,23 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_4_1_1__0__Impl"
-    // InternalSignalDSL.g:14229:1: rule__XConstructorCall__Group_4_1_1__0__Impl : ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_0 ) ) ;
+    // InternalSignalDSL.g:14492: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:14233:1: ( ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_0 ) ) )
-            // InternalSignalDSL.g:14234:1: ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_0 ) )
+            // InternalSignalDSL.g:14496:1: ( ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_0 ) ) )
+            // InternalSignalDSL.g:14497:1: ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_0 ) )
             {
-            // InternalSignalDSL.g:14234:1: ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_0 ) )
-            // InternalSignalDSL.g:14235:2: ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_0 )
+            // InternalSignalDSL.g:14497:1: ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_0 ) )
+            // InternalSignalDSL.g:14498:2: ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getArgumentsAssignment_4_1_1_0()); 
             }
-            // InternalSignalDSL.g:14236:2: ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_0 )
-            // InternalSignalDSL.g:14236:3: rule__XConstructorCall__ArgumentsAssignment_4_1_1_0
+            // InternalSignalDSL.g:14499:2: ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_0 )
+            // InternalSignalDSL.g:14499:3: rule__XConstructorCall__ArgumentsAssignment_4_1_1_0
             {
             pushFollow(FOLLOW_2);
             rule__XConstructorCall__ArgumentsAssignment_4_1_1_0();
@@ -47401,14 +48186,14 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_4_1_1__1"
-    // InternalSignalDSL.g:14244:1: rule__XConstructorCall__Group_4_1_1__1 : rule__XConstructorCall__Group_4_1_1__1__Impl ;
+    // InternalSignalDSL.g:14507: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:14248:1: ( rule__XConstructorCall__Group_4_1_1__1__Impl )
-            // InternalSignalDSL.g:14249:2: rule__XConstructorCall__Group_4_1_1__1__Impl
+            // InternalSignalDSL.g:14511:1: ( rule__XConstructorCall__Group_4_1_1__1__Impl )
+            // InternalSignalDSL.g:14512:2: rule__XConstructorCall__Group_4_1_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XConstructorCall__Group_4_1_1__1__Impl();
@@ -47434,37 +48219,37 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_4_1_1__1__Impl"
-    // InternalSignalDSL.g:14255:1: rule__XConstructorCall__Group_4_1_1__1__Impl : ( ( rule__XConstructorCall__Group_4_1_1_1__0 )* ) ;
+    // InternalSignalDSL.g:14518: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:14259:1: ( ( ( rule__XConstructorCall__Group_4_1_1_1__0 )* ) )
-            // InternalSignalDSL.g:14260:1: ( ( rule__XConstructorCall__Group_4_1_1_1__0 )* )
+            // InternalSignalDSL.g:14522:1: ( ( ( rule__XConstructorCall__Group_4_1_1_1__0 )* ) )
+            // InternalSignalDSL.g:14523:1: ( ( rule__XConstructorCall__Group_4_1_1_1__0 )* )
             {
-            // InternalSignalDSL.g:14260:1: ( ( rule__XConstructorCall__Group_4_1_1_1__0 )* )
-            // InternalSignalDSL.g:14261:2: ( rule__XConstructorCall__Group_4_1_1_1__0 )*
+            // InternalSignalDSL.g:14523:1: ( ( rule__XConstructorCall__Group_4_1_1_1__0 )* )
+            // InternalSignalDSL.g:14524:2: ( rule__XConstructorCall__Group_4_1_1_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getGroup_4_1_1_1()); 
             }
-            // InternalSignalDSL.g:14262:2: ( rule__XConstructorCall__Group_4_1_1_1__0 )*
-            loop120:
+            // InternalSignalDSL.g:14525:2: ( rule__XConstructorCall__Group_4_1_1_1__0 )*
+            loop123:
             do {
-                int alt120=2;
-                int LA120_0 = input.LA(1);
+                int alt123=2;
+                int LA123_0 = input.LA(1);
 
-                if ( (LA120_0==78) ) {
-                    alt120=1;
+                if ( (LA123_0==76) ) {
+                    alt123=1;
                 }
 
 
-                switch (alt120) {
+                switch (alt123) {
             	case 1 :
-            	    // InternalSignalDSL.g:14262:3: rule__XConstructorCall__Group_4_1_1_1__0
+            	    // InternalSignalDSL.g:14525:3: rule__XConstructorCall__Group_4_1_1_1__0
             	    {
-            	    pushFollow(FOLLOW_29);
+            	    pushFollow(FOLLOW_34);
             	    rule__XConstructorCall__Group_4_1_1_1__0();
 
             	    state._fsp--;
@@ -47474,7 +48259,7 @@
             	    break;
 
             	default :
-            	    break loop120;
+            	    break loop123;
                 }
             } while (true);
 
@@ -47503,16 +48288,16 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_4_1_1_1__0"
-    // InternalSignalDSL.g:14271: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:14534: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:14275:1: ( rule__XConstructorCall__Group_4_1_1_1__0__Impl rule__XConstructorCall__Group_4_1_1_1__1 )
-            // InternalSignalDSL.g:14276:2: rule__XConstructorCall__Group_4_1_1_1__0__Impl rule__XConstructorCall__Group_4_1_1_1__1
+            // InternalSignalDSL.g:14538:1: ( rule__XConstructorCall__Group_4_1_1_1__0__Impl rule__XConstructorCall__Group_4_1_1_1__1 )
+            // InternalSignalDSL.g:14539:2: rule__XConstructorCall__Group_4_1_1_1__0__Impl rule__XConstructorCall__Group_4_1_1_1__1
             {
-            pushFollow(FOLLOW_30);
+            pushFollow(FOLLOW_35);
             rule__XConstructorCall__Group_4_1_1_1__0__Impl();
 
             state._fsp--;
@@ -47541,22 +48326,22 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_4_1_1_1__0__Impl"
-    // InternalSignalDSL.g:14283:1: rule__XConstructorCall__Group_4_1_1_1__0__Impl : ( ',' ) ;
+    // InternalSignalDSL.g:14546: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:14287:1: ( ( ',' ) )
-            // InternalSignalDSL.g:14288:1: ( ',' )
+            // InternalSignalDSL.g:14550:1: ( ( ',' ) )
+            // InternalSignalDSL.g:14551:1: ( ',' )
             {
-            // InternalSignalDSL.g:14288:1: ( ',' )
-            // InternalSignalDSL.g:14289:2: ','
+            // InternalSignalDSL.g:14551:1: ( ',' )
+            // InternalSignalDSL.g:14552:2: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getCommaKeyword_4_1_1_1_0()); 
             }
-            match(input,78,FOLLOW_2); if (state.failed) return ;
+            match(input,76,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXConstructorCallAccess().getCommaKeyword_4_1_1_1_0()); 
             }
@@ -47582,14 +48367,14 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_4_1_1_1__1"
-    // InternalSignalDSL.g:14298:1: rule__XConstructorCall__Group_4_1_1_1__1 : rule__XConstructorCall__Group_4_1_1_1__1__Impl ;
+    // InternalSignalDSL.g:14561: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:14302:1: ( rule__XConstructorCall__Group_4_1_1_1__1__Impl )
-            // InternalSignalDSL.g:14303:2: rule__XConstructorCall__Group_4_1_1_1__1__Impl
+            // InternalSignalDSL.g:14565:1: ( rule__XConstructorCall__Group_4_1_1_1__1__Impl )
+            // InternalSignalDSL.g:14566:2: rule__XConstructorCall__Group_4_1_1_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XConstructorCall__Group_4_1_1_1__1__Impl();
@@ -47615,23 +48400,23 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_4_1_1_1__1__Impl"
-    // InternalSignalDSL.g:14309:1: rule__XConstructorCall__Group_4_1_1_1__1__Impl : ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1 ) ) ;
+    // InternalSignalDSL.g:14572: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:14313:1: ( ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1 ) ) )
-            // InternalSignalDSL.g:14314:1: ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1 ) )
+            // InternalSignalDSL.g:14576:1: ( ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1 ) ) )
+            // InternalSignalDSL.g:14577:1: ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1 ) )
             {
-            // InternalSignalDSL.g:14314:1: ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1 ) )
-            // InternalSignalDSL.g:14315:2: ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1 )
+            // InternalSignalDSL.g:14577:1: ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1 ) )
+            // InternalSignalDSL.g:14578:2: ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getArgumentsAssignment_4_1_1_1_1()); 
             }
-            // InternalSignalDSL.g:14316:2: ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1 )
-            // InternalSignalDSL.g:14316:3: rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1
+            // InternalSignalDSL.g:14579:2: ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1 )
+            // InternalSignalDSL.g:14579:3: rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1();
@@ -47666,16 +48451,16 @@
 
 
     // $ANTLR start "rule__XBooleanLiteral__Group__0"
-    // InternalSignalDSL.g:14325:1: rule__XBooleanLiteral__Group__0 : rule__XBooleanLiteral__Group__0__Impl rule__XBooleanLiteral__Group__1 ;
+    // InternalSignalDSL.g:14588: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:14329:1: ( rule__XBooleanLiteral__Group__0__Impl rule__XBooleanLiteral__Group__1 )
-            // InternalSignalDSL.g:14330:2: rule__XBooleanLiteral__Group__0__Impl rule__XBooleanLiteral__Group__1
+            // InternalSignalDSL.g:14592:1: ( rule__XBooleanLiteral__Group__0__Impl rule__XBooleanLiteral__Group__1 )
+            // InternalSignalDSL.g:14593:2: rule__XBooleanLiteral__Group__0__Impl rule__XBooleanLiteral__Group__1
             {
-            pushFollow(FOLLOW_93);
+            pushFollow(FOLLOW_98);
             rule__XBooleanLiteral__Group__0__Impl();
 
             state._fsp--;
@@ -47704,23 +48489,23 @@
 
 
     // $ANTLR start "rule__XBooleanLiteral__Group__0__Impl"
-    // InternalSignalDSL.g:14337:1: rule__XBooleanLiteral__Group__0__Impl : ( () ) ;
+    // InternalSignalDSL.g:14600:1: rule__XBooleanLiteral__Group__0__Impl : ( () ) ;
     public final void rule__XBooleanLiteral__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:14341:1: ( ( () ) )
-            // InternalSignalDSL.g:14342:1: ( () )
+            // InternalSignalDSL.g:14604:1: ( ( () ) )
+            // InternalSignalDSL.g:14605:1: ( () )
             {
-            // InternalSignalDSL.g:14342:1: ( () )
-            // InternalSignalDSL.g:14343:2: ()
+            // InternalSignalDSL.g:14605:1: ( () )
+            // InternalSignalDSL.g:14606:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBooleanLiteralAccess().getXBooleanLiteralAction_0()); 
             }
-            // InternalSignalDSL.g:14344:2: ()
-            // InternalSignalDSL.g:14344:3: 
+            // InternalSignalDSL.g:14607:2: ()
+            // InternalSignalDSL.g:14607:3: 
             {
             }
 
@@ -47745,14 +48530,14 @@
 
 
     // $ANTLR start "rule__XBooleanLiteral__Group__1"
-    // InternalSignalDSL.g:14352:1: rule__XBooleanLiteral__Group__1 : rule__XBooleanLiteral__Group__1__Impl ;
+    // InternalSignalDSL.g:14615: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:14356:1: ( rule__XBooleanLiteral__Group__1__Impl )
-            // InternalSignalDSL.g:14357:2: rule__XBooleanLiteral__Group__1__Impl
+            // InternalSignalDSL.g:14619:1: ( rule__XBooleanLiteral__Group__1__Impl )
+            // InternalSignalDSL.g:14620:2: rule__XBooleanLiteral__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XBooleanLiteral__Group__1__Impl();
@@ -47778,23 +48563,23 @@
 
 
     // $ANTLR start "rule__XBooleanLiteral__Group__1__Impl"
-    // InternalSignalDSL.g:14363:1: rule__XBooleanLiteral__Group__1__Impl : ( ( rule__XBooleanLiteral__Alternatives_1 ) ) ;
+    // InternalSignalDSL.g:14626: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:14367:1: ( ( ( rule__XBooleanLiteral__Alternatives_1 ) ) )
-            // InternalSignalDSL.g:14368:1: ( ( rule__XBooleanLiteral__Alternatives_1 ) )
+            // InternalSignalDSL.g:14630:1: ( ( ( rule__XBooleanLiteral__Alternatives_1 ) ) )
+            // InternalSignalDSL.g:14631:1: ( ( rule__XBooleanLiteral__Alternatives_1 ) )
             {
-            // InternalSignalDSL.g:14368:1: ( ( rule__XBooleanLiteral__Alternatives_1 ) )
-            // InternalSignalDSL.g:14369:2: ( rule__XBooleanLiteral__Alternatives_1 )
+            // InternalSignalDSL.g:14631:1: ( ( rule__XBooleanLiteral__Alternatives_1 ) )
+            // InternalSignalDSL.g:14632:2: ( rule__XBooleanLiteral__Alternatives_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBooleanLiteralAccess().getAlternatives_1()); 
             }
-            // InternalSignalDSL.g:14370:2: ( rule__XBooleanLiteral__Alternatives_1 )
-            // InternalSignalDSL.g:14370:3: rule__XBooleanLiteral__Alternatives_1
+            // InternalSignalDSL.g:14633:2: ( rule__XBooleanLiteral__Alternatives_1 )
+            // InternalSignalDSL.g:14633:3: rule__XBooleanLiteral__Alternatives_1
             {
             pushFollow(FOLLOW_2);
             rule__XBooleanLiteral__Alternatives_1();
@@ -47829,16 +48614,16 @@
 
 
     // $ANTLR start "rule__XNullLiteral__Group__0"
-    // InternalSignalDSL.g:14379:1: rule__XNullLiteral__Group__0 : rule__XNullLiteral__Group__0__Impl rule__XNullLiteral__Group__1 ;
+    // InternalSignalDSL.g:14642: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:14383:1: ( rule__XNullLiteral__Group__0__Impl rule__XNullLiteral__Group__1 )
-            // InternalSignalDSL.g:14384:2: rule__XNullLiteral__Group__0__Impl rule__XNullLiteral__Group__1
+            // InternalSignalDSL.g:14646:1: ( rule__XNullLiteral__Group__0__Impl rule__XNullLiteral__Group__1 )
+            // InternalSignalDSL.g:14647:2: rule__XNullLiteral__Group__0__Impl rule__XNullLiteral__Group__1
             {
-            pushFollow(FOLLOW_94);
+            pushFollow(FOLLOW_99);
             rule__XNullLiteral__Group__0__Impl();
 
             state._fsp--;
@@ -47867,23 +48652,23 @@
 
 
     // $ANTLR start "rule__XNullLiteral__Group__0__Impl"
-    // InternalSignalDSL.g:14391:1: rule__XNullLiteral__Group__0__Impl : ( () ) ;
+    // InternalSignalDSL.g:14654:1: rule__XNullLiteral__Group__0__Impl : ( () ) ;
     public final void rule__XNullLiteral__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:14395:1: ( ( () ) )
-            // InternalSignalDSL.g:14396:1: ( () )
+            // InternalSignalDSL.g:14658:1: ( ( () ) )
+            // InternalSignalDSL.g:14659:1: ( () )
             {
-            // InternalSignalDSL.g:14396:1: ( () )
-            // InternalSignalDSL.g:14397:2: ()
+            // InternalSignalDSL.g:14659:1: ( () )
+            // InternalSignalDSL.g:14660:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXNullLiteralAccess().getXNullLiteralAction_0()); 
             }
-            // InternalSignalDSL.g:14398:2: ()
-            // InternalSignalDSL.g:14398:3: 
+            // InternalSignalDSL.g:14661:2: ()
+            // InternalSignalDSL.g:14661:3: 
             {
             }
 
@@ -47908,14 +48693,14 @@
 
 
     // $ANTLR start "rule__XNullLiteral__Group__1"
-    // InternalSignalDSL.g:14406:1: rule__XNullLiteral__Group__1 : rule__XNullLiteral__Group__1__Impl ;
+    // InternalSignalDSL.g:14669: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:14410:1: ( rule__XNullLiteral__Group__1__Impl )
-            // InternalSignalDSL.g:14411:2: rule__XNullLiteral__Group__1__Impl
+            // InternalSignalDSL.g:14673:1: ( rule__XNullLiteral__Group__1__Impl )
+            // InternalSignalDSL.g:14674:2: rule__XNullLiteral__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XNullLiteral__Group__1__Impl();
@@ -47941,22 +48726,22 @@
 
 
     // $ANTLR start "rule__XNullLiteral__Group__1__Impl"
-    // InternalSignalDSL.g:14417:1: rule__XNullLiteral__Group__1__Impl : ( 'null' ) ;
+    // InternalSignalDSL.g:14680:1: rule__XNullLiteral__Group__1__Impl : ( 'null' ) ;
     public final void rule__XNullLiteral__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:14421:1: ( ( 'null' ) )
-            // InternalSignalDSL.g:14422:1: ( 'null' )
+            // InternalSignalDSL.g:14684:1: ( ( 'null' ) )
+            // InternalSignalDSL.g:14685:1: ( 'null' )
             {
-            // InternalSignalDSL.g:14422:1: ( 'null' )
-            // InternalSignalDSL.g:14423:2: 'null'
+            // InternalSignalDSL.g:14685:1: ( 'null' )
+            // InternalSignalDSL.g:14686:2: 'null'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXNullLiteralAccess().getNullKeyword_1()); 
             }
-            match(input,93,FOLLOW_2); if (state.failed) return ;
+            match(input,91,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXNullLiteralAccess().getNullKeyword_1()); 
             }
@@ -47982,16 +48767,16 @@
 
 
     // $ANTLR start "rule__XNumberLiteral__Group__0"
-    // InternalSignalDSL.g:14433:1: rule__XNumberLiteral__Group__0 : rule__XNumberLiteral__Group__0__Impl rule__XNumberLiteral__Group__1 ;
+    // InternalSignalDSL.g:14696: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:14437:1: ( rule__XNumberLiteral__Group__0__Impl rule__XNumberLiteral__Group__1 )
-            // InternalSignalDSL.g:14438:2: rule__XNumberLiteral__Group__0__Impl rule__XNumberLiteral__Group__1
+            // InternalSignalDSL.g:14700:1: ( rule__XNumberLiteral__Group__0__Impl rule__XNumberLiteral__Group__1 )
+            // InternalSignalDSL.g:14701:2: rule__XNumberLiteral__Group__0__Impl rule__XNumberLiteral__Group__1
             {
-            pushFollow(FOLLOW_95);
+            pushFollow(FOLLOW_100);
             rule__XNumberLiteral__Group__0__Impl();
 
             state._fsp--;
@@ -48020,23 +48805,23 @@
 
 
     // $ANTLR start "rule__XNumberLiteral__Group__0__Impl"
-    // InternalSignalDSL.g:14445:1: rule__XNumberLiteral__Group__0__Impl : ( () ) ;
+    // InternalSignalDSL.g:14708:1: rule__XNumberLiteral__Group__0__Impl : ( () ) ;
     public final void rule__XNumberLiteral__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:14449:1: ( ( () ) )
-            // InternalSignalDSL.g:14450:1: ( () )
+            // InternalSignalDSL.g:14712:1: ( ( () ) )
+            // InternalSignalDSL.g:14713:1: ( () )
             {
-            // InternalSignalDSL.g:14450:1: ( () )
-            // InternalSignalDSL.g:14451:2: ()
+            // InternalSignalDSL.g:14713:1: ( () )
+            // InternalSignalDSL.g:14714:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXNumberLiteralAccess().getXNumberLiteralAction_0()); 
             }
-            // InternalSignalDSL.g:14452:2: ()
-            // InternalSignalDSL.g:14452:3: 
+            // InternalSignalDSL.g:14715:2: ()
+            // InternalSignalDSL.g:14715:3: 
             {
             }
 
@@ -48061,14 +48846,14 @@
 
 
     // $ANTLR start "rule__XNumberLiteral__Group__1"
-    // InternalSignalDSL.g:14460:1: rule__XNumberLiteral__Group__1 : rule__XNumberLiteral__Group__1__Impl ;
+    // InternalSignalDSL.g:14723: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:14464:1: ( rule__XNumberLiteral__Group__1__Impl )
-            // InternalSignalDSL.g:14465:2: rule__XNumberLiteral__Group__1__Impl
+            // InternalSignalDSL.g:14727:1: ( rule__XNumberLiteral__Group__1__Impl )
+            // InternalSignalDSL.g:14728:2: rule__XNumberLiteral__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XNumberLiteral__Group__1__Impl();
@@ -48094,23 +48879,23 @@
 
 
     // $ANTLR start "rule__XNumberLiteral__Group__1__Impl"
-    // InternalSignalDSL.g:14471:1: rule__XNumberLiteral__Group__1__Impl : ( ( rule__XNumberLiteral__ValueAssignment_1 ) ) ;
+    // InternalSignalDSL.g:14734: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:14475:1: ( ( ( rule__XNumberLiteral__ValueAssignment_1 ) ) )
-            // InternalSignalDSL.g:14476:1: ( ( rule__XNumberLiteral__ValueAssignment_1 ) )
+            // InternalSignalDSL.g:14738:1: ( ( ( rule__XNumberLiteral__ValueAssignment_1 ) ) )
+            // InternalSignalDSL.g:14739:1: ( ( rule__XNumberLiteral__ValueAssignment_1 ) )
             {
-            // InternalSignalDSL.g:14476:1: ( ( rule__XNumberLiteral__ValueAssignment_1 ) )
-            // InternalSignalDSL.g:14477:2: ( rule__XNumberLiteral__ValueAssignment_1 )
+            // InternalSignalDSL.g:14739:1: ( ( rule__XNumberLiteral__ValueAssignment_1 ) )
+            // InternalSignalDSL.g:14740:2: ( rule__XNumberLiteral__ValueAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXNumberLiteralAccess().getValueAssignment_1()); 
             }
-            // InternalSignalDSL.g:14478:2: ( rule__XNumberLiteral__ValueAssignment_1 )
-            // InternalSignalDSL.g:14478:3: rule__XNumberLiteral__ValueAssignment_1
+            // InternalSignalDSL.g:14741:2: ( rule__XNumberLiteral__ValueAssignment_1 )
+            // InternalSignalDSL.g:14741:3: rule__XNumberLiteral__ValueAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__XNumberLiteral__ValueAssignment_1();
@@ -48145,16 +48930,16 @@
 
 
     // $ANTLR start "rule__XStringLiteral__Group__0"
-    // InternalSignalDSL.g:14487:1: rule__XStringLiteral__Group__0 : rule__XStringLiteral__Group__0__Impl rule__XStringLiteral__Group__1 ;
+    // InternalSignalDSL.g:14750: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:14491:1: ( rule__XStringLiteral__Group__0__Impl rule__XStringLiteral__Group__1 )
-            // InternalSignalDSL.g:14492:2: rule__XStringLiteral__Group__0__Impl rule__XStringLiteral__Group__1
+            // InternalSignalDSL.g:14754:1: ( rule__XStringLiteral__Group__0__Impl rule__XStringLiteral__Group__1 )
+            // InternalSignalDSL.g:14755:2: rule__XStringLiteral__Group__0__Impl rule__XStringLiteral__Group__1
             {
-            pushFollow(FOLLOW_14);
+            pushFollow(FOLLOW_13);
             rule__XStringLiteral__Group__0__Impl();
 
             state._fsp--;
@@ -48183,23 +48968,23 @@
 
 
     // $ANTLR start "rule__XStringLiteral__Group__0__Impl"
-    // InternalSignalDSL.g:14499:1: rule__XStringLiteral__Group__0__Impl : ( () ) ;
+    // InternalSignalDSL.g:14762:1: rule__XStringLiteral__Group__0__Impl : ( () ) ;
     public final void rule__XStringLiteral__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:14503:1: ( ( () ) )
-            // InternalSignalDSL.g:14504:1: ( () )
+            // InternalSignalDSL.g:14766:1: ( ( () ) )
+            // InternalSignalDSL.g:14767:1: ( () )
             {
-            // InternalSignalDSL.g:14504:1: ( () )
-            // InternalSignalDSL.g:14505:2: ()
+            // InternalSignalDSL.g:14767:1: ( () )
+            // InternalSignalDSL.g:14768:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXStringLiteralAccess().getXStringLiteralAction_0()); 
             }
-            // InternalSignalDSL.g:14506:2: ()
-            // InternalSignalDSL.g:14506:3: 
+            // InternalSignalDSL.g:14769:2: ()
+            // InternalSignalDSL.g:14769:3: 
             {
             }
 
@@ -48224,14 +49009,14 @@
 
 
     // $ANTLR start "rule__XStringLiteral__Group__1"
-    // InternalSignalDSL.g:14514:1: rule__XStringLiteral__Group__1 : rule__XStringLiteral__Group__1__Impl ;
+    // InternalSignalDSL.g:14777: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:14518:1: ( rule__XStringLiteral__Group__1__Impl )
-            // InternalSignalDSL.g:14519:2: rule__XStringLiteral__Group__1__Impl
+            // InternalSignalDSL.g:14781:1: ( rule__XStringLiteral__Group__1__Impl )
+            // InternalSignalDSL.g:14782:2: rule__XStringLiteral__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XStringLiteral__Group__1__Impl();
@@ -48257,23 +49042,23 @@
 
 
     // $ANTLR start "rule__XStringLiteral__Group__1__Impl"
-    // InternalSignalDSL.g:14525:1: rule__XStringLiteral__Group__1__Impl : ( ( rule__XStringLiteral__ValueAssignment_1 ) ) ;
+    // InternalSignalDSL.g:14788: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:14529:1: ( ( ( rule__XStringLiteral__ValueAssignment_1 ) ) )
-            // InternalSignalDSL.g:14530:1: ( ( rule__XStringLiteral__ValueAssignment_1 ) )
+            // InternalSignalDSL.g:14792:1: ( ( ( rule__XStringLiteral__ValueAssignment_1 ) ) )
+            // InternalSignalDSL.g:14793:1: ( ( rule__XStringLiteral__ValueAssignment_1 ) )
             {
-            // InternalSignalDSL.g:14530:1: ( ( rule__XStringLiteral__ValueAssignment_1 ) )
-            // InternalSignalDSL.g:14531:2: ( rule__XStringLiteral__ValueAssignment_1 )
+            // InternalSignalDSL.g:14793:1: ( ( rule__XStringLiteral__ValueAssignment_1 ) )
+            // InternalSignalDSL.g:14794:2: ( rule__XStringLiteral__ValueAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXStringLiteralAccess().getValueAssignment_1()); 
             }
-            // InternalSignalDSL.g:14532:2: ( rule__XStringLiteral__ValueAssignment_1 )
-            // InternalSignalDSL.g:14532:3: rule__XStringLiteral__ValueAssignment_1
+            // InternalSignalDSL.g:14795:2: ( rule__XStringLiteral__ValueAssignment_1 )
+            // InternalSignalDSL.g:14795:3: rule__XStringLiteral__ValueAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__XStringLiteral__ValueAssignment_1();
@@ -48308,16 +49093,16 @@
 
 
     // $ANTLR start "rule__XTypeLiteral__Group__0"
-    // InternalSignalDSL.g:14541:1: rule__XTypeLiteral__Group__0 : rule__XTypeLiteral__Group__0__Impl rule__XTypeLiteral__Group__1 ;
+    // InternalSignalDSL.g:14804: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:14545:1: ( rule__XTypeLiteral__Group__0__Impl rule__XTypeLiteral__Group__1 )
-            // InternalSignalDSL.g:14546:2: rule__XTypeLiteral__Group__0__Impl rule__XTypeLiteral__Group__1
+            // InternalSignalDSL.g:14808:1: ( rule__XTypeLiteral__Group__0__Impl rule__XTypeLiteral__Group__1 )
+            // InternalSignalDSL.g:14809:2: rule__XTypeLiteral__Group__0__Impl rule__XTypeLiteral__Group__1
             {
-            pushFollow(FOLLOW_96);
+            pushFollow(FOLLOW_101);
             rule__XTypeLiteral__Group__0__Impl();
 
             state._fsp--;
@@ -48346,23 +49131,23 @@
 
 
     // $ANTLR start "rule__XTypeLiteral__Group__0__Impl"
-    // InternalSignalDSL.g:14553:1: rule__XTypeLiteral__Group__0__Impl : ( () ) ;
+    // InternalSignalDSL.g:14816:1: rule__XTypeLiteral__Group__0__Impl : ( () ) ;
     public final void rule__XTypeLiteral__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:14557:1: ( ( () ) )
-            // InternalSignalDSL.g:14558:1: ( () )
+            // InternalSignalDSL.g:14820:1: ( ( () ) )
+            // InternalSignalDSL.g:14821:1: ( () )
             {
-            // InternalSignalDSL.g:14558:1: ( () )
-            // InternalSignalDSL.g:14559:2: ()
+            // InternalSignalDSL.g:14821:1: ( () )
+            // InternalSignalDSL.g:14822:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTypeLiteralAccess().getXTypeLiteralAction_0()); 
             }
-            // InternalSignalDSL.g:14560:2: ()
-            // InternalSignalDSL.g:14560:3: 
+            // InternalSignalDSL.g:14823:2: ()
+            // InternalSignalDSL.g:14823:3: 
             {
             }
 
@@ -48387,16 +49172,16 @@
 
 
     // $ANTLR start "rule__XTypeLiteral__Group__1"
-    // InternalSignalDSL.g:14568:1: rule__XTypeLiteral__Group__1 : rule__XTypeLiteral__Group__1__Impl rule__XTypeLiteral__Group__2 ;
+    // InternalSignalDSL.g:14831: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:14572:1: ( rule__XTypeLiteral__Group__1__Impl rule__XTypeLiteral__Group__2 )
-            // InternalSignalDSL.g:14573:2: rule__XTypeLiteral__Group__1__Impl rule__XTypeLiteral__Group__2
+            // InternalSignalDSL.g:14835:1: ( rule__XTypeLiteral__Group__1__Impl rule__XTypeLiteral__Group__2 )
+            // InternalSignalDSL.g:14836:2: rule__XTypeLiteral__Group__1__Impl rule__XTypeLiteral__Group__2
             {
-            pushFollow(FOLLOW_26);
+            pushFollow(FOLLOW_31);
             rule__XTypeLiteral__Group__1__Impl();
 
             state._fsp--;
@@ -48425,22 +49210,22 @@
 
 
     // $ANTLR start "rule__XTypeLiteral__Group__1__Impl"
-    // InternalSignalDSL.g:14580:1: rule__XTypeLiteral__Group__1__Impl : ( 'typeof' ) ;
+    // InternalSignalDSL.g:14843:1: rule__XTypeLiteral__Group__1__Impl : ( 'typeof' ) ;
     public final void rule__XTypeLiteral__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:14584:1: ( ( 'typeof' ) )
-            // InternalSignalDSL.g:14585:1: ( 'typeof' )
+            // InternalSignalDSL.g:14847:1: ( ( 'typeof' ) )
+            // InternalSignalDSL.g:14848:1: ( 'typeof' )
             {
-            // InternalSignalDSL.g:14585:1: ( 'typeof' )
-            // InternalSignalDSL.g:14586:2: 'typeof'
+            // InternalSignalDSL.g:14848:1: ( 'typeof' )
+            // InternalSignalDSL.g:14849:2: 'typeof'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTypeLiteralAccess().getTypeofKeyword_1()); 
             }
-            match(input,94,FOLLOW_2); if (state.failed) return ;
+            match(input,92,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXTypeLiteralAccess().getTypeofKeyword_1()); 
             }
@@ -48466,14 +49251,14 @@
 
 
     // $ANTLR start "rule__XTypeLiteral__Group__2"
-    // InternalSignalDSL.g:14595:1: rule__XTypeLiteral__Group__2 : rule__XTypeLiteral__Group__2__Impl rule__XTypeLiteral__Group__3 ;
+    // InternalSignalDSL.g:14858: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:14599:1: ( rule__XTypeLiteral__Group__2__Impl rule__XTypeLiteral__Group__3 )
-            // InternalSignalDSL.g:14600:2: rule__XTypeLiteral__Group__2__Impl rule__XTypeLiteral__Group__3
+            // InternalSignalDSL.g:14862:1: ( rule__XTypeLiteral__Group__2__Impl rule__XTypeLiteral__Group__3 )
+            // InternalSignalDSL.g:14863:2: rule__XTypeLiteral__Group__2__Impl rule__XTypeLiteral__Group__3
             {
             pushFollow(FOLLOW_7);
             rule__XTypeLiteral__Group__2__Impl();
@@ -48504,22 +49289,22 @@
 
 
     // $ANTLR start "rule__XTypeLiteral__Group__2__Impl"
-    // InternalSignalDSL.g:14607:1: rule__XTypeLiteral__Group__2__Impl : ( '(' ) ;
+    // InternalSignalDSL.g:14870:1: rule__XTypeLiteral__Group__2__Impl : ( '(' ) ;
     public final void rule__XTypeLiteral__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:14611:1: ( ( '(' ) )
-            // InternalSignalDSL.g:14612:1: ( '(' )
+            // InternalSignalDSL.g:14874:1: ( ( '(' ) )
+            // InternalSignalDSL.g:14875:1: ( '(' )
             {
-            // InternalSignalDSL.g:14612:1: ( '(' )
-            // InternalSignalDSL.g:14613:2: '('
+            // InternalSignalDSL.g:14875:1: ( '(' )
+            // InternalSignalDSL.g:14876:2: '('
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTypeLiteralAccess().getLeftParenthesisKeyword_2()); 
             }
-            match(input,76,FOLLOW_2); if (state.failed) return ;
+            match(input,74,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXTypeLiteralAccess().getLeftParenthesisKeyword_2()); 
             }
@@ -48545,16 +49330,16 @@
 
 
     // $ANTLR start "rule__XTypeLiteral__Group__3"
-    // InternalSignalDSL.g:14622:1: rule__XTypeLiteral__Group__3 : rule__XTypeLiteral__Group__3__Impl rule__XTypeLiteral__Group__4 ;
+    // InternalSignalDSL.g:14885: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:14626:1: ( rule__XTypeLiteral__Group__3__Impl rule__XTypeLiteral__Group__4 )
-            // InternalSignalDSL.g:14627:2: rule__XTypeLiteral__Group__3__Impl rule__XTypeLiteral__Group__4
+            // InternalSignalDSL.g:14889:1: ( rule__XTypeLiteral__Group__3__Impl rule__XTypeLiteral__Group__4 )
+            // InternalSignalDSL.g:14890:2: rule__XTypeLiteral__Group__3__Impl rule__XTypeLiteral__Group__4
             {
-            pushFollow(FOLLOW_97);
+            pushFollow(FOLLOW_102);
             rule__XTypeLiteral__Group__3__Impl();
 
             state._fsp--;
@@ -48583,23 +49368,23 @@
 
 
     // $ANTLR start "rule__XTypeLiteral__Group__3__Impl"
-    // InternalSignalDSL.g:14634:1: rule__XTypeLiteral__Group__3__Impl : ( ( rule__XTypeLiteral__TypeAssignment_3 ) ) ;
+    // InternalSignalDSL.g:14897: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:14638:1: ( ( ( rule__XTypeLiteral__TypeAssignment_3 ) ) )
-            // InternalSignalDSL.g:14639:1: ( ( rule__XTypeLiteral__TypeAssignment_3 ) )
+            // InternalSignalDSL.g:14901:1: ( ( ( rule__XTypeLiteral__TypeAssignment_3 ) ) )
+            // InternalSignalDSL.g:14902:1: ( ( rule__XTypeLiteral__TypeAssignment_3 ) )
             {
-            // InternalSignalDSL.g:14639:1: ( ( rule__XTypeLiteral__TypeAssignment_3 ) )
-            // InternalSignalDSL.g:14640:2: ( rule__XTypeLiteral__TypeAssignment_3 )
+            // InternalSignalDSL.g:14902:1: ( ( rule__XTypeLiteral__TypeAssignment_3 ) )
+            // InternalSignalDSL.g:14903:2: ( rule__XTypeLiteral__TypeAssignment_3 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTypeLiteralAccess().getTypeAssignment_3()); 
             }
-            // InternalSignalDSL.g:14641:2: ( rule__XTypeLiteral__TypeAssignment_3 )
-            // InternalSignalDSL.g:14641:3: rule__XTypeLiteral__TypeAssignment_3
+            // InternalSignalDSL.g:14904:2: ( rule__XTypeLiteral__TypeAssignment_3 )
+            // InternalSignalDSL.g:14904:3: rule__XTypeLiteral__TypeAssignment_3
             {
             pushFollow(FOLLOW_2);
             rule__XTypeLiteral__TypeAssignment_3();
@@ -48634,16 +49419,16 @@
 
 
     // $ANTLR start "rule__XTypeLiteral__Group__4"
-    // InternalSignalDSL.g:14649:1: rule__XTypeLiteral__Group__4 : rule__XTypeLiteral__Group__4__Impl rule__XTypeLiteral__Group__5 ;
+    // InternalSignalDSL.g:14912: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:14653:1: ( rule__XTypeLiteral__Group__4__Impl rule__XTypeLiteral__Group__5 )
-            // InternalSignalDSL.g:14654:2: rule__XTypeLiteral__Group__4__Impl rule__XTypeLiteral__Group__5
+            // InternalSignalDSL.g:14916:1: ( rule__XTypeLiteral__Group__4__Impl rule__XTypeLiteral__Group__5 )
+            // InternalSignalDSL.g:14917:2: rule__XTypeLiteral__Group__4__Impl rule__XTypeLiteral__Group__5
             {
-            pushFollow(FOLLOW_97);
+            pushFollow(FOLLOW_102);
             rule__XTypeLiteral__Group__4__Impl();
 
             state._fsp--;
@@ -48672,37 +49457,37 @@
 
 
     // $ANTLR start "rule__XTypeLiteral__Group__4__Impl"
-    // InternalSignalDSL.g:14661:1: rule__XTypeLiteral__Group__4__Impl : ( ( rule__XTypeLiteral__ArrayDimensionsAssignment_4 )* ) ;
+    // InternalSignalDSL.g:14924: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:14665:1: ( ( ( rule__XTypeLiteral__ArrayDimensionsAssignment_4 )* ) )
-            // InternalSignalDSL.g:14666:1: ( ( rule__XTypeLiteral__ArrayDimensionsAssignment_4 )* )
+            // InternalSignalDSL.g:14928:1: ( ( ( rule__XTypeLiteral__ArrayDimensionsAssignment_4 )* ) )
+            // InternalSignalDSL.g:14929:1: ( ( rule__XTypeLiteral__ArrayDimensionsAssignment_4 )* )
             {
-            // InternalSignalDSL.g:14666:1: ( ( rule__XTypeLiteral__ArrayDimensionsAssignment_4 )* )
-            // InternalSignalDSL.g:14667:2: ( rule__XTypeLiteral__ArrayDimensionsAssignment_4 )*
+            // InternalSignalDSL.g:14929:1: ( ( rule__XTypeLiteral__ArrayDimensionsAssignment_4 )* )
+            // InternalSignalDSL.g:14930:2: ( rule__XTypeLiteral__ArrayDimensionsAssignment_4 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTypeLiteralAccess().getArrayDimensionsAssignment_4()); 
             }
-            // InternalSignalDSL.g:14668:2: ( rule__XTypeLiteral__ArrayDimensionsAssignment_4 )*
-            loop121:
+            // InternalSignalDSL.g:14931:2: ( rule__XTypeLiteral__ArrayDimensionsAssignment_4 )*
+            loop124:
             do {
-                int alt121=2;
-                int LA121_0 = input.LA(1);
+                int alt124=2;
+                int LA124_0 = input.LA(1);
 
-                if ( (LA121_0==81) ) {
-                    alt121=1;
+                if ( (LA124_0==79) ) {
+                    alt124=1;
                 }
 
 
-                switch (alt121) {
+                switch (alt124) {
             	case 1 :
-            	    // InternalSignalDSL.g:14668:3: rule__XTypeLiteral__ArrayDimensionsAssignment_4
+            	    // InternalSignalDSL.g:14931:3: rule__XTypeLiteral__ArrayDimensionsAssignment_4
             	    {
-            	    pushFollow(FOLLOW_98);
+            	    pushFollow(FOLLOW_103);
             	    rule__XTypeLiteral__ArrayDimensionsAssignment_4();
 
             	    state._fsp--;
@@ -48712,7 +49497,7 @@
             	    break;
 
             	default :
-            	    break loop121;
+            	    break loop124;
                 }
             } while (true);
 
@@ -48741,14 +49526,14 @@
 
 
     // $ANTLR start "rule__XTypeLiteral__Group__5"
-    // InternalSignalDSL.g:14676:1: rule__XTypeLiteral__Group__5 : rule__XTypeLiteral__Group__5__Impl ;
+    // InternalSignalDSL.g:14939: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:14680:1: ( rule__XTypeLiteral__Group__5__Impl )
-            // InternalSignalDSL.g:14681:2: rule__XTypeLiteral__Group__5__Impl
+            // InternalSignalDSL.g:14943:1: ( rule__XTypeLiteral__Group__5__Impl )
+            // InternalSignalDSL.g:14944:2: rule__XTypeLiteral__Group__5__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XTypeLiteral__Group__5__Impl();
@@ -48774,22 +49559,22 @@
 
 
     // $ANTLR start "rule__XTypeLiteral__Group__5__Impl"
-    // InternalSignalDSL.g:14687:1: rule__XTypeLiteral__Group__5__Impl : ( ')' ) ;
+    // InternalSignalDSL.g:14950:1: rule__XTypeLiteral__Group__5__Impl : ( ')' ) ;
     public final void rule__XTypeLiteral__Group__5__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:14691:1: ( ( ')' ) )
-            // InternalSignalDSL.g:14692:1: ( ')' )
+            // InternalSignalDSL.g:14954:1: ( ( ')' ) )
+            // InternalSignalDSL.g:14955:1: ( ')' )
             {
-            // InternalSignalDSL.g:14692:1: ( ')' )
-            // InternalSignalDSL.g:14693:2: ')'
+            // InternalSignalDSL.g:14955:1: ( ')' )
+            // InternalSignalDSL.g:14956:2: ')'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTypeLiteralAccess().getRightParenthesisKeyword_5()); 
             }
-            match(input,77,FOLLOW_2); if (state.failed) return ;
+            match(input,75,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXTypeLiteralAccess().getRightParenthesisKeyword_5()); 
             }
@@ -48815,16 +49600,16 @@
 
 
     // $ANTLR start "rule__XThrowExpression__Group__0"
-    // InternalSignalDSL.g:14703:1: rule__XThrowExpression__Group__0 : rule__XThrowExpression__Group__0__Impl rule__XThrowExpression__Group__1 ;
+    // InternalSignalDSL.g:14966: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:14707:1: ( rule__XThrowExpression__Group__0__Impl rule__XThrowExpression__Group__1 )
-            // InternalSignalDSL.g:14708:2: rule__XThrowExpression__Group__0__Impl rule__XThrowExpression__Group__1
+            // InternalSignalDSL.g:14970:1: ( rule__XThrowExpression__Group__0__Impl rule__XThrowExpression__Group__1 )
+            // InternalSignalDSL.g:14971:2: rule__XThrowExpression__Group__0__Impl rule__XThrowExpression__Group__1
             {
-            pushFollow(FOLLOW_99);
+            pushFollow(FOLLOW_104);
             rule__XThrowExpression__Group__0__Impl();
 
             state._fsp--;
@@ -48853,23 +49638,23 @@
 
 
     // $ANTLR start "rule__XThrowExpression__Group__0__Impl"
-    // InternalSignalDSL.g:14715:1: rule__XThrowExpression__Group__0__Impl : ( () ) ;
+    // InternalSignalDSL.g:14978:1: rule__XThrowExpression__Group__0__Impl : ( () ) ;
     public final void rule__XThrowExpression__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:14719:1: ( ( () ) )
-            // InternalSignalDSL.g:14720:1: ( () )
+            // InternalSignalDSL.g:14982:1: ( ( () ) )
+            // InternalSignalDSL.g:14983:1: ( () )
             {
-            // InternalSignalDSL.g:14720:1: ( () )
-            // InternalSignalDSL.g:14721:2: ()
+            // InternalSignalDSL.g:14983:1: ( () )
+            // InternalSignalDSL.g:14984:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXThrowExpressionAccess().getXThrowExpressionAction_0()); 
             }
-            // InternalSignalDSL.g:14722:2: ()
-            // InternalSignalDSL.g:14722:3: 
+            // InternalSignalDSL.g:14985:2: ()
+            // InternalSignalDSL.g:14985:3: 
             {
             }
 
@@ -48894,16 +49679,16 @@
 
 
     // $ANTLR start "rule__XThrowExpression__Group__1"
-    // InternalSignalDSL.g:14730:1: rule__XThrowExpression__Group__1 : rule__XThrowExpression__Group__1__Impl rule__XThrowExpression__Group__2 ;
+    // InternalSignalDSL.g:14993: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:14734:1: ( rule__XThrowExpression__Group__1__Impl rule__XThrowExpression__Group__2 )
-            // InternalSignalDSL.g:14735:2: rule__XThrowExpression__Group__1__Impl rule__XThrowExpression__Group__2
+            // InternalSignalDSL.g:14997:1: ( rule__XThrowExpression__Group__1__Impl rule__XThrowExpression__Group__2 )
+            // InternalSignalDSL.g:14998:2: rule__XThrowExpression__Group__1__Impl rule__XThrowExpression__Group__2
             {
-            pushFollow(FOLLOW_30);
+            pushFollow(FOLLOW_35);
             rule__XThrowExpression__Group__1__Impl();
 
             state._fsp--;
@@ -48932,22 +49717,22 @@
 
 
     // $ANTLR start "rule__XThrowExpression__Group__1__Impl"
-    // InternalSignalDSL.g:14742:1: rule__XThrowExpression__Group__1__Impl : ( 'throw' ) ;
+    // InternalSignalDSL.g:15005:1: rule__XThrowExpression__Group__1__Impl : ( 'throw' ) ;
     public final void rule__XThrowExpression__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:14746:1: ( ( 'throw' ) )
-            // InternalSignalDSL.g:14747:1: ( 'throw' )
+            // InternalSignalDSL.g:15009:1: ( ( 'throw' ) )
+            // InternalSignalDSL.g:15010:1: ( 'throw' )
             {
-            // InternalSignalDSL.g:14747:1: ( 'throw' )
-            // InternalSignalDSL.g:14748:2: 'throw'
+            // InternalSignalDSL.g:15010:1: ( 'throw' )
+            // InternalSignalDSL.g:15011:2: 'throw'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXThrowExpressionAccess().getThrowKeyword_1()); 
             }
-            match(input,95,FOLLOW_2); if (state.failed) return ;
+            match(input,93,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXThrowExpressionAccess().getThrowKeyword_1()); 
             }
@@ -48973,14 +49758,14 @@
 
 
     // $ANTLR start "rule__XThrowExpression__Group__2"
-    // InternalSignalDSL.g:14757:1: rule__XThrowExpression__Group__2 : rule__XThrowExpression__Group__2__Impl ;
+    // InternalSignalDSL.g:15020: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:14761:1: ( rule__XThrowExpression__Group__2__Impl )
-            // InternalSignalDSL.g:14762:2: rule__XThrowExpression__Group__2__Impl
+            // InternalSignalDSL.g:15024:1: ( rule__XThrowExpression__Group__2__Impl )
+            // InternalSignalDSL.g:15025:2: rule__XThrowExpression__Group__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XThrowExpression__Group__2__Impl();
@@ -49006,23 +49791,23 @@
 
 
     // $ANTLR start "rule__XThrowExpression__Group__2__Impl"
-    // InternalSignalDSL.g:14768:1: rule__XThrowExpression__Group__2__Impl : ( ( rule__XThrowExpression__ExpressionAssignment_2 ) ) ;
+    // InternalSignalDSL.g:15031: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:14772:1: ( ( ( rule__XThrowExpression__ExpressionAssignment_2 ) ) )
-            // InternalSignalDSL.g:14773:1: ( ( rule__XThrowExpression__ExpressionAssignment_2 ) )
+            // InternalSignalDSL.g:15035:1: ( ( ( rule__XThrowExpression__ExpressionAssignment_2 ) ) )
+            // InternalSignalDSL.g:15036:1: ( ( rule__XThrowExpression__ExpressionAssignment_2 ) )
             {
-            // InternalSignalDSL.g:14773:1: ( ( rule__XThrowExpression__ExpressionAssignment_2 ) )
-            // InternalSignalDSL.g:14774:2: ( rule__XThrowExpression__ExpressionAssignment_2 )
+            // InternalSignalDSL.g:15036:1: ( ( rule__XThrowExpression__ExpressionAssignment_2 ) )
+            // InternalSignalDSL.g:15037:2: ( rule__XThrowExpression__ExpressionAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXThrowExpressionAccess().getExpressionAssignment_2()); 
             }
-            // InternalSignalDSL.g:14775:2: ( rule__XThrowExpression__ExpressionAssignment_2 )
-            // InternalSignalDSL.g:14775:3: rule__XThrowExpression__ExpressionAssignment_2
+            // InternalSignalDSL.g:15038:2: ( rule__XThrowExpression__ExpressionAssignment_2 )
+            // InternalSignalDSL.g:15038:3: rule__XThrowExpression__ExpressionAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__XThrowExpression__ExpressionAssignment_2();
@@ -49057,16 +49842,16 @@
 
 
     // $ANTLR start "rule__XReturnExpression__Group__0"
-    // InternalSignalDSL.g:14784:1: rule__XReturnExpression__Group__0 : rule__XReturnExpression__Group__0__Impl rule__XReturnExpression__Group__1 ;
+    // InternalSignalDSL.g:15047: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:14788:1: ( rule__XReturnExpression__Group__0__Impl rule__XReturnExpression__Group__1 )
-            // InternalSignalDSL.g:14789:2: rule__XReturnExpression__Group__0__Impl rule__XReturnExpression__Group__1
+            // InternalSignalDSL.g:15051:1: ( rule__XReturnExpression__Group__0__Impl rule__XReturnExpression__Group__1 )
+            // InternalSignalDSL.g:15052:2: rule__XReturnExpression__Group__0__Impl rule__XReturnExpression__Group__1
             {
-            pushFollow(FOLLOW_100);
+            pushFollow(FOLLOW_105);
             rule__XReturnExpression__Group__0__Impl();
 
             state._fsp--;
@@ -49095,23 +49880,23 @@
 
 
     // $ANTLR start "rule__XReturnExpression__Group__0__Impl"
-    // InternalSignalDSL.g:14796:1: rule__XReturnExpression__Group__0__Impl : ( () ) ;
+    // InternalSignalDSL.g:15059:1: rule__XReturnExpression__Group__0__Impl : ( () ) ;
     public final void rule__XReturnExpression__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:14800:1: ( ( () ) )
-            // InternalSignalDSL.g:14801:1: ( () )
+            // InternalSignalDSL.g:15063:1: ( ( () ) )
+            // InternalSignalDSL.g:15064:1: ( () )
             {
-            // InternalSignalDSL.g:14801:1: ( () )
-            // InternalSignalDSL.g:14802:2: ()
+            // InternalSignalDSL.g:15064:1: ( () )
+            // InternalSignalDSL.g:15065:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXReturnExpressionAccess().getXReturnExpressionAction_0()); 
             }
-            // InternalSignalDSL.g:14803:2: ()
-            // InternalSignalDSL.g:14803:3: 
+            // InternalSignalDSL.g:15066:2: ()
+            // InternalSignalDSL.g:15066:3: 
             {
             }
 
@@ -49136,16 +49921,16 @@
 
 
     // $ANTLR start "rule__XReturnExpression__Group__1"
-    // InternalSignalDSL.g:14811:1: rule__XReturnExpression__Group__1 : rule__XReturnExpression__Group__1__Impl rule__XReturnExpression__Group__2 ;
+    // InternalSignalDSL.g:15074: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:14815:1: ( rule__XReturnExpression__Group__1__Impl rule__XReturnExpression__Group__2 )
-            // InternalSignalDSL.g:14816:2: rule__XReturnExpression__Group__1__Impl rule__XReturnExpression__Group__2
+            // InternalSignalDSL.g:15078:1: ( rule__XReturnExpression__Group__1__Impl rule__XReturnExpression__Group__2 )
+            // InternalSignalDSL.g:15079:2: rule__XReturnExpression__Group__1__Impl rule__XReturnExpression__Group__2
             {
-            pushFollow(FOLLOW_30);
+            pushFollow(FOLLOW_35);
             rule__XReturnExpression__Group__1__Impl();
 
             state._fsp--;
@@ -49174,22 +49959,22 @@
 
 
     // $ANTLR start "rule__XReturnExpression__Group__1__Impl"
-    // InternalSignalDSL.g:14823:1: rule__XReturnExpression__Group__1__Impl : ( 'return' ) ;
+    // InternalSignalDSL.g:15086:1: rule__XReturnExpression__Group__1__Impl : ( 'return' ) ;
     public final void rule__XReturnExpression__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:14827:1: ( ( 'return' ) )
-            // InternalSignalDSL.g:14828:1: ( 'return' )
+            // InternalSignalDSL.g:15090:1: ( ( 'return' ) )
+            // InternalSignalDSL.g:15091:1: ( 'return' )
             {
-            // InternalSignalDSL.g:14828:1: ( 'return' )
-            // InternalSignalDSL.g:14829:2: 'return'
+            // InternalSignalDSL.g:15091:1: ( 'return' )
+            // InternalSignalDSL.g:15092:2: 'return'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXReturnExpressionAccess().getReturnKeyword_1()); 
             }
-            match(input,96,FOLLOW_2); if (state.failed) return ;
+            match(input,94,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXReturnExpressionAccess().getReturnKeyword_1()); 
             }
@@ -49215,14 +50000,14 @@
 
 
     // $ANTLR start "rule__XReturnExpression__Group__2"
-    // InternalSignalDSL.g:14838:1: rule__XReturnExpression__Group__2 : rule__XReturnExpression__Group__2__Impl ;
+    // InternalSignalDSL.g:15101: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:14842:1: ( rule__XReturnExpression__Group__2__Impl )
-            // InternalSignalDSL.g:14843:2: rule__XReturnExpression__Group__2__Impl
+            // InternalSignalDSL.g:15105:1: ( rule__XReturnExpression__Group__2__Impl )
+            // InternalSignalDSL.g:15106:2: rule__XReturnExpression__Group__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XReturnExpression__Group__2__Impl();
@@ -49248,27 +50033,27 @@
 
 
     // $ANTLR start "rule__XReturnExpression__Group__2__Impl"
-    // InternalSignalDSL.g:14849:1: rule__XReturnExpression__Group__2__Impl : ( ( rule__XReturnExpression__ExpressionAssignment_2 )? ) ;
+    // InternalSignalDSL.g:15112: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:14853:1: ( ( ( rule__XReturnExpression__ExpressionAssignment_2 )? ) )
-            // InternalSignalDSL.g:14854:1: ( ( rule__XReturnExpression__ExpressionAssignment_2 )? )
+            // InternalSignalDSL.g:15116:1: ( ( ( rule__XReturnExpression__ExpressionAssignment_2 )? ) )
+            // InternalSignalDSL.g:15117:1: ( ( rule__XReturnExpression__ExpressionAssignment_2 )? )
             {
-            // InternalSignalDSL.g:14854:1: ( ( rule__XReturnExpression__ExpressionAssignment_2 )? )
-            // InternalSignalDSL.g:14855:2: ( rule__XReturnExpression__ExpressionAssignment_2 )?
+            // InternalSignalDSL.g:15117:1: ( ( rule__XReturnExpression__ExpressionAssignment_2 )? )
+            // InternalSignalDSL.g:15118:2: ( rule__XReturnExpression__ExpressionAssignment_2 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXReturnExpressionAccess().getExpressionAssignment_2()); 
             }
-            // InternalSignalDSL.g:14856:2: ( rule__XReturnExpression__ExpressionAssignment_2 )?
-            int alt122=2;
-            alt122 = dfa122.predict(input);
-            switch (alt122) {
+            // InternalSignalDSL.g:15119:2: ( rule__XReturnExpression__ExpressionAssignment_2 )?
+            int alt125=2;
+            alt125 = dfa125.predict(input);
+            switch (alt125) {
                 case 1 :
-                    // InternalSignalDSL.g:14856:3: rule__XReturnExpression__ExpressionAssignment_2
+                    // InternalSignalDSL.g:15119:3: rule__XReturnExpression__ExpressionAssignment_2
                     {
                     pushFollow(FOLLOW_2);
                     rule__XReturnExpression__ExpressionAssignment_2();
@@ -49306,16 +50091,16 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__Group__0"
-    // InternalSignalDSL.g:14865:1: rule__XTryCatchFinallyExpression__Group__0 : rule__XTryCatchFinallyExpression__Group__0__Impl rule__XTryCatchFinallyExpression__Group__1 ;
+    // InternalSignalDSL.g:15128: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:14869:1: ( rule__XTryCatchFinallyExpression__Group__0__Impl rule__XTryCatchFinallyExpression__Group__1 )
-            // InternalSignalDSL.g:14870:2: rule__XTryCatchFinallyExpression__Group__0__Impl rule__XTryCatchFinallyExpression__Group__1
+            // InternalSignalDSL.g:15132:1: ( rule__XTryCatchFinallyExpression__Group__0__Impl rule__XTryCatchFinallyExpression__Group__1 )
+            // InternalSignalDSL.g:15133:2: rule__XTryCatchFinallyExpression__Group__0__Impl rule__XTryCatchFinallyExpression__Group__1
             {
-            pushFollow(FOLLOW_101);
+            pushFollow(FOLLOW_106);
             rule__XTryCatchFinallyExpression__Group__0__Impl();
 
             state._fsp--;
@@ -49344,23 +50129,23 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__Group__0__Impl"
-    // InternalSignalDSL.g:14877:1: rule__XTryCatchFinallyExpression__Group__0__Impl : ( () ) ;
+    // InternalSignalDSL.g:15140:1: rule__XTryCatchFinallyExpression__Group__0__Impl : ( () ) ;
     public final void rule__XTryCatchFinallyExpression__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:14881:1: ( ( () ) )
-            // InternalSignalDSL.g:14882:1: ( () )
+            // InternalSignalDSL.g:15144:1: ( ( () ) )
+            // InternalSignalDSL.g:15145:1: ( () )
             {
-            // InternalSignalDSL.g:14882:1: ( () )
-            // InternalSignalDSL.g:14883:2: ()
+            // InternalSignalDSL.g:15145:1: ( () )
+            // InternalSignalDSL.g:15146:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTryCatchFinallyExpressionAccess().getXTryCatchFinallyExpressionAction_0()); 
             }
-            // InternalSignalDSL.g:14884:2: ()
-            // InternalSignalDSL.g:14884:3: 
+            // InternalSignalDSL.g:15147:2: ()
+            // InternalSignalDSL.g:15147:3: 
             {
             }
 
@@ -49385,16 +50170,16 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__Group__1"
-    // InternalSignalDSL.g:14892:1: rule__XTryCatchFinallyExpression__Group__1 : rule__XTryCatchFinallyExpression__Group__1__Impl rule__XTryCatchFinallyExpression__Group__2 ;
+    // InternalSignalDSL.g:15155: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:14896:1: ( rule__XTryCatchFinallyExpression__Group__1__Impl rule__XTryCatchFinallyExpression__Group__2 )
-            // InternalSignalDSL.g:14897:2: rule__XTryCatchFinallyExpression__Group__1__Impl rule__XTryCatchFinallyExpression__Group__2
+            // InternalSignalDSL.g:15159:1: ( rule__XTryCatchFinallyExpression__Group__1__Impl rule__XTryCatchFinallyExpression__Group__2 )
+            // InternalSignalDSL.g:15160:2: rule__XTryCatchFinallyExpression__Group__1__Impl rule__XTryCatchFinallyExpression__Group__2
             {
-            pushFollow(FOLLOW_30);
+            pushFollow(FOLLOW_35);
             rule__XTryCatchFinallyExpression__Group__1__Impl();
 
             state._fsp--;
@@ -49423,22 +50208,22 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__Group__1__Impl"
-    // InternalSignalDSL.g:14904:1: rule__XTryCatchFinallyExpression__Group__1__Impl : ( 'try' ) ;
+    // InternalSignalDSL.g:15167:1: rule__XTryCatchFinallyExpression__Group__1__Impl : ( 'try' ) ;
     public final void rule__XTryCatchFinallyExpression__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:14908:1: ( ( 'try' ) )
-            // InternalSignalDSL.g:14909:1: ( 'try' )
+            // InternalSignalDSL.g:15171:1: ( ( 'try' ) )
+            // InternalSignalDSL.g:15172:1: ( 'try' )
             {
-            // InternalSignalDSL.g:14909:1: ( 'try' )
-            // InternalSignalDSL.g:14910:2: 'try'
+            // InternalSignalDSL.g:15172:1: ( 'try' )
+            // InternalSignalDSL.g:15173:2: 'try'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTryCatchFinallyExpressionAccess().getTryKeyword_1()); 
             }
-            match(input,97,FOLLOW_2); if (state.failed) return ;
+            match(input,95,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXTryCatchFinallyExpressionAccess().getTryKeyword_1()); 
             }
@@ -49464,16 +50249,16 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__Group__2"
-    // InternalSignalDSL.g:14919:1: rule__XTryCatchFinallyExpression__Group__2 : rule__XTryCatchFinallyExpression__Group__2__Impl rule__XTryCatchFinallyExpression__Group__3 ;
+    // InternalSignalDSL.g:15182: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:14923:1: ( rule__XTryCatchFinallyExpression__Group__2__Impl rule__XTryCatchFinallyExpression__Group__3 )
-            // InternalSignalDSL.g:14924:2: rule__XTryCatchFinallyExpression__Group__2__Impl rule__XTryCatchFinallyExpression__Group__3
+            // InternalSignalDSL.g:15186:1: ( rule__XTryCatchFinallyExpression__Group__2__Impl rule__XTryCatchFinallyExpression__Group__3 )
+            // InternalSignalDSL.g:15187:2: rule__XTryCatchFinallyExpression__Group__2__Impl rule__XTryCatchFinallyExpression__Group__3
             {
-            pushFollow(FOLLOW_102);
+            pushFollow(FOLLOW_107);
             rule__XTryCatchFinallyExpression__Group__2__Impl();
 
             state._fsp--;
@@ -49502,23 +50287,23 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__Group__2__Impl"
-    // InternalSignalDSL.g:14931:1: rule__XTryCatchFinallyExpression__Group__2__Impl : ( ( rule__XTryCatchFinallyExpression__ExpressionAssignment_2 ) ) ;
+    // InternalSignalDSL.g:15194: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:14935:1: ( ( ( rule__XTryCatchFinallyExpression__ExpressionAssignment_2 ) ) )
-            // InternalSignalDSL.g:14936:1: ( ( rule__XTryCatchFinallyExpression__ExpressionAssignment_2 ) )
+            // InternalSignalDSL.g:15198:1: ( ( ( rule__XTryCatchFinallyExpression__ExpressionAssignment_2 ) ) )
+            // InternalSignalDSL.g:15199:1: ( ( rule__XTryCatchFinallyExpression__ExpressionAssignment_2 ) )
             {
-            // InternalSignalDSL.g:14936:1: ( ( rule__XTryCatchFinallyExpression__ExpressionAssignment_2 ) )
-            // InternalSignalDSL.g:14937:2: ( rule__XTryCatchFinallyExpression__ExpressionAssignment_2 )
+            // InternalSignalDSL.g:15199:1: ( ( rule__XTryCatchFinallyExpression__ExpressionAssignment_2 ) )
+            // InternalSignalDSL.g:15200:2: ( rule__XTryCatchFinallyExpression__ExpressionAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTryCatchFinallyExpressionAccess().getExpressionAssignment_2()); 
             }
-            // InternalSignalDSL.g:14938:2: ( rule__XTryCatchFinallyExpression__ExpressionAssignment_2 )
-            // InternalSignalDSL.g:14938:3: rule__XTryCatchFinallyExpression__ExpressionAssignment_2
+            // InternalSignalDSL.g:15201:2: ( rule__XTryCatchFinallyExpression__ExpressionAssignment_2 )
+            // InternalSignalDSL.g:15201:3: rule__XTryCatchFinallyExpression__ExpressionAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__XTryCatchFinallyExpression__ExpressionAssignment_2();
@@ -49553,14 +50338,14 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__Group__3"
-    // InternalSignalDSL.g:14946:1: rule__XTryCatchFinallyExpression__Group__3 : rule__XTryCatchFinallyExpression__Group__3__Impl ;
+    // InternalSignalDSL.g:15209: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:14950:1: ( rule__XTryCatchFinallyExpression__Group__3__Impl )
-            // InternalSignalDSL.g:14951:2: rule__XTryCatchFinallyExpression__Group__3__Impl
+            // InternalSignalDSL.g:15213:1: ( rule__XTryCatchFinallyExpression__Group__3__Impl )
+            // InternalSignalDSL.g:15214:2: rule__XTryCatchFinallyExpression__Group__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XTryCatchFinallyExpression__Group__3__Impl();
@@ -49586,23 +50371,23 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__Group__3__Impl"
-    // InternalSignalDSL.g:14957:1: rule__XTryCatchFinallyExpression__Group__3__Impl : ( ( rule__XTryCatchFinallyExpression__Alternatives_3 ) ) ;
+    // InternalSignalDSL.g:15220: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:14961:1: ( ( ( rule__XTryCatchFinallyExpression__Alternatives_3 ) ) )
-            // InternalSignalDSL.g:14962:1: ( ( rule__XTryCatchFinallyExpression__Alternatives_3 ) )
+            // InternalSignalDSL.g:15224:1: ( ( ( rule__XTryCatchFinallyExpression__Alternatives_3 ) ) )
+            // InternalSignalDSL.g:15225:1: ( ( rule__XTryCatchFinallyExpression__Alternatives_3 ) )
             {
-            // InternalSignalDSL.g:14962:1: ( ( rule__XTryCatchFinallyExpression__Alternatives_3 ) )
-            // InternalSignalDSL.g:14963:2: ( rule__XTryCatchFinallyExpression__Alternatives_3 )
+            // InternalSignalDSL.g:15225:1: ( ( rule__XTryCatchFinallyExpression__Alternatives_3 ) )
+            // InternalSignalDSL.g:15226:2: ( rule__XTryCatchFinallyExpression__Alternatives_3 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTryCatchFinallyExpressionAccess().getAlternatives_3()); 
             }
-            // InternalSignalDSL.g:14964:2: ( rule__XTryCatchFinallyExpression__Alternatives_3 )
-            // InternalSignalDSL.g:14964:3: rule__XTryCatchFinallyExpression__Alternatives_3
+            // InternalSignalDSL.g:15227:2: ( rule__XTryCatchFinallyExpression__Alternatives_3 )
+            // InternalSignalDSL.g:15227:3: rule__XTryCatchFinallyExpression__Alternatives_3
             {
             pushFollow(FOLLOW_2);
             rule__XTryCatchFinallyExpression__Alternatives_3();
@@ -49637,16 +50422,16 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__Group_3_0__0"
-    // InternalSignalDSL.g:14973:1: rule__XTryCatchFinallyExpression__Group_3_0__0 : rule__XTryCatchFinallyExpression__Group_3_0__0__Impl rule__XTryCatchFinallyExpression__Group_3_0__1 ;
+    // InternalSignalDSL.g:15236: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:14977:1: ( rule__XTryCatchFinallyExpression__Group_3_0__0__Impl rule__XTryCatchFinallyExpression__Group_3_0__1 )
-            // InternalSignalDSL.g:14978:2: rule__XTryCatchFinallyExpression__Group_3_0__0__Impl rule__XTryCatchFinallyExpression__Group_3_0__1
+            // InternalSignalDSL.g:15240:1: ( rule__XTryCatchFinallyExpression__Group_3_0__0__Impl rule__XTryCatchFinallyExpression__Group_3_0__1 )
+            // InternalSignalDSL.g:15241:2: rule__XTryCatchFinallyExpression__Group_3_0__0__Impl rule__XTryCatchFinallyExpression__Group_3_0__1
             {
-            pushFollow(FOLLOW_103);
+            pushFollow(FOLLOW_108);
             rule__XTryCatchFinallyExpression__Group_3_0__0__Impl();
 
             state._fsp--;
@@ -49675,28 +50460,28 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__Group_3_0__0__Impl"
-    // InternalSignalDSL.g:14985:1: rule__XTryCatchFinallyExpression__Group_3_0__0__Impl : ( ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 ) ) ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )* ) ) ;
+    // InternalSignalDSL.g:15248: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:14989:1: ( ( ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 ) ) ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )* ) ) )
-            // InternalSignalDSL.g:14990:1: ( ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 ) ) ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )* ) )
+            // InternalSignalDSL.g:15252:1: ( ( ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 ) ) ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )* ) ) )
+            // InternalSignalDSL.g:15253:1: ( ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 ) ) ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )* ) )
             {
-            // InternalSignalDSL.g:14990:1: ( ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 ) ) ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )* ) )
-            // InternalSignalDSL.g:14991:2: ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 ) ) ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )* )
+            // InternalSignalDSL.g:15253:1: ( ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 ) ) ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )* ) )
+            // InternalSignalDSL.g:15254:2: ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 ) ) ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )* )
             {
-            // InternalSignalDSL.g:14991:2: ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 ) )
-            // InternalSignalDSL.g:14992:3: ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )
+            // InternalSignalDSL.g:15254:2: ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 ) )
+            // InternalSignalDSL.g:15255:3: ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTryCatchFinallyExpressionAccess().getCatchClausesAssignment_3_0_0()); 
             }
-            // InternalSignalDSL.g:14993:3: ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )
-            // InternalSignalDSL.g:14993:4: rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0
+            // InternalSignalDSL.g:15256:3: ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )
+            // InternalSignalDSL.g:15256:4: rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0
             {
-            pushFollow(FOLLOW_104);
+            pushFollow(FOLLOW_109);
             rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0();
 
             state._fsp--;
@@ -49710,34 +50495,34 @@
 
             }
 
-            // InternalSignalDSL.g:14996:2: ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )* )
-            // InternalSignalDSL.g:14997:3: ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )*
+            // InternalSignalDSL.g:15259:2: ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )* )
+            // InternalSignalDSL.g:15260:3: ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTryCatchFinallyExpressionAccess().getCatchClausesAssignment_3_0_0()); 
             }
-            // InternalSignalDSL.g:14998:3: ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )*
-            loop123:
+            // InternalSignalDSL.g:15261:3: ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )*
+            loop126:
             do {
-                int alt123=2;
-                int LA123_0 = input.LA(1);
+                int alt126=2;
+                int LA126_0 = input.LA(1);
 
-                if ( (LA123_0==100) ) {
-                    int LA123_2 = input.LA(2);
+                if ( (LA126_0==98) ) {
+                    int LA126_2 = input.LA(2);
 
-                    if ( (synpred177_InternalSignalDSL()) ) {
-                        alt123=1;
+                    if ( (synpred174_InternalSignalDSL()) ) {
+                        alt126=1;
                     }
 
 
                 }
 
 
-                switch (alt123) {
+                switch (alt126) {
             	case 1 :
-            	    // InternalSignalDSL.g:14998:4: rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0
+            	    // InternalSignalDSL.g:15261:4: rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0
             	    {
-            	    pushFollow(FOLLOW_104);
+            	    pushFollow(FOLLOW_109);
             	    rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0();
 
             	    state._fsp--;
@@ -49747,7 +50532,7 @@
             	    break;
 
             	default :
-            	    break loop123;
+            	    break loop126;
                 }
             } while (true);
 
@@ -49779,14 +50564,14 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__Group_3_0__1"
-    // InternalSignalDSL.g:15007:1: rule__XTryCatchFinallyExpression__Group_3_0__1 : rule__XTryCatchFinallyExpression__Group_3_0__1__Impl ;
+    // InternalSignalDSL.g:15270: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:15011:1: ( rule__XTryCatchFinallyExpression__Group_3_0__1__Impl )
-            // InternalSignalDSL.g:15012:2: rule__XTryCatchFinallyExpression__Group_3_0__1__Impl
+            // InternalSignalDSL.g:15274:1: ( rule__XTryCatchFinallyExpression__Group_3_0__1__Impl )
+            // InternalSignalDSL.g:15275:2: rule__XTryCatchFinallyExpression__Group_3_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XTryCatchFinallyExpression__Group_3_0__1__Impl();
@@ -49812,35 +50597,35 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__Group_3_0__1__Impl"
-    // InternalSignalDSL.g:15018:1: rule__XTryCatchFinallyExpression__Group_3_0__1__Impl : ( ( rule__XTryCatchFinallyExpression__Group_3_0_1__0 )? ) ;
+    // InternalSignalDSL.g:15281: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:15022:1: ( ( ( rule__XTryCatchFinallyExpression__Group_3_0_1__0 )? ) )
-            // InternalSignalDSL.g:15023:1: ( ( rule__XTryCatchFinallyExpression__Group_3_0_1__0 )? )
+            // InternalSignalDSL.g:15285:1: ( ( ( rule__XTryCatchFinallyExpression__Group_3_0_1__0 )? ) )
+            // InternalSignalDSL.g:15286:1: ( ( rule__XTryCatchFinallyExpression__Group_3_0_1__0 )? )
             {
-            // InternalSignalDSL.g:15023:1: ( ( rule__XTryCatchFinallyExpression__Group_3_0_1__0 )? )
-            // InternalSignalDSL.g:15024:2: ( rule__XTryCatchFinallyExpression__Group_3_0_1__0 )?
+            // InternalSignalDSL.g:15286:1: ( ( rule__XTryCatchFinallyExpression__Group_3_0_1__0 )? )
+            // InternalSignalDSL.g:15287:2: ( rule__XTryCatchFinallyExpression__Group_3_0_1__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTryCatchFinallyExpressionAccess().getGroup_3_0_1()); 
             }
-            // InternalSignalDSL.g:15025:2: ( rule__XTryCatchFinallyExpression__Group_3_0_1__0 )?
-            int alt124=2;
-            int LA124_0 = input.LA(1);
+            // InternalSignalDSL.g:15288:2: ( rule__XTryCatchFinallyExpression__Group_3_0_1__0 )?
+            int alt127=2;
+            int LA127_0 = input.LA(1);
 
-            if ( (LA124_0==98) ) {
-                int LA124_1 = input.LA(2);
+            if ( (LA127_0==96) ) {
+                int LA127_1 = input.LA(2);
 
-                if ( (synpred178_InternalSignalDSL()) ) {
-                    alt124=1;
+                if ( (synpred175_InternalSignalDSL()) ) {
+                    alt127=1;
                 }
             }
-            switch (alt124) {
+            switch (alt127) {
                 case 1 :
-                    // InternalSignalDSL.g:15025:3: rule__XTryCatchFinallyExpression__Group_3_0_1__0
+                    // InternalSignalDSL.g:15288:3: rule__XTryCatchFinallyExpression__Group_3_0_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XTryCatchFinallyExpression__Group_3_0_1__0();
@@ -49878,16 +50663,16 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__Group_3_0_1__0"
-    // InternalSignalDSL.g:15034: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:15297: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:15038:1: ( rule__XTryCatchFinallyExpression__Group_3_0_1__0__Impl rule__XTryCatchFinallyExpression__Group_3_0_1__1 )
-            // InternalSignalDSL.g:15039:2: rule__XTryCatchFinallyExpression__Group_3_0_1__0__Impl rule__XTryCatchFinallyExpression__Group_3_0_1__1
+            // InternalSignalDSL.g:15301:1: ( rule__XTryCatchFinallyExpression__Group_3_0_1__0__Impl rule__XTryCatchFinallyExpression__Group_3_0_1__1 )
+            // InternalSignalDSL.g:15302:2: rule__XTryCatchFinallyExpression__Group_3_0_1__0__Impl rule__XTryCatchFinallyExpression__Group_3_0_1__1
             {
-            pushFollow(FOLLOW_30);
+            pushFollow(FOLLOW_35);
             rule__XTryCatchFinallyExpression__Group_3_0_1__0__Impl();
 
             state._fsp--;
@@ -49916,25 +50701,25 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__Group_3_0_1__0__Impl"
-    // InternalSignalDSL.g:15046:1: rule__XTryCatchFinallyExpression__Group_3_0_1__0__Impl : ( ( 'finally' ) ) ;
+    // InternalSignalDSL.g:15309: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:15050:1: ( ( ( 'finally' ) ) )
-            // InternalSignalDSL.g:15051:1: ( ( 'finally' ) )
+            // InternalSignalDSL.g:15313:1: ( ( ( 'finally' ) ) )
+            // InternalSignalDSL.g:15314:1: ( ( 'finally' ) )
             {
-            // InternalSignalDSL.g:15051:1: ( ( 'finally' ) )
-            // InternalSignalDSL.g:15052:2: ( 'finally' )
+            // InternalSignalDSL.g:15314:1: ( ( 'finally' ) )
+            // InternalSignalDSL.g:15315:2: ( 'finally' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyKeyword_3_0_1_0()); 
             }
-            // InternalSignalDSL.g:15053:2: ( 'finally' )
-            // InternalSignalDSL.g:15053:3: 'finally'
+            // InternalSignalDSL.g:15316:2: ( 'finally' )
+            // InternalSignalDSL.g:15316:3: 'finally'
             {
-            match(input,98,FOLLOW_2); if (state.failed) return ;
+            match(input,96,FOLLOW_2); if (state.failed) return ;
 
             }
 
@@ -49963,14 +50748,14 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__Group_3_0_1__1"
-    // InternalSignalDSL.g:15061:1: rule__XTryCatchFinallyExpression__Group_3_0_1__1 : rule__XTryCatchFinallyExpression__Group_3_0_1__1__Impl ;
+    // InternalSignalDSL.g:15324: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:15065:1: ( rule__XTryCatchFinallyExpression__Group_3_0_1__1__Impl )
-            // InternalSignalDSL.g:15066:2: rule__XTryCatchFinallyExpression__Group_3_0_1__1__Impl
+            // InternalSignalDSL.g:15328:1: ( rule__XTryCatchFinallyExpression__Group_3_0_1__1__Impl )
+            // InternalSignalDSL.g:15329:2: rule__XTryCatchFinallyExpression__Group_3_0_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XTryCatchFinallyExpression__Group_3_0_1__1__Impl();
@@ -49996,23 +50781,23 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__Group_3_0_1__1__Impl"
-    // InternalSignalDSL.g:15072:1: rule__XTryCatchFinallyExpression__Group_3_0_1__1__Impl : ( ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1 ) ) ;
+    // InternalSignalDSL.g:15335: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:15076:1: ( ( ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1 ) ) )
-            // InternalSignalDSL.g:15077:1: ( ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1 ) )
+            // InternalSignalDSL.g:15339:1: ( ( ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1 ) ) )
+            // InternalSignalDSL.g:15340:1: ( ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1 ) )
             {
-            // InternalSignalDSL.g:15077:1: ( ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1 ) )
-            // InternalSignalDSL.g:15078:2: ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1 )
+            // InternalSignalDSL.g:15340:1: ( ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1 ) )
+            // InternalSignalDSL.g:15341:2: ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyExpressionAssignment_3_0_1_1()); 
             }
-            // InternalSignalDSL.g:15079:2: ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1 )
-            // InternalSignalDSL.g:15079:3: rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1
+            // InternalSignalDSL.g:15342:2: ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1 )
+            // InternalSignalDSL.g:15342:3: rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1();
@@ -50047,16 +50832,16 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__Group_3_1__0"
-    // InternalSignalDSL.g:15088:1: rule__XTryCatchFinallyExpression__Group_3_1__0 : rule__XTryCatchFinallyExpression__Group_3_1__0__Impl rule__XTryCatchFinallyExpression__Group_3_1__1 ;
+    // InternalSignalDSL.g:15351: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:15092:1: ( rule__XTryCatchFinallyExpression__Group_3_1__0__Impl rule__XTryCatchFinallyExpression__Group_3_1__1 )
-            // InternalSignalDSL.g:15093:2: rule__XTryCatchFinallyExpression__Group_3_1__0__Impl rule__XTryCatchFinallyExpression__Group_3_1__1
+            // InternalSignalDSL.g:15355:1: ( rule__XTryCatchFinallyExpression__Group_3_1__0__Impl rule__XTryCatchFinallyExpression__Group_3_1__1 )
+            // InternalSignalDSL.g:15356:2: rule__XTryCatchFinallyExpression__Group_3_1__0__Impl rule__XTryCatchFinallyExpression__Group_3_1__1
             {
-            pushFollow(FOLLOW_30);
+            pushFollow(FOLLOW_35);
             rule__XTryCatchFinallyExpression__Group_3_1__0__Impl();
 
             state._fsp--;
@@ -50085,22 +50870,22 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__Group_3_1__0__Impl"
-    // InternalSignalDSL.g:15100:1: rule__XTryCatchFinallyExpression__Group_3_1__0__Impl : ( 'finally' ) ;
+    // InternalSignalDSL.g:15363: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:15104:1: ( ( 'finally' ) )
-            // InternalSignalDSL.g:15105:1: ( 'finally' )
+            // InternalSignalDSL.g:15367:1: ( ( 'finally' ) )
+            // InternalSignalDSL.g:15368:1: ( 'finally' )
             {
-            // InternalSignalDSL.g:15105:1: ( 'finally' )
-            // InternalSignalDSL.g:15106:2: 'finally'
+            // InternalSignalDSL.g:15368:1: ( 'finally' )
+            // InternalSignalDSL.g:15369:2: 'finally'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyKeyword_3_1_0()); 
             }
-            match(input,98,FOLLOW_2); if (state.failed) return ;
+            match(input,96,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyKeyword_3_1_0()); 
             }
@@ -50126,14 +50911,14 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__Group_3_1__1"
-    // InternalSignalDSL.g:15115:1: rule__XTryCatchFinallyExpression__Group_3_1__1 : rule__XTryCatchFinallyExpression__Group_3_1__1__Impl ;
+    // InternalSignalDSL.g:15378: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:15119:1: ( rule__XTryCatchFinallyExpression__Group_3_1__1__Impl )
-            // InternalSignalDSL.g:15120:2: rule__XTryCatchFinallyExpression__Group_3_1__1__Impl
+            // InternalSignalDSL.g:15382:1: ( rule__XTryCatchFinallyExpression__Group_3_1__1__Impl )
+            // InternalSignalDSL.g:15383:2: rule__XTryCatchFinallyExpression__Group_3_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XTryCatchFinallyExpression__Group_3_1__1__Impl();
@@ -50159,23 +50944,23 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__Group_3_1__1__Impl"
-    // InternalSignalDSL.g:15126:1: rule__XTryCatchFinallyExpression__Group_3_1__1__Impl : ( ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1 ) ) ;
+    // InternalSignalDSL.g:15389: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:15130:1: ( ( ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1 ) ) )
-            // InternalSignalDSL.g:15131:1: ( ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1 ) )
+            // InternalSignalDSL.g:15393:1: ( ( ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1 ) ) )
+            // InternalSignalDSL.g:15394:1: ( ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1 ) )
             {
-            // InternalSignalDSL.g:15131:1: ( ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1 ) )
-            // InternalSignalDSL.g:15132:2: ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1 )
+            // InternalSignalDSL.g:15394:1: ( ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1 ) )
+            // InternalSignalDSL.g:15395:2: ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyExpressionAssignment_3_1_1()); 
             }
-            // InternalSignalDSL.g:15133:2: ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1 )
-            // InternalSignalDSL.g:15133:3: rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1
+            // InternalSignalDSL.g:15396:2: ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1 )
+            // InternalSignalDSL.g:15396:3: rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1();
@@ -50210,16 +50995,16 @@
 
 
     // $ANTLR start "rule__XSynchronizedExpression__Group__0"
-    // InternalSignalDSL.g:15142:1: rule__XSynchronizedExpression__Group__0 : rule__XSynchronizedExpression__Group__0__Impl rule__XSynchronizedExpression__Group__1 ;
+    // InternalSignalDSL.g:15405: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:15146:1: ( rule__XSynchronizedExpression__Group__0__Impl rule__XSynchronizedExpression__Group__1 )
-            // InternalSignalDSL.g:15147:2: rule__XSynchronizedExpression__Group__0__Impl rule__XSynchronizedExpression__Group__1
+            // InternalSignalDSL.g:15409:1: ( rule__XSynchronizedExpression__Group__0__Impl rule__XSynchronizedExpression__Group__1 )
+            // InternalSignalDSL.g:15410:2: rule__XSynchronizedExpression__Group__0__Impl rule__XSynchronizedExpression__Group__1
             {
-            pushFollow(FOLLOW_30);
+            pushFollow(FOLLOW_35);
             rule__XSynchronizedExpression__Group__0__Impl();
 
             state._fsp--;
@@ -50248,23 +51033,23 @@
 
 
     // $ANTLR start "rule__XSynchronizedExpression__Group__0__Impl"
-    // InternalSignalDSL.g:15154:1: rule__XSynchronizedExpression__Group__0__Impl : ( ( rule__XSynchronizedExpression__Group_0__0 ) ) ;
+    // InternalSignalDSL.g:15417: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:15158:1: ( ( ( rule__XSynchronizedExpression__Group_0__0 ) ) )
-            // InternalSignalDSL.g:15159:1: ( ( rule__XSynchronizedExpression__Group_0__0 ) )
+            // InternalSignalDSL.g:15421:1: ( ( ( rule__XSynchronizedExpression__Group_0__0 ) ) )
+            // InternalSignalDSL.g:15422:1: ( ( rule__XSynchronizedExpression__Group_0__0 ) )
             {
-            // InternalSignalDSL.g:15159:1: ( ( rule__XSynchronizedExpression__Group_0__0 ) )
-            // InternalSignalDSL.g:15160:2: ( rule__XSynchronizedExpression__Group_0__0 )
+            // InternalSignalDSL.g:15422:1: ( ( rule__XSynchronizedExpression__Group_0__0 ) )
+            // InternalSignalDSL.g:15423:2: ( rule__XSynchronizedExpression__Group_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSynchronizedExpressionAccess().getGroup_0()); 
             }
-            // InternalSignalDSL.g:15161:2: ( rule__XSynchronizedExpression__Group_0__0 )
-            // InternalSignalDSL.g:15161:3: rule__XSynchronizedExpression__Group_0__0
+            // InternalSignalDSL.g:15424:2: ( rule__XSynchronizedExpression__Group_0__0 )
+            // InternalSignalDSL.g:15424:3: rule__XSynchronizedExpression__Group_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XSynchronizedExpression__Group_0__0();
@@ -50299,16 +51084,16 @@
 
 
     // $ANTLR start "rule__XSynchronizedExpression__Group__1"
-    // InternalSignalDSL.g:15169:1: rule__XSynchronizedExpression__Group__1 : rule__XSynchronizedExpression__Group__1__Impl rule__XSynchronizedExpression__Group__2 ;
+    // InternalSignalDSL.g:15432: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:15173:1: ( rule__XSynchronizedExpression__Group__1__Impl rule__XSynchronizedExpression__Group__2 )
-            // InternalSignalDSL.g:15174:2: rule__XSynchronizedExpression__Group__1__Impl rule__XSynchronizedExpression__Group__2
+            // InternalSignalDSL.g:15436:1: ( rule__XSynchronizedExpression__Group__1__Impl rule__XSynchronizedExpression__Group__2 )
+            // InternalSignalDSL.g:15437:2: rule__XSynchronizedExpression__Group__1__Impl rule__XSynchronizedExpression__Group__2
             {
-            pushFollow(FOLLOW_75);
+            pushFollow(FOLLOW_80);
             rule__XSynchronizedExpression__Group__1__Impl();
 
             state._fsp--;
@@ -50337,23 +51122,23 @@
 
 
     // $ANTLR start "rule__XSynchronizedExpression__Group__1__Impl"
-    // InternalSignalDSL.g:15181:1: rule__XSynchronizedExpression__Group__1__Impl : ( ( rule__XSynchronizedExpression__ParamAssignment_1 ) ) ;
+    // InternalSignalDSL.g:15444: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:15185:1: ( ( ( rule__XSynchronizedExpression__ParamAssignment_1 ) ) )
-            // InternalSignalDSL.g:15186:1: ( ( rule__XSynchronizedExpression__ParamAssignment_1 ) )
+            // InternalSignalDSL.g:15448:1: ( ( ( rule__XSynchronizedExpression__ParamAssignment_1 ) ) )
+            // InternalSignalDSL.g:15449:1: ( ( rule__XSynchronizedExpression__ParamAssignment_1 ) )
             {
-            // InternalSignalDSL.g:15186:1: ( ( rule__XSynchronizedExpression__ParamAssignment_1 ) )
-            // InternalSignalDSL.g:15187:2: ( rule__XSynchronizedExpression__ParamAssignment_1 )
+            // InternalSignalDSL.g:15449:1: ( ( rule__XSynchronizedExpression__ParamAssignment_1 ) )
+            // InternalSignalDSL.g:15450:2: ( rule__XSynchronizedExpression__ParamAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSynchronizedExpressionAccess().getParamAssignment_1()); 
             }
-            // InternalSignalDSL.g:15188:2: ( rule__XSynchronizedExpression__ParamAssignment_1 )
-            // InternalSignalDSL.g:15188:3: rule__XSynchronizedExpression__ParamAssignment_1
+            // InternalSignalDSL.g:15451:2: ( rule__XSynchronizedExpression__ParamAssignment_1 )
+            // InternalSignalDSL.g:15451:3: rule__XSynchronizedExpression__ParamAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__XSynchronizedExpression__ParamAssignment_1();
@@ -50388,16 +51173,16 @@
 
 
     // $ANTLR start "rule__XSynchronizedExpression__Group__2"
-    // InternalSignalDSL.g:15196:1: rule__XSynchronizedExpression__Group__2 : rule__XSynchronizedExpression__Group__2__Impl rule__XSynchronizedExpression__Group__3 ;
+    // InternalSignalDSL.g:15459: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:15200:1: ( rule__XSynchronizedExpression__Group__2__Impl rule__XSynchronizedExpression__Group__3 )
-            // InternalSignalDSL.g:15201:2: rule__XSynchronizedExpression__Group__2__Impl rule__XSynchronizedExpression__Group__3
+            // InternalSignalDSL.g:15463:1: ( rule__XSynchronizedExpression__Group__2__Impl rule__XSynchronizedExpression__Group__3 )
+            // InternalSignalDSL.g:15464:2: rule__XSynchronizedExpression__Group__2__Impl rule__XSynchronizedExpression__Group__3
             {
-            pushFollow(FOLLOW_30);
+            pushFollow(FOLLOW_35);
             rule__XSynchronizedExpression__Group__2__Impl();
 
             state._fsp--;
@@ -50426,22 +51211,22 @@
 
 
     // $ANTLR start "rule__XSynchronizedExpression__Group__2__Impl"
-    // InternalSignalDSL.g:15208:1: rule__XSynchronizedExpression__Group__2__Impl : ( ')' ) ;
+    // InternalSignalDSL.g:15471:1: rule__XSynchronizedExpression__Group__2__Impl : ( ')' ) ;
     public final void rule__XSynchronizedExpression__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:15212:1: ( ( ')' ) )
-            // InternalSignalDSL.g:15213:1: ( ')' )
+            // InternalSignalDSL.g:15475:1: ( ( ')' ) )
+            // InternalSignalDSL.g:15476:1: ( ')' )
             {
-            // InternalSignalDSL.g:15213:1: ( ')' )
-            // InternalSignalDSL.g:15214:2: ')'
+            // InternalSignalDSL.g:15476:1: ( ')' )
+            // InternalSignalDSL.g:15477:2: ')'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSynchronizedExpressionAccess().getRightParenthesisKeyword_2()); 
             }
-            match(input,77,FOLLOW_2); if (state.failed) return ;
+            match(input,75,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXSynchronizedExpressionAccess().getRightParenthesisKeyword_2()); 
             }
@@ -50467,14 +51252,14 @@
 
 
     // $ANTLR start "rule__XSynchronizedExpression__Group__3"
-    // InternalSignalDSL.g:15223:1: rule__XSynchronizedExpression__Group__3 : rule__XSynchronizedExpression__Group__3__Impl ;
+    // InternalSignalDSL.g:15486: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:15227:1: ( rule__XSynchronizedExpression__Group__3__Impl )
-            // InternalSignalDSL.g:15228:2: rule__XSynchronizedExpression__Group__3__Impl
+            // InternalSignalDSL.g:15490:1: ( rule__XSynchronizedExpression__Group__3__Impl )
+            // InternalSignalDSL.g:15491:2: rule__XSynchronizedExpression__Group__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XSynchronizedExpression__Group__3__Impl();
@@ -50500,23 +51285,23 @@
 
 
     // $ANTLR start "rule__XSynchronizedExpression__Group__3__Impl"
-    // InternalSignalDSL.g:15234:1: rule__XSynchronizedExpression__Group__3__Impl : ( ( rule__XSynchronizedExpression__ExpressionAssignment_3 ) ) ;
+    // InternalSignalDSL.g:15497: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:15238:1: ( ( ( rule__XSynchronizedExpression__ExpressionAssignment_3 ) ) )
-            // InternalSignalDSL.g:15239:1: ( ( rule__XSynchronizedExpression__ExpressionAssignment_3 ) )
+            // InternalSignalDSL.g:15501:1: ( ( ( rule__XSynchronizedExpression__ExpressionAssignment_3 ) ) )
+            // InternalSignalDSL.g:15502:1: ( ( rule__XSynchronizedExpression__ExpressionAssignment_3 ) )
             {
-            // InternalSignalDSL.g:15239:1: ( ( rule__XSynchronizedExpression__ExpressionAssignment_3 ) )
-            // InternalSignalDSL.g:15240:2: ( rule__XSynchronizedExpression__ExpressionAssignment_3 )
+            // InternalSignalDSL.g:15502:1: ( ( rule__XSynchronizedExpression__ExpressionAssignment_3 ) )
+            // InternalSignalDSL.g:15503:2: ( rule__XSynchronizedExpression__ExpressionAssignment_3 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSynchronizedExpressionAccess().getExpressionAssignment_3()); 
             }
-            // InternalSignalDSL.g:15241:2: ( rule__XSynchronizedExpression__ExpressionAssignment_3 )
-            // InternalSignalDSL.g:15241:3: rule__XSynchronizedExpression__ExpressionAssignment_3
+            // InternalSignalDSL.g:15504:2: ( rule__XSynchronizedExpression__ExpressionAssignment_3 )
+            // InternalSignalDSL.g:15504:3: rule__XSynchronizedExpression__ExpressionAssignment_3
             {
             pushFollow(FOLLOW_2);
             rule__XSynchronizedExpression__ExpressionAssignment_3();
@@ -50551,14 +51336,14 @@
 
 
     // $ANTLR start "rule__XSynchronizedExpression__Group_0__0"
-    // InternalSignalDSL.g:15250:1: rule__XSynchronizedExpression__Group_0__0 : rule__XSynchronizedExpression__Group_0__0__Impl ;
+    // InternalSignalDSL.g:15513: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:15254:1: ( rule__XSynchronizedExpression__Group_0__0__Impl )
-            // InternalSignalDSL.g:15255:2: rule__XSynchronizedExpression__Group_0__0__Impl
+            // InternalSignalDSL.g:15517:1: ( rule__XSynchronizedExpression__Group_0__0__Impl )
+            // InternalSignalDSL.g:15518:2: rule__XSynchronizedExpression__Group_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XSynchronizedExpression__Group_0__0__Impl();
@@ -50584,23 +51369,23 @@
 
 
     // $ANTLR start "rule__XSynchronizedExpression__Group_0__0__Impl"
-    // InternalSignalDSL.g:15261:1: rule__XSynchronizedExpression__Group_0__0__Impl : ( ( rule__XSynchronizedExpression__Group_0_0__0 ) ) ;
+    // InternalSignalDSL.g:15524: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:15265:1: ( ( ( rule__XSynchronizedExpression__Group_0_0__0 ) ) )
-            // InternalSignalDSL.g:15266:1: ( ( rule__XSynchronizedExpression__Group_0_0__0 ) )
+            // InternalSignalDSL.g:15528:1: ( ( ( rule__XSynchronizedExpression__Group_0_0__0 ) ) )
+            // InternalSignalDSL.g:15529:1: ( ( rule__XSynchronizedExpression__Group_0_0__0 ) )
             {
-            // InternalSignalDSL.g:15266:1: ( ( rule__XSynchronizedExpression__Group_0_0__0 ) )
-            // InternalSignalDSL.g:15267:2: ( rule__XSynchronizedExpression__Group_0_0__0 )
+            // InternalSignalDSL.g:15529:1: ( ( rule__XSynchronizedExpression__Group_0_0__0 ) )
+            // InternalSignalDSL.g:15530:2: ( rule__XSynchronizedExpression__Group_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSynchronizedExpressionAccess().getGroup_0_0()); 
             }
-            // InternalSignalDSL.g:15268:2: ( rule__XSynchronizedExpression__Group_0_0__0 )
-            // InternalSignalDSL.g:15268:3: rule__XSynchronizedExpression__Group_0_0__0
+            // InternalSignalDSL.g:15531:2: ( rule__XSynchronizedExpression__Group_0_0__0 )
+            // InternalSignalDSL.g:15531:3: rule__XSynchronizedExpression__Group_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XSynchronizedExpression__Group_0_0__0();
@@ -50635,16 +51420,16 @@
 
 
     // $ANTLR start "rule__XSynchronizedExpression__Group_0_0__0"
-    // InternalSignalDSL.g:15277:1: rule__XSynchronizedExpression__Group_0_0__0 : rule__XSynchronizedExpression__Group_0_0__0__Impl rule__XSynchronizedExpression__Group_0_0__1 ;
+    // InternalSignalDSL.g:15540: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:15281:1: ( rule__XSynchronizedExpression__Group_0_0__0__Impl rule__XSynchronizedExpression__Group_0_0__1 )
-            // InternalSignalDSL.g:15282:2: rule__XSynchronizedExpression__Group_0_0__0__Impl rule__XSynchronizedExpression__Group_0_0__1
+            // InternalSignalDSL.g:15544:1: ( rule__XSynchronizedExpression__Group_0_0__0__Impl rule__XSynchronizedExpression__Group_0_0__1 )
+            // InternalSignalDSL.g:15545:2: rule__XSynchronizedExpression__Group_0_0__0__Impl rule__XSynchronizedExpression__Group_0_0__1
             {
-            pushFollow(FOLLOW_105);
+            pushFollow(FOLLOW_110);
             rule__XSynchronizedExpression__Group_0_0__0__Impl();
 
             state._fsp--;
@@ -50673,23 +51458,23 @@
 
 
     // $ANTLR start "rule__XSynchronizedExpression__Group_0_0__0__Impl"
-    // InternalSignalDSL.g:15289:1: rule__XSynchronizedExpression__Group_0_0__0__Impl : ( () ) ;
+    // InternalSignalDSL.g:15552: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:15293:1: ( ( () ) )
-            // InternalSignalDSL.g:15294:1: ( () )
+            // InternalSignalDSL.g:15556:1: ( ( () ) )
+            // InternalSignalDSL.g:15557:1: ( () )
             {
-            // InternalSignalDSL.g:15294:1: ( () )
-            // InternalSignalDSL.g:15295:2: ()
+            // InternalSignalDSL.g:15557:1: ( () )
+            // InternalSignalDSL.g:15558:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSynchronizedExpressionAccess().getXSynchronizedExpressionAction_0_0_0()); 
             }
-            // InternalSignalDSL.g:15296:2: ()
-            // InternalSignalDSL.g:15296:3: 
+            // InternalSignalDSL.g:15559:2: ()
+            // InternalSignalDSL.g:15559:3: 
             {
             }
 
@@ -50714,16 +51499,16 @@
 
 
     // $ANTLR start "rule__XSynchronizedExpression__Group_0_0__1"
-    // InternalSignalDSL.g:15304:1: rule__XSynchronizedExpression__Group_0_0__1 : rule__XSynchronizedExpression__Group_0_0__1__Impl rule__XSynchronizedExpression__Group_0_0__2 ;
+    // InternalSignalDSL.g:15567: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:15308:1: ( rule__XSynchronizedExpression__Group_0_0__1__Impl rule__XSynchronizedExpression__Group_0_0__2 )
-            // InternalSignalDSL.g:15309:2: rule__XSynchronizedExpression__Group_0_0__1__Impl rule__XSynchronizedExpression__Group_0_0__2
+            // InternalSignalDSL.g:15571:1: ( rule__XSynchronizedExpression__Group_0_0__1__Impl rule__XSynchronizedExpression__Group_0_0__2 )
+            // InternalSignalDSL.g:15572:2: rule__XSynchronizedExpression__Group_0_0__1__Impl rule__XSynchronizedExpression__Group_0_0__2
             {
-            pushFollow(FOLLOW_26);
+            pushFollow(FOLLOW_31);
             rule__XSynchronizedExpression__Group_0_0__1__Impl();
 
             state._fsp--;
@@ -50752,22 +51537,22 @@
 
 
     // $ANTLR start "rule__XSynchronizedExpression__Group_0_0__1__Impl"
-    // InternalSignalDSL.g:15316:1: rule__XSynchronizedExpression__Group_0_0__1__Impl : ( 'synchronized' ) ;
+    // InternalSignalDSL.g:15579: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:15320:1: ( ( 'synchronized' ) )
-            // InternalSignalDSL.g:15321:1: ( 'synchronized' )
+            // InternalSignalDSL.g:15583:1: ( ( 'synchronized' ) )
+            // InternalSignalDSL.g:15584:1: ( 'synchronized' )
             {
-            // InternalSignalDSL.g:15321:1: ( 'synchronized' )
-            // InternalSignalDSL.g:15322:2: 'synchronized'
+            // InternalSignalDSL.g:15584:1: ( 'synchronized' )
+            // InternalSignalDSL.g:15585:2: 'synchronized'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSynchronizedExpressionAccess().getSynchronizedKeyword_0_0_1()); 
             }
-            match(input,99,FOLLOW_2); if (state.failed) return ;
+            match(input,97,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXSynchronizedExpressionAccess().getSynchronizedKeyword_0_0_1()); 
             }
@@ -50793,14 +51578,14 @@
 
 
     // $ANTLR start "rule__XSynchronizedExpression__Group_0_0__2"
-    // InternalSignalDSL.g:15331:1: rule__XSynchronizedExpression__Group_0_0__2 : rule__XSynchronizedExpression__Group_0_0__2__Impl ;
+    // InternalSignalDSL.g:15594: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:15335:1: ( rule__XSynchronizedExpression__Group_0_0__2__Impl )
-            // InternalSignalDSL.g:15336:2: rule__XSynchronizedExpression__Group_0_0__2__Impl
+            // InternalSignalDSL.g:15598:1: ( rule__XSynchronizedExpression__Group_0_0__2__Impl )
+            // InternalSignalDSL.g:15599:2: rule__XSynchronizedExpression__Group_0_0__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XSynchronizedExpression__Group_0_0__2__Impl();
@@ -50826,22 +51611,22 @@
 
 
     // $ANTLR start "rule__XSynchronizedExpression__Group_0_0__2__Impl"
-    // InternalSignalDSL.g:15342:1: rule__XSynchronizedExpression__Group_0_0__2__Impl : ( '(' ) ;
+    // InternalSignalDSL.g:15605: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:15346:1: ( ( '(' ) )
-            // InternalSignalDSL.g:15347:1: ( '(' )
+            // InternalSignalDSL.g:15609:1: ( ( '(' ) )
+            // InternalSignalDSL.g:15610:1: ( '(' )
             {
-            // InternalSignalDSL.g:15347:1: ( '(' )
-            // InternalSignalDSL.g:15348:2: '('
+            // InternalSignalDSL.g:15610:1: ( '(' )
+            // InternalSignalDSL.g:15611:2: '('
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSynchronizedExpressionAccess().getLeftParenthesisKeyword_0_0_2()); 
             }
-            match(input,76,FOLLOW_2); if (state.failed) return ;
+            match(input,74,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXSynchronizedExpressionAccess().getLeftParenthesisKeyword_0_0_2()); 
             }
@@ -50867,16 +51652,16 @@
 
 
     // $ANTLR start "rule__XCatchClause__Group__0"
-    // InternalSignalDSL.g:15358:1: rule__XCatchClause__Group__0 : rule__XCatchClause__Group__0__Impl rule__XCatchClause__Group__1 ;
+    // InternalSignalDSL.g:15621: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:15362:1: ( rule__XCatchClause__Group__0__Impl rule__XCatchClause__Group__1 )
-            // InternalSignalDSL.g:15363:2: rule__XCatchClause__Group__0__Impl rule__XCatchClause__Group__1
+            // InternalSignalDSL.g:15625:1: ( rule__XCatchClause__Group__0__Impl rule__XCatchClause__Group__1 )
+            // InternalSignalDSL.g:15626:2: rule__XCatchClause__Group__0__Impl rule__XCatchClause__Group__1
             {
-            pushFollow(FOLLOW_26);
+            pushFollow(FOLLOW_31);
             rule__XCatchClause__Group__0__Impl();
 
             state._fsp--;
@@ -50905,25 +51690,25 @@
 
 
     // $ANTLR start "rule__XCatchClause__Group__0__Impl"
-    // InternalSignalDSL.g:15370:1: rule__XCatchClause__Group__0__Impl : ( ( 'catch' ) ) ;
+    // InternalSignalDSL.g:15633:1: rule__XCatchClause__Group__0__Impl : ( ( 'catch' ) ) ;
     public final void rule__XCatchClause__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:15374:1: ( ( ( 'catch' ) ) )
-            // InternalSignalDSL.g:15375:1: ( ( 'catch' ) )
+            // InternalSignalDSL.g:15637:1: ( ( ( 'catch' ) ) )
+            // InternalSignalDSL.g:15638:1: ( ( 'catch' ) )
             {
-            // InternalSignalDSL.g:15375:1: ( ( 'catch' ) )
-            // InternalSignalDSL.g:15376:2: ( 'catch' )
+            // InternalSignalDSL.g:15638:1: ( ( 'catch' ) )
+            // InternalSignalDSL.g:15639:2: ( 'catch' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCatchClauseAccess().getCatchKeyword_0()); 
             }
-            // InternalSignalDSL.g:15377:2: ( 'catch' )
-            // InternalSignalDSL.g:15377:3: 'catch'
+            // InternalSignalDSL.g:15640:2: ( 'catch' )
+            // InternalSignalDSL.g:15640:3: 'catch'
             {
-            match(input,100,FOLLOW_2); if (state.failed) return ;
+            match(input,98,FOLLOW_2); if (state.failed) return ;
 
             }
 
@@ -50952,16 +51737,16 @@
 
 
     // $ANTLR start "rule__XCatchClause__Group__1"
-    // InternalSignalDSL.g:15385:1: rule__XCatchClause__Group__1 : rule__XCatchClause__Group__1__Impl rule__XCatchClause__Group__2 ;
+    // InternalSignalDSL.g:15648: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:15389:1: ( rule__XCatchClause__Group__1__Impl rule__XCatchClause__Group__2 )
-            // InternalSignalDSL.g:15390:2: rule__XCatchClause__Group__1__Impl rule__XCatchClause__Group__2
+            // InternalSignalDSL.g:15652:1: ( rule__XCatchClause__Group__1__Impl rule__XCatchClause__Group__2 )
+            // InternalSignalDSL.g:15653:2: rule__XCatchClause__Group__1__Impl rule__XCatchClause__Group__2
             {
-            pushFollow(FOLLOW_47);
+            pushFollow(FOLLOW_52);
             rule__XCatchClause__Group__1__Impl();
 
             state._fsp--;
@@ -50990,22 +51775,22 @@
 
 
     // $ANTLR start "rule__XCatchClause__Group__1__Impl"
-    // InternalSignalDSL.g:15397:1: rule__XCatchClause__Group__1__Impl : ( '(' ) ;
+    // InternalSignalDSL.g:15660:1: rule__XCatchClause__Group__1__Impl : ( '(' ) ;
     public final void rule__XCatchClause__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:15401:1: ( ( '(' ) )
-            // InternalSignalDSL.g:15402:1: ( '(' )
+            // InternalSignalDSL.g:15664:1: ( ( '(' ) )
+            // InternalSignalDSL.g:15665:1: ( '(' )
             {
-            // InternalSignalDSL.g:15402:1: ( '(' )
-            // InternalSignalDSL.g:15403:2: '('
+            // InternalSignalDSL.g:15665:1: ( '(' )
+            // InternalSignalDSL.g:15666:2: '('
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCatchClauseAccess().getLeftParenthesisKeyword_1()); 
             }
-            match(input,76,FOLLOW_2); if (state.failed) return ;
+            match(input,74,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXCatchClauseAccess().getLeftParenthesisKeyword_1()); 
             }
@@ -51031,16 +51816,16 @@
 
 
     // $ANTLR start "rule__XCatchClause__Group__2"
-    // InternalSignalDSL.g:15412:1: rule__XCatchClause__Group__2 : rule__XCatchClause__Group__2__Impl rule__XCatchClause__Group__3 ;
+    // InternalSignalDSL.g:15675: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:15416:1: ( rule__XCatchClause__Group__2__Impl rule__XCatchClause__Group__3 )
-            // InternalSignalDSL.g:15417:2: rule__XCatchClause__Group__2__Impl rule__XCatchClause__Group__3
+            // InternalSignalDSL.g:15679:1: ( rule__XCatchClause__Group__2__Impl rule__XCatchClause__Group__3 )
+            // InternalSignalDSL.g:15680:2: rule__XCatchClause__Group__2__Impl rule__XCatchClause__Group__3
             {
-            pushFollow(FOLLOW_75);
+            pushFollow(FOLLOW_80);
             rule__XCatchClause__Group__2__Impl();
 
             state._fsp--;
@@ -51069,23 +51854,23 @@
 
 
     // $ANTLR start "rule__XCatchClause__Group__2__Impl"
-    // InternalSignalDSL.g:15424:1: rule__XCatchClause__Group__2__Impl : ( ( rule__XCatchClause__DeclaredParamAssignment_2 ) ) ;
+    // InternalSignalDSL.g:15687: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:15428:1: ( ( ( rule__XCatchClause__DeclaredParamAssignment_2 ) ) )
-            // InternalSignalDSL.g:15429:1: ( ( rule__XCatchClause__DeclaredParamAssignment_2 ) )
+            // InternalSignalDSL.g:15691:1: ( ( ( rule__XCatchClause__DeclaredParamAssignment_2 ) ) )
+            // InternalSignalDSL.g:15692:1: ( ( rule__XCatchClause__DeclaredParamAssignment_2 ) )
             {
-            // InternalSignalDSL.g:15429:1: ( ( rule__XCatchClause__DeclaredParamAssignment_2 ) )
-            // InternalSignalDSL.g:15430:2: ( rule__XCatchClause__DeclaredParamAssignment_2 )
+            // InternalSignalDSL.g:15692:1: ( ( rule__XCatchClause__DeclaredParamAssignment_2 ) )
+            // InternalSignalDSL.g:15693:2: ( rule__XCatchClause__DeclaredParamAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCatchClauseAccess().getDeclaredParamAssignment_2()); 
             }
-            // InternalSignalDSL.g:15431:2: ( rule__XCatchClause__DeclaredParamAssignment_2 )
-            // InternalSignalDSL.g:15431:3: rule__XCatchClause__DeclaredParamAssignment_2
+            // InternalSignalDSL.g:15694:2: ( rule__XCatchClause__DeclaredParamAssignment_2 )
+            // InternalSignalDSL.g:15694:3: rule__XCatchClause__DeclaredParamAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__XCatchClause__DeclaredParamAssignment_2();
@@ -51120,16 +51905,16 @@
 
 
     // $ANTLR start "rule__XCatchClause__Group__3"
-    // InternalSignalDSL.g:15439:1: rule__XCatchClause__Group__3 : rule__XCatchClause__Group__3__Impl rule__XCatchClause__Group__4 ;
+    // InternalSignalDSL.g:15702: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:15443:1: ( rule__XCatchClause__Group__3__Impl rule__XCatchClause__Group__4 )
-            // InternalSignalDSL.g:15444:2: rule__XCatchClause__Group__3__Impl rule__XCatchClause__Group__4
+            // InternalSignalDSL.g:15706:1: ( rule__XCatchClause__Group__3__Impl rule__XCatchClause__Group__4 )
+            // InternalSignalDSL.g:15707:2: rule__XCatchClause__Group__3__Impl rule__XCatchClause__Group__4
             {
-            pushFollow(FOLLOW_30);
+            pushFollow(FOLLOW_35);
             rule__XCatchClause__Group__3__Impl();
 
             state._fsp--;
@@ -51158,22 +51943,22 @@
 
 
     // $ANTLR start "rule__XCatchClause__Group__3__Impl"
-    // InternalSignalDSL.g:15451:1: rule__XCatchClause__Group__3__Impl : ( ')' ) ;
+    // InternalSignalDSL.g:15714:1: rule__XCatchClause__Group__3__Impl : ( ')' ) ;
     public final void rule__XCatchClause__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:15455:1: ( ( ')' ) )
-            // InternalSignalDSL.g:15456:1: ( ')' )
+            // InternalSignalDSL.g:15718:1: ( ( ')' ) )
+            // InternalSignalDSL.g:15719:1: ( ')' )
             {
-            // InternalSignalDSL.g:15456:1: ( ')' )
-            // InternalSignalDSL.g:15457:2: ')'
+            // InternalSignalDSL.g:15719:1: ( ')' )
+            // InternalSignalDSL.g:15720:2: ')'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCatchClauseAccess().getRightParenthesisKeyword_3()); 
             }
-            match(input,77,FOLLOW_2); if (state.failed) return ;
+            match(input,75,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXCatchClauseAccess().getRightParenthesisKeyword_3()); 
             }
@@ -51199,14 +51984,14 @@
 
 
     // $ANTLR start "rule__XCatchClause__Group__4"
-    // InternalSignalDSL.g:15466:1: rule__XCatchClause__Group__4 : rule__XCatchClause__Group__4__Impl ;
+    // InternalSignalDSL.g:15729: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:15470:1: ( rule__XCatchClause__Group__4__Impl )
-            // InternalSignalDSL.g:15471:2: rule__XCatchClause__Group__4__Impl
+            // InternalSignalDSL.g:15733:1: ( rule__XCatchClause__Group__4__Impl )
+            // InternalSignalDSL.g:15734:2: rule__XCatchClause__Group__4__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XCatchClause__Group__4__Impl();
@@ -51232,23 +52017,23 @@
 
 
     // $ANTLR start "rule__XCatchClause__Group__4__Impl"
-    // InternalSignalDSL.g:15477:1: rule__XCatchClause__Group__4__Impl : ( ( rule__XCatchClause__ExpressionAssignment_4 ) ) ;
+    // InternalSignalDSL.g:15740: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:15481:1: ( ( ( rule__XCatchClause__ExpressionAssignment_4 ) ) )
-            // InternalSignalDSL.g:15482:1: ( ( rule__XCatchClause__ExpressionAssignment_4 ) )
+            // InternalSignalDSL.g:15744:1: ( ( ( rule__XCatchClause__ExpressionAssignment_4 ) ) )
+            // InternalSignalDSL.g:15745:1: ( ( rule__XCatchClause__ExpressionAssignment_4 ) )
             {
-            // InternalSignalDSL.g:15482:1: ( ( rule__XCatchClause__ExpressionAssignment_4 ) )
-            // InternalSignalDSL.g:15483:2: ( rule__XCatchClause__ExpressionAssignment_4 )
+            // InternalSignalDSL.g:15745:1: ( ( rule__XCatchClause__ExpressionAssignment_4 ) )
+            // InternalSignalDSL.g:15746:2: ( rule__XCatchClause__ExpressionAssignment_4 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCatchClauseAccess().getExpressionAssignment_4()); 
             }
-            // InternalSignalDSL.g:15484:2: ( rule__XCatchClause__ExpressionAssignment_4 )
-            // InternalSignalDSL.g:15484:3: rule__XCatchClause__ExpressionAssignment_4
+            // InternalSignalDSL.g:15747:2: ( rule__XCatchClause__ExpressionAssignment_4 )
+            // InternalSignalDSL.g:15747:3: rule__XCatchClause__ExpressionAssignment_4
             {
             pushFollow(FOLLOW_2);
             rule__XCatchClause__ExpressionAssignment_4();
@@ -51283,16 +52068,16 @@
 
 
     // $ANTLR start "rule__QualifiedName__Group__0"
-    // InternalSignalDSL.g:15493:1: rule__QualifiedName__Group__0 : rule__QualifiedName__Group__0__Impl rule__QualifiedName__Group__1 ;
+    // InternalSignalDSL.g:15756: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:15497:1: ( rule__QualifiedName__Group__0__Impl rule__QualifiedName__Group__1 )
-            // InternalSignalDSL.g:15498:2: rule__QualifiedName__Group__0__Impl rule__QualifiedName__Group__1
+            // InternalSignalDSL.g:15760:1: ( rule__QualifiedName__Group__0__Impl rule__QualifiedName__Group__1 )
+            // InternalSignalDSL.g:15761:2: rule__QualifiedName__Group__0__Impl rule__QualifiedName__Group__1
             {
-            pushFollow(FOLLOW_106);
+            pushFollow(FOLLOW_111);
             rule__QualifiedName__Group__0__Impl();
 
             state._fsp--;
@@ -51321,17 +52106,17 @@
 
 
     // $ANTLR start "rule__QualifiedName__Group__0__Impl"
-    // InternalSignalDSL.g:15505:1: rule__QualifiedName__Group__0__Impl : ( ruleValidID ) ;
+    // InternalSignalDSL.g:15768:1: rule__QualifiedName__Group__0__Impl : ( ruleValidID ) ;
     public final void rule__QualifiedName__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:15509:1: ( ( ruleValidID ) )
-            // InternalSignalDSL.g:15510:1: ( ruleValidID )
+            // InternalSignalDSL.g:15772:1: ( ( ruleValidID ) )
+            // InternalSignalDSL.g:15773:1: ( ruleValidID )
             {
-            // InternalSignalDSL.g:15510:1: ( ruleValidID )
-            // InternalSignalDSL.g:15511:2: ruleValidID
+            // InternalSignalDSL.g:15773:1: ( ruleValidID )
+            // InternalSignalDSL.g:15774:2: ruleValidID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getQualifiedNameAccess().getValidIDParserRuleCall_0()); 
@@ -51366,14 +52151,14 @@
 
 
     // $ANTLR start "rule__QualifiedName__Group__1"
-    // InternalSignalDSL.g:15520:1: rule__QualifiedName__Group__1 : rule__QualifiedName__Group__1__Impl ;
+    // InternalSignalDSL.g:15783: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:15524:1: ( rule__QualifiedName__Group__1__Impl )
-            // InternalSignalDSL.g:15525:2: rule__QualifiedName__Group__1__Impl
+            // InternalSignalDSL.g:15787:1: ( rule__QualifiedName__Group__1__Impl )
+            // InternalSignalDSL.g:15788:2: rule__QualifiedName__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__QualifiedName__Group__1__Impl();
@@ -51399,35 +52184,35 @@
 
 
     // $ANTLR start "rule__QualifiedName__Group__1__Impl"
-    // InternalSignalDSL.g:15531:1: rule__QualifiedName__Group__1__Impl : ( ( rule__QualifiedName__Group_1__0 )* ) ;
+    // InternalSignalDSL.g:15794: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:15535:1: ( ( ( rule__QualifiedName__Group_1__0 )* ) )
-            // InternalSignalDSL.g:15536:1: ( ( rule__QualifiedName__Group_1__0 )* )
+            // InternalSignalDSL.g:15798:1: ( ( ( rule__QualifiedName__Group_1__0 )* ) )
+            // InternalSignalDSL.g:15799:1: ( ( rule__QualifiedName__Group_1__0 )* )
             {
-            // InternalSignalDSL.g:15536:1: ( ( rule__QualifiedName__Group_1__0 )* )
-            // InternalSignalDSL.g:15537:2: ( rule__QualifiedName__Group_1__0 )*
+            // InternalSignalDSL.g:15799:1: ( ( rule__QualifiedName__Group_1__0 )* )
+            // InternalSignalDSL.g:15800:2: ( rule__QualifiedName__Group_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getQualifiedNameAccess().getGroup_1()); 
             }
-            // InternalSignalDSL.g:15538:2: ( rule__QualifiedName__Group_1__0 )*
-            loop125:
+            // InternalSignalDSL.g:15801:2: ( rule__QualifiedName__Group_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==43) ) {
-                    int LA125_2 = input.LA(2);
+                if ( (LA128_0==43) ) {
+                    int LA128_2 = input.LA(2);
 
-                    if ( (LA125_2==RULE_ID) ) {
-                        int LA125_3 = input.LA(3);
+                    if ( (LA128_2==RULE_ID) ) {
+                        int LA128_3 = input.LA(3);
 
-                        if ( (synpred179_InternalSignalDSL()) ) {
-                            alt125=1;
+                        if ( (synpred176_InternalSignalDSL()) ) {
+                            alt128=1;
                         }
 
 
@@ -51437,11 +52222,11 @@
                 }
 
 
-                switch (alt125) {
+                switch (alt128) {
             	case 1 :
-            	    // InternalSignalDSL.g:15538:3: rule__QualifiedName__Group_1__0
+            	    // InternalSignalDSL.g:15801:3: rule__QualifiedName__Group_1__0
             	    {
-            	    pushFollow(FOLLOW_107);
+            	    pushFollow(FOLLOW_112);
             	    rule__QualifiedName__Group_1__0();
 
             	    state._fsp--;
@@ -51451,7 +52236,7 @@
             	    break;
 
             	default :
-            	    break loop125;
+            	    break loop128;
                 }
             } while (true);
 
@@ -51480,14 +52265,14 @@
 
 
     // $ANTLR start "rule__QualifiedName__Group_1__0"
-    // InternalSignalDSL.g:15547:1: rule__QualifiedName__Group_1__0 : rule__QualifiedName__Group_1__0__Impl rule__QualifiedName__Group_1__1 ;
+    // InternalSignalDSL.g:15810: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:15551:1: ( rule__QualifiedName__Group_1__0__Impl rule__QualifiedName__Group_1__1 )
-            // InternalSignalDSL.g:15552:2: rule__QualifiedName__Group_1__0__Impl rule__QualifiedName__Group_1__1
+            // InternalSignalDSL.g:15814:1: ( rule__QualifiedName__Group_1__0__Impl rule__QualifiedName__Group_1__1 )
+            // InternalSignalDSL.g:15815:2: rule__QualifiedName__Group_1__0__Impl rule__QualifiedName__Group_1__1
             {
             pushFollow(FOLLOW_7);
             rule__QualifiedName__Group_1__0__Impl();
@@ -51518,23 +52303,23 @@
 
 
     // $ANTLR start "rule__QualifiedName__Group_1__0__Impl"
-    // InternalSignalDSL.g:15559:1: rule__QualifiedName__Group_1__0__Impl : ( ( '.' ) ) ;
+    // InternalSignalDSL.g:15822:1: rule__QualifiedName__Group_1__0__Impl : ( ( '.' ) ) ;
     public final void rule__QualifiedName__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:15563:1: ( ( ( '.' ) ) )
-            // InternalSignalDSL.g:15564:1: ( ( '.' ) )
+            // InternalSignalDSL.g:15826:1: ( ( ( '.' ) ) )
+            // InternalSignalDSL.g:15827:1: ( ( '.' ) )
             {
-            // InternalSignalDSL.g:15564:1: ( ( '.' ) )
-            // InternalSignalDSL.g:15565:2: ( '.' )
+            // InternalSignalDSL.g:15827:1: ( ( '.' ) )
+            // InternalSignalDSL.g:15828:2: ( '.' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getQualifiedNameAccess().getFullStopKeyword_1_0()); 
             }
-            // InternalSignalDSL.g:15566:2: ( '.' )
-            // InternalSignalDSL.g:15566:3: '.'
+            // InternalSignalDSL.g:15829:2: ( '.' )
+            // InternalSignalDSL.g:15829:3: '.'
             {
             match(input,43,FOLLOW_2); if (state.failed) return ;
 
@@ -51565,14 +52350,14 @@
 
 
     // $ANTLR start "rule__QualifiedName__Group_1__1"
-    // InternalSignalDSL.g:15574:1: rule__QualifiedName__Group_1__1 : rule__QualifiedName__Group_1__1__Impl ;
+    // InternalSignalDSL.g:15837: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:15578:1: ( rule__QualifiedName__Group_1__1__Impl )
-            // InternalSignalDSL.g:15579:2: rule__QualifiedName__Group_1__1__Impl
+            // InternalSignalDSL.g:15841:1: ( rule__QualifiedName__Group_1__1__Impl )
+            // InternalSignalDSL.g:15842:2: rule__QualifiedName__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__QualifiedName__Group_1__1__Impl();
@@ -51598,17 +52383,17 @@
 
 
     // $ANTLR start "rule__QualifiedName__Group_1__1__Impl"
-    // InternalSignalDSL.g:15585:1: rule__QualifiedName__Group_1__1__Impl : ( ruleValidID ) ;
+    // InternalSignalDSL.g:15848: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:15589:1: ( ( ruleValidID ) )
-            // InternalSignalDSL.g:15590:1: ( ruleValidID )
+            // InternalSignalDSL.g:15852:1: ( ( ruleValidID ) )
+            // InternalSignalDSL.g:15853:1: ( ruleValidID )
             {
-            // InternalSignalDSL.g:15590:1: ( ruleValidID )
-            // InternalSignalDSL.g:15591:2: ruleValidID
+            // InternalSignalDSL.g:15853:1: ( ruleValidID )
+            // InternalSignalDSL.g:15854:2: ruleValidID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getQualifiedNameAccess().getValidIDParserRuleCall_1_1()); 
@@ -51643,16 +52428,16 @@
 
 
     // $ANTLR start "rule__Number__Group_1__0"
-    // InternalSignalDSL.g:15601:1: rule__Number__Group_1__0 : rule__Number__Group_1__0__Impl rule__Number__Group_1__1 ;
+    // InternalSignalDSL.g:15864: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:15605:1: ( rule__Number__Group_1__0__Impl rule__Number__Group_1__1 )
-            // InternalSignalDSL.g:15606:2: rule__Number__Group_1__0__Impl rule__Number__Group_1__1
+            // InternalSignalDSL.g:15868:1: ( rule__Number__Group_1__0__Impl rule__Number__Group_1__1 )
+            // InternalSignalDSL.g:15869:2: rule__Number__Group_1__0__Impl rule__Number__Group_1__1
             {
-            pushFollow(FOLLOW_106);
+            pushFollow(FOLLOW_111);
             rule__Number__Group_1__0__Impl();
 
             state._fsp--;
@@ -51681,23 +52466,23 @@
 
 
     // $ANTLR start "rule__Number__Group_1__0__Impl"
-    // InternalSignalDSL.g:15613:1: rule__Number__Group_1__0__Impl : ( ( rule__Number__Alternatives_1_0 ) ) ;
+    // InternalSignalDSL.g:15876: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:15617:1: ( ( ( rule__Number__Alternatives_1_0 ) ) )
-            // InternalSignalDSL.g:15618:1: ( ( rule__Number__Alternatives_1_0 ) )
+            // InternalSignalDSL.g:15880:1: ( ( ( rule__Number__Alternatives_1_0 ) ) )
+            // InternalSignalDSL.g:15881:1: ( ( rule__Number__Alternatives_1_0 ) )
             {
-            // InternalSignalDSL.g:15618:1: ( ( rule__Number__Alternatives_1_0 ) )
-            // InternalSignalDSL.g:15619:2: ( rule__Number__Alternatives_1_0 )
+            // InternalSignalDSL.g:15881:1: ( ( rule__Number__Alternatives_1_0 ) )
+            // InternalSignalDSL.g:15882:2: ( rule__Number__Alternatives_1_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getNumberAccess().getAlternatives_1_0()); 
             }
-            // InternalSignalDSL.g:15620:2: ( rule__Number__Alternatives_1_0 )
-            // InternalSignalDSL.g:15620:3: rule__Number__Alternatives_1_0
+            // InternalSignalDSL.g:15883:2: ( rule__Number__Alternatives_1_0 )
+            // InternalSignalDSL.g:15883:3: rule__Number__Alternatives_1_0
             {
             pushFollow(FOLLOW_2);
             rule__Number__Alternatives_1_0();
@@ -51732,14 +52517,14 @@
 
 
     // $ANTLR start "rule__Number__Group_1__1"
-    // InternalSignalDSL.g:15628:1: rule__Number__Group_1__1 : rule__Number__Group_1__1__Impl ;
+    // InternalSignalDSL.g:15891: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:15632:1: ( rule__Number__Group_1__1__Impl )
-            // InternalSignalDSL.g:15633:2: rule__Number__Group_1__1__Impl
+            // InternalSignalDSL.g:15895:1: ( rule__Number__Group_1__1__Impl )
+            // InternalSignalDSL.g:15896:2: rule__Number__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__Number__Group_1__1__Impl();
@@ -51765,35 +52550,35 @@
 
 
     // $ANTLR start "rule__Number__Group_1__1__Impl"
-    // InternalSignalDSL.g:15639:1: rule__Number__Group_1__1__Impl : ( ( rule__Number__Group_1_1__0 )? ) ;
+    // InternalSignalDSL.g:15902: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:15643:1: ( ( ( rule__Number__Group_1_1__0 )? ) )
-            // InternalSignalDSL.g:15644:1: ( ( rule__Number__Group_1_1__0 )? )
+            // InternalSignalDSL.g:15906:1: ( ( ( rule__Number__Group_1_1__0 )? ) )
+            // InternalSignalDSL.g:15907:1: ( ( rule__Number__Group_1_1__0 )? )
             {
-            // InternalSignalDSL.g:15644:1: ( ( rule__Number__Group_1_1__0 )? )
-            // InternalSignalDSL.g:15645:2: ( rule__Number__Group_1_1__0 )?
+            // InternalSignalDSL.g:15907:1: ( ( rule__Number__Group_1_1__0 )? )
+            // InternalSignalDSL.g:15908:2: ( rule__Number__Group_1_1__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getNumberAccess().getGroup_1_1()); 
             }
-            // InternalSignalDSL.g:15646:2: ( rule__Number__Group_1_1__0 )?
-            int alt126=2;
-            int LA126_0 = input.LA(1);
+            // InternalSignalDSL.g:15909:2: ( rule__Number__Group_1_1__0 )?
+            int alt129=2;
+            int LA129_0 = input.LA(1);
 
-            if ( (LA126_0==43) ) {
-                int LA126_1 = input.LA(2);
+            if ( (LA129_0==43) ) {
+                int LA129_1 = input.LA(2);
 
-                if ( ((LA126_1>=RULE_INT && LA126_1<=RULE_DECIMAL)) ) {
-                    alt126=1;
+                if ( ((LA129_1>=RULE_INT && LA129_1<=RULE_DECIMAL)) ) {
+                    alt129=1;
                 }
             }
-            switch (alt126) {
+            switch (alt129) {
                 case 1 :
-                    // InternalSignalDSL.g:15646:3: rule__Number__Group_1_1__0
+                    // InternalSignalDSL.g:15909:3: rule__Number__Group_1_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__Number__Group_1_1__0();
@@ -51831,16 +52616,16 @@
 
 
     // $ANTLR start "rule__Number__Group_1_1__0"
-    // InternalSignalDSL.g:15655:1: rule__Number__Group_1_1__0 : rule__Number__Group_1_1__0__Impl rule__Number__Group_1_1__1 ;
+    // InternalSignalDSL.g:15918: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:15659:1: ( rule__Number__Group_1_1__0__Impl rule__Number__Group_1_1__1 )
-            // InternalSignalDSL.g:15660:2: rule__Number__Group_1_1__0__Impl rule__Number__Group_1_1__1
+            // InternalSignalDSL.g:15922:1: ( rule__Number__Group_1_1__0__Impl rule__Number__Group_1_1__1 )
+            // InternalSignalDSL.g:15923:2: rule__Number__Group_1_1__0__Impl rule__Number__Group_1_1__1
             {
-            pushFollow(FOLLOW_108);
+            pushFollow(FOLLOW_113);
             rule__Number__Group_1_1__0__Impl();
 
             state._fsp--;
@@ -51869,17 +52654,17 @@
 
 
     // $ANTLR start "rule__Number__Group_1_1__0__Impl"
-    // InternalSignalDSL.g:15667:1: rule__Number__Group_1_1__0__Impl : ( '.' ) ;
+    // InternalSignalDSL.g:15930: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:15671:1: ( ( '.' ) )
-            // InternalSignalDSL.g:15672:1: ( '.' )
+            // InternalSignalDSL.g:15934:1: ( ( '.' ) )
+            // InternalSignalDSL.g:15935:1: ( '.' )
             {
-            // InternalSignalDSL.g:15672:1: ( '.' )
-            // InternalSignalDSL.g:15673:2: '.'
+            // InternalSignalDSL.g:15935:1: ( '.' )
+            // InternalSignalDSL.g:15936:2: '.'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getNumberAccess().getFullStopKeyword_1_1_0()); 
@@ -51910,14 +52695,14 @@
 
 
     // $ANTLR start "rule__Number__Group_1_1__1"
-    // InternalSignalDSL.g:15682:1: rule__Number__Group_1_1__1 : rule__Number__Group_1_1__1__Impl ;
+    // InternalSignalDSL.g:15945: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:15686:1: ( rule__Number__Group_1_1__1__Impl )
-            // InternalSignalDSL.g:15687:2: rule__Number__Group_1_1__1__Impl
+            // InternalSignalDSL.g:15949:1: ( rule__Number__Group_1_1__1__Impl )
+            // InternalSignalDSL.g:15950:2: rule__Number__Group_1_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__Number__Group_1_1__1__Impl();
@@ -51943,23 +52728,23 @@
 
 
     // $ANTLR start "rule__Number__Group_1_1__1__Impl"
-    // InternalSignalDSL.g:15693:1: rule__Number__Group_1_1__1__Impl : ( ( rule__Number__Alternatives_1_1_1 ) ) ;
+    // InternalSignalDSL.g:15956: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:15697:1: ( ( ( rule__Number__Alternatives_1_1_1 ) ) )
-            // InternalSignalDSL.g:15698:1: ( ( rule__Number__Alternatives_1_1_1 ) )
+            // InternalSignalDSL.g:15960:1: ( ( ( rule__Number__Alternatives_1_1_1 ) ) )
+            // InternalSignalDSL.g:15961:1: ( ( rule__Number__Alternatives_1_1_1 ) )
             {
-            // InternalSignalDSL.g:15698:1: ( ( rule__Number__Alternatives_1_1_1 ) )
-            // InternalSignalDSL.g:15699:2: ( rule__Number__Alternatives_1_1_1 )
+            // InternalSignalDSL.g:15961:1: ( ( rule__Number__Alternatives_1_1_1 ) )
+            // InternalSignalDSL.g:15962:2: ( rule__Number__Alternatives_1_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getNumberAccess().getAlternatives_1_1_1()); 
             }
-            // InternalSignalDSL.g:15700:2: ( rule__Number__Alternatives_1_1_1 )
-            // InternalSignalDSL.g:15700:3: rule__Number__Alternatives_1_1_1
+            // InternalSignalDSL.g:15963:2: ( rule__Number__Alternatives_1_1_1 )
+            // InternalSignalDSL.g:15963:3: rule__Number__Alternatives_1_1_1
             {
             pushFollow(FOLLOW_2);
             rule__Number__Alternatives_1_1_1();
@@ -51994,16 +52779,16 @@
 
 
     // $ANTLR start "rule__JvmTypeReference__Group_0__0"
-    // InternalSignalDSL.g:15709:1: rule__JvmTypeReference__Group_0__0 : rule__JvmTypeReference__Group_0__0__Impl rule__JvmTypeReference__Group_0__1 ;
+    // InternalSignalDSL.g:15972: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:15713:1: ( rule__JvmTypeReference__Group_0__0__Impl rule__JvmTypeReference__Group_0__1 )
-            // InternalSignalDSL.g:15714:2: rule__JvmTypeReference__Group_0__0__Impl rule__JvmTypeReference__Group_0__1
+            // InternalSignalDSL.g:15976:1: ( rule__JvmTypeReference__Group_0__0__Impl rule__JvmTypeReference__Group_0__1 )
+            // InternalSignalDSL.g:15977:2: rule__JvmTypeReference__Group_0__0__Impl rule__JvmTypeReference__Group_0__1
             {
-            pushFollow(FOLLOW_34);
+            pushFollow(FOLLOW_39);
             rule__JvmTypeReference__Group_0__0__Impl();
 
             state._fsp--;
@@ -52032,17 +52817,17 @@
 
 
     // $ANTLR start "rule__JvmTypeReference__Group_0__0__Impl"
-    // InternalSignalDSL.g:15721:1: rule__JvmTypeReference__Group_0__0__Impl : ( ruleJvmParameterizedTypeReference ) ;
+    // InternalSignalDSL.g:15984: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:15725:1: ( ( ruleJvmParameterizedTypeReference ) )
-            // InternalSignalDSL.g:15726:1: ( ruleJvmParameterizedTypeReference )
+            // InternalSignalDSL.g:15988:1: ( ( ruleJvmParameterizedTypeReference ) )
+            // InternalSignalDSL.g:15989:1: ( ruleJvmParameterizedTypeReference )
             {
-            // InternalSignalDSL.g:15726:1: ( ruleJvmParameterizedTypeReference )
-            // InternalSignalDSL.g:15727:2: ruleJvmParameterizedTypeReference
+            // InternalSignalDSL.g:15989:1: ( ruleJvmParameterizedTypeReference )
+            // InternalSignalDSL.g:15990:2: ruleJvmParameterizedTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmTypeReferenceAccess().getJvmParameterizedTypeReferenceParserRuleCall_0_0()); 
@@ -52077,14 +52862,14 @@
 
 
     // $ANTLR start "rule__JvmTypeReference__Group_0__1"
-    // InternalSignalDSL.g:15736:1: rule__JvmTypeReference__Group_0__1 : rule__JvmTypeReference__Group_0__1__Impl ;
+    // InternalSignalDSL.g:15999: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:15740:1: ( rule__JvmTypeReference__Group_0__1__Impl )
-            // InternalSignalDSL.g:15741:2: rule__JvmTypeReference__Group_0__1__Impl
+            // InternalSignalDSL.g:16003:1: ( rule__JvmTypeReference__Group_0__1__Impl )
+            // InternalSignalDSL.g:16004:2: rule__JvmTypeReference__Group_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__JvmTypeReference__Group_0__1__Impl();
@@ -52110,35 +52895,35 @@
 
 
     // $ANTLR start "rule__JvmTypeReference__Group_0__1__Impl"
-    // InternalSignalDSL.g:15747:1: rule__JvmTypeReference__Group_0__1__Impl : ( ( rule__JvmTypeReference__Group_0_1__0 )* ) ;
+    // InternalSignalDSL.g:16010: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:15751:1: ( ( ( rule__JvmTypeReference__Group_0_1__0 )* ) )
-            // InternalSignalDSL.g:15752:1: ( ( rule__JvmTypeReference__Group_0_1__0 )* )
+            // InternalSignalDSL.g:16014:1: ( ( ( rule__JvmTypeReference__Group_0_1__0 )* ) )
+            // InternalSignalDSL.g:16015:1: ( ( rule__JvmTypeReference__Group_0_1__0 )* )
             {
-            // InternalSignalDSL.g:15752:1: ( ( rule__JvmTypeReference__Group_0_1__0 )* )
-            // InternalSignalDSL.g:15753:2: ( rule__JvmTypeReference__Group_0_1__0 )*
+            // InternalSignalDSL.g:16015:1: ( ( rule__JvmTypeReference__Group_0_1__0 )* )
+            // InternalSignalDSL.g:16016:2: ( rule__JvmTypeReference__Group_0_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmTypeReferenceAccess().getGroup_0_1()); 
             }
-            // InternalSignalDSL.g:15754:2: ( rule__JvmTypeReference__Group_0_1__0 )*
-            loop127:
+            // InternalSignalDSL.g:16017:2: ( rule__JvmTypeReference__Group_0_1__0 )*
+            loop130:
             do {
-                int alt127=2;
-                int LA127_0 = input.LA(1);
+                int alt130=2;
+                int LA130_0 = input.LA(1);
 
-                if ( (LA127_0==81) ) {
-                    int LA127_2 = input.LA(2);
+                if ( (LA130_0==79) ) {
+                    int LA130_2 = input.LA(2);
 
-                    if ( (LA127_2==79) ) {
-                        int LA127_3 = input.LA(3);
+                    if ( (LA130_2==77) ) {
+                        int LA130_3 = input.LA(3);
 
-                        if ( (synpred181_InternalSignalDSL()) ) {
-                            alt127=1;
+                        if ( (synpred178_InternalSignalDSL()) ) {
+                            alt130=1;
                         }
 
 
@@ -52148,11 +52933,11 @@
                 }
 
 
-                switch (alt127) {
+                switch (alt130) {
             	case 1 :
-            	    // InternalSignalDSL.g:15754:3: rule__JvmTypeReference__Group_0_1__0
+            	    // InternalSignalDSL.g:16017:3: rule__JvmTypeReference__Group_0_1__0
             	    {
-            	    pushFollow(FOLLOW_98);
+            	    pushFollow(FOLLOW_103);
             	    rule__JvmTypeReference__Group_0_1__0();
 
             	    state._fsp--;
@@ -52162,7 +52947,7 @@
             	    break;
 
             	default :
-            	    break loop127;
+            	    break loop130;
                 }
             } while (true);
 
@@ -52191,14 +52976,14 @@
 
 
     // $ANTLR start "rule__JvmTypeReference__Group_0_1__0"
-    // InternalSignalDSL.g:15763:1: rule__JvmTypeReference__Group_0_1__0 : rule__JvmTypeReference__Group_0_1__0__Impl ;
+    // InternalSignalDSL.g:16026: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:15767:1: ( rule__JvmTypeReference__Group_0_1__0__Impl )
-            // InternalSignalDSL.g:15768:2: rule__JvmTypeReference__Group_0_1__0__Impl
+            // InternalSignalDSL.g:16030:1: ( rule__JvmTypeReference__Group_0_1__0__Impl )
+            // InternalSignalDSL.g:16031:2: rule__JvmTypeReference__Group_0_1__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__JvmTypeReference__Group_0_1__0__Impl();
@@ -52224,23 +53009,23 @@
 
 
     // $ANTLR start "rule__JvmTypeReference__Group_0_1__0__Impl"
-    // InternalSignalDSL.g:15774:1: rule__JvmTypeReference__Group_0_1__0__Impl : ( ( rule__JvmTypeReference__Group_0_1_0__0 ) ) ;
+    // InternalSignalDSL.g:16037: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:15778:1: ( ( ( rule__JvmTypeReference__Group_0_1_0__0 ) ) )
-            // InternalSignalDSL.g:15779:1: ( ( rule__JvmTypeReference__Group_0_1_0__0 ) )
+            // InternalSignalDSL.g:16041:1: ( ( ( rule__JvmTypeReference__Group_0_1_0__0 ) ) )
+            // InternalSignalDSL.g:16042:1: ( ( rule__JvmTypeReference__Group_0_1_0__0 ) )
             {
-            // InternalSignalDSL.g:15779:1: ( ( rule__JvmTypeReference__Group_0_1_0__0 ) )
-            // InternalSignalDSL.g:15780:2: ( rule__JvmTypeReference__Group_0_1_0__0 )
+            // InternalSignalDSL.g:16042:1: ( ( rule__JvmTypeReference__Group_0_1_0__0 ) )
+            // InternalSignalDSL.g:16043:2: ( rule__JvmTypeReference__Group_0_1_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmTypeReferenceAccess().getGroup_0_1_0()); 
             }
-            // InternalSignalDSL.g:15781:2: ( rule__JvmTypeReference__Group_0_1_0__0 )
-            // InternalSignalDSL.g:15781:3: rule__JvmTypeReference__Group_0_1_0__0
+            // InternalSignalDSL.g:16044:2: ( rule__JvmTypeReference__Group_0_1_0__0 )
+            // InternalSignalDSL.g:16044:3: rule__JvmTypeReference__Group_0_1_0__0
             {
             pushFollow(FOLLOW_2);
             rule__JvmTypeReference__Group_0_1_0__0();
@@ -52275,16 +53060,16 @@
 
 
     // $ANTLR start "rule__JvmTypeReference__Group_0_1_0__0"
-    // InternalSignalDSL.g:15790: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:16053: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:15794:1: ( rule__JvmTypeReference__Group_0_1_0__0__Impl rule__JvmTypeReference__Group_0_1_0__1 )
-            // InternalSignalDSL.g:15795:2: rule__JvmTypeReference__Group_0_1_0__0__Impl rule__JvmTypeReference__Group_0_1_0__1
+            // InternalSignalDSL.g:16057:1: ( rule__JvmTypeReference__Group_0_1_0__0__Impl rule__JvmTypeReference__Group_0_1_0__1 )
+            // InternalSignalDSL.g:16058:2: rule__JvmTypeReference__Group_0_1_0__0__Impl rule__JvmTypeReference__Group_0_1_0__1
             {
-            pushFollow(FOLLOW_34);
+            pushFollow(FOLLOW_39);
             rule__JvmTypeReference__Group_0_1_0__0__Impl();
 
             state._fsp--;
@@ -52313,23 +53098,23 @@
 
 
     // $ANTLR start "rule__JvmTypeReference__Group_0_1_0__0__Impl"
-    // InternalSignalDSL.g:15802:1: rule__JvmTypeReference__Group_0_1_0__0__Impl : ( () ) ;
+    // InternalSignalDSL.g:16065: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:15806:1: ( ( () ) )
-            // InternalSignalDSL.g:15807:1: ( () )
+            // InternalSignalDSL.g:16069:1: ( ( () ) )
+            // InternalSignalDSL.g:16070:1: ( () )
             {
-            // InternalSignalDSL.g:15807:1: ( () )
-            // InternalSignalDSL.g:15808:2: ()
+            // InternalSignalDSL.g:16070:1: ( () )
+            // InternalSignalDSL.g:16071:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmTypeReferenceAccess().getJvmGenericArrayTypeReferenceComponentTypeAction_0_1_0_0()); 
             }
-            // InternalSignalDSL.g:15809:2: ()
-            // InternalSignalDSL.g:15809:3: 
+            // InternalSignalDSL.g:16072:2: ()
+            // InternalSignalDSL.g:16072:3: 
             {
             }
 
@@ -52354,14 +53139,14 @@
 
 
     // $ANTLR start "rule__JvmTypeReference__Group_0_1_0__1"
-    // InternalSignalDSL.g:15817:1: rule__JvmTypeReference__Group_0_1_0__1 : rule__JvmTypeReference__Group_0_1_0__1__Impl ;
+    // InternalSignalDSL.g:16080: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:15821:1: ( rule__JvmTypeReference__Group_0_1_0__1__Impl )
-            // InternalSignalDSL.g:15822:2: rule__JvmTypeReference__Group_0_1_0__1__Impl
+            // InternalSignalDSL.g:16084:1: ( rule__JvmTypeReference__Group_0_1_0__1__Impl )
+            // InternalSignalDSL.g:16085:2: rule__JvmTypeReference__Group_0_1_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__JvmTypeReference__Group_0_1_0__1__Impl();
@@ -52387,17 +53172,17 @@
 
 
     // $ANTLR start "rule__JvmTypeReference__Group_0_1_0__1__Impl"
-    // InternalSignalDSL.g:15828:1: rule__JvmTypeReference__Group_0_1_0__1__Impl : ( ruleArrayBrackets ) ;
+    // InternalSignalDSL.g:16091: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:15832:1: ( ( ruleArrayBrackets ) )
-            // InternalSignalDSL.g:15833:1: ( ruleArrayBrackets )
+            // InternalSignalDSL.g:16095:1: ( ( ruleArrayBrackets ) )
+            // InternalSignalDSL.g:16096:1: ( ruleArrayBrackets )
             {
-            // InternalSignalDSL.g:15833:1: ( ruleArrayBrackets )
-            // InternalSignalDSL.g:15834:2: ruleArrayBrackets
+            // InternalSignalDSL.g:16096:1: ( ruleArrayBrackets )
+            // InternalSignalDSL.g:16097:2: ruleArrayBrackets
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmTypeReferenceAccess().getArrayBracketsParserRuleCall_0_1_0_1()); 
@@ -52432,16 +53217,16 @@
 
 
     // $ANTLR start "rule__ArrayBrackets__Group__0"
-    // InternalSignalDSL.g:15844:1: rule__ArrayBrackets__Group__0 : rule__ArrayBrackets__Group__0__Impl rule__ArrayBrackets__Group__1 ;
+    // InternalSignalDSL.g:16107: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:15848:1: ( rule__ArrayBrackets__Group__0__Impl rule__ArrayBrackets__Group__1 )
-            // InternalSignalDSL.g:15849:2: rule__ArrayBrackets__Group__0__Impl rule__ArrayBrackets__Group__1
+            // InternalSignalDSL.g:16111:1: ( rule__ArrayBrackets__Group__0__Impl rule__ArrayBrackets__Group__1 )
+            // InternalSignalDSL.g:16112:2: rule__ArrayBrackets__Group__0__Impl rule__ArrayBrackets__Group__1
             {
-            pushFollow(FOLLOW_72);
+            pushFollow(FOLLOW_77);
             rule__ArrayBrackets__Group__0__Impl();
 
             state._fsp--;
@@ -52470,22 +53255,22 @@
 
 
     // $ANTLR start "rule__ArrayBrackets__Group__0__Impl"
-    // InternalSignalDSL.g:15856:1: rule__ArrayBrackets__Group__0__Impl : ( '[' ) ;
+    // InternalSignalDSL.g:16119:1: rule__ArrayBrackets__Group__0__Impl : ( '[' ) ;
     public final void rule__ArrayBrackets__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:15860:1: ( ( '[' ) )
-            // InternalSignalDSL.g:15861:1: ( '[' )
+            // InternalSignalDSL.g:16123:1: ( ( '[' ) )
+            // InternalSignalDSL.g:16124:1: ( '[' )
             {
-            // InternalSignalDSL.g:15861:1: ( '[' )
-            // InternalSignalDSL.g:15862:2: '['
+            // InternalSignalDSL.g:16124:1: ( '[' )
+            // InternalSignalDSL.g:16125:2: '['
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getArrayBracketsAccess().getLeftSquareBracketKeyword_0()); 
             }
-            match(input,81,FOLLOW_2); if (state.failed) return ;
+            match(input,79,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getArrayBracketsAccess().getLeftSquareBracketKeyword_0()); 
             }
@@ -52511,14 +53296,14 @@
 
 
     // $ANTLR start "rule__ArrayBrackets__Group__1"
-    // InternalSignalDSL.g:15871:1: rule__ArrayBrackets__Group__1 : rule__ArrayBrackets__Group__1__Impl ;
+    // InternalSignalDSL.g:16134: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:15875:1: ( rule__ArrayBrackets__Group__1__Impl )
-            // InternalSignalDSL.g:15876:2: rule__ArrayBrackets__Group__1__Impl
+            // InternalSignalDSL.g:16138:1: ( rule__ArrayBrackets__Group__1__Impl )
+            // InternalSignalDSL.g:16139:2: rule__ArrayBrackets__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__ArrayBrackets__Group__1__Impl();
@@ -52544,22 +53329,22 @@
 
 
     // $ANTLR start "rule__ArrayBrackets__Group__1__Impl"
-    // InternalSignalDSL.g:15882:1: rule__ArrayBrackets__Group__1__Impl : ( ']' ) ;
+    // InternalSignalDSL.g:16145:1: rule__ArrayBrackets__Group__1__Impl : ( ']' ) ;
     public final void rule__ArrayBrackets__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:15886:1: ( ( ']' ) )
-            // InternalSignalDSL.g:15887:1: ( ']' )
+            // InternalSignalDSL.g:16149:1: ( ( ']' ) )
+            // InternalSignalDSL.g:16150:1: ( ']' )
             {
-            // InternalSignalDSL.g:15887:1: ( ']' )
-            // InternalSignalDSL.g:15888:2: ']'
+            // InternalSignalDSL.g:16150:1: ( ']' )
+            // InternalSignalDSL.g:16151:2: ']'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getArrayBracketsAccess().getRightSquareBracketKeyword_1()); 
             }
-            match(input,79,FOLLOW_2); if (state.failed) return ;
+            match(input,77,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getArrayBracketsAccess().getRightSquareBracketKeyword_1()); 
             }
@@ -52585,16 +53370,16 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__Group__0"
-    // InternalSignalDSL.g:15898:1: rule__XFunctionTypeRef__Group__0 : rule__XFunctionTypeRef__Group__0__Impl rule__XFunctionTypeRef__Group__1 ;
+    // InternalSignalDSL.g:16161: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:15902:1: ( rule__XFunctionTypeRef__Group__0__Impl rule__XFunctionTypeRef__Group__1 )
-            // InternalSignalDSL.g:15903:2: rule__XFunctionTypeRef__Group__0__Impl rule__XFunctionTypeRef__Group__1
+            // InternalSignalDSL.g:16165:1: ( rule__XFunctionTypeRef__Group__0__Impl rule__XFunctionTypeRef__Group__1 )
+            // InternalSignalDSL.g:16166:2: rule__XFunctionTypeRef__Group__0__Impl rule__XFunctionTypeRef__Group__1
             {
-            pushFollow(FOLLOW_47);
+            pushFollow(FOLLOW_52);
             rule__XFunctionTypeRef__Group__0__Impl();
 
             state._fsp--;
@@ -52623,31 +53408,31 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__Group__0__Impl"
-    // InternalSignalDSL.g:15910:1: rule__XFunctionTypeRef__Group__0__Impl : ( ( rule__XFunctionTypeRef__Group_0__0 )? ) ;
+    // InternalSignalDSL.g:16173: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:15914:1: ( ( ( rule__XFunctionTypeRef__Group_0__0 )? ) )
-            // InternalSignalDSL.g:15915:1: ( ( rule__XFunctionTypeRef__Group_0__0 )? )
+            // InternalSignalDSL.g:16177:1: ( ( ( rule__XFunctionTypeRef__Group_0__0 )? ) )
+            // InternalSignalDSL.g:16178:1: ( ( rule__XFunctionTypeRef__Group_0__0 )? )
             {
-            // InternalSignalDSL.g:15915:1: ( ( rule__XFunctionTypeRef__Group_0__0 )? )
-            // InternalSignalDSL.g:15916:2: ( rule__XFunctionTypeRef__Group_0__0 )?
+            // InternalSignalDSL.g:16178:1: ( ( rule__XFunctionTypeRef__Group_0__0 )? )
+            // InternalSignalDSL.g:16179:2: ( rule__XFunctionTypeRef__Group_0__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFunctionTypeRefAccess().getGroup_0()); 
             }
-            // InternalSignalDSL.g:15917:2: ( rule__XFunctionTypeRef__Group_0__0 )?
-            int alt128=2;
-            int LA128_0 = input.LA(1);
+            // InternalSignalDSL.g:16180:2: ( rule__XFunctionTypeRef__Group_0__0 )?
+            int alt131=2;
+            int LA131_0 = input.LA(1);
 
-            if ( (LA128_0==76) ) {
-                alt128=1;
+            if ( (LA131_0==74) ) {
+                alt131=1;
             }
-            switch (alt128) {
+            switch (alt131) {
                 case 1 :
-                    // InternalSignalDSL.g:15917:3: rule__XFunctionTypeRef__Group_0__0
+                    // InternalSignalDSL.g:16180:3: rule__XFunctionTypeRef__Group_0__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XFunctionTypeRef__Group_0__0();
@@ -52685,16 +53470,16 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__Group__1"
-    // InternalSignalDSL.g:15925:1: rule__XFunctionTypeRef__Group__1 : rule__XFunctionTypeRef__Group__1__Impl rule__XFunctionTypeRef__Group__2 ;
+    // InternalSignalDSL.g:16188: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:15929:1: ( rule__XFunctionTypeRef__Group__1__Impl rule__XFunctionTypeRef__Group__2 )
-            // InternalSignalDSL.g:15930:2: rule__XFunctionTypeRef__Group__1__Impl rule__XFunctionTypeRef__Group__2
+            // InternalSignalDSL.g:16192:1: ( rule__XFunctionTypeRef__Group__1__Impl rule__XFunctionTypeRef__Group__2 )
+            // InternalSignalDSL.g:16193:2: rule__XFunctionTypeRef__Group__1__Impl rule__XFunctionTypeRef__Group__2
             {
-            pushFollow(FOLLOW_47);
+            pushFollow(FOLLOW_52);
             rule__XFunctionTypeRef__Group__1__Impl();
 
             state._fsp--;
@@ -52723,17 +53508,17 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__Group__1__Impl"
-    // InternalSignalDSL.g:15937:1: rule__XFunctionTypeRef__Group__1__Impl : ( '=>' ) ;
+    // InternalSignalDSL.g:16200:1: rule__XFunctionTypeRef__Group__1__Impl : ( '=>' ) ;
     public final void rule__XFunctionTypeRef__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:15941:1: ( ( '=>' ) )
-            // InternalSignalDSL.g:15942:1: ( '=>' )
+            // InternalSignalDSL.g:16204:1: ( ( '=>' ) )
+            // InternalSignalDSL.g:16205:1: ( '=>' )
             {
-            // InternalSignalDSL.g:15942:1: ( '=>' )
-            // InternalSignalDSL.g:15943:2: '=>'
+            // InternalSignalDSL.g:16205:1: ( '=>' )
+            // InternalSignalDSL.g:16206:2: '=>'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFunctionTypeRefAccess().getEqualsSignGreaterThanSignKeyword_1()); 
@@ -52764,14 +53549,14 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__Group__2"
-    // InternalSignalDSL.g:15952:1: rule__XFunctionTypeRef__Group__2 : rule__XFunctionTypeRef__Group__2__Impl ;
+    // InternalSignalDSL.g:16215: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:15956:1: ( rule__XFunctionTypeRef__Group__2__Impl )
-            // InternalSignalDSL.g:15957:2: rule__XFunctionTypeRef__Group__2__Impl
+            // InternalSignalDSL.g:16219:1: ( rule__XFunctionTypeRef__Group__2__Impl )
+            // InternalSignalDSL.g:16220:2: rule__XFunctionTypeRef__Group__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XFunctionTypeRef__Group__2__Impl();
@@ -52797,23 +53582,23 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__Group__2__Impl"
-    // InternalSignalDSL.g:15963:1: rule__XFunctionTypeRef__Group__2__Impl : ( ( rule__XFunctionTypeRef__ReturnTypeAssignment_2 ) ) ;
+    // InternalSignalDSL.g:16226: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:15967:1: ( ( ( rule__XFunctionTypeRef__ReturnTypeAssignment_2 ) ) )
-            // InternalSignalDSL.g:15968:1: ( ( rule__XFunctionTypeRef__ReturnTypeAssignment_2 ) )
+            // InternalSignalDSL.g:16230:1: ( ( ( rule__XFunctionTypeRef__ReturnTypeAssignment_2 ) ) )
+            // InternalSignalDSL.g:16231:1: ( ( rule__XFunctionTypeRef__ReturnTypeAssignment_2 ) )
             {
-            // InternalSignalDSL.g:15968:1: ( ( rule__XFunctionTypeRef__ReturnTypeAssignment_2 ) )
-            // InternalSignalDSL.g:15969:2: ( rule__XFunctionTypeRef__ReturnTypeAssignment_2 )
+            // InternalSignalDSL.g:16231:1: ( ( rule__XFunctionTypeRef__ReturnTypeAssignment_2 ) )
+            // InternalSignalDSL.g:16232:2: ( rule__XFunctionTypeRef__ReturnTypeAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFunctionTypeRefAccess().getReturnTypeAssignment_2()); 
             }
-            // InternalSignalDSL.g:15970:2: ( rule__XFunctionTypeRef__ReturnTypeAssignment_2 )
-            // InternalSignalDSL.g:15970:3: rule__XFunctionTypeRef__ReturnTypeAssignment_2
+            // InternalSignalDSL.g:16233:2: ( rule__XFunctionTypeRef__ReturnTypeAssignment_2 )
+            // InternalSignalDSL.g:16233:3: rule__XFunctionTypeRef__ReturnTypeAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__XFunctionTypeRef__ReturnTypeAssignment_2();
@@ -52848,16 +53633,16 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__Group_0__0"
-    // InternalSignalDSL.g:15979:1: rule__XFunctionTypeRef__Group_0__0 : rule__XFunctionTypeRef__Group_0__0__Impl rule__XFunctionTypeRef__Group_0__1 ;
+    // InternalSignalDSL.g:16242: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:15983:1: ( rule__XFunctionTypeRef__Group_0__0__Impl rule__XFunctionTypeRef__Group_0__1 )
-            // InternalSignalDSL.g:15984:2: rule__XFunctionTypeRef__Group_0__0__Impl rule__XFunctionTypeRef__Group_0__1
+            // InternalSignalDSL.g:16246:1: ( rule__XFunctionTypeRef__Group_0__0__Impl rule__XFunctionTypeRef__Group_0__1 )
+            // InternalSignalDSL.g:16247:2: rule__XFunctionTypeRef__Group_0__0__Impl rule__XFunctionTypeRef__Group_0__1
             {
-            pushFollow(FOLLOW_109);
+            pushFollow(FOLLOW_114);
             rule__XFunctionTypeRef__Group_0__0__Impl();
 
             state._fsp--;
@@ -52886,22 +53671,22 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__Group_0__0__Impl"
-    // InternalSignalDSL.g:15991:1: rule__XFunctionTypeRef__Group_0__0__Impl : ( '(' ) ;
+    // InternalSignalDSL.g:16254:1: rule__XFunctionTypeRef__Group_0__0__Impl : ( '(' ) ;
     public final void rule__XFunctionTypeRef__Group_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:15995:1: ( ( '(' ) )
-            // InternalSignalDSL.g:15996:1: ( '(' )
+            // InternalSignalDSL.g:16258:1: ( ( '(' ) )
+            // InternalSignalDSL.g:16259:1: ( '(' )
             {
-            // InternalSignalDSL.g:15996:1: ( '(' )
-            // InternalSignalDSL.g:15997:2: '('
+            // InternalSignalDSL.g:16259:1: ( '(' )
+            // InternalSignalDSL.g:16260:2: '('
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFunctionTypeRefAccess().getLeftParenthesisKeyword_0_0()); 
             }
-            match(input,76,FOLLOW_2); if (state.failed) return ;
+            match(input,74,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXFunctionTypeRefAccess().getLeftParenthesisKeyword_0_0()); 
             }
@@ -52927,16 +53712,16 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__Group_0__1"
-    // InternalSignalDSL.g:16006:1: rule__XFunctionTypeRef__Group_0__1 : rule__XFunctionTypeRef__Group_0__1__Impl rule__XFunctionTypeRef__Group_0__2 ;
+    // InternalSignalDSL.g:16269: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:16010:1: ( rule__XFunctionTypeRef__Group_0__1__Impl rule__XFunctionTypeRef__Group_0__2 )
-            // InternalSignalDSL.g:16011:2: rule__XFunctionTypeRef__Group_0__1__Impl rule__XFunctionTypeRef__Group_0__2
+            // InternalSignalDSL.g:16273:1: ( rule__XFunctionTypeRef__Group_0__1__Impl rule__XFunctionTypeRef__Group_0__2 )
+            // InternalSignalDSL.g:16274:2: rule__XFunctionTypeRef__Group_0__1__Impl rule__XFunctionTypeRef__Group_0__2
             {
-            pushFollow(FOLLOW_109);
+            pushFollow(FOLLOW_114);
             rule__XFunctionTypeRef__Group_0__1__Impl();
 
             state._fsp--;
@@ -52965,31 +53750,31 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__Group_0__1__Impl"
-    // InternalSignalDSL.g:16018:1: rule__XFunctionTypeRef__Group_0__1__Impl : ( ( rule__XFunctionTypeRef__Group_0_1__0 )? ) ;
+    // InternalSignalDSL.g:16281: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:16022:1: ( ( ( rule__XFunctionTypeRef__Group_0_1__0 )? ) )
-            // InternalSignalDSL.g:16023:1: ( ( rule__XFunctionTypeRef__Group_0_1__0 )? )
+            // InternalSignalDSL.g:16285:1: ( ( ( rule__XFunctionTypeRef__Group_0_1__0 )? ) )
+            // InternalSignalDSL.g:16286:1: ( ( rule__XFunctionTypeRef__Group_0_1__0 )? )
             {
-            // InternalSignalDSL.g:16023:1: ( ( rule__XFunctionTypeRef__Group_0_1__0 )? )
-            // InternalSignalDSL.g:16024:2: ( rule__XFunctionTypeRef__Group_0_1__0 )?
+            // InternalSignalDSL.g:16286:1: ( ( rule__XFunctionTypeRef__Group_0_1__0 )? )
+            // InternalSignalDSL.g:16287:2: ( rule__XFunctionTypeRef__Group_0_1__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFunctionTypeRefAccess().getGroup_0_1()); 
             }
-            // InternalSignalDSL.g:16025:2: ( rule__XFunctionTypeRef__Group_0_1__0 )?
-            int alt129=2;
-            int LA129_0 = input.LA(1);
+            // InternalSignalDSL.g:16288:2: ( rule__XFunctionTypeRef__Group_0_1__0 )?
+            int alt132=2;
+            int LA132_0 = input.LA(1);
 
-            if ( (LA129_0==RULE_ID||LA129_0==31||LA129_0==76) ) {
-                alt129=1;
+            if ( (LA132_0==RULE_ID||LA132_0==31||LA132_0==74) ) {
+                alt132=1;
             }
-            switch (alt129) {
+            switch (alt132) {
                 case 1 :
-                    // InternalSignalDSL.g:16025:3: rule__XFunctionTypeRef__Group_0_1__0
+                    // InternalSignalDSL.g:16288:3: rule__XFunctionTypeRef__Group_0_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XFunctionTypeRef__Group_0_1__0();
@@ -53027,14 +53812,14 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__Group_0__2"
-    // InternalSignalDSL.g:16033:1: rule__XFunctionTypeRef__Group_0__2 : rule__XFunctionTypeRef__Group_0__2__Impl ;
+    // InternalSignalDSL.g:16296: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:16037:1: ( rule__XFunctionTypeRef__Group_0__2__Impl )
-            // InternalSignalDSL.g:16038:2: rule__XFunctionTypeRef__Group_0__2__Impl
+            // InternalSignalDSL.g:16300:1: ( rule__XFunctionTypeRef__Group_0__2__Impl )
+            // InternalSignalDSL.g:16301:2: rule__XFunctionTypeRef__Group_0__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XFunctionTypeRef__Group_0__2__Impl();
@@ -53060,22 +53845,22 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__Group_0__2__Impl"
-    // InternalSignalDSL.g:16044:1: rule__XFunctionTypeRef__Group_0__2__Impl : ( ')' ) ;
+    // InternalSignalDSL.g:16307:1: rule__XFunctionTypeRef__Group_0__2__Impl : ( ')' ) ;
     public final void rule__XFunctionTypeRef__Group_0__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:16048:1: ( ( ')' ) )
-            // InternalSignalDSL.g:16049:1: ( ')' )
+            // InternalSignalDSL.g:16311:1: ( ( ')' ) )
+            // InternalSignalDSL.g:16312:1: ( ')' )
             {
-            // InternalSignalDSL.g:16049:1: ( ')' )
-            // InternalSignalDSL.g:16050:2: ')'
+            // InternalSignalDSL.g:16312:1: ( ')' )
+            // InternalSignalDSL.g:16313:2: ')'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFunctionTypeRefAccess().getRightParenthesisKeyword_0_2()); 
             }
-            match(input,77,FOLLOW_2); if (state.failed) return ;
+            match(input,75,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXFunctionTypeRefAccess().getRightParenthesisKeyword_0_2()); 
             }
@@ -53101,16 +53886,16 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__Group_0_1__0"
-    // InternalSignalDSL.g:16060:1: rule__XFunctionTypeRef__Group_0_1__0 : rule__XFunctionTypeRef__Group_0_1__0__Impl rule__XFunctionTypeRef__Group_0_1__1 ;
+    // InternalSignalDSL.g:16323: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:16064:1: ( rule__XFunctionTypeRef__Group_0_1__0__Impl rule__XFunctionTypeRef__Group_0_1__1 )
-            // InternalSignalDSL.g:16065:2: rule__XFunctionTypeRef__Group_0_1__0__Impl rule__XFunctionTypeRef__Group_0_1__1
+            // InternalSignalDSL.g:16327:1: ( rule__XFunctionTypeRef__Group_0_1__0__Impl rule__XFunctionTypeRef__Group_0_1__1 )
+            // InternalSignalDSL.g:16328:2: rule__XFunctionTypeRef__Group_0_1__0__Impl rule__XFunctionTypeRef__Group_0_1__1
             {
-            pushFollow(FOLLOW_28);
+            pushFollow(FOLLOW_33);
             rule__XFunctionTypeRef__Group_0_1__0__Impl();
 
             state._fsp--;
@@ -53139,23 +53924,23 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__Group_0_1__0__Impl"
-    // InternalSignalDSL.g:16072:1: rule__XFunctionTypeRef__Group_0_1__0__Impl : ( ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0 ) ) ;
+    // InternalSignalDSL.g:16335: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:16076:1: ( ( ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0 ) ) )
-            // InternalSignalDSL.g:16077:1: ( ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0 ) )
+            // InternalSignalDSL.g:16339:1: ( ( ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0 ) ) )
+            // InternalSignalDSL.g:16340:1: ( ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0 ) )
             {
-            // InternalSignalDSL.g:16077:1: ( ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0 ) )
-            // InternalSignalDSL.g:16078:2: ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0 )
+            // InternalSignalDSL.g:16340:1: ( ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0 ) )
+            // InternalSignalDSL.g:16341:2: ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFunctionTypeRefAccess().getParamTypesAssignment_0_1_0()); 
             }
-            // InternalSignalDSL.g:16079:2: ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0 )
-            // InternalSignalDSL.g:16079:3: rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0
+            // InternalSignalDSL.g:16342:2: ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0 )
+            // InternalSignalDSL.g:16342:3: rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0
             {
             pushFollow(FOLLOW_2);
             rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0();
@@ -53190,14 +53975,14 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__Group_0_1__1"
-    // InternalSignalDSL.g:16087:1: rule__XFunctionTypeRef__Group_0_1__1 : rule__XFunctionTypeRef__Group_0_1__1__Impl ;
+    // InternalSignalDSL.g:16350: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:16091:1: ( rule__XFunctionTypeRef__Group_0_1__1__Impl )
-            // InternalSignalDSL.g:16092:2: rule__XFunctionTypeRef__Group_0_1__1__Impl
+            // InternalSignalDSL.g:16354:1: ( rule__XFunctionTypeRef__Group_0_1__1__Impl )
+            // InternalSignalDSL.g:16355:2: rule__XFunctionTypeRef__Group_0_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XFunctionTypeRef__Group_0_1__1__Impl();
@@ -53223,37 +54008,37 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__Group_0_1__1__Impl"
-    // InternalSignalDSL.g:16098:1: rule__XFunctionTypeRef__Group_0_1__1__Impl : ( ( rule__XFunctionTypeRef__Group_0_1_1__0 )* ) ;
+    // InternalSignalDSL.g:16361: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:16102:1: ( ( ( rule__XFunctionTypeRef__Group_0_1_1__0 )* ) )
-            // InternalSignalDSL.g:16103:1: ( ( rule__XFunctionTypeRef__Group_0_1_1__0 )* )
+            // InternalSignalDSL.g:16365:1: ( ( ( rule__XFunctionTypeRef__Group_0_1_1__0 )* ) )
+            // InternalSignalDSL.g:16366:1: ( ( rule__XFunctionTypeRef__Group_0_1_1__0 )* )
             {
-            // InternalSignalDSL.g:16103:1: ( ( rule__XFunctionTypeRef__Group_0_1_1__0 )* )
-            // InternalSignalDSL.g:16104:2: ( rule__XFunctionTypeRef__Group_0_1_1__0 )*
+            // InternalSignalDSL.g:16366:1: ( ( rule__XFunctionTypeRef__Group_0_1_1__0 )* )
+            // InternalSignalDSL.g:16367:2: ( rule__XFunctionTypeRef__Group_0_1_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFunctionTypeRefAccess().getGroup_0_1_1()); 
             }
-            // InternalSignalDSL.g:16105:2: ( rule__XFunctionTypeRef__Group_0_1_1__0 )*
-            loop130:
+            // InternalSignalDSL.g:16368:2: ( rule__XFunctionTypeRef__Group_0_1_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==78) ) {
-                    alt130=1;
+                if ( (LA133_0==76) ) {
+                    alt133=1;
                 }
 
 
-                switch (alt130) {
+                switch (alt133) {
             	case 1 :
-            	    // InternalSignalDSL.g:16105:3: rule__XFunctionTypeRef__Group_0_1_1__0
+            	    // InternalSignalDSL.g:16368:3: rule__XFunctionTypeRef__Group_0_1_1__0
             	    {
-            	    pushFollow(FOLLOW_29);
+            	    pushFollow(FOLLOW_34);
             	    rule__XFunctionTypeRef__Group_0_1_1__0();
 
             	    state._fsp--;
@@ -53263,7 +54048,7 @@
             	    break;
 
             	default :
-            	    break loop130;
+            	    break loop133;
                 }
             } while (true);
 
@@ -53292,16 +54077,16 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__Group_0_1_1__0"
-    // InternalSignalDSL.g:16114: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:16377: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:16118:1: ( rule__XFunctionTypeRef__Group_0_1_1__0__Impl rule__XFunctionTypeRef__Group_0_1_1__1 )
-            // InternalSignalDSL.g:16119:2: rule__XFunctionTypeRef__Group_0_1_1__0__Impl rule__XFunctionTypeRef__Group_0_1_1__1
+            // InternalSignalDSL.g:16381:1: ( rule__XFunctionTypeRef__Group_0_1_1__0__Impl rule__XFunctionTypeRef__Group_0_1_1__1 )
+            // InternalSignalDSL.g:16382:2: rule__XFunctionTypeRef__Group_0_1_1__0__Impl rule__XFunctionTypeRef__Group_0_1_1__1
             {
-            pushFollow(FOLLOW_47);
+            pushFollow(FOLLOW_52);
             rule__XFunctionTypeRef__Group_0_1_1__0__Impl();
 
             state._fsp--;
@@ -53330,22 +54115,22 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__Group_0_1_1__0__Impl"
-    // InternalSignalDSL.g:16126:1: rule__XFunctionTypeRef__Group_0_1_1__0__Impl : ( ',' ) ;
+    // InternalSignalDSL.g:16389: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:16130:1: ( ( ',' ) )
-            // InternalSignalDSL.g:16131:1: ( ',' )
+            // InternalSignalDSL.g:16393:1: ( ( ',' ) )
+            // InternalSignalDSL.g:16394:1: ( ',' )
             {
-            // InternalSignalDSL.g:16131:1: ( ',' )
-            // InternalSignalDSL.g:16132:2: ','
+            // InternalSignalDSL.g:16394:1: ( ',' )
+            // InternalSignalDSL.g:16395:2: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFunctionTypeRefAccess().getCommaKeyword_0_1_1_0()); 
             }
-            match(input,78,FOLLOW_2); if (state.failed) return ;
+            match(input,76,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXFunctionTypeRefAccess().getCommaKeyword_0_1_1_0()); 
             }
@@ -53371,14 +54156,14 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__Group_0_1_1__1"
-    // InternalSignalDSL.g:16141:1: rule__XFunctionTypeRef__Group_0_1_1__1 : rule__XFunctionTypeRef__Group_0_1_1__1__Impl ;
+    // InternalSignalDSL.g:16404: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:16145:1: ( rule__XFunctionTypeRef__Group_0_1_1__1__Impl )
-            // InternalSignalDSL.g:16146:2: rule__XFunctionTypeRef__Group_0_1_1__1__Impl
+            // InternalSignalDSL.g:16408:1: ( rule__XFunctionTypeRef__Group_0_1_1__1__Impl )
+            // InternalSignalDSL.g:16409:2: rule__XFunctionTypeRef__Group_0_1_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XFunctionTypeRef__Group_0_1_1__1__Impl();
@@ -53404,23 +54189,23 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__Group_0_1_1__1__Impl"
-    // InternalSignalDSL.g:16152:1: rule__XFunctionTypeRef__Group_0_1_1__1__Impl : ( ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1 ) ) ;
+    // InternalSignalDSL.g:16415: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:16156:1: ( ( ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1 ) ) )
-            // InternalSignalDSL.g:16157:1: ( ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1 ) )
+            // InternalSignalDSL.g:16419:1: ( ( ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1 ) ) )
+            // InternalSignalDSL.g:16420:1: ( ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1 ) )
             {
-            // InternalSignalDSL.g:16157:1: ( ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1 ) )
-            // InternalSignalDSL.g:16158:2: ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1 )
+            // InternalSignalDSL.g:16420:1: ( ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1 ) )
+            // InternalSignalDSL.g:16421:2: ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFunctionTypeRefAccess().getParamTypesAssignment_0_1_1_1()); 
             }
-            // InternalSignalDSL.g:16159:2: ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1 )
-            // InternalSignalDSL.g:16159:3: rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1
+            // InternalSignalDSL.g:16422:2: ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1 )
+            // InternalSignalDSL.g:16422:3: rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1();
@@ -53455,16 +54240,16 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group__0"
-    // InternalSignalDSL.g:16168:1: rule__JvmParameterizedTypeReference__Group__0 : rule__JvmParameterizedTypeReference__Group__0__Impl rule__JvmParameterizedTypeReference__Group__1 ;
+    // InternalSignalDSL.g:16431: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:16172:1: ( rule__JvmParameterizedTypeReference__Group__0__Impl rule__JvmParameterizedTypeReference__Group__1 )
-            // InternalSignalDSL.g:16173:2: rule__JvmParameterizedTypeReference__Group__0__Impl rule__JvmParameterizedTypeReference__Group__1
+            // InternalSignalDSL.g:16435:1: ( rule__JvmParameterizedTypeReference__Group__0__Impl rule__JvmParameterizedTypeReference__Group__1 )
+            // InternalSignalDSL.g:16436:2: rule__JvmParameterizedTypeReference__Group__0__Impl rule__JvmParameterizedTypeReference__Group__1
             {
-            pushFollow(FOLLOW_37);
+            pushFollow(FOLLOW_42);
             rule__JvmParameterizedTypeReference__Group__0__Impl();
 
             state._fsp--;
@@ -53493,23 +54278,23 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group__0__Impl"
-    // InternalSignalDSL.g:16180:1: rule__JvmParameterizedTypeReference__Group__0__Impl : ( ( rule__JvmParameterizedTypeReference__TypeAssignment_0 ) ) ;
+    // InternalSignalDSL.g:16443: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:16184:1: ( ( ( rule__JvmParameterizedTypeReference__TypeAssignment_0 ) ) )
-            // InternalSignalDSL.g:16185:1: ( ( rule__JvmParameterizedTypeReference__TypeAssignment_0 ) )
+            // InternalSignalDSL.g:16447:1: ( ( ( rule__JvmParameterizedTypeReference__TypeAssignment_0 ) ) )
+            // InternalSignalDSL.g:16448:1: ( ( rule__JvmParameterizedTypeReference__TypeAssignment_0 ) )
             {
-            // InternalSignalDSL.g:16185:1: ( ( rule__JvmParameterizedTypeReference__TypeAssignment_0 ) )
-            // InternalSignalDSL.g:16186:2: ( rule__JvmParameterizedTypeReference__TypeAssignment_0 )
+            // InternalSignalDSL.g:16448:1: ( ( rule__JvmParameterizedTypeReference__TypeAssignment_0 ) )
+            // InternalSignalDSL.g:16449:2: ( rule__JvmParameterizedTypeReference__TypeAssignment_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeAssignment_0()); 
             }
-            // InternalSignalDSL.g:16187:2: ( rule__JvmParameterizedTypeReference__TypeAssignment_0 )
-            // InternalSignalDSL.g:16187:3: rule__JvmParameterizedTypeReference__TypeAssignment_0
+            // InternalSignalDSL.g:16450:2: ( rule__JvmParameterizedTypeReference__TypeAssignment_0 )
+            // InternalSignalDSL.g:16450:3: rule__JvmParameterizedTypeReference__TypeAssignment_0
             {
             pushFollow(FOLLOW_2);
             rule__JvmParameterizedTypeReference__TypeAssignment_0();
@@ -53544,14 +54329,14 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group__1"
-    // InternalSignalDSL.g:16195:1: rule__JvmParameterizedTypeReference__Group__1 : rule__JvmParameterizedTypeReference__Group__1__Impl ;
+    // InternalSignalDSL.g:16458: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:16199:1: ( rule__JvmParameterizedTypeReference__Group__1__Impl )
-            // InternalSignalDSL.g:16200:2: rule__JvmParameterizedTypeReference__Group__1__Impl
+            // InternalSignalDSL.g:16462:1: ( rule__JvmParameterizedTypeReference__Group__1__Impl )
+            // InternalSignalDSL.g:16463:2: rule__JvmParameterizedTypeReference__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__JvmParameterizedTypeReference__Group__1__Impl();
@@ -53577,27 +54362,27 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group__1__Impl"
-    // InternalSignalDSL.g:16206:1: rule__JvmParameterizedTypeReference__Group__1__Impl : ( ( rule__JvmParameterizedTypeReference__Group_1__0 )? ) ;
+    // InternalSignalDSL.g:16469: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:16210:1: ( ( ( rule__JvmParameterizedTypeReference__Group_1__0 )? ) )
-            // InternalSignalDSL.g:16211:1: ( ( rule__JvmParameterizedTypeReference__Group_1__0 )? )
+            // InternalSignalDSL.g:16473:1: ( ( ( rule__JvmParameterizedTypeReference__Group_1__0 )? ) )
+            // InternalSignalDSL.g:16474:1: ( ( rule__JvmParameterizedTypeReference__Group_1__0 )? )
             {
-            // InternalSignalDSL.g:16211:1: ( ( rule__JvmParameterizedTypeReference__Group_1__0 )? )
-            // InternalSignalDSL.g:16212:2: ( rule__JvmParameterizedTypeReference__Group_1__0 )?
+            // InternalSignalDSL.g:16474:1: ( ( rule__JvmParameterizedTypeReference__Group_1__0 )? )
+            // InternalSignalDSL.g:16475:2: ( rule__JvmParameterizedTypeReference__Group_1__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1()); 
             }
-            // InternalSignalDSL.g:16213:2: ( rule__JvmParameterizedTypeReference__Group_1__0 )?
-            int alt131=2;
-            alt131 = dfa131.predict(input);
-            switch (alt131) {
+            // InternalSignalDSL.g:16476:2: ( rule__JvmParameterizedTypeReference__Group_1__0 )?
+            int alt134=2;
+            alt134 = dfa134.predict(input);
+            switch (alt134) {
                 case 1 :
-                    // InternalSignalDSL.g:16213:3: rule__JvmParameterizedTypeReference__Group_1__0
+                    // InternalSignalDSL.g:16476:3: rule__JvmParameterizedTypeReference__Group_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__JvmParameterizedTypeReference__Group_1__0();
@@ -53635,16 +54420,16 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1__0"
-    // InternalSignalDSL.g:16222:1: rule__JvmParameterizedTypeReference__Group_1__0 : rule__JvmParameterizedTypeReference__Group_1__0__Impl rule__JvmParameterizedTypeReference__Group_1__1 ;
+    // InternalSignalDSL.g:16485: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:16226:1: ( rule__JvmParameterizedTypeReference__Group_1__0__Impl rule__JvmParameterizedTypeReference__Group_1__1 )
-            // InternalSignalDSL.g:16227:2: rule__JvmParameterizedTypeReference__Group_1__0__Impl rule__JvmParameterizedTypeReference__Group_1__1
+            // InternalSignalDSL.g:16489:1: ( rule__JvmParameterizedTypeReference__Group_1__0__Impl rule__JvmParameterizedTypeReference__Group_1__1 )
+            // InternalSignalDSL.g:16490:2: rule__JvmParameterizedTypeReference__Group_1__0__Impl rule__JvmParameterizedTypeReference__Group_1__1
             {
-            pushFollow(FOLLOW_67);
+            pushFollow(FOLLOW_72);
             rule__JvmParameterizedTypeReference__Group_1__0__Impl();
 
             state._fsp--;
@@ -53673,23 +54458,23 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1__0__Impl"
-    // InternalSignalDSL.g:16234:1: rule__JvmParameterizedTypeReference__Group_1__0__Impl : ( ( '<' ) ) ;
+    // InternalSignalDSL.g:16497:1: rule__JvmParameterizedTypeReference__Group_1__0__Impl : ( ( '<' ) ) ;
     public final void rule__JvmParameterizedTypeReference__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:16238:1: ( ( ( '<' ) ) )
-            // InternalSignalDSL.g:16239:1: ( ( '<' ) )
+            // InternalSignalDSL.g:16501:1: ( ( ( '<' ) ) )
+            // InternalSignalDSL.g:16502:1: ( ( '<' ) )
             {
-            // InternalSignalDSL.g:16239:1: ( ( '<' ) )
-            // InternalSignalDSL.g:16240:2: ( '<' )
+            // InternalSignalDSL.g:16502:1: ( ( '<' ) )
+            // InternalSignalDSL.g:16503:2: ( '<' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getLessThanSignKeyword_1_0()); 
             }
-            // InternalSignalDSL.g:16241:2: ( '<' )
-            // InternalSignalDSL.g:16241:3: '<'
+            // InternalSignalDSL.g:16504:2: ( '<' )
+            // InternalSignalDSL.g:16504:3: '<'
             {
             match(input,27,FOLLOW_2); if (state.failed) return ;
 
@@ -53720,16 +54505,16 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1__1"
-    // InternalSignalDSL.g:16249:1: rule__JvmParameterizedTypeReference__Group_1__1 : rule__JvmParameterizedTypeReference__Group_1__1__Impl rule__JvmParameterizedTypeReference__Group_1__2 ;
+    // InternalSignalDSL.g:16512: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:16253:1: ( rule__JvmParameterizedTypeReference__Group_1__1__Impl rule__JvmParameterizedTypeReference__Group_1__2 )
-            // InternalSignalDSL.g:16254:2: rule__JvmParameterizedTypeReference__Group_1__1__Impl rule__JvmParameterizedTypeReference__Group_1__2
+            // InternalSignalDSL.g:16516:1: ( rule__JvmParameterizedTypeReference__Group_1__1__Impl rule__JvmParameterizedTypeReference__Group_1__2 )
+            // InternalSignalDSL.g:16517:2: rule__JvmParameterizedTypeReference__Group_1__1__Impl rule__JvmParameterizedTypeReference__Group_1__2
             {
-            pushFollow(FOLLOW_68);
+            pushFollow(FOLLOW_73);
             rule__JvmParameterizedTypeReference__Group_1__1__Impl();
 
             state._fsp--;
@@ -53758,23 +54543,23 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1__1__Impl"
-    // InternalSignalDSL.g:16261:1: rule__JvmParameterizedTypeReference__Group_1__1__Impl : ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1 ) ) ;
+    // InternalSignalDSL.g:16524: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:16265:1: ( ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1 ) ) )
-            // InternalSignalDSL.g:16266:1: ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1 ) )
+            // InternalSignalDSL.g:16528:1: ( ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1 ) ) )
+            // InternalSignalDSL.g:16529:1: ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1 ) )
             {
-            // InternalSignalDSL.g:16266:1: ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1 ) )
-            // InternalSignalDSL.g:16267:2: ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1 )
+            // InternalSignalDSL.g:16529:1: ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1 ) )
+            // InternalSignalDSL.g:16530:2: ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsAssignment_1_1()); 
             }
-            // InternalSignalDSL.g:16268:2: ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1 )
-            // InternalSignalDSL.g:16268:3: rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1
+            // InternalSignalDSL.g:16531:2: ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1 )
+            // InternalSignalDSL.g:16531:3: rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1
             {
             pushFollow(FOLLOW_2);
             rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1();
@@ -53809,16 +54594,16 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1__2"
-    // InternalSignalDSL.g:16276:1: rule__JvmParameterizedTypeReference__Group_1__2 : rule__JvmParameterizedTypeReference__Group_1__2__Impl rule__JvmParameterizedTypeReference__Group_1__3 ;
+    // InternalSignalDSL.g:16539: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:16280:1: ( rule__JvmParameterizedTypeReference__Group_1__2__Impl rule__JvmParameterizedTypeReference__Group_1__3 )
-            // InternalSignalDSL.g:16281:2: rule__JvmParameterizedTypeReference__Group_1__2__Impl rule__JvmParameterizedTypeReference__Group_1__3
+            // InternalSignalDSL.g:16543:1: ( rule__JvmParameterizedTypeReference__Group_1__2__Impl rule__JvmParameterizedTypeReference__Group_1__3 )
+            // InternalSignalDSL.g:16544:2: rule__JvmParameterizedTypeReference__Group_1__2__Impl rule__JvmParameterizedTypeReference__Group_1__3
             {
-            pushFollow(FOLLOW_68);
+            pushFollow(FOLLOW_73);
             rule__JvmParameterizedTypeReference__Group_1__2__Impl();
 
             state._fsp--;
@@ -53847,37 +54632,37 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1__2__Impl"
-    // InternalSignalDSL.g:16288:1: rule__JvmParameterizedTypeReference__Group_1__2__Impl : ( ( rule__JvmParameterizedTypeReference__Group_1_2__0 )* ) ;
+    // InternalSignalDSL.g:16551: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:16292:1: ( ( ( rule__JvmParameterizedTypeReference__Group_1_2__0 )* ) )
-            // InternalSignalDSL.g:16293:1: ( ( rule__JvmParameterizedTypeReference__Group_1_2__0 )* )
+            // InternalSignalDSL.g:16555:1: ( ( ( rule__JvmParameterizedTypeReference__Group_1_2__0 )* ) )
+            // InternalSignalDSL.g:16556:1: ( ( rule__JvmParameterizedTypeReference__Group_1_2__0 )* )
             {
-            // InternalSignalDSL.g:16293:1: ( ( rule__JvmParameterizedTypeReference__Group_1_2__0 )* )
-            // InternalSignalDSL.g:16294:2: ( rule__JvmParameterizedTypeReference__Group_1_2__0 )*
+            // InternalSignalDSL.g:16556:1: ( ( rule__JvmParameterizedTypeReference__Group_1_2__0 )* )
+            // InternalSignalDSL.g:16557:2: ( rule__JvmParameterizedTypeReference__Group_1_2__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1_2()); 
             }
-            // InternalSignalDSL.g:16295:2: ( rule__JvmParameterizedTypeReference__Group_1_2__0 )*
-            loop132:
+            // InternalSignalDSL.g:16558:2: ( rule__JvmParameterizedTypeReference__Group_1_2__0 )*
+            loop135:
             do {
-                int alt132=2;
-                int LA132_0 = input.LA(1);
+                int alt135=2;
+                int LA135_0 = input.LA(1);
 
-                if ( (LA132_0==78) ) {
-                    alt132=1;
+                if ( (LA135_0==76) ) {
+                    alt135=1;
                 }
 
 
-                switch (alt132) {
+                switch (alt135) {
             	case 1 :
-            	    // InternalSignalDSL.g:16295:3: rule__JvmParameterizedTypeReference__Group_1_2__0
+            	    // InternalSignalDSL.g:16558:3: rule__JvmParameterizedTypeReference__Group_1_2__0
             	    {
-            	    pushFollow(FOLLOW_29);
+            	    pushFollow(FOLLOW_34);
             	    rule__JvmParameterizedTypeReference__Group_1_2__0();
 
             	    state._fsp--;
@@ -53887,7 +54672,7 @@
             	    break;
 
             	default :
-            	    break loop132;
+            	    break loop135;
                 }
             } while (true);
 
@@ -53916,16 +54701,16 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1__3"
-    // InternalSignalDSL.g:16303:1: rule__JvmParameterizedTypeReference__Group_1__3 : rule__JvmParameterizedTypeReference__Group_1__3__Impl rule__JvmParameterizedTypeReference__Group_1__4 ;
+    // InternalSignalDSL.g:16566: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:16307:1: ( rule__JvmParameterizedTypeReference__Group_1__3__Impl rule__JvmParameterizedTypeReference__Group_1__4 )
-            // InternalSignalDSL.g:16308:2: rule__JvmParameterizedTypeReference__Group_1__3__Impl rule__JvmParameterizedTypeReference__Group_1__4
+            // InternalSignalDSL.g:16570:1: ( rule__JvmParameterizedTypeReference__Group_1__3__Impl rule__JvmParameterizedTypeReference__Group_1__4 )
+            // InternalSignalDSL.g:16571:2: rule__JvmParameterizedTypeReference__Group_1__3__Impl rule__JvmParameterizedTypeReference__Group_1__4
             {
-            pushFollow(FOLLOW_106);
+            pushFollow(FOLLOW_111);
             rule__JvmParameterizedTypeReference__Group_1__3__Impl();
 
             state._fsp--;
@@ -53954,17 +54739,17 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1__3__Impl"
-    // InternalSignalDSL.g:16315:1: rule__JvmParameterizedTypeReference__Group_1__3__Impl : ( '>' ) ;
+    // InternalSignalDSL.g:16578:1: rule__JvmParameterizedTypeReference__Group_1__3__Impl : ( '>' ) ;
     public final void rule__JvmParameterizedTypeReference__Group_1__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:16319:1: ( ( '>' ) )
-            // InternalSignalDSL.g:16320:1: ( '>' )
+            // InternalSignalDSL.g:16582:1: ( ( '>' ) )
+            // InternalSignalDSL.g:16583:1: ( '>' )
             {
-            // InternalSignalDSL.g:16320:1: ( '>' )
-            // InternalSignalDSL.g:16321:2: '>'
+            // InternalSignalDSL.g:16583:1: ( '>' )
+            // InternalSignalDSL.g:16584:2: '>'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGreaterThanSignKeyword_1_3()); 
@@ -53995,14 +54780,14 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1__4"
-    // InternalSignalDSL.g:16330:1: rule__JvmParameterizedTypeReference__Group_1__4 : rule__JvmParameterizedTypeReference__Group_1__4__Impl ;
+    // InternalSignalDSL.g:16593: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:16334:1: ( rule__JvmParameterizedTypeReference__Group_1__4__Impl )
-            // InternalSignalDSL.g:16335:2: rule__JvmParameterizedTypeReference__Group_1__4__Impl
+            // InternalSignalDSL.g:16597:1: ( rule__JvmParameterizedTypeReference__Group_1__4__Impl )
+            // InternalSignalDSL.g:16598:2: rule__JvmParameterizedTypeReference__Group_1__4__Impl
             {
             pushFollow(FOLLOW_2);
             rule__JvmParameterizedTypeReference__Group_1__4__Impl();
@@ -54028,35 +54813,35 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1__4__Impl"
-    // InternalSignalDSL.g:16341:1: rule__JvmParameterizedTypeReference__Group_1__4__Impl : ( ( rule__JvmParameterizedTypeReference__Group_1_4__0 )* ) ;
+    // InternalSignalDSL.g:16604: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:16345:1: ( ( ( rule__JvmParameterizedTypeReference__Group_1_4__0 )* ) )
-            // InternalSignalDSL.g:16346:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4__0 )* )
+            // InternalSignalDSL.g:16608:1: ( ( ( rule__JvmParameterizedTypeReference__Group_1_4__0 )* ) )
+            // InternalSignalDSL.g:16609:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4__0 )* )
             {
-            // InternalSignalDSL.g:16346:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4__0 )* )
-            // InternalSignalDSL.g:16347:2: ( rule__JvmParameterizedTypeReference__Group_1_4__0 )*
+            // InternalSignalDSL.g:16609:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4__0 )* )
+            // InternalSignalDSL.g:16610:2: ( rule__JvmParameterizedTypeReference__Group_1_4__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1_4()); 
             }
-            // InternalSignalDSL.g:16348:2: ( rule__JvmParameterizedTypeReference__Group_1_4__0 )*
-            loop133:
+            // InternalSignalDSL.g:16611:2: ( rule__JvmParameterizedTypeReference__Group_1_4__0 )*
+            loop136:
             do {
-                int alt133=2;
-                int LA133_0 = input.LA(1);
+                int alt136=2;
+                int LA136_0 = input.LA(1);
 
-                if ( (LA133_0==43) ) {
-                    int LA133_2 = input.LA(2);
+                if ( (LA136_0==43) ) {
+                    int LA136_2 = input.LA(2);
 
-                    if ( (LA133_2==RULE_ID) ) {
-                        int LA133_3 = input.LA(3);
+                    if ( (LA136_2==RULE_ID) ) {
+                        int LA136_3 = input.LA(3);
 
-                        if ( (synpred187_InternalSignalDSL()) ) {
-                            alt133=1;
+                        if ( (synpred184_InternalSignalDSL()) ) {
+                            alt136=1;
                         }
 
 
@@ -54066,11 +54851,11 @@
                 }
 
 
-                switch (alt133) {
+                switch (alt136) {
             	case 1 :
-            	    // InternalSignalDSL.g:16348:3: rule__JvmParameterizedTypeReference__Group_1_4__0
+            	    // InternalSignalDSL.g:16611:3: rule__JvmParameterizedTypeReference__Group_1_4__0
             	    {
-            	    pushFollow(FOLLOW_107);
+            	    pushFollow(FOLLOW_112);
             	    rule__JvmParameterizedTypeReference__Group_1_4__0();
 
             	    state._fsp--;
@@ -54080,7 +54865,7 @@
             	    break;
 
             	default :
-            	    break loop133;
+            	    break loop136;
                 }
             } while (true);
 
@@ -54109,16 +54894,16 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_2__0"
-    // InternalSignalDSL.g:16357:1: rule__JvmParameterizedTypeReference__Group_1_2__0 : rule__JvmParameterizedTypeReference__Group_1_2__0__Impl rule__JvmParameterizedTypeReference__Group_1_2__1 ;
+    // InternalSignalDSL.g:16620: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:16361:1: ( rule__JvmParameterizedTypeReference__Group_1_2__0__Impl rule__JvmParameterizedTypeReference__Group_1_2__1 )
-            // InternalSignalDSL.g:16362:2: rule__JvmParameterizedTypeReference__Group_1_2__0__Impl rule__JvmParameterizedTypeReference__Group_1_2__1
+            // InternalSignalDSL.g:16624:1: ( rule__JvmParameterizedTypeReference__Group_1_2__0__Impl rule__JvmParameterizedTypeReference__Group_1_2__1 )
+            // InternalSignalDSL.g:16625:2: rule__JvmParameterizedTypeReference__Group_1_2__0__Impl rule__JvmParameterizedTypeReference__Group_1_2__1
             {
-            pushFollow(FOLLOW_67);
+            pushFollow(FOLLOW_72);
             rule__JvmParameterizedTypeReference__Group_1_2__0__Impl();
 
             state._fsp--;
@@ -54147,22 +54932,22 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_2__0__Impl"
-    // InternalSignalDSL.g:16369:1: rule__JvmParameterizedTypeReference__Group_1_2__0__Impl : ( ',' ) ;
+    // InternalSignalDSL.g:16632: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:16373:1: ( ( ',' ) )
-            // InternalSignalDSL.g:16374:1: ( ',' )
+            // InternalSignalDSL.g:16636:1: ( ( ',' ) )
+            // InternalSignalDSL.g:16637:1: ( ',' )
             {
-            // InternalSignalDSL.g:16374:1: ( ',' )
-            // InternalSignalDSL.g:16375:2: ','
+            // InternalSignalDSL.g:16637:1: ( ',' )
+            // InternalSignalDSL.g:16638:2: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getCommaKeyword_1_2_0()); 
             }
-            match(input,78,FOLLOW_2); if (state.failed) return ;
+            match(input,76,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getCommaKeyword_1_2_0()); 
             }
@@ -54188,14 +54973,14 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_2__1"
-    // InternalSignalDSL.g:16384:1: rule__JvmParameterizedTypeReference__Group_1_2__1 : rule__JvmParameterizedTypeReference__Group_1_2__1__Impl ;
+    // InternalSignalDSL.g:16647: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:16388:1: ( rule__JvmParameterizedTypeReference__Group_1_2__1__Impl )
-            // InternalSignalDSL.g:16389:2: rule__JvmParameterizedTypeReference__Group_1_2__1__Impl
+            // InternalSignalDSL.g:16651:1: ( rule__JvmParameterizedTypeReference__Group_1_2__1__Impl )
+            // InternalSignalDSL.g:16652:2: rule__JvmParameterizedTypeReference__Group_1_2__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__JvmParameterizedTypeReference__Group_1_2__1__Impl();
@@ -54221,23 +55006,23 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_2__1__Impl"
-    // InternalSignalDSL.g:16395:1: rule__JvmParameterizedTypeReference__Group_1_2__1__Impl : ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1 ) ) ;
+    // InternalSignalDSL.g:16658: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:16399:1: ( ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1 ) ) )
-            // InternalSignalDSL.g:16400:1: ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1 ) )
+            // InternalSignalDSL.g:16662:1: ( ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1 ) ) )
+            // InternalSignalDSL.g:16663:1: ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1 ) )
             {
-            // InternalSignalDSL.g:16400:1: ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1 ) )
-            // InternalSignalDSL.g:16401:2: ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1 )
+            // InternalSignalDSL.g:16663:1: ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1 ) )
+            // InternalSignalDSL.g:16664:2: ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsAssignment_1_2_1()); 
             }
-            // InternalSignalDSL.g:16402:2: ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1 )
-            // InternalSignalDSL.g:16402:3: rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1
+            // InternalSignalDSL.g:16665:2: ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1 )
+            // InternalSignalDSL.g:16665:3: rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1
             {
             pushFollow(FOLLOW_2);
             rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1();
@@ -54272,14 +55057,14 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4__0"
-    // InternalSignalDSL.g:16411:1: rule__JvmParameterizedTypeReference__Group_1_4__0 : rule__JvmParameterizedTypeReference__Group_1_4__0__Impl rule__JvmParameterizedTypeReference__Group_1_4__1 ;
+    // InternalSignalDSL.g:16674: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:16415:1: ( rule__JvmParameterizedTypeReference__Group_1_4__0__Impl rule__JvmParameterizedTypeReference__Group_1_4__1 )
-            // InternalSignalDSL.g:16416:2: rule__JvmParameterizedTypeReference__Group_1_4__0__Impl rule__JvmParameterizedTypeReference__Group_1_4__1
+            // InternalSignalDSL.g:16678:1: ( rule__JvmParameterizedTypeReference__Group_1_4__0__Impl rule__JvmParameterizedTypeReference__Group_1_4__1 )
+            // InternalSignalDSL.g:16679:2: rule__JvmParameterizedTypeReference__Group_1_4__0__Impl rule__JvmParameterizedTypeReference__Group_1_4__1
             {
             pushFollow(FOLLOW_7);
             rule__JvmParameterizedTypeReference__Group_1_4__0__Impl();
@@ -54310,23 +55095,23 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4__0__Impl"
-    // InternalSignalDSL.g:16423:1: rule__JvmParameterizedTypeReference__Group_1_4__0__Impl : ( ( rule__JvmParameterizedTypeReference__Group_1_4_0__0 ) ) ;
+    // InternalSignalDSL.g:16686: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:16427:1: ( ( ( rule__JvmParameterizedTypeReference__Group_1_4_0__0 ) ) )
-            // InternalSignalDSL.g:16428:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4_0__0 ) )
+            // InternalSignalDSL.g:16690:1: ( ( ( rule__JvmParameterizedTypeReference__Group_1_4_0__0 ) ) )
+            // InternalSignalDSL.g:16691:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4_0__0 ) )
             {
-            // InternalSignalDSL.g:16428:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4_0__0 ) )
-            // InternalSignalDSL.g:16429:2: ( rule__JvmParameterizedTypeReference__Group_1_4_0__0 )
+            // InternalSignalDSL.g:16691:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4_0__0 ) )
+            // InternalSignalDSL.g:16692:2: ( rule__JvmParameterizedTypeReference__Group_1_4_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1_4_0()); 
             }
-            // InternalSignalDSL.g:16430:2: ( rule__JvmParameterizedTypeReference__Group_1_4_0__0 )
-            // InternalSignalDSL.g:16430:3: rule__JvmParameterizedTypeReference__Group_1_4_0__0
+            // InternalSignalDSL.g:16693:2: ( rule__JvmParameterizedTypeReference__Group_1_4_0__0 )
+            // InternalSignalDSL.g:16693:3: rule__JvmParameterizedTypeReference__Group_1_4_0__0
             {
             pushFollow(FOLLOW_2);
             rule__JvmParameterizedTypeReference__Group_1_4_0__0();
@@ -54361,16 +55146,16 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4__1"
-    // InternalSignalDSL.g:16438:1: rule__JvmParameterizedTypeReference__Group_1_4__1 : rule__JvmParameterizedTypeReference__Group_1_4__1__Impl rule__JvmParameterizedTypeReference__Group_1_4__2 ;
+    // InternalSignalDSL.g:16701: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:16442:1: ( rule__JvmParameterizedTypeReference__Group_1_4__1__Impl rule__JvmParameterizedTypeReference__Group_1_4__2 )
-            // InternalSignalDSL.g:16443:2: rule__JvmParameterizedTypeReference__Group_1_4__1__Impl rule__JvmParameterizedTypeReference__Group_1_4__2
+            // InternalSignalDSL.g:16705:1: ( rule__JvmParameterizedTypeReference__Group_1_4__1__Impl rule__JvmParameterizedTypeReference__Group_1_4__2 )
+            // InternalSignalDSL.g:16706:2: rule__JvmParameterizedTypeReference__Group_1_4__1__Impl rule__JvmParameterizedTypeReference__Group_1_4__2
             {
-            pushFollow(FOLLOW_37);
+            pushFollow(FOLLOW_42);
             rule__JvmParameterizedTypeReference__Group_1_4__1__Impl();
 
             state._fsp--;
@@ -54399,23 +55184,23 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4__1__Impl"
-    // InternalSignalDSL.g:16450:1: rule__JvmParameterizedTypeReference__Group_1_4__1__Impl : ( ( rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1 ) ) ;
+    // InternalSignalDSL.g:16713: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:16454:1: ( ( ( rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1 ) ) )
-            // InternalSignalDSL.g:16455:1: ( ( rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1 ) )
+            // InternalSignalDSL.g:16717:1: ( ( ( rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1 ) ) )
+            // InternalSignalDSL.g:16718:1: ( ( rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1 ) )
             {
-            // InternalSignalDSL.g:16455:1: ( ( rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1 ) )
-            // InternalSignalDSL.g:16456:2: ( rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1 )
+            // InternalSignalDSL.g:16718:1: ( ( rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1 ) )
+            // InternalSignalDSL.g:16719:2: ( rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeAssignment_1_4_1()); 
             }
-            // InternalSignalDSL.g:16457:2: ( rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1 )
-            // InternalSignalDSL.g:16457:3: rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1
+            // InternalSignalDSL.g:16720:2: ( rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1 )
+            // InternalSignalDSL.g:16720:3: rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1
             {
             pushFollow(FOLLOW_2);
             rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1();
@@ -54450,14 +55235,14 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4__2"
-    // InternalSignalDSL.g:16465:1: rule__JvmParameterizedTypeReference__Group_1_4__2 : rule__JvmParameterizedTypeReference__Group_1_4__2__Impl ;
+    // InternalSignalDSL.g:16728: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:16469:1: ( rule__JvmParameterizedTypeReference__Group_1_4__2__Impl )
-            // InternalSignalDSL.g:16470:2: rule__JvmParameterizedTypeReference__Group_1_4__2__Impl
+            // InternalSignalDSL.g:16732:1: ( rule__JvmParameterizedTypeReference__Group_1_4__2__Impl )
+            // InternalSignalDSL.g:16733:2: rule__JvmParameterizedTypeReference__Group_1_4__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__JvmParameterizedTypeReference__Group_1_4__2__Impl();
@@ -54483,27 +55268,27 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4__2__Impl"
-    // InternalSignalDSL.g:16476:1: rule__JvmParameterizedTypeReference__Group_1_4__2__Impl : ( ( rule__JvmParameterizedTypeReference__Group_1_4_2__0 )? ) ;
+    // InternalSignalDSL.g:16739: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:16480:1: ( ( ( rule__JvmParameterizedTypeReference__Group_1_4_2__0 )? ) )
-            // InternalSignalDSL.g:16481:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4_2__0 )? )
+            // InternalSignalDSL.g:16743:1: ( ( ( rule__JvmParameterizedTypeReference__Group_1_4_2__0 )? ) )
+            // InternalSignalDSL.g:16744:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4_2__0 )? )
             {
-            // InternalSignalDSL.g:16481:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4_2__0 )? )
-            // InternalSignalDSL.g:16482:2: ( rule__JvmParameterizedTypeReference__Group_1_4_2__0 )?
+            // InternalSignalDSL.g:16744:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4_2__0 )? )
+            // InternalSignalDSL.g:16745:2: ( rule__JvmParameterizedTypeReference__Group_1_4_2__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1_4_2()); 
             }
-            // InternalSignalDSL.g:16483:2: ( rule__JvmParameterizedTypeReference__Group_1_4_2__0 )?
-            int alt134=2;
-            alt134 = dfa134.predict(input);
-            switch (alt134) {
+            // InternalSignalDSL.g:16746:2: ( rule__JvmParameterizedTypeReference__Group_1_4_2__0 )?
+            int alt137=2;
+            alt137 = dfa137.predict(input);
+            switch (alt137) {
                 case 1 :
-                    // InternalSignalDSL.g:16483:3: rule__JvmParameterizedTypeReference__Group_1_4_2__0
+                    // InternalSignalDSL.g:16746:3: rule__JvmParameterizedTypeReference__Group_1_4_2__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__JvmParameterizedTypeReference__Group_1_4_2__0();
@@ -54541,14 +55326,14 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_0__0"
-    // InternalSignalDSL.g:16492:1: rule__JvmParameterizedTypeReference__Group_1_4_0__0 : rule__JvmParameterizedTypeReference__Group_1_4_0__0__Impl ;
+    // InternalSignalDSL.g:16755: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:16496:1: ( rule__JvmParameterizedTypeReference__Group_1_4_0__0__Impl )
-            // InternalSignalDSL.g:16497:2: rule__JvmParameterizedTypeReference__Group_1_4_0__0__Impl
+            // InternalSignalDSL.g:16759:1: ( rule__JvmParameterizedTypeReference__Group_1_4_0__0__Impl )
+            // InternalSignalDSL.g:16760:2: rule__JvmParameterizedTypeReference__Group_1_4_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__JvmParameterizedTypeReference__Group_1_4_0__0__Impl();
@@ -54574,23 +55359,23 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_0__0__Impl"
-    // InternalSignalDSL.g:16503:1: rule__JvmParameterizedTypeReference__Group_1_4_0__0__Impl : ( ( rule__JvmParameterizedTypeReference__Group_1_4_0_0__0 ) ) ;
+    // InternalSignalDSL.g:16766: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:16507:1: ( ( ( rule__JvmParameterizedTypeReference__Group_1_4_0_0__0 ) ) )
-            // InternalSignalDSL.g:16508:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4_0_0__0 ) )
+            // InternalSignalDSL.g:16770:1: ( ( ( rule__JvmParameterizedTypeReference__Group_1_4_0_0__0 ) ) )
+            // InternalSignalDSL.g:16771:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4_0_0__0 ) )
             {
-            // InternalSignalDSL.g:16508:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4_0_0__0 ) )
-            // InternalSignalDSL.g:16509:2: ( rule__JvmParameterizedTypeReference__Group_1_4_0_0__0 )
+            // InternalSignalDSL.g:16771:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4_0_0__0 ) )
+            // InternalSignalDSL.g:16772:2: ( rule__JvmParameterizedTypeReference__Group_1_4_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1_4_0_0()); 
             }
-            // InternalSignalDSL.g:16510:2: ( rule__JvmParameterizedTypeReference__Group_1_4_0_0__0 )
-            // InternalSignalDSL.g:16510:3: rule__JvmParameterizedTypeReference__Group_1_4_0_0__0
+            // InternalSignalDSL.g:16773:2: ( rule__JvmParameterizedTypeReference__Group_1_4_0_0__0 )
+            // InternalSignalDSL.g:16773:3: rule__JvmParameterizedTypeReference__Group_1_4_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__JvmParameterizedTypeReference__Group_1_4_0_0__0();
@@ -54625,16 +55410,16 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_0_0__0"
-    // InternalSignalDSL.g:16519: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:16782: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:16523:1: ( rule__JvmParameterizedTypeReference__Group_1_4_0_0__0__Impl rule__JvmParameterizedTypeReference__Group_1_4_0_0__1 )
-            // InternalSignalDSL.g:16524:2: rule__JvmParameterizedTypeReference__Group_1_4_0_0__0__Impl rule__JvmParameterizedTypeReference__Group_1_4_0_0__1
+            // InternalSignalDSL.g:16786:1: ( rule__JvmParameterizedTypeReference__Group_1_4_0_0__0__Impl rule__JvmParameterizedTypeReference__Group_1_4_0_0__1 )
+            // InternalSignalDSL.g:16787:2: rule__JvmParameterizedTypeReference__Group_1_4_0_0__0__Impl rule__JvmParameterizedTypeReference__Group_1_4_0_0__1
             {
-            pushFollow(FOLLOW_106);
+            pushFollow(FOLLOW_111);
             rule__JvmParameterizedTypeReference__Group_1_4_0_0__0__Impl();
 
             state._fsp--;
@@ -54663,23 +55448,23 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_0_0__0__Impl"
-    // InternalSignalDSL.g:16531:1: rule__JvmParameterizedTypeReference__Group_1_4_0_0__0__Impl : ( () ) ;
+    // InternalSignalDSL.g:16794: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:16535:1: ( ( () ) )
-            // InternalSignalDSL.g:16536:1: ( () )
+            // InternalSignalDSL.g:16798:1: ( ( () ) )
+            // InternalSignalDSL.g:16799:1: ( () )
             {
-            // InternalSignalDSL.g:16536:1: ( () )
-            // InternalSignalDSL.g:16537:2: ()
+            // InternalSignalDSL.g:16799:1: ( () )
+            // InternalSignalDSL.g:16800:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getJvmInnerTypeReferenceOuterAction_1_4_0_0_0()); 
             }
-            // InternalSignalDSL.g:16538:2: ()
-            // InternalSignalDSL.g:16538:3: 
+            // InternalSignalDSL.g:16801:2: ()
+            // InternalSignalDSL.g:16801:3: 
             {
             }
 
@@ -54704,14 +55489,14 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_0_0__1"
-    // InternalSignalDSL.g:16546:1: rule__JvmParameterizedTypeReference__Group_1_4_0_0__1 : rule__JvmParameterizedTypeReference__Group_1_4_0_0__1__Impl ;
+    // InternalSignalDSL.g:16809: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:16550:1: ( rule__JvmParameterizedTypeReference__Group_1_4_0_0__1__Impl )
-            // InternalSignalDSL.g:16551:2: rule__JvmParameterizedTypeReference__Group_1_4_0_0__1__Impl
+            // InternalSignalDSL.g:16813:1: ( rule__JvmParameterizedTypeReference__Group_1_4_0_0__1__Impl )
+            // InternalSignalDSL.g:16814:2: rule__JvmParameterizedTypeReference__Group_1_4_0_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__JvmParameterizedTypeReference__Group_1_4_0_0__1__Impl();
@@ -54737,17 +55522,17 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_0_0__1__Impl"
-    // InternalSignalDSL.g:16557:1: rule__JvmParameterizedTypeReference__Group_1_4_0_0__1__Impl : ( '.' ) ;
+    // InternalSignalDSL.g:16820: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:16561:1: ( ( '.' ) )
-            // InternalSignalDSL.g:16562:1: ( '.' )
+            // InternalSignalDSL.g:16824:1: ( ( '.' ) )
+            // InternalSignalDSL.g:16825:1: ( '.' )
             {
-            // InternalSignalDSL.g:16562:1: ( '.' )
-            // InternalSignalDSL.g:16563:2: '.'
+            // InternalSignalDSL.g:16825:1: ( '.' )
+            // InternalSignalDSL.g:16826:2: '.'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getFullStopKeyword_1_4_0_0_1()); 
@@ -54778,16 +55563,16 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_2__0"
-    // InternalSignalDSL.g:16573: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:16836: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:16577:1: ( rule__JvmParameterizedTypeReference__Group_1_4_2__0__Impl rule__JvmParameterizedTypeReference__Group_1_4_2__1 )
-            // InternalSignalDSL.g:16578:2: rule__JvmParameterizedTypeReference__Group_1_4_2__0__Impl rule__JvmParameterizedTypeReference__Group_1_4_2__1
+            // InternalSignalDSL.g:16840:1: ( rule__JvmParameterizedTypeReference__Group_1_4_2__0__Impl rule__JvmParameterizedTypeReference__Group_1_4_2__1 )
+            // InternalSignalDSL.g:16841:2: rule__JvmParameterizedTypeReference__Group_1_4_2__0__Impl rule__JvmParameterizedTypeReference__Group_1_4_2__1
             {
-            pushFollow(FOLLOW_67);
+            pushFollow(FOLLOW_72);
             rule__JvmParameterizedTypeReference__Group_1_4_2__0__Impl();
 
             state._fsp--;
@@ -54816,23 +55601,23 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_2__0__Impl"
-    // InternalSignalDSL.g:16585:1: rule__JvmParameterizedTypeReference__Group_1_4_2__0__Impl : ( ( '<' ) ) ;
+    // InternalSignalDSL.g:16848: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:16589:1: ( ( ( '<' ) ) )
-            // InternalSignalDSL.g:16590:1: ( ( '<' ) )
+            // InternalSignalDSL.g:16852:1: ( ( ( '<' ) ) )
+            // InternalSignalDSL.g:16853:1: ( ( '<' ) )
             {
-            // InternalSignalDSL.g:16590:1: ( ( '<' ) )
-            // InternalSignalDSL.g:16591:2: ( '<' )
+            // InternalSignalDSL.g:16853:1: ( ( '<' ) )
+            // InternalSignalDSL.g:16854:2: ( '<' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getLessThanSignKeyword_1_4_2_0()); 
             }
-            // InternalSignalDSL.g:16592:2: ( '<' )
-            // InternalSignalDSL.g:16592:3: '<'
+            // InternalSignalDSL.g:16855:2: ( '<' )
+            // InternalSignalDSL.g:16855:3: '<'
             {
             match(input,27,FOLLOW_2); if (state.failed) return ;
 
@@ -54863,16 +55648,16 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_2__1"
-    // InternalSignalDSL.g:16600: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:16863: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:16604:1: ( rule__JvmParameterizedTypeReference__Group_1_4_2__1__Impl rule__JvmParameterizedTypeReference__Group_1_4_2__2 )
-            // InternalSignalDSL.g:16605:2: rule__JvmParameterizedTypeReference__Group_1_4_2__1__Impl rule__JvmParameterizedTypeReference__Group_1_4_2__2
+            // InternalSignalDSL.g:16867:1: ( rule__JvmParameterizedTypeReference__Group_1_4_2__1__Impl rule__JvmParameterizedTypeReference__Group_1_4_2__2 )
+            // InternalSignalDSL.g:16868:2: rule__JvmParameterizedTypeReference__Group_1_4_2__1__Impl rule__JvmParameterizedTypeReference__Group_1_4_2__2
             {
-            pushFollow(FOLLOW_68);
+            pushFollow(FOLLOW_73);
             rule__JvmParameterizedTypeReference__Group_1_4_2__1__Impl();
 
             state._fsp--;
@@ -54901,23 +55686,23 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_2__1__Impl"
-    // InternalSignalDSL.g:16612:1: rule__JvmParameterizedTypeReference__Group_1_4_2__1__Impl : ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1 ) ) ;
+    // InternalSignalDSL.g:16875: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:16616:1: ( ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1 ) ) )
-            // InternalSignalDSL.g:16617:1: ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1 ) )
+            // InternalSignalDSL.g:16879:1: ( ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1 ) ) )
+            // InternalSignalDSL.g:16880:1: ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1 ) )
             {
-            // InternalSignalDSL.g:16617:1: ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1 ) )
-            // InternalSignalDSL.g:16618:2: ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1 )
+            // InternalSignalDSL.g:16880:1: ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1 ) )
+            // InternalSignalDSL.g:16881:2: ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsAssignment_1_4_2_1()); 
             }
-            // InternalSignalDSL.g:16619:2: ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1 )
-            // InternalSignalDSL.g:16619:3: rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1
+            // InternalSignalDSL.g:16882:2: ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1 )
+            // InternalSignalDSL.g:16882:3: rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1
             {
             pushFollow(FOLLOW_2);
             rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1();
@@ -54952,16 +55737,16 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_2__2"
-    // InternalSignalDSL.g:16627: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:16890: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:16631:1: ( rule__JvmParameterizedTypeReference__Group_1_4_2__2__Impl rule__JvmParameterizedTypeReference__Group_1_4_2__3 )
-            // InternalSignalDSL.g:16632:2: rule__JvmParameterizedTypeReference__Group_1_4_2__2__Impl rule__JvmParameterizedTypeReference__Group_1_4_2__3
+            // InternalSignalDSL.g:16894:1: ( rule__JvmParameterizedTypeReference__Group_1_4_2__2__Impl rule__JvmParameterizedTypeReference__Group_1_4_2__3 )
+            // InternalSignalDSL.g:16895:2: rule__JvmParameterizedTypeReference__Group_1_4_2__2__Impl rule__JvmParameterizedTypeReference__Group_1_4_2__3
             {
-            pushFollow(FOLLOW_68);
+            pushFollow(FOLLOW_73);
             rule__JvmParameterizedTypeReference__Group_1_4_2__2__Impl();
 
             state._fsp--;
@@ -54990,37 +55775,37 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_2__2__Impl"
-    // InternalSignalDSL.g:16639:1: rule__JvmParameterizedTypeReference__Group_1_4_2__2__Impl : ( ( rule__JvmParameterizedTypeReference__Group_1_4_2_2__0 )* ) ;
+    // InternalSignalDSL.g:16902: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:16643:1: ( ( ( rule__JvmParameterizedTypeReference__Group_1_4_2_2__0 )* ) )
-            // InternalSignalDSL.g:16644:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4_2_2__0 )* )
+            // InternalSignalDSL.g:16906:1: ( ( ( rule__JvmParameterizedTypeReference__Group_1_4_2_2__0 )* ) )
+            // InternalSignalDSL.g:16907:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4_2_2__0 )* )
             {
-            // InternalSignalDSL.g:16644:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4_2_2__0 )* )
-            // InternalSignalDSL.g:16645:2: ( rule__JvmParameterizedTypeReference__Group_1_4_2_2__0 )*
+            // InternalSignalDSL.g:16907:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4_2_2__0 )* )
+            // InternalSignalDSL.g:16908:2: ( rule__JvmParameterizedTypeReference__Group_1_4_2_2__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1_4_2_2()); 
             }
-            // InternalSignalDSL.g:16646:2: ( rule__JvmParameterizedTypeReference__Group_1_4_2_2__0 )*
-            loop135:
+            // InternalSignalDSL.g:16909:2: ( rule__JvmParameterizedTypeReference__Group_1_4_2_2__0 )*
+            loop138:
             do {
-                int alt135=2;
-                int LA135_0 = input.LA(1);
+                int alt138=2;
+                int LA138_0 = input.LA(1);
 
-                if ( (LA135_0==78) ) {
-                    alt135=1;
+                if ( (LA138_0==76) ) {
+                    alt138=1;
                 }
 
 
-                switch (alt135) {
+                switch (alt138) {
             	case 1 :
-            	    // InternalSignalDSL.g:16646:3: rule__JvmParameterizedTypeReference__Group_1_4_2_2__0
+            	    // InternalSignalDSL.g:16909:3: rule__JvmParameterizedTypeReference__Group_1_4_2_2__0
             	    {
-            	    pushFollow(FOLLOW_29);
+            	    pushFollow(FOLLOW_34);
             	    rule__JvmParameterizedTypeReference__Group_1_4_2_2__0();
 
             	    state._fsp--;
@@ -55030,7 +55815,7 @@
             	    break;
 
             	default :
-            	    break loop135;
+            	    break loop138;
                 }
             } while (true);
 
@@ -55059,14 +55844,14 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_2__3"
-    // InternalSignalDSL.g:16654:1: rule__JvmParameterizedTypeReference__Group_1_4_2__3 : rule__JvmParameterizedTypeReference__Group_1_4_2__3__Impl ;
+    // InternalSignalDSL.g:16917: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:16658:1: ( rule__JvmParameterizedTypeReference__Group_1_4_2__3__Impl )
-            // InternalSignalDSL.g:16659:2: rule__JvmParameterizedTypeReference__Group_1_4_2__3__Impl
+            // InternalSignalDSL.g:16921:1: ( rule__JvmParameterizedTypeReference__Group_1_4_2__3__Impl )
+            // InternalSignalDSL.g:16922:2: rule__JvmParameterizedTypeReference__Group_1_4_2__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__JvmParameterizedTypeReference__Group_1_4_2__3__Impl();
@@ -55092,17 +55877,17 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_2__3__Impl"
-    // InternalSignalDSL.g:16665:1: rule__JvmParameterizedTypeReference__Group_1_4_2__3__Impl : ( '>' ) ;
+    // InternalSignalDSL.g:16928: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:16669:1: ( ( '>' ) )
-            // InternalSignalDSL.g:16670:1: ( '>' )
+            // InternalSignalDSL.g:16932:1: ( ( '>' ) )
+            // InternalSignalDSL.g:16933:1: ( '>' )
             {
-            // InternalSignalDSL.g:16670:1: ( '>' )
-            // InternalSignalDSL.g:16671:2: '>'
+            // InternalSignalDSL.g:16933:1: ( '>' )
+            // InternalSignalDSL.g:16934:2: '>'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGreaterThanSignKeyword_1_4_2_3()); 
@@ -55133,16 +55918,16 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_2_2__0"
-    // InternalSignalDSL.g:16681: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:16944: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:16685:1: ( rule__JvmParameterizedTypeReference__Group_1_4_2_2__0__Impl rule__JvmParameterizedTypeReference__Group_1_4_2_2__1 )
-            // InternalSignalDSL.g:16686:2: rule__JvmParameterizedTypeReference__Group_1_4_2_2__0__Impl rule__JvmParameterizedTypeReference__Group_1_4_2_2__1
+            // InternalSignalDSL.g:16948:1: ( rule__JvmParameterizedTypeReference__Group_1_4_2_2__0__Impl rule__JvmParameterizedTypeReference__Group_1_4_2_2__1 )
+            // InternalSignalDSL.g:16949:2: rule__JvmParameterizedTypeReference__Group_1_4_2_2__0__Impl rule__JvmParameterizedTypeReference__Group_1_4_2_2__1
             {
-            pushFollow(FOLLOW_67);
+            pushFollow(FOLLOW_72);
             rule__JvmParameterizedTypeReference__Group_1_4_2_2__0__Impl();
 
             state._fsp--;
@@ -55171,22 +55956,22 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_2_2__0__Impl"
-    // InternalSignalDSL.g:16693:1: rule__JvmParameterizedTypeReference__Group_1_4_2_2__0__Impl : ( ',' ) ;
+    // InternalSignalDSL.g:16956: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:16697:1: ( ( ',' ) )
-            // InternalSignalDSL.g:16698:1: ( ',' )
+            // InternalSignalDSL.g:16960:1: ( ( ',' ) )
+            // InternalSignalDSL.g:16961:1: ( ',' )
             {
-            // InternalSignalDSL.g:16698:1: ( ',' )
-            // InternalSignalDSL.g:16699:2: ','
+            // InternalSignalDSL.g:16961:1: ( ',' )
+            // InternalSignalDSL.g:16962:2: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getCommaKeyword_1_4_2_2_0()); 
             }
-            match(input,78,FOLLOW_2); if (state.failed) return ;
+            match(input,76,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getCommaKeyword_1_4_2_2_0()); 
             }
@@ -55212,14 +55997,14 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_2_2__1"
-    // InternalSignalDSL.g:16708:1: rule__JvmParameterizedTypeReference__Group_1_4_2_2__1 : rule__JvmParameterizedTypeReference__Group_1_4_2_2__1__Impl ;
+    // InternalSignalDSL.g:16971: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:16712:1: ( rule__JvmParameterizedTypeReference__Group_1_4_2_2__1__Impl )
-            // InternalSignalDSL.g:16713:2: rule__JvmParameterizedTypeReference__Group_1_4_2_2__1__Impl
+            // InternalSignalDSL.g:16975:1: ( rule__JvmParameterizedTypeReference__Group_1_4_2_2__1__Impl )
+            // InternalSignalDSL.g:16976:2: rule__JvmParameterizedTypeReference__Group_1_4_2_2__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__JvmParameterizedTypeReference__Group_1_4_2_2__1__Impl();
@@ -55245,23 +56030,23 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_2_2__1__Impl"
-    // InternalSignalDSL.g:16719:1: rule__JvmParameterizedTypeReference__Group_1_4_2_2__1__Impl : ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1 ) ) ;
+    // InternalSignalDSL.g:16982: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:16723:1: ( ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1 ) ) )
-            // InternalSignalDSL.g:16724:1: ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1 ) )
+            // InternalSignalDSL.g:16986:1: ( ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1 ) ) )
+            // InternalSignalDSL.g:16987:1: ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1 ) )
             {
-            // InternalSignalDSL.g:16724:1: ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1 ) )
-            // InternalSignalDSL.g:16725:2: ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1 )
+            // InternalSignalDSL.g:16987:1: ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1 ) )
+            // InternalSignalDSL.g:16988:2: ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsAssignment_1_4_2_2_1()); 
             }
-            // InternalSignalDSL.g:16726:2: ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1 )
-            // InternalSignalDSL.g:16726:3: rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1
+            // InternalSignalDSL.g:16989:2: ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1 )
+            // InternalSignalDSL.g:16989:3: rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1
             {
             pushFollow(FOLLOW_2);
             rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1();
@@ -55296,16 +56081,16 @@
 
 
     // $ANTLR start "rule__JvmWildcardTypeReference__Group__0"
-    // InternalSignalDSL.g:16735:1: rule__JvmWildcardTypeReference__Group__0 : rule__JvmWildcardTypeReference__Group__0__Impl rule__JvmWildcardTypeReference__Group__1 ;
+    // InternalSignalDSL.g:16998: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:16739:1: ( rule__JvmWildcardTypeReference__Group__0__Impl rule__JvmWildcardTypeReference__Group__1 )
-            // InternalSignalDSL.g:16740:2: rule__JvmWildcardTypeReference__Group__0__Impl rule__JvmWildcardTypeReference__Group__1
+            // InternalSignalDSL.g:17002:1: ( rule__JvmWildcardTypeReference__Group__0__Impl rule__JvmWildcardTypeReference__Group__1 )
+            // InternalSignalDSL.g:17003:2: rule__JvmWildcardTypeReference__Group__0__Impl rule__JvmWildcardTypeReference__Group__1
             {
-            pushFollow(FOLLOW_67);
+            pushFollow(FOLLOW_72);
             rule__JvmWildcardTypeReference__Group__0__Impl();
 
             state._fsp--;
@@ -55334,23 +56119,23 @@
 
 
     // $ANTLR start "rule__JvmWildcardTypeReference__Group__0__Impl"
-    // InternalSignalDSL.g:16747:1: rule__JvmWildcardTypeReference__Group__0__Impl : ( () ) ;
+    // InternalSignalDSL.g:17010:1: rule__JvmWildcardTypeReference__Group__0__Impl : ( () ) ;
     public final void rule__JvmWildcardTypeReference__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:16751:1: ( ( () ) )
-            // InternalSignalDSL.g:16752:1: ( () )
+            // InternalSignalDSL.g:17014:1: ( ( () ) )
+            // InternalSignalDSL.g:17015:1: ( () )
             {
-            // InternalSignalDSL.g:16752:1: ( () )
-            // InternalSignalDSL.g:16753:2: ()
+            // InternalSignalDSL.g:17015:1: ( () )
+            // InternalSignalDSL.g:17016:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmWildcardTypeReferenceAccess().getJvmWildcardTypeReferenceAction_0()); 
             }
-            // InternalSignalDSL.g:16754:2: ()
-            // InternalSignalDSL.g:16754:3: 
+            // InternalSignalDSL.g:17017:2: ()
+            // InternalSignalDSL.g:17017:3: 
             {
             }
 
@@ -55375,16 +56160,16 @@
 
 
     // $ANTLR start "rule__JvmWildcardTypeReference__Group__1"
-    // InternalSignalDSL.g:16762:1: rule__JvmWildcardTypeReference__Group__1 : rule__JvmWildcardTypeReference__Group__1__Impl rule__JvmWildcardTypeReference__Group__2 ;
+    // InternalSignalDSL.g:17025: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:16766:1: ( rule__JvmWildcardTypeReference__Group__1__Impl rule__JvmWildcardTypeReference__Group__2 )
-            // InternalSignalDSL.g:16767:2: rule__JvmWildcardTypeReference__Group__1__Impl rule__JvmWildcardTypeReference__Group__2
+            // InternalSignalDSL.g:17029:1: ( rule__JvmWildcardTypeReference__Group__1__Impl rule__JvmWildcardTypeReference__Group__2 )
+            // InternalSignalDSL.g:17030:2: rule__JvmWildcardTypeReference__Group__1__Impl rule__JvmWildcardTypeReference__Group__2
             {
-            pushFollow(FOLLOW_110);
+            pushFollow(FOLLOW_115);
             rule__JvmWildcardTypeReference__Group__1__Impl();
 
             state._fsp--;
@@ -55413,22 +56198,22 @@
 
 
     // $ANTLR start "rule__JvmWildcardTypeReference__Group__1__Impl"
-    // InternalSignalDSL.g:16774:1: rule__JvmWildcardTypeReference__Group__1__Impl : ( '?' ) ;
+    // InternalSignalDSL.g:17037:1: rule__JvmWildcardTypeReference__Group__1__Impl : ( '?' ) ;
     public final void rule__JvmWildcardTypeReference__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:16778:1: ( ( '?' ) )
-            // InternalSignalDSL.g:16779:1: ( '?' )
+            // InternalSignalDSL.g:17041:1: ( ( '?' ) )
+            // InternalSignalDSL.g:17042:1: ( '?' )
             {
-            // InternalSignalDSL.g:16779:1: ( '?' )
-            // InternalSignalDSL.g:16780:2: '?'
+            // InternalSignalDSL.g:17042:1: ( '?' )
+            // InternalSignalDSL.g:17043:2: '?'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmWildcardTypeReferenceAccess().getQuestionMarkKeyword_1()); 
             }
-            match(input,101,FOLLOW_2); if (state.failed) return ;
+            match(input,99,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getJvmWildcardTypeReferenceAccess().getQuestionMarkKeyword_1()); 
             }
@@ -55454,14 +56239,14 @@
 
 
     // $ANTLR start "rule__JvmWildcardTypeReference__Group__2"
-    // InternalSignalDSL.g:16789:1: rule__JvmWildcardTypeReference__Group__2 : rule__JvmWildcardTypeReference__Group__2__Impl ;
+    // InternalSignalDSL.g:17052: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:16793:1: ( rule__JvmWildcardTypeReference__Group__2__Impl )
-            // InternalSignalDSL.g:16794:2: rule__JvmWildcardTypeReference__Group__2__Impl
+            // InternalSignalDSL.g:17056:1: ( rule__JvmWildcardTypeReference__Group__2__Impl )
+            // InternalSignalDSL.g:17057:2: rule__JvmWildcardTypeReference__Group__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__JvmWildcardTypeReference__Group__2__Impl();
@@ -55487,31 +56272,31 @@
 
 
     // $ANTLR start "rule__JvmWildcardTypeReference__Group__2__Impl"
-    // InternalSignalDSL.g:16800:1: rule__JvmWildcardTypeReference__Group__2__Impl : ( ( rule__JvmWildcardTypeReference__Alternatives_2 )? ) ;
+    // InternalSignalDSL.g:17063: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:16804:1: ( ( ( rule__JvmWildcardTypeReference__Alternatives_2 )? ) )
-            // InternalSignalDSL.g:16805:1: ( ( rule__JvmWildcardTypeReference__Alternatives_2 )? )
+            // InternalSignalDSL.g:17067:1: ( ( ( rule__JvmWildcardTypeReference__Alternatives_2 )? ) )
+            // InternalSignalDSL.g:17068:1: ( ( rule__JvmWildcardTypeReference__Alternatives_2 )? )
             {
-            // InternalSignalDSL.g:16805:1: ( ( rule__JvmWildcardTypeReference__Alternatives_2 )? )
-            // InternalSignalDSL.g:16806:2: ( rule__JvmWildcardTypeReference__Alternatives_2 )?
+            // InternalSignalDSL.g:17068:1: ( ( rule__JvmWildcardTypeReference__Alternatives_2 )? )
+            // InternalSignalDSL.g:17069:2: ( rule__JvmWildcardTypeReference__Alternatives_2 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmWildcardTypeReferenceAccess().getAlternatives_2()); 
             }
-            // InternalSignalDSL.g:16807:2: ( rule__JvmWildcardTypeReference__Alternatives_2 )?
-            int alt136=2;
-            int LA136_0 = input.LA(1);
+            // InternalSignalDSL.g:17070:2: ( rule__JvmWildcardTypeReference__Alternatives_2 )?
+            int alt139=2;
+            int LA139_0 = input.LA(1);
 
-            if ( (LA136_0==45||LA136_0==49) ) {
-                alt136=1;
+            if ( (LA139_0==45||LA139_0==49) ) {
+                alt139=1;
             }
-            switch (alt136) {
+            switch (alt139) {
                 case 1 :
-                    // InternalSignalDSL.g:16807:3: rule__JvmWildcardTypeReference__Alternatives_2
+                    // InternalSignalDSL.g:17070:3: rule__JvmWildcardTypeReference__Alternatives_2
                     {
                     pushFollow(FOLLOW_2);
                     rule__JvmWildcardTypeReference__Alternatives_2();
@@ -55549,16 +56334,16 @@
 
 
     // $ANTLR start "rule__JvmWildcardTypeReference__Group_2_0__0"
-    // InternalSignalDSL.g:16816:1: rule__JvmWildcardTypeReference__Group_2_0__0 : rule__JvmWildcardTypeReference__Group_2_0__0__Impl rule__JvmWildcardTypeReference__Group_2_0__1 ;
+    // InternalSignalDSL.g:17079: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:16820:1: ( rule__JvmWildcardTypeReference__Group_2_0__0__Impl rule__JvmWildcardTypeReference__Group_2_0__1 )
-            // InternalSignalDSL.g:16821:2: rule__JvmWildcardTypeReference__Group_2_0__0__Impl rule__JvmWildcardTypeReference__Group_2_0__1
+            // InternalSignalDSL.g:17083:1: ( rule__JvmWildcardTypeReference__Group_2_0__0__Impl rule__JvmWildcardTypeReference__Group_2_0__1 )
+            // InternalSignalDSL.g:17084:2: rule__JvmWildcardTypeReference__Group_2_0__0__Impl rule__JvmWildcardTypeReference__Group_2_0__1
             {
-            pushFollow(FOLLOW_111);
+            pushFollow(FOLLOW_116);
             rule__JvmWildcardTypeReference__Group_2_0__0__Impl();
 
             state._fsp--;
@@ -55587,23 +56372,23 @@
 
 
     // $ANTLR start "rule__JvmWildcardTypeReference__Group_2_0__0__Impl"
-    // InternalSignalDSL.g:16828:1: rule__JvmWildcardTypeReference__Group_2_0__0__Impl : ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0 ) ) ;
+    // InternalSignalDSL.g:17091: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:16832:1: ( ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0 ) ) )
-            // InternalSignalDSL.g:16833:1: ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0 ) )
+            // InternalSignalDSL.g:17095:1: ( ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0 ) ) )
+            // InternalSignalDSL.g:17096:1: ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0 ) )
             {
-            // InternalSignalDSL.g:16833:1: ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0 ) )
-            // InternalSignalDSL.g:16834:2: ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0 )
+            // InternalSignalDSL.g:17096:1: ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0 ) )
+            // InternalSignalDSL.g:17097:2: ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsAssignment_2_0_0()); 
             }
-            // InternalSignalDSL.g:16835:2: ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0 )
-            // InternalSignalDSL.g:16835:3: rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0
+            // InternalSignalDSL.g:17098:2: ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0 )
+            // InternalSignalDSL.g:17098:3: rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0
             {
             pushFollow(FOLLOW_2);
             rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0();
@@ -55638,14 +56423,14 @@
 
 
     // $ANTLR start "rule__JvmWildcardTypeReference__Group_2_0__1"
-    // InternalSignalDSL.g:16843:1: rule__JvmWildcardTypeReference__Group_2_0__1 : rule__JvmWildcardTypeReference__Group_2_0__1__Impl ;
+    // InternalSignalDSL.g:17106: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:16847:1: ( rule__JvmWildcardTypeReference__Group_2_0__1__Impl )
-            // InternalSignalDSL.g:16848:2: rule__JvmWildcardTypeReference__Group_2_0__1__Impl
+            // InternalSignalDSL.g:17110:1: ( rule__JvmWildcardTypeReference__Group_2_0__1__Impl )
+            // InternalSignalDSL.g:17111:2: rule__JvmWildcardTypeReference__Group_2_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__JvmWildcardTypeReference__Group_2_0__1__Impl();
@@ -55671,37 +56456,37 @@
 
 
     // $ANTLR start "rule__JvmWildcardTypeReference__Group_2_0__1__Impl"
-    // InternalSignalDSL.g:16854:1: rule__JvmWildcardTypeReference__Group_2_0__1__Impl : ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1 )* ) ;
+    // InternalSignalDSL.g:17117: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:16858:1: ( ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1 )* ) )
-            // InternalSignalDSL.g:16859:1: ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1 )* )
+            // InternalSignalDSL.g:17121:1: ( ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1 )* ) )
+            // InternalSignalDSL.g:17122:1: ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1 )* )
             {
-            // InternalSignalDSL.g:16859:1: ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1 )* )
-            // InternalSignalDSL.g:16860:2: ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1 )*
+            // InternalSignalDSL.g:17122:1: ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1 )* )
+            // InternalSignalDSL.g:17123:2: ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsAssignment_2_0_1()); 
             }
-            // InternalSignalDSL.g:16861:2: ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1 )*
-            loop137:
+            // InternalSignalDSL.g:17124:2: ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1 )*
+            loop140:
             do {
-                int alt137=2;
-                int LA137_0 = input.LA(1);
+                int alt140=2;
+                int LA140_0 = input.LA(1);
 
-                if ( (LA137_0==102) ) {
-                    alt137=1;
+                if ( (LA140_0==100) ) {
+                    alt140=1;
                 }
 
 
-                switch (alt137) {
+                switch (alt140) {
             	case 1 :
-            	    // InternalSignalDSL.g:16861:3: rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1
+            	    // InternalSignalDSL.g:17124:3: rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1
             	    {
-            	    pushFollow(FOLLOW_112);
+            	    pushFollow(FOLLOW_117);
             	    rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1();
 
             	    state._fsp--;
@@ -55711,7 +56496,7 @@
             	    break;
 
             	default :
-            	    break loop137;
+            	    break loop140;
                 }
             } while (true);
 
@@ -55740,16 +56525,16 @@
 
 
     // $ANTLR start "rule__JvmWildcardTypeReference__Group_2_1__0"
-    // InternalSignalDSL.g:16870:1: rule__JvmWildcardTypeReference__Group_2_1__0 : rule__JvmWildcardTypeReference__Group_2_1__0__Impl rule__JvmWildcardTypeReference__Group_2_1__1 ;
+    // InternalSignalDSL.g:17133: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:16874:1: ( rule__JvmWildcardTypeReference__Group_2_1__0__Impl rule__JvmWildcardTypeReference__Group_2_1__1 )
-            // InternalSignalDSL.g:16875:2: rule__JvmWildcardTypeReference__Group_2_1__0__Impl rule__JvmWildcardTypeReference__Group_2_1__1
+            // InternalSignalDSL.g:17137:1: ( rule__JvmWildcardTypeReference__Group_2_1__0__Impl rule__JvmWildcardTypeReference__Group_2_1__1 )
+            // InternalSignalDSL.g:17138:2: rule__JvmWildcardTypeReference__Group_2_1__0__Impl rule__JvmWildcardTypeReference__Group_2_1__1
             {
-            pushFollow(FOLLOW_111);
+            pushFollow(FOLLOW_116);
             rule__JvmWildcardTypeReference__Group_2_1__0__Impl();
 
             state._fsp--;
@@ -55778,23 +56563,23 @@
 
 
     // $ANTLR start "rule__JvmWildcardTypeReference__Group_2_1__0__Impl"
-    // InternalSignalDSL.g:16882:1: rule__JvmWildcardTypeReference__Group_2_1__0__Impl : ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0 ) ) ;
+    // InternalSignalDSL.g:17145: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:16886:1: ( ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0 ) ) )
-            // InternalSignalDSL.g:16887:1: ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0 ) )
+            // InternalSignalDSL.g:17149:1: ( ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0 ) ) )
+            // InternalSignalDSL.g:17150:1: ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0 ) )
             {
-            // InternalSignalDSL.g:16887:1: ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0 ) )
-            // InternalSignalDSL.g:16888:2: ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0 )
+            // InternalSignalDSL.g:17150:1: ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0 ) )
+            // InternalSignalDSL.g:17151:2: ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsAssignment_2_1_0()); 
             }
-            // InternalSignalDSL.g:16889:2: ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0 )
-            // InternalSignalDSL.g:16889:3: rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0
+            // InternalSignalDSL.g:17152:2: ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0 )
+            // InternalSignalDSL.g:17152:3: rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0
             {
             pushFollow(FOLLOW_2);
             rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0();
@@ -55829,14 +56614,14 @@
 
 
     // $ANTLR start "rule__JvmWildcardTypeReference__Group_2_1__1"
-    // InternalSignalDSL.g:16897:1: rule__JvmWildcardTypeReference__Group_2_1__1 : rule__JvmWildcardTypeReference__Group_2_1__1__Impl ;
+    // InternalSignalDSL.g:17160: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:16901:1: ( rule__JvmWildcardTypeReference__Group_2_1__1__Impl )
-            // InternalSignalDSL.g:16902:2: rule__JvmWildcardTypeReference__Group_2_1__1__Impl
+            // InternalSignalDSL.g:17164:1: ( rule__JvmWildcardTypeReference__Group_2_1__1__Impl )
+            // InternalSignalDSL.g:17165:2: rule__JvmWildcardTypeReference__Group_2_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__JvmWildcardTypeReference__Group_2_1__1__Impl();
@@ -55862,37 +56647,37 @@
 
 
     // $ANTLR start "rule__JvmWildcardTypeReference__Group_2_1__1__Impl"
-    // InternalSignalDSL.g:16908:1: rule__JvmWildcardTypeReference__Group_2_1__1__Impl : ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1 )* ) ;
+    // InternalSignalDSL.g:17171: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:16912:1: ( ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1 )* ) )
-            // InternalSignalDSL.g:16913:1: ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1 )* )
+            // InternalSignalDSL.g:17175:1: ( ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1 )* ) )
+            // InternalSignalDSL.g:17176:1: ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1 )* )
             {
-            // InternalSignalDSL.g:16913:1: ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1 )* )
-            // InternalSignalDSL.g:16914:2: ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1 )*
+            // InternalSignalDSL.g:17176:1: ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1 )* )
+            // InternalSignalDSL.g:17177:2: ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsAssignment_2_1_1()); 
             }
-            // InternalSignalDSL.g:16915:2: ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1 )*
-            loop138:
+            // InternalSignalDSL.g:17178:2: ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1 )*
+            loop141:
             do {
-                int alt138=2;
-                int LA138_0 = input.LA(1);
+                int alt141=2;
+                int LA141_0 = input.LA(1);
 
-                if ( (LA138_0==102) ) {
-                    alt138=1;
+                if ( (LA141_0==100) ) {
+                    alt141=1;
                 }
 
 
-                switch (alt138) {
+                switch (alt141) {
             	case 1 :
-            	    // InternalSignalDSL.g:16915:3: rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1
+            	    // InternalSignalDSL.g:17178:3: rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1
             	    {
-            	    pushFollow(FOLLOW_112);
+            	    pushFollow(FOLLOW_117);
             	    rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1();
 
             	    state._fsp--;
@@ -55902,7 +56687,7 @@
             	    break;
 
             	default :
-            	    break loop138;
+            	    break loop141;
                 }
             } while (true);
 
@@ -55931,16 +56716,16 @@
 
 
     // $ANTLR start "rule__JvmUpperBound__Group__0"
-    // InternalSignalDSL.g:16924:1: rule__JvmUpperBound__Group__0 : rule__JvmUpperBound__Group__0__Impl rule__JvmUpperBound__Group__1 ;
+    // InternalSignalDSL.g:17187: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:16928:1: ( rule__JvmUpperBound__Group__0__Impl rule__JvmUpperBound__Group__1 )
-            // InternalSignalDSL.g:16929:2: rule__JvmUpperBound__Group__0__Impl rule__JvmUpperBound__Group__1
+            // InternalSignalDSL.g:17191:1: ( rule__JvmUpperBound__Group__0__Impl rule__JvmUpperBound__Group__1 )
+            // InternalSignalDSL.g:17192:2: rule__JvmUpperBound__Group__0__Impl rule__JvmUpperBound__Group__1
             {
-            pushFollow(FOLLOW_47);
+            pushFollow(FOLLOW_52);
             rule__JvmUpperBound__Group__0__Impl();
 
             state._fsp--;
@@ -55969,17 +56754,17 @@
 
 
     // $ANTLR start "rule__JvmUpperBound__Group__0__Impl"
-    // InternalSignalDSL.g:16936:1: rule__JvmUpperBound__Group__0__Impl : ( 'extends' ) ;
+    // InternalSignalDSL.g:17199:1: rule__JvmUpperBound__Group__0__Impl : ( 'extends' ) ;
     public final void rule__JvmUpperBound__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:16940:1: ( ( 'extends' ) )
-            // InternalSignalDSL.g:16941:1: ( 'extends' )
+            // InternalSignalDSL.g:17203:1: ( ( 'extends' ) )
+            // InternalSignalDSL.g:17204:1: ( 'extends' )
             {
-            // InternalSignalDSL.g:16941:1: ( 'extends' )
-            // InternalSignalDSL.g:16942:2: 'extends'
+            // InternalSignalDSL.g:17204:1: ( 'extends' )
+            // InternalSignalDSL.g:17205:2: 'extends'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmUpperBoundAccess().getExtendsKeyword_0()); 
@@ -56010,14 +56795,14 @@
 
 
     // $ANTLR start "rule__JvmUpperBound__Group__1"
-    // InternalSignalDSL.g:16951:1: rule__JvmUpperBound__Group__1 : rule__JvmUpperBound__Group__1__Impl ;
+    // InternalSignalDSL.g:17214: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:16955:1: ( rule__JvmUpperBound__Group__1__Impl )
-            // InternalSignalDSL.g:16956:2: rule__JvmUpperBound__Group__1__Impl
+            // InternalSignalDSL.g:17218:1: ( rule__JvmUpperBound__Group__1__Impl )
+            // InternalSignalDSL.g:17219:2: rule__JvmUpperBound__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__JvmUpperBound__Group__1__Impl();
@@ -56043,23 +56828,23 @@
 
 
     // $ANTLR start "rule__JvmUpperBound__Group__1__Impl"
-    // InternalSignalDSL.g:16962:1: rule__JvmUpperBound__Group__1__Impl : ( ( rule__JvmUpperBound__TypeReferenceAssignment_1 ) ) ;
+    // InternalSignalDSL.g:17225: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:16966:1: ( ( ( rule__JvmUpperBound__TypeReferenceAssignment_1 ) ) )
-            // InternalSignalDSL.g:16967:1: ( ( rule__JvmUpperBound__TypeReferenceAssignment_1 ) )
+            // InternalSignalDSL.g:17229:1: ( ( ( rule__JvmUpperBound__TypeReferenceAssignment_1 ) ) )
+            // InternalSignalDSL.g:17230:1: ( ( rule__JvmUpperBound__TypeReferenceAssignment_1 ) )
             {
-            // InternalSignalDSL.g:16967:1: ( ( rule__JvmUpperBound__TypeReferenceAssignment_1 ) )
-            // InternalSignalDSL.g:16968:2: ( rule__JvmUpperBound__TypeReferenceAssignment_1 )
+            // InternalSignalDSL.g:17230:1: ( ( rule__JvmUpperBound__TypeReferenceAssignment_1 ) )
+            // InternalSignalDSL.g:17231:2: ( rule__JvmUpperBound__TypeReferenceAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmUpperBoundAccess().getTypeReferenceAssignment_1()); 
             }
-            // InternalSignalDSL.g:16969:2: ( rule__JvmUpperBound__TypeReferenceAssignment_1 )
-            // InternalSignalDSL.g:16969:3: rule__JvmUpperBound__TypeReferenceAssignment_1
+            // InternalSignalDSL.g:17232:2: ( rule__JvmUpperBound__TypeReferenceAssignment_1 )
+            // InternalSignalDSL.g:17232:3: rule__JvmUpperBound__TypeReferenceAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__JvmUpperBound__TypeReferenceAssignment_1();
@@ -56094,16 +56879,16 @@
 
 
     // $ANTLR start "rule__JvmUpperBoundAnded__Group__0"
-    // InternalSignalDSL.g:16978:1: rule__JvmUpperBoundAnded__Group__0 : rule__JvmUpperBoundAnded__Group__0__Impl rule__JvmUpperBoundAnded__Group__1 ;
+    // InternalSignalDSL.g:17241: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:16982:1: ( rule__JvmUpperBoundAnded__Group__0__Impl rule__JvmUpperBoundAnded__Group__1 )
-            // InternalSignalDSL.g:16983:2: rule__JvmUpperBoundAnded__Group__0__Impl rule__JvmUpperBoundAnded__Group__1
+            // InternalSignalDSL.g:17245:1: ( rule__JvmUpperBoundAnded__Group__0__Impl rule__JvmUpperBoundAnded__Group__1 )
+            // InternalSignalDSL.g:17246:2: rule__JvmUpperBoundAnded__Group__0__Impl rule__JvmUpperBoundAnded__Group__1
             {
-            pushFollow(FOLLOW_47);
+            pushFollow(FOLLOW_52);
             rule__JvmUpperBoundAnded__Group__0__Impl();
 
             state._fsp--;
@@ -56132,22 +56917,22 @@
 
 
     // $ANTLR start "rule__JvmUpperBoundAnded__Group__0__Impl"
-    // InternalSignalDSL.g:16990:1: rule__JvmUpperBoundAnded__Group__0__Impl : ( '&' ) ;
+    // InternalSignalDSL.g:17253:1: rule__JvmUpperBoundAnded__Group__0__Impl : ( '&' ) ;
     public final void rule__JvmUpperBoundAnded__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:16994:1: ( ( '&' ) )
-            // InternalSignalDSL.g:16995:1: ( '&' )
+            // InternalSignalDSL.g:17257:1: ( ( '&' ) )
+            // InternalSignalDSL.g:17258:1: ( '&' )
             {
-            // InternalSignalDSL.g:16995:1: ( '&' )
-            // InternalSignalDSL.g:16996:2: '&'
+            // InternalSignalDSL.g:17258:1: ( '&' )
+            // InternalSignalDSL.g:17259:2: '&'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmUpperBoundAndedAccess().getAmpersandKeyword_0()); 
             }
-            match(input,102,FOLLOW_2); if (state.failed) return ;
+            match(input,100,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getJvmUpperBoundAndedAccess().getAmpersandKeyword_0()); 
             }
@@ -56173,14 +56958,14 @@
 
 
     // $ANTLR start "rule__JvmUpperBoundAnded__Group__1"
-    // InternalSignalDSL.g:17005:1: rule__JvmUpperBoundAnded__Group__1 : rule__JvmUpperBoundAnded__Group__1__Impl ;
+    // InternalSignalDSL.g:17268: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:17009:1: ( rule__JvmUpperBoundAnded__Group__1__Impl )
-            // InternalSignalDSL.g:17010:2: rule__JvmUpperBoundAnded__Group__1__Impl
+            // InternalSignalDSL.g:17272:1: ( rule__JvmUpperBoundAnded__Group__1__Impl )
+            // InternalSignalDSL.g:17273:2: rule__JvmUpperBoundAnded__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__JvmUpperBoundAnded__Group__1__Impl();
@@ -56206,23 +56991,23 @@
 
 
     // $ANTLR start "rule__JvmUpperBoundAnded__Group__1__Impl"
-    // InternalSignalDSL.g:17016:1: rule__JvmUpperBoundAnded__Group__1__Impl : ( ( rule__JvmUpperBoundAnded__TypeReferenceAssignment_1 ) ) ;
+    // InternalSignalDSL.g:17279: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:17020:1: ( ( ( rule__JvmUpperBoundAnded__TypeReferenceAssignment_1 ) ) )
-            // InternalSignalDSL.g:17021:1: ( ( rule__JvmUpperBoundAnded__TypeReferenceAssignment_1 ) )
+            // InternalSignalDSL.g:17283:1: ( ( ( rule__JvmUpperBoundAnded__TypeReferenceAssignment_1 ) ) )
+            // InternalSignalDSL.g:17284:1: ( ( rule__JvmUpperBoundAnded__TypeReferenceAssignment_1 ) )
             {
-            // InternalSignalDSL.g:17021:1: ( ( rule__JvmUpperBoundAnded__TypeReferenceAssignment_1 ) )
-            // InternalSignalDSL.g:17022:2: ( rule__JvmUpperBoundAnded__TypeReferenceAssignment_1 )
+            // InternalSignalDSL.g:17284:1: ( ( rule__JvmUpperBoundAnded__TypeReferenceAssignment_1 ) )
+            // InternalSignalDSL.g:17285:2: ( rule__JvmUpperBoundAnded__TypeReferenceAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmUpperBoundAndedAccess().getTypeReferenceAssignment_1()); 
             }
-            // InternalSignalDSL.g:17023:2: ( rule__JvmUpperBoundAnded__TypeReferenceAssignment_1 )
-            // InternalSignalDSL.g:17023:3: rule__JvmUpperBoundAnded__TypeReferenceAssignment_1
+            // InternalSignalDSL.g:17286:2: ( rule__JvmUpperBoundAnded__TypeReferenceAssignment_1 )
+            // InternalSignalDSL.g:17286:3: rule__JvmUpperBoundAnded__TypeReferenceAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__JvmUpperBoundAnded__TypeReferenceAssignment_1();
@@ -56257,16 +57042,16 @@
 
 
     // $ANTLR start "rule__JvmLowerBound__Group__0"
-    // InternalSignalDSL.g:17032:1: rule__JvmLowerBound__Group__0 : rule__JvmLowerBound__Group__0__Impl rule__JvmLowerBound__Group__1 ;
+    // InternalSignalDSL.g:17295: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:17036:1: ( rule__JvmLowerBound__Group__0__Impl rule__JvmLowerBound__Group__1 )
-            // InternalSignalDSL.g:17037:2: rule__JvmLowerBound__Group__0__Impl rule__JvmLowerBound__Group__1
+            // InternalSignalDSL.g:17299:1: ( rule__JvmLowerBound__Group__0__Impl rule__JvmLowerBound__Group__1 )
+            // InternalSignalDSL.g:17300:2: rule__JvmLowerBound__Group__0__Impl rule__JvmLowerBound__Group__1
             {
-            pushFollow(FOLLOW_47);
+            pushFollow(FOLLOW_52);
             rule__JvmLowerBound__Group__0__Impl();
 
             state._fsp--;
@@ -56295,17 +57080,17 @@
 
 
     // $ANTLR start "rule__JvmLowerBound__Group__0__Impl"
-    // InternalSignalDSL.g:17044:1: rule__JvmLowerBound__Group__0__Impl : ( 'super' ) ;
+    // InternalSignalDSL.g:17307:1: rule__JvmLowerBound__Group__0__Impl : ( 'super' ) ;
     public final void rule__JvmLowerBound__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:17048:1: ( ( 'super' ) )
-            // InternalSignalDSL.g:17049:1: ( 'super' )
+            // InternalSignalDSL.g:17311:1: ( ( 'super' ) )
+            // InternalSignalDSL.g:17312:1: ( 'super' )
             {
-            // InternalSignalDSL.g:17049:1: ( 'super' )
-            // InternalSignalDSL.g:17050:2: 'super'
+            // InternalSignalDSL.g:17312:1: ( 'super' )
+            // InternalSignalDSL.g:17313:2: 'super'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmLowerBoundAccess().getSuperKeyword_0()); 
@@ -56336,14 +57121,14 @@
 
 
     // $ANTLR start "rule__JvmLowerBound__Group__1"
-    // InternalSignalDSL.g:17059:1: rule__JvmLowerBound__Group__1 : rule__JvmLowerBound__Group__1__Impl ;
+    // InternalSignalDSL.g:17322: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:17063:1: ( rule__JvmLowerBound__Group__1__Impl )
-            // InternalSignalDSL.g:17064:2: rule__JvmLowerBound__Group__1__Impl
+            // InternalSignalDSL.g:17326:1: ( rule__JvmLowerBound__Group__1__Impl )
+            // InternalSignalDSL.g:17327:2: rule__JvmLowerBound__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__JvmLowerBound__Group__1__Impl();
@@ -56369,23 +57154,23 @@
 
 
     // $ANTLR start "rule__JvmLowerBound__Group__1__Impl"
-    // InternalSignalDSL.g:17070:1: rule__JvmLowerBound__Group__1__Impl : ( ( rule__JvmLowerBound__TypeReferenceAssignment_1 ) ) ;
+    // InternalSignalDSL.g:17333: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:17074:1: ( ( ( rule__JvmLowerBound__TypeReferenceAssignment_1 ) ) )
-            // InternalSignalDSL.g:17075:1: ( ( rule__JvmLowerBound__TypeReferenceAssignment_1 ) )
+            // InternalSignalDSL.g:17337:1: ( ( ( rule__JvmLowerBound__TypeReferenceAssignment_1 ) ) )
+            // InternalSignalDSL.g:17338:1: ( ( rule__JvmLowerBound__TypeReferenceAssignment_1 ) )
             {
-            // InternalSignalDSL.g:17075:1: ( ( rule__JvmLowerBound__TypeReferenceAssignment_1 ) )
-            // InternalSignalDSL.g:17076:2: ( rule__JvmLowerBound__TypeReferenceAssignment_1 )
+            // InternalSignalDSL.g:17338:1: ( ( rule__JvmLowerBound__TypeReferenceAssignment_1 ) )
+            // InternalSignalDSL.g:17339:2: ( rule__JvmLowerBound__TypeReferenceAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmLowerBoundAccess().getTypeReferenceAssignment_1()); 
             }
-            // InternalSignalDSL.g:17077:2: ( rule__JvmLowerBound__TypeReferenceAssignment_1 )
-            // InternalSignalDSL.g:17077:3: rule__JvmLowerBound__TypeReferenceAssignment_1
+            // InternalSignalDSL.g:17340:2: ( rule__JvmLowerBound__TypeReferenceAssignment_1 )
+            // InternalSignalDSL.g:17340:3: rule__JvmLowerBound__TypeReferenceAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__JvmLowerBound__TypeReferenceAssignment_1();
@@ -56420,16 +57205,16 @@
 
 
     // $ANTLR start "rule__JvmLowerBoundAnded__Group__0"
-    // InternalSignalDSL.g:17086:1: rule__JvmLowerBoundAnded__Group__0 : rule__JvmLowerBoundAnded__Group__0__Impl rule__JvmLowerBoundAnded__Group__1 ;
+    // InternalSignalDSL.g:17349: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:17090:1: ( rule__JvmLowerBoundAnded__Group__0__Impl rule__JvmLowerBoundAnded__Group__1 )
-            // InternalSignalDSL.g:17091:2: rule__JvmLowerBoundAnded__Group__0__Impl rule__JvmLowerBoundAnded__Group__1
+            // InternalSignalDSL.g:17353:1: ( rule__JvmLowerBoundAnded__Group__0__Impl rule__JvmLowerBoundAnded__Group__1 )
+            // InternalSignalDSL.g:17354:2: rule__JvmLowerBoundAnded__Group__0__Impl rule__JvmLowerBoundAnded__Group__1
             {
-            pushFollow(FOLLOW_47);
+            pushFollow(FOLLOW_52);
             rule__JvmLowerBoundAnded__Group__0__Impl();
 
             state._fsp--;
@@ -56458,22 +57243,22 @@
 
 
     // $ANTLR start "rule__JvmLowerBoundAnded__Group__0__Impl"
-    // InternalSignalDSL.g:17098:1: rule__JvmLowerBoundAnded__Group__0__Impl : ( '&' ) ;
+    // InternalSignalDSL.g:17361:1: rule__JvmLowerBoundAnded__Group__0__Impl : ( '&' ) ;
     public final void rule__JvmLowerBoundAnded__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:17102:1: ( ( '&' ) )
-            // InternalSignalDSL.g:17103:1: ( '&' )
+            // InternalSignalDSL.g:17365:1: ( ( '&' ) )
+            // InternalSignalDSL.g:17366:1: ( '&' )
             {
-            // InternalSignalDSL.g:17103:1: ( '&' )
-            // InternalSignalDSL.g:17104:2: '&'
+            // InternalSignalDSL.g:17366:1: ( '&' )
+            // InternalSignalDSL.g:17367:2: '&'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmLowerBoundAndedAccess().getAmpersandKeyword_0()); 
             }
-            match(input,102,FOLLOW_2); if (state.failed) return ;
+            match(input,100,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getJvmLowerBoundAndedAccess().getAmpersandKeyword_0()); 
             }
@@ -56499,14 +57284,14 @@
 
 
     // $ANTLR start "rule__JvmLowerBoundAnded__Group__1"
-    // InternalSignalDSL.g:17113:1: rule__JvmLowerBoundAnded__Group__1 : rule__JvmLowerBoundAnded__Group__1__Impl ;
+    // InternalSignalDSL.g:17376: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:17117:1: ( rule__JvmLowerBoundAnded__Group__1__Impl )
-            // InternalSignalDSL.g:17118:2: rule__JvmLowerBoundAnded__Group__1__Impl
+            // InternalSignalDSL.g:17380:1: ( rule__JvmLowerBoundAnded__Group__1__Impl )
+            // InternalSignalDSL.g:17381:2: rule__JvmLowerBoundAnded__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__JvmLowerBoundAnded__Group__1__Impl();
@@ -56532,23 +57317,23 @@
 
 
     // $ANTLR start "rule__JvmLowerBoundAnded__Group__1__Impl"
-    // InternalSignalDSL.g:17124:1: rule__JvmLowerBoundAnded__Group__1__Impl : ( ( rule__JvmLowerBoundAnded__TypeReferenceAssignment_1 ) ) ;
+    // InternalSignalDSL.g:17387: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:17128:1: ( ( ( rule__JvmLowerBoundAnded__TypeReferenceAssignment_1 ) ) )
-            // InternalSignalDSL.g:17129:1: ( ( rule__JvmLowerBoundAnded__TypeReferenceAssignment_1 ) )
+            // InternalSignalDSL.g:17391:1: ( ( ( rule__JvmLowerBoundAnded__TypeReferenceAssignment_1 ) ) )
+            // InternalSignalDSL.g:17392:1: ( ( rule__JvmLowerBoundAnded__TypeReferenceAssignment_1 ) )
             {
-            // InternalSignalDSL.g:17129:1: ( ( rule__JvmLowerBoundAnded__TypeReferenceAssignment_1 ) )
-            // InternalSignalDSL.g:17130:2: ( rule__JvmLowerBoundAnded__TypeReferenceAssignment_1 )
+            // InternalSignalDSL.g:17392:1: ( ( rule__JvmLowerBoundAnded__TypeReferenceAssignment_1 ) )
+            // InternalSignalDSL.g:17393:2: ( rule__JvmLowerBoundAnded__TypeReferenceAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmLowerBoundAndedAccess().getTypeReferenceAssignment_1()); 
             }
-            // InternalSignalDSL.g:17131:2: ( rule__JvmLowerBoundAnded__TypeReferenceAssignment_1 )
-            // InternalSignalDSL.g:17131:3: rule__JvmLowerBoundAnded__TypeReferenceAssignment_1
+            // InternalSignalDSL.g:17394:2: ( rule__JvmLowerBoundAnded__TypeReferenceAssignment_1 )
+            // InternalSignalDSL.g:17394:3: rule__JvmLowerBoundAnded__TypeReferenceAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__JvmLowerBoundAnded__TypeReferenceAssignment_1();
@@ -56583,16 +57368,16 @@
 
 
     // $ANTLR start "rule__QualifiedNameWithWildcard__Group__0"
-    // InternalSignalDSL.g:17140:1: rule__QualifiedNameWithWildcard__Group__0 : rule__QualifiedNameWithWildcard__Group__0__Impl rule__QualifiedNameWithWildcard__Group__1 ;
+    // InternalSignalDSL.g:17403: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:17144:1: ( rule__QualifiedNameWithWildcard__Group__0__Impl rule__QualifiedNameWithWildcard__Group__1 )
-            // InternalSignalDSL.g:17145:2: rule__QualifiedNameWithWildcard__Group__0__Impl rule__QualifiedNameWithWildcard__Group__1
+            // InternalSignalDSL.g:17407:1: ( rule__QualifiedNameWithWildcard__Group__0__Impl rule__QualifiedNameWithWildcard__Group__1 )
+            // InternalSignalDSL.g:17408:2: rule__QualifiedNameWithWildcard__Group__0__Impl rule__QualifiedNameWithWildcard__Group__1
             {
-            pushFollow(FOLLOW_106);
+            pushFollow(FOLLOW_111);
             rule__QualifiedNameWithWildcard__Group__0__Impl();
 
             state._fsp--;
@@ -56621,17 +57406,17 @@
 
 
     // $ANTLR start "rule__QualifiedNameWithWildcard__Group__0__Impl"
-    // InternalSignalDSL.g:17152:1: rule__QualifiedNameWithWildcard__Group__0__Impl : ( ruleQualifiedName ) ;
+    // InternalSignalDSL.g:17415:1: rule__QualifiedNameWithWildcard__Group__0__Impl : ( ruleQualifiedName ) ;
     public final void rule__QualifiedNameWithWildcard__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:17156:1: ( ( ruleQualifiedName ) )
-            // InternalSignalDSL.g:17157:1: ( ruleQualifiedName )
+            // InternalSignalDSL.g:17419:1: ( ( ruleQualifiedName ) )
+            // InternalSignalDSL.g:17420:1: ( ruleQualifiedName )
             {
-            // InternalSignalDSL.g:17157:1: ( ruleQualifiedName )
-            // InternalSignalDSL.g:17158:2: ruleQualifiedName
+            // InternalSignalDSL.g:17420:1: ( ruleQualifiedName )
+            // InternalSignalDSL.g:17421:2: ruleQualifiedName
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getQualifiedNameWithWildcardAccess().getQualifiedNameParserRuleCall_0()); 
@@ -56666,16 +57451,16 @@
 
 
     // $ANTLR start "rule__QualifiedNameWithWildcard__Group__1"
-    // InternalSignalDSL.g:17167:1: rule__QualifiedNameWithWildcard__Group__1 : rule__QualifiedNameWithWildcard__Group__1__Impl rule__QualifiedNameWithWildcard__Group__2 ;
+    // InternalSignalDSL.g:17430: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:17171:1: ( rule__QualifiedNameWithWildcard__Group__1__Impl rule__QualifiedNameWithWildcard__Group__2 )
-            // InternalSignalDSL.g:17172:2: rule__QualifiedNameWithWildcard__Group__1__Impl rule__QualifiedNameWithWildcard__Group__2
+            // InternalSignalDSL.g:17434:1: ( rule__QualifiedNameWithWildcard__Group__1__Impl rule__QualifiedNameWithWildcard__Group__2 )
+            // InternalSignalDSL.g:17435:2: rule__QualifiedNameWithWildcard__Group__1__Impl rule__QualifiedNameWithWildcard__Group__2
             {
-            pushFollow(FOLLOW_113);
+            pushFollow(FOLLOW_118);
             rule__QualifiedNameWithWildcard__Group__1__Impl();
 
             state._fsp--;
@@ -56704,17 +57489,17 @@
 
 
     // $ANTLR start "rule__QualifiedNameWithWildcard__Group__1__Impl"
-    // InternalSignalDSL.g:17179:1: rule__QualifiedNameWithWildcard__Group__1__Impl : ( '.' ) ;
+    // InternalSignalDSL.g:17442:1: rule__QualifiedNameWithWildcard__Group__1__Impl : ( '.' ) ;
     public final void rule__QualifiedNameWithWildcard__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:17183:1: ( ( '.' ) )
-            // InternalSignalDSL.g:17184:1: ( '.' )
+            // InternalSignalDSL.g:17446:1: ( ( '.' ) )
+            // InternalSignalDSL.g:17447:1: ( '.' )
             {
-            // InternalSignalDSL.g:17184:1: ( '.' )
-            // InternalSignalDSL.g:17185:2: '.'
+            // InternalSignalDSL.g:17447:1: ( '.' )
+            // InternalSignalDSL.g:17448:2: '.'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getQualifiedNameWithWildcardAccess().getFullStopKeyword_1()); 
@@ -56745,14 +57530,14 @@
 
 
     // $ANTLR start "rule__QualifiedNameWithWildcard__Group__2"
-    // InternalSignalDSL.g:17194:1: rule__QualifiedNameWithWildcard__Group__2 : rule__QualifiedNameWithWildcard__Group__2__Impl ;
+    // InternalSignalDSL.g:17457: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:17198:1: ( rule__QualifiedNameWithWildcard__Group__2__Impl )
-            // InternalSignalDSL.g:17199:2: rule__QualifiedNameWithWildcard__Group__2__Impl
+            // InternalSignalDSL.g:17461:1: ( rule__QualifiedNameWithWildcard__Group__2__Impl )
+            // InternalSignalDSL.g:17462:2: rule__QualifiedNameWithWildcard__Group__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__QualifiedNameWithWildcard__Group__2__Impl();
@@ -56778,17 +57563,17 @@
 
 
     // $ANTLR start "rule__QualifiedNameWithWildcard__Group__2__Impl"
-    // InternalSignalDSL.g:17205:1: rule__QualifiedNameWithWildcard__Group__2__Impl : ( '*' ) ;
+    // InternalSignalDSL.g:17468:1: rule__QualifiedNameWithWildcard__Group__2__Impl : ( '*' ) ;
     public final void rule__QualifiedNameWithWildcard__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:17209:1: ( ( '*' ) )
-            // InternalSignalDSL.g:17210:1: ( '*' )
+            // InternalSignalDSL.g:17472:1: ( ( '*' ) )
+            // InternalSignalDSL.g:17473:1: ( '*' )
             {
-            // InternalSignalDSL.g:17210:1: ( '*' )
-            // InternalSignalDSL.g:17211:2: '*'
+            // InternalSignalDSL.g:17473:1: ( '*' )
+            // InternalSignalDSL.g:17474:2: '*'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getQualifiedNameWithWildcardAccess().getAsteriskKeyword_2()); 
@@ -56819,16 +57604,16 @@
 
 
     // $ANTLR start "rule__QualifiedNameInStaticImport__Group__0"
-    // InternalSignalDSL.g:17221:1: rule__QualifiedNameInStaticImport__Group__0 : rule__QualifiedNameInStaticImport__Group__0__Impl rule__QualifiedNameInStaticImport__Group__1 ;
+    // InternalSignalDSL.g:17484: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:17225:1: ( rule__QualifiedNameInStaticImport__Group__0__Impl rule__QualifiedNameInStaticImport__Group__1 )
-            // InternalSignalDSL.g:17226:2: rule__QualifiedNameInStaticImport__Group__0__Impl rule__QualifiedNameInStaticImport__Group__1
+            // InternalSignalDSL.g:17488:1: ( rule__QualifiedNameInStaticImport__Group__0__Impl rule__QualifiedNameInStaticImport__Group__1 )
+            // InternalSignalDSL.g:17489:2: rule__QualifiedNameInStaticImport__Group__0__Impl rule__QualifiedNameInStaticImport__Group__1
             {
-            pushFollow(FOLLOW_106);
+            pushFollow(FOLLOW_111);
             rule__QualifiedNameInStaticImport__Group__0__Impl();
 
             state._fsp--;
@@ -56857,17 +57642,17 @@
 
 
     // $ANTLR start "rule__QualifiedNameInStaticImport__Group__0__Impl"
-    // InternalSignalDSL.g:17233:1: rule__QualifiedNameInStaticImport__Group__0__Impl : ( ruleValidID ) ;
+    // InternalSignalDSL.g:17496:1: rule__QualifiedNameInStaticImport__Group__0__Impl : ( ruleValidID ) ;
     public final void rule__QualifiedNameInStaticImport__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:17237:1: ( ( ruleValidID ) )
-            // InternalSignalDSL.g:17238:1: ( ruleValidID )
+            // InternalSignalDSL.g:17500:1: ( ( ruleValidID ) )
+            // InternalSignalDSL.g:17501:1: ( ruleValidID )
             {
-            // InternalSignalDSL.g:17238:1: ( ruleValidID )
-            // InternalSignalDSL.g:17239:2: ruleValidID
+            // InternalSignalDSL.g:17501:1: ( ruleValidID )
+            // InternalSignalDSL.g:17502:2: ruleValidID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getQualifiedNameInStaticImportAccess().getValidIDParserRuleCall_0()); 
@@ -56902,14 +57687,14 @@
 
 
     // $ANTLR start "rule__QualifiedNameInStaticImport__Group__1"
-    // InternalSignalDSL.g:17248:1: rule__QualifiedNameInStaticImport__Group__1 : rule__QualifiedNameInStaticImport__Group__1__Impl ;
+    // InternalSignalDSL.g:17511: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:17252:1: ( rule__QualifiedNameInStaticImport__Group__1__Impl )
-            // InternalSignalDSL.g:17253:2: rule__QualifiedNameInStaticImport__Group__1__Impl
+            // InternalSignalDSL.g:17515:1: ( rule__QualifiedNameInStaticImport__Group__1__Impl )
+            // InternalSignalDSL.g:17516:2: rule__QualifiedNameInStaticImport__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__QualifiedNameInStaticImport__Group__1__Impl();
@@ -56935,17 +57720,17 @@
 
 
     // $ANTLR start "rule__QualifiedNameInStaticImport__Group__1__Impl"
-    // InternalSignalDSL.g:17259:1: rule__QualifiedNameInStaticImport__Group__1__Impl : ( '.' ) ;
+    // InternalSignalDSL.g:17522:1: rule__QualifiedNameInStaticImport__Group__1__Impl : ( '.' ) ;
     public final void rule__QualifiedNameInStaticImport__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:17263:1: ( ( '.' ) )
-            // InternalSignalDSL.g:17264:1: ( '.' )
+            // InternalSignalDSL.g:17526:1: ( ( '.' ) )
+            // InternalSignalDSL.g:17527:1: ( '.' )
             {
-            // InternalSignalDSL.g:17264:1: ( '.' )
-            // InternalSignalDSL.g:17265:2: '.'
+            // InternalSignalDSL.g:17527:1: ( '.' )
+            // InternalSignalDSL.g:17528:2: '.'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getQualifiedNameInStaticImportAccess().getFullStopKeyword_1()); 
@@ -56976,17 +57761,17 @@
 
 
     // $ANTLR start "rule__SignalModel__ImportSectionAssignment_0"
-    // InternalSignalDSL.g:17275:1: rule__SignalModel__ImportSectionAssignment_0 : ( ruleXImportSection ) ;
+    // InternalSignalDSL.g:17538:1: rule__SignalModel__ImportSectionAssignment_0 : ( ruleXImportSection ) ;
     public final void rule__SignalModel__ImportSectionAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:17279:1: ( ( ruleXImportSection ) )
-            // InternalSignalDSL.g:17280:2: ( ruleXImportSection )
+            // InternalSignalDSL.g:17542:1: ( ( ruleXImportSection ) )
+            // InternalSignalDSL.g:17543:2: ( ruleXImportSection )
             {
-            // InternalSignalDSL.g:17280:2: ( ruleXImportSection )
-            // InternalSignalDSL.g:17281:3: ruleXImportSection
+            // InternalSignalDSL.g:17543:2: ( ruleXImportSection )
+            // InternalSignalDSL.g:17544:3: ruleXImportSection
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSignalModelAccess().getImportSectionXImportSectionParserRuleCall_0_0()); 
@@ -57021,17 +57806,17 @@
 
 
     // $ANTLR start "rule__SignalModel__PackagesAssignment_1"
-    // InternalSignalDSL.g:17290:1: rule__SignalModel__PackagesAssignment_1 : ( ruleSignalPackage ) ;
+    // InternalSignalDSL.g:17553:1: rule__SignalModel__PackagesAssignment_1 : ( ruleSignalPackage ) ;
     public final void rule__SignalModel__PackagesAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:17294:1: ( ( ruleSignalPackage ) )
-            // InternalSignalDSL.g:17295:2: ( ruleSignalPackage )
+            // InternalSignalDSL.g:17557:1: ( ( ruleSignalPackage ) )
+            // InternalSignalDSL.g:17558:2: ( ruleSignalPackage )
             {
-            // InternalSignalDSL.g:17295:2: ( ruleSignalPackage )
-            // InternalSignalDSL.g:17296:3: ruleSignalPackage
+            // InternalSignalDSL.g:17558:2: ( ruleSignalPackage )
+            // InternalSignalDSL.g:17559:3: ruleSignalPackage
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSignalModelAccess().getPackagesSignalPackageParserRuleCall_1_0()); 
@@ -57066,17 +57851,17 @@
 
 
     // $ANTLR start "rule__SignalPackage__NameAssignment_2"
-    // InternalSignalDSL.g:17305:1: rule__SignalPackage__NameAssignment_2 : ( ruleQualifiedName ) ;
+    // InternalSignalDSL.g:17568:1: rule__SignalPackage__NameAssignment_2 : ( ruleQualifiedName ) ;
     public final void rule__SignalPackage__NameAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:17309:1: ( ( ruleQualifiedName ) )
-            // InternalSignalDSL.g:17310:2: ( ruleQualifiedName )
+            // InternalSignalDSL.g:17572:1: ( ( ruleQualifiedName ) )
+            // InternalSignalDSL.g:17573:2: ( ruleQualifiedName )
             {
-            // InternalSignalDSL.g:17310:2: ( ruleQualifiedName )
-            // InternalSignalDSL.g:17311:3: ruleQualifiedName
+            // InternalSignalDSL.g:17573:2: ( ruleQualifiedName )
+            // InternalSignalDSL.g:17574:3: ruleQualifiedName
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSignalPackageAccess().getNameQualifiedNameParserRuleCall_2_0()); 
@@ -57111,17 +57896,17 @@
 
 
     // $ANTLR start "rule__SignalPackage__WatchersAssignment_3_1"
-    // InternalSignalDSL.g:17320:1: rule__SignalPackage__WatchersAssignment_3_1 : ( ruleSignalWatcher ) ;
+    // InternalSignalDSL.g:17583:1: rule__SignalPackage__WatchersAssignment_3_1 : ( ruleSignalWatcher ) ;
     public final void rule__SignalPackage__WatchersAssignment_3_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:17324:1: ( ( ruleSignalWatcher ) )
-            // InternalSignalDSL.g:17325:2: ( ruleSignalWatcher )
+            // InternalSignalDSL.g:17587:1: ( ( ruleSignalWatcher ) )
+            // InternalSignalDSL.g:17588:2: ( ruleSignalWatcher )
             {
-            // InternalSignalDSL.g:17325:2: ( ruleSignalWatcher )
-            // InternalSignalDSL.g:17326:3: ruleSignalWatcher
+            // InternalSignalDSL.g:17588:2: ( ruleSignalWatcher )
+            // InternalSignalDSL.g:17589:3: ruleSignalWatcher
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSignalPackageAccess().getWatchersSignalWatcherParserRuleCall_3_1_0()); 
@@ -57155,63 +57940,18 @@
     // $ANTLR end "rule__SignalPackage__WatchersAssignment_3_1"
 
 
-    // $ANTLR start "rule__SignalPackage__HandlersAssignment_3_2"
-    // InternalSignalDSL.g:17335:1: rule__SignalPackage__HandlersAssignment_3_2 : ( ruleSignalHandler ) ;
-    public final void rule__SignalPackage__HandlersAssignment_3_2() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-        	
-        try {
-            // InternalSignalDSL.g:17339:1: ( ( ruleSignalHandler ) )
-            // InternalSignalDSL.g:17340:2: ( ruleSignalHandler )
-            {
-            // InternalSignalDSL.g:17340:2: ( ruleSignalHandler )
-            // InternalSignalDSL.g:17341:3: ruleSignalHandler
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getSignalPackageAccess().getHandlersSignalHandlerParserRuleCall_3_2_0()); 
-            }
-            pushFollow(FOLLOW_2);
-            ruleSignalHandler();
-
-            state._fsp--;
-            if (state.failed) return ;
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getSignalPackageAccess().getHandlersSignalHandlerParserRuleCall_3_2_0()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__SignalPackage__HandlersAssignment_3_2"
-
-
     // $ANTLR start "rule__SignalWatcher__NameAssignment_2"
-    // InternalSignalDSL.g:17350:1: rule__SignalWatcher__NameAssignment_2 : ( RULE_ID ) ;
+    // InternalSignalDSL.g:17598:1: rule__SignalWatcher__NameAssignment_2 : ( RULE_ID ) ;
     public final void rule__SignalWatcher__NameAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:17354:1: ( ( RULE_ID ) )
-            // InternalSignalDSL.g:17355:2: ( RULE_ID )
+            // InternalSignalDSL.g:17602:1: ( ( RULE_ID ) )
+            // InternalSignalDSL.g:17603:2: ( RULE_ID )
             {
-            // InternalSignalDSL.g:17355:2: ( RULE_ID )
-            // InternalSignalDSL.g:17356:3: RULE_ID
+            // InternalSignalDSL.g:17603:2: ( RULE_ID )
+            // InternalSignalDSL.g:17604:3: RULE_ID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSignalWatcherAccess().getNameIDTerminalRuleCall_2_0()); 
@@ -57242,17 +57982,17 @@
 
 
     // $ANTLR start "rule__SignalWatcher__DirectoryAssignment_4"
-    // InternalSignalDSL.g:17365:1: rule__SignalWatcher__DirectoryAssignment_4 : ( RULE_STRING ) ;
+    // InternalSignalDSL.g:17613:1: rule__SignalWatcher__DirectoryAssignment_4 : ( RULE_STRING ) ;
     public final void rule__SignalWatcher__DirectoryAssignment_4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:17369:1: ( ( RULE_STRING ) )
-            // InternalSignalDSL.g:17370:2: ( RULE_STRING )
+            // InternalSignalDSL.g:17617:1: ( ( RULE_STRING ) )
+            // InternalSignalDSL.g:17618:2: ( RULE_STRING )
             {
-            // InternalSignalDSL.g:17370:2: ( RULE_STRING )
-            // InternalSignalDSL.g:17371:3: RULE_STRING
+            // InternalSignalDSL.g:17618:2: ( RULE_STRING )
+            // InternalSignalDSL.g:17619:3: RULE_STRING
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSignalWatcherAccess().getDirectorySTRINGTerminalRuleCall_4_0()); 
@@ -57283,17 +58023,17 @@
 
 
     // $ANTLR start "rule__SignalWatcher__SignalAssignment_6"
-    // InternalSignalDSL.g:17380:1: rule__SignalWatcher__SignalAssignment_6 : ( ruleSignalTypeEnum ) ;
+    // InternalSignalDSL.g:17628:1: rule__SignalWatcher__SignalAssignment_6 : ( ruleSignalTypeEnum ) ;
     public final void rule__SignalWatcher__SignalAssignment_6() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:17384:1: ( ( ruleSignalTypeEnum ) )
-            // InternalSignalDSL.g:17385:2: ( ruleSignalTypeEnum )
+            // InternalSignalDSL.g:17632:1: ( ( ruleSignalTypeEnum ) )
+            // InternalSignalDSL.g:17633:2: ( ruleSignalTypeEnum )
             {
-            // InternalSignalDSL.g:17385:2: ( ruleSignalTypeEnum )
-            // InternalSignalDSL.g:17386:3: ruleSignalTypeEnum
+            // InternalSignalDSL.g:17633:2: ( ruleSignalTypeEnum )
+            // InternalSignalDSL.g:17634:3: ruleSignalTypeEnum
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSignalWatcherAccess().getSignalSignalTypeEnumEnumRuleCall_6_0()); 
@@ -57327,37 +58067,70 @@
     // $ANTLR end "rule__SignalWatcher__SignalAssignment_6"
 
 
-    // $ANTLR start "rule__SignalHandler__WatcherAssignment_2"
-    // InternalSignalDSL.g:17395:1: rule__SignalHandler__WatcherAssignment_2 : ( ( RULE_ID ) ) ;
-    public final void rule__SignalHandler__WatcherAssignment_2() throws RecognitionException {
+    // $ANTLR start "rule__SignalWatcher__HandlersAssignment_8"
+    // InternalSignalDSL.g:17643:1: rule__SignalWatcher__HandlersAssignment_8 : ( ruleSignalHandler ) ;
+    public final void rule__SignalWatcher__HandlersAssignment_8() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:17399:1: ( ( ( RULE_ID ) ) )
-            // InternalSignalDSL.g:17400:2: ( ( RULE_ID ) )
+            // InternalSignalDSL.g:17647:1: ( ( ruleSignalHandler ) )
+            // InternalSignalDSL.g:17648:2: ( ruleSignalHandler )
             {
-            // InternalSignalDSL.g:17400:2: ( ( RULE_ID ) )
-            // InternalSignalDSL.g:17401:3: ( RULE_ID )
+            // InternalSignalDSL.g:17648:2: ( ruleSignalHandler )
+            // InternalSignalDSL.g:17649:3: ruleSignalHandler
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getSignalHandlerAccess().getWatcherSignalWatcherCrossReference_2_0()); 
+               before(grammarAccess.getSignalWatcherAccess().getHandlersSignalHandlerParserRuleCall_8_0()); 
             }
-            // InternalSignalDSL.g:17402:3: ( RULE_ID )
-            // InternalSignalDSL.g:17403:4: RULE_ID
+            pushFollow(FOLLOW_2);
+            ruleSignalHandler();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getSignalWatcherAccess().getHandlersSignalHandlerParserRuleCall_8_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SignalWatcher__HandlersAssignment_8"
+
+
+    // $ANTLR start "rule__SignalHandler__NameAssignment_2"
+    // InternalSignalDSL.g:17658:1: rule__SignalHandler__NameAssignment_2 : ( RULE_ID ) ;
+    public final void rule__SignalHandler__NameAssignment_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalSignalDSL.g:17662:1: ( ( RULE_ID ) )
+            // InternalSignalDSL.g:17663:2: ( RULE_ID )
+            {
+            // InternalSignalDSL.g:17663:2: ( RULE_ID )
+            // InternalSignalDSL.g:17664:3: RULE_ID
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getSignalHandlerAccess().getWatcherSignalWatcherIDTerminalRuleCall_2_0_1()); 
+               before(grammarAccess.getSignalHandlerAccess().getNameIDTerminalRuleCall_2_0()); 
             }
             match(input,RULE_ID,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getSignalHandlerAccess().getWatcherSignalWatcherIDTerminalRuleCall_2_0_1()); 
-            }
-
-            }
-
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getSignalHandlerAccess().getWatcherSignalWatcherCrossReference_2_0()); 
+               after(grammarAccess.getSignalHandlerAccess().getNameIDTerminalRuleCall_2_0()); 
             }
 
             }
@@ -57377,253 +58150,24 @@
         }
         return ;
     }
-    // $ANTLR end "rule__SignalHandler__WatcherAssignment_2"
+    // $ANTLR end "rule__SignalHandler__NameAssignment_2"
 
 
-    // $ANTLR start "rule__SignalHandler__HandlerAssignment_3_0"
-    // InternalSignalDSL.g:17414:1: rule__SignalHandler__HandlerAssignment_3_0 : ( ruleSignalHandling ) ;
-    public final void rule__SignalHandler__HandlerAssignment_3_0() throws RecognitionException {
+    // $ANTLR start "rule__SignalHandler__ActionTypeAssignment_3"
+    // InternalSignalDSL.g:17673:1: rule__SignalHandler__ActionTypeAssignment_3 : ( ruleSignalHandlerTypeEnum ) ;
+    public final void rule__SignalHandler__ActionTypeAssignment_3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:17418:1: ( ( ruleSignalHandling ) )
-            // InternalSignalDSL.g:17419:2: ( ruleSignalHandling )
+            // InternalSignalDSL.g:17677:1: ( ( ruleSignalHandlerTypeEnum ) )
+            // InternalSignalDSL.g:17678:2: ( ruleSignalHandlerTypeEnum )
             {
-            // InternalSignalDSL.g:17419:2: ( ruleSignalHandling )
-            // InternalSignalDSL.g:17420:3: ruleSignalHandling
+            // InternalSignalDSL.g:17678:2: ( ruleSignalHandlerTypeEnum )
+            // InternalSignalDSL.g:17679:3: ruleSignalHandlerTypeEnum
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getSignalHandlerAccess().getHandlerSignalHandlingParserRuleCall_3_0_0()); 
-            }
-            pushFollow(FOLLOW_2);
-            ruleSignalHandling();
-
-            state._fsp--;
-            if (state.failed) return ;
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getSignalHandlerAccess().getHandlerSignalHandlingParserRuleCall_3_0_0()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__SignalHandler__HandlerAssignment_3_0"
-
-
-    // $ANTLR start "rule__SignalHandler__NotificationAssignment_3_1"
-    // InternalSignalDSL.g:17429:1: rule__SignalHandler__NotificationAssignment_3_1 : ( ruleSignalNotification ) ;
-    public final void rule__SignalHandler__NotificationAssignment_3_1() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-        	
-        try {
-            // InternalSignalDSL.g:17433:1: ( ( ruleSignalNotification ) )
-            // InternalSignalDSL.g:17434:2: ( ruleSignalNotification )
-            {
-            // InternalSignalDSL.g:17434:2: ( ruleSignalNotification )
-            // InternalSignalDSL.g:17435:3: ruleSignalNotification
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getSignalHandlerAccess().getNotificationSignalNotificationParserRuleCall_3_1_0()); 
-            }
-            pushFollow(FOLLOW_2);
-            ruleSignalNotification();
-
-            state._fsp--;
-            if (state.failed) return ;
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getSignalHandlerAccess().getNotificationSignalNotificationParserRuleCall_3_1_0()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__SignalHandler__NotificationAssignment_3_1"
-
-
-    // $ANTLR start "rule__SignalNotification__EventAssignment_0"
-    // InternalSignalDSL.g:17444:1: rule__SignalNotification__EventAssignment_0 : ( ruleSignalNotificationEnum ) ;
-    public final void rule__SignalNotification__EventAssignment_0() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-        	
-        try {
-            // InternalSignalDSL.g:17448:1: ( ( ruleSignalNotificationEnum ) )
-            // InternalSignalDSL.g:17449:2: ( ruleSignalNotificationEnum )
-            {
-            // InternalSignalDSL.g:17449:2: ( ruleSignalNotificationEnum )
-            // InternalSignalDSL.g:17450:3: ruleSignalNotificationEnum
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getSignalNotificationAccess().getEventSignalNotificationEnumEnumRuleCall_0_0()); 
-            }
-            pushFollow(FOLLOW_2);
-            ruleSignalNotificationEnum();
-
-            state._fsp--;
-            if (state.failed) return ;
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getSignalNotificationAccess().getEventSignalNotificationEnumEnumRuleCall_0_0()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__SignalNotification__EventAssignment_0"
-
-
-    // $ANTLR start "rule__SignalNotification__MessageAssignment_1"
-    // InternalSignalDSL.g:17459:1: rule__SignalNotification__MessageAssignment_1 : ( RULE_STRING ) ;
-    public final void rule__SignalNotification__MessageAssignment_1() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-        	
-        try {
-            // InternalSignalDSL.g:17463:1: ( ( RULE_STRING ) )
-            // InternalSignalDSL.g:17464:2: ( RULE_STRING )
-            {
-            // InternalSignalDSL.g:17464:2: ( RULE_STRING )
-            // InternalSignalDSL.g:17465:3: RULE_STRING
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getSignalNotificationAccess().getMessageSTRINGTerminalRuleCall_1_0()); 
-            }
-            match(input,RULE_STRING,FOLLOW_2); if (state.failed) return ;
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getSignalNotificationAccess().getMessageSTRINGTerminalRuleCall_1_0()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__SignalNotification__MessageAssignment_1"
-
-
-    // $ANTLR start "rule__SignalDatainterchange__DataRefAssignment"
-    // InternalSignalDSL.g:17474:1: rule__SignalDatainterchange__DataRefAssignment : ( ( RULE_ID ) ) ;
-    public final void rule__SignalDatainterchange__DataRefAssignment() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-        	
-        try {
-            // InternalSignalDSL.g:17478:1: ( ( ( RULE_ID ) ) )
-            // InternalSignalDSL.g:17479:2: ( ( RULE_ID ) )
-            {
-            // InternalSignalDSL.g:17479:2: ( ( RULE_ID ) )
-            // InternalSignalDSL.g:17480:3: ( RULE_ID )
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getSignalDatainterchangeAccess().getDataRefDataInterchangeCrossReference_0()); 
-            }
-            // InternalSignalDSL.g:17481:3: ( RULE_ID )
-            // InternalSignalDSL.g:17482:4: RULE_ID
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getSignalDatainterchangeAccess().getDataRefDataInterchangeIDTerminalRuleCall_0_1()); 
-            }
-            match(input,RULE_ID,FOLLOW_2); if (state.failed) return ;
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getSignalDatainterchangeAccess().getDataRefDataInterchangeIDTerminalRuleCall_0_1()); 
-            }
-
-            }
-
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getSignalDatainterchangeAccess().getDataRefDataInterchangeCrossReference_0()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__SignalDatainterchange__DataRefAssignment"
-
-
-    // $ANTLR start "rule__SignalHandling__ActionTypeAssignment_0"
-    // InternalSignalDSL.g:17493:1: rule__SignalHandling__ActionTypeAssignment_0 : ( ruleSignalHandlerTypeEnum ) ;
-    public final void rule__SignalHandling__ActionTypeAssignment_0() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-        	
-        try {
-            // InternalSignalDSL.g:17497:1: ( ( ruleSignalHandlerTypeEnum ) )
-            // InternalSignalDSL.g:17498:2: ( ruleSignalHandlerTypeEnum )
-            {
-            // InternalSignalDSL.g:17498:2: ( ruleSignalHandlerTypeEnum )
-            // InternalSignalDSL.g:17499:3: ruleSignalHandlerTypeEnum
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getSignalHandlingAccess().getActionTypeSignalHandlerTypeEnumEnumRuleCall_0_0()); 
+               before(grammarAccess.getSignalHandlerAccess().getActionTypeSignalHandlerTypeEnumEnumRuleCall_3_0()); 
             }
             pushFollow(FOLLOW_2);
             ruleSignalHandlerTypeEnum();
@@ -57631,7 +58175,7 @@
             state._fsp--;
             if (state.failed) return ;
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getSignalHandlingAccess().getActionTypeSignalHandlerTypeEnumEnumRuleCall_0_0()); 
+               after(grammarAccess.getSignalHandlerAccess().getActionTypeSignalHandlerTypeEnumEnumRuleCall_3_0()); 
             }
 
             }
@@ -57651,40 +58195,32 @@
         }
         return ;
     }
-    // $ANTLR end "rule__SignalHandling__ActionTypeAssignment_0"
+    // $ANTLR end "rule__SignalHandler__ActionTypeAssignment_3"
 
 
-    // $ANTLR start "rule__SignalHandling__DataRefAssignment_1"
-    // InternalSignalDSL.g:17508:1: rule__SignalHandling__DataRefAssignment_1 : ( ( RULE_ID ) ) ;
-    public final void rule__SignalHandling__DataRefAssignment_1() throws RecognitionException {
+    // $ANTLR start "rule__SignalHandler__DataAssignment_4"
+    // InternalSignalDSL.g:17688:1: rule__SignalHandler__DataAssignment_4 : ( ruleDataTransfer ) ;
+    public final void rule__SignalHandler__DataAssignment_4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:17512:1: ( ( ( RULE_ID ) ) )
-            // InternalSignalDSL.g:17513:2: ( ( RULE_ID ) )
+            // InternalSignalDSL.g:17692:1: ( ( ruleDataTransfer ) )
+            // InternalSignalDSL.g:17693:2: ( ruleDataTransfer )
             {
-            // InternalSignalDSL.g:17513:2: ( ( RULE_ID ) )
-            // InternalSignalDSL.g:17514:3: ( RULE_ID )
+            // InternalSignalDSL.g:17693:2: ( ruleDataTransfer )
+            // InternalSignalDSL.g:17694:3: ruleDataTransfer
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getSignalHandlingAccess().getDataRefDataInterchangeCrossReference_1_0()); 
+               before(grammarAccess.getSignalHandlerAccess().getDataDataTransferParserRuleCall_4_0()); 
             }
-            // InternalSignalDSL.g:17515:3: ( RULE_ID )
-            // InternalSignalDSL.g:17516:4: RULE_ID
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getSignalHandlingAccess().getDataRefDataInterchangeIDTerminalRuleCall_1_0_1()); 
-            }
-            match(input,RULE_ID,FOLLOW_2); if (state.failed) return ;
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getSignalHandlingAccess().getDataRefDataInterchangeIDTerminalRuleCall_1_0_1()); 
-            }
+            pushFollow(FOLLOW_2);
+            ruleDataTransfer();
 
-            }
-
+            state._fsp--;
+            if (state.failed) return ;
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getSignalHandlingAccess().getDataRefDataInterchangeCrossReference_1_0()); 
+               after(grammarAccess.getSignalHandlerAccess().getDataDataTransferParserRuleCall_4_0()); 
             }
 
             }
@@ -57704,27 +58240,301 @@
         }
         return ;
     }
-    // $ANTLR end "rule__SignalHandling__DataRefAssignment_1"
+    // $ANTLR end "rule__SignalHandler__DataAssignment_4"
+
+
+    // $ANTLR start "rule__SignalHandler__FilemaskAssignment_7"
+    // InternalSignalDSL.g:17703:1: rule__SignalHandler__FilemaskAssignment_7 : ( RULE_STRING ) ;
+    public final void rule__SignalHandler__FilemaskAssignment_7() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalSignalDSL.g:17707:1: ( ( RULE_STRING ) )
+            // InternalSignalDSL.g:17708:2: ( RULE_STRING )
+            {
+            // InternalSignalDSL.g:17708:2: ( RULE_STRING )
+            // InternalSignalDSL.g:17709:3: RULE_STRING
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getSignalHandlerAccess().getFilemaskSTRINGTerminalRuleCall_7_0()); 
+            }
+            match(input,RULE_STRING,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getSignalHandlerAccess().getFilemaskSTRINGTerminalRuleCall_7_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SignalHandler__FilemaskAssignment_7"
+
+
+    // $ANTLR start "rule__ListTransfer__ExecutiontypeAssignment_2"
+    // InternalSignalDSL.g:17718:1: rule__ListTransfer__ExecutiontypeAssignment_2 : ( ruleSignalExecutionTypeEnum ) ;
+    public final void rule__ListTransfer__ExecutiontypeAssignment_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalSignalDSL.g:17722:1: ( ( ruleSignalExecutionTypeEnum ) )
+            // InternalSignalDSL.g:17723:2: ( ruleSignalExecutionTypeEnum )
+            {
+            // InternalSignalDSL.g:17723:2: ( ruleSignalExecutionTypeEnum )
+            // InternalSignalDSL.g:17724:3: ruleSignalExecutionTypeEnum
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getListTransferAccess().getExecutiontypeSignalExecutionTypeEnumEnumRuleCall_2_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleSignalExecutionTypeEnum();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getListTransferAccess().getExecutiontypeSignalExecutionTypeEnumEnumRuleCall_2_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ListTransfer__ExecutiontypeAssignment_2"
+
+
+    // $ANTLR start "rule__ListTransfer__InterchangesAssignment_4"
+    // InternalSignalDSL.g:17733:1: rule__ListTransfer__InterchangesAssignment_4 : ( ruleSignalDatainterchange ) ;
+    public final void rule__ListTransfer__InterchangesAssignment_4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalSignalDSL.g:17737:1: ( ( ruleSignalDatainterchange ) )
+            // InternalSignalDSL.g:17738:2: ( ruleSignalDatainterchange )
+            {
+            // InternalSignalDSL.g:17738:2: ( ruleSignalDatainterchange )
+            // InternalSignalDSL.g:17739:3: ruleSignalDatainterchange
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getListTransferAccess().getInterchangesSignalDatainterchangeParserRuleCall_4_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleSignalDatainterchange();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getListTransferAccess().getInterchangesSignalDatainterchangeParserRuleCall_4_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ListTransfer__InterchangesAssignment_4"
+
+
+    // $ANTLR start "rule__SingleTransfer__InterchangeAssignment"
+    // InternalSignalDSL.g:17748:1: rule__SingleTransfer__InterchangeAssignment : ( ruleSignalDatainterchange ) ;
+    public final void rule__SingleTransfer__InterchangeAssignment() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalSignalDSL.g:17752:1: ( ( ruleSignalDatainterchange ) )
+            // InternalSignalDSL.g:17753:2: ( ruleSignalDatainterchange )
+            {
+            // InternalSignalDSL.g:17753:2: ( ruleSignalDatainterchange )
+            // InternalSignalDSL.g:17754:3: ruleSignalDatainterchange
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getSingleTransferAccess().getInterchangeSignalDatainterchangeParserRuleCall_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleSignalDatainterchange();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getSingleTransferAccess().getInterchangeSignalDatainterchangeParserRuleCall_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SingleTransfer__InterchangeAssignment"
+
+
+    // $ANTLR start "rule__SignalDatainterchange__DataActionAssignment_0"
+    // InternalSignalDSL.g:17763:1: rule__SignalDatainterchange__DataActionAssignment_0 : ( ruleSignalActionEnum ) ;
+    public final void rule__SignalDatainterchange__DataActionAssignment_0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalSignalDSL.g:17767:1: ( ( ruleSignalActionEnum ) )
+            // InternalSignalDSL.g:17768:2: ( ruleSignalActionEnum )
+            {
+            // InternalSignalDSL.g:17768:2: ( ruleSignalActionEnum )
+            // InternalSignalDSL.g:17769:3: ruleSignalActionEnum
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getSignalDatainterchangeAccess().getDataActionSignalActionEnumEnumRuleCall_0_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleSignalActionEnum();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getSignalDatainterchangeAccess().getDataActionSignalActionEnumEnumRuleCall_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SignalDatainterchange__DataActionAssignment_0"
+
+
+    // $ANTLR start "rule__SignalDatainterchange__DataRefAssignment_1"
+    // InternalSignalDSL.g:17778:1: rule__SignalDatainterchange__DataRefAssignment_1 : ( ( RULE_ID ) ) ;
+    public final void rule__SignalDatainterchange__DataRefAssignment_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalSignalDSL.g:17782:1: ( ( ( RULE_ID ) ) )
+            // InternalSignalDSL.g:17783:2: ( ( RULE_ID ) )
+            {
+            // InternalSignalDSL.g:17783:2: ( ( RULE_ID ) )
+            // InternalSignalDSL.g:17784:3: ( RULE_ID )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getSignalDatainterchangeAccess().getDataRefDataInterchangeCrossReference_1_0()); 
+            }
+            // InternalSignalDSL.g:17785:3: ( RULE_ID )
+            // InternalSignalDSL.g:17786:4: RULE_ID
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getSignalDatainterchangeAccess().getDataRefDataInterchangeIDTerminalRuleCall_1_0_1()); 
+            }
+            match(input,RULE_ID,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getSignalDatainterchangeAccess().getDataRefDataInterchangeIDTerminalRuleCall_1_0_1()); 
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getSignalDatainterchangeAccess().getDataRefDataInterchangeCrossReference_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SignalDatainterchange__DataRefAssignment_1"
 
 
     // $ANTLR start "rule__XImportDeclaration__StaticAssignment_2_0_0"
-    // InternalSignalDSL.g:17527:1: rule__XImportDeclaration__StaticAssignment_2_0_0 : ( ( 'static' ) ) ;
+    // InternalSignalDSL.g:17797: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:17531:1: ( ( ( 'static' ) ) )
-            // InternalSignalDSL.g:17532:2: ( ( 'static' ) )
+            // InternalSignalDSL.g:17801:1: ( ( ( 'static' ) ) )
+            // InternalSignalDSL.g:17802:2: ( ( 'static' ) )
             {
-            // InternalSignalDSL.g:17532:2: ( ( 'static' ) )
-            // InternalSignalDSL.g:17533:3: ( 'static' )
+            // InternalSignalDSL.g:17802:2: ( ( 'static' ) )
+            // InternalSignalDSL.g:17803:3: ( 'static' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getStaticStaticKeyword_2_0_0_0()); 
             }
-            // InternalSignalDSL.g:17534:3: ( 'static' )
-            // InternalSignalDSL.g:17535:4: 'static'
+            // InternalSignalDSL.g:17804:3: ( 'static' )
+            // InternalSignalDSL.g:17805:4: 'static'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getStaticStaticKeyword_2_0_0_0()); 
@@ -57761,23 +58571,23 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__ExtensionAssignment_2_0_1"
-    // InternalSignalDSL.g:17546:1: rule__XImportDeclaration__ExtensionAssignment_2_0_1 : ( ( 'extension' ) ) ;
+    // InternalSignalDSL.g:17816: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:17550:1: ( ( ( 'extension' ) ) )
-            // InternalSignalDSL.g:17551:2: ( ( 'extension' ) )
+            // InternalSignalDSL.g:17820:1: ( ( ( 'extension' ) ) )
+            // InternalSignalDSL.g:17821:2: ( ( 'extension' ) )
             {
-            // InternalSignalDSL.g:17551:2: ( ( 'extension' ) )
-            // InternalSignalDSL.g:17552:3: ( 'extension' )
+            // InternalSignalDSL.g:17821:2: ( ( 'extension' ) )
+            // InternalSignalDSL.g:17822:3: ( 'extension' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getExtensionExtensionKeyword_2_0_1_0()); 
             }
-            // InternalSignalDSL.g:17553:3: ( 'extension' )
-            // InternalSignalDSL.g:17554:4: 'extension'
+            // InternalSignalDSL.g:17823:3: ( 'extension' )
+            // InternalSignalDSL.g:17824:4: 'extension'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getExtensionExtensionKeyword_2_0_1_0()); 
@@ -57814,23 +58624,23 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__ImportedTypeAssignment_2_0_2"
-    // InternalSignalDSL.g:17565:1: rule__XImportDeclaration__ImportedTypeAssignment_2_0_2 : ( ( ruleQualifiedNameInStaticImport ) ) ;
+    // InternalSignalDSL.g:17835: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:17569:1: ( ( ( ruleQualifiedNameInStaticImport ) ) )
-            // InternalSignalDSL.g:17570:2: ( ( ruleQualifiedNameInStaticImport ) )
+            // InternalSignalDSL.g:17839:1: ( ( ( ruleQualifiedNameInStaticImport ) ) )
+            // InternalSignalDSL.g:17840:2: ( ( ruleQualifiedNameInStaticImport ) )
             {
-            // InternalSignalDSL.g:17570:2: ( ( ruleQualifiedNameInStaticImport ) )
-            // InternalSignalDSL.g:17571:3: ( ruleQualifiedNameInStaticImport )
+            // InternalSignalDSL.g:17840:2: ( ( ruleQualifiedNameInStaticImport ) )
+            // InternalSignalDSL.g:17841:3: ( ruleQualifiedNameInStaticImport )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getImportedTypeJvmDeclaredTypeCrossReference_2_0_2_0()); 
             }
-            // InternalSignalDSL.g:17572:3: ( ruleQualifiedNameInStaticImport )
-            // InternalSignalDSL.g:17573:4: ruleQualifiedNameInStaticImport
+            // InternalSignalDSL.g:17842:3: ( ruleQualifiedNameInStaticImport )
+            // InternalSignalDSL.g:17843:4: ruleQualifiedNameInStaticImport
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getImportedTypeJvmDeclaredTypeQualifiedNameInStaticImportParserRuleCall_2_0_2_0_1()); 
@@ -57871,23 +58681,23 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__WildcardAssignment_2_0_3_0"
-    // InternalSignalDSL.g:17584:1: rule__XImportDeclaration__WildcardAssignment_2_0_3_0 : ( ( '*' ) ) ;
+    // InternalSignalDSL.g:17854: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:17588:1: ( ( ( '*' ) ) )
-            // InternalSignalDSL.g:17589:2: ( ( '*' ) )
+            // InternalSignalDSL.g:17858:1: ( ( ( '*' ) ) )
+            // InternalSignalDSL.g:17859:2: ( ( '*' ) )
             {
-            // InternalSignalDSL.g:17589:2: ( ( '*' ) )
-            // InternalSignalDSL.g:17590:3: ( '*' )
+            // InternalSignalDSL.g:17859:2: ( ( '*' ) )
+            // InternalSignalDSL.g:17860:3: ( '*' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getWildcardAsteriskKeyword_2_0_3_0_0()); 
             }
-            // InternalSignalDSL.g:17591:3: ( '*' )
-            // InternalSignalDSL.g:17592:4: '*'
+            // InternalSignalDSL.g:17861:3: ( '*' )
+            // InternalSignalDSL.g:17862:4: '*'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getWildcardAsteriskKeyword_2_0_3_0_0()); 
@@ -57924,17 +58734,17 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__MemberNameAssignment_2_0_3_1"
-    // InternalSignalDSL.g:17603:1: rule__XImportDeclaration__MemberNameAssignment_2_0_3_1 : ( ruleValidID ) ;
+    // InternalSignalDSL.g:17873: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:17607:1: ( ( ruleValidID ) )
-            // InternalSignalDSL.g:17608:2: ( ruleValidID )
+            // InternalSignalDSL.g:17877:1: ( ( ruleValidID ) )
+            // InternalSignalDSL.g:17878:2: ( ruleValidID )
             {
-            // InternalSignalDSL.g:17608:2: ( ruleValidID )
-            // InternalSignalDSL.g:17609:3: ruleValidID
+            // InternalSignalDSL.g:17878:2: ( ruleValidID )
+            // InternalSignalDSL.g:17879:3: ruleValidID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getMemberNameValidIDParserRuleCall_2_0_3_1_0()); 
@@ -57969,23 +58779,23 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__ImportedTypeAssignment_2_1"
-    // InternalSignalDSL.g:17618:1: rule__XImportDeclaration__ImportedTypeAssignment_2_1 : ( ( ruleQualifiedName ) ) ;
+    // InternalSignalDSL.g:17888:1: rule__XImportDeclaration__ImportedTypeAssignment_2_1 : ( ( ruleQualifiedName ) ) ;
     public final void rule__XImportDeclaration__ImportedTypeAssignment_2_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:17622:1: ( ( ( ruleQualifiedName ) ) )
-            // InternalSignalDSL.g:17623:2: ( ( ruleQualifiedName ) )
+            // InternalSignalDSL.g:17892:1: ( ( ( ruleQualifiedName ) ) )
+            // InternalSignalDSL.g:17893:2: ( ( ruleQualifiedName ) )
             {
-            // InternalSignalDSL.g:17623:2: ( ( ruleQualifiedName ) )
-            // InternalSignalDSL.g:17624:3: ( ruleQualifiedName )
+            // InternalSignalDSL.g:17893:2: ( ( ruleQualifiedName ) )
+            // InternalSignalDSL.g:17894:3: ( ruleQualifiedName )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getImportedTypeJvmDeclaredTypeCrossReference_2_1_0()); 
             }
-            // InternalSignalDSL.g:17625:3: ( ruleQualifiedName )
-            // InternalSignalDSL.g:17626:4: ruleQualifiedName
+            // InternalSignalDSL.g:17895:3: ( ruleQualifiedName )
+            // InternalSignalDSL.g:17896:4: ruleQualifiedName
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getImportedTypeJvmDeclaredTypeQualifiedNameParserRuleCall_2_1_0_1()); 
@@ -58026,17 +58836,17 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__ImportedNamespaceAssignment_2_2"
-    // InternalSignalDSL.g:17637:1: rule__XImportDeclaration__ImportedNamespaceAssignment_2_2 : ( ruleQualifiedNameWithWildcard ) ;
+    // InternalSignalDSL.g:17907:1: rule__XImportDeclaration__ImportedNamespaceAssignment_2_2 : ( ruleQualifiedNameWithWildcard ) ;
     public final void rule__XImportDeclaration__ImportedNamespaceAssignment_2_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:17641:1: ( ( ruleQualifiedNameWithWildcard ) )
-            // InternalSignalDSL.g:17642:2: ( ruleQualifiedNameWithWildcard )
+            // InternalSignalDSL.g:17911:1: ( ( ruleQualifiedNameWithWildcard ) )
+            // InternalSignalDSL.g:17912:2: ( ruleQualifiedNameWithWildcard )
             {
-            // InternalSignalDSL.g:17642:2: ( ruleQualifiedNameWithWildcard )
-            // InternalSignalDSL.g:17643:3: ruleQualifiedNameWithWildcard
+            // InternalSignalDSL.g:17912:2: ( ruleQualifiedNameWithWildcard )
+            // InternalSignalDSL.g:17913:3: ruleQualifiedNameWithWildcard
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getImportedNamespaceQualifiedNameWithWildcardParserRuleCall_2_2_0()); 
@@ -58071,28 +58881,28 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__FqnImportAssignment_2_3_0"
-    // InternalSignalDSL.g:17652:1: rule__XImportDeclaration__FqnImportAssignment_2_3_0 : ( ( 'ns' ) ) ;
+    // InternalSignalDSL.g:17922: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:17656:1: ( ( ( 'ns' ) ) )
-            // InternalSignalDSL.g:17657:2: ( ( 'ns' ) )
+            // InternalSignalDSL.g:17926:1: ( ( ( 'ns' ) ) )
+            // InternalSignalDSL.g:17927:2: ( ( 'ns' ) )
             {
-            // InternalSignalDSL.g:17657:2: ( ( 'ns' ) )
-            // InternalSignalDSL.g:17658:3: ( 'ns' )
+            // InternalSignalDSL.g:17927:2: ( ( 'ns' ) )
+            // InternalSignalDSL.g:17928:3: ( 'ns' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getFqnImportNsKeyword_2_3_0_0()); 
             }
-            // InternalSignalDSL.g:17659:3: ( 'ns' )
-            // InternalSignalDSL.g:17660:4: 'ns'
+            // InternalSignalDSL.g:17929:3: ( 'ns' )
+            // InternalSignalDSL.g:17930:4: 'ns'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getFqnImportNsKeyword_2_3_0_0()); 
             }
-            match(input,103,FOLLOW_2); if (state.failed) return ;
+            match(input,101,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXImportDeclarationAccess().getFqnImportNsKeyword_2_3_0_0()); 
             }
@@ -58124,17 +58934,17 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1"
-    // InternalSignalDSL.g:17671:1: rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1 : ( ruleQualifiedName ) ;
+    // InternalSignalDSL.g:17941: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:17675:1: ( ( ruleQualifiedName ) )
-            // InternalSignalDSL.g:17676:2: ( ruleQualifiedName )
+            // InternalSignalDSL.g:17945:1: ( ( ruleQualifiedName ) )
+            // InternalSignalDSL.g:17946:2: ( ruleQualifiedName )
             {
-            // InternalSignalDSL.g:17676:2: ( ruleQualifiedName )
-            // InternalSignalDSL.g:17677:3: ruleQualifiedName
+            // InternalSignalDSL.g:17946:2: ( ruleQualifiedName )
+            // InternalSignalDSL.g:17947:3: ruleQualifiedName
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getImportedFullyQualifiedNameQualifiedNameParserRuleCall_2_3_1_0()); 
@@ -58169,23 +58979,23 @@
 
 
     // $ANTLR start "rule__XAnnotation__AnnotationTypeAssignment_2"
-    // InternalSignalDSL.g:17686:1: rule__XAnnotation__AnnotationTypeAssignment_2 : ( ( ruleQualifiedName ) ) ;
+    // InternalSignalDSL.g:17956:1: rule__XAnnotation__AnnotationTypeAssignment_2 : ( ( ruleQualifiedName ) ) ;
     public final void rule__XAnnotation__AnnotationTypeAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:17690:1: ( ( ( ruleQualifiedName ) ) )
-            // InternalSignalDSL.g:17691:2: ( ( ruleQualifiedName ) )
+            // InternalSignalDSL.g:17960:1: ( ( ( ruleQualifiedName ) ) )
+            // InternalSignalDSL.g:17961:2: ( ( ruleQualifiedName ) )
             {
-            // InternalSignalDSL.g:17691:2: ( ( ruleQualifiedName ) )
-            // InternalSignalDSL.g:17692:3: ( ruleQualifiedName )
+            // InternalSignalDSL.g:17961:2: ( ( ruleQualifiedName ) )
+            // InternalSignalDSL.g:17962:3: ( ruleQualifiedName )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationAccess().getAnnotationTypeJvmAnnotationTypeCrossReference_2_0()); 
             }
-            // InternalSignalDSL.g:17693:3: ( ruleQualifiedName )
-            // InternalSignalDSL.g:17694:4: ruleQualifiedName
+            // InternalSignalDSL.g:17963:3: ( ruleQualifiedName )
+            // InternalSignalDSL.g:17964:4: ruleQualifiedName
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationAccess().getAnnotationTypeJvmAnnotationTypeQualifiedNameParserRuleCall_2_0_1()); 
@@ -58226,17 +59036,17 @@
 
 
     // $ANTLR start "rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0"
-    // InternalSignalDSL.g:17705:1: rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0 : ( ruleXAnnotationElementValuePair ) ;
+    // InternalSignalDSL.g:17975: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:17709:1: ( ( ruleXAnnotationElementValuePair ) )
-            // InternalSignalDSL.g:17710:2: ( ruleXAnnotationElementValuePair )
+            // InternalSignalDSL.g:17979:1: ( ( ruleXAnnotationElementValuePair ) )
+            // InternalSignalDSL.g:17980:2: ( ruleXAnnotationElementValuePair )
             {
-            // InternalSignalDSL.g:17710:2: ( ruleXAnnotationElementValuePair )
-            // InternalSignalDSL.g:17711:3: ruleXAnnotationElementValuePair
+            // InternalSignalDSL.g:17980:2: ( ruleXAnnotationElementValuePair )
+            // InternalSignalDSL.g:17981:3: ruleXAnnotationElementValuePair
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationAccess().getElementValuePairsXAnnotationElementValuePairParserRuleCall_3_1_0_0_0()); 
@@ -58271,17 +59081,17 @@
 
 
     // $ANTLR start "rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1"
-    // InternalSignalDSL.g:17720:1: rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1 : ( ruleXAnnotationElementValuePair ) ;
+    // InternalSignalDSL.g:17990: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:17724:1: ( ( ruleXAnnotationElementValuePair ) )
-            // InternalSignalDSL.g:17725:2: ( ruleXAnnotationElementValuePair )
+            // InternalSignalDSL.g:17994:1: ( ( ruleXAnnotationElementValuePair ) )
+            // InternalSignalDSL.g:17995:2: ( ruleXAnnotationElementValuePair )
             {
-            // InternalSignalDSL.g:17725:2: ( ruleXAnnotationElementValuePair )
-            // InternalSignalDSL.g:17726:3: ruleXAnnotationElementValuePair
+            // InternalSignalDSL.g:17995:2: ( ruleXAnnotationElementValuePair )
+            // InternalSignalDSL.g:17996:3: ruleXAnnotationElementValuePair
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationAccess().getElementValuePairsXAnnotationElementValuePairParserRuleCall_3_1_0_1_1_0()); 
@@ -58316,17 +59126,17 @@
 
 
     // $ANTLR start "rule__XAnnotation__ValueAssignment_3_1_1"
-    // InternalSignalDSL.g:17735:1: rule__XAnnotation__ValueAssignment_3_1_1 : ( ruleXAnnotationElementValueOrCommaList ) ;
+    // InternalSignalDSL.g:18005: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:17739:1: ( ( ruleXAnnotationElementValueOrCommaList ) )
-            // InternalSignalDSL.g:17740:2: ( ruleXAnnotationElementValueOrCommaList )
+            // InternalSignalDSL.g:18009:1: ( ( ruleXAnnotationElementValueOrCommaList ) )
+            // InternalSignalDSL.g:18010:2: ( ruleXAnnotationElementValueOrCommaList )
             {
-            // InternalSignalDSL.g:17740:2: ( ruleXAnnotationElementValueOrCommaList )
-            // InternalSignalDSL.g:17741:3: ruleXAnnotationElementValueOrCommaList
+            // InternalSignalDSL.g:18010:2: ( ruleXAnnotationElementValueOrCommaList )
+            // InternalSignalDSL.g:18011:3: ruleXAnnotationElementValueOrCommaList
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationAccess().getValueXAnnotationElementValueOrCommaListParserRuleCall_3_1_1_0()); 
@@ -58361,23 +59171,23 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValuePair__ElementAssignment_0_0_0"
-    // InternalSignalDSL.g:17750:1: rule__XAnnotationElementValuePair__ElementAssignment_0_0_0 : ( ( ruleValidID ) ) ;
+    // InternalSignalDSL.g:18020: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:17754:1: ( ( ( ruleValidID ) ) )
-            // InternalSignalDSL.g:17755:2: ( ( ruleValidID ) )
+            // InternalSignalDSL.g:18024:1: ( ( ( ruleValidID ) ) )
+            // InternalSignalDSL.g:18025:2: ( ( ruleValidID ) )
             {
-            // InternalSignalDSL.g:17755:2: ( ( ruleValidID ) )
-            // InternalSignalDSL.g:17756:3: ( ruleValidID )
+            // InternalSignalDSL.g:18025:2: ( ( ruleValidID ) )
+            // InternalSignalDSL.g:18026:3: ( ruleValidID )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValuePairAccess().getElementJvmOperationCrossReference_0_0_0_0()); 
             }
-            // InternalSignalDSL.g:17757:3: ( ruleValidID )
-            // InternalSignalDSL.g:17758:4: ruleValidID
+            // InternalSignalDSL.g:18027:3: ( ruleValidID )
+            // InternalSignalDSL.g:18028:4: ruleValidID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValuePairAccess().getElementJvmOperationValidIDParserRuleCall_0_0_0_0_1()); 
@@ -58418,17 +59228,17 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValuePair__ValueAssignment_1"
-    // InternalSignalDSL.g:17769:1: rule__XAnnotationElementValuePair__ValueAssignment_1 : ( ruleXAnnotationElementValue ) ;
+    // InternalSignalDSL.g:18039:1: rule__XAnnotationElementValuePair__ValueAssignment_1 : ( ruleXAnnotationElementValue ) ;
     public final void rule__XAnnotationElementValuePair__ValueAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:17773:1: ( ( ruleXAnnotationElementValue ) )
-            // InternalSignalDSL.g:17774:2: ( ruleXAnnotationElementValue )
+            // InternalSignalDSL.g:18043:1: ( ( ruleXAnnotationElementValue ) )
+            // InternalSignalDSL.g:18044:2: ( ruleXAnnotationElementValue )
             {
-            // InternalSignalDSL.g:17774:2: ( ruleXAnnotationElementValue )
-            // InternalSignalDSL.g:17775:3: ruleXAnnotationElementValue
+            // InternalSignalDSL.g:18044:2: ( ruleXAnnotationElementValue )
+            // InternalSignalDSL.g:18045:3: ruleXAnnotationElementValue
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValuePairAccess().getValueXAnnotationElementValueParserRuleCall_1_0()); 
@@ -58463,17 +59273,17 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0"
-    // InternalSignalDSL.g:17784:1: rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0 : ( ruleXAnnotationOrExpression ) ;
+    // InternalSignalDSL.g:18054: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:17788:1: ( ( ruleXAnnotationOrExpression ) )
-            // InternalSignalDSL.g:17789:2: ( ruleXAnnotationOrExpression )
+            // InternalSignalDSL.g:18058:1: ( ( ruleXAnnotationOrExpression ) )
+            // InternalSignalDSL.g:18059:2: ( ruleXAnnotationOrExpression )
             {
-            // InternalSignalDSL.g:17789:2: ( ruleXAnnotationOrExpression )
-            // InternalSignalDSL.g:17790:3: ruleXAnnotationOrExpression
+            // InternalSignalDSL.g:18059:2: ( ruleXAnnotationOrExpression )
+            // InternalSignalDSL.g:18060:3: ruleXAnnotationOrExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getElementsXAnnotationOrExpressionParserRuleCall_0_1_0_0()); 
@@ -58508,17 +59318,17 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1"
-    // InternalSignalDSL.g:17799:1: rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1 : ( ruleXAnnotationOrExpression ) ;
+    // InternalSignalDSL.g:18069: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:17803:1: ( ( ruleXAnnotationOrExpression ) )
-            // InternalSignalDSL.g:17804:2: ( ruleXAnnotationOrExpression )
+            // InternalSignalDSL.g:18073:1: ( ( ruleXAnnotationOrExpression ) )
+            // InternalSignalDSL.g:18074:2: ( ruleXAnnotationOrExpression )
             {
-            // InternalSignalDSL.g:17804:2: ( ruleXAnnotationOrExpression )
-            // InternalSignalDSL.g:17805:3: ruleXAnnotationOrExpression
+            // InternalSignalDSL.g:18074:2: ( ruleXAnnotationOrExpression )
+            // InternalSignalDSL.g:18075:3: ruleXAnnotationOrExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getElementsXAnnotationOrExpressionParserRuleCall_0_1_1_1_0()); 
@@ -58553,17 +59363,17 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1"
-    // InternalSignalDSL.g:17814:1: rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1 : ( ruleXAnnotationOrExpression ) ;
+    // InternalSignalDSL.g:18084: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:17818:1: ( ( ruleXAnnotationOrExpression ) )
-            // InternalSignalDSL.g:17819:2: ( ruleXAnnotationOrExpression )
+            // InternalSignalDSL.g:18088:1: ( ( ruleXAnnotationOrExpression ) )
+            // InternalSignalDSL.g:18089:2: ( ruleXAnnotationOrExpression )
             {
-            // InternalSignalDSL.g:17819:2: ( ruleXAnnotationOrExpression )
-            // InternalSignalDSL.g:17820:3: ruleXAnnotationOrExpression
+            // InternalSignalDSL.g:18089:2: ( ruleXAnnotationOrExpression )
+            // InternalSignalDSL.g:18090:3: ruleXAnnotationOrExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getElementsXAnnotationOrExpressionParserRuleCall_1_1_1_1_0()); 
@@ -58598,17 +59408,17 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__ElementsAssignment_0_1_0"
-    // InternalSignalDSL.g:17829:1: rule__XAnnotationElementValue__ElementsAssignment_0_1_0 : ( ruleXAnnotationOrExpression ) ;
+    // InternalSignalDSL.g:18099: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:17833:1: ( ( ruleXAnnotationOrExpression ) )
-            // InternalSignalDSL.g:17834:2: ( ruleXAnnotationOrExpression )
+            // InternalSignalDSL.g:18103:1: ( ( ruleXAnnotationOrExpression ) )
+            // InternalSignalDSL.g:18104:2: ( ruleXAnnotationOrExpression )
             {
-            // InternalSignalDSL.g:17834:2: ( ruleXAnnotationOrExpression )
-            // InternalSignalDSL.g:17835:3: ruleXAnnotationOrExpression
+            // InternalSignalDSL.g:18104:2: ( ruleXAnnotationOrExpression )
+            // InternalSignalDSL.g:18105:3: ruleXAnnotationOrExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueAccess().getElementsXAnnotationOrExpressionParserRuleCall_0_1_0_0()); 
@@ -58643,17 +59453,17 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1"
-    // InternalSignalDSL.g:17844:1: rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1 : ( ruleXAnnotationOrExpression ) ;
+    // InternalSignalDSL.g:18114: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:17848:1: ( ( ruleXAnnotationOrExpression ) )
-            // InternalSignalDSL.g:17849:2: ( ruleXAnnotationOrExpression )
+            // InternalSignalDSL.g:18118:1: ( ( ruleXAnnotationOrExpression ) )
+            // InternalSignalDSL.g:18119:2: ( ruleXAnnotationOrExpression )
             {
-            // InternalSignalDSL.g:17849:2: ( ruleXAnnotationOrExpression )
-            // InternalSignalDSL.g:17850:3: ruleXAnnotationOrExpression
+            // InternalSignalDSL.g:18119:2: ( ruleXAnnotationOrExpression )
+            // InternalSignalDSL.g:18120:3: ruleXAnnotationOrExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueAccess().getElementsXAnnotationOrExpressionParserRuleCall_0_1_1_1_0()); 
@@ -58688,23 +59498,23 @@
 
 
     // $ANTLR start "rule__XAssignment__FeatureAssignment_0_1"
-    // InternalSignalDSL.g:17859:1: rule__XAssignment__FeatureAssignment_0_1 : ( ( ruleFeatureCallID ) ) ;
+    // InternalSignalDSL.g:18129:1: rule__XAssignment__FeatureAssignment_0_1 : ( ( ruleFeatureCallID ) ) ;
     public final void rule__XAssignment__FeatureAssignment_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:17863:1: ( ( ( ruleFeatureCallID ) ) )
-            // InternalSignalDSL.g:17864:2: ( ( ruleFeatureCallID ) )
+            // InternalSignalDSL.g:18133:1: ( ( ( ruleFeatureCallID ) ) )
+            // InternalSignalDSL.g:18134:2: ( ( ruleFeatureCallID ) )
             {
-            // InternalSignalDSL.g:17864:2: ( ( ruleFeatureCallID ) )
-            // InternalSignalDSL.g:17865:3: ( ruleFeatureCallID )
+            // InternalSignalDSL.g:18134:2: ( ( ruleFeatureCallID ) )
+            // InternalSignalDSL.g:18135:3: ( ruleFeatureCallID )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAssignmentAccess().getFeatureJvmIdentifiableElementCrossReference_0_1_0()); 
             }
-            // InternalSignalDSL.g:17866:3: ( ruleFeatureCallID )
-            // InternalSignalDSL.g:17867:4: ruleFeatureCallID
+            // InternalSignalDSL.g:18136:3: ( ruleFeatureCallID )
+            // InternalSignalDSL.g:18137:4: ruleFeatureCallID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAssignmentAccess().getFeatureJvmIdentifiableElementFeatureCallIDParserRuleCall_0_1_0_1()); 
@@ -58745,17 +59555,17 @@
 
 
     // $ANTLR start "rule__XAssignment__ValueAssignment_0_3"
-    // InternalSignalDSL.g:17878:1: rule__XAssignment__ValueAssignment_0_3 : ( ruleXAssignment ) ;
+    // InternalSignalDSL.g:18148:1: rule__XAssignment__ValueAssignment_0_3 : ( ruleXAssignment ) ;
     public final void rule__XAssignment__ValueAssignment_0_3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:17882:1: ( ( ruleXAssignment ) )
-            // InternalSignalDSL.g:17883:2: ( ruleXAssignment )
+            // InternalSignalDSL.g:18152:1: ( ( ruleXAssignment ) )
+            // InternalSignalDSL.g:18153:2: ( ruleXAssignment )
             {
-            // InternalSignalDSL.g:17883:2: ( ruleXAssignment )
-            // InternalSignalDSL.g:17884:3: ruleXAssignment
+            // InternalSignalDSL.g:18153:2: ( ruleXAssignment )
+            // InternalSignalDSL.g:18154:3: ruleXAssignment
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAssignmentAccess().getValueXAssignmentParserRuleCall_0_3_0()); 
@@ -58790,23 +59600,23 @@
 
 
     // $ANTLR start "rule__XAssignment__FeatureAssignment_1_1_0_0_1"
-    // InternalSignalDSL.g:17893:1: rule__XAssignment__FeatureAssignment_1_1_0_0_1 : ( ( ruleOpMultiAssign ) ) ;
+    // InternalSignalDSL.g:18163: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:17897:1: ( ( ( ruleOpMultiAssign ) ) )
-            // InternalSignalDSL.g:17898:2: ( ( ruleOpMultiAssign ) )
+            // InternalSignalDSL.g:18167:1: ( ( ( ruleOpMultiAssign ) ) )
+            // InternalSignalDSL.g:18168:2: ( ( ruleOpMultiAssign ) )
             {
-            // InternalSignalDSL.g:17898:2: ( ( ruleOpMultiAssign ) )
-            // InternalSignalDSL.g:17899:3: ( ruleOpMultiAssign )
+            // InternalSignalDSL.g:18168:2: ( ( ruleOpMultiAssign ) )
+            // InternalSignalDSL.g:18169:3: ( ruleOpMultiAssign )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAssignmentAccess().getFeatureJvmIdentifiableElementCrossReference_1_1_0_0_1_0()); 
             }
-            // InternalSignalDSL.g:17900:3: ( ruleOpMultiAssign )
-            // InternalSignalDSL.g:17901:4: ruleOpMultiAssign
+            // InternalSignalDSL.g:18170:3: ( ruleOpMultiAssign )
+            // InternalSignalDSL.g:18171:4: ruleOpMultiAssign
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAssignmentAccess().getFeatureJvmIdentifiableElementOpMultiAssignParserRuleCall_1_1_0_0_1_0_1()); 
@@ -58847,17 +59657,17 @@
 
 
     // $ANTLR start "rule__XAssignment__RightOperandAssignment_1_1_1"
-    // InternalSignalDSL.g:17912:1: rule__XAssignment__RightOperandAssignment_1_1_1 : ( ruleXAssignment ) ;
+    // InternalSignalDSL.g:18182: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:17916:1: ( ( ruleXAssignment ) )
-            // InternalSignalDSL.g:17917:2: ( ruleXAssignment )
+            // InternalSignalDSL.g:18186:1: ( ( ruleXAssignment ) )
+            // InternalSignalDSL.g:18187:2: ( ruleXAssignment )
             {
-            // InternalSignalDSL.g:17917:2: ( ruleXAssignment )
-            // InternalSignalDSL.g:17918:3: ruleXAssignment
+            // InternalSignalDSL.g:18187:2: ( ruleXAssignment )
+            // InternalSignalDSL.g:18188:3: ruleXAssignment
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAssignmentAccess().getRightOperandXAssignmentParserRuleCall_1_1_1_0()); 
@@ -58892,23 +59702,23 @@
 
 
     // $ANTLR start "rule__XOrExpression__FeatureAssignment_1_0_0_1"
-    // InternalSignalDSL.g:17927:1: rule__XOrExpression__FeatureAssignment_1_0_0_1 : ( ( ruleOpOr ) ) ;
+    // InternalSignalDSL.g:18197: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:17931:1: ( ( ( ruleOpOr ) ) )
-            // InternalSignalDSL.g:17932:2: ( ( ruleOpOr ) )
+            // InternalSignalDSL.g:18201:1: ( ( ( ruleOpOr ) ) )
+            // InternalSignalDSL.g:18202:2: ( ( ruleOpOr ) )
             {
-            // InternalSignalDSL.g:17932:2: ( ( ruleOpOr ) )
-            // InternalSignalDSL.g:17933:3: ( ruleOpOr )
+            // InternalSignalDSL.g:18202:2: ( ( ruleOpOr ) )
+            // InternalSignalDSL.g:18203:3: ( ruleOpOr )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOrExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0()); 
             }
-            // InternalSignalDSL.g:17934:3: ( ruleOpOr )
-            // InternalSignalDSL.g:17935:4: ruleOpOr
+            // InternalSignalDSL.g:18204:3: ( ruleOpOr )
+            // InternalSignalDSL.g:18205:4: ruleOpOr
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOrExpressionAccess().getFeatureJvmIdentifiableElementOpOrParserRuleCall_1_0_0_1_0_1()); 
@@ -58949,17 +59759,17 @@
 
 
     // $ANTLR start "rule__XOrExpression__RightOperandAssignment_1_1"
-    // InternalSignalDSL.g:17946:1: rule__XOrExpression__RightOperandAssignment_1_1 : ( ruleXAndExpression ) ;
+    // InternalSignalDSL.g:18216:1: rule__XOrExpression__RightOperandAssignment_1_1 : ( ruleXAndExpression ) ;
     public final void rule__XOrExpression__RightOperandAssignment_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:17950:1: ( ( ruleXAndExpression ) )
-            // InternalSignalDSL.g:17951:2: ( ruleXAndExpression )
+            // InternalSignalDSL.g:18220:1: ( ( ruleXAndExpression ) )
+            // InternalSignalDSL.g:18221:2: ( ruleXAndExpression )
             {
-            // InternalSignalDSL.g:17951:2: ( ruleXAndExpression )
-            // InternalSignalDSL.g:17952:3: ruleXAndExpression
+            // InternalSignalDSL.g:18221:2: ( ruleXAndExpression )
+            // InternalSignalDSL.g:18222:3: ruleXAndExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOrExpressionAccess().getRightOperandXAndExpressionParserRuleCall_1_1_0()); 
@@ -58994,23 +59804,23 @@
 
 
     // $ANTLR start "rule__XAndExpression__FeatureAssignment_1_0_0_1"
-    // InternalSignalDSL.g:17961:1: rule__XAndExpression__FeatureAssignment_1_0_0_1 : ( ( ruleOpAnd ) ) ;
+    // InternalSignalDSL.g:18231: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:17965:1: ( ( ( ruleOpAnd ) ) )
-            // InternalSignalDSL.g:17966:2: ( ( ruleOpAnd ) )
+            // InternalSignalDSL.g:18235:1: ( ( ( ruleOpAnd ) ) )
+            // InternalSignalDSL.g:18236:2: ( ( ruleOpAnd ) )
             {
-            // InternalSignalDSL.g:17966:2: ( ( ruleOpAnd ) )
-            // InternalSignalDSL.g:17967:3: ( ruleOpAnd )
+            // InternalSignalDSL.g:18236:2: ( ( ruleOpAnd ) )
+            // InternalSignalDSL.g:18237:3: ( ruleOpAnd )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAndExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0()); 
             }
-            // InternalSignalDSL.g:17968:3: ( ruleOpAnd )
-            // InternalSignalDSL.g:17969:4: ruleOpAnd
+            // InternalSignalDSL.g:18238:3: ( ruleOpAnd )
+            // InternalSignalDSL.g:18239:4: ruleOpAnd
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAndExpressionAccess().getFeatureJvmIdentifiableElementOpAndParserRuleCall_1_0_0_1_0_1()); 
@@ -59051,17 +59861,17 @@
 
 
     // $ANTLR start "rule__XAndExpression__RightOperandAssignment_1_1"
-    // InternalSignalDSL.g:17980:1: rule__XAndExpression__RightOperandAssignment_1_1 : ( ruleXEqualityExpression ) ;
+    // InternalSignalDSL.g:18250:1: rule__XAndExpression__RightOperandAssignment_1_1 : ( ruleXEqualityExpression ) ;
     public final void rule__XAndExpression__RightOperandAssignment_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:17984:1: ( ( ruleXEqualityExpression ) )
-            // InternalSignalDSL.g:17985:2: ( ruleXEqualityExpression )
+            // InternalSignalDSL.g:18254:1: ( ( ruleXEqualityExpression ) )
+            // InternalSignalDSL.g:18255:2: ( ruleXEqualityExpression )
             {
-            // InternalSignalDSL.g:17985:2: ( ruleXEqualityExpression )
-            // InternalSignalDSL.g:17986:3: ruleXEqualityExpression
+            // InternalSignalDSL.g:18255:2: ( ruleXEqualityExpression )
+            // InternalSignalDSL.g:18256:3: ruleXEqualityExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAndExpressionAccess().getRightOperandXEqualityExpressionParserRuleCall_1_1_0()); 
@@ -59096,23 +59906,23 @@
 
 
     // $ANTLR start "rule__XEqualityExpression__FeatureAssignment_1_0_0_1"
-    // InternalSignalDSL.g:17995:1: rule__XEqualityExpression__FeatureAssignment_1_0_0_1 : ( ( ruleOpEquality ) ) ;
+    // InternalSignalDSL.g:18265: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:17999:1: ( ( ( ruleOpEquality ) ) )
-            // InternalSignalDSL.g:18000:2: ( ( ruleOpEquality ) )
+            // InternalSignalDSL.g:18269:1: ( ( ( ruleOpEquality ) ) )
+            // InternalSignalDSL.g:18270:2: ( ( ruleOpEquality ) )
             {
-            // InternalSignalDSL.g:18000:2: ( ( ruleOpEquality ) )
-            // InternalSignalDSL.g:18001:3: ( ruleOpEquality )
+            // InternalSignalDSL.g:18270:2: ( ( ruleOpEquality ) )
+            // InternalSignalDSL.g:18271:3: ( ruleOpEquality )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXEqualityExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0()); 
             }
-            // InternalSignalDSL.g:18002:3: ( ruleOpEquality )
-            // InternalSignalDSL.g:18003:4: ruleOpEquality
+            // InternalSignalDSL.g:18272:3: ( ruleOpEquality )
+            // InternalSignalDSL.g:18273:4: ruleOpEquality
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXEqualityExpressionAccess().getFeatureJvmIdentifiableElementOpEqualityParserRuleCall_1_0_0_1_0_1()); 
@@ -59153,17 +59963,17 @@
 
 
     // $ANTLR start "rule__XEqualityExpression__RightOperandAssignment_1_1"
-    // InternalSignalDSL.g:18014:1: rule__XEqualityExpression__RightOperandAssignment_1_1 : ( ruleXRelationalExpression ) ;
+    // InternalSignalDSL.g:18284:1: rule__XEqualityExpression__RightOperandAssignment_1_1 : ( ruleXRelationalExpression ) ;
     public final void rule__XEqualityExpression__RightOperandAssignment_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:18018:1: ( ( ruleXRelationalExpression ) )
-            // InternalSignalDSL.g:18019:2: ( ruleXRelationalExpression )
+            // InternalSignalDSL.g:18288:1: ( ( ruleXRelationalExpression ) )
+            // InternalSignalDSL.g:18289:2: ( ruleXRelationalExpression )
             {
-            // InternalSignalDSL.g:18019:2: ( ruleXRelationalExpression )
-            // InternalSignalDSL.g:18020:3: ruleXRelationalExpression
+            // InternalSignalDSL.g:18289:2: ( ruleXRelationalExpression )
+            // InternalSignalDSL.g:18290:3: ruleXRelationalExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXEqualityExpressionAccess().getRightOperandXRelationalExpressionParserRuleCall_1_1_0()); 
@@ -59198,17 +60008,17 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__TypeAssignment_1_0_1"
-    // InternalSignalDSL.g:18029:1: rule__XRelationalExpression__TypeAssignment_1_0_1 : ( ruleJvmTypeReference ) ;
+    // InternalSignalDSL.g:18299: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:18033:1: ( ( ruleJvmTypeReference ) )
-            // InternalSignalDSL.g:18034:2: ( ruleJvmTypeReference )
+            // InternalSignalDSL.g:18303:1: ( ( ruleJvmTypeReference ) )
+            // InternalSignalDSL.g:18304:2: ( ruleJvmTypeReference )
             {
-            // InternalSignalDSL.g:18034:2: ( ruleJvmTypeReference )
-            // InternalSignalDSL.g:18035:3: ruleJvmTypeReference
+            // InternalSignalDSL.g:18304:2: ( ruleJvmTypeReference )
+            // InternalSignalDSL.g:18305:3: ruleJvmTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXRelationalExpressionAccess().getTypeJvmTypeReferenceParserRuleCall_1_0_1_0()); 
@@ -59243,23 +60053,23 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1"
-    // InternalSignalDSL.g:18044:1: rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1 : ( ( ruleOpCompare ) ) ;
+    // InternalSignalDSL.g:18314: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:18048:1: ( ( ( ruleOpCompare ) ) )
-            // InternalSignalDSL.g:18049:2: ( ( ruleOpCompare ) )
+            // InternalSignalDSL.g:18318:1: ( ( ( ruleOpCompare ) ) )
+            // InternalSignalDSL.g:18319:2: ( ( ruleOpCompare ) )
             {
-            // InternalSignalDSL.g:18049:2: ( ( ruleOpCompare ) )
-            // InternalSignalDSL.g:18050:3: ( ruleOpCompare )
+            // InternalSignalDSL.g:18319:2: ( ( ruleOpCompare ) )
+            // InternalSignalDSL.g:18320:3: ( ruleOpCompare )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXRelationalExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_1_0_0_1_0()); 
             }
-            // InternalSignalDSL.g:18051:3: ( ruleOpCompare )
-            // InternalSignalDSL.g:18052:4: ruleOpCompare
+            // InternalSignalDSL.g:18321:3: ( ruleOpCompare )
+            // InternalSignalDSL.g:18322:4: ruleOpCompare
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXRelationalExpressionAccess().getFeatureJvmIdentifiableElementOpCompareParserRuleCall_1_1_0_0_1_0_1()); 
@@ -59300,17 +60110,17 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__RightOperandAssignment_1_1_1"
-    // InternalSignalDSL.g:18063:1: rule__XRelationalExpression__RightOperandAssignment_1_1_1 : ( ruleXOtherOperatorExpression ) ;
+    // InternalSignalDSL.g:18333: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:18067:1: ( ( ruleXOtherOperatorExpression ) )
-            // InternalSignalDSL.g:18068:2: ( ruleXOtherOperatorExpression )
+            // InternalSignalDSL.g:18337:1: ( ( ruleXOtherOperatorExpression ) )
+            // InternalSignalDSL.g:18338:2: ( ruleXOtherOperatorExpression )
             {
-            // InternalSignalDSL.g:18068:2: ( ruleXOtherOperatorExpression )
-            // InternalSignalDSL.g:18069:3: ruleXOtherOperatorExpression
+            // InternalSignalDSL.g:18338:2: ( ruleXOtherOperatorExpression )
+            // InternalSignalDSL.g:18339:3: ruleXOtherOperatorExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXRelationalExpressionAccess().getRightOperandXOtherOperatorExpressionParserRuleCall_1_1_1_0()); 
@@ -59345,23 +60155,23 @@
 
 
     // $ANTLR start "rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1"
-    // InternalSignalDSL.g:18078:1: rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1 : ( ( ruleOpOther ) ) ;
+    // InternalSignalDSL.g:18348: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:18082:1: ( ( ( ruleOpOther ) ) )
-            // InternalSignalDSL.g:18083:2: ( ( ruleOpOther ) )
+            // InternalSignalDSL.g:18352:1: ( ( ( ruleOpOther ) ) )
+            // InternalSignalDSL.g:18353:2: ( ( ruleOpOther ) )
             {
-            // InternalSignalDSL.g:18083:2: ( ( ruleOpOther ) )
-            // InternalSignalDSL.g:18084:3: ( ruleOpOther )
+            // InternalSignalDSL.g:18353:2: ( ( ruleOpOther ) )
+            // InternalSignalDSL.g:18354:3: ( ruleOpOther )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOtherOperatorExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0()); 
             }
-            // InternalSignalDSL.g:18085:3: ( ruleOpOther )
-            // InternalSignalDSL.g:18086:4: ruleOpOther
+            // InternalSignalDSL.g:18355:3: ( ruleOpOther )
+            // InternalSignalDSL.g:18356:4: ruleOpOther
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOtherOperatorExpressionAccess().getFeatureJvmIdentifiableElementOpOtherParserRuleCall_1_0_0_1_0_1()); 
@@ -59402,17 +60212,17 @@
 
 
     // $ANTLR start "rule__XOtherOperatorExpression__RightOperandAssignment_1_1"
-    // InternalSignalDSL.g:18097:1: rule__XOtherOperatorExpression__RightOperandAssignment_1_1 : ( ruleXAdditiveExpression ) ;
+    // InternalSignalDSL.g:18367:1: rule__XOtherOperatorExpression__RightOperandAssignment_1_1 : ( ruleXAdditiveExpression ) ;
     public final void rule__XOtherOperatorExpression__RightOperandAssignment_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:18101:1: ( ( ruleXAdditiveExpression ) )
-            // InternalSignalDSL.g:18102:2: ( ruleXAdditiveExpression )
+            // InternalSignalDSL.g:18371:1: ( ( ruleXAdditiveExpression ) )
+            // InternalSignalDSL.g:18372:2: ( ruleXAdditiveExpression )
             {
-            // InternalSignalDSL.g:18102:2: ( ruleXAdditiveExpression )
-            // InternalSignalDSL.g:18103:3: ruleXAdditiveExpression
+            // InternalSignalDSL.g:18372:2: ( ruleXAdditiveExpression )
+            // InternalSignalDSL.g:18373:3: ruleXAdditiveExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOtherOperatorExpressionAccess().getRightOperandXAdditiveExpressionParserRuleCall_1_1_0()); 
@@ -59447,23 +60257,23 @@
 
 
     // $ANTLR start "rule__XAdditiveExpression__FeatureAssignment_1_0_0_1"
-    // InternalSignalDSL.g:18112:1: rule__XAdditiveExpression__FeatureAssignment_1_0_0_1 : ( ( ruleOpAdd ) ) ;
+    // InternalSignalDSL.g:18382: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:18116:1: ( ( ( ruleOpAdd ) ) )
-            // InternalSignalDSL.g:18117:2: ( ( ruleOpAdd ) )
+            // InternalSignalDSL.g:18386:1: ( ( ( ruleOpAdd ) ) )
+            // InternalSignalDSL.g:18387:2: ( ( ruleOpAdd ) )
             {
-            // InternalSignalDSL.g:18117:2: ( ( ruleOpAdd ) )
-            // InternalSignalDSL.g:18118:3: ( ruleOpAdd )
+            // InternalSignalDSL.g:18387:2: ( ( ruleOpAdd ) )
+            // InternalSignalDSL.g:18388:3: ( ruleOpAdd )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAdditiveExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0()); 
             }
-            // InternalSignalDSL.g:18119:3: ( ruleOpAdd )
-            // InternalSignalDSL.g:18120:4: ruleOpAdd
+            // InternalSignalDSL.g:18389:3: ( ruleOpAdd )
+            // InternalSignalDSL.g:18390:4: ruleOpAdd
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAdditiveExpressionAccess().getFeatureJvmIdentifiableElementOpAddParserRuleCall_1_0_0_1_0_1()); 
@@ -59504,17 +60314,17 @@
 
 
     // $ANTLR start "rule__XAdditiveExpression__RightOperandAssignment_1_1"
-    // InternalSignalDSL.g:18131:1: rule__XAdditiveExpression__RightOperandAssignment_1_1 : ( ruleXMultiplicativeExpression ) ;
+    // InternalSignalDSL.g:18401:1: rule__XAdditiveExpression__RightOperandAssignment_1_1 : ( ruleXMultiplicativeExpression ) ;
     public final void rule__XAdditiveExpression__RightOperandAssignment_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:18135:1: ( ( ruleXMultiplicativeExpression ) )
-            // InternalSignalDSL.g:18136:2: ( ruleXMultiplicativeExpression )
+            // InternalSignalDSL.g:18405:1: ( ( ruleXMultiplicativeExpression ) )
+            // InternalSignalDSL.g:18406:2: ( ruleXMultiplicativeExpression )
             {
-            // InternalSignalDSL.g:18136:2: ( ruleXMultiplicativeExpression )
-            // InternalSignalDSL.g:18137:3: ruleXMultiplicativeExpression
+            // InternalSignalDSL.g:18406:2: ( ruleXMultiplicativeExpression )
+            // InternalSignalDSL.g:18407:3: ruleXMultiplicativeExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAdditiveExpressionAccess().getRightOperandXMultiplicativeExpressionParserRuleCall_1_1_0()); 
@@ -59549,23 +60359,23 @@
 
 
     // $ANTLR start "rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1"
-    // InternalSignalDSL.g:18146:1: rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1 : ( ( ruleOpMulti ) ) ;
+    // InternalSignalDSL.g:18416: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:18150:1: ( ( ( ruleOpMulti ) ) )
-            // InternalSignalDSL.g:18151:2: ( ( ruleOpMulti ) )
+            // InternalSignalDSL.g:18420:1: ( ( ( ruleOpMulti ) ) )
+            // InternalSignalDSL.g:18421:2: ( ( ruleOpMulti ) )
             {
-            // InternalSignalDSL.g:18151:2: ( ( ruleOpMulti ) )
-            // InternalSignalDSL.g:18152:3: ( ruleOpMulti )
+            // InternalSignalDSL.g:18421:2: ( ( ruleOpMulti ) )
+            // InternalSignalDSL.g:18422:3: ( ruleOpMulti )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMultiplicativeExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0()); 
             }
-            // InternalSignalDSL.g:18153:3: ( ruleOpMulti )
-            // InternalSignalDSL.g:18154:4: ruleOpMulti
+            // InternalSignalDSL.g:18423:3: ( ruleOpMulti )
+            // InternalSignalDSL.g:18424:4: ruleOpMulti
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMultiplicativeExpressionAccess().getFeatureJvmIdentifiableElementOpMultiParserRuleCall_1_0_0_1_0_1()); 
@@ -59606,17 +60416,17 @@
 
 
     // $ANTLR start "rule__XMultiplicativeExpression__RightOperandAssignment_1_1"
-    // InternalSignalDSL.g:18165:1: rule__XMultiplicativeExpression__RightOperandAssignment_1_1 : ( ruleXUnaryOperation ) ;
+    // InternalSignalDSL.g:18435:1: rule__XMultiplicativeExpression__RightOperandAssignment_1_1 : ( ruleXUnaryOperation ) ;
     public final void rule__XMultiplicativeExpression__RightOperandAssignment_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:18169:1: ( ( ruleXUnaryOperation ) )
-            // InternalSignalDSL.g:18170:2: ( ruleXUnaryOperation )
+            // InternalSignalDSL.g:18439:1: ( ( ruleXUnaryOperation ) )
+            // InternalSignalDSL.g:18440:2: ( ruleXUnaryOperation )
             {
-            // InternalSignalDSL.g:18170:2: ( ruleXUnaryOperation )
-            // InternalSignalDSL.g:18171:3: ruleXUnaryOperation
+            // InternalSignalDSL.g:18440:2: ( ruleXUnaryOperation )
+            // InternalSignalDSL.g:18441:3: ruleXUnaryOperation
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMultiplicativeExpressionAccess().getRightOperandXUnaryOperationParserRuleCall_1_1_0()); 
@@ -59651,23 +60461,23 @@
 
 
     // $ANTLR start "rule__XUnaryOperation__FeatureAssignment_0_1"
-    // InternalSignalDSL.g:18180:1: rule__XUnaryOperation__FeatureAssignment_0_1 : ( ( ruleOpUnary ) ) ;
+    // InternalSignalDSL.g:18450:1: rule__XUnaryOperation__FeatureAssignment_0_1 : ( ( ruleOpUnary ) ) ;
     public final void rule__XUnaryOperation__FeatureAssignment_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:18184:1: ( ( ( ruleOpUnary ) ) )
-            // InternalSignalDSL.g:18185:2: ( ( ruleOpUnary ) )
+            // InternalSignalDSL.g:18454:1: ( ( ( ruleOpUnary ) ) )
+            // InternalSignalDSL.g:18455:2: ( ( ruleOpUnary ) )
             {
-            // InternalSignalDSL.g:18185:2: ( ( ruleOpUnary ) )
-            // InternalSignalDSL.g:18186:3: ( ruleOpUnary )
+            // InternalSignalDSL.g:18455:2: ( ( ruleOpUnary ) )
+            // InternalSignalDSL.g:18456:3: ( ruleOpUnary )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXUnaryOperationAccess().getFeatureJvmIdentifiableElementCrossReference_0_1_0()); 
             }
-            // InternalSignalDSL.g:18187:3: ( ruleOpUnary )
-            // InternalSignalDSL.g:18188:4: ruleOpUnary
+            // InternalSignalDSL.g:18457:3: ( ruleOpUnary )
+            // InternalSignalDSL.g:18458:4: ruleOpUnary
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXUnaryOperationAccess().getFeatureJvmIdentifiableElementOpUnaryParserRuleCall_0_1_0_1()); 
@@ -59708,17 +60518,17 @@
 
 
     // $ANTLR start "rule__XUnaryOperation__OperandAssignment_0_2"
-    // InternalSignalDSL.g:18199:1: rule__XUnaryOperation__OperandAssignment_0_2 : ( ruleXUnaryOperation ) ;
+    // InternalSignalDSL.g:18469:1: rule__XUnaryOperation__OperandAssignment_0_2 : ( ruleXUnaryOperation ) ;
     public final void rule__XUnaryOperation__OperandAssignment_0_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:18203:1: ( ( ruleXUnaryOperation ) )
-            // InternalSignalDSL.g:18204:2: ( ruleXUnaryOperation )
+            // InternalSignalDSL.g:18473:1: ( ( ruleXUnaryOperation ) )
+            // InternalSignalDSL.g:18474:2: ( ruleXUnaryOperation )
             {
-            // InternalSignalDSL.g:18204:2: ( ruleXUnaryOperation )
-            // InternalSignalDSL.g:18205:3: ruleXUnaryOperation
+            // InternalSignalDSL.g:18474:2: ( ruleXUnaryOperation )
+            // InternalSignalDSL.g:18475:3: ruleXUnaryOperation
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXUnaryOperationAccess().getOperandXUnaryOperationParserRuleCall_0_2_0()); 
@@ -59753,17 +60563,17 @@
 
 
     // $ANTLR start "rule__XCastedExpression__TypeAssignment_1_1"
-    // InternalSignalDSL.g:18214:1: rule__XCastedExpression__TypeAssignment_1_1 : ( ruleJvmTypeReference ) ;
+    // InternalSignalDSL.g:18484:1: rule__XCastedExpression__TypeAssignment_1_1 : ( ruleJvmTypeReference ) ;
     public final void rule__XCastedExpression__TypeAssignment_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:18218:1: ( ( ruleJvmTypeReference ) )
-            // InternalSignalDSL.g:18219:2: ( ruleJvmTypeReference )
+            // InternalSignalDSL.g:18488:1: ( ( ruleJvmTypeReference ) )
+            // InternalSignalDSL.g:18489:2: ( ruleJvmTypeReference )
             {
-            // InternalSignalDSL.g:18219:2: ( ruleJvmTypeReference )
-            // InternalSignalDSL.g:18220:3: ruleJvmTypeReference
+            // InternalSignalDSL.g:18489:2: ( ruleJvmTypeReference )
+            // InternalSignalDSL.g:18490:3: ruleJvmTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCastedExpressionAccess().getTypeJvmTypeReferenceParserRuleCall_1_1_0()); 
@@ -59798,23 +60608,23 @@
 
 
     // $ANTLR start "rule__XPostfixOperation__FeatureAssignment_1_0_1"
-    // InternalSignalDSL.g:18229:1: rule__XPostfixOperation__FeatureAssignment_1_0_1 : ( ( ruleOpPostfix ) ) ;
+    // InternalSignalDSL.g:18499: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:18233:1: ( ( ( ruleOpPostfix ) ) )
-            // InternalSignalDSL.g:18234:2: ( ( ruleOpPostfix ) )
+            // InternalSignalDSL.g:18503:1: ( ( ( ruleOpPostfix ) ) )
+            // InternalSignalDSL.g:18504:2: ( ( ruleOpPostfix ) )
             {
-            // InternalSignalDSL.g:18234:2: ( ( ruleOpPostfix ) )
-            // InternalSignalDSL.g:18235:3: ( ruleOpPostfix )
+            // InternalSignalDSL.g:18504:2: ( ( ruleOpPostfix ) )
+            // InternalSignalDSL.g:18505:3: ( ruleOpPostfix )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXPostfixOperationAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_1_0()); 
             }
-            // InternalSignalDSL.g:18236:3: ( ruleOpPostfix )
-            // InternalSignalDSL.g:18237:4: ruleOpPostfix
+            // InternalSignalDSL.g:18506:3: ( ruleOpPostfix )
+            // InternalSignalDSL.g:18507:4: ruleOpPostfix
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXPostfixOperationAccess().getFeatureJvmIdentifiableElementOpPostfixParserRuleCall_1_0_1_0_1()); 
@@ -59855,28 +60665,28 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1"
-    // InternalSignalDSL.g:18248:1: rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1 : ( ( '::' ) ) ;
+    // InternalSignalDSL.g:18518: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:18252:1: ( ( ( '::' ) ) )
-            // InternalSignalDSL.g:18253:2: ( ( '::' ) )
+            // InternalSignalDSL.g:18522:1: ( ( ( '::' ) ) )
+            // InternalSignalDSL.g:18523:2: ( ( '::' ) )
             {
-            // InternalSignalDSL.g:18253:2: ( ( '::' ) )
-            // InternalSignalDSL.g:18254:3: ( '::' )
+            // InternalSignalDSL.g:18523:2: ( ( '::' ) )
+            // InternalSignalDSL.g:18524:3: ( '::' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticColonColonKeyword_1_0_0_0_1_1_0()); 
             }
-            // InternalSignalDSL.g:18255:3: ( '::' )
-            // InternalSignalDSL.g:18256:4: '::'
+            // InternalSignalDSL.g:18525:3: ( '::' )
+            // InternalSignalDSL.g:18526:4: '::'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticColonColonKeyword_1_0_0_0_1_1_0()); 
             }
-            match(input,104,FOLLOW_2); if (state.failed) return ;
+            match(input,102,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticColonColonKeyword_1_0_0_0_1_1_0()); 
             }
@@ -59908,23 +60718,23 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2"
-    // InternalSignalDSL.g:18267:1: rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2 : ( ( ruleFeatureCallID ) ) ;
+    // InternalSignalDSL.g:18537: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:18271:1: ( ( ( ruleFeatureCallID ) ) )
-            // InternalSignalDSL.g:18272:2: ( ( ruleFeatureCallID ) )
+            // InternalSignalDSL.g:18541:1: ( ( ( ruleFeatureCallID ) ) )
+            // InternalSignalDSL.g:18542:2: ( ( ruleFeatureCallID ) )
             {
-            // InternalSignalDSL.g:18272:2: ( ( ruleFeatureCallID ) )
-            // InternalSignalDSL.g:18273:3: ( ruleFeatureCallID )
+            // InternalSignalDSL.g:18542:2: ( ( ruleFeatureCallID ) )
+            // InternalSignalDSL.g:18543:3: ( ruleFeatureCallID )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_0_2_0()); 
             }
-            // InternalSignalDSL.g:18274:3: ( ruleFeatureCallID )
-            // InternalSignalDSL.g:18275:4: ruleFeatureCallID
+            // InternalSignalDSL.g:18544:3: ( ruleFeatureCallID )
+            // InternalSignalDSL.g:18545:4: ruleFeatureCallID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getFeatureJvmIdentifiableElementFeatureCallIDParserRuleCall_1_0_0_0_2_0_1()); 
@@ -59965,17 +60775,17 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__ValueAssignment_1_0_1"
-    // InternalSignalDSL.g:18286:1: rule__XMemberFeatureCall__ValueAssignment_1_0_1 : ( ruleXAssignment ) ;
+    // InternalSignalDSL.g:18556: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:18290:1: ( ( ruleXAssignment ) )
-            // InternalSignalDSL.g:18291:2: ( ruleXAssignment )
+            // InternalSignalDSL.g:18560:1: ( ( ruleXAssignment ) )
+            // InternalSignalDSL.g:18561:2: ( ruleXAssignment )
             {
-            // InternalSignalDSL.g:18291:2: ( ruleXAssignment )
-            // InternalSignalDSL.g:18292:3: ruleXAssignment
+            // InternalSignalDSL.g:18561:2: ( ruleXAssignment )
+            // InternalSignalDSL.g:18562:3: ruleXAssignment
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getValueXAssignmentParserRuleCall_1_0_1_0()); 
@@ -60010,28 +60820,28 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1"
-    // InternalSignalDSL.g:18301:1: rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1 : ( ( '?.' ) ) ;
+    // InternalSignalDSL.g:18571: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:18305:1: ( ( ( '?.' ) ) )
-            // InternalSignalDSL.g:18306:2: ( ( '?.' ) )
+            // InternalSignalDSL.g:18575:1: ( ( ( '?.' ) ) )
+            // InternalSignalDSL.g:18576:2: ( ( '?.' ) )
             {
-            // InternalSignalDSL.g:18306:2: ( ( '?.' ) )
-            // InternalSignalDSL.g:18307:3: ( '?.' )
+            // InternalSignalDSL.g:18576:2: ( ( '?.' ) )
+            // InternalSignalDSL.g:18577:3: ( '?.' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getNullSafeQuestionMarkFullStopKeyword_1_1_0_0_1_1_0()); 
             }
-            // InternalSignalDSL.g:18308:3: ( '?.' )
-            // InternalSignalDSL.g:18309:4: '?.'
+            // InternalSignalDSL.g:18578:3: ( '?.' )
+            // InternalSignalDSL.g:18579:4: '?.'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getNullSafeQuestionMarkFullStopKeyword_1_1_0_0_1_1_0()); 
             }
-            match(input,105,FOLLOW_2); if (state.failed) return ;
+            match(input,103,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXMemberFeatureCallAccess().getNullSafeQuestionMarkFullStopKeyword_1_1_0_0_1_1_0()); 
             }
@@ -60063,28 +60873,28 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2"
-    // InternalSignalDSL.g:18320:1: rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2 : ( ( '::' ) ) ;
+    // InternalSignalDSL.g:18590: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:18324:1: ( ( ( '::' ) ) )
-            // InternalSignalDSL.g:18325:2: ( ( '::' ) )
+            // InternalSignalDSL.g:18594:1: ( ( ( '::' ) ) )
+            // InternalSignalDSL.g:18595:2: ( ( '::' ) )
             {
-            // InternalSignalDSL.g:18325:2: ( ( '::' ) )
-            // InternalSignalDSL.g:18326:3: ( '::' )
+            // InternalSignalDSL.g:18595:2: ( ( '::' ) )
+            // InternalSignalDSL.g:18596:3: ( '::' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticColonColonKeyword_1_1_0_0_1_2_0()); 
             }
-            // InternalSignalDSL.g:18327:3: ( '::' )
-            // InternalSignalDSL.g:18328:4: '::'
+            // InternalSignalDSL.g:18597:3: ( '::' )
+            // InternalSignalDSL.g:18598:4: '::'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticColonColonKeyword_1_1_0_0_1_2_0()); 
             }
-            match(input,104,FOLLOW_2); if (state.failed) return ;
+            match(input,102,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticColonColonKeyword_1_1_0_0_1_2_0()); 
             }
@@ -60116,17 +60926,17 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1"
-    // InternalSignalDSL.g:18339:1: rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1 : ( ruleJvmArgumentTypeReference ) ;
+    // InternalSignalDSL.g:18609: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:18343:1: ( ( ruleJvmArgumentTypeReference ) )
-            // InternalSignalDSL.g:18344:2: ( ruleJvmArgumentTypeReference )
+            // InternalSignalDSL.g:18613:1: ( ( ruleJvmArgumentTypeReference ) )
+            // InternalSignalDSL.g:18614:2: ( ruleJvmArgumentTypeReference )
             {
-            // InternalSignalDSL.g:18344:2: ( ruleJvmArgumentTypeReference )
-            // InternalSignalDSL.g:18345:3: ruleJvmArgumentTypeReference
+            // InternalSignalDSL.g:18614:2: ( ruleJvmArgumentTypeReference )
+            // InternalSignalDSL.g:18615:3: ruleJvmArgumentTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_1_1_1_1_0()); 
@@ -60161,17 +60971,17 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1"
-    // InternalSignalDSL.g:18354:1: rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1 : ( ruleJvmArgumentTypeReference ) ;
+    // InternalSignalDSL.g:18624: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:18358:1: ( ( ruleJvmArgumentTypeReference ) )
-            // InternalSignalDSL.g:18359:2: ( ruleJvmArgumentTypeReference )
+            // InternalSignalDSL.g:18628:1: ( ( ruleJvmArgumentTypeReference ) )
+            // InternalSignalDSL.g:18629:2: ( ruleJvmArgumentTypeReference )
             {
-            // InternalSignalDSL.g:18359:2: ( ruleJvmArgumentTypeReference )
-            // InternalSignalDSL.g:18360:3: ruleJvmArgumentTypeReference
+            // InternalSignalDSL.g:18629:2: ( ruleJvmArgumentTypeReference )
+            // InternalSignalDSL.g:18630:3: ruleJvmArgumentTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_1_1_1_2_1_0()); 
@@ -60206,23 +61016,23 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__FeatureAssignment_1_1_2"
-    // InternalSignalDSL.g:18369:1: rule__XMemberFeatureCall__FeatureAssignment_1_1_2 : ( ( ruleIdOrSuper ) ) ;
+    // InternalSignalDSL.g:18639: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:18373:1: ( ( ( ruleIdOrSuper ) ) )
-            // InternalSignalDSL.g:18374:2: ( ( ruleIdOrSuper ) )
+            // InternalSignalDSL.g:18643:1: ( ( ( ruleIdOrSuper ) ) )
+            // InternalSignalDSL.g:18644:2: ( ( ruleIdOrSuper ) )
             {
-            // InternalSignalDSL.g:18374:2: ( ( ruleIdOrSuper ) )
-            // InternalSignalDSL.g:18375:3: ( ruleIdOrSuper )
+            // InternalSignalDSL.g:18644:2: ( ( ruleIdOrSuper ) )
+            // InternalSignalDSL.g:18645:3: ( ruleIdOrSuper )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getFeatureJvmIdentifiableElementCrossReference_1_1_2_0()); 
             }
-            // InternalSignalDSL.g:18376:3: ( ruleIdOrSuper )
-            // InternalSignalDSL.g:18377:4: ruleIdOrSuper
+            // InternalSignalDSL.g:18646:3: ( ruleIdOrSuper )
+            // InternalSignalDSL.g:18647:4: ruleIdOrSuper
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getFeatureJvmIdentifiableElementIdOrSuperParserRuleCall_1_1_2_0_1()); 
@@ -60263,28 +61073,28 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0"
-    // InternalSignalDSL.g:18388:1: rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0 : ( ( '(' ) ) ;
+    // InternalSignalDSL.g:18658: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:18392:1: ( ( ( '(' ) ) )
-            // InternalSignalDSL.g:18393:2: ( ( '(' ) )
+            // InternalSignalDSL.g:18662:1: ( ( ( '(' ) ) )
+            // InternalSignalDSL.g:18663:2: ( ( '(' ) )
             {
-            // InternalSignalDSL.g:18393:2: ( ( '(' ) )
-            // InternalSignalDSL.g:18394:3: ( '(' )
+            // InternalSignalDSL.g:18663:2: ( ( '(' ) )
+            // InternalSignalDSL.g:18664:3: ( '(' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getExplicitOperationCallLeftParenthesisKeyword_1_1_3_0_0()); 
             }
-            // InternalSignalDSL.g:18395:3: ( '(' )
-            // InternalSignalDSL.g:18396:4: '('
+            // InternalSignalDSL.g:18665:3: ( '(' )
+            // InternalSignalDSL.g:18666:4: '('
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getExplicitOperationCallLeftParenthesisKeyword_1_1_3_0_0()); 
             }
-            match(input,76,FOLLOW_2); if (state.failed) return ;
+            match(input,74,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXMemberFeatureCallAccess().getExplicitOperationCallLeftParenthesisKeyword_1_1_3_0_0()); 
             }
@@ -60316,17 +61126,17 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0"
-    // InternalSignalDSL.g:18407:1: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 : ( ruleXShortClosure ) ;
+    // InternalSignalDSL.g:18677: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:18411:1: ( ( ruleXShortClosure ) )
-            // InternalSignalDSL.g:18412:2: ( ruleXShortClosure )
+            // InternalSignalDSL.g:18681:1: ( ( ruleXShortClosure ) )
+            // InternalSignalDSL.g:18682:2: ( ruleXShortClosure )
             {
-            // InternalSignalDSL.g:18412:2: ( ruleXShortClosure )
-            // InternalSignalDSL.g:18413:3: ruleXShortClosure
+            // InternalSignalDSL.g:18682:2: ( ruleXShortClosure )
+            // InternalSignalDSL.g:18683:3: ruleXShortClosure
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsXShortClosureParserRuleCall_1_1_3_1_0_0()); 
@@ -60361,17 +61171,17 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0"
-    // InternalSignalDSL.g:18422:1: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0 : ( ruleXExpression ) ;
+    // InternalSignalDSL.g:18692: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:18426:1: ( ( ruleXExpression ) )
-            // InternalSignalDSL.g:18427:2: ( ruleXExpression )
+            // InternalSignalDSL.g:18696:1: ( ( ruleXExpression ) )
+            // InternalSignalDSL.g:18697:2: ( ruleXExpression )
             {
-            // InternalSignalDSL.g:18427:2: ( ruleXExpression )
-            // InternalSignalDSL.g:18428:3: ruleXExpression
+            // InternalSignalDSL.g:18697:2: ( ruleXExpression )
+            // InternalSignalDSL.g:18698:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsXExpressionParserRuleCall_1_1_3_1_1_0_0()); 
@@ -60406,17 +61216,17 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1"
-    // InternalSignalDSL.g:18437:1: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1 : ( ruleXExpression ) ;
+    // InternalSignalDSL.g:18707: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:18441:1: ( ( ruleXExpression ) )
-            // InternalSignalDSL.g:18442:2: ( ruleXExpression )
+            // InternalSignalDSL.g:18711:1: ( ( ruleXExpression ) )
+            // InternalSignalDSL.g:18712:2: ( ruleXExpression )
             {
-            // InternalSignalDSL.g:18442:2: ( ruleXExpression )
-            // InternalSignalDSL.g:18443:3: ruleXExpression
+            // InternalSignalDSL.g:18712:2: ( ruleXExpression )
+            // InternalSignalDSL.g:18713:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsXExpressionParserRuleCall_1_1_3_1_1_1_1_0()); 
@@ -60451,17 +61261,17 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4"
-    // InternalSignalDSL.g:18452:1: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 : ( ruleXClosure ) ;
+    // InternalSignalDSL.g:18722: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:18456:1: ( ( ruleXClosure ) )
-            // InternalSignalDSL.g:18457:2: ( ruleXClosure )
+            // InternalSignalDSL.g:18726:1: ( ( ruleXClosure ) )
+            // InternalSignalDSL.g:18727:2: ( ruleXClosure )
             {
-            // InternalSignalDSL.g:18457:2: ( ruleXClosure )
-            // InternalSignalDSL.g:18458:3: ruleXClosure
+            // InternalSignalDSL.g:18727:2: ( ruleXClosure )
+            // InternalSignalDSL.g:18728:3: ruleXClosure
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsXClosureParserRuleCall_1_1_4_0()); 
@@ -60496,17 +61306,17 @@
 
 
     // $ANTLR start "rule__XSetLiteral__ElementsAssignment_3_0"
-    // InternalSignalDSL.g:18467:1: rule__XSetLiteral__ElementsAssignment_3_0 : ( ruleXExpression ) ;
+    // InternalSignalDSL.g:18737:1: rule__XSetLiteral__ElementsAssignment_3_0 : ( ruleXExpression ) ;
     public final void rule__XSetLiteral__ElementsAssignment_3_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:18471:1: ( ( ruleXExpression ) )
-            // InternalSignalDSL.g:18472:2: ( ruleXExpression )
+            // InternalSignalDSL.g:18741:1: ( ( ruleXExpression ) )
+            // InternalSignalDSL.g:18742:2: ( ruleXExpression )
             {
-            // InternalSignalDSL.g:18472:2: ( ruleXExpression )
-            // InternalSignalDSL.g:18473:3: ruleXExpression
+            // InternalSignalDSL.g:18742:2: ( ruleXExpression )
+            // InternalSignalDSL.g:18743:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSetLiteralAccess().getElementsXExpressionParserRuleCall_3_0_0()); 
@@ -60541,17 +61351,17 @@
 
 
     // $ANTLR start "rule__XSetLiteral__ElementsAssignment_3_1_1"
-    // InternalSignalDSL.g:18482:1: rule__XSetLiteral__ElementsAssignment_3_1_1 : ( ruleXExpression ) ;
+    // InternalSignalDSL.g:18752: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:18486:1: ( ( ruleXExpression ) )
-            // InternalSignalDSL.g:18487:2: ( ruleXExpression )
+            // InternalSignalDSL.g:18756:1: ( ( ruleXExpression ) )
+            // InternalSignalDSL.g:18757:2: ( ruleXExpression )
             {
-            // InternalSignalDSL.g:18487:2: ( ruleXExpression )
-            // InternalSignalDSL.g:18488:3: ruleXExpression
+            // InternalSignalDSL.g:18757:2: ( ruleXExpression )
+            // InternalSignalDSL.g:18758:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSetLiteralAccess().getElementsXExpressionParserRuleCall_3_1_1_0()); 
@@ -60586,17 +61396,17 @@
 
 
     // $ANTLR start "rule__XListLiteral__ElementsAssignment_3_0"
-    // InternalSignalDSL.g:18497:1: rule__XListLiteral__ElementsAssignment_3_0 : ( ruleXExpression ) ;
+    // InternalSignalDSL.g:18767:1: rule__XListLiteral__ElementsAssignment_3_0 : ( ruleXExpression ) ;
     public final void rule__XListLiteral__ElementsAssignment_3_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:18501:1: ( ( ruleXExpression ) )
-            // InternalSignalDSL.g:18502:2: ( ruleXExpression )
+            // InternalSignalDSL.g:18771:1: ( ( ruleXExpression ) )
+            // InternalSignalDSL.g:18772:2: ( ruleXExpression )
             {
-            // InternalSignalDSL.g:18502:2: ( ruleXExpression )
-            // InternalSignalDSL.g:18503:3: ruleXExpression
+            // InternalSignalDSL.g:18772:2: ( ruleXExpression )
+            // InternalSignalDSL.g:18773:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXListLiteralAccess().getElementsXExpressionParserRuleCall_3_0_0()); 
@@ -60631,17 +61441,17 @@
 
 
     // $ANTLR start "rule__XListLiteral__ElementsAssignment_3_1_1"
-    // InternalSignalDSL.g:18512:1: rule__XListLiteral__ElementsAssignment_3_1_1 : ( ruleXExpression ) ;
+    // InternalSignalDSL.g:18782: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:18516:1: ( ( ruleXExpression ) )
-            // InternalSignalDSL.g:18517:2: ( ruleXExpression )
+            // InternalSignalDSL.g:18786:1: ( ( ruleXExpression ) )
+            // InternalSignalDSL.g:18787:2: ( ruleXExpression )
             {
-            // InternalSignalDSL.g:18517:2: ( ruleXExpression )
-            // InternalSignalDSL.g:18518:3: ruleXExpression
+            // InternalSignalDSL.g:18787:2: ( ruleXExpression )
+            // InternalSignalDSL.g:18788:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXListLiteralAccess().getElementsXExpressionParserRuleCall_3_1_1_0()); 
@@ -60676,17 +61486,17 @@
 
 
     // $ANTLR start "rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0"
-    // InternalSignalDSL.g:18527:1: rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0 : ( ruleJvmFormalParameter ) ;
+    // InternalSignalDSL.g:18797: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:18531:1: ( ( ruleJvmFormalParameter ) )
-            // InternalSignalDSL.g:18532:2: ( ruleJvmFormalParameter )
+            // InternalSignalDSL.g:18801:1: ( ( ruleJvmFormalParameter ) )
+            // InternalSignalDSL.g:18802:2: ( ruleJvmFormalParameter )
             {
-            // InternalSignalDSL.g:18532:2: ( ruleJvmFormalParameter )
-            // InternalSignalDSL.g:18533:3: ruleJvmFormalParameter
+            // InternalSignalDSL.g:18802:2: ( ruleJvmFormalParameter )
+            // InternalSignalDSL.g:18803:3: ruleJvmFormalParameter
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXClosureAccess().getDeclaredFormalParametersJvmFormalParameterParserRuleCall_1_0_0_0_0()); 
@@ -60721,17 +61531,17 @@
 
 
     // $ANTLR start "rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1"
-    // InternalSignalDSL.g:18542:1: rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1 : ( ruleJvmFormalParameter ) ;
+    // InternalSignalDSL.g:18812: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:18546:1: ( ( ruleJvmFormalParameter ) )
-            // InternalSignalDSL.g:18547:2: ( ruleJvmFormalParameter )
+            // InternalSignalDSL.g:18816:1: ( ( ruleJvmFormalParameter ) )
+            // InternalSignalDSL.g:18817:2: ( ruleJvmFormalParameter )
             {
-            // InternalSignalDSL.g:18547:2: ( ruleJvmFormalParameter )
-            // InternalSignalDSL.g:18548:3: ruleJvmFormalParameter
+            // InternalSignalDSL.g:18817:2: ( ruleJvmFormalParameter )
+            // InternalSignalDSL.g:18818:3: ruleJvmFormalParameter
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXClosureAccess().getDeclaredFormalParametersJvmFormalParameterParserRuleCall_1_0_0_1_1_0()); 
@@ -60766,28 +61576,28 @@
 
 
     // $ANTLR start "rule__XClosure__ExplicitSyntaxAssignment_1_0_1"
-    // InternalSignalDSL.g:18557:1: rule__XClosure__ExplicitSyntaxAssignment_1_0_1 : ( ( '|' ) ) ;
+    // InternalSignalDSL.g:18827:1: rule__XClosure__ExplicitSyntaxAssignment_1_0_1 : ( ( '|' ) ) ;
     public final void rule__XClosure__ExplicitSyntaxAssignment_1_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:18561:1: ( ( ( '|' ) ) )
-            // InternalSignalDSL.g:18562:2: ( ( '|' ) )
+            // InternalSignalDSL.g:18831:1: ( ( ( '|' ) ) )
+            // InternalSignalDSL.g:18832:2: ( ( '|' ) )
             {
-            // InternalSignalDSL.g:18562:2: ( ( '|' ) )
-            // InternalSignalDSL.g:18563:3: ( '|' )
+            // InternalSignalDSL.g:18832:2: ( ( '|' ) )
+            // InternalSignalDSL.g:18833:3: ( '|' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXClosureAccess().getExplicitSyntaxVerticalLineKeyword_1_0_1_0()); 
             }
-            // InternalSignalDSL.g:18564:3: ( '|' )
-            // InternalSignalDSL.g:18565:4: '|'
+            // InternalSignalDSL.g:18834:3: ( '|' )
+            // InternalSignalDSL.g:18835:4: '|'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXClosureAccess().getExplicitSyntaxVerticalLineKeyword_1_0_1_0()); 
             }
-            match(input,106,FOLLOW_2); if (state.failed) return ;
+            match(input,104,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXClosureAccess().getExplicitSyntaxVerticalLineKeyword_1_0_1_0()); 
             }
@@ -60819,17 +61629,17 @@
 
 
     // $ANTLR start "rule__XClosure__ExpressionAssignment_2"
-    // InternalSignalDSL.g:18576:1: rule__XClosure__ExpressionAssignment_2 : ( ruleXExpressionInClosure ) ;
+    // InternalSignalDSL.g:18846:1: rule__XClosure__ExpressionAssignment_2 : ( ruleXExpressionInClosure ) ;
     public final void rule__XClosure__ExpressionAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:18580:1: ( ( ruleXExpressionInClosure ) )
-            // InternalSignalDSL.g:18581:2: ( ruleXExpressionInClosure )
+            // InternalSignalDSL.g:18850:1: ( ( ruleXExpressionInClosure ) )
+            // InternalSignalDSL.g:18851:2: ( ruleXExpressionInClosure )
             {
-            // InternalSignalDSL.g:18581:2: ( ruleXExpressionInClosure )
-            // InternalSignalDSL.g:18582:3: ruleXExpressionInClosure
+            // InternalSignalDSL.g:18851:2: ( ruleXExpressionInClosure )
+            // InternalSignalDSL.g:18852:3: ruleXExpressionInClosure
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXClosureAccess().getExpressionXExpressionInClosureParserRuleCall_2_0()); 
@@ -60864,17 +61674,17 @@
 
 
     // $ANTLR start "rule__XExpressionInClosure__ExpressionsAssignment_1_0"
-    // InternalSignalDSL.g:18591:1: rule__XExpressionInClosure__ExpressionsAssignment_1_0 : ( ruleXExpressionOrVarDeclaration ) ;
+    // InternalSignalDSL.g:18861:1: rule__XExpressionInClosure__ExpressionsAssignment_1_0 : ( ruleXExpressionOrVarDeclaration ) ;
     public final void rule__XExpressionInClosure__ExpressionsAssignment_1_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:18595:1: ( ( ruleXExpressionOrVarDeclaration ) )
-            // InternalSignalDSL.g:18596:2: ( ruleXExpressionOrVarDeclaration )
+            // InternalSignalDSL.g:18865:1: ( ( ruleXExpressionOrVarDeclaration ) )
+            // InternalSignalDSL.g:18866:2: ( ruleXExpressionOrVarDeclaration )
             {
-            // InternalSignalDSL.g:18596:2: ( ruleXExpressionOrVarDeclaration )
-            // InternalSignalDSL.g:18597:3: ruleXExpressionOrVarDeclaration
+            // InternalSignalDSL.g:18866:2: ( ruleXExpressionOrVarDeclaration )
+            // InternalSignalDSL.g:18867:3: ruleXExpressionOrVarDeclaration
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXExpressionInClosureAccess().getExpressionsXExpressionOrVarDeclarationParserRuleCall_1_0_0()); 
@@ -60909,17 +61719,17 @@
 
 
     // $ANTLR start "rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0"
-    // InternalSignalDSL.g:18606:1: rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0 : ( ruleJvmFormalParameter ) ;
+    // InternalSignalDSL.g:18876: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:18610:1: ( ( ruleJvmFormalParameter ) )
-            // InternalSignalDSL.g:18611:2: ( ruleJvmFormalParameter )
+            // InternalSignalDSL.g:18880:1: ( ( ruleJvmFormalParameter ) )
+            // InternalSignalDSL.g:18881:2: ( ruleJvmFormalParameter )
             {
-            // InternalSignalDSL.g:18611:2: ( ruleJvmFormalParameter )
-            // InternalSignalDSL.g:18612:3: ruleJvmFormalParameter
+            // InternalSignalDSL.g:18881:2: ( ruleJvmFormalParameter )
+            // InternalSignalDSL.g:18882:3: ruleJvmFormalParameter
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXShortClosureAccess().getDeclaredFormalParametersJvmFormalParameterParserRuleCall_0_0_1_0_0()); 
@@ -60954,17 +61764,17 @@
 
 
     // $ANTLR start "rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1"
-    // InternalSignalDSL.g:18621:1: rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1 : ( ruleJvmFormalParameter ) ;
+    // InternalSignalDSL.g:18891: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:18625:1: ( ( ruleJvmFormalParameter ) )
-            // InternalSignalDSL.g:18626:2: ( ruleJvmFormalParameter )
+            // InternalSignalDSL.g:18895:1: ( ( ruleJvmFormalParameter ) )
+            // InternalSignalDSL.g:18896:2: ( ruleJvmFormalParameter )
             {
-            // InternalSignalDSL.g:18626:2: ( ruleJvmFormalParameter )
-            // InternalSignalDSL.g:18627:3: ruleJvmFormalParameter
+            // InternalSignalDSL.g:18896:2: ( ruleJvmFormalParameter )
+            // InternalSignalDSL.g:18897:3: ruleJvmFormalParameter
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXShortClosureAccess().getDeclaredFormalParametersJvmFormalParameterParserRuleCall_0_0_1_1_1_0()); 
@@ -60999,28 +61809,28 @@
 
 
     // $ANTLR start "rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2"
-    // InternalSignalDSL.g:18636:1: rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2 : ( ( '|' ) ) ;
+    // InternalSignalDSL.g:18906:1: rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2 : ( ( '|' ) ) ;
     public final void rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:18640:1: ( ( ( '|' ) ) )
-            // InternalSignalDSL.g:18641:2: ( ( '|' ) )
+            // InternalSignalDSL.g:18910:1: ( ( ( '|' ) ) )
+            // InternalSignalDSL.g:18911:2: ( ( '|' ) )
             {
-            // InternalSignalDSL.g:18641:2: ( ( '|' ) )
-            // InternalSignalDSL.g:18642:3: ( '|' )
+            // InternalSignalDSL.g:18911:2: ( ( '|' ) )
+            // InternalSignalDSL.g:18912:3: ( '|' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXShortClosureAccess().getExplicitSyntaxVerticalLineKeyword_0_0_2_0()); 
             }
-            // InternalSignalDSL.g:18643:3: ( '|' )
-            // InternalSignalDSL.g:18644:4: '|'
+            // InternalSignalDSL.g:18913:3: ( '|' )
+            // InternalSignalDSL.g:18914:4: '|'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXShortClosureAccess().getExplicitSyntaxVerticalLineKeyword_0_0_2_0()); 
             }
-            match(input,106,FOLLOW_2); if (state.failed) return ;
+            match(input,104,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXShortClosureAccess().getExplicitSyntaxVerticalLineKeyword_0_0_2_0()); 
             }
@@ -61052,17 +61862,17 @@
 
 
     // $ANTLR start "rule__XShortClosure__ExpressionAssignment_1"
-    // InternalSignalDSL.g:18655:1: rule__XShortClosure__ExpressionAssignment_1 : ( ruleXExpression ) ;
+    // InternalSignalDSL.g:18925:1: rule__XShortClosure__ExpressionAssignment_1 : ( ruleXExpression ) ;
     public final void rule__XShortClosure__ExpressionAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:18659:1: ( ( ruleXExpression ) )
-            // InternalSignalDSL.g:18660:2: ( ruleXExpression )
+            // InternalSignalDSL.g:18929:1: ( ( ruleXExpression ) )
+            // InternalSignalDSL.g:18930:2: ( ruleXExpression )
             {
-            // InternalSignalDSL.g:18660:2: ( ruleXExpression )
-            // InternalSignalDSL.g:18661:3: ruleXExpression
+            // InternalSignalDSL.g:18930:2: ( ruleXExpression )
+            // InternalSignalDSL.g:18931:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXShortClosureAccess().getExpressionXExpressionParserRuleCall_1_0()); 
@@ -61097,17 +61907,17 @@
 
 
     // $ANTLR start "rule__XIfExpression__IfAssignment_3"
-    // InternalSignalDSL.g:18670:1: rule__XIfExpression__IfAssignment_3 : ( ruleXExpression ) ;
+    // InternalSignalDSL.g:18940:1: rule__XIfExpression__IfAssignment_3 : ( ruleXExpression ) ;
     public final void rule__XIfExpression__IfAssignment_3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:18674:1: ( ( ruleXExpression ) )
-            // InternalSignalDSL.g:18675:2: ( ruleXExpression )
+            // InternalSignalDSL.g:18944:1: ( ( ruleXExpression ) )
+            // InternalSignalDSL.g:18945:2: ( ruleXExpression )
             {
-            // InternalSignalDSL.g:18675:2: ( ruleXExpression )
-            // InternalSignalDSL.g:18676:3: ruleXExpression
+            // InternalSignalDSL.g:18945:2: ( ruleXExpression )
+            // InternalSignalDSL.g:18946:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXIfExpressionAccess().getIfXExpressionParserRuleCall_3_0()); 
@@ -61142,17 +61952,17 @@
 
 
     // $ANTLR start "rule__XIfExpression__ThenAssignment_5"
-    // InternalSignalDSL.g:18685:1: rule__XIfExpression__ThenAssignment_5 : ( ruleXExpression ) ;
+    // InternalSignalDSL.g:18955:1: rule__XIfExpression__ThenAssignment_5 : ( ruleXExpression ) ;
     public final void rule__XIfExpression__ThenAssignment_5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:18689:1: ( ( ruleXExpression ) )
-            // InternalSignalDSL.g:18690:2: ( ruleXExpression )
+            // InternalSignalDSL.g:18959:1: ( ( ruleXExpression ) )
+            // InternalSignalDSL.g:18960:2: ( ruleXExpression )
             {
-            // InternalSignalDSL.g:18690:2: ( ruleXExpression )
-            // InternalSignalDSL.g:18691:3: ruleXExpression
+            // InternalSignalDSL.g:18960:2: ( ruleXExpression )
+            // InternalSignalDSL.g:18961:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXIfExpressionAccess().getThenXExpressionParserRuleCall_5_0()); 
@@ -61187,17 +61997,17 @@
 
 
     // $ANTLR start "rule__XIfExpression__ElseAssignment_6_1"
-    // InternalSignalDSL.g:18700:1: rule__XIfExpression__ElseAssignment_6_1 : ( ruleXExpression ) ;
+    // InternalSignalDSL.g:18970:1: rule__XIfExpression__ElseAssignment_6_1 : ( ruleXExpression ) ;
     public final void rule__XIfExpression__ElseAssignment_6_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:18704:1: ( ( ruleXExpression ) )
-            // InternalSignalDSL.g:18705:2: ( ruleXExpression )
+            // InternalSignalDSL.g:18974:1: ( ( ruleXExpression ) )
+            // InternalSignalDSL.g:18975:2: ( ruleXExpression )
             {
-            // InternalSignalDSL.g:18705:2: ( ruleXExpression )
-            // InternalSignalDSL.g:18706:3: ruleXExpression
+            // InternalSignalDSL.g:18975:2: ( ruleXExpression )
+            // InternalSignalDSL.g:18976:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXIfExpressionAccess().getElseXExpressionParserRuleCall_6_1_0()); 
@@ -61232,17 +62042,17 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1"
-    // InternalSignalDSL.g:18715:1: rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1 : ( ruleJvmFormalParameter ) ;
+    // InternalSignalDSL.g:18985: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:18719:1: ( ( ruleJvmFormalParameter ) )
-            // InternalSignalDSL.g:18720:2: ( ruleJvmFormalParameter )
+            // InternalSignalDSL.g:18989:1: ( ( ruleJvmFormalParameter ) )
+            // InternalSignalDSL.g:18990:2: ( ruleJvmFormalParameter )
             {
-            // InternalSignalDSL.g:18720:2: ( ruleJvmFormalParameter )
-            // InternalSignalDSL.g:18721:3: ruleJvmFormalParameter
+            // InternalSignalDSL.g:18990:2: ( ruleJvmFormalParameter )
+            // InternalSignalDSL.g:18991:3: ruleJvmFormalParameter
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getDeclaredParamJvmFormalParameterParserRuleCall_2_0_0_0_1_0()); 
@@ -61277,17 +62087,17 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__SwitchAssignment_2_0_1"
-    // InternalSignalDSL.g:18730:1: rule__XSwitchExpression__SwitchAssignment_2_0_1 : ( ruleXExpression ) ;
+    // InternalSignalDSL.g:19000: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:18734:1: ( ( ruleXExpression ) )
-            // InternalSignalDSL.g:18735:2: ( ruleXExpression )
+            // InternalSignalDSL.g:19004:1: ( ( ruleXExpression ) )
+            // InternalSignalDSL.g:19005:2: ( ruleXExpression )
             {
-            // InternalSignalDSL.g:18735:2: ( ruleXExpression )
-            // InternalSignalDSL.g:18736:3: ruleXExpression
+            // InternalSignalDSL.g:19005:2: ( ruleXExpression )
+            // InternalSignalDSL.g:19006:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getSwitchXExpressionParserRuleCall_2_0_1_0()); 
@@ -61322,17 +62132,17 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0"
-    // InternalSignalDSL.g:18745:1: rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0 : ( ruleJvmFormalParameter ) ;
+    // InternalSignalDSL.g:19015: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:18749:1: ( ( ruleJvmFormalParameter ) )
-            // InternalSignalDSL.g:18750:2: ( ruleJvmFormalParameter )
+            // InternalSignalDSL.g:19019:1: ( ( ruleJvmFormalParameter ) )
+            // InternalSignalDSL.g:19020:2: ( ruleJvmFormalParameter )
             {
-            // InternalSignalDSL.g:18750:2: ( ruleJvmFormalParameter )
-            // InternalSignalDSL.g:18751:3: ruleJvmFormalParameter
+            // InternalSignalDSL.g:19020:2: ( ruleJvmFormalParameter )
+            // InternalSignalDSL.g:19021:3: ruleJvmFormalParameter
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getDeclaredParamJvmFormalParameterParserRuleCall_2_1_0_0_0_0()); 
@@ -61367,17 +62177,17 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__SwitchAssignment_2_1_1"
-    // InternalSignalDSL.g:18760:1: rule__XSwitchExpression__SwitchAssignment_2_1_1 : ( ruleXExpression ) ;
+    // InternalSignalDSL.g:19030: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:18764:1: ( ( ruleXExpression ) )
-            // InternalSignalDSL.g:18765:2: ( ruleXExpression )
+            // InternalSignalDSL.g:19034:1: ( ( ruleXExpression ) )
+            // InternalSignalDSL.g:19035:2: ( ruleXExpression )
             {
-            // InternalSignalDSL.g:18765:2: ( ruleXExpression )
-            // InternalSignalDSL.g:18766:3: ruleXExpression
+            // InternalSignalDSL.g:19035:2: ( ruleXExpression )
+            // InternalSignalDSL.g:19036:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getSwitchXExpressionParserRuleCall_2_1_1_0()); 
@@ -61412,17 +62222,17 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__CasesAssignment_4"
-    // InternalSignalDSL.g:18775:1: rule__XSwitchExpression__CasesAssignment_4 : ( ruleXCasePart ) ;
+    // InternalSignalDSL.g:19045:1: rule__XSwitchExpression__CasesAssignment_4 : ( ruleXCasePart ) ;
     public final void rule__XSwitchExpression__CasesAssignment_4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:18779:1: ( ( ruleXCasePart ) )
-            // InternalSignalDSL.g:18780:2: ( ruleXCasePart )
+            // InternalSignalDSL.g:19049:1: ( ( ruleXCasePart ) )
+            // InternalSignalDSL.g:19050:2: ( ruleXCasePart )
             {
-            // InternalSignalDSL.g:18780:2: ( ruleXCasePart )
-            // InternalSignalDSL.g:18781:3: ruleXCasePart
+            // InternalSignalDSL.g:19050:2: ( ruleXCasePart )
+            // InternalSignalDSL.g:19051:3: ruleXCasePart
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getCasesXCasePartParserRuleCall_4_0()); 
@@ -61457,17 +62267,17 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__DefaultAssignment_5_2"
-    // InternalSignalDSL.g:18790:1: rule__XSwitchExpression__DefaultAssignment_5_2 : ( ruleXExpression ) ;
+    // InternalSignalDSL.g:19060:1: rule__XSwitchExpression__DefaultAssignment_5_2 : ( ruleXExpression ) ;
     public final void rule__XSwitchExpression__DefaultAssignment_5_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:18794:1: ( ( ruleXExpression ) )
-            // InternalSignalDSL.g:18795:2: ( ruleXExpression )
+            // InternalSignalDSL.g:19064:1: ( ( ruleXExpression ) )
+            // InternalSignalDSL.g:19065:2: ( ruleXExpression )
             {
-            // InternalSignalDSL.g:18795:2: ( ruleXExpression )
-            // InternalSignalDSL.g:18796:3: ruleXExpression
+            // InternalSignalDSL.g:19065:2: ( ruleXExpression )
+            // InternalSignalDSL.g:19066:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getDefaultXExpressionParserRuleCall_5_2_0()); 
@@ -61502,17 +62312,17 @@
 
 
     // $ANTLR start "rule__XCasePart__TypeGuardAssignment_1"
-    // InternalSignalDSL.g:18805:1: rule__XCasePart__TypeGuardAssignment_1 : ( ruleJvmTypeReference ) ;
+    // InternalSignalDSL.g:19075:1: rule__XCasePart__TypeGuardAssignment_1 : ( ruleJvmTypeReference ) ;
     public final void rule__XCasePart__TypeGuardAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:18809:1: ( ( ruleJvmTypeReference ) )
-            // InternalSignalDSL.g:18810:2: ( ruleJvmTypeReference )
+            // InternalSignalDSL.g:19079:1: ( ( ruleJvmTypeReference ) )
+            // InternalSignalDSL.g:19080:2: ( ruleJvmTypeReference )
             {
-            // InternalSignalDSL.g:18810:2: ( ruleJvmTypeReference )
-            // InternalSignalDSL.g:18811:3: ruleJvmTypeReference
+            // InternalSignalDSL.g:19080:2: ( ruleJvmTypeReference )
+            // InternalSignalDSL.g:19081:3: ruleJvmTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCasePartAccess().getTypeGuardJvmTypeReferenceParserRuleCall_1_0()); 
@@ -61547,17 +62357,17 @@
 
 
     // $ANTLR start "rule__XCasePart__CaseAssignment_2_1"
-    // InternalSignalDSL.g:18820:1: rule__XCasePart__CaseAssignment_2_1 : ( ruleXExpression ) ;
+    // InternalSignalDSL.g:19090:1: rule__XCasePart__CaseAssignment_2_1 : ( ruleXExpression ) ;
     public final void rule__XCasePart__CaseAssignment_2_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:18824:1: ( ( ruleXExpression ) )
-            // InternalSignalDSL.g:18825:2: ( ruleXExpression )
+            // InternalSignalDSL.g:19094:1: ( ( ruleXExpression ) )
+            // InternalSignalDSL.g:19095:2: ( ruleXExpression )
             {
-            // InternalSignalDSL.g:18825:2: ( ruleXExpression )
-            // InternalSignalDSL.g:18826:3: ruleXExpression
+            // InternalSignalDSL.g:19095:2: ( ruleXExpression )
+            // InternalSignalDSL.g:19096:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCasePartAccess().getCaseXExpressionParserRuleCall_2_1_0()); 
@@ -61592,17 +62402,17 @@
 
 
     // $ANTLR start "rule__XCasePart__ThenAssignment_3_0_1"
-    // InternalSignalDSL.g:18835:1: rule__XCasePart__ThenAssignment_3_0_1 : ( ruleXExpression ) ;
+    // InternalSignalDSL.g:19105: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:18839:1: ( ( ruleXExpression ) )
-            // InternalSignalDSL.g:18840:2: ( ruleXExpression )
+            // InternalSignalDSL.g:19109:1: ( ( ruleXExpression ) )
+            // InternalSignalDSL.g:19110:2: ( ruleXExpression )
             {
-            // InternalSignalDSL.g:18840:2: ( ruleXExpression )
-            // InternalSignalDSL.g:18841:3: ruleXExpression
+            // InternalSignalDSL.g:19110:2: ( ruleXExpression )
+            // InternalSignalDSL.g:19111:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCasePartAccess().getThenXExpressionParserRuleCall_3_0_1_0()); 
@@ -61637,28 +62447,28 @@
 
 
     // $ANTLR start "rule__XCasePart__FallThroughAssignment_3_1"
-    // InternalSignalDSL.g:18850:1: rule__XCasePart__FallThroughAssignment_3_1 : ( ( ',' ) ) ;
+    // InternalSignalDSL.g:19120:1: rule__XCasePart__FallThroughAssignment_3_1 : ( ( ',' ) ) ;
     public final void rule__XCasePart__FallThroughAssignment_3_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:18854:1: ( ( ( ',' ) ) )
-            // InternalSignalDSL.g:18855:2: ( ( ',' ) )
+            // InternalSignalDSL.g:19124:1: ( ( ( ',' ) ) )
+            // InternalSignalDSL.g:19125:2: ( ( ',' ) )
             {
-            // InternalSignalDSL.g:18855:2: ( ( ',' ) )
-            // InternalSignalDSL.g:18856:3: ( ',' )
+            // InternalSignalDSL.g:19125:2: ( ( ',' ) )
+            // InternalSignalDSL.g:19126:3: ( ',' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCasePartAccess().getFallThroughCommaKeyword_3_1_0()); 
             }
-            // InternalSignalDSL.g:18857:3: ( ',' )
-            // InternalSignalDSL.g:18858:4: ','
+            // InternalSignalDSL.g:19127:3: ( ',' )
+            // InternalSignalDSL.g:19128:4: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCasePartAccess().getFallThroughCommaKeyword_3_1_0()); 
             }
-            match(input,78,FOLLOW_2); if (state.failed) return ;
+            match(input,76,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXCasePartAccess().getFallThroughCommaKeyword_3_1_0()); 
             }
@@ -61690,17 +62500,17 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__DeclaredParamAssignment_0_0_3"
-    // InternalSignalDSL.g:18869:1: rule__XForLoopExpression__DeclaredParamAssignment_0_0_3 : ( ruleJvmFormalParameter ) ;
+    // InternalSignalDSL.g:19139: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:18873:1: ( ( ruleJvmFormalParameter ) )
-            // InternalSignalDSL.g:18874:2: ( ruleJvmFormalParameter )
+            // InternalSignalDSL.g:19143:1: ( ( ruleJvmFormalParameter ) )
+            // InternalSignalDSL.g:19144:2: ( ruleJvmFormalParameter )
             {
-            // InternalSignalDSL.g:18874:2: ( ruleJvmFormalParameter )
-            // InternalSignalDSL.g:18875:3: ruleJvmFormalParameter
+            // InternalSignalDSL.g:19144:2: ( ruleJvmFormalParameter )
+            // InternalSignalDSL.g:19145:3: ruleJvmFormalParameter
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXForLoopExpressionAccess().getDeclaredParamJvmFormalParameterParserRuleCall_0_0_3_0()); 
@@ -61735,17 +62545,17 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__ForExpressionAssignment_1"
-    // InternalSignalDSL.g:18884:1: rule__XForLoopExpression__ForExpressionAssignment_1 : ( ruleXExpression ) ;
+    // InternalSignalDSL.g:19154:1: rule__XForLoopExpression__ForExpressionAssignment_1 : ( ruleXExpression ) ;
     public final void rule__XForLoopExpression__ForExpressionAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:18888:1: ( ( ruleXExpression ) )
-            // InternalSignalDSL.g:18889:2: ( ruleXExpression )
+            // InternalSignalDSL.g:19158:1: ( ( ruleXExpression ) )
+            // InternalSignalDSL.g:19159:2: ( ruleXExpression )
             {
-            // InternalSignalDSL.g:18889:2: ( ruleXExpression )
-            // InternalSignalDSL.g:18890:3: ruleXExpression
+            // InternalSignalDSL.g:19159:2: ( ruleXExpression )
+            // InternalSignalDSL.g:19160:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXForLoopExpressionAccess().getForExpressionXExpressionParserRuleCall_1_0()); 
@@ -61780,17 +62590,17 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__EachExpressionAssignment_3"
-    // InternalSignalDSL.g:18899:1: rule__XForLoopExpression__EachExpressionAssignment_3 : ( ruleXExpression ) ;
+    // InternalSignalDSL.g:19169:1: rule__XForLoopExpression__EachExpressionAssignment_3 : ( ruleXExpression ) ;
     public final void rule__XForLoopExpression__EachExpressionAssignment_3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:18903:1: ( ( ruleXExpression ) )
-            // InternalSignalDSL.g:18904:2: ( ruleXExpression )
+            // InternalSignalDSL.g:19173:1: ( ( ruleXExpression ) )
+            // InternalSignalDSL.g:19174:2: ( ruleXExpression )
             {
-            // InternalSignalDSL.g:18904:2: ( ruleXExpression )
-            // InternalSignalDSL.g:18905:3: ruleXExpression
+            // InternalSignalDSL.g:19174:2: ( ruleXExpression )
+            // InternalSignalDSL.g:19175:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXForLoopExpressionAccess().getEachExpressionXExpressionParserRuleCall_3_0()); 
@@ -61825,17 +62635,17 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0"
-    // InternalSignalDSL.g:18914:1: rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0 : ( ruleXExpressionOrVarDeclaration ) ;
+    // InternalSignalDSL.g:19184:1: rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0 : ( ruleXExpressionOrVarDeclaration ) ;
     public final void rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:18918:1: ( ( ruleXExpressionOrVarDeclaration ) )
-            // InternalSignalDSL.g:18919:2: ( ruleXExpressionOrVarDeclaration )
+            // InternalSignalDSL.g:19188:1: ( ( ruleXExpressionOrVarDeclaration ) )
+            // InternalSignalDSL.g:19189:2: ( ruleXExpressionOrVarDeclaration )
             {
-            // InternalSignalDSL.g:18919:2: ( ruleXExpressionOrVarDeclaration )
-            // InternalSignalDSL.g:18920:3: ruleXExpressionOrVarDeclaration
+            // InternalSignalDSL.g:19189:2: ( ruleXExpressionOrVarDeclaration )
+            // InternalSignalDSL.g:19190:3: ruleXExpressionOrVarDeclaration
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getInitExpressionsXExpressionOrVarDeclarationParserRuleCall_3_0_0()); 
@@ -61870,17 +62680,17 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1"
-    // InternalSignalDSL.g:18929:1: rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1 : ( ruleXExpressionOrVarDeclaration ) ;
+    // InternalSignalDSL.g:19199: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:18933:1: ( ( ruleXExpressionOrVarDeclaration ) )
-            // InternalSignalDSL.g:18934:2: ( ruleXExpressionOrVarDeclaration )
+            // InternalSignalDSL.g:19203:1: ( ( ruleXExpressionOrVarDeclaration ) )
+            // InternalSignalDSL.g:19204:2: ( ruleXExpressionOrVarDeclaration )
             {
-            // InternalSignalDSL.g:18934:2: ( ruleXExpressionOrVarDeclaration )
-            // InternalSignalDSL.g:18935:3: ruleXExpressionOrVarDeclaration
+            // InternalSignalDSL.g:19204:2: ( ruleXExpressionOrVarDeclaration )
+            // InternalSignalDSL.g:19205:3: ruleXExpressionOrVarDeclaration
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getInitExpressionsXExpressionOrVarDeclarationParserRuleCall_3_1_1_0()); 
@@ -61915,17 +62725,17 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__ExpressionAssignment_5"
-    // InternalSignalDSL.g:18944:1: rule__XBasicForLoopExpression__ExpressionAssignment_5 : ( ruleXExpression ) ;
+    // InternalSignalDSL.g:19214:1: rule__XBasicForLoopExpression__ExpressionAssignment_5 : ( ruleXExpression ) ;
     public final void rule__XBasicForLoopExpression__ExpressionAssignment_5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:18948:1: ( ( ruleXExpression ) )
-            // InternalSignalDSL.g:18949:2: ( ruleXExpression )
+            // InternalSignalDSL.g:19218:1: ( ( ruleXExpression ) )
+            // InternalSignalDSL.g:19219:2: ( ruleXExpression )
             {
-            // InternalSignalDSL.g:18949:2: ( ruleXExpression )
-            // InternalSignalDSL.g:18950:3: ruleXExpression
+            // InternalSignalDSL.g:19219:2: ( ruleXExpression )
+            // InternalSignalDSL.g:19220:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getExpressionXExpressionParserRuleCall_5_0()); 
@@ -61960,17 +62770,17 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0"
-    // InternalSignalDSL.g:18959:1: rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0 : ( ruleXExpression ) ;
+    // InternalSignalDSL.g:19229:1: rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0 : ( ruleXExpression ) ;
     public final void rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:18963:1: ( ( ruleXExpression ) )
-            // InternalSignalDSL.g:18964:2: ( ruleXExpression )
+            // InternalSignalDSL.g:19233:1: ( ( ruleXExpression ) )
+            // InternalSignalDSL.g:19234:2: ( ruleXExpression )
             {
-            // InternalSignalDSL.g:18964:2: ( ruleXExpression )
-            // InternalSignalDSL.g:18965:3: ruleXExpression
+            // InternalSignalDSL.g:19234:2: ( ruleXExpression )
+            // InternalSignalDSL.g:19235:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getUpdateExpressionsXExpressionParserRuleCall_7_0_0()); 
@@ -62005,17 +62815,17 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1"
-    // InternalSignalDSL.g:18974:1: rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1 : ( ruleXExpression ) ;
+    // InternalSignalDSL.g:19244: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:18978:1: ( ( ruleXExpression ) )
-            // InternalSignalDSL.g:18979:2: ( ruleXExpression )
+            // InternalSignalDSL.g:19248:1: ( ( ruleXExpression ) )
+            // InternalSignalDSL.g:19249:2: ( ruleXExpression )
             {
-            // InternalSignalDSL.g:18979:2: ( ruleXExpression )
-            // InternalSignalDSL.g:18980:3: ruleXExpression
+            // InternalSignalDSL.g:19249:2: ( ruleXExpression )
+            // InternalSignalDSL.g:19250:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getUpdateExpressionsXExpressionParserRuleCall_7_1_1_0()); 
@@ -62050,17 +62860,17 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__EachExpressionAssignment_9"
-    // InternalSignalDSL.g:18989:1: rule__XBasicForLoopExpression__EachExpressionAssignment_9 : ( ruleXExpression ) ;
+    // InternalSignalDSL.g:19259:1: rule__XBasicForLoopExpression__EachExpressionAssignment_9 : ( ruleXExpression ) ;
     public final void rule__XBasicForLoopExpression__EachExpressionAssignment_9() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:18993:1: ( ( ruleXExpression ) )
-            // InternalSignalDSL.g:18994:2: ( ruleXExpression )
+            // InternalSignalDSL.g:19263:1: ( ( ruleXExpression ) )
+            // InternalSignalDSL.g:19264:2: ( ruleXExpression )
             {
-            // InternalSignalDSL.g:18994:2: ( ruleXExpression )
-            // InternalSignalDSL.g:18995:3: ruleXExpression
+            // InternalSignalDSL.g:19264:2: ( ruleXExpression )
+            // InternalSignalDSL.g:19265:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getEachExpressionXExpressionParserRuleCall_9_0()); 
@@ -62095,17 +62905,17 @@
 
 
     // $ANTLR start "rule__XWhileExpression__PredicateAssignment_3"
-    // InternalSignalDSL.g:19004:1: rule__XWhileExpression__PredicateAssignment_3 : ( ruleXExpression ) ;
+    // InternalSignalDSL.g:19274:1: rule__XWhileExpression__PredicateAssignment_3 : ( ruleXExpression ) ;
     public final void rule__XWhileExpression__PredicateAssignment_3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:19008:1: ( ( ruleXExpression ) )
-            // InternalSignalDSL.g:19009:2: ( ruleXExpression )
+            // InternalSignalDSL.g:19278:1: ( ( ruleXExpression ) )
+            // InternalSignalDSL.g:19279:2: ( ruleXExpression )
             {
-            // InternalSignalDSL.g:19009:2: ( ruleXExpression )
-            // InternalSignalDSL.g:19010:3: ruleXExpression
+            // InternalSignalDSL.g:19279:2: ( ruleXExpression )
+            // InternalSignalDSL.g:19280:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXWhileExpressionAccess().getPredicateXExpressionParserRuleCall_3_0()); 
@@ -62140,17 +62950,17 @@
 
 
     // $ANTLR start "rule__XWhileExpression__BodyAssignment_5"
-    // InternalSignalDSL.g:19019:1: rule__XWhileExpression__BodyAssignment_5 : ( ruleXExpression ) ;
+    // InternalSignalDSL.g:19289:1: rule__XWhileExpression__BodyAssignment_5 : ( ruleXExpression ) ;
     public final void rule__XWhileExpression__BodyAssignment_5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:19023:1: ( ( ruleXExpression ) )
-            // InternalSignalDSL.g:19024:2: ( ruleXExpression )
+            // InternalSignalDSL.g:19293:1: ( ( ruleXExpression ) )
+            // InternalSignalDSL.g:19294:2: ( ruleXExpression )
             {
-            // InternalSignalDSL.g:19024:2: ( ruleXExpression )
-            // InternalSignalDSL.g:19025:3: ruleXExpression
+            // InternalSignalDSL.g:19294:2: ( ruleXExpression )
+            // InternalSignalDSL.g:19295:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXWhileExpressionAccess().getBodyXExpressionParserRuleCall_5_0()); 
@@ -62185,17 +62995,17 @@
 
 
     // $ANTLR start "rule__XDoWhileExpression__BodyAssignment_2"
-    // InternalSignalDSL.g:19034:1: rule__XDoWhileExpression__BodyAssignment_2 : ( ruleXExpression ) ;
+    // InternalSignalDSL.g:19304:1: rule__XDoWhileExpression__BodyAssignment_2 : ( ruleXExpression ) ;
     public final void rule__XDoWhileExpression__BodyAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:19038:1: ( ( ruleXExpression ) )
-            // InternalSignalDSL.g:19039:2: ( ruleXExpression )
+            // InternalSignalDSL.g:19308:1: ( ( ruleXExpression ) )
+            // InternalSignalDSL.g:19309:2: ( ruleXExpression )
             {
-            // InternalSignalDSL.g:19039:2: ( ruleXExpression )
-            // InternalSignalDSL.g:19040:3: ruleXExpression
+            // InternalSignalDSL.g:19309:2: ( ruleXExpression )
+            // InternalSignalDSL.g:19310:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXDoWhileExpressionAccess().getBodyXExpressionParserRuleCall_2_0()); 
@@ -62230,17 +63040,17 @@
 
 
     // $ANTLR start "rule__XDoWhileExpression__PredicateAssignment_5"
-    // InternalSignalDSL.g:19049:1: rule__XDoWhileExpression__PredicateAssignment_5 : ( ruleXExpression ) ;
+    // InternalSignalDSL.g:19319:1: rule__XDoWhileExpression__PredicateAssignment_5 : ( ruleXExpression ) ;
     public final void rule__XDoWhileExpression__PredicateAssignment_5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:19053:1: ( ( ruleXExpression ) )
-            // InternalSignalDSL.g:19054:2: ( ruleXExpression )
+            // InternalSignalDSL.g:19323:1: ( ( ruleXExpression ) )
+            // InternalSignalDSL.g:19324:2: ( ruleXExpression )
             {
-            // InternalSignalDSL.g:19054:2: ( ruleXExpression )
-            // InternalSignalDSL.g:19055:3: ruleXExpression
+            // InternalSignalDSL.g:19324:2: ( ruleXExpression )
+            // InternalSignalDSL.g:19325:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXDoWhileExpressionAccess().getPredicateXExpressionParserRuleCall_5_0()); 
@@ -62275,17 +63085,17 @@
 
 
     // $ANTLR start "rule__XBlockExpression__ExpressionsAssignment_2_0"
-    // InternalSignalDSL.g:19064:1: rule__XBlockExpression__ExpressionsAssignment_2_0 : ( ruleXExpressionOrVarDeclaration ) ;
+    // InternalSignalDSL.g:19334:1: rule__XBlockExpression__ExpressionsAssignment_2_0 : ( ruleXExpressionOrVarDeclaration ) ;
     public final void rule__XBlockExpression__ExpressionsAssignment_2_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:19068:1: ( ( ruleXExpressionOrVarDeclaration ) )
-            // InternalSignalDSL.g:19069:2: ( ruleXExpressionOrVarDeclaration )
+            // InternalSignalDSL.g:19338:1: ( ( ruleXExpressionOrVarDeclaration ) )
+            // InternalSignalDSL.g:19339:2: ( ruleXExpressionOrVarDeclaration )
             {
-            // InternalSignalDSL.g:19069:2: ( ruleXExpressionOrVarDeclaration )
-            // InternalSignalDSL.g:19070:3: ruleXExpressionOrVarDeclaration
+            // InternalSignalDSL.g:19339:2: ( ruleXExpressionOrVarDeclaration )
+            // InternalSignalDSL.g:19340:3: ruleXExpressionOrVarDeclaration
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBlockExpressionAccess().getExpressionsXExpressionOrVarDeclarationParserRuleCall_2_0_0()); 
@@ -62320,28 +63130,28 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__WriteableAssignment_1_0"
-    // InternalSignalDSL.g:19079:1: rule__XVariableDeclaration__WriteableAssignment_1_0 : ( ( 'var' ) ) ;
+    // InternalSignalDSL.g:19349:1: rule__XVariableDeclaration__WriteableAssignment_1_0 : ( ( 'var' ) ) ;
     public final void rule__XVariableDeclaration__WriteableAssignment_1_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:19083:1: ( ( ( 'var' ) ) )
-            // InternalSignalDSL.g:19084:2: ( ( 'var' ) )
+            // InternalSignalDSL.g:19353:1: ( ( ( 'var' ) ) )
+            // InternalSignalDSL.g:19354:2: ( ( 'var' ) )
             {
-            // InternalSignalDSL.g:19084:2: ( ( 'var' ) )
-            // InternalSignalDSL.g:19085:3: ( 'var' )
+            // InternalSignalDSL.g:19354:2: ( ( 'var' ) )
+            // InternalSignalDSL.g:19355:3: ( 'var' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXVariableDeclarationAccess().getWriteableVarKeyword_1_0_0()); 
             }
-            // InternalSignalDSL.g:19086:3: ( 'var' )
-            // InternalSignalDSL.g:19087:4: 'var'
+            // InternalSignalDSL.g:19356:3: ( 'var' )
+            // InternalSignalDSL.g:19357:4: 'var'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXVariableDeclarationAccess().getWriteableVarKeyword_1_0_0()); 
             }
-            match(input,107,FOLLOW_2); if (state.failed) return ;
+            match(input,105,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXVariableDeclarationAccess().getWriteableVarKeyword_1_0_0()); 
             }
@@ -62373,17 +63183,17 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__TypeAssignment_2_0_0_0"
-    // InternalSignalDSL.g:19098:1: rule__XVariableDeclaration__TypeAssignment_2_0_0_0 : ( ruleJvmTypeReference ) ;
+    // InternalSignalDSL.g:19368: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:19102:1: ( ( ruleJvmTypeReference ) )
-            // InternalSignalDSL.g:19103:2: ( ruleJvmTypeReference )
+            // InternalSignalDSL.g:19372:1: ( ( ruleJvmTypeReference ) )
+            // InternalSignalDSL.g:19373:2: ( ruleJvmTypeReference )
             {
-            // InternalSignalDSL.g:19103:2: ( ruleJvmTypeReference )
-            // InternalSignalDSL.g:19104:3: ruleJvmTypeReference
+            // InternalSignalDSL.g:19373:2: ( ruleJvmTypeReference )
+            // InternalSignalDSL.g:19374:3: ruleJvmTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXVariableDeclarationAccess().getTypeJvmTypeReferenceParserRuleCall_2_0_0_0_0()); 
@@ -62418,17 +63228,17 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__NameAssignment_2_0_0_1"
-    // InternalSignalDSL.g:19113:1: rule__XVariableDeclaration__NameAssignment_2_0_0_1 : ( ruleValidID ) ;
+    // InternalSignalDSL.g:19383: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:19117:1: ( ( ruleValidID ) )
-            // InternalSignalDSL.g:19118:2: ( ruleValidID )
+            // InternalSignalDSL.g:19387:1: ( ( ruleValidID ) )
+            // InternalSignalDSL.g:19388:2: ( ruleValidID )
             {
-            // InternalSignalDSL.g:19118:2: ( ruleValidID )
-            // InternalSignalDSL.g:19119:3: ruleValidID
+            // InternalSignalDSL.g:19388:2: ( ruleValidID )
+            // InternalSignalDSL.g:19389:3: ruleValidID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXVariableDeclarationAccess().getNameValidIDParserRuleCall_2_0_0_1_0()); 
@@ -62463,17 +63273,17 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__NameAssignment_2_1"
-    // InternalSignalDSL.g:19128:1: rule__XVariableDeclaration__NameAssignment_2_1 : ( ruleValidID ) ;
+    // InternalSignalDSL.g:19398:1: rule__XVariableDeclaration__NameAssignment_2_1 : ( ruleValidID ) ;
     public final void rule__XVariableDeclaration__NameAssignment_2_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:19132:1: ( ( ruleValidID ) )
-            // InternalSignalDSL.g:19133:2: ( ruleValidID )
+            // InternalSignalDSL.g:19402:1: ( ( ruleValidID ) )
+            // InternalSignalDSL.g:19403:2: ( ruleValidID )
             {
-            // InternalSignalDSL.g:19133:2: ( ruleValidID )
-            // InternalSignalDSL.g:19134:3: ruleValidID
+            // InternalSignalDSL.g:19403:2: ( ruleValidID )
+            // InternalSignalDSL.g:19404:3: ruleValidID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXVariableDeclarationAccess().getNameValidIDParserRuleCall_2_1_0()); 
@@ -62508,17 +63318,17 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__RightAssignment_3_1"
-    // InternalSignalDSL.g:19143:1: rule__XVariableDeclaration__RightAssignment_3_1 : ( ruleXExpression ) ;
+    // InternalSignalDSL.g:19413:1: rule__XVariableDeclaration__RightAssignment_3_1 : ( ruleXExpression ) ;
     public final void rule__XVariableDeclaration__RightAssignment_3_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:19147:1: ( ( ruleXExpression ) )
-            // InternalSignalDSL.g:19148:2: ( ruleXExpression )
+            // InternalSignalDSL.g:19417:1: ( ( ruleXExpression ) )
+            // InternalSignalDSL.g:19418:2: ( ruleXExpression )
             {
-            // InternalSignalDSL.g:19148:2: ( ruleXExpression )
-            // InternalSignalDSL.g:19149:3: ruleXExpression
+            // InternalSignalDSL.g:19418:2: ( ruleXExpression )
+            // InternalSignalDSL.g:19419:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXVariableDeclarationAccess().getRightXExpressionParserRuleCall_3_1_0()); 
@@ -62553,17 +63363,17 @@
 
 
     // $ANTLR start "rule__JvmFormalParameter__ParameterTypeAssignment_0"
-    // InternalSignalDSL.g:19158:1: rule__JvmFormalParameter__ParameterTypeAssignment_0 : ( ruleJvmTypeReference ) ;
+    // InternalSignalDSL.g:19428:1: rule__JvmFormalParameter__ParameterTypeAssignment_0 : ( ruleJvmTypeReference ) ;
     public final void rule__JvmFormalParameter__ParameterTypeAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:19162:1: ( ( ruleJvmTypeReference ) )
-            // InternalSignalDSL.g:19163:2: ( ruleJvmTypeReference )
+            // InternalSignalDSL.g:19432:1: ( ( ruleJvmTypeReference ) )
+            // InternalSignalDSL.g:19433:2: ( ruleJvmTypeReference )
             {
-            // InternalSignalDSL.g:19163:2: ( ruleJvmTypeReference )
-            // InternalSignalDSL.g:19164:3: ruleJvmTypeReference
+            // InternalSignalDSL.g:19433:2: ( ruleJvmTypeReference )
+            // InternalSignalDSL.g:19434:3: ruleJvmTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmFormalParameterAccess().getParameterTypeJvmTypeReferenceParserRuleCall_0_0()); 
@@ -62598,17 +63408,17 @@
 
 
     // $ANTLR start "rule__JvmFormalParameter__NameAssignment_1"
-    // InternalSignalDSL.g:19173:1: rule__JvmFormalParameter__NameAssignment_1 : ( ruleValidID ) ;
+    // InternalSignalDSL.g:19443:1: rule__JvmFormalParameter__NameAssignment_1 : ( ruleValidID ) ;
     public final void rule__JvmFormalParameter__NameAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:19177:1: ( ( ruleValidID ) )
-            // InternalSignalDSL.g:19178:2: ( ruleValidID )
+            // InternalSignalDSL.g:19447:1: ( ( ruleValidID ) )
+            // InternalSignalDSL.g:19448:2: ( ruleValidID )
             {
-            // InternalSignalDSL.g:19178:2: ( ruleValidID )
-            // InternalSignalDSL.g:19179:3: ruleValidID
+            // InternalSignalDSL.g:19448:2: ( ruleValidID )
+            // InternalSignalDSL.g:19449:3: ruleValidID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmFormalParameterAccess().getNameValidIDParserRuleCall_1_0()); 
@@ -62643,17 +63453,17 @@
 
 
     // $ANTLR start "rule__FullJvmFormalParameter__ParameterTypeAssignment_0"
-    // InternalSignalDSL.g:19188:1: rule__FullJvmFormalParameter__ParameterTypeAssignment_0 : ( ruleJvmTypeReference ) ;
+    // InternalSignalDSL.g:19458:1: rule__FullJvmFormalParameter__ParameterTypeAssignment_0 : ( ruleJvmTypeReference ) ;
     public final void rule__FullJvmFormalParameter__ParameterTypeAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:19192:1: ( ( ruleJvmTypeReference ) )
-            // InternalSignalDSL.g:19193:2: ( ruleJvmTypeReference )
+            // InternalSignalDSL.g:19462:1: ( ( ruleJvmTypeReference ) )
+            // InternalSignalDSL.g:19463:2: ( ruleJvmTypeReference )
             {
-            // InternalSignalDSL.g:19193:2: ( ruleJvmTypeReference )
-            // InternalSignalDSL.g:19194:3: ruleJvmTypeReference
+            // InternalSignalDSL.g:19463:2: ( ruleJvmTypeReference )
+            // InternalSignalDSL.g:19464:3: ruleJvmTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getFullJvmFormalParameterAccess().getParameterTypeJvmTypeReferenceParserRuleCall_0_0()); 
@@ -62688,17 +63498,17 @@
 
 
     // $ANTLR start "rule__FullJvmFormalParameter__NameAssignment_1"
-    // InternalSignalDSL.g:19203:1: rule__FullJvmFormalParameter__NameAssignment_1 : ( ruleValidID ) ;
+    // InternalSignalDSL.g:19473:1: rule__FullJvmFormalParameter__NameAssignment_1 : ( ruleValidID ) ;
     public final void rule__FullJvmFormalParameter__NameAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:19207:1: ( ( ruleValidID ) )
-            // InternalSignalDSL.g:19208:2: ( ruleValidID )
+            // InternalSignalDSL.g:19477:1: ( ( ruleValidID ) )
+            // InternalSignalDSL.g:19478:2: ( ruleValidID )
             {
-            // InternalSignalDSL.g:19208:2: ( ruleValidID )
-            // InternalSignalDSL.g:19209:3: ruleValidID
+            // InternalSignalDSL.g:19478:2: ( ruleValidID )
+            // InternalSignalDSL.g:19479:3: ruleValidID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getFullJvmFormalParameterAccess().getNameValidIDParserRuleCall_1_0()); 
@@ -62733,17 +63543,17 @@
 
 
     // $ANTLR start "rule__XFeatureCall__TypeArgumentsAssignment_1_1"
-    // InternalSignalDSL.g:19218:1: rule__XFeatureCall__TypeArgumentsAssignment_1_1 : ( ruleJvmArgumentTypeReference ) ;
+    // InternalSignalDSL.g:19488:1: rule__XFeatureCall__TypeArgumentsAssignment_1_1 : ( ruleJvmArgumentTypeReference ) ;
     public final void rule__XFeatureCall__TypeArgumentsAssignment_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:19222:1: ( ( ruleJvmArgumentTypeReference ) )
-            // InternalSignalDSL.g:19223:2: ( ruleJvmArgumentTypeReference )
+            // InternalSignalDSL.g:19492:1: ( ( ruleJvmArgumentTypeReference ) )
+            // InternalSignalDSL.g:19493:2: ( ruleJvmArgumentTypeReference )
             {
-            // InternalSignalDSL.g:19223:2: ( ruleJvmArgumentTypeReference )
-            // InternalSignalDSL.g:19224:3: ruleJvmArgumentTypeReference
+            // InternalSignalDSL.g:19493:2: ( ruleJvmArgumentTypeReference )
+            // InternalSignalDSL.g:19494:3: ruleJvmArgumentTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_1_1_0()); 
@@ -62778,17 +63588,17 @@
 
 
     // $ANTLR start "rule__XFeatureCall__TypeArgumentsAssignment_1_2_1"
-    // InternalSignalDSL.g:19233:1: rule__XFeatureCall__TypeArgumentsAssignment_1_2_1 : ( ruleJvmArgumentTypeReference ) ;
+    // InternalSignalDSL.g:19503: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:19237:1: ( ( ruleJvmArgumentTypeReference ) )
-            // InternalSignalDSL.g:19238:2: ( ruleJvmArgumentTypeReference )
+            // InternalSignalDSL.g:19507:1: ( ( ruleJvmArgumentTypeReference ) )
+            // InternalSignalDSL.g:19508:2: ( ruleJvmArgumentTypeReference )
             {
-            // InternalSignalDSL.g:19238:2: ( ruleJvmArgumentTypeReference )
-            // InternalSignalDSL.g:19239:3: ruleJvmArgumentTypeReference
+            // InternalSignalDSL.g:19508:2: ( ruleJvmArgumentTypeReference )
+            // InternalSignalDSL.g:19509:3: ruleJvmArgumentTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_1_2_1_0()); 
@@ -62823,23 +63633,23 @@
 
 
     // $ANTLR start "rule__XFeatureCall__FeatureAssignment_2"
-    // InternalSignalDSL.g:19248:1: rule__XFeatureCall__FeatureAssignment_2 : ( ( ruleIdOrSuper ) ) ;
+    // InternalSignalDSL.g:19518:1: rule__XFeatureCall__FeatureAssignment_2 : ( ( ruleIdOrSuper ) ) ;
     public final void rule__XFeatureCall__FeatureAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:19252:1: ( ( ( ruleIdOrSuper ) ) )
-            // InternalSignalDSL.g:19253:2: ( ( ruleIdOrSuper ) )
+            // InternalSignalDSL.g:19522:1: ( ( ( ruleIdOrSuper ) ) )
+            // InternalSignalDSL.g:19523:2: ( ( ruleIdOrSuper ) )
             {
-            // InternalSignalDSL.g:19253:2: ( ( ruleIdOrSuper ) )
-            // InternalSignalDSL.g:19254:3: ( ruleIdOrSuper )
+            // InternalSignalDSL.g:19523:2: ( ( ruleIdOrSuper ) )
+            // InternalSignalDSL.g:19524:3: ( ruleIdOrSuper )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getFeatureJvmIdentifiableElementCrossReference_2_0()); 
             }
-            // InternalSignalDSL.g:19255:3: ( ruleIdOrSuper )
-            // InternalSignalDSL.g:19256:4: ruleIdOrSuper
+            // InternalSignalDSL.g:19525:3: ( ruleIdOrSuper )
+            // InternalSignalDSL.g:19526:4: ruleIdOrSuper
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getFeatureJvmIdentifiableElementIdOrSuperParserRuleCall_2_0_1()); 
@@ -62880,28 +63690,28 @@
 
 
     // $ANTLR start "rule__XFeatureCall__ExplicitOperationCallAssignment_3_0"
-    // InternalSignalDSL.g:19267:1: rule__XFeatureCall__ExplicitOperationCallAssignment_3_0 : ( ( '(' ) ) ;
+    // InternalSignalDSL.g:19537:1: rule__XFeatureCall__ExplicitOperationCallAssignment_3_0 : ( ( '(' ) ) ;
     public final void rule__XFeatureCall__ExplicitOperationCallAssignment_3_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:19271:1: ( ( ( '(' ) ) )
-            // InternalSignalDSL.g:19272:2: ( ( '(' ) )
+            // InternalSignalDSL.g:19541:1: ( ( ( '(' ) ) )
+            // InternalSignalDSL.g:19542:2: ( ( '(' ) )
             {
-            // InternalSignalDSL.g:19272:2: ( ( '(' ) )
-            // InternalSignalDSL.g:19273:3: ( '(' )
+            // InternalSignalDSL.g:19542:2: ( ( '(' ) )
+            // InternalSignalDSL.g:19543:3: ( '(' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getExplicitOperationCallLeftParenthesisKeyword_3_0_0()); 
             }
-            // InternalSignalDSL.g:19274:3: ( '(' )
-            // InternalSignalDSL.g:19275:4: '('
+            // InternalSignalDSL.g:19544:3: ( '(' )
+            // InternalSignalDSL.g:19545:4: '('
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getExplicitOperationCallLeftParenthesisKeyword_3_0_0()); 
             }
-            match(input,76,FOLLOW_2); if (state.failed) return ;
+            match(input,74,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXFeatureCallAccess().getExplicitOperationCallLeftParenthesisKeyword_3_0_0()); 
             }
@@ -62933,17 +63743,17 @@
 
 
     // $ANTLR start "rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0"
-    // InternalSignalDSL.g:19286:1: rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 : ( ruleXShortClosure ) ;
+    // InternalSignalDSL.g:19556: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:19290:1: ( ( ruleXShortClosure ) )
-            // InternalSignalDSL.g:19291:2: ( ruleXShortClosure )
+            // InternalSignalDSL.g:19560:1: ( ( ruleXShortClosure ) )
+            // InternalSignalDSL.g:19561:2: ( ruleXShortClosure )
             {
-            // InternalSignalDSL.g:19291:2: ( ruleXShortClosure )
-            // InternalSignalDSL.g:19292:3: ruleXShortClosure
+            // InternalSignalDSL.g:19561:2: ( ruleXShortClosure )
+            // InternalSignalDSL.g:19562:3: ruleXShortClosure
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsXShortClosureParserRuleCall_3_1_0_0()); 
@@ -62978,17 +63788,17 @@
 
 
     // $ANTLR start "rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0"
-    // InternalSignalDSL.g:19301:1: rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0 : ( ruleXExpression ) ;
+    // InternalSignalDSL.g:19571: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:19305:1: ( ( ruleXExpression ) )
-            // InternalSignalDSL.g:19306:2: ( ruleXExpression )
+            // InternalSignalDSL.g:19575:1: ( ( ruleXExpression ) )
+            // InternalSignalDSL.g:19576:2: ( ruleXExpression )
             {
-            // InternalSignalDSL.g:19306:2: ( ruleXExpression )
-            // InternalSignalDSL.g:19307:3: ruleXExpression
+            // InternalSignalDSL.g:19576:2: ( ruleXExpression )
+            // InternalSignalDSL.g:19577:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsXExpressionParserRuleCall_3_1_1_0_0()); 
@@ -63023,17 +63833,17 @@
 
 
     // $ANTLR start "rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1"
-    // InternalSignalDSL.g:19316:1: rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1 : ( ruleXExpression ) ;
+    // InternalSignalDSL.g:19586: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:19320:1: ( ( ruleXExpression ) )
-            // InternalSignalDSL.g:19321:2: ( ruleXExpression )
+            // InternalSignalDSL.g:19590:1: ( ( ruleXExpression ) )
+            // InternalSignalDSL.g:19591:2: ( ruleXExpression )
             {
-            // InternalSignalDSL.g:19321:2: ( ruleXExpression )
-            // InternalSignalDSL.g:19322:3: ruleXExpression
+            // InternalSignalDSL.g:19591:2: ( ruleXExpression )
+            // InternalSignalDSL.g:19592:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsXExpressionParserRuleCall_3_1_1_1_1_0()); 
@@ -63068,17 +63878,17 @@
 
 
     // $ANTLR start "rule__XFeatureCall__FeatureCallArgumentsAssignment_4"
-    // InternalSignalDSL.g:19331:1: rule__XFeatureCall__FeatureCallArgumentsAssignment_4 : ( ruleXClosure ) ;
+    // InternalSignalDSL.g:19601:1: rule__XFeatureCall__FeatureCallArgumentsAssignment_4 : ( ruleXClosure ) ;
     public final void rule__XFeatureCall__FeatureCallArgumentsAssignment_4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:19335:1: ( ( ruleXClosure ) )
-            // InternalSignalDSL.g:19336:2: ( ruleXClosure )
+            // InternalSignalDSL.g:19605:1: ( ( ruleXClosure ) )
+            // InternalSignalDSL.g:19606:2: ( ruleXClosure )
             {
-            // InternalSignalDSL.g:19336:2: ( ruleXClosure )
-            // InternalSignalDSL.g:19337:3: ruleXClosure
+            // InternalSignalDSL.g:19606:2: ( ruleXClosure )
+            // InternalSignalDSL.g:19607:3: ruleXClosure
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsXClosureParserRuleCall_4_0()); 
@@ -63113,23 +63923,23 @@
 
 
     // $ANTLR start "rule__XConstructorCall__ConstructorAssignment_2"
-    // InternalSignalDSL.g:19346:1: rule__XConstructorCall__ConstructorAssignment_2 : ( ( ruleQualifiedName ) ) ;
+    // InternalSignalDSL.g:19616:1: rule__XConstructorCall__ConstructorAssignment_2 : ( ( ruleQualifiedName ) ) ;
     public final void rule__XConstructorCall__ConstructorAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:19350:1: ( ( ( ruleQualifiedName ) ) )
-            // InternalSignalDSL.g:19351:2: ( ( ruleQualifiedName ) )
+            // InternalSignalDSL.g:19620:1: ( ( ( ruleQualifiedName ) ) )
+            // InternalSignalDSL.g:19621:2: ( ( ruleQualifiedName ) )
             {
-            // InternalSignalDSL.g:19351:2: ( ( ruleQualifiedName ) )
-            // InternalSignalDSL.g:19352:3: ( ruleQualifiedName )
+            // InternalSignalDSL.g:19621:2: ( ( ruleQualifiedName ) )
+            // InternalSignalDSL.g:19622:3: ( ruleQualifiedName )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getConstructorJvmConstructorCrossReference_2_0()); 
             }
-            // InternalSignalDSL.g:19353:3: ( ruleQualifiedName )
-            // InternalSignalDSL.g:19354:4: ruleQualifiedName
+            // InternalSignalDSL.g:19623:3: ( ruleQualifiedName )
+            // InternalSignalDSL.g:19624:4: ruleQualifiedName
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getConstructorJvmConstructorQualifiedNameParserRuleCall_2_0_1()); 
@@ -63170,17 +63980,17 @@
 
 
     // $ANTLR start "rule__XConstructorCall__TypeArgumentsAssignment_3_1"
-    // InternalSignalDSL.g:19365:1: rule__XConstructorCall__TypeArgumentsAssignment_3_1 : ( ruleJvmArgumentTypeReference ) ;
+    // InternalSignalDSL.g:19635:1: rule__XConstructorCall__TypeArgumentsAssignment_3_1 : ( ruleJvmArgumentTypeReference ) ;
     public final void rule__XConstructorCall__TypeArgumentsAssignment_3_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:19369:1: ( ( ruleJvmArgumentTypeReference ) )
-            // InternalSignalDSL.g:19370:2: ( ruleJvmArgumentTypeReference )
+            // InternalSignalDSL.g:19639:1: ( ( ruleJvmArgumentTypeReference ) )
+            // InternalSignalDSL.g:19640:2: ( ruleJvmArgumentTypeReference )
             {
-            // InternalSignalDSL.g:19370:2: ( ruleJvmArgumentTypeReference )
-            // InternalSignalDSL.g:19371:3: ruleJvmArgumentTypeReference
+            // InternalSignalDSL.g:19640:2: ( ruleJvmArgumentTypeReference )
+            // InternalSignalDSL.g:19641:3: ruleJvmArgumentTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_3_1_0()); 
@@ -63215,17 +64025,17 @@
 
 
     // $ANTLR start "rule__XConstructorCall__TypeArgumentsAssignment_3_2_1"
-    // InternalSignalDSL.g:19380:1: rule__XConstructorCall__TypeArgumentsAssignment_3_2_1 : ( ruleJvmArgumentTypeReference ) ;
+    // InternalSignalDSL.g:19650: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:19384:1: ( ( ruleJvmArgumentTypeReference ) )
-            // InternalSignalDSL.g:19385:2: ( ruleJvmArgumentTypeReference )
+            // InternalSignalDSL.g:19654:1: ( ( ruleJvmArgumentTypeReference ) )
+            // InternalSignalDSL.g:19655:2: ( ruleJvmArgumentTypeReference )
             {
-            // InternalSignalDSL.g:19385:2: ( ruleJvmArgumentTypeReference )
-            // InternalSignalDSL.g:19386:3: ruleJvmArgumentTypeReference
+            // InternalSignalDSL.g:19655:2: ( ruleJvmArgumentTypeReference )
+            // InternalSignalDSL.g:19656:3: ruleJvmArgumentTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_3_2_1_0()); 
@@ -63260,28 +64070,28 @@
 
 
     // $ANTLR start "rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0"
-    // InternalSignalDSL.g:19395:1: rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0 : ( ( '(' ) ) ;
+    // InternalSignalDSL.g:19665:1: rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0 : ( ( '(' ) ) ;
     public final void rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:19399:1: ( ( ( '(' ) ) )
-            // InternalSignalDSL.g:19400:2: ( ( '(' ) )
+            // InternalSignalDSL.g:19669:1: ( ( ( '(' ) ) )
+            // InternalSignalDSL.g:19670:2: ( ( '(' ) )
             {
-            // InternalSignalDSL.g:19400:2: ( ( '(' ) )
-            // InternalSignalDSL.g:19401:3: ( '(' )
+            // InternalSignalDSL.g:19670:2: ( ( '(' ) )
+            // InternalSignalDSL.g:19671:3: ( '(' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getExplicitConstructorCallLeftParenthesisKeyword_4_0_0()); 
             }
-            // InternalSignalDSL.g:19402:3: ( '(' )
-            // InternalSignalDSL.g:19403:4: '('
+            // InternalSignalDSL.g:19672:3: ( '(' )
+            // InternalSignalDSL.g:19673:4: '('
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getExplicitConstructorCallLeftParenthesisKeyword_4_0_0()); 
             }
-            match(input,76,FOLLOW_2); if (state.failed) return ;
+            match(input,74,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXConstructorCallAccess().getExplicitConstructorCallLeftParenthesisKeyword_4_0_0()); 
             }
@@ -63313,17 +64123,17 @@
 
 
     // $ANTLR start "rule__XConstructorCall__ArgumentsAssignment_4_1_0"
-    // InternalSignalDSL.g:19414:1: rule__XConstructorCall__ArgumentsAssignment_4_1_0 : ( ruleXShortClosure ) ;
+    // InternalSignalDSL.g:19684: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:19418:1: ( ( ruleXShortClosure ) )
-            // InternalSignalDSL.g:19419:2: ( ruleXShortClosure )
+            // InternalSignalDSL.g:19688:1: ( ( ruleXShortClosure ) )
+            // InternalSignalDSL.g:19689:2: ( ruleXShortClosure )
             {
-            // InternalSignalDSL.g:19419:2: ( ruleXShortClosure )
-            // InternalSignalDSL.g:19420:3: ruleXShortClosure
+            // InternalSignalDSL.g:19689:2: ( ruleXShortClosure )
+            // InternalSignalDSL.g:19690:3: ruleXShortClosure
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getArgumentsXShortClosureParserRuleCall_4_1_0_0()); 
@@ -63358,17 +64168,17 @@
 
 
     // $ANTLR start "rule__XConstructorCall__ArgumentsAssignment_4_1_1_0"
-    // InternalSignalDSL.g:19429:1: rule__XConstructorCall__ArgumentsAssignment_4_1_1_0 : ( ruleXExpression ) ;
+    // InternalSignalDSL.g:19699: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:19433:1: ( ( ruleXExpression ) )
-            // InternalSignalDSL.g:19434:2: ( ruleXExpression )
+            // InternalSignalDSL.g:19703:1: ( ( ruleXExpression ) )
+            // InternalSignalDSL.g:19704:2: ( ruleXExpression )
             {
-            // InternalSignalDSL.g:19434:2: ( ruleXExpression )
-            // InternalSignalDSL.g:19435:3: ruleXExpression
+            // InternalSignalDSL.g:19704:2: ( ruleXExpression )
+            // InternalSignalDSL.g:19705:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getArgumentsXExpressionParserRuleCall_4_1_1_0_0()); 
@@ -63403,17 +64213,17 @@
 
 
     // $ANTLR start "rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1"
-    // InternalSignalDSL.g:19444:1: rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1 : ( ruleXExpression ) ;
+    // InternalSignalDSL.g:19714: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:19448:1: ( ( ruleXExpression ) )
-            // InternalSignalDSL.g:19449:2: ( ruleXExpression )
+            // InternalSignalDSL.g:19718:1: ( ( ruleXExpression ) )
+            // InternalSignalDSL.g:19719:2: ( ruleXExpression )
             {
-            // InternalSignalDSL.g:19449:2: ( ruleXExpression )
-            // InternalSignalDSL.g:19450:3: ruleXExpression
+            // InternalSignalDSL.g:19719:2: ( ruleXExpression )
+            // InternalSignalDSL.g:19720:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getArgumentsXExpressionParserRuleCall_4_1_1_1_1_0()); 
@@ -63448,17 +64258,17 @@
 
 
     // $ANTLR start "rule__XConstructorCall__ArgumentsAssignment_5"
-    // InternalSignalDSL.g:19459:1: rule__XConstructorCall__ArgumentsAssignment_5 : ( ruleXClosure ) ;
+    // InternalSignalDSL.g:19729:1: rule__XConstructorCall__ArgumentsAssignment_5 : ( ruleXClosure ) ;
     public final void rule__XConstructorCall__ArgumentsAssignment_5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:19463:1: ( ( ruleXClosure ) )
-            // InternalSignalDSL.g:19464:2: ( ruleXClosure )
+            // InternalSignalDSL.g:19733:1: ( ( ruleXClosure ) )
+            // InternalSignalDSL.g:19734:2: ( ruleXClosure )
             {
-            // InternalSignalDSL.g:19464:2: ( ruleXClosure )
-            // InternalSignalDSL.g:19465:3: ruleXClosure
+            // InternalSignalDSL.g:19734:2: ( ruleXClosure )
+            // InternalSignalDSL.g:19735:3: ruleXClosure
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getArgumentsXClosureParserRuleCall_5_0()); 
@@ -63493,28 +64303,28 @@
 
 
     // $ANTLR start "rule__XBooleanLiteral__IsTrueAssignment_1_1"
-    // InternalSignalDSL.g:19474:1: rule__XBooleanLiteral__IsTrueAssignment_1_1 : ( ( 'true' ) ) ;
+    // InternalSignalDSL.g:19744:1: rule__XBooleanLiteral__IsTrueAssignment_1_1 : ( ( 'true' ) ) ;
     public final void rule__XBooleanLiteral__IsTrueAssignment_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:19478:1: ( ( ( 'true' ) ) )
-            // InternalSignalDSL.g:19479:2: ( ( 'true' ) )
+            // InternalSignalDSL.g:19748:1: ( ( ( 'true' ) ) )
+            // InternalSignalDSL.g:19749:2: ( ( 'true' ) )
             {
-            // InternalSignalDSL.g:19479:2: ( ( 'true' ) )
-            // InternalSignalDSL.g:19480:3: ( 'true' )
+            // InternalSignalDSL.g:19749:2: ( ( 'true' ) )
+            // InternalSignalDSL.g:19750:3: ( 'true' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBooleanLiteralAccess().getIsTrueTrueKeyword_1_1_0()); 
             }
-            // InternalSignalDSL.g:19481:3: ( 'true' )
-            // InternalSignalDSL.g:19482:4: 'true'
+            // InternalSignalDSL.g:19751:3: ( 'true' )
+            // InternalSignalDSL.g:19752:4: 'true'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBooleanLiteralAccess().getIsTrueTrueKeyword_1_1_0()); 
             }
-            match(input,108,FOLLOW_2); if (state.failed) return ;
+            match(input,106,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXBooleanLiteralAccess().getIsTrueTrueKeyword_1_1_0()); 
             }
@@ -63546,17 +64356,17 @@
 
 
     // $ANTLR start "rule__XNumberLiteral__ValueAssignment_1"
-    // InternalSignalDSL.g:19493:1: rule__XNumberLiteral__ValueAssignment_1 : ( ruleNumber ) ;
+    // InternalSignalDSL.g:19763:1: rule__XNumberLiteral__ValueAssignment_1 : ( ruleNumber ) ;
     public final void rule__XNumberLiteral__ValueAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:19497:1: ( ( ruleNumber ) )
-            // InternalSignalDSL.g:19498:2: ( ruleNumber )
+            // InternalSignalDSL.g:19767:1: ( ( ruleNumber ) )
+            // InternalSignalDSL.g:19768:2: ( ruleNumber )
             {
-            // InternalSignalDSL.g:19498:2: ( ruleNumber )
-            // InternalSignalDSL.g:19499:3: ruleNumber
+            // InternalSignalDSL.g:19768:2: ( ruleNumber )
+            // InternalSignalDSL.g:19769:3: ruleNumber
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXNumberLiteralAccess().getValueNumberParserRuleCall_1_0()); 
@@ -63591,17 +64401,17 @@
 
 
     // $ANTLR start "rule__XStringLiteral__ValueAssignment_1"
-    // InternalSignalDSL.g:19508:1: rule__XStringLiteral__ValueAssignment_1 : ( RULE_STRING ) ;
+    // InternalSignalDSL.g:19778:1: rule__XStringLiteral__ValueAssignment_1 : ( RULE_STRING ) ;
     public final void rule__XStringLiteral__ValueAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:19512:1: ( ( RULE_STRING ) )
-            // InternalSignalDSL.g:19513:2: ( RULE_STRING )
+            // InternalSignalDSL.g:19782:1: ( ( RULE_STRING ) )
+            // InternalSignalDSL.g:19783:2: ( RULE_STRING )
             {
-            // InternalSignalDSL.g:19513:2: ( RULE_STRING )
-            // InternalSignalDSL.g:19514:3: RULE_STRING
+            // InternalSignalDSL.g:19783:2: ( RULE_STRING )
+            // InternalSignalDSL.g:19784:3: RULE_STRING
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXStringLiteralAccess().getValueSTRINGTerminalRuleCall_1_0()); 
@@ -63632,23 +64442,23 @@
 
 
     // $ANTLR start "rule__XTypeLiteral__TypeAssignment_3"
-    // InternalSignalDSL.g:19523:1: rule__XTypeLiteral__TypeAssignment_3 : ( ( ruleQualifiedName ) ) ;
+    // InternalSignalDSL.g:19793:1: rule__XTypeLiteral__TypeAssignment_3 : ( ( ruleQualifiedName ) ) ;
     public final void rule__XTypeLiteral__TypeAssignment_3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:19527:1: ( ( ( ruleQualifiedName ) ) )
-            // InternalSignalDSL.g:19528:2: ( ( ruleQualifiedName ) )
+            // InternalSignalDSL.g:19797:1: ( ( ( ruleQualifiedName ) ) )
+            // InternalSignalDSL.g:19798:2: ( ( ruleQualifiedName ) )
             {
-            // InternalSignalDSL.g:19528:2: ( ( ruleQualifiedName ) )
-            // InternalSignalDSL.g:19529:3: ( ruleQualifiedName )
+            // InternalSignalDSL.g:19798:2: ( ( ruleQualifiedName ) )
+            // InternalSignalDSL.g:19799:3: ( ruleQualifiedName )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTypeLiteralAccess().getTypeJvmTypeCrossReference_3_0()); 
             }
-            // InternalSignalDSL.g:19530:3: ( ruleQualifiedName )
-            // InternalSignalDSL.g:19531:4: ruleQualifiedName
+            // InternalSignalDSL.g:19800:3: ( ruleQualifiedName )
+            // InternalSignalDSL.g:19801:4: ruleQualifiedName
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTypeLiteralAccess().getTypeJvmTypeQualifiedNameParserRuleCall_3_0_1()); 
@@ -63689,17 +64499,17 @@
 
 
     // $ANTLR start "rule__XTypeLiteral__ArrayDimensionsAssignment_4"
-    // InternalSignalDSL.g:19542:1: rule__XTypeLiteral__ArrayDimensionsAssignment_4 : ( ruleArrayBrackets ) ;
+    // InternalSignalDSL.g:19812:1: rule__XTypeLiteral__ArrayDimensionsAssignment_4 : ( ruleArrayBrackets ) ;
     public final void rule__XTypeLiteral__ArrayDimensionsAssignment_4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:19546:1: ( ( ruleArrayBrackets ) )
-            // InternalSignalDSL.g:19547:2: ( ruleArrayBrackets )
+            // InternalSignalDSL.g:19816:1: ( ( ruleArrayBrackets ) )
+            // InternalSignalDSL.g:19817:2: ( ruleArrayBrackets )
             {
-            // InternalSignalDSL.g:19547:2: ( ruleArrayBrackets )
-            // InternalSignalDSL.g:19548:3: ruleArrayBrackets
+            // InternalSignalDSL.g:19817:2: ( ruleArrayBrackets )
+            // InternalSignalDSL.g:19818:3: ruleArrayBrackets
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTypeLiteralAccess().getArrayDimensionsArrayBracketsParserRuleCall_4_0()); 
@@ -63734,17 +64544,17 @@
 
 
     // $ANTLR start "rule__XThrowExpression__ExpressionAssignment_2"
-    // InternalSignalDSL.g:19557:1: rule__XThrowExpression__ExpressionAssignment_2 : ( ruleXExpression ) ;
+    // InternalSignalDSL.g:19827:1: rule__XThrowExpression__ExpressionAssignment_2 : ( ruleXExpression ) ;
     public final void rule__XThrowExpression__ExpressionAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:19561:1: ( ( ruleXExpression ) )
-            // InternalSignalDSL.g:19562:2: ( ruleXExpression )
+            // InternalSignalDSL.g:19831:1: ( ( ruleXExpression ) )
+            // InternalSignalDSL.g:19832:2: ( ruleXExpression )
             {
-            // InternalSignalDSL.g:19562:2: ( ruleXExpression )
-            // InternalSignalDSL.g:19563:3: ruleXExpression
+            // InternalSignalDSL.g:19832:2: ( ruleXExpression )
+            // InternalSignalDSL.g:19833:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXThrowExpressionAccess().getExpressionXExpressionParserRuleCall_2_0()); 
@@ -63779,17 +64589,17 @@
 
 
     // $ANTLR start "rule__XReturnExpression__ExpressionAssignment_2"
-    // InternalSignalDSL.g:19572:1: rule__XReturnExpression__ExpressionAssignment_2 : ( ruleXExpression ) ;
+    // InternalSignalDSL.g:19842:1: rule__XReturnExpression__ExpressionAssignment_2 : ( ruleXExpression ) ;
     public final void rule__XReturnExpression__ExpressionAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:19576:1: ( ( ruleXExpression ) )
-            // InternalSignalDSL.g:19577:2: ( ruleXExpression )
+            // InternalSignalDSL.g:19846:1: ( ( ruleXExpression ) )
+            // InternalSignalDSL.g:19847:2: ( ruleXExpression )
             {
-            // InternalSignalDSL.g:19577:2: ( ruleXExpression )
-            // InternalSignalDSL.g:19578:3: ruleXExpression
+            // InternalSignalDSL.g:19847:2: ( ruleXExpression )
+            // InternalSignalDSL.g:19848:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXReturnExpressionAccess().getExpressionXExpressionParserRuleCall_2_0()); 
@@ -63824,17 +64634,17 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__ExpressionAssignment_2"
-    // InternalSignalDSL.g:19587:1: rule__XTryCatchFinallyExpression__ExpressionAssignment_2 : ( ruleXExpression ) ;
+    // InternalSignalDSL.g:19857:1: rule__XTryCatchFinallyExpression__ExpressionAssignment_2 : ( ruleXExpression ) ;
     public final void rule__XTryCatchFinallyExpression__ExpressionAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:19591:1: ( ( ruleXExpression ) )
-            // InternalSignalDSL.g:19592:2: ( ruleXExpression )
+            // InternalSignalDSL.g:19861:1: ( ( ruleXExpression ) )
+            // InternalSignalDSL.g:19862:2: ( ruleXExpression )
             {
-            // InternalSignalDSL.g:19592:2: ( ruleXExpression )
-            // InternalSignalDSL.g:19593:3: ruleXExpression
+            // InternalSignalDSL.g:19862:2: ( ruleXExpression )
+            // InternalSignalDSL.g:19863:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTryCatchFinallyExpressionAccess().getExpressionXExpressionParserRuleCall_2_0()); 
@@ -63869,17 +64679,17 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0"
-    // InternalSignalDSL.g:19602:1: rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 : ( ruleXCatchClause ) ;
+    // InternalSignalDSL.g:19872: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:19606:1: ( ( ruleXCatchClause ) )
-            // InternalSignalDSL.g:19607:2: ( ruleXCatchClause )
+            // InternalSignalDSL.g:19876:1: ( ( ruleXCatchClause ) )
+            // InternalSignalDSL.g:19877:2: ( ruleXCatchClause )
             {
-            // InternalSignalDSL.g:19607:2: ( ruleXCatchClause )
-            // InternalSignalDSL.g:19608:3: ruleXCatchClause
+            // InternalSignalDSL.g:19877:2: ( ruleXCatchClause )
+            // InternalSignalDSL.g:19878:3: ruleXCatchClause
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTryCatchFinallyExpressionAccess().getCatchClausesXCatchClauseParserRuleCall_3_0_0_0()); 
@@ -63914,17 +64724,17 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1"
-    // InternalSignalDSL.g:19617:1: rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1 : ( ruleXExpression ) ;
+    // InternalSignalDSL.g:19887: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:19621:1: ( ( ruleXExpression ) )
-            // InternalSignalDSL.g:19622:2: ( ruleXExpression )
+            // InternalSignalDSL.g:19891:1: ( ( ruleXExpression ) )
+            // InternalSignalDSL.g:19892:2: ( ruleXExpression )
             {
-            // InternalSignalDSL.g:19622:2: ( ruleXExpression )
-            // InternalSignalDSL.g:19623:3: ruleXExpression
+            // InternalSignalDSL.g:19892:2: ( ruleXExpression )
+            // InternalSignalDSL.g:19893:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyExpressionXExpressionParserRuleCall_3_0_1_1_0()); 
@@ -63959,17 +64769,17 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1"
-    // InternalSignalDSL.g:19632:1: rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1 : ( ruleXExpression ) ;
+    // InternalSignalDSL.g:19902: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:19636:1: ( ( ruleXExpression ) )
-            // InternalSignalDSL.g:19637:2: ( ruleXExpression )
+            // InternalSignalDSL.g:19906:1: ( ( ruleXExpression ) )
+            // InternalSignalDSL.g:19907:2: ( ruleXExpression )
             {
-            // InternalSignalDSL.g:19637:2: ( ruleXExpression )
-            // InternalSignalDSL.g:19638:3: ruleXExpression
+            // InternalSignalDSL.g:19907:2: ( ruleXExpression )
+            // InternalSignalDSL.g:19908:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyExpressionXExpressionParserRuleCall_3_1_1_0()); 
@@ -64004,17 +64814,17 @@
 
 
     // $ANTLR start "rule__XSynchronizedExpression__ParamAssignment_1"
-    // InternalSignalDSL.g:19647:1: rule__XSynchronizedExpression__ParamAssignment_1 : ( ruleXExpression ) ;
+    // InternalSignalDSL.g:19917:1: rule__XSynchronizedExpression__ParamAssignment_1 : ( ruleXExpression ) ;
     public final void rule__XSynchronizedExpression__ParamAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:19651:1: ( ( ruleXExpression ) )
-            // InternalSignalDSL.g:19652:2: ( ruleXExpression )
+            // InternalSignalDSL.g:19921:1: ( ( ruleXExpression ) )
+            // InternalSignalDSL.g:19922:2: ( ruleXExpression )
             {
-            // InternalSignalDSL.g:19652:2: ( ruleXExpression )
-            // InternalSignalDSL.g:19653:3: ruleXExpression
+            // InternalSignalDSL.g:19922:2: ( ruleXExpression )
+            // InternalSignalDSL.g:19923:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSynchronizedExpressionAccess().getParamXExpressionParserRuleCall_1_0()); 
@@ -64049,17 +64859,17 @@
 
 
     // $ANTLR start "rule__XSynchronizedExpression__ExpressionAssignment_3"
-    // InternalSignalDSL.g:19662:1: rule__XSynchronizedExpression__ExpressionAssignment_3 : ( ruleXExpression ) ;
+    // InternalSignalDSL.g:19932:1: rule__XSynchronizedExpression__ExpressionAssignment_3 : ( ruleXExpression ) ;
     public final void rule__XSynchronizedExpression__ExpressionAssignment_3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:19666:1: ( ( ruleXExpression ) )
-            // InternalSignalDSL.g:19667:2: ( ruleXExpression )
+            // InternalSignalDSL.g:19936:1: ( ( ruleXExpression ) )
+            // InternalSignalDSL.g:19937:2: ( ruleXExpression )
             {
-            // InternalSignalDSL.g:19667:2: ( ruleXExpression )
-            // InternalSignalDSL.g:19668:3: ruleXExpression
+            // InternalSignalDSL.g:19937:2: ( ruleXExpression )
+            // InternalSignalDSL.g:19938:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSynchronizedExpressionAccess().getExpressionXExpressionParserRuleCall_3_0()); 
@@ -64094,17 +64904,17 @@
 
 
     // $ANTLR start "rule__XCatchClause__DeclaredParamAssignment_2"
-    // InternalSignalDSL.g:19677:1: rule__XCatchClause__DeclaredParamAssignment_2 : ( ruleFullJvmFormalParameter ) ;
+    // InternalSignalDSL.g:19947:1: rule__XCatchClause__DeclaredParamAssignment_2 : ( ruleFullJvmFormalParameter ) ;
     public final void rule__XCatchClause__DeclaredParamAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:19681:1: ( ( ruleFullJvmFormalParameter ) )
-            // InternalSignalDSL.g:19682:2: ( ruleFullJvmFormalParameter )
+            // InternalSignalDSL.g:19951:1: ( ( ruleFullJvmFormalParameter ) )
+            // InternalSignalDSL.g:19952:2: ( ruleFullJvmFormalParameter )
             {
-            // InternalSignalDSL.g:19682:2: ( ruleFullJvmFormalParameter )
-            // InternalSignalDSL.g:19683:3: ruleFullJvmFormalParameter
+            // InternalSignalDSL.g:19952:2: ( ruleFullJvmFormalParameter )
+            // InternalSignalDSL.g:19953:3: ruleFullJvmFormalParameter
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCatchClauseAccess().getDeclaredParamFullJvmFormalParameterParserRuleCall_2_0()); 
@@ -64139,17 +64949,17 @@
 
 
     // $ANTLR start "rule__XCatchClause__ExpressionAssignment_4"
-    // InternalSignalDSL.g:19692:1: rule__XCatchClause__ExpressionAssignment_4 : ( ruleXExpression ) ;
+    // InternalSignalDSL.g:19962:1: rule__XCatchClause__ExpressionAssignment_4 : ( ruleXExpression ) ;
     public final void rule__XCatchClause__ExpressionAssignment_4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:19696:1: ( ( ruleXExpression ) )
-            // InternalSignalDSL.g:19697:2: ( ruleXExpression )
+            // InternalSignalDSL.g:19966:1: ( ( ruleXExpression ) )
+            // InternalSignalDSL.g:19967:2: ( ruleXExpression )
             {
-            // InternalSignalDSL.g:19697:2: ( ruleXExpression )
-            // InternalSignalDSL.g:19698:3: ruleXExpression
+            // InternalSignalDSL.g:19967:2: ( ruleXExpression )
+            // InternalSignalDSL.g:19968:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCatchClauseAccess().getExpressionXExpressionParserRuleCall_4_0()); 
@@ -64184,17 +64994,17 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0"
-    // InternalSignalDSL.g:19707:1: rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0 : ( ruleJvmTypeReference ) ;
+    // InternalSignalDSL.g:19977: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:19711:1: ( ( ruleJvmTypeReference ) )
-            // InternalSignalDSL.g:19712:2: ( ruleJvmTypeReference )
+            // InternalSignalDSL.g:19981:1: ( ( ruleJvmTypeReference ) )
+            // InternalSignalDSL.g:19982:2: ( ruleJvmTypeReference )
             {
-            // InternalSignalDSL.g:19712:2: ( ruleJvmTypeReference )
-            // InternalSignalDSL.g:19713:3: ruleJvmTypeReference
+            // InternalSignalDSL.g:19982:2: ( ruleJvmTypeReference )
+            // InternalSignalDSL.g:19983:3: ruleJvmTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFunctionTypeRefAccess().getParamTypesJvmTypeReferenceParserRuleCall_0_1_0_0()); 
@@ -64229,17 +65039,17 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1"
-    // InternalSignalDSL.g:19722:1: rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1 : ( ruleJvmTypeReference ) ;
+    // InternalSignalDSL.g:19992: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:19726:1: ( ( ruleJvmTypeReference ) )
-            // InternalSignalDSL.g:19727:2: ( ruleJvmTypeReference )
+            // InternalSignalDSL.g:19996:1: ( ( ruleJvmTypeReference ) )
+            // InternalSignalDSL.g:19997:2: ( ruleJvmTypeReference )
             {
-            // InternalSignalDSL.g:19727:2: ( ruleJvmTypeReference )
-            // InternalSignalDSL.g:19728:3: ruleJvmTypeReference
+            // InternalSignalDSL.g:19997:2: ( ruleJvmTypeReference )
+            // InternalSignalDSL.g:19998:3: ruleJvmTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFunctionTypeRefAccess().getParamTypesJvmTypeReferenceParserRuleCall_0_1_1_1_0()); 
@@ -64274,17 +65084,17 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__ReturnTypeAssignment_2"
-    // InternalSignalDSL.g:19737:1: rule__XFunctionTypeRef__ReturnTypeAssignment_2 : ( ruleJvmTypeReference ) ;
+    // InternalSignalDSL.g:20007:1: rule__XFunctionTypeRef__ReturnTypeAssignment_2 : ( ruleJvmTypeReference ) ;
     public final void rule__XFunctionTypeRef__ReturnTypeAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:19741:1: ( ( ruleJvmTypeReference ) )
-            // InternalSignalDSL.g:19742:2: ( ruleJvmTypeReference )
+            // InternalSignalDSL.g:20011:1: ( ( ruleJvmTypeReference ) )
+            // InternalSignalDSL.g:20012:2: ( ruleJvmTypeReference )
             {
-            // InternalSignalDSL.g:19742:2: ( ruleJvmTypeReference )
-            // InternalSignalDSL.g:19743:3: ruleJvmTypeReference
+            // InternalSignalDSL.g:20012:2: ( ruleJvmTypeReference )
+            // InternalSignalDSL.g:20013:3: ruleJvmTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFunctionTypeRefAccess().getReturnTypeJvmTypeReferenceParserRuleCall_2_0()); 
@@ -64319,23 +65129,23 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__TypeAssignment_0"
-    // InternalSignalDSL.g:19752:1: rule__JvmParameterizedTypeReference__TypeAssignment_0 : ( ( ruleQualifiedName ) ) ;
+    // InternalSignalDSL.g:20022:1: rule__JvmParameterizedTypeReference__TypeAssignment_0 : ( ( ruleQualifiedName ) ) ;
     public final void rule__JvmParameterizedTypeReference__TypeAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:19756:1: ( ( ( ruleQualifiedName ) ) )
-            // InternalSignalDSL.g:19757:2: ( ( ruleQualifiedName ) )
+            // InternalSignalDSL.g:20026:1: ( ( ( ruleQualifiedName ) ) )
+            // InternalSignalDSL.g:20027:2: ( ( ruleQualifiedName ) )
             {
-            // InternalSignalDSL.g:19757:2: ( ( ruleQualifiedName ) )
-            // InternalSignalDSL.g:19758:3: ( ruleQualifiedName )
+            // InternalSignalDSL.g:20027:2: ( ( ruleQualifiedName ) )
+            // InternalSignalDSL.g:20028:3: ( ruleQualifiedName )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeJvmTypeCrossReference_0_0()); 
             }
-            // InternalSignalDSL.g:19759:3: ( ruleQualifiedName )
-            // InternalSignalDSL.g:19760:4: ruleQualifiedName
+            // InternalSignalDSL.g:20029:3: ( ruleQualifiedName )
+            // InternalSignalDSL.g:20030:4: ruleQualifiedName
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeJvmTypeQualifiedNameParserRuleCall_0_0_1()); 
@@ -64376,17 +65186,17 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1"
-    // InternalSignalDSL.g:19771:1: rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1 : ( ruleJvmArgumentTypeReference ) ;
+    // InternalSignalDSL.g:20041:1: rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1 : ( ruleJvmArgumentTypeReference ) ;
     public final void rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:19775:1: ( ( ruleJvmArgumentTypeReference ) )
-            // InternalSignalDSL.g:19776:2: ( ruleJvmArgumentTypeReference )
+            // InternalSignalDSL.g:20045:1: ( ( ruleJvmArgumentTypeReference ) )
+            // InternalSignalDSL.g:20046:2: ( ruleJvmArgumentTypeReference )
             {
-            // InternalSignalDSL.g:19776:2: ( ruleJvmArgumentTypeReference )
-            // InternalSignalDSL.g:19777:3: ruleJvmArgumentTypeReference
+            // InternalSignalDSL.g:20046:2: ( ruleJvmArgumentTypeReference )
+            // InternalSignalDSL.g:20047:3: ruleJvmArgumentTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsJvmArgumentTypeReferenceParserRuleCall_1_1_0()); 
@@ -64421,17 +65231,17 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1"
-    // InternalSignalDSL.g:19786:1: rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1 : ( ruleJvmArgumentTypeReference ) ;
+    // InternalSignalDSL.g:20056: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:19790:1: ( ( ruleJvmArgumentTypeReference ) )
-            // InternalSignalDSL.g:19791:2: ( ruleJvmArgumentTypeReference )
+            // InternalSignalDSL.g:20060:1: ( ( ruleJvmArgumentTypeReference ) )
+            // InternalSignalDSL.g:20061:2: ( ruleJvmArgumentTypeReference )
             {
-            // InternalSignalDSL.g:19791:2: ( ruleJvmArgumentTypeReference )
-            // InternalSignalDSL.g:19792:3: ruleJvmArgumentTypeReference
+            // InternalSignalDSL.g:20061:2: ( ruleJvmArgumentTypeReference )
+            // InternalSignalDSL.g:20062:3: ruleJvmArgumentTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsJvmArgumentTypeReferenceParserRuleCall_1_2_1_0()); 
@@ -64466,23 +65276,23 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1"
-    // InternalSignalDSL.g:19801:1: rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1 : ( ( ruleValidID ) ) ;
+    // InternalSignalDSL.g:20071: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:19805:1: ( ( ( ruleValidID ) ) )
-            // InternalSignalDSL.g:19806:2: ( ( ruleValidID ) )
+            // InternalSignalDSL.g:20075:1: ( ( ( ruleValidID ) ) )
+            // InternalSignalDSL.g:20076:2: ( ( ruleValidID ) )
             {
-            // InternalSignalDSL.g:19806:2: ( ( ruleValidID ) )
-            // InternalSignalDSL.g:19807:3: ( ruleValidID )
+            // InternalSignalDSL.g:20076:2: ( ( ruleValidID ) )
+            // InternalSignalDSL.g:20077:3: ( ruleValidID )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeJvmTypeCrossReference_1_4_1_0()); 
             }
-            // InternalSignalDSL.g:19808:3: ( ruleValidID )
-            // InternalSignalDSL.g:19809:4: ruleValidID
+            // InternalSignalDSL.g:20078:3: ( ruleValidID )
+            // InternalSignalDSL.g:20079:4: ruleValidID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeJvmTypeValidIDParserRuleCall_1_4_1_0_1()); 
@@ -64523,17 +65333,17 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1"
-    // InternalSignalDSL.g:19820:1: rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1 : ( ruleJvmArgumentTypeReference ) ;
+    // InternalSignalDSL.g:20090: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:19824:1: ( ( ruleJvmArgumentTypeReference ) )
-            // InternalSignalDSL.g:19825:2: ( ruleJvmArgumentTypeReference )
+            // InternalSignalDSL.g:20094:1: ( ( ruleJvmArgumentTypeReference ) )
+            // InternalSignalDSL.g:20095:2: ( ruleJvmArgumentTypeReference )
             {
-            // InternalSignalDSL.g:19825:2: ( ruleJvmArgumentTypeReference )
-            // InternalSignalDSL.g:19826:3: ruleJvmArgumentTypeReference
+            // InternalSignalDSL.g:20095:2: ( ruleJvmArgumentTypeReference )
+            // InternalSignalDSL.g:20096:3: ruleJvmArgumentTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsJvmArgumentTypeReferenceParserRuleCall_1_4_2_1_0()); 
@@ -64568,17 +65378,17 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1"
-    // InternalSignalDSL.g:19835:1: rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1 : ( ruleJvmArgumentTypeReference ) ;
+    // InternalSignalDSL.g:20105: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:19839:1: ( ( ruleJvmArgumentTypeReference ) )
-            // InternalSignalDSL.g:19840:2: ( ruleJvmArgumentTypeReference )
+            // InternalSignalDSL.g:20109:1: ( ( ruleJvmArgumentTypeReference ) )
+            // InternalSignalDSL.g:20110:2: ( ruleJvmArgumentTypeReference )
             {
-            // InternalSignalDSL.g:19840:2: ( ruleJvmArgumentTypeReference )
-            // InternalSignalDSL.g:19841:3: ruleJvmArgumentTypeReference
+            // InternalSignalDSL.g:20110:2: ( ruleJvmArgumentTypeReference )
+            // InternalSignalDSL.g:20111:3: ruleJvmArgumentTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsJvmArgumentTypeReferenceParserRuleCall_1_4_2_2_1_0()); 
@@ -64613,17 +65423,17 @@
 
 
     // $ANTLR start "rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0"
-    // InternalSignalDSL.g:19850:1: rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0 : ( ruleJvmUpperBound ) ;
+    // InternalSignalDSL.g:20120: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:19854:1: ( ( ruleJvmUpperBound ) )
-            // InternalSignalDSL.g:19855:2: ( ruleJvmUpperBound )
+            // InternalSignalDSL.g:20124:1: ( ( ruleJvmUpperBound ) )
+            // InternalSignalDSL.g:20125:2: ( ruleJvmUpperBound )
             {
-            // InternalSignalDSL.g:19855:2: ( ruleJvmUpperBound )
-            // InternalSignalDSL.g:19856:3: ruleJvmUpperBound
+            // InternalSignalDSL.g:20125:2: ( ruleJvmUpperBound )
+            // InternalSignalDSL.g:20126:3: ruleJvmUpperBound
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsJvmUpperBoundParserRuleCall_2_0_0_0()); 
@@ -64658,17 +65468,17 @@
 
 
     // $ANTLR start "rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1"
-    // InternalSignalDSL.g:19865:1: rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1 : ( ruleJvmUpperBoundAnded ) ;
+    // InternalSignalDSL.g:20135: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:19869:1: ( ( ruleJvmUpperBoundAnded ) )
-            // InternalSignalDSL.g:19870:2: ( ruleJvmUpperBoundAnded )
+            // InternalSignalDSL.g:20139:1: ( ( ruleJvmUpperBoundAnded ) )
+            // InternalSignalDSL.g:20140:2: ( ruleJvmUpperBoundAnded )
             {
-            // InternalSignalDSL.g:19870:2: ( ruleJvmUpperBoundAnded )
-            // InternalSignalDSL.g:19871:3: ruleJvmUpperBoundAnded
+            // InternalSignalDSL.g:20140:2: ( ruleJvmUpperBoundAnded )
+            // InternalSignalDSL.g:20141:3: ruleJvmUpperBoundAnded
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsJvmUpperBoundAndedParserRuleCall_2_0_1_0()); 
@@ -64703,17 +65513,17 @@
 
 
     // $ANTLR start "rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0"
-    // InternalSignalDSL.g:19880:1: rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0 : ( ruleJvmLowerBound ) ;
+    // InternalSignalDSL.g:20150: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:19884:1: ( ( ruleJvmLowerBound ) )
-            // InternalSignalDSL.g:19885:2: ( ruleJvmLowerBound )
+            // InternalSignalDSL.g:20154:1: ( ( ruleJvmLowerBound ) )
+            // InternalSignalDSL.g:20155:2: ( ruleJvmLowerBound )
             {
-            // InternalSignalDSL.g:19885:2: ( ruleJvmLowerBound )
-            // InternalSignalDSL.g:19886:3: ruleJvmLowerBound
+            // InternalSignalDSL.g:20155:2: ( ruleJvmLowerBound )
+            // InternalSignalDSL.g:20156:3: ruleJvmLowerBound
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsJvmLowerBoundParserRuleCall_2_1_0_0()); 
@@ -64748,17 +65558,17 @@
 
 
     // $ANTLR start "rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1"
-    // InternalSignalDSL.g:19895:1: rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1 : ( ruleJvmLowerBoundAnded ) ;
+    // InternalSignalDSL.g:20165: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:19899:1: ( ( ruleJvmLowerBoundAnded ) )
-            // InternalSignalDSL.g:19900:2: ( ruleJvmLowerBoundAnded )
+            // InternalSignalDSL.g:20169:1: ( ( ruleJvmLowerBoundAnded ) )
+            // InternalSignalDSL.g:20170:2: ( ruleJvmLowerBoundAnded )
             {
-            // InternalSignalDSL.g:19900:2: ( ruleJvmLowerBoundAnded )
-            // InternalSignalDSL.g:19901:3: ruleJvmLowerBoundAnded
+            // InternalSignalDSL.g:20170:2: ( ruleJvmLowerBoundAnded )
+            // InternalSignalDSL.g:20171:3: ruleJvmLowerBoundAnded
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsJvmLowerBoundAndedParserRuleCall_2_1_1_0()); 
@@ -64793,17 +65603,17 @@
 
 
     // $ANTLR start "rule__JvmUpperBound__TypeReferenceAssignment_1"
-    // InternalSignalDSL.g:19910:1: rule__JvmUpperBound__TypeReferenceAssignment_1 : ( ruleJvmTypeReference ) ;
+    // InternalSignalDSL.g:20180:1: rule__JvmUpperBound__TypeReferenceAssignment_1 : ( ruleJvmTypeReference ) ;
     public final void rule__JvmUpperBound__TypeReferenceAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:19914:1: ( ( ruleJvmTypeReference ) )
-            // InternalSignalDSL.g:19915:2: ( ruleJvmTypeReference )
+            // InternalSignalDSL.g:20184:1: ( ( ruleJvmTypeReference ) )
+            // InternalSignalDSL.g:20185:2: ( ruleJvmTypeReference )
             {
-            // InternalSignalDSL.g:19915:2: ( ruleJvmTypeReference )
-            // InternalSignalDSL.g:19916:3: ruleJvmTypeReference
+            // InternalSignalDSL.g:20185:2: ( ruleJvmTypeReference )
+            // InternalSignalDSL.g:20186:3: ruleJvmTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmUpperBoundAccess().getTypeReferenceJvmTypeReferenceParserRuleCall_1_0()); 
@@ -64838,17 +65648,17 @@
 
 
     // $ANTLR start "rule__JvmUpperBoundAnded__TypeReferenceAssignment_1"
-    // InternalSignalDSL.g:19925:1: rule__JvmUpperBoundAnded__TypeReferenceAssignment_1 : ( ruleJvmTypeReference ) ;
+    // InternalSignalDSL.g:20195:1: rule__JvmUpperBoundAnded__TypeReferenceAssignment_1 : ( ruleJvmTypeReference ) ;
     public final void rule__JvmUpperBoundAnded__TypeReferenceAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:19929:1: ( ( ruleJvmTypeReference ) )
-            // InternalSignalDSL.g:19930:2: ( ruleJvmTypeReference )
+            // InternalSignalDSL.g:20199:1: ( ( ruleJvmTypeReference ) )
+            // InternalSignalDSL.g:20200:2: ( ruleJvmTypeReference )
             {
-            // InternalSignalDSL.g:19930:2: ( ruleJvmTypeReference )
-            // InternalSignalDSL.g:19931:3: ruleJvmTypeReference
+            // InternalSignalDSL.g:20200:2: ( ruleJvmTypeReference )
+            // InternalSignalDSL.g:20201:3: ruleJvmTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmUpperBoundAndedAccess().getTypeReferenceJvmTypeReferenceParserRuleCall_1_0()); 
@@ -64883,17 +65693,17 @@
 
 
     // $ANTLR start "rule__JvmLowerBound__TypeReferenceAssignment_1"
-    // InternalSignalDSL.g:19940:1: rule__JvmLowerBound__TypeReferenceAssignment_1 : ( ruleJvmTypeReference ) ;
+    // InternalSignalDSL.g:20210:1: rule__JvmLowerBound__TypeReferenceAssignment_1 : ( ruleJvmTypeReference ) ;
     public final void rule__JvmLowerBound__TypeReferenceAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:19944:1: ( ( ruleJvmTypeReference ) )
-            // InternalSignalDSL.g:19945:2: ( ruleJvmTypeReference )
+            // InternalSignalDSL.g:20214:1: ( ( ruleJvmTypeReference ) )
+            // InternalSignalDSL.g:20215:2: ( ruleJvmTypeReference )
             {
-            // InternalSignalDSL.g:19945:2: ( ruleJvmTypeReference )
-            // InternalSignalDSL.g:19946:3: ruleJvmTypeReference
+            // InternalSignalDSL.g:20215:2: ( ruleJvmTypeReference )
+            // InternalSignalDSL.g:20216:3: ruleJvmTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmLowerBoundAccess().getTypeReferenceJvmTypeReferenceParserRuleCall_1_0()); 
@@ -64928,17 +65738,17 @@
 
 
     // $ANTLR start "rule__JvmLowerBoundAnded__TypeReferenceAssignment_1"
-    // InternalSignalDSL.g:19955:1: rule__JvmLowerBoundAnded__TypeReferenceAssignment_1 : ( ruleJvmTypeReference ) ;
+    // InternalSignalDSL.g:20225:1: rule__JvmLowerBoundAnded__TypeReferenceAssignment_1 : ( ruleJvmTypeReference ) ;
     public final void rule__JvmLowerBoundAnded__TypeReferenceAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:19959:1: ( ( ruleJvmTypeReference ) )
-            // InternalSignalDSL.g:19960:2: ( ruleJvmTypeReference )
+            // InternalSignalDSL.g:20229:1: ( ( ruleJvmTypeReference ) )
+            // InternalSignalDSL.g:20230:2: ( ruleJvmTypeReference )
             {
-            // InternalSignalDSL.g:19960:2: ( ruleJvmTypeReference )
-            // InternalSignalDSL.g:19961:3: ruleJvmTypeReference
+            // InternalSignalDSL.g:20230:2: ( ruleJvmTypeReference )
+            // InternalSignalDSL.g:20231:3: ruleJvmTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmLowerBoundAndedAccess().getTypeReferenceJvmTypeReferenceParserRuleCall_1_0()); 
@@ -64973,17 +65783,17 @@
 
 
     // $ANTLR start "rule__XImportSection__ImportDeclarationsAssignment"
-    // InternalSignalDSL.g:19970:1: rule__XImportSection__ImportDeclarationsAssignment : ( ruleXImportDeclaration ) ;
+    // InternalSignalDSL.g:20240:1: rule__XImportSection__ImportDeclarationsAssignment : ( ruleXImportDeclaration ) ;
     public final void rule__XImportSection__ImportDeclarationsAssignment() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:19974:1: ( ( ruleXImportDeclaration ) )
-            // InternalSignalDSL.g:19975:2: ( ruleXImportDeclaration )
+            // InternalSignalDSL.g:20244:1: ( ( ruleXImportDeclaration ) )
+            // InternalSignalDSL.g:20245:2: ( ruleXImportDeclaration )
             {
-            // InternalSignalDSL.g:19975:2: ( ruleXImportDeclaration )
-            // InternalSignalDSL.g:19976:3: ruleXImportDeclaration
+            // InternalSignalDSL.g:20245:2: ( ruleXImportDeclaration )
+            // InternalSignalDSL.g:20246:3: ruleXImportDeclaration
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportSectionAccess().getImportDeclarationsXImportDeclarationParserRuleCall_0()); 
@@ -65016,19 +65826,19 @@
     }
     // $ANTLR end "rule__XImportSection__ImportDeclarationsAssignment"
 
-    // $ANTLR start synpred7_InternalSignalDSL
-    public final void synpred7_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:2395:2: ( ( ( rule__XAnnotation__Group_3_1_0__0 ) ) )
-        // InternalSignalDSL.g:2395:2: ( ( rule__XAnnotation__Group_3_1_0__0 ) )
+    // $ANTLR start synpred8_InternalSignalDSL
+    public final void synpred8_InternalSignalDSL_fragment() throws RecognitionException {   
+        // InternalSignalDSL.g:2457:2: ( ( ( rule__XAnnotation__Group_3_1_0__0 ) ) )
+        // InternalSignalDSL.g:2457:2: ( ( rule__XAnnotation__Group_3_1_0__0 ) )
         {
-        // InternalSignalDSL.g:2395:2: ( ( rule__XAnnotation__Group_3_1_0__0 ) )
-        // InternalSignalDSL.g:2396:3: ( rule__XAnnotation__Group_3_1_0__0 )
+        // InternalSignalDSL.g:2457:2: ( ( rule__XAnnotation__Group_3_1_0__0 ) )
+        // InternalSignalDSL.g:2458:3: ( rule__XAnnotation__Group_3_1_0__0 )
         {
         if ( state.backtracking==0 ) {
            before(grammarAccess.getXAnnotationAccess().getGroup_3_1_0()); 
         }
-        // InternalSignalDSL.g:2397:3: ( rule__XAnnotation__Group_3_1_0__0 )
-        // InternalSignalDSL.g:2397:4: rule__XAnnotation__Group_3_1_0__0
+        // InternalSignalDSL.g:2459:3: ( rule__XAnnotation__Group_3_1_0__0 )
+        // InternalSignalDSL.g:2459:4: rule__XAnnotation__Group_3_1_0__0
         {
         pushFollow(FOLLOW_2);
         rule__XAnnotation__Group_3_1_0__0();
@@ -65044,51 +65854,51 @@
 
         }
     }
-    // $ANTLR end synpred7_InternalSignalDSL
-
-    // $ANTLR start synpred8_InternalSignalDSL
-    public final void synpred8_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:2416:2: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_0__0 ) ) )
-        // InternalSignalDSL.g:2416:2: ( ( rule__XAnnotationElementValueOrCommaList__Group_0__0 ) )
-        {
-        // InternalSignalDSL.g:2416:2: ( ( rule__XAnnotationElementValueOrCommaList__Group_0__0 ) )
-        // InternalSignalDSL.g:2417:3: ( rule__XAnnotationElementValueOrCommaList__Group_0__0 )
-        {
-        if ( state.backtracking==0 ) {
-           before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_0()); 
-        }
-        // InternalSignalDSL.g:2418:3: ( rule__XAnnotationElementValueOrCommaList__Group_0__0 )
-        // InternalSignalDSL.g:2418:4: rule__XAnnotationElementValueOrCommaList__Group_0__0
-        {
-        pushFollow(FOLLOW_2);
-        rule__XAnnotationElementValueOrCommaList__Group_0__0();
-
-        state._fsp--;
-        if (state.failed) return ;
-
-        }
-
-
-        }
-
-
-        }
-    }
     // $ANTLR end synpred8_InternalSignalDSL
 
     // $ANTLR start synpred9_InternalSignalDSL
     public final void synpred9_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:2437:2: ( ( ( rule__XAnnotationElementValue__Group_0__0 ) ) )
-        // InternalSignalDSL.g:2437:2: ( ( rule__XAnnotationElementValue__Group_0__0 ) )
+        // InternalSignalDSL.g:2478:2: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_0__0 ) ) )
+        // InternalSignalDSL.g:2478:2: ( ( rule__XAnnotationElementValueOrCommaList__Group_0__0 ) )
         {
-        // InternalSignalDSL.g:2437:2: ( ( rule__XAnnotationElementValue__Group_0__0 ) )
-        // InternalSignalDSL.g:2438:3: ( rule__XAnnotationElementValue__Group_0__0 )
+        // InternalSignalDSL.g:2478:2: ( ( rule__XAnnotationElementValueOrCommaList__Group_0__0 ) )
+        // InternalSignalDSL.g:2479:3: ( rule__XAnnotationElementValueOrCommaList__Group_0__0 )
+        {
+        if ( state.backtracking==0 ) {
+           before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_0()); 
+        }
+        // InternalSignalDSL.g:2480:3: ( rule__XAnnotationElementValueOrCommaList__Group_0__0 )
+        // InternalSignalDSL.g:2480:4: rule__XAnnotationElementValueOrCommaList__Group_0__0
+        {
+        pushFollow(FOLLOW_2);
+        rule__XAnnotationElementValueOrCommaList__Group_0__0();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+
+
+        }
+
+
+        }
+    }
+    // $ANTLR end synpred9_InternalSignalDSL
+
+    // $ANTLR start synpred10_InternalSignalDSL
+    public final void synpred10_InternalSignalDSL_fragment() throws RecognitionException {   
+        // InternalSignalDSL.g:2499:2: ( ( ( rule__XAnnotationElementValue__Group_0__0 ) ) )
+        // InternalSignalDSL.g:2499:2: ( ( rule__XAnnotationElementValue__Group_0__0 ) )
+        {
+        // InternalSignalDSL.g:2499:2: ( ( rule__XAnnotationElementValue__Group_0__0 ) )
+        // InternalSignalDSL.g:2500:3: ( rule__XAnnotationElementValue__Group_0__0 )
         {
         if ( state.backtracking==0 ) {
            before(grammarAccess.getXAnnotationElementValueAccess().getGroup_0()); 
         }
-        // InternalSignalDSL.g:2439:3: ( rule__XAnnotationElementValue__Group_0__0 )
-        // InternalSignalDSL.g:2439:4: rule__XAnnotationElementValue__Group_0__0
+        // InternalSignalDSL.g:2501:3: ( rule__XAnnotationElementValue__Group_0__0 )
+        // InternalSignalDSL.g:2501:4: rule__XAnnotationElementValue__Group_0__0
         {
         pushFollow(FOLLOW_2);
         rule__XAnnotationElementValue__Group_0__0();
@@ -65104,21 +65914,21 @@
 
         }
     }
-    // $ANTLR end synpred9_InternalSignalDSL
+    // $ANTLR end synpred10_InternalSignalDSL
 
-    // $ANTLR start synpred34_InternalSignalDSL
-    public final void synpred34_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:2722:2: ( ( ( rule__OpOther__Group_6_1_0__0 ) ) )
-        // InternalSignalDSL.g:2722:2: ( ( rule__OpOther__Group_6_1_0__0 ) )
+    // $ANTLR start synpred35_InternalSignalDSL
+    public final void synpred35_InternalSignalDSL_fragment() throws RecognitionException {   
+        // InternalSignalDSL.g:2784:2: ( ( ( rule__OpOther__Group_6_1_0__0 ) ) )
+        // InternalSignalDSL.g:2784:2: ( ( rule__OpOther__Group_6_1_0__0 ) )
         {
-        // InternalSignalDSL.g:2722:2: ( ( rule__OpOther__Group_6_1_0__0 ) )
-        // InternalSignalDSL.g:2723:3: ( rule__OpOther__Group_6_1_0__0 )
+        // InternalSignalDSL.g:2784:2: ( ( rule__OpOther__Group_6_1_0__0 ) )
+        // InternalSignalDSL.g:2785:3: ( rule__OpOther__Group_6_1_0__0 )
         {
         if ( state.backtracking==0 ) {
            before(grammarAccess.getOpOtherAccess().getGroup_6_1_0()); 
         }
-        // InternalSignalDSL.g:2724:3: ( rule__OpOther__Group_6_1_0__0 )
-        // InternalSignalDSL.g:2724:4: rule__OpOther__Group_6_1_0__0
+        // InternalSignalDSL.g:2786:3: ( rule__OpOther__Group_6_1_0__0 )
+        // InternalSignalDSL.g:2786:4: rule__OpOther__Group_6_1_0__0
         {
         pushFollow(FOLLOW_2);
         rule__OpOther__Group_6_1_0__0();
@@ -65134,15 +65944,15 @@
 
         }
     }
-    // $ANTLR end synpred34_InternalSignalDSL
+    // $ANTLR end synpred35_InternalSignalDSL
 
-    // $ANTLR start synpred35_InternalSignalDSL
-    public final void synpred35_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:2728:2: ( ( '<' ) )
-        // InternalSignalDSL.g:2728:2: ( '<' )
+    // $ANTLR start synpred36_InternalSignalDSL
+    public final void synpred36_InternalSignalDSL_fragment() throws RecognitionException {   
+        // InternalSignalDSL.g:2790:2: ( ( '<' ) )
+        // InternalSignalDSL.g:2790:2: ( '<' )
         {
-        // InternalSignalDSL.g:2728:2: ( '<' )
-        // InternalSignalDSL.g:2729:3: '<'
+        // InternalSignalDSL.g:2790:2: ( '<' )
+        // InternalSignalDSL.g:2791:3: '<'
         {
         if ( state.backtracking==0 ) {
            before(grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_1_1()); 
@@ -65154,21 +65964,21 @@
 
         }
     }
-    // $ANTLR end synpred35_InternalSignalDSL
+    // $ANTLR end synpred36_InternalSignalDSL
 
-    // $ANTLR start synpred48_InternalSignalDSL
-    public final void synpred48_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:2941:2: ( ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 ) ) )
-        // InternalSignalDSL.g:2941:2: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 ) )
+    // $ANTLR start synpred49_InternalSignalDSL
+    public final void synpred49_InternalSignalDSL_fragment() throws RecognitionException {   
+        // InternalSignalDSL.g:3003:2: ( ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 ) ) )
+        // InternalSignalDSL.g:3003:2: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 ) )
         {
-        // InternalSignalDSL.g:2941:2: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 ) )
-        // InternalSignalDSL.g:2942:3: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 )
+        // InternalSignalDSL.g:3003:2: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 ) )
+        // InternalSignalDSL.g:3004:3: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 )
         {
         if ( state.backtracking==0 ) {
            before(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsAssignment_1_1_3_1_0()); 
         }
-        // InternalSignalDSL.g:2943:3: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 )
-        // InternalSignalDSL.g:2943:4: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0
+        // InternalSignalDSL.g:3005:3: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 )
+        // InternalSignalDSL.g:3005:4: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0
         {
         pushFollow(FOLLOW_2);
         rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0();
@@ -65184,21 +65994,21 @@
 
         }
     }
-    // $ANTLR end synpred48_InternalSignalDSL
+    // $ANTLR end synpred49_InternalSignalDSL
 
-    // $ANTLR start synpred56_InternalSignalDSL
-    public final void synpred56_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:3004:2: ( ( ( ruleXForLoopExpression ) ) )
-        // InternalSignalDSL.g:3004:2: ( ( ruleXForLoopExpression ) )
+    // $ANTLR start synpred57_InternalSignalDSL
+    public final void synpred57_InternalSignalDSL_fragment() throws RecognitionException {   
+        // InternalSignalDSL.g:3066:2: ( ( ( ruleXForLoopExpression ) ) )
+        // InternalSignalDSL.g:3066:2: ( ( ruleXForLoopExpression ) )
         {
-        // InternalSignalDSL.g:3004:2: ( ( ruleXForLoopExpression ) )
-        // InternalSignalDSL.g:3005:3: ( ruleXForLoopExpression )
+        // InternalSignalDSL.g:3066:2: ( ( ruleXForLoopExpression ) )
+        // InternalSignalDSL.g:3067:3: ( ruleXForLoopExpression )
         {
         if ( state.backtracking==0 ) {
            before(grammarAccess.getXPrimaryExpressionAccess().getXForLoopExpressionParserRuleCall_7()); 
         }
-        // InternalSignalDSL.g:3006:3: ( ruleXForLoopExpression )
-        // InternalSignalDSL.g:3006:4: ruleXForLoopExpression
+        // InternalSignalDSL.g:3068:3: ( ruleXForLoopExpression )
+        // InternalSignalDSL.g:3068:4: ruleXForLoopExpression
         {
         pushFollow(FOLLOW_2);
         ruleXForLoopExpression();
@@ -65214,15 +66024,15 @@
 
         }
     }
-    // $ANTLR end synpred56_InternalSignalDSL
+    // $ANTLR end synpred57_InternalSignalDSL
 
-    // $ANTLR start synpred57_InternalSignalDSL
-    public final void synpred57_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:3010:2: ( ( ruleXBasicForLoopExpression ) )
-        // InternalSignalDSL.g:3010:2: ( ruleXBasicForLoopExpression )
+    // $ANTLR start synpred58_InternalSignalDSL
+    public final void synpred58_InternalSignalDSL_fragment() throws RecognitionException {   
+        // InternalSignalDSL.g:3072:2: ( ( ruleXBasicForLoopExpression ) )
+        // InternalSignalDSL.g:3072:2: ( ruleXBasicForLoopExpression )
         {
-        // InternalSignalDSL.g:3010:2: ( ruleXBasicForLoopExpression )
-        // InternalSignalDSL.g:3011:3: ruleXBasicForLoopExpression
+        // InternalSignalDSL.g:3072:2: ( ruleXBasicForLoopExpression )
+        // InternalSignalDSL.g:3073:3: ruleXBasicForLoopExpression
         {
         if ( state.backtracking==0 ) {
            before(grammarAccess.getXPrimaryExpressionAccess().getXBasicForLoopExpressionParserRuleCall_8()); 
@@ -65238,21 +66048,21 @@
 
         }
     }
-    // $ANTLR end synpred57_InternalSignalDSL
+    // $ANTLR end synpred58_InternalSignalDSL
 
-    // $ANTLR start synpred70_InternalSignalDSL
-    public final void synpred70_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:3133:2: ( ( ( rule__XSwitchExpression__Group_2_0__0 ) ) )
-        // InternalSignalDSL.g:3133:2: ( ( rule__XSwitchExpression__Group_2_0__0 ) )
+    // $ANTLR start synpred71_InternalSignalDSL
+    public final void synpred71_InternalSignalDSL_fragment() throws RecognitionException {   
+        // InternalSignalDSL.g:3195:2: ( ( ( rule__XSwitchExpression__Group_2_0__0 ) ) )
+        // InternalSignalDSL.g:3195:2: ( ( rule__XSwitchExpression__Group_2_0__0 ) )
         {
-        // InternalSignalDSL.g:3133:2: ( ( rule__XSwitchExpression__Group_2_0__0 ) )
-        // InternalSignalDSL.g:3134:3: ( rule__XSwitchExpression__Group_2_0__0 )
+        // InternalSignalDSL.g:3195:2: ( ( rule__XSwitchExpression__Group_2_0__0 ) )
+        // InternalSignalDSL.g:3196:3: ( rule__XSwitchExpression__Group_2_0__0 )
         {
         if ( state.backtracking==0 ) {
            before(grammarAccess.getXSwitchExpressionAccess().getGroup_2_0()); 
         }
-        // InternalSignalDSL.g:3135:3: ( rule__XSwitchExpression__Group_2_0__0 )
-        // InternalSignalDSL.g:3135:4: rule__XSwitchExpression__Group_2_0__0
+        // InternalSignalDSL.g:3197:3: ( rule__XSwitchExpression__Group_2_0__0 )
+        // InternalSignalDSL.g:3197:4: rule__XSwitchExpression__Group_2_0__0
         {
         pushFollow(FOLLOW_2);
         rule__XSwitchExpression__Group_2_0__0();
@@ -65268,21 +66078,21 @@
 
         }
     }
-    // $ANTLR end synpred70_InternalSignalDSL
+    // $ANTLR end synpred71_InternalSignalDSL
 
-    // $ANTLR start synpred74_InternalSignalDSL
-    public final void synpred74_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:3217:2: ( ( ( rule__XVariableDeclaration__Group_2_0__0 ) ) )
-        // InternalSignalDSL.g:3217:2: ( ( rule__XVariableDeclaration__Group_2_0__0 ) )
+    // $ANTLR start synpred75_InternalSignalDSL
+    public final void synpred75_InternalSignalDSL_fragment() throws RecognitionException {   
+        // InternalSignalDSL.g:3279:2: ( ( ( rule__XVariableDeclaration__Group_2_0__0 ) ) )
+        // InternalSignalDSL.g:3279:2: ( ( rule__XVariableDeclaration__Group_2_0__0 ) )
         {
-        // InternalSignalDSL.g:3217:2: ( ( rule__XVariableDeclaration__Group_2_0__0 ) )
-        // InternalSignalDSL.g:3218:3: ( rule__XVariableDeclaration__Group_2_0__0 )
+        // InternalSignalDSL.g:3279:2: ( ( rule__XVariableDeclaration__Group_2_0__0 ) )
+        // InternalSignalDSL.g:3280:3: ( rule__XVariableDeclaration__Group_2_0__0 )
         {
         if ( state.backtracking==0 ) {
            before(grammarAccess.getXVariableDeclarationAccess().getGroup_2_0()); 
         }
-        // InternalSignalDSL.g:3219:3: ( rule__XVariableDeclaration__Group_2_0__0 )
-        // InternalSignalDSL.g:3219:4: rule__XVariableDeclaration__Group_2_0__0
+        // InternalSignalDSL.g:3281:3: ( rule__XVariableDeclaration__Group_2_0__0 )
+        // InternalSignalDSL.g:3281:4: rule__XVariableDeclaration__Group_2_0__0
         {
         pushFollow(FOLLOW_2);
         rule__XVariableDeclaration__Group_2_0__0();
@@ -65298,21 +66108,21 @@
 
         }
     }
-    // $ANTLR end synpred74_InternalSignalDSL
+    // $ANTLR end synpred75_InternalSignalDSL
 
-    // $ANTLR start synpred75_InternalSignalDSL
-    public final void synpred75_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:3238:2: ( ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 ) ) )
-        // InternalSignalDSL.g:3238:2: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 ) )
+    // $ANTLR start synpred76_InternalSignalDSL
+    public final void synpred76_InternalSignalDSL_fragment() throws RecognitionException {   
+        // InternalSignalDSL.g:3300:2: ( ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 ) ) )
+        // InternalSignalDSL.g:3300:2: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 ) )
         {
-        // InternalSignalDSL.g:3238:2: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 ) )
-        // InternalSignalDSL.g:3239:3: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 )
+        // InternalSignalDSL.g:3300:2: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 ) )
+        // InternalSignalDSL.g:3301:3: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 )
         {
         if ( state.backtracking==0 ) {
            before(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsAssignment_3_1_0()); 
         }
-        // InternalSignalDSL.g:3240:3: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 )
-        // InternalSignalDSL.g:3240:4: rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0
+        // InternalSignalDSL.g:3302:3: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 )
+        // InternalSignalDSL.g:3302:4: rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0
         {
         pushFollow(FOLLOW_2);
         rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0();
@@ -65328,21 +66138,21 @@
 
         }
     }
-    // $ANTLR end synpred75_InternalSignalDSL
+    // $ANTLR end synpred76_InternalSignalDSL
 
-    // $ANTLR start synpred81_InternalSignalDSL
-    public final void synpred81_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:3319:2: ( ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 ) ) )
-        // InternalSignalDSL.g:3319:2: ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 ) )
+    // $ANTLR start synpred82_InternalSignalDSL
+    public final void synpred82_InternalSignalDSL_fragment() throws RecognitionException {   
+        // InternalSignalDSL.g:3381:2: ( ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 ) ) )
+        // InternalSignalDSL.g:3381:2: ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 ) )
         {
-        // InternalSignalDSL.g:3319:2: ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 ) )
-        // InternalSignalDSL.g:3320:3: ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 )
+        // InternalSignalDSL.g:3381:2: ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 ) )
+        // InternalSignalDSL.g:3382:3: ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 )
         {
         if ( state.backtracking==0 ) {
            before(grammarAccess.getXConstructorCallAccess().getArgumentsAssignment_4_1_0()); 
         }
-        // InternalSignalDSL.g:3321:3: ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 )
-        // InternalSignalDSL.g:3321:4: rule__XConstructorCall__ArgumentsAssignment_4_1_0
+        // InternalSignalDSL.g:3383:3: ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 )
+        // InternalSignalDSL.g:3383:4: rule__XConstructorCall__ArgumentsAssignment_4_1_0
         {
         pushFollow(FOLLOW_2);
         rule__XConstructorCall__ArgumentsAssignment_4_1_0();
@@ -65358,12 +66168,12 @@
 
         }
     }
-    // $ANTLR end synpred81_InternalSignalDSL
+    // $ANTLR end synpred82_InternalSignalDSL
 
-    // $ANTLR start synpred119_InternalSignalDSL
-    public final void synpred119_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:5973:3: ( rule__XAssignment__Group_1_1__0 )
-        // InternalSignalDSL.g:5973:3: rule__XAssignment__Group_1_1__0
+    // $ANTLR start synpred116_InternalSignalDSL
+    public final void synpred116_InternalSignalDSL_fragment() throws RecognitionException {   
+        // InternalSignalDSL.g:6236:3: ( rule__XAssignment__Group_1_1__0 )
+        // InternalSignalDSL.g:6236:3: rule__XAssignment__Group_1_1__0
         {
         pushFollow(FOLLOW_2);
         rule__XAssignment__Group_1_1__0();
@@ -65373,12 +66183,12 @@
 
         }
     }
-    // $ANTLR end synpred119_InternalSignalDSL
+    // $ANTLR end synpred116_InternalSignalDSL
 
-    // $ANTLR start synpred121_InternalSignalDSL
-    public final void synpred121_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:6324:3: ( rule__XOrExpression__Group_1__0 )
-        // InternalSignalDSL.g:6324:3: rule__XOrExpression__Group_1__0
+    // $ANTLR start synpred118_InternalSignalDSL
+    public final void synpred118_InternalSignalDSL_fragment() throws RecognitionException {   
+        // InternalSignalDSL.g:6587:3: ( rule__XOrExpression__Group_1__0 )
+        // InternalSignalDSL.g:6587:3: rule__XOrExpression__Group_1__0
         {
         pushFollow(FOLLOW_2);
         rule__XOrExpression__Group_1__0();
@@ -65388,15 +66198,60 @@
 
         }
     }
+    // $ANTLR end synpred118_InternalSignalDSL
+
+    // $ANTLR start synpred119_InternalSignalDSL
+    public final void synpred119_InternalSignalDSL_fragment() throws RecognitionException {   
+        // InternalSignalDSL.g:6776:3: ( rule__XAndExpression__Group_1__0 )
+        // InternalSignalDSL.g:6776:3: rule__XAndExpression__Group_1__0
+        {
+        pushFollow(FOLLOW_2);
+        rule__XAndExpression__Group_1__0();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred119_InternalSignalDSL
+
+    // $ANTLR start synpred120_InternalSignalDSL
+    public final void synpred120_InternalSignalDSL_fragment() throws RecognitionException {   
+        // InternalSignalDSL.g:6965:3: ( rule__XEqualityExpression__Group_1__0 )
+        // InternalSignalDSL.g:6965:3: rule__XEqualityExpression__Group_1__0
+        {
+        pushFollow(FOLLOW_2);
+        rule__XEqualityExpression__Group_1__0();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred120_InternalSignalDSL
+
+    // $ANTLR start synpred121_InternalSignalDSL
+    public final void synpred121_InternalSignalDSL_fragment() throws RecognitionException {   
+        // InternalSignalDSL.g:7154:3: ( rule__XRelationalExpression__Alternatives_1 )
+        // InternalSignalDSL.g:7154:3: rule__XRelationalExpression__Alternatives_1
+        {
+        pushFollow(FOLLOW_2);
+        rule__XRelationalExpression__Alternatives_1();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+    }
     // $ANTLR end synpred121_InternalSignalDSL
 
     // $ANTLR start synpred122_InternalSignalDSL
     public final void synpred122_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:6513:3: ( rule__XAndExpression__Group_1__0 )
-        // InternalSignalDSL.g:6513:3: rule__XAndExpression__Group_1__0
+        // InternalSignalDSL.g:7532:3: ( rule__XOtherOperatorExpression__Group_1__0 )
+        // InternalSignalDSL.g:7532:3: rule__XOtherOperatorExpression__Group_1__0
         {
         pushFollow(FOLLOW_2);
-        rule__XAndExpression__Group_1__0();
+        rule__XOtherOperatorExpression__Group_1__0();
 
         state._fsp--;
         if (state.failed) return ;
@@ -65407,11 +66262,11 @@
 
     // $ANTLR start synpred123_InternalSignalDSL
     public final void synpred123_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:6702:3: ( rule__XEqualityExpression__Group_1__0 )
-        // InternalSignalDSL.g:6702:3: rule__XEqualityExpression__Group_1__0
+        // InternalSignalDSL.g:8045:3: ( rule__XAdditiveExpression__Group_1__0 )
+        // InternalSignalDSL.g:8045:3: rule__XAdditiveExpression__Group_1__0
         {
         pushFollow(FOLLOW_2);
-        rule__XEqualityExpression__Group_1__0();
+        rule__XAdditiveExpression__Group_1__0();
 
         state._fsp--;
         if (state.failed) return ;
@@ -65422,11 +66277,11 @@
 
     // $ANTLR start synpred124_InternalSignalDSL
     public final void synpred124_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:6891:3: ( rule__XRelationalExpression__Alternatives_1 )
-        // InternalSignalDSL.g:6891:3: rule__XRelationalExpression__Alternatives_1
+        // InternalSignalDSL.g:8234:3: ( rule__XMultiplicativeExpression__Group_1__0 )
+        // InternalSignalDSL.g:8234:3: rule__XMultiplicativeExpression__Group_1__0
         {
         pushFollow(FOLLOW_2);
-        rule__XRelationalExpression__Alternatives_1();
+        rule__XMultiplicativeExpression__Group_1__0();
 
         state._fsp--;
         if (state.failed) return ;
@@ -65437,11 +66292,11 @@
 
     // $ANTLR start synpred125_InternalSignalDSL
     public final void synpred125_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:7269:3: ( rule__XOtherOperatorExpression__Group_1__0 )
-        // InternalSignalDSL.g:7269:3: rule__XOtherOperatorExpression__Group_1__0
+        // InternalSignalDSL.g:8504:3: ( rule__XCastedExpression__Group_1__0 )
+        // InternalSignalDSL.g:8504:3: rule__XCastedExpression__Group_1__0
         {
         pushFollow(FOLLOW_2);
-        rule__XOtherOperatorExpression__Group_1__0();
+        rule__XCastedExpression__Group_1__0();
 
         state._fsp--;
         if (state.failed) return ;
@@ -65452,11 +66307,11 @@
 
     // $ANTLR start synpred126_InternalSignalDSL
     public final void synpred126_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:7782:3: ( rule__XAdditiveExpression__Group_1__0 )
-        // InternalSignalDSL.g:7782:3: rule__XAdditiveExpression__Group_1__0
+        // InternalSignalDSL.g:8693:3: ( rule__XPostfixOperation__Group_1__0 )
+        // InternalSignalDSL.g:8693:3: rule__XPostfixOperation__Group_1__0
         {
         pushFollow(FOLLOW_2);
-        rule__XAdditiveExpression__Group_1__0();
+        rule__XPostfixOperation__Group_1__0();
 
         state._fsp--;
         if (state.failed) return ;
@@ -65467,11 +66322,11 @@
 
     // $ANTLR start synpred127_InternalSignalDSL
     public final void synpred127_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:7971:3: ( rule__XMultiplicativeExpression__Group_1__0 )
-        // InternalSignalDSL.g:7971:3: rule__XMultiplicativeExpression__Group_1__0
+        // InternalSignalDSL.g:8828:3: ( rule__XMemberFeatureCall__Alternatives_1 )
+        // InternalSignalDSL.g:8828:3: rule__XMemberFeatureCall__Alternatives_1
         {
         pushFollow(FOLLOW_2);
-        rule__XMultiplicativeExpression__Group_1__0();
+        rule__XMemberFeatureCall__Alternatives_1();
 
         state._fsp--;
         if (state.failed) return ;
@@ -65480,28 +66335,13 @@
     }
     // $ANTLR end synpred127_InternalSignalDSL
 
-    // $ANTLR start synpred128_InternalSignalDSL
-    public final void synpred128_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:8241:3: ( rule__XCastedExpression__Group_1__0 )
-        // InternalSignalDSL.g:8241:3: rule__XCastedExpression__Group_1__0
-        {
-        pushFollow(FOLLOW_2);
-        rule__XCastedExpression__Group_1__0();
-
-        state._fsp--;
-        if (state.failed) return ;
-
-        }
-    }
-    // $ANTLR end synpred128_InternalSignalDSL
-
     // $ANTLR start synpred129_InternalSignalDSL
     public final void synpred129_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:8430:3: ( rule__XPostfixOperation__Group_1__0 )
-        // InternalSignalDSL.g:8430:3: rule__XPostfixOperation__Group_1__0
+        // InternalSignalDSL.g:9126:3: ( rule__XMemberFeatureCall__Group_1_1_3__0 )
+        // InternalSignalDSL.g:9126:3: rule__XMemberFeatureCall__Group_1_1_3__0
         {
         pushFollow(FOLLOW_2);
-        rule__XPostfixOperation__Group_1__0();
+        rule__XMemberFeatureCall__Group_1_1_3__0();
 
         state._fsp--;
         if (state.failed) return ;
@@ -65512,38 +66352,8 @@
 
     // $ANTLR start synpred130_InternalSignalDSL
     public final void synpred130_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:8565:3: ( rule__XMemberFeatureCall__Alternatives_1 )
-        // InternalSignalDSL.g:8565:3: rule__XMemberFeatureCall__Alternatives_1
-        {
-        pushFollow(FOLLOW_2);
-        rule__XMemberFeatureCall__Alternatives_1();
-
-        state._fsp--;
-        if (state.failed) return ;
-
-        }
-    }
-    // $ANTLR end synpred130_InternalSignalDSL
-
-    // $ANTLR start synpred132_InternalSignalDSL
-    public final void synpred132_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:8863:3: ( rule__XMemberFeatureCall__Group_1_1_3__0 )
-        // InternalSignalDSL.g:8863: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 synpred132_InternalSignalDSL
-
-    // $ANTLR start synpred133_InternalSignalDSL
-    public final void synpred133_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:8889:3: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 )
-        // InternalSignalDSL.g:8889:3: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4
+        // InternalSignalDSL.g:9152:3: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 )
+        // InternalSignalDSL.g:9152:3: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4
         {
         pushFollow(FOLLOW_2);
         rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4();
@@ -65553,12 +66363,12 @@
 
         }
     }
-    // $ANTLR end synpred133_InternalSignalDSL
+    // $ANTLR end synpred130_InternalSignalDSL
 
-    // $ANTLR start synpred141_InternalSignalDSL
-    public final void synpred141_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:9862:3: ( rule__XClosure__Group_1__0 )
-        // InternalSignalDSL.g:9862:3: rule__XClosure__Group_1__0
+    // $ANTLR start synpred138_InternalSignalDSL
+    public final void synpred138_InternalSignalDSL_fragment() throws RecognitionException {   
+        // InternalSignalDSL.g:10125:3: ( rule__XClosure__Group_1__0 )
+        // InternalSignalDSL.g:10125:3: rule__XClosure__Group_1__0
         {
         pushFollow(FOLLOW_2);
         rule__XClosure__Group_1__0();
@@ -65568,12 +66378,12 @@
 
         }
     }
-    // $ANTLR end synpred141_InternalSignalDSL
+    // $ANTLR end synpred138_InternalSignalDSL
 
-    // $ANTLR start synpred148_InternalSignalDSL
-    public final void synpred148_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:10833:3: ( rule__XIfExpression__Group_6__0 )
-        // InternalSignalDSL.g:10833:3: rule__XIfExpression__Group_6__0
+    // $ANTLR start synpred145_InternalSignalDSL
+    public final void synpred145_InternalSignalDSL_fragment() throws RecognitionException {   
+        // InternalSignalDSL.g:11096:3: ( rule__XIfExpression__Group_6__0 )
+        // InternalSignalDSL.g:11096:3: rule__XIfExpression__Group_6__0
         {
         pushFollow(FOLLOW_2);
         rule__XIfExpression__Group_6__0();
@@ -65583,12 +66393,12 @@
 
         }
     }
-    // $ANTLR end synpred148_InternalSignalDSL
+    // $ANTLR end synpred145_InternalSignalDSL
 
-    // $ANTLR start synpred151_InternalSignalDSL
-    public final void synpred151_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:11293:3: ( rule__XSwitchExpression__Group_2_1_0__0 )
-        // InternalSignalDSL.g:11293:3: rule__XSwitchExpression__Group_2_1_0__0
+    // $ANTLR start synpred148_InternalSignalDSL
+    public final void synpred148_InternalSignalDSL_fragment() throws RecognitionException {   
+        // InternalSignalDSL.g:11556:3: ( rule__XSwitchExpression__Group_2_1_0__0 )
+        // InternalSignalDSL.g:11556:3: rule__XSwitchExpression__Group_2_1_0__0
         {
         pushFollow(FOLLOW_2);
         rule__XSwitchExpression__Group_2_1_0__0();
@@ -65598,12 +66408,12 @@
 
         }
     }
-    // $ANTLR end synpred151_InternalSignalDSL
+    // $ANTLR end synpred148_InternalSignalDSL
 
-    // $ANTLR start synpred164_InternalSignalDSL
-    public final void synpred164_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:13426:3: ( rule__XFeatureCall__Group_3__0 )
-        // InternalSignalDSL.g:13426:3: rule__XFeatureCall__Group_3__0
+    // $ANTLR start synpred161_InternalSignalDSL
+    public final void synpred161_InternalSignalDSL_fragment() throws RecognitionException {   
+        // InternalSignalDSL.g:13689:3: ( rule__XFeatureCall__Group_3__0 )
+        // InternalSignalDSL.g:13689:3: rule__XFeatureCall__Group_3__0
         {
         pushFollow(FOLLOW_2);
         rule__XFeatureCall__Group_3__0();
@@ -65613,12 +66423,12 @@
 
         }
     }
-    // $ANTLR end synpred164_InternalSignalDSL
+    // $ANTLR end synpred161_InternalSignalDSL
 
-    // $ANTLR start synpred165_InternalSignalDSL
-    public final void synpred165_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:13452:3: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_4 )
-        // InternalSignalDSL.g:13452:3: rule__XFeatureCall__FeatureCallArgumentsAssignment_4
+    // $ANTLR start synpred162_InternalSignalDSL
+    public final void synpred162_InternalSignalDSL_fragment() throws RecognitionException {   
+        // InternalSignalDSL.g:13715:3: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_4 )
+        // InternalSignalDSL.g:13715:3: rule__XFeatureCall__FeatureCallArgumentsAssignment_4
         {
         pushFollow(FOLLOW_2);
         rule__XFeatureCall__FeatureCallArgumentsAssignment_4();
@@ -65628,12 +66438,12 @@
 
         }
     }
-    // $ANTLR end synpred165_InternalSignalDSL
+    // $ANTLR end synpred162_InternalSignalDSL
 
-    // $ANTLR start synpred169_InternalSignalDSL
-    public final void synpred169_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:13912:3: ( rule__XConstructorCall__Group_3__0 )
-        // InternalSignalDSL.g:13912:3: rule__XConstructorCall__Group_3__0
+    // $ANTLR start synpred166_InternalSignalDSL
+    public final void synpred166_InternalSignalDSL_fragment() throws RecognitionException {   
+        // InternalSignalDSL.g:14175:3: ( rule__XConstructorCall__Group_3__0 )
+        // InternalSignalDSL.g:14175:3: rule__XConstructorCall__Group_3__0
         {
         pushFollow(FOLLOW_2);
         rule__XConstructorCall__Group_3__0();
@@ -65643,12 +66453,12 @@
 
         }
     }
-    // $ANTLR end synpred169_InternalSignalDSL
+    // $ANTLR end synpred166_InternalSignalDSL
 
-    // $ANTLR start synpred170_InternalSignalDSL
-    public final void synpred170_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:13939:3: ( rule__XConstructorCall__Group_4__0 )
-        // InternalSignalDSL.g:13939:3: rule__XConstructorCall__Group_4__0
+    // $ANTLR start synpred167_InternalSignalDSL
+    public final void synpred167_InternalSignalDSL_fragment() throws RecognitionException {   
+        // InternalSignalDSL.g:14202:3: ( rule__XConstructorCall__Group_4__0 )
+        // InternalSignalDSL.g:14202:3: rule__XConstructorCall__Group_4__0
         {
         pushFollow(FOLLOW_2);
         rule__XConstructorCall__Group_4__0();
@@ -65658,12 +66468,12 @@
 
         }
     }
-    // $ANTLR end synpred170_InternalSignalDSL
+    // $ANTLR end synpred167_InternalSignalDSL
 
-    // $ANTLR start synpred171_InternalSignalDSL
-    public final void synpred171_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:13965:3: ( rule__XConstructorCall__ArgumentsAssignment_5 )
-        // InternalSignalDSL.g:13965:3: rule__XConstructorCall__ArgumentsAssignment_5
+    // $ANTLR start synpred168_InternalSignalDSL
+    public final void synpred168_InternalSignalDSL_fragment() throws RecognitionException {   
+        // InternalSignalDSL.g:14228:3: ( rule__XConstructorCall__ArgumentsAssignment_5 )
+        // InternalSignalDSL.g:14228:3: rule__XConstructorCall__ArgumentsAssignment_5
         {
         pushFollow(FOLLOW_2);
         rule__XConstructorCall__ArgumentsAssignment_5();
@@ -65673,12 +66483,12 @@
 
         }
     }
-    // $ANTLR end synpred171_InternalSignalDSL
+    // $ANTLR end synpred168_InternalSignalDSL
 
-    // $ANTLR start synpred176_InternalSignalDSL
-    public final void synpred176_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:14856:3: ( rule__XReturnExpression__ExpressionAssignment_2 )
-        // InternalSignalDSL.g:14856:3: rule__XReturnExpression__ExpressionAssignment_2
+    // $ANTLR start synpred173_InternalSignalDSL
+    public final void synpred173_InternalSignalDSL_fragment() throws RecognitionException {   
+        // InternalSignalDSL.g:15119:3: ( rule__XReturnExpression__ExpressionAssignment_2 )
+        // InternalSignalDSL.g:15119:3: rule__XReturnExpression__ExpressionAssignment_2
         {
         pushFollow(FOLLOW_2);
         rule__XReturnExpression__ExpressionAssignment_2();
@@ -65688,12 +66498,12 @@
 
         }
     }
-    // $ANTLR end synpred176_InternalSignalDSL
+    // $ANTLR end synpred173_InternalSignalDSL
 
-    // $ANTLR start synpred177_InternalSignalDSL
-    public final void synpred177_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:14998:4: ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )
-        // InternalSignalDSL.g:14998:4: rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0
+    // $ANTLR start synpred174_InternalSignalDSL
+    public final void synpred174_InternalSignalDSL_fragment() throws RecognitionException {   
+        // InternalSignalDSL.g:15261:4: ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )
+        // InternalSignalDSL.g:15261:4: rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0
         {
         pushFollow(FOLLOW_2);
         rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0();
@@ -65703,12 +66513,12 @@
 
         }
     }
-    // $ANTLR end synpred177_InternalSignalDSL
+    // $ANTLR end synpred174_InternalSignalDSL
 
-    // $ANTLR start synpred178_InternalSignalDSL
-    public final void synpred178_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:15025:3: ( rule__XTryCatchFinallyExpression__Group_3_0_1__0 )
-        // InternalSignalDSL.g:15025:3: rule__XTryCatchFinallyExpression__Group_3_0_1__0
+    // $ANTLR start synpred175_InternalSignalDSL
+    public final void synpred175_InternalSignalDSL_fragment() throws RecognitionException {   
+        // InternalSignalDSL.g:15288:3: ( rule__XTryCatchFinallyExpression__Group_3_0_1__0 )
+        // InternalSignalDSL.g:15288:3: rule__XTryCatchFinallyExpression__Group_3_0_1__0
         {
         pushFollow(FOLLOW_2);
         rule__XTryCatchFinallyExpression__Group_3_0_1__0();
@@ -65718,12 +66528,12 @@
 
         }
     }
-    // $ANTLR end synpred178_InternalSignalDSL
+    // $ANTLR end synpred175_InternalSignalDSL
 
-    // $ANTLR start synpred179_InternalSignalDSL
-    public final void synpred179_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:15538:3: ( rule__QualifiedName__Group_1__0 )
-        // InternalSignalDSL.g:15538:3: rule__QualifiedName__Group_1__0
+    // $ANTLR start synpred176_InternalSignalDSL
+    public final void synpred176_InternalSignalDSL_fragment() throws RecognitionException {   
+        // InternalSignalDSL.g:15801:3: ( rule__QualifiedName__Group_1__0 )
+        // InternalSignalDSL.g:15801:3: rule__QualifiedName__Group_1__0
         {
         pushFollow(FOLLOW_2);
         rule__QualifiedName__Group_1__0();
@@ -65733,12 +66543,12 @@
 
         }
     }
-    // $ANTLR end synpred179_InternalSignalDSL
+    // $ANTLR end synpred176_InternalSignalDSL
 
-    // $ANTLR start synpred181_InternalSignalDSL
-    public final void synpred181_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:15754:3: ( rule__JvmTypeReference__Group_0_1__0 )
-        // InternalSignalDSL.g:15754:3: rule__JvmTypeReference__Group_0_1__0
+    // $ANTLR start synpred178_InternalSignalDSL
+    public final void synpred178_InternalSignalDSL_fragment() throws RecognitionException {   
+        // InternalSignalDSL.g:16017:3: ( rule__JvmTypeReference__Group_0_1__0 )
+        // InternalSignalDSL.g:16017:3: rule__JvmTypeReference__Group_0_1__0
         {
         pushFollow(FOLLOW_2);
         rule__JvmTypeReference__Group_0_1__0();
@@ -65748,12 +66558,12 @@
 
         }
     }
-    // $ANTLR end synpred181_InternalSignalDSL
+    // $ANTLR end synpred178_InternalSignalDSL
 
-    // $ANTLR start synpred185_InternalSignalDSL
-    public final void synpred185_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:16213:3: ( rule__JvmParameterizedTypeReference__Group_1__0 )
-        // InternalSignalDSL.g:16213:3: rule__JvmParameterizedTypeReference__Group_1__0
+    // $ANTLR start synpred182_InternalSignalDSL
+    public final void synpred182_InternalSignalDSL_fragment() throws RecognitionException {   
+        // InternalSignalDSL.g:16476:3: ( rule__JvmParameterizedTypeReference__Group_1__0 )
+        // InternalSignalDSL.g:16476:3: rule__JvmParameterizedTypeReference__Group_1__0
         {
         pushFollow(FOLLOW_2);
         rule__JvmParameterizedTypeReference__Group_1__0();
@@ -65763,12 +66573,12 @@
 
         }
     }
-    // $ANTLR end synpred185_InternalSignalDSL
+    // $ANTLR end synpred182_InternalSignalDSL
 
-    // $ANTLR start synpred187_InternalSignalDSL
-    public final void synpred187_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:16348:3: ( rule__JvmParameterizedTypeReference__Group_1_4__0 )
-        // InternalSignalDSL.g:16348:3: rule__JvmParameterizedTypeReference__Group_1_4__0
+    // $ANTLR start synpred184_InternalSignalDSL
+    public final void synpred184_InternalSignalDSL_fragment() throws RecognitionException {   
+        // InternalSignalDSL.g:16611:3: ( rule__JvmParameterizedTypeReference__Group_1_4__0 )
+        // InternalSignalDSL.g:16611:3: rule__JvmParameterizedTypeReference__Group_1_4__0
         {
         pushFollow(FOLLOW_2);
         rule__JvmParameterizedTypeReference__Group_1_4__0();
@@ -65778,12 +66588,12 @@
 
         }
     }
-    // $ANTLR end synpred187_InternalSignalDSL
+    // $ANTLR end synpred184_InternalSignalDSL
 
-    // $ANTLR start synpred188_InternalSignalDSL
-    public final void synpred188_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:16483:3: ( rule__JvmParameterizedTypeReference__Group_1_4_2__0 )
-        // InternalSignalDSL.g:16483:3: rule__JvmParameterizedTypeReference__Group_1_4_2__0
+    // $ANTLR start synpred185_InternalSignalDSL
+    public final void synpred185_InternalSignalDSL_fragment() throws RecognitionException {   
+        // InternalSignalDSL.g:16746:3: ( rule__JvmParameterizedTypeReference__Group_1_4_2__0 )
+        // InternalSignalDSL.g:16746:3: rule__JvmParameterizedTypeReference__Group_1_4_2__0
         {
         pushFollow(FOLLOW_2);
         rule__JvmParameterizedTypeReference__Group_1_4_2__0();
@@ -65793,7 +66603,7 @@
 
         }
     }
-    // $ANTLR end synpred188_InternalSignalDSL
+    // $ANTLR end synpred185_InternalSignalDSL
 
     // Delegated rules
 
@@ -65839,11 +66649,11 @@
         state.failed=false;
         return success;
     }
-    public final boolean synpred179_InternalSignalDSL() {
+    public final boolean synpred118_InternalSignalDSL() {
         state.backtracking++;
         int start = input.mark();
         try {
-            synpred179_InternalSignalDSL_fragment(); // can never throw exception
+            synpred118_InternalSignalDSL_fragment(); // can never throw exception
         } catch (RecognitionException re) {
             System.err.println("impossible: "+re);
         }
@@ -65867,6 +66677,34 @@
         state.failed=false;
         return success;
     }
+    public final boolean synpred120_InternalSignalDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred120_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 synpred138_InternalSignalDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred138_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();
@@ -65881,34 +66719,6 @@
         state.failed=false;
         return success;
     }
-    public final boolean synpred128_InternalSignalDSL() {
-        state.backtracking++;
-        int start = input.mark();
-        try {
-            synpred128_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 synpred34_InternalSignalDSL() {
-        state.backtracking++;
-        int start = input.mark();
-        try {
-            synpred34_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 synpred122_InternalSignalDSL() {
         state.backtracking++;
         int start = input.mark();
@@ -65923,11 +66733,11 @@
         state.failed=false;
         return success;
     }
-    public final boolean synpred132_InternalSignalDSL() {
+    public final boolean synpred174_InternalSignalDSL() {
         state.backtracking++;
         int start = input.mark();
         try {
-            synpred132_InternalSignalDSL_fragment(); // can never throw exception
+            synpred174_InternalSignalDSL_fragment(); // can never throw exception
         } catch (RecognitionException re) {
             System.err.println("impossible: "+re);
         }
@@ -65937,11 +66747,25 @@
         state.failed=false;
         return success;
     }
-    public final boolean synpred151_InternalSignalDSL() {
+    public final boolean synpred145_InternalSignalDSL() {
         state.backtracking++;
         int start = input.mark();
         try {
-            synpred151_InternalSignalDSL_fragment(); // can never throw exception
+            synpred145_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 synpred184_InternalSignalDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred184_InternalSignalDSL_fragment(); // can never throw exception
         } catch (RecognitionException re) {
             System.err.println("impossible: "+re);
         }
@@ -65993,11 +66817,11 @@
         state.failed=false;
         return success;
     }
-    public final boolean synpred164_InternalSignalDSL() {
+    public final boolean synpred161_InternalSignalDSL() {
         state.backtracking++;
         int start = input.mark();
         try {
-            synpred164_InternalSignalDSL_fragment(); // can never throw exception
+            synpred161_InternalSignalDSL_fragment(); // can never throw exception
         } catch (RecognitionException re) {
             System.err.println("impossible: "+re);
         }
@@ -66007,11 +66831,11 @@
         state.failed=false;
         return success;
     }
-    public final boolean synpred165_InternalSignalDSL() {
+    public final boolean synpred168_InternalSignalDSL() {
         state.backtracking++;
         int start = input.mark();
         try {
-            synpred165_InternalSignalDSL_fragment(); // can never throw exception
+            synpred168_InternalSignalDSL_fragment(); // can never throw exception
         } catch (RecognitionException re) {
             System.err.println("impossible: "+re);
         }
@@ -66021,67 +66845,11 @@
         state.failed=false;
         return success;
     }
-    public final boolean synpred181_InternalSignalDSL() {
+    public final boolean synpred10_InternalSignalDSL() {
         state.backtracking++;
         int start = input.mark();
         try {
-            synpred181_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 synpred171_InternalSignalDSL() {
-        state.backtracking++;
-        int start = input.mark();
-        try {
-            synpred171_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 synpred188_InternalSignalDSL() {
-        state.backtracking++;
-        int start = input.mark();
-        try {
-            synpred188_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 synpred70_InternalSignalDSL() {
-        state.backtracking++;
-        int start = input.mark();
-        try {
-            synpred70_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 synpred141_InternalSignalDSL() {
-        state.backtracking++;
-        int start = input.mark();
-        try {
-            synpred141_InternalSignalDSL_fragment(); // can never throw exception
+            synpred10_InternalSignalDSL_fragment(); // can never throw exception
         } catch (RecognitionException re) {
             System.err.println("impossible: "+re);
         }
@@ -66105,11 +66873,11 @@
         state.failed=false;
         return success;
     }
-    public final boolean synpred81_InternalSignalDSL() {
+    public final boolean synpred182_InternalSignalDSL() {
         state.backtracking++;
         int start = input.mark();
         try {
-            synpred81_InternalSignalDSL_fragment(); // can never throw exception
+            synpred182_InternalSignalDSL_fragment(); // can never throw exception
         } catch (RecognitionException re) {
             System.err.println("impossible: "+re);
         }
@@ -66119,11 +66887,11 @@
         state.failed=false;
         return success;
     }
-    public final boolean synpred56_InternalSignalDSL() {
+    public final boolean synpred49_InternalSignalDSL() {
         state.backtracking++;
         int start = input.mark();
         try {
-            synpred56_InternalSignalDSL_fragment(); // can never throw exception
+            synpred49_InternalSignalDSL_fragment(); // can never throw exception
         } catch (RecognitionException re) {
             System.err.println("impossible: "+re);
         }
@@ -66161,6 +66929,20 @@
         state.failed=false;
         return success;
     }
+    public final boolean synpred36_InternalSignalDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred36_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 synpred185_InternalSignalDSL() {
         state.backtracking++;
         int start = input.mark();
@@ -66189,11 +66971,11 @@
         state.failed=false;
         return success;
     }
-    public final boolean synpred74_InternalSignalDSL() {
+    public final boolean synpred162_InternalSignalDSL() {
         state.backtracking++;
         int start = input.mark();
         try {
-            synpred74_InternalSignalDSL_fragment(); // can never throw exception
+            synpred162_InternalSignalDSL_fragment(); // can never throw exception
         } catch (RecognitionException re) {
             System.err.println("impossible: "+re);
         }
@@ -66203,11 +66985,11 @@
         state.failed=false;
         return success;
     }
-    public final boolean synpred177_InternalSignalDSL() {
+    public final boolean synpred175_InternalSignalDSL() {
         state.backtracking++;
         int start = input.mark();
         try {
-            synpred177_InternalSignalDSL_fragment(); // can never throw exception
+            synpred175_InternalSignalDSL_fragment(); // can never throw exception
         } catch (RecognitionException re) {
             System.err.println("impossible: "+re);
         }
@@ -66217,11 +66999,11 @@
         state.failed=false;
         return success;
     }
-    public final boolean synpred187_InternalSignalDSL() {
+    public final boolean synpred71_InternalSignalDSL() {
         state.backtracking++;
         int start = input.mark();
         try {
-            synpred187_InternalSignalDSL_fragment(); // can never throw exception
+            synpred71_InternalSignalDSL_fragment(); // can never throw exception
         } catch (RecognitionException re) {
             System.err.println("impossible: "+re);
         }
@@ -66231,11 +67013,11 @@
         state.failed=false;
         return success;
     }
-    public final boolean synpred7_InternalSignalDSL() {
+    public final boolean synpred76_InternalSignalDSL() {
         state.backtracking++;
         int start = input.mark();
         try {
-            synpred7_InternalSignalDSL_fragment(); // can never throw exception
+            synpred76_InternalSignalDSL_fragment(); // can never throw exception
         } catch (RecognitionException re) {
             System.err.println("impossible: "+re);
         }
@@ -66245,11 +67027,25 @@
         state.failed=false;
         return success;
     }
-    public final boolean synpred170_InternalSignalDSL() {
+    public final boolean synpred167_InternalSignalDSL() {
         state.backtracking++;
         int start = input.mark();
         try {
-            synpred170_InternalSignalDSL_fragment(); // can never throw exception
+            synpred167_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 synpred116_InternalSignalDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred116_InternalSignalDSL_fragment(); // can never throw exception
         } catch (RecognitionException re) {
             System.err.println("impossible: "+re);
         }
@@ -66273,48 +67069,6 @@
         state.failed=false;
         return success;
     }
-    public final boolean synpred169_InternalSignalDSL() {
-        state.backtracking++;
-        int start = input.mark();
-        try {
-            synpred169_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 synpred133_InternalSignalDSL() {
-        state.backtracking++;
-        int start = input.mark();
-        try {
-            synpred133_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 synpred48_InternalSignalDSL() {
-        state.backtracking++;
-        int start = input.mark();
-        try {
-            synpred48_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 synpred119_InternalSignalDSL() {
         state.backtracking++;
         int start = input.mark();
@@ -66357,6 +67111,48 @@
         state.failed=false;
         return success;
     }
+    public final boolean synpred58_InternalSignalDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred58_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 synpred166_InternalSignalDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred166_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 synpred82_InternalSignalDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred82_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 synpred129_InternalSignalDSL() {
         state.backtracking++;
         int start = input.mark();
@@ -66371,47 +67167,61 @@
         state.failed=false;
         return success;
     }
+    public final boolean synpred173_InternalSignalDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred173_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;
+    }
 
 
-    protected DFA3 dfa3 = new DFA3(this);
-    protected DFA5 dfa5 = new DFA5(this);
+    protected DFA4 dfa4 = new DFA4(this);
     protected DFA6 dfa6 = new DFA6(this);
     protected DFA7 dfa7 = new DFA7(this);
-    protected DFA14 dfa14 = new DFA14(this);
-    protected DFA22 dfa22 = new DFA22(this);
-    protected DFA25 dfa25 = new DFA25(this);
+    protected DFA8 dfa8 = new DFA8(this);
+    protected DFA15 dfa15 = new DFA15(this);
+    protected DFA23 dfa23 = new DFA23(this);
     protected DFA26 dfa26 = new DFA26(this);
-    protected DFA29 dfa29 = new DFA29(this);
-    protected DFA34 dfa34 = new DFA34(this);
-    protected DFA37 dfa37 = new DFA37(this);
-    protected DFA65 dfa65 = new DFA65(this);
-    protected DFA71 dfa71 = new DFA71(this);
-    protected DFA78 dfa78 = new DFA78(this);
-    protected DFA79 dfa79 = new DFA79(this);
-    protected DFA87 dfa87 = new DFA87(this);
-    protected DFA97 dfa97 = new DFA97(this);
-    protected DFA110 dfa110 = new DFA110(this);
-    protected DFA111 dfa111 = new DFA111(this);
-    protected DFA115 dfa115 = new DFA115(this);
-    protected DFA116 dfa116 = new DFA116(this);
-    protected DFA117 dfa117 = new DFA117(this);
-    protected DFA122 dfa122 = new DFA122(this);
-    protected DFA131 dfa131 = new DFA131(this);
+    protected DFA27 dfa27 = new DFA27(this);
+    protected DFA30 dfa30 = new DFA30(this);
+    protected DFA35 dfa35 = new DFA35(this);
+    protected DFA38 dfa38 = new DFA38(this);
+    protected DFA68 dfa68 = new DFA68(this);
+    protected DFA74 dfa74 = new DFA74(this);
+    protected DFA81 dfa81 = new DFA81(this);
+    protected DFA82 dfa82 = new DFA82(this);
+    protected DFA90 dfa90 = new DFA90(this);
+    protected DFA100 dfa100 = new DFA100(this);
+    protected DFA113 dfa113 = new DFA113(this);
+    protected DFA114 dfa114 = new DFA114(this);
+    protected DFA118 dfa118 = new DFA118(this);
+    protected DFA119 dfa119 = new DFA119(this);
+    protected DFA120 dfa120 = new DFA120(this);
+    protected DFA125 dfa125 = new DFA125(this);
     protected DFA134 dfa134 = new DFA134(this);
+    protected DFA137 dfa137 = new DFA137(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\147\1\uffff\1\112\1\uffff\1\44\1\uffff\1\112\1\uffff";
+    static final String dfa_4s = "\1\145\1\uffff\1\110\1\uffff\1\44\1\uffff\1\110\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\70\uffff\1\3",
+            "\1\2\51\uffff\1\1\66\uffff\1\3",
             "",
-            "\1\4\3\uffff\1\5\23\uffff\1\5\6\uffff\1\5",
+            "\1\4\3\uffff\1\5\17\uffff\1\5\10\uffff\1\5",
             "",
             "\1\6\37\uffff\1\7",
             "",
-            "\1\4\3\uffff\1\5\23\uffff\1\5\6\uffff\1\5",
+            "\1\4\3\uffff\1\5\17\uffff\1\5\10\uffff\1\5",
             ""
     };
 
@@ -66423,11 +67233,11 @@
     static final short[] dfa_6 = DFA.unpackEncodedString(dfa_6s);
     static final short[][] dfa_7 = unpackEncodedStringArray(dfa_7s);
 
-    class DFA3 extends DFA {
+    class DFA4 extends DFA {
 
-        public DFA3(BaseRecognizer recognizer) {
+        public DFA4(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 3;
+            this.decisionNumber = 4;
             this.eot = dfa_1;
             this.eof = dfa_2;
             this.min = dfa_3;
@@ -66437,16 +67247,16 @@
             this.transition = dfa_7;
         }
         public String getDescription() {
-            return "2336: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 "2398: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\154\1\0\41\uffff";
+    static final String dfa_10s = "\1\152\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\21\uffff\1\2\3\uffff\1\2\2\uffff\2\2\3\uffff\2\2\2\uffff\1\2\1\uffff\1\2\3\uffff\10\2\1\uffff\1\2\10\uffff\1\2",
+            "\1\1\4\2\22\uffff\1\2\6\uffff\2\2\4\uffff\1\2\4\uffff\6\2\15\uffff\1\2\3\uffff\1\2\4\uffff\2\2\3\uffff\2\2\2\uffff\1\2\1\uffff\1\2\3\uffff\10\2\1\uffff\1\2\10\uffff\1\2",
             "\1\uffff",
             "",
             "",
@@ -66490,11 +67300,11 @@
     static final short[] dfa_12 = DFA.unpackEncodedString(dfa_12s);
     static final short[][] dfa_13 = unpackEncodedStringArray(dfa_13s);
 
-    class DFA5 extends DFA {
+    class DFA6 extends DFA {
 
-        public DFA5(BaseRecognizer recognizer) {
+        public DFA6(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 5;
+            this.decisionNumber = 6;
             this.eot = dfa_8;
             this.eof = dfa_8;
             this.min = dfa_9;
@@ -66504,37 +67314,37 @@
             this.transition = dfa_13;
         }
         public String getDescription() {
-            return "2390:1: rule__XAnnotation__Alternatives_3_1 : ( ( ( rule__XAnnotation__Group_3_1_0__0 ) ) | ( ( rule__XAnnotation__ValueAssignment_3_1_1 ) ) );";
+            return "2452: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 LA5_1 = input.LA(1);
+                        int LA6_1 = input.LA(1);
 
                          
-                        int index5_1 = input.index();
+                        int index6_1 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred7_InternalSignalDSL()) ) {s = 34;}
+                        if ( (synpred8_InternalSignalDSL()) ) {s = 34;}
 
                         else if ( (true) ) {s = 2;}
 
                          
-                        input.seek(index5_1);
+                        input.seek(index6_1);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 5, _s, input);
+                new NoViableAltException(getDescription(), 6, _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\21\uffff\1\2\3\uffff\1\2\2\uffff\2\2\3\uffff\1\1\1\2\2\uffff\1\2\1\uffff\1\2\3\uffff\10\2\1\uffff\1\2\10\uffff\1\2",
+            "\5\2\22\uffff\1\2\6\uffff\2\2\4\uffff\1\2\4\uffff\6\2\15\uffff\1\2\3\uffff\1\2\4\uffff\2\2\3\uffff\1\1\1\2\2\uffff\1\2\1\uffff\1\2\3\uffff\10\2\1\uffff\1\2\10\uffff\1\2",
             "\1\uffff",
             "",
             "",
@@ -66572,50 +67382,6 @@
     };
     static final short[][] dfa_14 = unpackEncodedStringArray(dfa_14s);
 
-    class DFA6 extends DFA {
-
-        public DFA6(BaseRecognizer recognizer) {
-            this.recognizer = recognizer;
-            this.decisionNumber = 6;
-            this.eot = dfa_8;
-            this.eof = dfa_8;
-            this.min = dfa_9;
-            this.max = dfa_10;
-            this.accept = dfa_11;
-            this.special = dfa_12;
-            this.transition = dfa_14;
-        }
-        public String getDescription() {
-            return "2411: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 LA6_1 = input.LA(1);
-
-                         
-                        int index6_1 = input.index();
-                        input.rewind();
-                        s = -1;
-                        if ( (synpred8_InternalSignalDSL()) ) {s = 34;}
-
-                        else if ( (true) ) {s = 2;}
-
-                         
-                        input.seek(index6_1);
-                        if ( s>=0 ) return s;
-                        break;
-            }
-            if (state.backtracking>0) {state.failed=true; return -1;}
-            NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 6, _s, input);
-            error(nvae);
-            throw nvae;
-        }
-    }
-
     class DFA7 extends DFA {
 
         public DFA7(BaseRecognizer recognizer) {
@@ -66630,7 +67396,7 @@
             this.transition = dfa_14;
         }
         public String getDescription() {
-            return "2432:1: rule__XAnnotationElementValue__Alternatives : ( ( ( rule__XAnnotationElementValue__Group_0__0 ) ) | ( ruleXAnnotationOrExpression ) );";
+            return "2473: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;
@@ -66659,6 +67425,50 @@
             throw nvae;
         }
     }
+
+    class DFA8 extends DFA {
+
+        public DFA8(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 8;
+            this.eot = dfa_8;
+            this.eof = dfa_8;
+            this.min = dfa_9;
+            this.max = dfa_10;
+            this.accept = dfa_11;
+            this.special = dfa_12;
+            this.transition = dfa_14;
+        }
+        public String getDescription() {
+            return "2494: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 LA8_1 = input.LA(1);
+
+                         
+                        int index8_1 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred10_InternalSignalDSL()) ) {s = 34;}
+
+                        else if ( (true) ) {s = 2;}
+
+                         
+                        input.seek(index8_1);
+                        if ( s>=0 ) return s;
+                        break;
+            }
+            if (state.backtracking>0) {state.failed=true; return -1;}
+            NoViableAltException nvae =
+                new NoViableAltException(getDescription(), 8, _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";
@@ -66685,11 +67495,11 @@
     static final short[] dfa_19 = DFA.unpackEncodedString(dfa_19s);
     static final short[][] dfa_20 = unpackEncodedStringArray(dfa_20s);
 
-    class DFA14 extends DFA {
+    class DFA15 extends DFA {
 
-        public DFA14(BaseRecognizer recognizer) {
+        public DFA15(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 14;
+            this.decisionNumber = 15;
             this.eot = dfa_15;
             this.eof = dfa_15;
             this.min = dfa_16;
@@ -66699,25 +67509,25 @@
             this.transition = dfa_20;
         }
         public String getDescription() {
-            return "2633:1: rule__OpOther__Alternatives : ( ( '->' ) | ( '..<' ) | ( ( rule__OpOther__Group_2__0 ) ) | ( '..' ) | ( '=>' ) | ( ( rule__OpOther__Group_5__0 ) ) | ( ( rule__OpOther__Group_6__0 ) ) | ( '<>' ) | ( '?:' ) );";
+            return "2695: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\151\2\61\1\uffff\5\154\1\uffff";
+    static final String dfa_24s = "\1\147\2\61\1\uffff\5\152\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\74\uffff\1\2\1\3",
+            "\1\1\72\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",
             "",
-            "\5\3\4\uffff\1\11\45\3\21\uffff\2\3\2\uffff\1\3\1\uffff\1\3\1\uffff\31\3\3\uffff\2\3\1\uffff\2\3",
-            "\5\3\4\uffff\1\11\45\3\21\uffff\2\3\2\uffff\1\3\1\uffff\1\3\1\uffff\31\3\3\uffff\2\3\1\uffff\2\3",
-            "\5\3\4\uffff\1\11\45\3\21\uffff\2\3\2\uffff\1\3\1\uffff\1\3\1\uffff\31\3\3\uffff\2\3\1\uffff\2\3",
-            "\5\3\4\uffff\1\11\45\3\21\uffff\2\3\2\uffff\1\3\1\uffff\1\3\1\uffff\31\3\3\uffff\2\3\1\uffff\2\3",
-            "\5\3\4\uffff\1\11\45\3\21\uffff\2\3\2\uffff\1\3\1\uffff\1\3\1\uffff\31\3\3\uffff\2\3\1\uffff\2\3",
+            "\5\3\4\uffff\1\11\45\3\15\uffff\2\3\2\uffff\1\3\3\uffff\1\3\1\uffff\31\3\3\uffff\2\3\1\uffff\2\3",
+            "\5\3\4\uffff\1\11\45\3\15\uffff\2\3\2\uffff\1\3\3\uffff\1\3\1\uffff\31\3\3\uffff\2\3\1\uffff\2\3",
+            "\5\3\4\uffff\1\11\45\3\15\uffff\2\3\2\uffff\1\3\3\uffff\1\3\1\uffff\31\3\3\uffff\2\3\1\uffff\2\3",
+            "\5\3\4\uffff\1\11\45\3\15\uffff\2\3\2\uffff\1\3\3\uffff\1\3\1\uffff\31\3\3\uffff\2\3\1\uffff\2\3",
+            "\5\3\4\uffff\1\11\45\3\15\uffff\2\3\2\uffff\1\3\3\uffff\1\3\1\uffff\31\3\3\uffff\2\3\1\uffff\2\3",
             ""
     };
 
@@ -66729,11 +67539,11 @@
     static final short[] dfa_26 = DFA.unpackEncodedString(dfa_26s);
     static final short[][] dfa_27 = unpackEncodedStringArray(dfa_27s);
 
-    class DFA22 extends DFA {
+    class DFA23 extends DFA {
 
-        public DFA22(BaseRecognizer recognizer) {
+        public DFA23(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 22;
+            this.decisionNumber = 23;
             this.eot = dfa_21;
             this.eof = dfa_22;
             this.min = dfa_23;
@@ -66743,15 +67553,15 @@
             this.transition = dfa_27;
         }
         public String getDescription() {
-            return "2867:1: rule__XMemberFeatureCall__Alternatives_1 : ( ( ( rule__XMemberFeatureCall__Group_1_0__0 ) ) | ( ( rule__XMemberFeatureCall__Group_1_1__0 ) ) );";
+            return "2929: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\154\2\0\40\uffff";
+    static final String dfa_29s = "\1\152\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\21\uffff\1\5\3\uffff\1\5\3\uffff\1\2\3\uffff\2\5\2\uffff\1\5\1\uffff\1\5\3\uffff\10\5\1\uffff\1\5\6\uffff\1\3\1\uffff\1\5",
+            "\1\1\4\5\22\uffff\1\5\3\uffff\1\3\2\uffff\2\5\4\uffff\1\5\4\uffff\6\5\15\uffff\1\5\3\uffff\1\5\5\uffff\1\2\3\uffff\2\5\2\uffff\1\5\1\uffff\1\5\3\uffff\10\5\1\uffff\1\5\6\uffff\1\3\1\uffff\1\5",
             "\1\uffff",
             "\1\uffff",
             "",
@@ -66793,11 +67603,11 @@
     static final short[] dfa_31 = DFA.unpackEncodedString(dfa_31s);
     static final short[][] dfa_32 = unpackEncodedStringArray(dfa_32s);
 
-    class DFA25 extends DFA {
+    class DFA26 extends DFA {
 
-        public DFA25(BaseRecognizer recognizer) {
+        public DFA26(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 25;
+            this.decisionNumber = 26;
             this.eot = dfa_8;
             this.eof = dfa_8;
             this.min = dfa_28;
@@ -66807,57 +67617,57 @@
             this.transition = dfa_32;
         }
         public String getDescription() {
-            return "2936: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 "2998: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 LA25_1 = input.LA(1);
+                        int LA26_1 = input.LA(1);
 
                          
-                        int index25_1 = input.index();
+                        int index26_1 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred48_InternalSignalDSL()) ) {s = 3;}
+                        if ( (synpred49_InternalSignalDSL()) ) {s = 3;}
 
                         else if ( (true) ) {s = 5;}
 
                          
-                        input.seek(index25_1);
+                        input.seek(index26_1);
                         if ( s>=0 ) return s;
                         break;
                     case 1 : 
-                        int LA25_2 = input.LA(1);
+                        int LA26_2 = input.LA(1);
 
                          
-                        int index25_2 = input.index();
+                        int index26_2 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred48_InternalSignalDSL()) ) {s = 3;}
+                        if ( (synpred49_InternalSignalDSL()) ) {s = 3;}
 
                         else if ( (true) ) {s = 5;}
 
                          
-                        input.seek(index25_2);
+                        input.seek(index26_2);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 25, _s, input);
+                new NoViableAltException(getDescription(), 26, _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\154\26\uffff\1\0\10\uffff";
+    static final String dfa_35s = "\1\152\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\21\uffff\1\2\3\uffff\1\27\3\uffff\1\35\3\uffff\2\14\2\uffff\1\26\1\uffff\1\3\3\uffff\1\30\1\31\1\1\2\14\1\32\1\33\1\34\1\uffff\1\4\10\uffff\1\14",
+            "\1\5\4\14\22\uffff\1\5\21\uffff\5\5\1\14\15\uffff\1\2\3\uffff\1\27\5\uffff\1\35\3\uffff\2\14\2\uffff\1\26\1\uffff\1\3\3\uffff\1\30\1\31\1\1\2\14\1\32\1\33\1\34\1\uffff\1\4\10\uffff\1\14",
             "",
             "",
             "",
@@ -66898,11 +67708,11 @@
     static final short[] dfa_37 = DFA.unpackEncodedString(dfa_37s);
     static final short[][] dfa_38 = unpackEncodedStringArray(dfa_38s);
 
-    class DFA26 extends DFA {
+    class DFA27 extends DFA {
 
-        public DFA26(BaseRecognizer recognizer) {
+        public DFA27(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 26;
+            this.decisionNumber = 27;
             this.eot = dfa_33;
             this.eof = dfa_33;
             this.min = dfa_34;
@@ -66912,37 +67722,37 @@
             this.transition = dfa_38;
         }
         public String getDescription() {
-            return "2957:1: rule__XPrimaryExpression__Alternatives : ( ( ruleXConstructorCall ) | ( ruleXBlockExpression ) | ( ruleXSwitchExpression ) | ( ( ruleXSynchronizedExpression ) ) | ( ruleXFeatureCall ) | ( ruleXLiteral ) | ( ruleXIfExpression ) | ( ( ruleXForLoopExpression ) ) | ( ruleXBasicForLoopExpression ) | ( ruleXWhileExpression ) | ( ruleXDoWhileExpression ) | ( ruleXThrowExpression ) | ( ruleXReturnExpression ) | ( ruleXTryCatchFinallyExpression ) | ( ruleXParenthesizedExpression ) );";
+            return "3019: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 LA26_23 = input.LA(1);
+                        int LA27_23 = input.LA(1);
 
                          
-                        int index26_23 = input.index();
+                        int index27_23 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred56_InternalSignalDSL()) ) {s = 30;}
+                        if ( (synpred57_InternalSignalDSL()) ) {s = 30;}
 
-                        else if ( (synpred57_InternalSignalDSL()) ) {s = 31;}
+                        else if ( (synpred58_InternalSignalDSL()) ) {s = 31;}
 
                          
-                        input.seek(index26_23);
+                        input.seek(index27_23);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 26, _s, input);
+                new NoViableAltException(getDescription(), 27, _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\21\uffff\1\2\3\uffff\1\2\3\uffff\1\1\3\uffff\2\2\2\uffff\1\2\1\uffff\1\2\3\uffff\10\2\1\uffff\1\2\10\uffff\1\2",
+            "\5\2\22\uffff\1\2\3\uffff\1\2\2\uffff\2\2\4\uffff\1\2\4\uffff\6\2\15\uffff\1\2\3\uffff\1\2\5\uffff\1\1\3\uffff\2\2\2\uffff\1\2\1\uffff\1\2\3\uffff\10\2\1\uffff\1\2\10\uffff\1\2",
             "\1\uffff",
             "",
             "",
@@ -66980,11 +67790,11 @@
     };
     static final short[][] dfa_39 = unpackEncodedStringArray(dfa_39s);
 
-    class DFA29 extends DFA {
+    class DFA30 extends DFA {
 
-        public DFA29(BaseRecognizer recognizer) {
+        public DFA30(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 29;
+            this.decisionNumber = 30;
             this.eot = dfa_8;
             this.eof = dfa_8;
             this.min = dfa_9;
@@ -66994,41 +67804,41 @@
             this.transition = dfa_39;
         }
         public String getDescription() {
-            return "3128:1: rule__XSwitchExpression__Alternatives_2 : ( ( ( rule__XSwitchExpression__Group_2_0__0 ) ) | ( ( rule__XSwitchExpression__Group_2_1__0 ) ) );";
+            return "3190: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 LA29_1 = input.LA(1);
+                        int LA30_1 = input.LA(1);
 
                          
-                        int index29_1 = input.index();
+                        int index30_1 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred70_InternalSignalDSL()) ) {s = 34;}
+                        if ( (synpred71_InternalSignalDSL()) ) {s = 34;}
 
                         else if ( (true) ) {s = 2;}
 
                          
-                        input.seek(index29_1);
+                        input.seek(index30_1);
                         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(), 30, _s, input);
             error(nvae);
             throw nvae;
         }
     }
 
-    class DFA34 extends DFA {
+    class DFA35 extends DFA {
 
-        public DFA34(BaseRecognizer recognizer) {
+        public DFA35(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 34;
+            this.decisionNumber = 35;
             this.eot = dfa_8;
             this.eof = dfa_8;
             this.min = dfa_28;
@@ -67038,56 +67848,56 @@
             this.transition = dfa_32;
         }
         public String getDescription() {
-            return "3233:1: rule__XFeatureCall__Alternatives_3_1 : ( ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 ) ) | ( ( rule__XFeatureCall__Group_3_1_1__0 ) ) );";
+            return "3295: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 LA34_1 = input.LA(1);
+                        int LA35_1 = input.LA(1);
 
                          
-                        int index34_1 = input.index();
+                        int index35_1 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred75_InternalSignalDSL()) ) {s = 3;}
+                        if ( (synpred76_InternalSignalDSL()) ) {s = 3;}
 
                         else if ( (true) ) {s = 5;}
 
                          
-                        input.seek(index34_1);
+                        input.seek(index35_1);
                         if ( s>=0 ) return s;
                         break;
                     case 1 : 
-                        int LA34_2 = input.LA(1);
+                        int LA35_2 = input.LA(1);
 
                          
-                        int index34_2 = input.index();
+                        int index35_2 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred75_InternalSignalDSL()) ) {s = 3;}
+                        if ( (synpred76_InternalSignalDSL()) ) {s = 3;}
 
                         else if ( (true) ) {s = 5;}
 
                          
-                        input.seek(index34_2);
+                        input.seek(index35_2);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 34, _s, input);
+                new NoViableAltException(getDescription(), 35, _s, input);
             error(nvae);
             throw nvae;
         }
     }
 
-    class DFA37 extends DFA {
+    class DFA38 extends DFA {
 
-        public DFA37(BaseRecognizer recognizer) {
+        public DFA38(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 37;
+            this.decisionNumber = 38;
             this.eot = dfa_8;
             this.eof = dfa_8;
             this.min = dfa_28;
@@ -67097,57 +67907,57 @@
             this.transition = dfa_32;
         }
         public String getDescription() {
-            return "3314:1: rule__XConstructorCall__Alternatives_4_1 : ( ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 ) ) | ( ( rule__XConstructorCall__Group_4_1_1__0 ) ) );";
+            return "3376: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 LA37_1 = input.LA(1);
+                        int LA38_1 = input.LA(1);
 
                          
-                        int index37_1 = input.index();
+                        int index38_1 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred81_InternalSignalDSL()) ) {s = 3;}
+                        if ( (synpred82_InternalSignalDSL()) ) {s = 3;}
 
                         else if ( (true) ) {s = 5;}
 
                          
-                        input.seek(index37_1);
+                        input.seek(index38_1);
                         if ( s>=0 ) return s;
                         break;
                     case 1 : 
-                        int LA37_2 = input.LA(1);
+                        int LA38_2 = input.LA(1);
 
                          
-                        int index37_2 = input.index();
+                        int index38_2 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred81_InternalSignalDSL()) ) {s = 3;}
+                        if ( (synpred82_InternalSignalDSL()) ) {s = 3;}
 
                         else if ( (true) ) {s = 5;}
 
                          
-                        input.seek(index37_2);
+                        input.seek(index38_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(), 38, _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\154\7\0\2\uffff";
+    static final String dfa_42s = "\1\152\7\0\2\uffff";
     static final String dfa_43s = "\10\uffff\1\2\1\1";
-    static final String dfa_44s = "\1\uffff\1\2\1\1\1\0\1\6\1\3\1\4\1\5\2\uffff}>";
+    static final String dfa_44s = "\1\uffff\1\2\1\0\1\6\1\4\1\3\1\1\1\5\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\21\uffff\2\10\2\uffff\1\10\1\uffff\1\10\1\uffff\31\10\3\uffff\2\10\1\uffff\2\10",
+            "\5\10\5\uffff\2\10\1\1\1\2\1\3\1\4\1\5\5\10\1\7\1\6\27\10\15\uffff\2\10\2\uffff\1\10\3\uffff\1\10\1\uffff\31\10\3\uffff\2\10\1\uffff\2\10",
             "\1\uffff",
             "\1\uffff",
             "\1\uffff",
@@ -67165,11 +67975,11 @@
     static final short[] dfa_44 = DFA.unpackEncodedString(dfa_44s);
     static final short[][] dfa_45 = unpackEncodedStringArray(dfa_45s);
 
-    class DFA65 extends DFA {
+    class DFA68 extends DFA {
 
-        public DFA65(BaseRecognizer recognizer) {
+        public DFA68(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 65;
+            this.decisionNumber = 68;
             this.eot = dfa_21;
             this.eof = dfa_40;
             this.min = dfa_41;
@@ -67179,132 +67989,132 @@
             this.transition = dfa_45;
         }
         public String getDescription() {
-            return "5973:2: ( rule__XAssignment__Group_1_1__0 )?";
+            return "6236: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 LA65_3 = input.LA(1);
+                        int LA68_2 = input.LA(1);
 
                          
-                        int index65_3 = input.index();
+                        int index68_2 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred119_InternalSignalDSL()) ) {s = 9;}
+                        if ( (synpred116_InternalSignalDSL()) ) {s = 9;}
 
                         else if ( (true) ) {s = 8;}
 
                          
-                        input.seek(index65_3);
+                        input.seek(index68_2);
                         if ( s>=0 ) return s;
                         break;
                     case 1 : 
-                        int LA65_2 = input.LA(1);
+                        int LA68_6 = input.LA(1);
 
                          
-                        int index65_2 = input.index();
+                        int index68_6 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred119_InternalSignalDSL()) ) {s = 9;}
+                        if ( (synpred116_InternalSignalDSL()) ) {s = 9;}
 
                         else if ( (true) ) {s = 8;}
 
                          
-                        input.seek(index65_2);
+                        input.seek(index68_6);
                         if ( s>=0 ) return s;
                         break;
                     case 2 : 
-                        int LA65_1 = input.LA(1);
+                        int LA68_1 = input.LA(1);
 
                          
-                        int index65_1 = input.index();
+                        int index68_1 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred119_InternalSignalDSL()) ) {s = 9;}
+                        if ( (synpred116_InternalSignalDSL()) ) {s = 9;}
 
                         else if ( (true) ) {s = 8;}
 
                          
-                        input.seek(index65_1);
+                        input.seek(index68_1);
                         if ( s>=0 ) return s;
                         break;
                     case 3 : 
-                        int LA65_5 = input.LA(1);
+                        int LA68_5 = input.LA(1);
 
                          
-                        int index65_5 = input.index();
+                        int index68_5 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred119_InternalSignalDSL()) ) {s = 9;}
+                        if ( (synpred116_InternalSignalDSL()) ) {s = 9;}
 
                         else if ( (true) ) {s = 8;}
 
                          
-                        input.seek(index65_5);
+                        input.seek(index68_5);
                         if ( s>=0 ) return s;
                         break;
                     case 4 : 
-                        int LA65_6 = input.LA(1);
+                        int LA68_4 = input.LA(1);
 
                          
-                        int index65_6 = input.index();
+                        int index68_4 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred119_InternalSignalDSL()) ) {s = 9;}
+                        if ( (synpred116_InternalSignalDSL()) ) {s = 9;}
 
                         else if ( (true) ) {s = 8;}
 
                          
-                        input.seek(index65_6);
+                        input.seek(index68_4);
                         if ( s>=0 ) return s;
                         break;
                     case 5 : 
-                        int LA65_7 = input.LA(1);
+                        int LA68_7 = input.LA(1);
 
                          
-                        int index65_7 = input.index();
+                        int index68_7 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred119_InternalSignalDSL()) ) {s = 9;}
+                        if ( (synpred116_InternalSignalDSL()) ) {s = 9;}
 
                         else if ( (true) ) {s = 8;}
 
                          
-                        input.seek(index65_7);
+                        input.seek(index68_7);
                         if ( s>=0 ) return s;
                         break;
                     case 6 : 
-                        int LA65_4 = input.LA(1);
+                        int LA68_3 = input.LA(1);
 
                          
-                        int index65_4 = input.index();
+                        int index68_3 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred119_InternalSignalDSL()) ) {s = 9;}
+                        if ( (synpred116_InternalSignalDSL()) ) {s = 9;}
 
                         else if ( (true) ) {s = 8;}
 
                          
-                        input.seek(index65_4);
+                        input.seek(index68_3);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 65, _s, input);
+                new NoViableAltException(getDescription(), 68, _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\154\1\uffff\10\0\1\uffff";
+    static final String dfa_48s = "\1\152\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\3\1\1\1\7\1\4\1\2\1\6\1\0\1\5\1\uffff}>";
+    static final String dfa_50s = "\2\uffff\1\4\1\3\1\5\1\0\1\2\1\6\1\7\1\1\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\21\uffff\2\1\2\uffff\1\1\1\uffff\1\1\1\uffff\31\1\3\uffff\2\1\1\uffff\2\1",
+            "\5\1\5\uffff\14\1\1\3\1\2\1\4\1\5\1\6\1\7\1\10\1\11\21\1\15\uffff\2\1\2\uffff\1\1\3\uffff\1\1\1\uffff\31\1\3\uffff\2\1\1\uffff\2\1",
             "",
             "\1\uffff",
             "\1\uffff",
@@ -67323,11 +68133,11 @@
     static final short[] dfa_50 = DFA.unpackEncodedString(dfa_50s);
     static final short[][] dfa_51 = unpackEncodedStringArray(dfa_51s);
 
-    class DFA71 extends DFA {
+    class DFA74 extends DFA {
 
-        public DFA71(BaseRecognizer recognizer) {
+        public DFA74(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 71;
+            this.decisionNumber = 74;
             this.eot = dfa_15;
             this.eof = dfa_46;
             this.min = dfa_47;
@@ -67337,136 +68147,136 @@
             this.transition = dfa_51;
         }
         public String getDescription() {
-            return "()* loopback of 7269:2: ( rule__XOtherOperatorExpression__Group_1__0 )*";
+            return "()* loopback of 7532: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 LA71_8 = input.LA(1);
+                        int LA74_5 = input.LA(1);
 
                          
-                        int index71_8 = input.index();
+                        int index74_5 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred125_InternalSignalDSL()) ) {s = 10;}
+                        if ( (synpred122_InternalSignalDSL()) ) {s = 10;}
 
                         else if ( (true) ) {s = 1;}
 
                          
-                        input.seek(index71_8);
+                        input.seek(index74_5);
                         if ( s>=0 ) return s;
                         break;
                     case 1 : 
-                        int LA71_3 = input.LA(1);
+                        int LA74_9 = input.LA(1);
 
                          
-                        int index71_3 = input.index();
+                        int index74_9 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred125_InternalSignalDSL()) ) {s = 10;}
+                        if ( (synpred122_InternalSignalDSL()) ) {s = 10;}
 
                         else if ( (true) ) {s = 1;}
 
                          
-                        input.seek(index71_3);
+                        input.seek(index74_9);
                         if ( s>=0 ) return s;
                         break;
                     case 2 : 
-                        int LA71_6 = input.LA(1);
+                        int LA74_6 = input.LA(1);
 
                          
-                        int index71_6 = input.index();
+                        int index74_6 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred125_InternalSignalDSL()) ) {s = 10;}
+                        if ( (synpred122_InternalSignalDSL()) ) {s = 10;}
 
                         else if ( (true) ) {s = 1;}
 
                          
-                        input.seek(index71_6);
+                        input.seek(index74_6);
                         if ( s>=0 ) return s;
                         break;
                     case 3 : 
-                        int LA71_2 = input.LA(1);
+                        int LA74_3 = input.LA(1);
 
                          
-                        int index71_2 = input.index();
+                        int index74_3 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred125_InternalSignalDSL()) ) {s = 10;}
+                        if ( (synpred122_InternalSignalDSL()) ) {s = 10;}
 
                         else if ( (true) ) {s = 1;}
 
                          
-                        input.seek(index71_2);
+                        input.seek(index74_3);
                         if ( s>=0 ) return s;
                         break;
                     case 4 : 
-                        int LA71_5 = input.LA(1);
+                        int LA74_2 = input.LA(1);
 
                          
-                        int index71_5 = input.index();
+                        int index74_2 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred125_InternalSignalDSL()) ) {s = 10;}
+                        if ( (synpred122_InternalSignalDSL()) ) {s = 10;}
 
                         else if ( (true) ) {s = 1;}
 
                          
-                        input.seek(index71_5);
+                        input.seek(index74_2);
                         if ( s>=0 ) return s;
                         break;
                     case 5 : 
-                        int LA71_9 = input.LA(1);
+                        int LA74_4 = input.LA(1);
 
                          
-                        int index71_9 = input.index();
+                        int index74_4 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred125_InternalSignalDSL()) ) {s = 10;}
+                        if ( (synpred122_InternalSignalDSL()) ) {s = 10;}
 
                         else if ( (true) ) {s = 1;}
 
                          
-                        input.seek(index71_9);
+                        input.seek(index74_4);
                         if ( s>=0 ) return s;
                         break;
                     case 6 : 
-                        int LA71_7 = input.LA(1);
+                        int LA74_7 = input.LA(1);
 
                          
-                        int index71_7 = input.index();
+                        int index74_7 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred125_InternalSignalDSL()) ) {s = 10;}
+                        if ( (synpred122_InternalSignalDSL()) ) {s = 10;}
 
                         else if ( (true) ) {s = 1;}
 
                          
-                        input.seek(index71_7);
+                        input.seek(index74_7);
                         if ( s>=0 ) return s;
                         break;
                     case 7 : 
-                        int LA71_4 = input.LA(1);
+                        int LA74_8 = input.LA(1);
 
                          
-                        int index71_4 = input.index();
+                        int index74_8 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred125_InternalSignalDSL()) ) {s = 10;}
+                        if ( (synpred122_InternalSignalDSL()) ) {s = 10;}
 
                         else if ( (true) ) {s = 1;}
 
                          
-                        input.seek(index71_4);
+                        input.seek(index74_8);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 71, _s, input);
+                new NoViableAltException(getDescription(), 74, _s, input);
             error(nvae);
             throw nvae;
         }
@@ -67474,11 +68284,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\154\1\0\114\uffff";
+    static final String dfa_55s = "\1\152\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\21\uffff\2\2\2\uffff\1\2\1\uffff\1\2\1\uffff\1\1\30\2\3\uffff\2\2\1\uffff\2\2",
+            "\5\2\5\uffff\45\2\15\uffff\2\2\2\uffff\1\2\3\uffff\1\2\1\uffff\1\1\30\2\3\uffff\2\2\1\uffff\2\2",
             "\1\uffff",
             "",
             "",
@@ -67566,11 +68376,11 @@
     static final short[] dfa_57 = DFA.unpackEncodedString(dfa_57s);
     static final short[][] dfa_58 = unpackEncodedStringArray(dfa_58s);
 
-    class DFA78 extends DFA {
+    class DFA81 extends DFA {
 
-        public DFA78(BaseRecognizer recognizer) {
+        public DFA81(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 78;
+            this.decisionNumber = 81;
             this.eot = dfa_52;
             this.eof = dfa_53;
             this.min = dfa_54;
@@ -67580,37 +68390,37 @@
             this.transition = dfa_58;
         }
         public String getDescription() {
-            return "8863:2: ( rule__XMemberFeatureCall__Group_1_1_3__0 )?";
+            return "9126: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 LA78_1 = input.LA(1);
+                        int LA81_1 = input.LA(1);
 
                          
-                        int index78_1 = input.index();
+                        int index81_1 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred132_InternalSignalDSL()) ) {s = 77;}
+                        if ( (synpred129_InternalSignalDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 2;}
 
                          
-                        input.seek(index78_1);
+                        input.seek(index81_1);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 78, _s, input);
+                new NoViableAltException(getDescription(), 81, _s, input);
             error(nvae);
             throw nvae;
         }
     }
     static final String[] dfa_59s = {
-            "\5\2\5\uffff\45\2\21\uffff\2\2\2\uffff\1\2\1\uffff\1\2\1\uffff\5\2\1\1\23\2\3\uffff\2\2\1\uffff\2\2",
+            "\5\2\5\uffff\45\2\15\uffff\2\2\2\uffff\1\2\3\uffff\1\2\1\uffff\5\2\1\1\23\2\3\uffff\2\2\1\uffff\2\2",
             "\1\uffff",
             "",
             "",
@@ -67691,11 +68501,11 @@
     };
     static final short[][] dfa_59 = unpackEncodedStringArray(dfa_59s);
 
-    class DFA79 extends DFA {
+    class DFA82 extends DFA {
 
-        public DFA79(BaseRecognizer recognizer) {
+        public DFA82(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 79;
+            this.decisionNumber = 82;
             this.eot = dfa_52;
             this.eof = dfa_53;
             this.min = dfa_54;
@@ -67705,42 +68515,42 @@
             this.transition = dfa_59;
         }
         public String getDescription() {
-            return "8889:2: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 )?";
+            return "9152: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 LA79_1 = input.LA(1);
+                        int LA82_1 = input.LA(1);
 
                          
-                        int index79_1 = input.index();
+                        int index82_1 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred133_InternalSignalDSL()) ) {s = 77;}
+                        if ( (synpred130_InternalSignalDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 2;}
 
                          
-                        input.seek(index79_1);
+                        input.seek(index82_1);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 79, _s, input);
+                new NoViableAltException(getDescription(), 82, _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\154\2\0\43\uffff";
+    static final String dfa_62s = "\1\152\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\21\uffff\1\5\3\uffff\1\5\3\uffff\1\2\2\uffff\3\5\2\uffff\1\5\1\uffff\1\5\3\uffff\10\5\1\uffff\1\5\6\uffff\1\3\2\5",
+            "\1\1\4\5\22\uffff\1\5\3\uffff\1\3\2\uffff\2\5\4\uffff\1\5\3\uffff\7\5\15\uffff\1\5\3\uffff\1\5\5\uffff\1\2\2\uffff\3\5\2\uffff\1\5\1\uffff\1\5\3\uffff\10\5\1\uffff\1\5\6\uffff\1\3\2\5",
             "\1\uffff",
             "\1\uffff",
             "",
@@ -67787,11 +68597,11 @@
     static final short[] dfa_64 = DFA.unpackEncodedString(dfa_64s);
     static final short[][] dfa_65 = unpackEncodedStringArray(dfa_65s);
 
-    class DFA87 extends DFA {
+    class DFA90 extends DFA {
 
-        public DFA87(BaseRecognizer recognizer) {
+        public DFA90(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 87;
+            this.decisionNumber = 90;
             this.eot = dfa_60;
             this.eof = dfa_60;
             this.min = dfa_61;
@@ -67801,57 +68611,57 @@
             this.transition = dfa_65;
         }
         public String getDescription() {
-            return "9862:2: ( rule__XClosure__Group_1__0 )?";
+            return "10125: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 LA87_1 = input.LA(1);
+                        int LA90_1 = input.LA(1);
 
                          
-                        int index87_1 = input.index();
+                        int index90_1 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred141_InternalSignalDSL()) ) {s = 3;}
+                        if ( (synpred138_InternalSignalDSL()) ) {s = 3;}
 
                         else if ( (true) ) {s = 5;}
 
                          
-                        input.seek(index87_1);
+                        input.seek(index90_1);
                         if ( s>=0 ) return s;
                         break;
                     case 1 : 
-                        int LA87_2 = input.LA(1);
+                        int LA90_2 = input.LA(1);
 
                          
-                        int index87_2 = input.index();
+                        int index90_2 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred141_InternalSignalDSL()) ) {s = 3;}
+                        if ( (synpred138_InternalSignalDSL()) ) {s = 3;}
 
                         else if ( (true) ) {s = 5;}
 
                          
-                        input.seek(index87_2);
+                        input.seek(index90_2);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 87, _s, input);
+                new NoViableAltException(getDescription(), 90, _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\154\2\0\37\uffff";
+    static final String dfa_68s = "\1\152\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\21\uffff\1\4\3\uffff\1\4\3\uffff\1\2\3\uffff\2\4\2\uffff\1\4\1\uffff\1\4\3\uffff\10\4\1\uffff\1\4\10\uffff\1\4",
+            "\1\1\4\4\22\uffff\1\4\3\uffff\1\3\2\uffff\2\4\4\uffff\1\4\4\uffff\6\4\15\uffff\1\4\3\uffff\1\4\5\uffff\1\2\3\uffff\2\4\2\uffff\1\4\1\uffff\1\4\3\uffff\10\4\1\uffff\1\4\10\uffff\1\4",
             "\1\uffff",
             "\1\uffff",
             "",
@@ -67894,11 +68704,11 @@
     static final short[] dfa_70 = DFA.unpackEncodedString(dfa_70s);
     static final short[][] dfa_71 = unpackEncodedStringArray(dfa_71s);
 
-    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_66;
             this.eof = dfa_66;
             this.min = dfa_67;
@@ -67908,56 +68718,56 @@
             this.transition = dfa_71;
         }
         public String getDescription() {
-            return "11293:2: ( rule__XSwitchExpression__Group_2_1_0__0 )?";
+            return "11556: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 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 ( (synpred151_InternalSignalDSL()) ) {s = 3;}
+                        if ( (synpred148_InternalSignalDSL()) ) {s = 3;}
 
                         else if ( (true) ) {s = 4;}
 
                          
-                        input.seek(index97_1);
+                        input.seek(index100_1);
                         if ( s>=0 ) return s;
                         break;
                     case 1 : 
-                        int LA97_2 = input.LA(1);
+                        int LA100_2 = input.LA(1);
 
                          
-                        int index97_2 = input.index();
+                        int index100_2 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred151_InternalSignalDSL()) ) {s = 3;}
+                        if ( (synpred148_InternalSignalDSL()) ) {s = 3;}
 
                         else if ( (true) ) {s = 4;}
 
                          
-                        input.seek(index97_2);
+                        input.seek(index100_2);
                         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 DFA110 extends DFA {
+    class DFA113 extends DFA {
 
-        public DFA110(BaseRecognizer recognizer) {
+        public DFA113(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 110;
+            this.decisionNumber = 113;
             this.eot = dfa_52;
             this.eof = dfa_53;
             this.min = dfa_54;
@@ -67967,41 +68777,41 @@
             this.transition = dfa_58;
         }
         public String getDescription() {
-            return "13426:2: ( rule__XFeatureCall__Group_3__0 )?";
+            return "13689: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 LA110_1 = input.LA(1);
+                        int LA113_1 = input.LA(1);
 
                          
-                        int index110_1 = input.index();
+                        int index113_1 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred164_InternalSignalDSL()) ) {s = 77;}
+                        if ( (synpred161_InternalSignalDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 2;}
 
                          
-                        input.seek(index110_1);
+                        input.seek(index113_1);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 110, _s, input);
+                new NoViableAltException(getDescription(), 113, _s, input);
             error(nvae);
             throw nvae;
         }
     }
 
-    class DFA111 extends DFA {
+    class DFA114 extends DFA {
 
-        public DFA111(BaseRecognizer recognizer) {
+        public DFA114(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 111;
+            this.decisionNumber = 114;
             this.eot = dfa_52;
             this.eof = dfa_53;
             this.min = dfa_54;
@@ -68011,37 +68821,37 @@
             this.transition = dfa_59;
         }
         public String getDescription() {
-            return "13452:2: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_4 )?";
+            return "13715: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 LA111_1 = input.LA(1);
+                        int LA114_1 = input.LA(1);
 
                          
-                        int index111_1 = input.index();
+                        int index114_1 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred165_InternalSignalDSL()) ) {s = 77;}
+                        if ( (synpred162_InternalSignalDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 2;}
 
                          
-                        input.seek(index111_1);
+                        input.seek(index114_1);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 111, _s, input);
+                new NoViableAltException(getDescription(), 114, _s, input);
             error(nvae);
             throw nvae;
         }
     }
     static final String[] dfa_72s = {
-            "\5\2\5\uffff\15\2\1\1\27\2\21\uffff\2\2\2\uffff\1\2\1\uffff\1\2\1\uffff\31\2\3\uffff\2\2\1\uffff\2\2",
+            "\5\2\5\uffff\15\2\1\1\27\2\15\uffff\2\2\2\uffff\1\2\3\uffff\1\2\1\uffff\31\2\3\uffff\2\2\1\uffff\2\2",
             "\1\uffff",
             "",
             "",
@@ -68122,11 +68932,11 @@
     };
     static final short[][] dfa_72 = unpackEncodedStringArray(dfa_72s);
 
-    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;
@@ -68136,41 +68946,41 @@
             this.transition = dfa_72;
         }
         public String getDescription() {
-            return "13912:2: ( rule__XConstructorCall__Group_3__0 )?";
+            return "14175: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 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 ( (synpred169_InternalSignalDSL()) ) {s = 77;}
+                        if ( (synpred166_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;
@@ -68180,41 +68990,41 @@
             this.transition = dfa_58;
         }
         public String getDescription() {
-            return "13939:2: ( rule__XConstructorCall__Group_4__0 )?";
+            return "14202: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 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 ( (synpred170_InternalSignalDSL()) ) {s = 77;}
+                        if ( (synpred167_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;
         }
     }
 
-    class DFA117 extends DFA {
+    class DFA120 extends DFA {
 
-        public DFA117(BaseRecognizer recognizer) {
+        public DFA120(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 117;
+            this.decisionNumber = 120;
             this.eot = dfa_52;
             this.eof = dfa_53;
             this.min = dfa_54;
@@ -68224,42 +69034,42 @@
             this.transition = dfa_59;
         }
         public String getDescription() {
-            return "13965:2: ( rule__XConstructorCall__ArgumentsAssignment_5 )?";
+            return "14228: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 LA117_1 = input.LA(1);
+                        int LA120_1 = input.LA(1);
 
                          
-                        int index117_1 = input.index();
+                        int index120_1 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred171_InternalSignalDSL()) ) {s = 77;}
+                        if ( (synpred168_InternalSignalDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 2;}
 
                          
-                        input.seek(index117_1);
+                        input.seek(index120_1);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 117, _s, input);
+                new NoViableAltException(getDescription(), 120, _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\154\40\0\55\uffff";
+    static final String dfa_75s = "\1\152\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\21\uffff\1\12\1\41\2\uffff\1\32\1\uffff\1\41\1\uffff\1\40\3\41\1\17\1\20\2\41\1\31\1\41\1\13\3\41\1\33\1\34\1\11\1\26\1\30\1\35\1\36\1\37\1\41\1\14\1\41\3\uffff\2\41\1\uffff\1\41\1\22",
+            "\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\15\uffff\1\12\1\41\2\uffff\1\32\3\uffff\1\41\1\uffff\1\40\3\41\1\17\1\20\2\41\1\31\1\41\1\13\3\41\1\33\1\34\1\11\1\26\1\30\1\35\1\36\1\37\1\41\1\14\1\41\3\uffff\2\41\1\uffff\1\41\1\22",
             "\1\uffff",
             "\1\uffff",
             "\1\uffff",
@@ -68345,11 +69155,11 @@
     static final short[] dfa_77 = DFA.unpackEncodedString(dfa_77s);
     static final short[][] dfa_78 = unpackEncodedStringArray(dfa_78s);
 
-    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_73;
             this.min = dfa_74;
@@ -68359,496 +69169,496 @@
             this.transition = dfa_78;
         }
         public String getDescription() {
-            return "14856:2: ( rule__XReturnExpression__ExpressionAssignment_2 )?";
+            return "15119: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 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 ( (synpred176_InternalSignalDSL()) ) {s = 77;}
+                        if ( (synpred173_InternalSignalDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index122_1);
+                        input.seek(index125_1);
                         if ( s>=0 ) return s;
                         break;
                     case 1 : 
-                        int LA122_2 = input.LA(1);
+                        int LA125_2 = input.LA(1);
 
                          
-                        int index122_2 = input.index();
+                        int index125_2 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred176_InternalSignalDSL()) ) {s = 77;}
+                        if ( (synpred173_InternalSignalDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index122_2);
+                        input.seek(index125_2);
                         if ( s>=0 ) return s;
                         break;
                     case 2 : 
-                        int LA122_3 = input.LA(1);
+                        int LA125_3 = input.LA(1);
 
                          
-                        int index122_3 = input.index();
+                        int index125_3 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred176_InternalSignalDSL()) ) {s = 77;}
+                        if ( (synpred173_InternalSignalDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index122_3);
+                        input.seek(index125_3);
                         if ( s>=0 ) return s;
                         break;
                     case 3 : 
-                        int LA122_4 = input.LA(1);
+                        int LA125_4 = input.LA(1);
 
                          
-                        int index122_4 = input.index();
+                        int index125_4 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred176_InternalSignalDSL()) ) {s = 77;}
+                        if ( (synpred173_InternalSignalDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index122_4);
+                        input.seek(index125_4);
                         if ( s>=0 ) return s;
                         break;
                     case 4 : 
-                        int LA122_5 = input.LA(1);
+                        int LA125_5 = input.LA(1);
 
                          
-                        int index122_5 = input.index();
+                        int index125_5 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred176_InternalSignalDSL()) ) {s = 77;}
+                        if ( (synpred173_InternalSignalDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index122_5);
+                        input.seek(index125_5);
                         if ( s>=0 ) return s;
                         break;
                     case 5 : 
-                        int LA122_6 = input.LA(1);
+                        int LA125_6 = input.LA(1);
 
                          
-                        int index122_6 = input.index();
+                        int index125_6 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred176_InternalSignalDSL()) ) {s = 77;}
+                        if ( (synpred173_InternalSignalDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index122_6);
+                        input.seek(index125_6);
                         if ( s>=0 ) return s;
                         break;
                     case 6 : 
-                        int LA122_7 = input.LA(1);
+                        int LA125_7 = input.LA(1);
 
                          
-                        int index122_7 = input.index();
+                        int index125_7 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred176_InternalSignalDSL()) ) {s = 77;}
+                        if ( (synpred173_InternalSignalDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index122_7);
+                        input.seek(index125_7);
                         if ( s>=0 ) return s;
                         break;
                     case 7 : 
-                        int LA122_8 = input.LA(1);
+                        int LA125_8 = input.LA(1);
 
                          
-                        int index122_8 = input.index();
+                        int index125_8 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred176_InternalSignalDSL()) ) {s = 77;}
+                        if ( (synpred173_InternalSignalDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index122_8);
+                        input.seek(index125_8);
                         if ( s>=0 ) return s;
                         break;
                     case 8 : 
-                        int LA122_9 = input.LA(1);
+                        int LA125_9 = input.LA(1);
 
                          
-                        int index122_9 = input.index();
+                        int index125_9 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred176_InternalSignalDSL()) ) {s = 77;}
+                        if ( (synpred173_InternalSignalDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index122_9);
+                        input.seek(index125_9);
                         if ( s>=0 ) return s;
                         break;
                     case 9 : 
-                        int LA122_10 = input.LA(1);
+                        int LA125_10 = input.LA(1);
 
                          
-                        int index122_10 = input.index();
+                        int index125_10 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred176_InternalSignalDSL()) ) {s = 77;}
+                        if ( (synpred173_InternalSignalDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index122_10);
+                        input.seek(index125_10);
                         if ( s>=0 ) return s;
                         break;
                     case 10 : 
-                        int LA122_11 = input.LA(1);
+                        int LA125_11 = input.LA(1);
 
                          
-                        int index122_11 = input.index();
+                        int index125_11 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred176_InternalSignalDSL()) ) {s = 77;}
+                        if ( (synpred173_InternalSignalDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index122_11);
+                        input.seek(index125_11);
                         if ( s>=0 ) return s;
                         break;
                     case 11 : 
-                        int LA122_12 = input.LA(1);
+                        int LA125_12 = input.LA(1);
 
                          
-                        int index122_12 = input.index();
+                        int index125_12 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred176_InternalSignalDSL()) ) {s = 77;}
+                        if ( (synpred173_InternalSignalDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index122_12);
+                        input.seek(index125_12);
                         if ( s>=0 ) return s;
                         break;
                     case 12 : 
-                        int LA122_13 = input.LA(1);
+                        int LA125_13 = input.LA(1);
 
                          
-                        int index122_13 = input.index();
+                        int index125_13 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred176_InternalSignalDSL()) ) {s = 77;}
+                        if ( (synpred173_InternalSignalDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index122_13);
+                        input.seek(index125_13);
                         if ( s>=0 ) return s;
                         break;
                     case 13 : 
-                        int LA122_14 = input.LA(1);
+                        int LA125_14 = input.LA(1);
 
                          
-                        int index122_14 = input.index();
+                        int index125_14 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred176_InternalSignalDSL()) ) {s = 77;}
+                        if ( (synpred173_InternalSignalDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index122_14);
+                        input.seek(index125_14);
                         if ( s>=0 ) return s;
                         break;
                     case 14 : 
-                        int LA122_15 = input.LA(1);
+                        int LA125_15 = input.LA(1);
 
                          
-                        int index122_15 = input.index();
+                        int index125_15 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred176_InternalSignalDSL()) ) {s = 77;}
+                        if ( (synpred173_InternalSignalDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index122_15);
+                        input.seek(index125_15);
                         if ( s>=0 ) return s;
                         break;
                     case 15 : 
-                        int LA122_16 = input.LA(1);
+                        int LA125_16 = input.LA(1);
 
                          
-                        int index122_16 = input.index();
+                        int index125_16 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred176_InternalSignalDSL()) ) {s = 77;}
+                        if ( (synpred173_InternalSignalDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index122_16);
+                        input.seek(index125_16);
                         if ( s>=0 ) return s;
                         break;
                     case 16 : 
-                        int LA122_17 = input.LA(1);
+                        int LA125_17 = input.LA(1);
 
                          
-                        int index122_17 = input.index();
+                        int index125_17 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred176_InternalSignalDSL()) ) {s = 77;}
+                        if ( (synpred173_InternalSignalDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index122_17);
+                        input.seek(index125_17);
                         if ( s>=0 ) return s;
                         break;
                     case 17 : 
-                        int LA122_18 = input.LA(1);
+                        int LA125_18 = input.LA(1);
 
                          
-                        int index122_18 = input.index();
+                        int index125_18 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred176_InternalSignalDSL()) ) {s = 77;}
+                        if ( (synpred173_InternalSignalDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index122_18);
+                        input.seek(index125_18);
                         if ( s>=0 ) return s;
                         break;
                     case 18 : 
-                        int LA122_19 = input.LA(1);
+                        int LA125_19 = input.LA(1);
 
                          
-                        int index122_19 = input.index();
+                        int index125_19 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred176_InternalSignalDSL()) ) {s = 77;}
+                        if ( (synpred173_InternalSignalDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index122_19);
+                        input.seek(index125_19);
                         if ( s>=0 ) return s;
                         break;
                     case 19 : 
-                        int LA122_20 = input.LA(1);
+                        int LA125_20 = input.LA(1);
 
                          
-                        int index122_20 = input.index();
+                        int index125_20 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred176_InternalSignalDSL()) ) {s = 77;}
+                        if ( (synpred173_InternalSignalDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index122_20);
+                        input.seek(index125_20);
                         if ( s>=0 ) return s;
                         break;
                     case 20 : 
-                        int LA122_21 = input.LA(1);
+                        int LA125_21 = input.LA(1);
 
                          
-                        int index122_21 = input.index();
+                        int index125_21 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred176_InternalSignalDSL()) ) {s = 77;}
+                        if ( (synpred173_InternalSignalDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index122_21);
+                        input.seek(index125_21);
                         if ( s>=0 ) return s;
                         break;
                     case 21 : 
-                        int LA122_22 = input.LA(1);
+                        int LA125_22 = input.LA(1);
 
                          
-                        int index122_22 = input.index();
+                        int index125_22 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred176_InternalSignalDSL()) ) {s = 77;}
+                        if ( (synpred173_InternalSignalDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index122_22);
+                        input.seek(index125_22);
                         if ( s>=0 ) return s;
                         break;
                     case 22 : 
-                        int LA122_23 = input.LA(1);
+                        int LA125_23 = input.LA(1);
 
                          
-                        int index122_23 = input.index();
+                        int index125_23 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred176_InternalSignalDSL()) ) {s = 77;}
+                        if ( (synpred173_InternalSignalDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index122_23);
+                        input.seek(index125_23);
                         if ( s>=0 ) return s;
                         break;
                     case 23 : 
-                        int LA122_24 = input.LA(1);
+                        int LA125_24 = input.LA(1);
 
                          
-                        int index122_24 = input.index();
+                        int index125_24 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred176_InternalSignalDSL()) ) {s = 77;}
+                        if ( (synpred173_InternalSignalDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index122_24);
+                        input.seek(index125_24);
                         if ( s>=0 ) return s;
                         break;
                     case 24 : 
-                        int LA122_25 = input.LA(1);
+                        int LA125_25 = input.LA(1);
 
                          
-                        int index122_25 = input.index();
+                        int index125_25 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred176_InternalSignalDSL()) ) {s = 77;}
+                        if ( (synpred173_InternalSignalDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index122_25);
+                        input.seek(index125_25);
                         if ( s>=0 ) return s;
                         break;
                     case 25 : 
-                        int LA122_26 = input.LA(1);
+                        int LA125_26 = input.LA(1);
 
                          
-                        int index122_26 = input.index();
+                        int index125_26 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred176_InternalSignalDSL()) ) {s = 77;}
+                        if ( (synpred173_InternalSignalDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index122_26);
+                        input.seek(index125_26);
                         if ( s>=0 ) return s;
                         break;
                     case 26 : 
-                        int LA122_27 = input.LA(1);
+                        int LA125_27 = input.LA(1);
 
                          
-                        int index122_27 = input.index();
+                        int index125_27 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred176_InternalSignalDSL()) ) {s = 77;}
+                        if ( (synpred173_InternalSignalDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index122_27);
+                        input.seek(index125_27);
                         if ( s>=0 ) return s;
                         break;
                     case 27 : 
-                        int LA122_28 = input.LA(1);
+                        int LA125_28 = input.LA(1);
 
                          
-                        int index122_28 = input.index();
+                        int index125_28 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred176_InternalSignalDSL()) ) {s = 77;}
+                        if ( (synpred173_InternalSignalDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index122_28);
+                        input.seek(index125_28);
                         if ( s>=0 ) return s;
                         break;
                     case 28 : 
-                        int LA122_29 = input.LA(1);
+                        int LA125_29 = input.LA(1);
 
                          
-                        int index122_29 = input.index();
+                        int index125_29 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred176_InternalSignalDSL()) ) {s = 77;}
+                        if ( (synpred173_InternalSignalDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index122_29);
+                        input.seek(index125_29);
                         if ( s>=0 ) return s;
                         break;
                     case 29 : 
-                        int LA122_30 = input.LA(1);
+                        int LA125_30 = input.LA(1);
 
                          
-                        int index122_30 = input.index();
+                        int index125_30 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred176_InternalSignalDSL()) ) {s = 77;}
+                        if ( (synpred173_InternalSignalDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index122_30);
+                        input.seek(index125_30);
                         if ( s>=0 ) return s;
                         break;
                     case 30 : 
-                        int LA122_31 = input.LA(1);
+                        int LA125_31 = input.LA(1);
 
                          
-                        int index122_31 = input.index();
+                        int index125_31 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred176_InternalSignalDSL()) ) {s = 77;}
+                        if ( (synpred173_InternalSignalDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index122_31);
+                        input.seek(index125_31);
                         if ( s>=0 ) return s;
                         break;
                     case 31 : 
-                        int LA122_32 = input.LA(1);
+                        int LA125_32 = input.LA(1);
 
                          
-                        int index122_32 = input.index();
+                        int index125_32 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred176_InternalSignalDSL()) ) {s = 77;}
+                        if ( (synpred173_InternalSignalDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index122_32);
+                        input.seek(index125_32);
                         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;
         }
@@ -68856,11 +69666,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\154\1\0\115\uffff";
+    static final String dfa_82s = "\1\152\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\21\uffff\2\2\2\uffff\1\2\1\uffff\1\2\1\uffff\31\2\1\uffff\1\2\1\uffff\2\2\1\uffff\2\2",
+            "\5\2\5\uffff\15\2\1\1\27\2\15\uffff\2\2\2\uffff\1\2\3\uffff\1\2\1\uffff\31\2\1\uffff\1\2\1\uffff\2\2\1\uffff\2\2",
             "\1\uffff",
             "",
             "",
@@ -68949,50 +69759,6 @@
     static final short[] dfa_84 = DFA.unpackEncodedString(dfa_84s);
     static final short[][] dfa_85 = unpackEncodedStringArray(dfa_85s);
 
-    class DFA131 extends DFA {
-
-        public DFA131(BaseRecognizer recognizer) {
-            this.recognizer = recognizer;
-            this.decisionNumber = 131;
-            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 "16213: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 LA131_1 = input.LA(1);
-
-                         
-                        int index131_1 = input.index();
-                        input.rewind();
-                        s = -1;
-                        if ( (synpred185_InternalSignalDSL()) ) {s = 78;}
-
-                        else if ( (true) ) {s = 2;}
-
-                         
-                        input.seek(index131_1);
-                        if ( s>=0 ) return s;
-                        break;
-            }
-            if (state.backtracking>0) {state.failed=true; return -1;}
-            NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 131, _s, input);
-            error(nvae);
-            throw nvae;
-        }
-    }
-
     class DFA134 extends DFA {
 
         public DFA134(BaseRecognizer recognizer) {
@@ -69007,7 +69773,7 @@
             this.transition = dfa_85;
         }
         public String getDescription() {
-            return "16483:2: ( rule__JvmParameterizedTypeReference__Group_1_4_2__0 )?";
+            return "16476:2: ( rule__JvmParameterizedTypeReference__Group_1__0 )?";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
@@ -69020,7 +69786,7 @@
                         int index134_1 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred188_InternalSignalDSL()) ) {s = 78;}
+                        if ( (synpred182_InternalSignalDSL()) ) {s = 78;}
 
                         else if ( (true) ) {s = 2;}
 
@@ -69036,120 +69802,169 @@
             throw nvae;
         }
     }
+
+    class DFA137 extends DFA {
+
+        public DFA137(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 137;
+            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 "16746: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 LA137_1 = input.LA(1);
+
+                         
+                        int index137_1 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred185_InternalSignalDSL()) ) {s = 78;}
+
+                        else if ( (true) ) {s = 2;}
+
+                         
+                        input.seek(index137_1);
+                        if ( s>=0 ) return s;
+                        break;
+            }
+            if (state.backtracking>0) {state.failed=true; return -1;}
+            NoViableAltException nvae =
+                new NoViableAltException(getDescription(), 137, _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_4 = new BitSet(new long[]{0x0000000000000012L});
-    public static final BitSet FOLLOW_5 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000008L});
-    public static final BitSet FOLLOW_6 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000008L});
+    public static final BitSet FOLLOW_5 = new BitSet(new long[]{0x8000000000000000L});
+    public static final BitSet FOLLOW_6 = new BitSet(new long[]{0x8000000000000002L});
     public static final BitSet FOLLOW_7 = new BitSet(new long[]{0x0000000000000010L});
-    public static final BitSet FOLLOW_8 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000010L});
-    public static final BitSet FOLLOW_9 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000260L});
-    public static final BitSet FOLLOW_10 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000040L});
-    public static final BitSet FOLLOW_11 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000200L});
-    public static final BitSet FOLLOW_12 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_13 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000080L});
-    public static final BitSet FOLLOW_14 = new BitSet(new long[]{0x0000000000000100L});
-    public static final BitSet FOLLOW_15 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000100L});
-    public static final BitSet FOLLOW_16 = new BitSet(new long[]{0x0078000000000000L});
-    public static final BitSet FOLLOW_17 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
-    public static final BitSet FOLLOW_18 = new BitSet(new long[]{0xF800000000000000L,0x0000000000000007L});
-    public static final BitSet FOLLOW_19 = new BitSet(new long[]{0x0780000000000000L});
-    public static final BitSet FOLLOW_20 = new BitSet(new long[]{0x0000800000000000L});
-    public static final BitSet FOLLOW_21 = new BitSet(new long[]{0x0000400000000010L,0x0000008000000000L});
-    public static final BitSet FOLLOW_22 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000400L});
-    public static final BitSet FOLLOW_23 = new BitSet(new long[]{0x0001000000000010L});
-    public static final BitSet FOLLOW_24 = new BitSet(new long[]{0x0000001000000010L});
-    public static final BitSet FOLLOW_25 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000800L});
-    public static final BitSet FOLLOW_26 = new BitSet(new long[]{0x0000000000000000L,0x0000000000001000L});
-    public static final BitSet FOLLOW_27 = new BitSet(new long[]{0x0007E10C080001F0L,0x0000100BFC533910L});
-    public static final BitSet FOLLOW_28 = new BitSet(new long[]{0x0000000000000000L,0x0000000000004000L});
-    public static final BitSet FOLLOW_29 = new BitSet(new long[]{0x0000000000000002L,0x0000000000004000L});
-    public static final BitSet FOLLOW_30 = new BitSet(new long[]{0x0007E10C080001F0L,0x0000100BFC531910L});
-    public static final BitSet FOLLOW_31 = new BitSet(new long[]{0x0000000000002000L});
-    public static final BitSet FOLLOW_32 = new BitSet(new long[]{0x0007E10C080001F0L,0x0000100BFC539910L});
-    public static final BitSet FOLLOW_33 = new BitSet(new long[]{0x0000000000000000L,0x0000000000010000L});
-    public static final BitSet FOLLOW_34 = new BitSet(new long[]{0x0000000000000000L,0x0000000000020000L});
-    public static final BitSet FOLLOW_35 = new BitSet(new long[]{0x0001E00000000010L});
-    public static final BitSet FOLLOW_36 = new BitSet(new long[]{0x000000000C1F0000L});
-    public static final BitSet FOLLOW_37 = new BitSet(new long[]{0x0000000008000000L});
-    public static final BitSet FOLLOW_38 = new BitSet(new long[]{0x0000000006000000L});
-    public static final BitSet FOLLOW_39 = new BitSet(new long[]{0x0000000000004000L});
-    public static final BitSet FOLLOW_40 = new BitSet(new long[]{0x0000000000004002L});
-    public static final BitSet FOLLOW_41 = new BitSet(new long[]{0x0000000000008000L});
-    public static final BitSet FOLLOW_42 = new BitSet(new long[]{0x0000000000008002L});
-    public static final BitSet FOLLOW_43 = new BitSet(new long[]{0x0000000001E00000L});
-    public static final BitSet FOLLOW_44 = new BitSet(new long[]{0x0000000001E00002L});
-    public static final BitSet FOLLOW_45 = new BitSet(new long[]{0x000000000E000000L,0x0000000000040000L});
-    public static final BitSet FOLLOW_46 = new BitSet(new long[]{0x000000000E000002L,0x0000000000040000L});
-    public static final BitSet FOLLOW_47 = new BitSet(new long[]{0x0000000080000010L,0x0000000000001000L});
-    public static final BitSet FOLLOW_48 = new BitSet(new long[]{0x0000000000000000L,0x0000000000040000L});
-    public static final BitSet FOLLOW_49 = new BitSet(new long[]{0x00000003FC000000L});
-    public static final BitSet FOLLOW_50 = new BitSet(new long[]{0x00000003FC000002L});
-    public static final BitSet FOLLOW_51 = new BitSet(new long[]{0x0000000040000000L});
-    public static final BitSet FOLLOW_52 = new BitSet(new long[]{0x0000000004000000L});
-    public static final BitSet FOLLOW_53 = new BitSet(new long[]{0x0000000088000000L});
-    public static final BitSet FOLLOW_54 = new BitSet(new long[]{0x0000000C00000000L});
-    public static final BitSet FOLLOW_55 = new BitSet(new long[]{0x0000000C00000002L});
-    public static final BitSet FOLLOW_56 = new BitSet(new long[]{0x000000F000000000L});
-    public static final BitSet FOLLOW_57 = new BitSet(new long[]{0x000000F000000002L});
-    public static final BitSet FOLLOW_58 = new BitSet(new long[]{0x0000010C00000000L});
-    public static final BitSet FOLLOW_59 = new BitSet(new long[]{0x0000000000000000L,0x0000000000080000L});
-    public static final BitSet FOLLOW_60 = new BitSet(new long[]{0x0000000000000002L,0x0000000000080000L});
-    public static final BitSet FOLLOW_61 = new BitSet(new long[]{0x0000060000000000L});
-    public static final BitSet FOLLOW_62 = new BitSet(new long[]{0x0000080000000000L,0x0000030000000000L});
-    public static final BitSet FOLLOW_63 = new BitSet(new long[]{0x0000080000000002L,0x0000030000000000L});
-    public static final BitSet FOLLOW_64 = new BitSet(new long[]{0x0000080000000000L,0x0000010000000000L});
-    public static final BitSet FOLLOW_65 = new BitSet(new long[]{0x0003E00008000010L});
-    public static final BitSet FOLLOW_66 = new BitSet(new long[]{0x0000000000000000L,0x0000000000021000L});
-    public static final BitSet FOLLOW_67 = new BitSet(new long[]{0x0000000080000010L,0x0000002000001000L});
-    public static final BitSet FOLLOW_68 = new BitSet(new long[]{0x0000000004000000L,0x0000000000004000L});
-    public static final BitSet FOLLOW_69 = new BitSet(new long[]{0x0007E10C880001F0L,0x0000140BFC533910L});
-    public static final BitSet FOLLOW_70 = new BitSet(new long[]{0x0007E10C080001F0L,0x0000100BFC531930L});
-    public static final BitSet FOLLOW_71 = new BitSet(new long[]{0x0007F10C880001F0L,0x00001C0BFC531910L});
-    public static final BitSet FOLLOW_72 = new BitSet(new long[]{0x0000000000000000L,0x0000000000008000L});
-    public static final BitSet FOLLOW_73 = new BitSet(new long[]{0x0000000080000010L,0x0000040000001000L});
-    public static final BitSet FOLLOW_74 = new BitSet(new long[]{0x0007F10C080001F2L,0x0000180BFC531910L});
-    public static final BitSet FOLLOW_75 = new BitSet(new long[]{0x0000000000000000L,0x0000000000002000L});
-    public static final BitSet FOLLOW_76 = new BitSet(new long[]{0x0000000000000000L,0x0000000000100000L});
-    public static final BitSet FOLLOW_77 = new BitSet(new long[]{0x0000000000000000L,0x0000000000200000L});
-    public static final BitSet FOLLOW_78 = new BitSet(new long[]{0x0000000000000000L,0x0000000000400000L});
-    public static final BitSet FOLLOW_79 = new BitSet(new long[]{0x0007E10C880001F0L,0x0000100BFC531910L});
-    public static final BitSet FOLLOW_80 = new BitSet(new long[]{0x0000000080000010L,0x0000000003805020L});
-    public static final BitSet FOLLOW_81 = new BitSet(new long[]{0x0000000080000012L,0x0000000002805000L});
-    public static final BitSet FOLLOW_82 = new BitSet(new long[]{0x0000000000000000L,0x0000000000800000L});
-    public static final BitSet FOLLOW_83 = new BitSet(new long[]{0x0000000080000010L,0x0000000002805000L});
-    public static final BitSet FOLLOW_84 = new BitSet(new long[]{0x0007F10C080001F0L,0x0000180BFC531D10L});
-    public static final BitSet FOLLOW_85 = new BitSet(new long[]{0x0007E10C080001F0L,0x0000100BFC531D10L});
-    public static final BitSet FOLLOW_86 = new BitSet(new long[]{0x0007F10C080001F0L,0x0000180BFC531910L});
-    public static final BitSet FOLLOW_87 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
-    public static final BitSet FOLLOW_88 = new BitSet(new long[]{0x0000000000000000L,0x0000000008000000L});
-    public static final BitSet FOLLOW_89 = new BitSet(new long[]{0x0007F10C080001F0L,0x0000180BFC531930L});
-    public static final BitSet FOLLOW_90 = new BitSet(new long[]{0x0000100000000000L,0x0000080000000000L});
-    public static final BitSet FOLLOW_91 = new BitSet(new long[]{0x0000000000000000L,0x0000000010000000L});
-    public static final BitSet FOLLOW_92 = new BitSet(new long[]{0x0000000008000000L,0x0000000000021000L});
-    public static final BitSet FOLLOW_93 = new BitSet(new long[]{0x0004000000000000L,0x0000100000000000L});
-    public static final BitSet FOLLOW_94 = new BitSet(new long[]{0x0000000000000000L,0x0000000020000000L});
-    public static final BitSet FOLLOW_95 = new BitSet(new long[]{0x00000000000000E0L});
-    public static final BitSet FOLLOW_96 = new BitSet(new long[]{0x00040000000001E0L,0x0000100060030000L});
-    public static final BitSet FOLLOW_97 = new BitSet(new long[]{0x0000000000000000L,0x0000000000022000L});
-    public static final BitSet FOLLOW_98 = new BitSet(new long[]{0x0000000000000002L,0x0000000000020000L});
-    public static final BitSet FOLLOW_99 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
-    public static final BitSet FOLLOW_100 = new BitSet(new long[]{0x0000000000000000L,0x0000000100000000L});
-    public static final BitSet FOLLOW_101 = new BitSet(new long[]{0x0000000000000000L,0x0000000200000000L});
-    public static final BitSet FOLLOW_102 = new BitSet(new long[]{0x0000000000000000L,0x0000001400000000L});
-    public static final BitSet FOLLOW_103 = new BitSet(new long[]{0x0000000000000000L,0x0000000400000000L});
-    public static final BitSet FOLLOW_104 = new BitSet(new long[]{0x0000000000000002L,0x0000001000000000L});
-    public static final BitSet FOLLOW_105 = new BitSet(new long[]{0x0000000000000000L,0x0000000800000000L});
-    public static final BitSet FOLLOW_106 = new BitSet(new long[]{0x0000080000000000L});
-    public static final BitSet FOLLOW_107 = new BitSet(new long[]{0x0000080000000002L});
-    public static final BitSet FOLLOW_108 = new BitSet(new long[]{0x00000000000000C0L});
-    public static final BitSet FOLLOW_109 = new BitSet(new long[]{0x0000000080000010L,0x0000000000003000L});
-    public static final BitSet FOLLOW_110 = new BitSet(new long[]{0x0002200000000000L});
-    public static final BitSet FOLLOW_111 = new BitSet(new long[]{0x0000000000000000L,0x0000004000000000L});
-    public static final BitSet FOLLOW_112 = new BitSet(new long[]{0x0000000000000002L,0x0000004000000000L});
-    public static final BitSet FOLLOW_113 = new BitSet(new long[]{0x0000001000000000L});
+    public static final BitSet FOLLOW_8 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000001L});
+    public static final BitSet FOLLOW_9 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000006L});
+    public static final BitSet FOLLOW_10 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000004L});
+    public static final BitSet FOLLOW_11 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000004L});
+    public static final BitSet FOLLOW_12 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000008L});
+    public static final BitSet FOLLOW_13 = new BitSet(new long[]{0x0000000000000100L});
+    public static final BitSet FOLLOW_14 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000010L});
+    public static final BitSet FOLLOW_15 = new BitSet(new long[]{0x01E0000000000000L});
+    public static final BitSet FOLLOW_16 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000022L});
+    public static final BitSet FOLLOW_17 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000020L});
+    public static final BitSet FOLLOW_18 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000020L});
+    public static final BitSet FOLLOW_19 = new BitSet(new long[]{0x1E00000000000000L});
+    public static final BitSet FOLLOW_20 = new BitSet(new long[]{0x0018000000000000L,0x0000000000000080L});
+    public static final BitSet FOLLOW_21 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000040L});
+    public static final BitSet FOLLOW_22 = new BitSet(new long[]{0x6000000000000000L,0x0000000000000001L});
+    public static final BitSet FOLLOW_23 = new BitSet(new long[]{0x0018000000000000L,0x0000000000000002L});
+    public static final BitSet FOLLOW_24 = new BitSet(new long[]{0x0018000000000002L});
+    public static final BitSet FOLLOW_25 = new BitSet(new long[]{0x0000800000000000L});
+    public static final BitSet FOLLOW_26 = new BitSet(new long[]{0x0000400000000010L,0x0000002000000000L});
+    public static final BitSet FOLLOW_27 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000100L});
+    public static final BitSet FOLLOW_28 = new BitSet(new long[]{0x0001000000000010L});
+    public static final BitSet FOLLOW_29 = new BitSet(new long[]{0x0000001000000010L});
+    public static final BitSet FOLLOW_30 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
+    public static final BitSet FOLLOW_31 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000400L});
+    public static final BitSet FOLLOW_32 = new BitSet(new long[]{0x0007E10C080001F0L,0x00000402FF14CE11L});
+    public static final BitSet FOLLOW_33 = new BitSet(new long[]{0x0000000000000000L,0x0000000000001000L});
+    public static final BitSet FOLLOW_34 = new BitSet(new long[]{0x0000000000000002L,0x0000000000001000L});
+    public static final BitSet FOLLOW_35 = new BitSet(new long[]{0x0007E10C080001F0L,0x00000402FF14C611L});
+    public static final BitSet FOLLOW_36 = new BitSet(new long[]{0x0000000000002000L});
+    public static final BitSet FOLLOW_37 = new BitSet(new long[]{0x0007E10C080001F0L,0x00000402FF14E611L});
+    public static final BitSet FOLLOW_38 = new BitSet(new long[]{0x0000000000000000L,0x0000000000004000L});
+    public static final BitSet FOLLOW_39 = new BitSet(new long[]{0x0000000000000000L,0x0000000000008000L});
+    public static final BitSet FOLLOW_40 = new BitSet(new long[]{0x0001E00000000010L});
+    public static final BitSet FOLLOW_41 = new BitSet(new long[]{0x000000000C1F0000L});
+    public static final BitSet FOLLOW_42 = new BitSet(new long[]{0x0000000008000000L});
+    public static final BitSet FOLLOW_43 = new BitSet(new long[]{0x0000000006000000L});
+    public static final BitSet FOLLOW_44 = new BitSet(new long[]{0x0000000000004000L});
+    public static final BitSet FOLLOW_45 = new BitSet(new long[]{0x0000000000004002L});
+    public static final BitSet FOLLOW_46 = new BitSet(new long[]{0x0000000000008000L});
+    public static final BitSet FOLLOW_47 = new BitSet(new long[]{0x0000000000008002L});
+    public static final BitSet FOLLOW_48 = new BitSet(new long[]{0x0000000001E00000L});
+    public static final BitSet FOLLOW_49 = new BitSet(new long[]{0x0000000001E00002L});
+    public static final BitSet FOLLOW_50 = new BitSet(new long[]{0x000000000E000000L,0x0000000000010000L});
+    public static final BitSet FOLLOW_51 = new BitSet(new long[]{0x000000000E000002L,0x0000000000010000L});
+    public static final BitSet FOLLOW_52 = new BitSet(new long[]{0x0000000080000010L,0x0000000000000400L});
+    public static final BitSet FOLLOW_53 = new BitSet(new long[]{0x0000000000000000L,0x0000000000010000L});
+    public static final BitSet FOLLOW_54 = new BitSet(new long[]{0x00000003FC000000L});
+    public static final BitSet FOLLOW_55 = new BitSet(new long[]{0x00000003FC000002L});
+    public static final BitSet FOLLOW_56 = new BitSet(new long[]{0x0000000040000000L});
+    public static final BitSet FOLLOW_57 = new BitSet(new long[]{0x0000000004000000L});
+    public static final BitSet FOLLOW_58 = new BitSet(new long[]{0x0000000088000000L});
+    public static final BitSet FOLLOW_59 = new BitSet(new long[]{0x0000000C00000000L});
+    public static final BitSet FOLLOW_60 = new BitSet(new long[]{0x0000000C00000002L});
+    public static final BitSet FOLLOW_61 = new BitSet(new long[]{0x000000F000000000L});
+    public static final BitSet FOLLOW_62 = new BitSet(new long[]{0x000000F000000002L});
+    public static final BitSet FOLLOW_63 = new BitSet(new long[]{0x0000010C00000000L});
+    public static final BitSet FOLLOW_64 = new BitSet(new long[]{0x0000000000000000L,0x0000000000020000L});
+    public static final BitSet FOLLOW_65 = new BitSet(new long[]{0x0000000000000002L,0x0000000000020000L});
+    public static final BitSet FOLLOW_66 = new BitSet(new long[]{0x0000060000000000L});
+    public static final BitSet FOLLOW_67 = new BitSet(new long[]{0x0000080000000000L,0x000000C000000000L});
+    public static final BitSet FOLLOW_68 = new BitSet(new long[]{0x0000080000000002L,0x000000C000000000L});
+    public static final BitSet FOLLOW_69 = new BitSet(new long[]{0x0000080000000000L,0x0000004000000000L});
+    public static final BitSet FOLLOW_70 = new BitSet(new long[]{0x0003E00008000010L});
+    public static final BitSet FOLLOW_71 = new BitSet(new long[]{0x0000000000000000L,0x0000000000008400L});
+    public static final BitSet FOLLOW_72 = new BitSet(new long[]{0x0000000080000010L,0x0000000800000400L});
+    public static final BitSet FOLLOW_73 = new BitSet(new long[]{0x0000000004000000L,0x0000000000001000L});
+    public static final BitSet FOLLOW_74 = new BitSet(new long[]{0x0007E10C880001F0L,0x00000502FF14CE11L});
+    public static final BitSet FOLLOW_75 = new BitSet(new long[]{0x0007E10C080001F0L,0x00000402FF14C613L});
+    public static final BitSet FOLLOW_76 = new BitSet(new long[]{0x0007F10C880001F0L,0x00000702FF14C611L});
+    public static final BitSet FOLLOW_77 = new BitSet(new long[]{0x0000000000000000L,0x0000000000002000L});
+    public static final BitSet FOLLOW_78 = new BitSet(new long[]{0x0000000080000010L,0x0000010000000400L});
+    public static final BitSet FOLLOW_79 = new BitSet(new long[]{0x0007F10C080001F2L,0x00000602FF14C611L});
+    public static final BitSet FOLLOW_80 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000800L});
+    public static final BitSet FOLLOW_81 = new BitSet(new long[]{0x0000000000000000L,0x0000000000040000L});
+    public static final BitSet FOLLOW_82 = new BitSet(new long[]{0x0000000000000000L,0x0000000000080000L});
+    public static final BitSet FOLLOW_83 = new BitSet(new long[]{0x0000000000000000L,0x0000000000100000L});
+    public static final BitSet FOLLOW_84 = new BitSet(new long[]{0x0007E10C880001F0L,0x00000402FF14C611L});
+    public static final BitSet FOLLOW_85 = new BitSet(new long[]{0x0000000080000010L,0x0000000000E01402L});
+    public static final BitSet FOLLOW_86 = new BitSet(new long[]{0x0000000080000012L,0x0000000000A01400L});
+    public static final BitSet FOLLOW_87 = new BitSet(new long[]{0x0000000000000000L,0x0000000000200000L});
+    public static final BitSet FOLLOW_88 = new BitSet(new long[]{0x0000000080000010L,0x0000000000A01400L});
+    public static final BitSet FOLLOW_89 = new BitSet(new long[]{0x0007F10C080001F0L,0x00000602FF14C711L});
+    public static final BitSet FOLLOW_90 = new BitSet(new long[]{0x0007E10C080001F0L,0x00000402FF14C711L});
+    public static final BitSet FOLLOW_91 = new BitSet(new long[]{0x0007F10C080001F0L,0x00000602FF14C611L});
+    public static final BitSet FOLLOW_92 = new BitSet(new long[]{0x0000000000000000L,0x0000000001000000L});
+    public static final BitSet FOLLOW_93 = new BitSet(new long[]{0x0000000000000000L,0x0000000002000000L});
+    public static final BitSet FOLLOW_94 = new BitSet(new long[]{0x0007F10C080001F0L,0x00000602FF14C613L});
+    public static final BitSet FOLLOW_95 = new BitSet(new long[]{0x0000100000000000L,0x0000020000000000L});
+    public static final BitSet FOLLOW_96 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
+    public static final BitSet FOLLOW_97 = new BitSet(new long[]{0x0000000008000000L,0x0000000000008400L});
+    public static final BitSet FOLLOW_98 = new BitSet(new long[]{0x0004000000000000L,0x0000040000000000L});
+    public static final BitSet FOLLOW_99 = new BitSet(new long[]{0x0000000000000000L,0x0000000008000000L});
+    public static final BitSet FOLLOW_100 = new BitSet(new long[]{0x00000000000000E0L});
+    public static final BitSet FOLLOW_101 = new BitSet(new long[]{0x00040000000001E0L,0x000004001800C000L});
+    public static final BitSet FOLLOW_102 = new BitSet(new long[]{0x0000000000000000L,0x0000000000008800L});
+    public static final BitSet FOLLOW_103 = new BitSet(new long[]{0x0000000000000002L,0x0000000000008000L});
+    public static final BitSet FOLLOW_104 = new BitSet(new long[]{0x0000000000000000L,0x0000000020000000L});
+    public static final BitSet FOLLOW_105 = new BitSet(new long[]{0x0000000000000000L,0x0000000040000000L});
+    public static final BitSet FOLLOW_106 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
+    public static final BitSet FOLLOW_107 = new BitSet(new long[]{0x0000000000000000L,0x0000000500000000L});
+    public static final BitSet FOLLOW_108 = new BitSet(new long[]{0x0000000000000000L,0x0000000100000000L});
+    public static final BitSet FOLLOW_109 = new BitSet(new long[]{0x0000000000000002L,0x0000000400000000L});
+    public static final BitSet FOLLOW_110 = new BitSet(new long[]{0x0000000000000000L,0x0000000200000000L});
+    public static final BitSet FOLLOW_111 = new BitSet(new long[]{0x0000080000000000L});
+    public static final BitSet FOLLOW_112 = new BitSet(new long[]{0x0000080000000002L});
+    public static final BitSet FOLLOW_113 = new BitSet(new long[]{0x00000000000000C0L});
+    public static final BitSet FOLLOW_114 = new BitSet(new long[]{0x0000000080000010L,0x0000000000000C00L});
+    public static final BitSet FOLLOW_115 = new BitSet(new long[]{0x0002200000000000L});
+    public static final BitSet FOLLOW_116 = new BitSet(new long[]{0x0000000000000000L,0x0000001000000000L});
+    public static final BitSet FOLLOW_117 = new BitSet(new long[]{0x0000000000000002L,0x0000001000000000L});
+    public static final BitSet FOLLOW_118 = new BitSet(new long[]{0x0000001000000000L});
 
 }
\ No newline at end of file
diff --git a/org.eclipse.osbp.xtext.signal.ide/xtend-gen/README.txt b/org.eclipse.osbp.xtext.signal.ide/xtend-gen/README.txt
new file mode 100644
index 0000000..1cc0796
--- /dev/null
+++ b/org.eclipse.osbp.xtext.signal.ide/xtend-gen/README.txt
@@ -0,0 +1 @@
+delete me later
\ No newline at end of file
diff --git a/org.eclipse.osbp.xtext.signal.ui.tests/src-gen/README.txt b/org.eclipse.osbp.xtext.signal.ui.tests/src-gen/README.txt
new file mode 100644
index 0000000..1cc0796
--- /dev/null
+++ b/org.eclipse.osbp.xtext.signal.ui.tests/src-gen/README.txt
@@ -0,0 +1 @@
+delete me later
\ No newline at end of file
diff --git a/org.eclipse.osbp.xtext.signal.ui.tests/src/README.txt b/org.eclipse.osbp.xtext.signal.ui.tests/src/README.txt
new file mode 100644
index 0000000..1cc0796
--- /dev/null
+++ b/org.eclipse.osbp.xtext.signal.ui.tests/src/README.txt
@@ -0,0 +1 @@
+delete me later
\ No newline at end of file
diff --git a/org.eclipse.osbp.xtext.signal.ui.tests/xtend-gen/README.txt b/org.eclipse.osbp.xtext.signal.ui.tests/xtend-gen/README.txt
new file mode 100644
index 0000000..1cc0796
--- /dev/null
+++ b/org.eclipse.osbp.xtext.signal.ui.tests/xtend-gen/README.txt
@@ -0,0 +1 @@
+delete me later
\ 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 03f3dfc..15665b6 100644
--- a/org.eclipse.osbp.xtext.signal.ui/META-INF/MANIFEST.MF
+++ b/org.eclipse.osbp.xtext.signal.ui/META-INF/MANIFEST.MF
@@ -33,11 +33,8 @@
  org.eclipse.wb.core.java;bundle-version="1.9.0",
  org.eclipse.osbp.xtext.oxtype.ide;bundle-version="0.9.0"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
-Export-Package: org.eclipse.osbp.xtext.signal.ui,
- org.eclipse.osbp.xtext.signal.ui.contentassist,
+Export-Package: org.eclipse.osbp.xtext.signal.ui.contentassist,
  org.eclipse.osbp.xtext.signal.ui.internal,
- org.eclipse.osbp.xtext.signal.ui.labeling,
- org.eclipse.osbp.xtext.signal.ui.outline,
  org.eclipse.osbp.xtext.signal.ui.quickfix
 Bundle-Activator: org.eclipse.osbp.xtext.signal.ui.internal.SignalActivator
 Import-Package: org.apache.log4j
diff --git a/org.eclipse.osbp.xtext.signal.ui/about.html b/org.eclipse.osbp.xtext.signal.ui/about.html
deleted file mode 100644
index 64c0598..0000000
--- a/org.eclipse.osbp.xtext.signal.ui/about.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
-<title>About</title>
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>June 1, 2016</p>	
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
-indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available 
-at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
-being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content.  Check the Redistributor's license that was 
-provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content
-and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/org.eclipse.osbp.xtext.signal.ui/about_files/README.txt b/org.eclipse.osbp.xtext.signal.ui/about_files/README.txt
deleted file mode 100644
index cc50489..0000000
--- a/org.eclipse.osbp.xtext.signal.ui/about_files/README.txt
+++ /dev/null
@@ -1 +0,0 @@
-All external licenses referenced in about file go here
\ No newline at end of file
diff --git a/org.eclipse.osbp.xtext.signal.ui/build.properties b/org.eclipse.osbp.xtext.signal.ui/build.properties
index 4933afd..395f61f 100644
--- a/org.eclipse.osbp.xtext.signal.ui/build.properties
+++ b/org.eclipse.osbp.xtext.signal.ui/build.properties
@@ -5,12 +5,19 @@
                META-INF/,\
                plugin.xml,\
                LICENSE.txt,\
-               about.html,\
                about.ini,\
                about.mappings,\
                about.properties,\
-               about_files/,\
                epl-v10.html,\
                license.html,\
-               notice.html
+               .settings/,\
+               i18n/,\
+               templates/,\
+               icons/
 bin.excludes = **/*.xtend
+src.includes = LICENSE.txt,\
+               about.ini,\
+               about.mappings,\
+               about.properties,\
+               epl-v10.html,\
+               license.html
diff --git a/org.eclipse.osbp.xtext.signal.ui/i18n/I18N.properties b/org.eclipse.osbp.xtext.signal.ui/i18n/I18N.properties
new file mode 100644
index 0000000..3caf5be
--- /dev/null
+++ b/org.eclipse.osbp.xtext.signal.ui/i18n/I18N.properties
@@ -0,0 +1,6 @@
+#Generated by Eclipse Messages Editor (Eclipse Babel)
+#
+#Mon Jan 16 16:10:56 CET 2017
+
+org.eclipse.osbp.xtext.signal         = The signal dsl
+org.eclipse.osbp.xtext.signal.Watcher = Watcher\n
diff --git a/org.eclipse.osbp.xtext.signal.ui/icons/dsl_signal.png b/org.eclipse.osbp.xtext.signal.ui/icons/dsl_signal.png
new file mode 100644
index 0000000..58ea4de
--- /dev/null
+++ b/org.eclipse.osbp.xtext.signal.ui/icons/dsl_signal.png
Binary files differ
diff --git a/org.eclipse.osbp.xtext.signal.ui/notice.html b/org.eclipse.osbp.xtext.signal.ui/notice.html
deleted file mode 100644
index c3d34c3..0000000
--- a/org.eclipse.osbp.xtext.signal.ui/notice.html
+++ /dev/null
@@ -1,107 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1" ?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>Eclipse Foundation Software User Agreement</title>
-</head>
-
-<body lang="EN-US">
-<h2>Eclipse Foundation Software User Agreement</h2>
-<p>April 9, 2014</p>
-
-<h3>Usage Of Content</h3>
-
-<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
-   (COLLECTIVELY &quot;CONTENT&quot;).  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
-   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
-   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
-   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
-   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
-
-<h3>Applicable Licenses</h3>
-
-<p>Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 1.0
-   (&quot;EPL&quot;).  A copy of the EPL is provided with this Content and is also available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-   For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse Foundation source code
-   repository (&quot;Repository&quot;) in software modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
-
-<ul>
-       <li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content.  Typical modules may include plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;).</li>
-       <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&trade; ARchive) in a directory named &quot;plugins&quot;.</li>
-       <li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.  Each Feature may be packaged as a sub-directory in a directory named &quot;features&quot;.  Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of the Plug-ins
-      and/or Fragments associated with that Feature.</li>
-       <li>Features may also include other Features (&quot;Included Features&quot;). Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</li>
-</ul>
-
-<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
-Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;).  Abouts and Feature Licenses may be located in any directory of a Download or Module
-including, but not limited to the following locations:</p>
-
-<ul>
-       <li>The top-level (root) directory</li>
-       <li>Plug-in and Fragment directories</li>
-       <li>Inside Plug-ins and Fragments packaged as JARs</li>
-       <li>Sub-directories of the directory named &quot;src&quot; of certain Plug-ins</li>
-       <li>Feature directories</li>
-</ul>
-
-<p>Note: if a Feature made available by the Eclipse Foundation is installed using the Provisioning Technology (as defined below), you must agree to a license (&quot;Feature Update License&quot;) during the
-installation process.  If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
-inform you where you can locate them.  Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot; found within a Feature.
-Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
-that directory.</p>
-
-<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.  SOME OF THESE
-OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
-
-<ul>
-       <li>Eclipse Distribution License Version 1.0 (available at <a href="http://www.eclipse.org/licenses/edl-v10.html">http://www.eclipse.org/licenses/edl-v1.0.html</a>)</li>
-       <li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
-       <li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
-       <li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
-       <li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
-</ul>
-
-<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT.  If no About, Feature License, or Feature Update License is provided, please
-contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.</p>
-
-
-<h3>Use of Provisioning Technology</h3>
-
-<p>The Eclipse Foundation makes available provisioning software, examples of which include, but are not limited to, p2 and the Eclipse
-   Update Manager (&quot;Provisioning Technology&quot;) for the purpose of allowing users to install software, documentation, information and/or
-   other materials (collectively &quot;Installable Software&quot;). This capability is provided with the intent of allowing such users to
-   install, extend and update Eclipse-based products. Information about packaging Installable Software is available at <a
-       href="http://eclipse.org/equinox/p2/repository_packaging.html">http://eclipse.org/equinox/p2/repository_packaging.html</a>
-   (&quot;Specification&quot;).</p>
-
-<p>You may use Provisioning Technology to allow other parties to install Installable Software. You shall be responsible for enabling the
-   applicable license agreements relating to the Installable Software to be presented to, and accepted by, the users of the Provisioning Technology
-   in accordance with the Specification. By using Provisioning Technology in such a manner and making it available in accordance with the
-   Specification, you further acknowledge your agreement to, and the acquisition of all necessary rights to permit the following:</p>
-
-<ol>
-       <li>A series of actions may occur (&quot;Provisioning Process&quot;) in which a user may execute the Provisioning Technology
-       on a machine (&quot;Target Machine&quot;) with the intent of installing, extending or updating the functionality of an Eclipse-based
-       product.</li>
-       <li>During the Provisioning Process, the Provisioning Technology may cause third party Installable Software or a portion thereof to be
-       accessed and copied to the Target Machine.</li>
-       <li>Pursuant to the Specification, you will provide to the user the terms and conditions that govern the use of the Installable
-       Software (&quot;Installable Software Agreement&quot;) and such Installable Software Agreement shall be accessed from the Target
-       Machine in accordance with the Specification. Such Installable Software Agreement must inform the user of the terms and conditions that govern
-       the Installable Software and must solicit acceptance by the end user in the manner prescribed in such Installable Software Agreement. Upon such
-       indication of agreement by the user, the provisioning Technology will complete installation of the Installable Software.</li>
-</ol>
-
-<h3>Cryptography</h3>
-
-<p>Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to
-   another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import,
-   possession, or use, and re-export of encryption software, to see if this is permitted.</p>
-
-<p><small>Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.</small></p>
-</body>
-</html>
diff --git a/org.eclipse.osbp.xtext.signal.ui/plugin.xml b/org.eclipse.osbp.xtext.signal.ui/plugin.xml
index c4f9af7..6ce432f 100644
--- a/org.eclipse.osbp.xtext.signal.ui/plugin.xml
+++ b/org.eclipse.osbp.xtext.signal.ui/plugin.xml
@@ -1,16 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <?eclipse version="3.0"?>
+
 <plugin>
 	<extension
 		point="org.eclipse.ui.editors">
 		<editor
-			class="org.eclipse.osbp.xtext.signal.ui.SignalDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.XtextEditor"
-			contributorClass="org.eclipse.ui.editors.text.TextEditorActionContributor"
-			default="true"
-			extensions="signal"
-			id="org.eclipse.osbp.xtext.signal.SignalDSL"
-			matchingStrategy="org.eclipse.osbp.xtext.signal.ui.SignalDSLExecutableExtensionFactory:org.eclipse.xtext.xbase.ui.editor.JavaEditorInputMatcher"
-			name="SignalDSL Editor">
+        class="org.eclipse.osbp.xtext.signal.ui.SignalDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.XtextEditor"
+        contributorClass="org.eclipse.ui.editors.text.TextEditorActionContributor"
+        default="true"
+        extensions="signal"
+        icon="icons/dsl_signal.png"
+        id="org.eclipse.osbp.xtext.signal.SignalDSL"
+        matchingStrategy="org.eclipse.osbp.xtext.signal.ui.SignalDSLExecutableExtensionFactory:org.eclipse.xtext.xbase.ui.editor.JavaEditorInputMatcher"
+        name="OSBP SignalDSL Editor">
 		</editor>
 	</extension>
 	<extension
@@ -81,7 +83,7 @@
 		<page
 			class="org.eclipse.osbp.xtext.signal.ui.SignalDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.preferences.LanguageRootPreferencePage"
 			id="org.eclipse.osbp.xtext.signal.SignalDSL"
-			name="SignalDSL">
+			name="OSBP SignalDSL">
 			<keywordReference id="org.eclipse.osbp.xtext.signal.ui.keyword_SignalDSL"/>
 		</page>
 		<page
@@ -102,9 +104,10 @@
 	<extension
 			point="org.eclipse.ui.propertyPages">
 		<page
-			class="org.eclipse.osbp.xtext.signal.ui.SignalDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.preferences.LanguageRootPreferencePage"
-			id="org.eclipse.osbp.xtext.signal.SignalDSL"
-			name="SignalDSL">
+        class="org.eclipse.osbp.xtext.signal.ui.SignalDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.preferences.LanguageRootPreferencePage"
+        icon="icons/dsl_signal.png"
+        id="org.eclipse.osbp.xtext.signal.SignalDSL"
+        name="OSBP SignalDSL">
 			<keywordReference id="org.eclipse.osbp.xtext.signal.ui.keyword_SignalDSL"/>
 			<enabledWhen>
 				<adapt type="org.eclipse.core.resources.IProject"/>
@@ -116,7 +119,7 @@
 		point="org.eclipse.ui.keywords">
 		<keyword
 			id="org.eclipse.osbp.xtext.signal.ui.keyword_SignalDSL"
-			label="SignalDSL"/>
+			label="OSBP SignalDSL"/>
 	</extension>
 	<extension
 		point="org.eclipse.ui.commands">
@@ -205,7 +208,9 @@
 			</activeWhen>
 		</handler>
 	</extension>
+	
 	<!-- adding resource factories -->
+	
 	<extension
 		point="org.eclipse.emf.ecore.extension_parser">
 		<parser
@@ -219,24 +224,26 @@
 			uriExtension="signal">
 		</resourceServiceProvider>
 	</extension>
+	
+	
 	<!-- marker definitions for org.eclipse.osbp.xtext.signal.SignalDSL -->
 	<extension
 			id="signaldsl.check.fast"
-			name="SignalDSL Problem"
+			name="OSBP SignalDSL Problem"
 			point="org.eclipse.core.resources.markers">
 		<super type="org.eclipse.xtext.ui.check.fast"/>
 		<persistent value="true"/>
 	</extension>
 	<extension
 			id="signaldsl.check.normal"
-			name="SignalDSL Problem"
+			name="OSBP SignalDSL Problem"
 			point="org.eclipse.core.resources.markers">
 		<super type="org.eclipse.xtext.ui.check.normal"/>
 		<persistent value="true"/>
 	</extension>
 	<extension
 			id="signaldsl.check.expensive"
-			name="SignalDSL Problem"
+			name="OSBP SignalDSL Problem"
 			point="org.eclipse.core.resources.markers">
 		<super type="org.eclipse.xtext.ui.check.expensive"/>
 		<persistent value="true"/>
@@ -257,10 +264,11 @@
 	</extension>
 	<extension point="org.eclipse.ui.propertyPages">
 		<page
-			category="org.eclipse.osbp.xtext.signal.SignalDSL"
-			class="org.eclipse.osbp.xtext.signal.ui.SignalDSLExecutableExtensionFactory:org.eclipse.xtext.builder.preferences.BuilderPreferencePage"
-			id="org.eclipse.osbp.xtext.signal.SignalDSL.compiler.propertyPage"
-			name="Compiler">
+        category="org.eclipse.osbp.xtext.signal.SignalDSL"
+        class="org.eclipse.osbp.xtext.signal.ui.SignalDSLExecutableExtensionFactory:org.eclipse.xtext.builder.preferences.BuilderPreferencePage"
+        icon="icons/dsl_signal.png"
+        id="org.eclipse.osbp.xtext.signal.SignalDSL.compiler.propertyPage"
+        name="Compiler">
 			<keywordReference id="org.eclipse.osbp.xtext.signal.ui.keyword_SignalDSL"/>
 			<enabledWhen>
 				<adapt type="org.eclipse.core.resources.IProject"/>
@@ -289,6 +297,7 @@
 			</activeWhen>
 		</handler>
 	</extension>
+	
 	<!-- Quick Outline -->
 	<extension
 		point="org.eclipse.ui.handlers">
@@ -384,6 +393,7 @@
 			<keywordReference id="org.eclipse.osbp.xtext.signal.ui.keyword_SignalDSL"/>
 		</page>
 	</extension>
+	
 	<!-- Type Hierarchy  -->
 	<extension point="org.eclipse.ui.handlers">
 		<handler 
@@ -560,10 +570,35 @@
 			extensions="signal">
 		</provider>
 	</extension>
-	<extension point="org.eclipse.team.core.fileTypes">
-		<fileTypes
-			extension="signal"
-			type="text">
-		</fileTypes>
-	</extension>
+	
+	<!-- Organize imports  -->
+    <extension
+        point="org.eclipse.ui.handlers">
+        <handler
+            class="org.eclipse.osbp.xtext.signal.ui.SignalDSLExecutableExtensionFactory:org.eclipse.osbp.xtext.oxtype.ui.imports.OXTypeOrganizeImportsHandler"
+            commandId="org.eclipse.xtext.xbase.ui.organizeImports">
+               <activeWhen>
+                <reference
+                    definitionId="org.eclipse.osbp.xtext.signal.SignalDSL.Editor.opened">
+                </reference>
+            </activeWhen>
+        </handler>
+    </extension>
+
+ <extension point="org.eclipse.ui.menus">
+        <menuContribution
+            locationURI="menu:#xtext.ui.SourceMenu?after=xtext.ui.ImportsSeparator">
+             <command
+                 commandId="org.eclipse.xtext.xbase.ui.organizeImports"
+                 style="push"
+                 tooltip="Organize Imports">
+                <visibleWhen checkEnabled="false">
+                    <reference
+                        definitionId="org.eclipse.osbp.xtext.signal.SignalDSL.Editor.opened">
+                    </reference>
+                </visibleWhen>
+            </command>  
+        </menuContribution>
+    </extension>
+	
 </plugin>
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 f8da162..b8bc9ec 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
@@ -43,9 +43,6 @@
 	public void completeSignalPackage_Watchers(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
 	}
-	public void completeSignalPackage_Handlers(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
-		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
-	}
 	public void completeSignalWatcher_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
 	}
@@ -55,30 +52,36 @@
 	public void completeSignalWatcher_Signal(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
 	}
-	public void completeSignalHandler_Watcher(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
-		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
-	}
-	public void completeSignalHandler_Handler(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+	public void completeSignalWatcher_Handlers(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
 	}
-	public void completeSignalHandler_Notification(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+	public void completeSignalHandler_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
 	}
-	public void completeSignalNotification_Event(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+	public void completeSignalHandler_ActionType(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
 	}
-	public void completeSignalNotification_Message(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+	public void completeSignalHandler_Data(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeSignalHandler_Filemask(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeListTransfer_Executiontype(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeListTransfer_Interchanges(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeSingleTransfer_Interchange(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) {
 		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
 	}
 	public void completeSignalDatainterchange_DataRef(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
 	}
-	public void completeSignalHandling_ActionType(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
-		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
-	}
-	public void completeSignalHandling_DataRef(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
-		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
-	}
 
 	public void complete_SignalModel(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		// subclasses may override
@@ -92,7 +95,13 @@
 	public void complete_SignalHandler(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		// subclasses may override
 	}
-	public void complete_SignalNotification(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+	public void complete_DataTransfer(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_ListTransfer(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_SingleTransfer(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		// subclasses may override
 	}
 	public void complete_SignalDatainterchange(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
@@ -101,16 +110,16 @@
 	public void complete_SignalProcessor(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		// subclasses may override
 	}
-	public void complete_SignalHandling(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+	public void complete_SignalActionEnum(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		// subclasses may override
 	}
 	public void complete_SignalTypeEnum(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		// subclasses may override
 	}
-	public void complete_SignalNotificationEnum(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+	public void complete_SignalHandlerTypeEnum(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		// subclasses may override
 	}
-	public void complete_SignalHandlerTypeEnum(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+	public void complete_SignalExecutionTypeEnum(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		// subclasses may override
 	}
 	public void complete_TRANSLATABLEID(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 ce743e5..5523da7 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
@@ -19,9 +19,14 @@
 import com.google.inject.Inject
 import org.eclipse.emf.ecore.EObject
 import org.eclipse.osbp.xtext.basic.ui.contentassist.BasicDSLProposalProviderHelper
+import org.eclipse.osbp.xtext.signal.SignalHandler
+import org.eclipse.osbp.xtext.signal.SignalHandlerTypeEnum
+import org.eclipse.osbp.xtext.signal.SignalTypeEnum
+import org.eclipse.osbp.xtext.signal.SignalWatcher
 import org.eclipse.swt.widgets.DirectoryDialog
 import org.eclipse.wb.internal.core.nls.ui.ChooseLocaleDialog
 import org.eclipse.xtext.Assignment
+import org.eclipse.xtext.EcoreUtil2
 import org.eclipse.xtext.RuleCall
 import org.eclipse.xtext.common.ui.contentassist.TerminalsProposalProvider
 import org.eclipse.xtext.ui.editor.contentassist.ConfigurableCompletionProposal
@@ -46,7 +51,7 @@
 	override completeSignalWatcher_Directory(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		directoryPickerProposal(model, context, acceptor)
 	}
-	
+
 	def directoryPickerProposal(EObject model, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		var dirName = createCompletionProposal("Select directory...", context) as ConfigurableCompletionProposal
 		if (dirName !== null) {
@@ -57,11 +62,36 @@
 		acceptor.accept(dirName)
 	}
 	
-		/**
+	/**
 	 * This method decided which proposals will be valid. 
 	 */
 	override protected boolean isValidProposal(String proposal, String prefix, ContentAssistContext context) {
 		var result = super.isValidProposal(proposal, prefix, context)
+		if (context.currentModel instanceof SignalHandler){
+			result = isValidProposalSignalHandlerType(proposal, prefix, (context.currentModel as SignalHandler), result)
+		}
+		return result
+	}
+	
+	def private boolean isValidProposalSignalHandlerType(String proposal, String prefix, SignalHandler handler, boolean result) {
+		
+		if(handler !== null){			
+			val watcher = EcoreUtil2.resolve(handler.eContainer, handler.eResource)
+			if(watcher !== null && watcher instanceof SignalWatcher){
+				switch((watcher as SignalWatcher).signal) {
+					case SignalTypeEnum.ALL:
+						return true
+					case SignalTypeEnum.CREATESIGNALS:
+						return SignalHandlerTypeEnum.DOAFTERCREATE.literal.equals(proposal)
+					case SignalTypeEnum.DELETESIGNALS:
+						return SignalHandlerTypeEnum.DOAFTERDELETE.literal.equals(proposal)
+					case SignalTypeEnum.MODIFYSIGNALS:
+						return SignalHandlerTypeEnum.DOAFTERMODIFY.literal.equals(proposal)
+					default:
+						return false
+				}
+			}
+		}
 		return result
 	}
 	
diff --git a/org.eclipse.osbp.xtext.signal.ui/templates/templates.xml b/org.eclipse.osbp.xtext.signal.ui/templates/templates.xml
new file mode 100644
index 0000000..07a788c
--- /dev/null
+++ b/org.eclipse.osbp.xtext.signal.ui/templates/templates.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><templates>
+</templates>
\ No newline at end of file
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 815dd0c..c2c5e3f 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
@@ -17,9 +17,14 @@
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.jface.text.contentassist.ICompletionProposal;
 import org.eclipse.osbp.xtext.basic.ui.contentassist.BasicDSLProposalProviderHelper;
+import org.eclipse.osbp.xtext.signal.SignalHandler;
+import org.eclipse.osbp.xtext.signal.SignalHandlerTypeEnum;
+import org.eclipse.osbp.xtext.signal.SignalTypeEnum;
+import org.eclipse.osbp.xtext.signal.SignalWatcher;
 import org.eclipse.osbp.xtext.signal.ui.contentassist.AbstractSignalDSLProposalProvider;
 import org.eclipse.osbp.xtext.signal.ui.contentassist.DirectoryNameTextApplier;
 import org.eclipse.xtext.Assignment;
+import org.eclipse.xtext.EcoreUtil2;
 import org.eclipse.xtext.RuleCall;
 import org.eclipse.xtext.common.ui.contentassist.TerminalsProposalProvider;
 import org.eclipse.xtext.ui.editor.contentassist.ConfigurableCompletionProposal;
@@ -65,6 +70,37 @@
   @Override
   protected boolean isValidProposal(final String proposal, final String prefix, final ContentAssistContext context) {
     boolean result = super.isValidProposal(proposal, prefix, context);
+    EObject _currentModel = context.getCurrentModel();
+    if ((_currentModel instanceof SignalHandler)) {
+      EObject _currentModel_1 = context.getCurrentModel();
+      result = this.isValidProposalSignalHandlerType(proposal, prefix, ((SignalHandler) _currentModel_1), result);
+    }
+    return result;
+  }
+  
+  private boolean isValidProposalSignalHandlerType(final String proposal, final String prefix, final SignalHandler handler, final boolean result) {
+    if ((handler != null)) {
+      final EObject watcher = EcoreUtil2.resolve(handler.eContainer(), handler.eResource());
+      if (((watcher != null) && (watcher instanceof SignalWatcher))) {
+        SignalTypeEnum _signal = ((SignalWatcher) watcher).getSignal();
+        if (_signal != null) {
+          switch (_signal) {
+            case ALL:
+              return true;
+            case CREATESIGNALS:
+              return SignalHandlerTypeEnum.DOAFTERCREATE.getLiteral().equals(proposal);
+            case DELETESIGNALS:
+              return SignalHandlerTypeEnum.DOAFTERDELETE.getLiteral().equals(proposal);
+            case MODIFYSIGNALS:
+              return SignalHandlerTypeEnum.DOAFTERMODIFY.getLiteral().equals(proposal);
+            default:
+              return false;
+          }
+        } else {
+          return false;
+        }
+      }
+    }
     return result;
   }
   
diff --git a/org.eclipse.osbp.xtext.signal/.classpath b/org.eclipse.osbp.xtext.signal/.classpath
index 450bde7..c728579 100644
--- a/org.eclipse.osbp.xtext.signal/.classpath
+++ b/org.eclipse.osbp.xtext.signal/.classpath
@@ -1,10 +1,10 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <classpath>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
 	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="src" path="src/"/>
-	<classpathentry kind="src" path="src-gen/"/>
-	<classpathentry kind="src" path="emf-gen/"/>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="src" path="src-gen"/>
+	<classpathentry kind="src" path="emf-gen"/>
 	<classpathentry kind="src" path="xtend-gen"/>
 	<classpathentry kind="output" path="target/classes"/>
 </classpath>
diff --git a/org.eclipse.osbp.xtext.signal/META-INF/MANIFEST.MF b/org.eclipse.osbp.xtext.signal/META-INF/MANIFEST.MF
index 4edc8d2..fac029f 100644
--- a/org.eclipse.osbp.xtext.signal/META-INF/MANIFEST.MF
+++ b/org.eclipse.osbp.xtext.signal/META-INF/MANIFEST.MF
@@ -57,6 +57,7 @@
  org.eclipse.osbp.xtext.signal.util,
  org.eclipse.osbp.xtext.signal.validation
 Import-Package: com.vaadin.ui,
+ org.apache.commons.logging,
  org.apache.log4j,
  org.eclipse.e4.core.contexts,
  org.eclipse.e4.core.di.annotations,
diff --git a/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/DataTransfer.java b/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/DataTransfer.java
new file mode 100644
index 0000000..c17607b
--- /dev/null
+++ b/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/DataTransfer.java
@@ -0,0 +1,29 @@
+/**
+ * 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 v1.0
+ *  which accompanies this distribution, and is available at
+ *  http://www.eclipse.org/legal/epl-v10.html
+ *  
+ *  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>Data Transfer</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.osbp.xtext.signal.SignalDSLPackage#getDataTransfer()
+ * @model
+ * @generated
+ */
+public interface DataTransfer extends SignalLazyResolver {
+} // DataTransfer
diff --git a/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/FileMaskEnum.java b/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/FileMaskEnum.java
deleted file mode 100644
index e76a879..0000000
--- a/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/FileMaskEnum.java
+++ /dev/null
@@ -1,277 +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 v1.0
- *  which accompanies this distribution, and is available at
- *  http://www.eclipse.org/legal/epl-v10.html
- *  
- *  Contributors:                                                      
- *     Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
- *  
- *  generated from SignalDSL.xcore
- * 
- *  
- */
-package org.eclipse.osbp.xtext.signal;
-
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-
-import org.eclipse.emf.common.util.Enumerator;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the literals of the enumeration '<em><b>File Mask Enum</b></em>',
- * and utility methods for working with them.
- * <!-- end-user-doc -->
- * @see org.eclipse.osbp.xtext.signal.SignalDSLPackage#getFileMaskEnum()
- * @model
- * @generated
- */
-public enum FileMaskEnum implements Enumerator {
-	/**
-	 * The '<em><b>File Import</b></em>' literal object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #FILE_IMPORT_VALUE
-	 * @generated
-	 * @ordered
-	 */
-	FILE_IMPORT(0, "fileImport", "_imp"),
-
-	/**
-	 * The '<em><b>Pdf File</b></em>' literal object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #PDF_FILE_VALUE
-	 * @generated
-	 * @ordered
-	 */
-	PDF_FILE(0, "pdfFile", "_pdf"),
-
-	/**
-	 * The '<em><b>File Print</b></em>' literal object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #FILE_PRINT_VALUE
-	 * @generated
-	 * @ordered
-	 */
-	FILE_PRINT(0, "filePrint", "_prt"),
-
-	/**
-	 * The '<em><b>Message</b></em>' literal object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #MESSAGE_VALUE
-	 * @generated
-	 * @ordered
-	 */
-	MESSAGE(0, "message", "_sd");
-
-	/**
-	 * The '<em><b>File Import</b></em>' literal value.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of '<em><b>File Import</b></em>' literal object isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @see #FILE_IMPORT
-	 * @model name="fileImport" literal="_imp"
-	 * @generated
-	 * @ordered
-	 */
-	public static final int FILE_IMPORT_VALUE = 0;
-
-	/**
-	 * The '<em><b>Pdf File</b></em>' literal value.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of '<em><b>Pdf File</b></em>' literal object isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @see #PDF_FILE
-	 * @model name="pdfFile" literal="_pdf"
-	 * @generated
-	 * @ordered
-	 */
-	public static final int PDF_FILE_VALUE = 0;
-
-	/**
-	 * The '<em><b>File Print</b></em>' literal value.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of '<em><b>File Print</b></em>' literal object isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @see #FILE_PRINT
-	 * @model name="filePrint" literal="_prt"
-	 * @generated
-	 * @ordered
-	 */
-	public static final int FILE_PRINT_VALUE = 0;
-
-	/**
-	 * The '<em><b>Message</b></em>' literal value.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of '<em><b>Message</b></em>' literal object isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @see #MESSAGE
-	 * @model name="message" literal="_sd"
-	 * @generated
-	 * @ordered
-	 */
-	public static final int MESSAGE_VALUE = 0;
-
-	/**
-	 * An array of all the '<em><b>File Mask Enum</b></em>' enumerators.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private static final FileMaskEnum[] VALUES_ARRAY =
-		new FileMaskEnum[] {
-			FILE_IMPORT,
-			PDF_FILE,
-			FILE_PRINT,
-			MESSAGE,
-		};
-
-	/**
-	 * A public read-only list of all the '<em><b>File Mask Enum</b></em>' enumerators.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public static final List<FileMaskEnum> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
-
-	/**
-	 * Returns the '<em><b>File Mask 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 FileMaskEnum get(String literal) {
-		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
-			FileMaskEnum result = VALUES_ARRAY[i];
-			if (result.toString().equals(literal)) {
-				return result;
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * Returns the '<em><b>File Mask 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 FileMaskEnum getByName(String name) {
-		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
-			FileMaskEnum result = VALUES_ARRAY[i];
-			if (result.getName().equals(name)) {
-				return result;
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * Returns the '<em><b>File Mask 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 FileMaskEnum get(int value) {
-		switch (value) {
-			case FILE_IMPORT_VALUE: return FILE_IMPORT;
-		}
-		return null;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private final int value;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private final String name;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private final String literal;
-
-	/**
-	 * Only this class can construct instances.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private FileMaskEnum(int value, String name, String literal) {
-		this.value = value;
-		this.name = name;
-		this.literal = literal;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public int getValue() {
-	  return value;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getName() {
-	  return name;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getLiteral() {
-	  return literal;
-	}
-
-	/**
-	 * Returns the literal value of the enumerator, which is its string representation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String toString() {
-		return literal;
-	}
-	
-} //FileMaskEnum
diff --git a/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/ListTransfer.java b/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/ListTransfer.java
new file mode 100644
index 0000000..b2c4a37
--- /dev/null
+++ b/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/ListTransfer.java
@@ -0,0 +1,82 @@
+/**
+ * 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 v1.0
+ *  which accompanies this distribution, and is available at
+ *  http://www.eclipse.org/legal/epl-v10.html
+ *  
+ *  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>List Transfer</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.signal.ListTransfer#getExecutiontype <em>Executiontype</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.signal.ListTransfer#getInterchanges <em>Interchanges</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.osbp.xtext.signal.SignalDSLPackage#getListTransfer()
+ * @model
+ * @generated
+ */
+public interface ListTransfer extends DataTransfer {
+	/**
+	 * 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#getListTransfer_Executiontype()
+	 * @model unique="false"
+	 * @generated
+	 */
+	SignalExecutionTypeEnum getExecutiontype();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.signal.ListTransfer#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>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#getListTransfer_Interchanges()
+	 * @model containment="true"
+	 * @generated
+	 */
+	EList<SignalDatainterchange> getInterchanges();
+
+} // ListTransfer
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/SignalActionEnum.java
index 89d1a7d..d39f908 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/SignalActionEnum.java
@@ -38,47 +38,17 @@
 	 * @generated
 	 * @ordered
 	 */
-	DATAIMPORT(0, "DATAIMPORT", "dataimport"),
+	DATAIMPORT(0, "DATAIMPORT", "Import"),
 
 	/**
-	 * The '<em><b>PDFPRINT</b></em>' literal object.
+	 * The '<em><b>DATAEXPORT</b></em>' literal object.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @see #PDFPRINT_VALUE
+	 * @see #DATAEXPORT_VALUE
 	 * @generated
 	 * @ordered
 	 */
-	PDFPRINT(0, "PDFPRINT", "pdfprint"),
-
-	/**
-	 * The '<em><b>PRINT</b></em>' literal object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #PRINT_VALUE
-	 * @generated
-	 * @ordered
-	 */
-	PRINT(0, "PRINT", "print"),
-
-	/**
-	 * The '<em><b>MAIL</b></em>' literal object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #MAIL_VALUE
-	 * @generated
-	 * @ordered
-	 */
-	MAIL(0, "MAIL", "mail"),
-
-	/**
-	 * The '<em><b>MESSAGEPROMPT</b></em>' literal object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #MESSAGEPROMPT_VALUE
-	 * @generated
-	 * @ordered
-	 */
-	MESSAGEPROMPT(0, "MESSAGEPROMPT", "showinfo"),
+	DATAEXPORT(0, "DATAEXPORT", "Export"),
 
 	/**
 	 * The '<em><b>NONE</b></em>' literal object.
@@ -88,7 +58,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	NONE(0, "NONE", "none");
+	NONE(0, "NONE", "None");
 
 	/**
 	 * The '<em><b>DATAIMPORT</b></em>' literal value.
@@ -99,71 +69,26 @@
 	 * </p>
 	 * <!-- end-user-doc -->
 	 * @see #DATAIMPORT
-	 * @model literal="dataimport"
+	 * @model literal="Import"
 	 * @generated
 	 * @ordered
 	 */
 	public static final int DATAIMPORT_VALUE = 0;
 
 	/**
-	 * The '<em><b>PDFPRINT</b></em>' literal value.
+	 * The '<em><b>DATAEXPORT</b></em>' literal value.
 	 * <!-- begin-user-doc -->
 	 * <p>
-	 * If the meaning of '<em><b>PDFPRINT</b></em>' literal object isn't clear,
+	 * If the meaning of '<em><b>DATAEXPORT</b></em>' literal object isn't clear,
 	 * there really should be more of a description here...
 	 * </p>
 	 * <!-- end-user-doc -->
-	 * @see #PDFPRINT
-	 * @model literal="pdfprint"
+	 * @see #DATAEXPORT
+	 * @model literal="Export"
 	 * @generated
 	 * @ordered
 	 */
-	public static final int PDFPRINT_VALUE = 0;
-
-	/**
-	 * The '<em><b>PRINT</b></em>' literal value.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of '<em><b>PRINT</b></em>' literal object isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @see #PRINT
-	 * @model literal="print"
-	 * @generated
-	 * @ordered
-	 */
-	public static final int PRINT_VALUE = 0;
-
-	/**
-	 * The '<em><b>MAIL</b></em>' literal value.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of '<em><b>MAIL</b></em>' literal object isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @see #MAIL
-	 * @model literal="mail"
-	 * @generated
-	 * @ordered
-	 */
-	public static final int MAIL_VALUE = 0;
-
-	/**
-	 * The '<em><b>MESSAGEPROMPT</b></em>' literal value.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of '<em><b>MESSAGEPROMPT</b></em>' literal object isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @see #MESSAGEPROMPT
-	 * @model literal="showinfo"
-	 * @generated
-	 * @ordered
-	 */
-	public static final int MESSAGEPROMPT_VALUE = 0;
+	public static final int DATAEXPORT_VALUE = 0;
 
 	/**
 	 * The '<em><b>NONE</b></em>' literal value.
@@ -174,7 +99,7 @@
 	 * </p>
 	 * <!-- end-user-doc -->
 	 * @see #NONE
-	 * @model literal="none"
+	 * @model literal="None"
 	 * @generated
 	 * @ordered
 	 */
@@ -189,10 +114,7 @@
 	private static final SignalActionEnum[] VALUES_ARRAY =
 		new SignalActionEnum[] {
 			DATAIMPORT,
-			PDFPRINT,
-			PRINT,
-			MAIL,
-			MESSAGEPROMPT,
+			DATAEXPORT,
 			NONE,
 		};
 
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 e46a35c..b01b492 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
@@ -88,15 +88,6 @@
 	SignalHandler createSignalHandler();
 
 	/**
-	 * Returns a new object of class '<em>Signal Handling</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Signal Handling</em>'.
-	 * @generated
-	 */
-	SignalHandling createSignalHandling();
-
-	/**
 	 * Returns a new object of class '<em>Signal Datainterchange</em>'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -106,13 +97,31 @@
 	SignalDatainterchange createSignalDatainterchange();
 
 	/**
-	 * Returns a new object of class '<em>Signal Notification</em>'.
+	 * Returns a new object of class '<em>Data Transfer</em>'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Signal Notification</em>'.
+	 * @return a new object of class '<em>Data Transfer</em>'.
 	 * @generated
 	 */
-	SignalNotification createSignalNotification();
+	DataTransfer createDataTransfer();
+
+	/**
+	 * Returns a new object of class '<em>Single Transfer</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Single Transfer</em>'.
+	 * @generated
+	 */
+	SingleTransfer createSingleTransfer();
+
+	/**
+	 * Returns a new object of class '<em>List Transfer</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>List Transfer</em>'.
+	 * @generated
+	 */
+	ListTransfer createListTransfer();
 
 	/**
 	 * Returns the package supported by this factory.
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 f814bc5..6abf39f 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
@@ -285,7 +285,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int SIGNAL_WATCHER__NAME = SIGNAL_BASE__NAME;
+	int SIGNAL_WATCHER__NAME = SIGNAL_LAZY_RESOLVER_FEATURE_COUNT + 0;
 
 	/**
 	 * The feature id for the '<em><b>Directory</b></em>' attribute.
@@ -294,7 +294,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int SIGNAL_WATCHER__DIRECTORY = SIGNAL_BASE_FEATURE_COUNT + 0;
+	int SIGNAL_WATCHER__DIRECTORY = SIGNAL_LAZY_RESOLVER_FEATURE_COUNT + 1;
 
 	/**
 	 * The feature id for the '<em><b>Signal</b></em>' attribute.
@@ -303,7 +303,16 @@
 	 * @generated
 	 * @ordered
 	 */
-	int SIGNAL_WATCHER__SIGNAL = SIGNAL_BASE_FEATURE_COUNT + 1;
+	int SIGNAL_WATCHER__SIGNAL = SIGNAL_LAZY_RESOLVER_FEATURE_COUNT + 2;
+
+	/**
+	 * The feature id for the '<em><b>Handlers</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SIGNAL_WATCHER__HANDLERS = SIGNAL_LAZY_RESOLVER_FEATURE_COUNT + 3;
 
 	/**
 	 * The number of structural features of the '<em>Signal Watcher</em>' class.
@@ -312,7 +321,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int SIGNAL_WATCHER_FEATURE_COUNT = SIGNAL_BASE_FEATURE_COUNT + 2;
+	int SIGNAL_WATCHER_FEATURE_COUNT = SIGNAL_LAZY_RESOLVER_FEATURE_COUNT + 4;
 
 	/**
 	 * The operation id for the '<em>EResolve Proxy</em>' operation.
@@ -321,7 +330,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int SIGNAL_WATCHER___ERESOLVE_PROXY__INTERNALEOBJECT = SIGNAL_BASE___ERESOLVE_PROXY__INTERNALEOBJECT;
+	int SIGNAL_WATCHER___ERESOLVE_PROXY__INTERNALEOBJECT = SIGNAL_LAZY_RESOLVER___ERESOLVE_PROXY__INTERNALEOBJECT;
 
 	/**
 	 * The number of operations of the '<em>Signal Watcher</em>' class.
@@ -330,7 +339,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int SIGNAL_WATCHER_OPERATION_COUNT = SIGNAL_BASE_OPERATION_COUNT + 0;
+	int SIGNAL_WATCHER_OPERATION_COUNT = SIGNAL_LAZY_RESOLVER_OPERATION_COUNT + 0;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.osbp.xtext.signal.impl.SignalHandlerImpl <em>Signal Handler</em>}' class.
@@ -343,31 +352,49 @@
 	int SIGNAL_HANDLER = 5;
 
 	/**
-	 * The feature id for the '<em><b>Watcher</b></em>' reference.
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int SIGNAL_HANDLER__WATCHER = SIGNAL_LAZY_RESOLVER_FEATURE_COUNT + 0;
+	int SIGNAL_HANDLER__NAME = SIGNAL_LAZY_RESOLVER_FEATURE_COUNT + 0;
 
 	/**
-	 * The feature id for the '<em><b>Handler</b></em>' containment reference.
+	 * The feature id for the '<em><b>Action Type</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int SIGNAL_HANDLER__HANDLER = SIGNAL_LAZY_RESOLVER_FEATURE_COUNT + 1;
+	int SIGNAL_HANDLER__ACTION_TYPE = SIGNAL_LAZY_RESOLVER_FEATURE_COUNT + 1;
 
 	/**
-	 * The feature id for the '<em><b>Notification</b></em>' containment reference.
+	 * The feature id for the '<em><b>Filemask</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int SIGNAL_HANDLER__NOTIFICATION = SIGNAL_LAZY_RESOLVER_FEATURE_COUNT + 2;
+	int SIGNAL_HANDLER__FILEMASK = SIGNAL_LAZY_RESOLVER_FEATURE_COUNT + 2;
+
+	/**
+	 * The feature id for the '<em><b>Datainterchanges</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SIGNAL_HANDLER__DATAINTERCHANGES = SIGNAL_LAZY_RESOLVER_FEATURE_COUNT + 3;
+
+	/**
+	 * The feature id for the '<em><b>Data</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SIGNAL_HANDLER__DATA = SIGNAL_LAZY_RESOLVER_FEATURE_COUNT + 4;
 
 	/**
 	 * The number of structural features of the '<em>Signal Handler</em>' class.
@@ -376,7 +403,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int SIGNAL_HANDLER_FEATURE_COUNT = SIGNAL_LAZY_RESOLVER_FEATURE_COUNT + 3;
+	int SIGNAL_HANDLER_FEATURE_COUNT = SIGNAL_LAZY_RESOLVER_FEATURE_COUNT + 5;
 
 	/**
 	 * The operation id for the '<em>EResolve Proxy</em>' operation.
@@ -397,61 +424,6 @@
 	int SIGNAL_HANDLER_OPERATION_COUNT = SIGNAL_LAZY_RESOLVER_OPERATION_COUNT + 0;
 
 	/**
-	 * The meta object id for the '{@link org.eclipse.osbp.xtext.signal.impl.SignalHandlingImpl <em>Signal Handling</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.osbp.xtext.signal.impl.SignalHandlingImpl
-	 * @see org.eclipse.osbp.xtext.signal.impl.SignalDSLPackageImpl#getSignalHandling()
-	 * @generated
-	 */
-	int SIGNAL_HANDLING = 6;
-
-	/**
-	 * The feature id for the '<em><b>Action Type</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int SIGNAL_HANDLING__ACTION_TYPE = SIGNAL_LAZY_RESOLVER_FEATURE_COUNT + 0;
-
-	/**
-	 * The feature id for the '<em><b>Data Ref</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int SIGNAL_HANDLING__DATA_REF = SIGNAL_LAZY_RESOLVER_FEATURE_COUNT + 1;
-
-	/**
-	 * The number of structural features of the '<em>Signal Handling</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int SIGNAL_HANDLING_FEATURE_COUNT = SIGNAL_LAZY_RESOLVER_FEATURE_COUNT + 2;
-
-	/**
-	 * The operation id for the '<em>EResolve Proxy</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int SIGNAL_HANDLING___ERESOLVE_PROXY__INTERNALEOBJECT = SIGNAL_LAZY_RESOLVER___ERESOLVE_PROXY__INTERNALEOBJECT;
-
-	/**
-	 * The number of operations of the '<em>Signal Handling</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int SIGNAL_HANDLING_OPERATION_COUNT = SIGNAL_LAZY_RESOLVER_OPERATION_COUNT + 0;
-
-	/**
 	 * The meta object id for the '{@link org.eclipse.osbp.xtext.signal.SignalProcessor <em>Signal Processor</em>}' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -459,7 +431,7 @@
 	 * @see org.eclipse.osbp.xtext.signal.impl.SignalDSLPackageImpl#getSignalProcessor()
 	 * @generated
 	 */
-	int SIGNAL_PROCESSOR = 7;
+	int SIGNAL_PROCESSOR = 6;
 
 	/**
 	 * The number of structural features of the '<em>Signal Processor</em>' class.
@@ -496,7 +468,16 @@
 	 * @see org.eclipse.osbp.xtext.signal.impl.SignalDSLPackageImpl#getSignalDatainterchange()
 	 * @generated
 	 */
-	int SIGNAL_DATAINTERCHANGE = 8;
+	int SIGNAL_DATAINTERCHANGE = 7;
+
+	/**
+	 * The feature id for the '<em><b>Data Action</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SIGNAL_DATAINTERCHANGE__DATA_ACTION = SIGNAL_PROCESSOR_FEATURE_COUNT + 0;
 
 	/**
 	 * The feature id for the '<em><b>Data Ref</b></em>' reference.
@@ -505,7 +486,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int SIGNAL_DATAINTERCHANGE__DATA_REF = SIGNAL_PROCESSOR_FEATURE_COUNT + 0;
+	int SIGNAL_DATAINTERCHANGE__DATA_REF = SIGNAL_PROCESSOR_FEATURE_COUNT + 1;
 
 	/**
 	 * The number of structural features of the '<em>Signal Datainterchange</em>' class.
@@ -514,7 +495,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int SIGNAL_DATAINTERCHANGE_FEATURE_COUNT = SIGNAL_PROCESSOR_FEATURE_COUNT + 1;
+	int SIGNAL_DATAINTERCHANGE_FEATURE_COUNT = SIGNAL_PROCESSOR_FEATURE_COUNT + 2;
 
 	/**
 	 * The operation id for the '<em>EResolve Proxy</em>' operation.
@@ -535,50 +516,23 @@
 	int SIGNAL_DATAINTERCHANGE_OPERATION_COUNT = SIGNAL_PROCESSOR_OPERATION_COUNT + 0;
 
 	/**
-	 * The meta object id for the '{@link org.eclipse.osbp.xtext.signal.impl.SignalNotificationImpl <em>Signal Notification</em>}' class.
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.signal.impl.DataTransferImpl <em>Data Transfer</em>}' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @see org.eclipse.osbp.xtext.signal.impl.SignalNotificationImpl
-	 * @see org.eclipse.osbp.xtext.signal.impl.SignalDSLPackageImpl#getSignalNotification()
+	 * @see org.eclipse.osbp.xtext.signal.impl.DataTransferImpl
+	 * @see org.eclipse.osbp.xtext.signal.impl.SignalDSLPackageImpl#getDataTransfer()
 	 * @generated
 	 */
-	int SIGNAL_NOTIFICATION = 9;
+	int DATA_TRANSFER = 8;
 
 	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * The number of structural features of the '<em>Data Transfer</em>' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int SIGNAL_NOTIFICATION__NAME = SIGNAL_BASE__NAME;
-
-	/**
-	 * The feature id for the '<em><b>Event</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int SIGNAL_NOTIFICATION__EVENT = SIGNAL_BASE_FEATURE_COUNT + 0;
-
-	/**
-	 * The feature id for the '<em><b>Message</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int SIGNAL_NOTIFICATION__MESSAGE = SIGNAL_BASE_FEATURE_COUNT + 1;
-
-	/**
-	 * The number of structural features of the '<em>Signal Notification</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int SIGNAL_NOTIFICATION_FEATURE_COUNT = SIGNAL_BASE_FEATURE_COUNT + 2;
+	int DATA_TRANSFER_FEATURE_COUNT = SIGNAL_LAZY_RESOLVER_FEATURE_COUNT + 0;
 
 	/**
 	 * The operation id for the '<em>EResolve Proxy</em>' operation.
@@ -587,16 +541,117 @@
 	 * @generated
 	 * @ordered
 	 */
-	int SIGNAL_NOTIFICATION___ERESOLVE_PROXY__INTERNALEOBJECT = SIGNAL_BASE___ERESOLVE_PROXY__INTERNALEOBJECT;
+	int DATA_TRANSFER___ERESOLVE_PROXY__INTERNALEOBJECT = SIGNAL_LAZY_RESOLVER___ERESOLVE_PROXY__INTERNALEOBJECT;
 
 	/**
-	 * The number of operations of the '<em>Signal Notification</em>' class.
+	 * The number of operations of the '<em>Data Transfer</em>' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int SIGNAL_NOTIFICATION_OPERATION_COUNT = SIGNAL_BASE_OPERATION_COUNT + 0;
+	int DATA_TRANSFER_OPERATION_COUNT = SIGNAL_LAZY_RESOLVER_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.signal.impl.SingleTransferImpl <em>Single Transfer</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.signal.impl.SingleTransferImpl
+	 * @see org.eclipse.osbp.xtext.signal.impl.SignalDSLPackageImpl#getSingleTransfer()
+	 * @generated
+	 */
+	int SINGLE_TRANSFER = 9;
+
+	/**
+	 * The feature id for the '<em><b>Interchange</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SINGLE_TRANSFER__INTERCHANGE = DATA_TRANSFER_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>Single Transfer</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SINGLE_TRANSFER_FEATURE_COUNT = DATA_TRANSFER_FEATURE_COUNT + 1;
+
+	/**
+	 * The operation id for the '<em>EResolve Proxy</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SINGLE_TRANSFER___ERESOLVE_PROXY__INTERNALEOBJECT = DATA_TRANSFER___ERESOLVE_PROXY__INTERNALEOBJECT;
+
+	/**
+	 * The number of operations of the '<em>Single Transfer</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SINGLE_TRANSFER_OPERATION_COUNT = DATA_TRANSFER_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.signal.impl.ListTransferImpl <em>List Transfer</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.signal.impl.ListTransferImpl
+	 * @see org.eclipse.osbp.xtext.signal.impl.SignalDSLPackageImpl#getListTransfer()
+	 * @generated
+	 */
+	int LIST_TRANSFER = 10;
+
+	/**
+	 * The feature id for the '<em><b>Executiontype</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int LIST_TRANSFER__EXECUTIONTYPE = DATA_TRANSFER_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 LIST_TRANSFER__INTERCHANGES = DATA_TRANSFER_FEATURE_COUNT + 1;
+
+	/**
+	 * The number of structural features of the '<em>List Transfer</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int LIST_TRANSFER_FEATURE_COUNT = DATA_TRANSFER_FEATURE_COUNT + 2;
+
+	/**
+	 * The operation id for the '<em>EResolve Proxy</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int LIST_TRANSFER___ERESOLVE_PROXY__INTERNALEOBJECT = DATA_TRANSFER___ERESOLVE_PROXY__INTERNALEOBJECT;
+
+	/**
+	 * The number of operations of the '<em>List Transfer</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int LIST_TRANSFER_OPERATION_COUNT = DATA_TRANSFER_OPERATION_COUNT + 0;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.osbp.xtext.signal.SignalHandlerTypeEnum <em>Signal Handler Type Enum</em>}' enum.
@@ -606,17 +661,7 @@
 	 * @see org.eclipse.osbp.xtext.signal.impl.SignalDSLPackageImpl#getSignalHandlerTypeEnum()
 	 * @generated
 	 */
-	int SIGNAL_HANDLER_TYPE_ENUM = 10;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.osbp.xtext.signal.SignalNotificationEnum <em>Signal Notification Enum</em>}' enum.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.osbp.xtext.signal.SignalNotificationEnum
-	 * @see org.eclipse.osbp.xtext.signal.impl.SignalDSLPackageImpl#getSignalNotificationEnum()
-	 * @generated
-	 */
-	int SIGNAL_NOTIFICATION_ENUM = 11;
+	int SIGNAL_HANDLER_TYPE_ENUM = 11;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.osbp.xtext.signal.SignalTypeEnum <em>Signal Type Enum</em>}' enum.
@@ -639,14 +684,14 @@
 	int SIGNAL_ACTION_ENUM = 13;
 
 	/**
-	 * The meta object id for the '{@link org.eclipse.osbp.xtext.signal.FileMaskEnum <em>File Mask Enum</em>}' enum.
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.signal.SignalExecutionTypeEnum <em>Signal Execution Type Enum</em>}' enum.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @see org.eclipse.osbp.xtext.signal.FileMaskEnum
-	 * @see org.eclipse.osbp.xtext.signal.impl.SignalDSLPackageImpl#getFileMaskEnum()
+	 * @see org.eclipse.osbp.xtext.signal.SignalExecutionTypeEnum
+	 * @see org.eclipse.osbp.xtext.signal.impl.SignalDSLPackageImpl#getSignalExecutionTypeEnum()
 	 * @generated
 	 */
-	int FILE_MASK_ENUM = 14;
+	int SIGNAL_EXECUTION_TYPE_ENUM = 14;
 
 	/**
 	 * The meta object id for the '<em>Internal EObject</em>' data type.
@@ -775,6 +820,17 @@
 	EClass getSignalWatcher();
 
 	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.signal.SignalWatcher#getName <em>Name</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Name</em>'.
+	 * @see org.eclipse.osbp.xtext.signal.SignalWatcher#getName()
+	 * @see #getSignalWatcher()
+	 * @generated
+	 */
+	EAttribute getSignalWatcher_Name();
+
+	/**
 	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.signal.SignalWatcher#getDirectory <em>Directory</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -797,6 +853,17 @@
 	EAttribute getSignalWatcher_Signal();
 
 	/**
+	 * Returns the meta object for the containment reference list '{@link org.eclipse.osbp.xtext.signal.SignalWatcher#getHandlers <em>Handlers</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference list '<em>Handlers</em>'.
+	 * @see org.eclipse.osbp.xtext.signal.SignalWatcher#getHandlers()
+	 * @see #getSignalWatcher()
+	 * @generated
+	 */
+	EReference getSignalWatcher_Handlers();
+
+	/**
 	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.signal.SignalHandler <em>Signal Handler</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -807,69 +874,59 @@
 	EClass getSignalHandler();
 
 	/**
-	 * Returns the meta object for the reference '{@link org.eclipse.osbp.xtext.signal.SignalHandler#getWatcher <em>Watcher</em>}'.
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.signal.SignalHandler#getName <em>Name</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference '<em>Watcher</em>'.
-	 * @see org.eclipse.osbp.xtext.signal.SignalHandler#getWatcher()
+	 * @return the meta object for the attribute '<em>Name</em>'.
+	 * @see org.eclipse.osbp.xtext.signal.SignalHandler#getName()
 	 * @see #getSignalHandler()
 	 * @generated
 	 */
-	EReference getSignalHandler_Watcher();
+	EAttribute getSignalHandler_Name();
 
 	/**
-	 * Returns the meta object for the containment reference '{@link org.eclipse.osbp.xtext.signal.SignalHandler#getHandler <em>Handler</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference '<em>Handler</em>'.
-	 * @see org.eclipse.osbp.xtext.signal.SignalHandler#getHandler()
-	 * @see #getSignalHandler()
-	 * @generated
-	 */
-	EReference getSignalHandler_Handler();
-
-	/**
-	 * Returns the meta object for the containment reference '{@link org.eclipse.osbp.xtext.signal.SignalHandler#getNotification <em>Notification</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference '<em>Notification</em>'.
-	 * @see org.eclipse.osbp.xtext.signal.SignalHandler#getNotification()
-	 * @see #getSignalHandler()
-	 * @generated
-	 */
-	EReference getSignalHandler_Notification();
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.signal.SignalHandling <em>Signal Handling</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Signal Handling</em>'.
-	 * @see org.eclipse.osbp.xtext.signal.SignalHandling
-	 * @generated
-	 */
-	EClass getSignalHandling();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.signal.SignalHandling#getActionType <em>Action Type</em>}'.
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.signal.SignalHandler#getActionType <em>Action Type</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @return the meta object for the attribute '<em>Action Type</em>'.
-	 * @see org.eclipse.osbp.xtext.signal.SignalHandling#getActionType()
-	 * @see #getSignalHandling()
+	 * @see org.eclipse.osbp.xtext.signal.SignalHandler#getActionType()
+	 * @see #getSignalHandler()
 	 * @generated
 	 */
-	EAttribute getSignalHandling_ActionType();
+	EAttribute getSignalHandler_ActionType();
 
 	/**
-	 * Returns the meta object for the reference '{@link org.eclipse.osbp.xtext.signal.SignalHandling#getDataRef <em>Data Ref</em>}'.
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.signal.SignalHandler#getFilemask <em>Filemask</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference '<em>Data Ref</em>'.
-	 * @see org.eclipse.osbp.xtext.signal.SignalHandling#getDataRef()
-	 * @see #getSignalHandling()
+	 * @return the meta object for the attribute '<em>Filemask</em>'.
+	 * @see org.eclipse.osbp.xtext.signal.SignalHandler#getFilemask()
+	 * @see #getSignalHandler()
 	 * @generated
 	 */
-	EReference getSignalHandling_DataRef();
+	EAttribute getSignalHandler_Filemask();
+
+	/**
+	 * Returns the meta object for the containment reference list '{@link org.eclipse.osbp.xtext.signal.SignalHandler#getDatainterchanges <em>Datainterchanges</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference list '<em>Datainterchanges</em>'.
+	 * @see org.eclipse.osbp.xtext.signal.SignalHandler#getDatainterchanges()
+	 * @see #getSignalHandler()
+	 * @generated
+	 */
+	EReference getSignalHandler_Datainterchanges();
+
+	/**
+	 * Returns the meta object for the containment reference '{@link org.eclipse.osbp.xtext.signal.SignalHandler#getData <em>Data</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference '<em>Data</em>'.
+	 * @see org.eclipse.osbp.xtext.signal.SignalHandler#getData()
+	 * @see #getSignalHandler()
+	 * @generated
+	 */
+	EReference getSignalHandler_Data();
 
 	/**
 	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.signal.SignalProcessor <em>Signal Processor</em>}'.
@@ -892,6 +949,17 @@
 	EClass getSignalDatainterchange();
 
 	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.signal.SignalDatainterchange#getDataAction <em>Data Action</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()
+	 * @see #getSignalDatainterchange()
+	 * @generated
+	 */
+	EAttribute getSignalDatainterchange_DataAction();
+
+	/**
 	 * Returns the meta object for the reference '{@link org.eclipse.osbp.xtext.signal.SignalDatainterchange#getDataRef <em>Data Ref</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -903,36 +971,67 @@
 	EReference getSignalDatainterchange_DataRef();
 
 	/**
-	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.signal.SignalNotification <em>Signal Notification</em>}'.
+	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.signal.DataTransfer <em>Data Transfer</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Signal Notification</em>'.
-	 * @see org.eclipse.osbp.xtext.signal.SignalNotification
+	 * @return the meta object for class '<em>Data Transfer</em>'.
+	 * @see org.eclipse.osbp.xtext.signal.DataTransfer
 	 * @generated
 	 */
-	EClass getSignalNotification();
+	EClass getDataTransfer();
 
 	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.signal.SignalNotification#getEvent <em>Event</em>}'.
+	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.signal.SingleTransfer <em>Single Transfer</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Event</em>'.
-	 * @see org.eclipse.osbp.xtext.signal.SignalNotification#getEvent()
-	 * @see #getSignalNotification()
+	 * @return the meta object for class '<em>Single Transfer</em>'.
+	 * @see org.eclipse.osbp.xtext.signal.SingleTransfer
 	 * @generated
 	 */
-	EAttribute getSignalNotification_Event();
+	EClass getSingleTransfer();
 
 	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.signal.SignalNotification#getMessage <em>Message</em>}'.
+	 * Returns the meta object for the containment reference '{@link org.eclipse.osbp.xtext.signal.SingleTransfer#getInterchange <em>Interchange</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Message</em>'.
-	 * @see org.eclipse.osbp.xtext.signal.SignalNotification#getMessage()
-	 * @see #getSignalNotification()
+	 * @return the meta object for the containment reference '<em>Interchange</em>'.
+	 * @see org.eclipse.osbp.xtext.signal.SingleTransfer#getInterchange()
+	 * @see #getSingleTransfer()
 	 * @generated
 	 */
-	EAttribute getSignalNotification_Message();
+	EReference getSingleTransfer_Interchange();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.signal.ListTransfer <em>List Transfer</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>List Transfer</em>'.
+	 * @see org.eclipse.osbp.xtext.signal.ListTransfer
+	 * @generated
+	 */
+	EClass getListTransfer();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.signal.ListTransfer#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.ListTransfer#getExecutiontype()
+	 * @see #getListTransfer()
+	 * @generated
+	 */
+	EAttribute getListTransfer_Executiontype();
+
+	/**
+	 * Returns the meta object for the containment reference list '{@link org.eclipse.osbp.xtext.signal.ListTransfer#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.ListTransfer#getInterchanges()
+	 * @see #getListTransfer()
+	 * @generated
+	 */
+	EReference getListTransfer_Interchanges();
 
 	/**
 	 * Returns the meta object for enum '{@link org.eclipse.osbp.xtext.signal.SignalHandlerTypeEnum <em>Signal Handler Type Enum</em>}'.
@@ -945,16 +1044,6 @@
 	EEnum getSignalHandlerTypeEnum();
 
 	/**
-	 * Returns the meta object for enum '{@link org.eclipse.osbp.xtext.signal.SignalNotificationEnum <em>Signal Notification Enum</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for enum '<em>Signal Notification Enum</em>'.
-	 * @see org.eclipse.osbp.xtext.signal.SignalNotificationEnum
-	 * @generated
-	 */
-	EEnum getSignalNotificationEnum();
-
-	/**
 	 * Returns the meta object for enum '{@link org.eclipse.osbp.xtext.signal.SignalTypeEnum <em>Signal Type Enum</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -975,14 +1064,14 @@
 	EEnum getSignalActionEnum();
 
 	/**
-	 * Returns the meta object for enum '{@link org.eclipse.osbp.xtext.signal.FileMaskEnum <em>File Mask Enum</em>}'.
+	 * Returns the meta object for enum '{@link org.eclipse.osbp.xtext.signal.SignalExecutionTypeEnum <em>Signal Execution Type Enum</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return the meta object for enum '<em>File Mask Enum</em>'.
-	 * @see org.eclipse.osbp.xtext.signal.FileMaskEnum
+	 * @return the meta object for enum '<em>Signal Execution Type Enum</em>'.
+	 * @see org.eclipse.osbp.xtext.signal.SignalExecutionTypeEnum
 	 * @generated
 	 */
-	EEnum getFileMaskEnum();
+	EEnum getSignalExecutionTypeEnum();
 
 	/**
 	 * Returns the meta object for data type '{@link org.eclipse.emf.ecore.InternalEObject <em>Internal EObject</em>}'.
@@ -1117,6 +1206,14 @@
 		EClass SIGNAL_WATCHER = eINSTANCE.getSignalWatcher();
 
 		/**
+		 * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute SIGNAL_WATCHER__NAME = eINSTANCE.getSignalWatcher_Name();
+
+		/**
 		 * The meta object literal for the '<em><b>Directory</b></em>' attribute feature.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
@@ -1133,6 +1230,14 @@
 		EAttribute SIGNAL_WATCHER__SIGNAL = eINSTANCE.getSignalWatcher_Signal();
 
 		/**
+		 * The meta object literal for the '<em><b>Handlers</b></em>' containment reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference SIGNAL_WATCHER__HANDLERS = eINSTANCE.getSignalWatcher_Handlers();
+
+		/**
 		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.signal.impl.SignalHandlerImpl <em>Signal Handler</em>}' class.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
@@ -1143,38 +1248,12 @@
 		EClass SIGNAL_HANDLER = eINSTANCE.getSignalHandler();
 
 		/**
-		 * The meta object literal for the '<em><b>Watcher</b></em>' reference feature.
+		 * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
 		 * @generated
 		 */
-		EReference SIGNAL_HANDLER__WATCHER = eINSTANCE.getSignalHandler_Watcher();
-
-		/**
-		 * The meta object literal for the '<em><b>Handler</b></em>' containment reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference SIGNAL_HANDLER__HANDLER = eINSTANCE.getSignalHandler_Handler();
-
-		/**
-		 * The meta object literal for the '<em><b>Notification</b></em>' containment reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference SIGNAL_HANDLER__NOTIFICATION = eINSTANCE.getSignalHandler_Notification();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.signal.impl.SignalHandlingImpl <em>Signal Handling</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.osbp.xtext.signal.impl.SignalHandlingImpl
-		 * @see org.eclipse.osbp.xtext.signal.impl.SignalDSLPackageImpl#getSignalHandling()
-		 * @generated
-		 */
-		EClass SIGNAL_HANDLING = eINSTANCE.getSignalHandling();
+		EAttribute SIGNAL_HANDLER__NAME = eINSTANCE.getSignalHandler_Name();
 
 		/**
 		 * The meta object literal for the '<em><b>Action Type</b></em>' attribute feature.
@@ -1182,15 +1261,31 @@
 		 * <!-- end-user-doc -->
 		 * @generated
 		 */
-		EAttribute SIGNAL_HANDLING__ACTION_TYPE = eINSTANCE.getSignalHandling_ActionType();
+		EAttribute SIGNAL_HANDLER__ACTION_TYPE = eINSTANCE.getSignalHandler_ActionType();
 
 		/**
-		 * The meta object literal for the '<em><b>Data Ref</b></em>' reference feature.
+		 * The meta object literal for the '<em><b>Filemask</b></em>' attribute feature.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
 		 * @generated
 		 */
-		EReference SIGNAL_HANDLING__DATA_REF = eINSTANCE.getSignalHandling_DataRef();
+		EAttribute SIGNAL_HANDLER__FILEMASK = eINSTANCE.getSignalHandler_Filemask();
+
+		/**
+		 * The meta object literal for the '<em><b>Datainterchanges</b></em>' containment reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference SIGNAL_HANDLER__DATAINTERCHANGES = eINSTANCE.getSignalHandler_Datainterchanges();
+
+		/**
+		 * The meta object literal for the '<em><b>Data</b></em>' containment reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference SIGNAL_HANDLER__DATA = eINSTANCE.getSignalHandler_Data();
 
 		/**
 		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.signal.SignalProcessor <em>Signal Processor</em>}' class.
@@ -1213,6 +1308,14 @@
 		EClass SIGNAL_DATAINTERCHANGE = eINSTANCE.getSignalDatainterchange();
 
 		/**
+		 * The meta object literal for the '<em><b>Data Action</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute SIGNAL_DATAINTERCHANGE__DATA_ACTION = eINSTANCE.getSignalDatainterchange_DataAction();
+
+		/**
 		 * The meta object literal for the '<em><b>Data Ref</b></em>' reference feature.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
@@ -1221,30 +1324,58 @@
 		EReference SIGNAL_DATAINTERCHANGE__DATA_REF = eINSTANCE.getSignalDatainterchange_DataRef();
 
 		/**
-		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.signal.impl.SignalNotificationImpl <em>Signal Notification</em>}' class.
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.signal.impl.DataTransferImpl <em>Data Transfer</em>}' class.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
-		 * @see org.eclipse.osbp.xtext.signal.impl.SignalNotificationImpl
-		 * @see org.eclipse.osbp.xtext.signal.impl.SignalDSLPackageImpl#getSignalNotification()
+		 * @see org.eclipse.osbp.xtext.signal.impl.DataTransferImpl
+		 * @see org.eclipse.osbp.xtext.signal.impl.SignalDSLPackageImpl#getDataTransfer()
 		 * @generated
 		 */
-		EClass SIGNAL_NOTIFICATION = eINSTANCE.getSignalNotification();
+		EClass DATA_TRANSFER = eINSTANCE.getDataTransfer();
 
 		/**
-		 * The meta object literal for the '<em><b>Event</b></em>' attribute feature.
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.signal.impl.SingleTransferImpl <em>Single Transfer</em>}' class.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.signal.impl.SingleTransferImpl
+		 * @see org.eclipse.osbp.xtext.signal.impl.SignalDSLPackageImpl#getSingleTransfer()
 		 * @generated
 		 */
-		EAttribute SIGNAL_NOTIFICATION__EVENT = eINSTANCE.getSignalNotification_Event();
+		EClass SINGLE_TRANSFER = eINSTANCE.getSingleTransfer();
 
 		/**
-		 * The meta object literal for the '<em><b>Message</b></em>' attribute feature.
+		 * The meta object literal for the '<em><b>Interchange</b></em>' containment reference feature.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
 		 * @generated
 		 */
-		EAttribute SIGNAL_NOTIFICATION__MESSAGE = eINSTANCE.getSignalNotification_Message();
+		EReference SINGLE_TRANSFER__INTERCHANGE = eINSTANCE.getSingleTransfer_Interchange();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.signal.impl.ListTransferImpl <em>List Transfer</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.signal.impl.ListTransferImpl
+		 * @see org.eclipse.osbp.xtext.signal.impl.SignalDSLPackageImpl#getListTransfer()
+		 * @generated
+		 */
+		EClass LIST_TRANSFER = eINSTANCE.getListTransfer();
+
+		/**
+		 * The meta object literal for the '<em><b>Executiontype</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute LIST_TRANSFER__EXECUTIONTYPE = eINSTANCE.getListTransfer_Executiontype();
+
+		/**
+		 * The meta object literal for the '<em><b>Interchanges</b></em>' containment reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference LIST_TRANSFER__INTERCHANGES = eINSTANCE.getListTransfer_Interchanges();
 
 		/**
 		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.signal.SignalHandlerTypeEnum <em>Signal Handler Type Enum</em>}' enum.
@@ -1257,16 +1388,6 @@
 		EEnum SIGNAL_HANDLER_TYPE_ENUM = eINSTANCE.getSignalHandlerTypeEnum();
 
 		/**
-		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.signal.SignalNotificationEnum <em>Signal Notification Enum</em>}' enum.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.osbp.xtext.signal.SignalNotificationEnum
-		 * @see org.eclipse.osbp.xtext.signal.impl.SignalDSLPackageImpl#getSignalNotificationEnum()
-		 * @generated
-		 */
-		EEnum SIGNAL_NOTIFICATION_ENUM = eINSTANCE.getSignalNotificationEnum();
-
-		/**
 		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.signal.SignalTypeEnum <em>Signal Type Enum</em>}' enum.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
@@ -1287,14 +1408,14 @@
 		EEnum SIGNAL_ACTION_ENUM = eINSTANCE.getSignalActionEnum();
 
 		/**
-		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.signal.FileMaskEnum <em>File Mask Enum</em>}' enum.
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.signal.SignalExecutionTypeEnum <em>Signal Execution Type Enum</em>}' enum.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
-		 * @see org.eclipse.osbp.xtext.signal.FileMaskEnum
-		 * @see org.eclipse.osbp.xtext.signal.impl.SignalDSLPackageImpl#getFileMaskEnum()
+		 * @see org.eclipse.osbp.xtext.signal.SignalExecutionTypeEnum
+		 * @see org.eclipse.osbp.xtext.signal.impl.SignalDSLPackageImpl#getSignalExecutionTypeEnum()
 		 * @generated
 		 */
-		EEnum FILE_MASK_ENUM = eINSTANCE.getFileMaskEnum();
+		EEnum SIGNAL_EXECUTION_TYPE_ENUM = eINSTANCE.getSignalExecutionTypeEnum();
 
 		/**
 		 * The meta object literal for the '<em>Internal EObject</em>' data type.
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 4bf702c..30b8a64 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
@@ -25,6 +25,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#getDataRef <em>Data Ref</em>}</li>
  * </ul>
  *
@@ -34,6 +35,35 @@
  */
 public interface SignalDatainterchange extends SignalProcessor {
 	/**
+	 * 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}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Data Action</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()
+	 * @model unique="false"
+	 * @generated
+	 */
+	SignalActionEnum getDataAction();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.signal.SignalDatainterchange#getDataAction <em>Data Action</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()
+	 * @generated
+	 */
+	void setDataAction(SignalActionEnum value);
+
+	/**
 	 * Returns the value of the '<em><b>Data Ref</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <p>
diff --git a/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/SignalExecutionTypeEnum.java b/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/SignalExecutionTypeEnum.java
new file mode 100644
index 0000000..1357d17
--- /dev/null
+++ b/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/SignalExecutionTypeEnum.java
@@ -0,0 +1,225 @@
+/**
+ * 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 v1.0
+ *  which accompanies this distribution, and is available at
+ *  http://www.eclipse.org/legal/epl-v10.html
+ *  
+ *  Contributors:                                                      
+ *     Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ *  
+ *  generated from SignalDSL.xcore
+ * 
+ *  
+ */
+package org.eclipse.osbp.xtext.signal;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Signal Execution Type Enum</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.xtext.signal.SignalDSLPackage#getSignalExecutionTypeEnum()
+ * @model
+ * @generated
+ */
+public enum SignalExecutionTypeEnum implements Enumerator {
+	/**
+	 * The '<em><b>SYNC</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #SYNC_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	SYNC(0, "SYNC", "synch"),
+
+	/**
+	 * The '<em><b>ASYNC</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #ASYNC_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	ASYNC(0, "ASYNC", "asynch");
+
+	/**
+	 * The '<em><b>SYNC</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>SYNC</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #SYNC
+	 * @model literal="synch"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int SYNC_VALUE = 0;
+
+	/**
+	 * The '<em><b>ASYNC</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>ASYNC</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #ASYNC
+	 * @model literal="asynch"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int ASYNC_VALUE = 0;
+
+	/**
+	 * An array of all the '<em><b>Signal Execution Type Enum</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static final SignalExecutionTypeEnum[] VALUES_ARRAY =
+		new SignalExecutionTypeEnum[] {
+			SYNC,
+			ASYNC,
+		};
+
+	/**
+	 * A public read-only list of all the '<em><b>Signal Execution Type Enum</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final List<SignalExecutionTypeEnum> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+	/**
+	 * Returns the '<em><b>Signal Execution 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 SignalExecutionTypeEnum get(String literal) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			SignalExecutionTypeEnum result = VALUES_ARRAY[i];
+			if (result.toString().equals(literal)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Signal Execution 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 SignalExecutionTypeEnum getByName(String name) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			SignalExecutionTypeEnum result = VALUES_ARRAY[i];
+			if (result.getName().equals(name)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Signal Execution 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 SignalExecutionTypeEnum get(int value) {
+		switch (value) {
+			case SYNC_VALUE: return SYNC;
+		}
+		return null;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final int value;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final String name;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final String literal;
+
+	/**
+	 * Only this class can construct instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private SignalExecutionTypeEnum(int value, String name, String literal) {
+		this.value = value;
+		this.name = name;
+		this.literal = literal;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getValue() {
+	  return value;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getName() {
+	  return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getLiteral() {
+	  return literal;
+	}
+
+	/**
+	 * Returns the literal value of the enumerator, which is its string representation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		return literal;
+	}
+	
+} //SignalExecutionTypeEnum
diff --git a/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/SignalHandler.java b/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/SignalHandler.java
index 825750a..ae9dbcd 100644
--- a/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/SignalHandler.java
+++ b/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/SignalHandler.java
@@ -14,6 +14,7 @@
  */
 package org.eclipse.osbp.xtext.signal;
 
+import org.eclipse.emf.common.util.EList;
 
 /**
  * <!-- begin-user-doc -->
@@ -24,9 +25,11 @@
  * The following features are supported:
  * </p>
  * <ul>
- *   <li>{@link org.eclipse.osbp.xtext.signal.SignalHandler#getWatcher <em>Watcher</em>}</li>
- *   <li>{@link org.eclipse.osbp.xtext.signal.SignalHandler#getHandler <em>Handler</em>}</li>
- *   <li>{@link org.eclipse.osbp.xtext.signal.SignalHandler#getNotification <em>Notification</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.signal.SignalHandler#getName <em>Name</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.signal.SignalHandler#getActionType <em>Action Type</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.signal.SignalHandler#getFilemask <em>Filemask</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.signal.SignalHandler#getDatainterchanges <em>Datainterchanges</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.signal.SignalHandler#getData <em>Data</em>}</li>
  * </ul>
  *
  * @see org.eclipse.osbp.xtext.signal.SignalDSLPackage#getSignalHandler()
@@ -35,81 +38,126 @@
  */
 public interface SignalHandler extends SignalLazyResolver {
 	/**
-	 * Returns the value of the '<em><b>Watcher</b></em>' reference.
+	 * Returns the value of the '<em><b>Name</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <p>
-	 * If the meaning of the '<em>Watcher</em>' reference isn't clear,
+	 * If the meaning of the '<em>Name</em>' attribute isn't clear,
 	 * there really should be more of a description here...
 	 * </p>
 	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Watcher</em>' reference.
-	 * @see #setWatcher(SignalWatcher)
-	 * @see org.eclipse.osbp.xtext.signal.SignalDSLPackage#getSignalHandler_Watcher()
-	 * @model
+	 * @return the value of the '<em>Name</em>' attribute.
+	 * @see #setName(String)
+	 * @see org.eclipse.osbp.xtext.signal.SignalDSLPackage#getSignalHandler_Name()
+	 * @model unique="false"
 	 * @generated
 	 */
-	SignalWatcher getWatcher();
+	String getName();
 
 	/**
-	 * Sets the value of the '{@link org.eclipse.osbp.xtext.signal.SignalHandler#getWatcher <em>Watcher</em>}' reference.
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.signal.SignalHandler#getName <em>Name</em>}' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Watcher</em>' reference.
-	 * @see #getWatcher()
+	 * @param value the new value of the '<em>Name</em>' attribute.
+	 * @see #getName()
 	 * @generated
 	 */
-	void setWatcher(SignalWatcher value);
+	void setName(String value);
 
 	/**
-	 * Returns the value of the '<em><b>Handler</b></em>' containment reference.
+	 * Returns the value of the '<em><b>Action Type</b></em>' attribute.
+	 * The literals are from the enumeration {@link org.eclipse.osbp.xtext.signal.SignalHandlerTypeEnum}.
 	 * <!-- begin-user-doc -->
 	 * <p>
-	 * If the meaning of the '<em>Handler</em>' containment reference 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>Handler</em>' containment reference.
-	 * @see #setHandler(SignalHandling)
-	 * @see org.eclipse.osbp.xtext.signal.SignalDSLPackage#getSignalHandler_Handler()
+	 * @return the value of the '<em>Action Type</em>' attribute.
+	 * @see org.eclipse.osbp.xtext.signal.SignalHandlerTypeEnum
+	 * @see #setActionType(SignalHandlerTypeEnum)
+	 * @see org.eclipse.osbp.xtext.signal.SignalDSLPackage#getSignalHandler_ActionType()
+	 * @model unique="false"
+	 * @generated
+	 */
+	SignalHandlerTypeEnum getActionType();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.signal.SignalHandler#getActionType <em>Action Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Action Type</em>' attribute.
+	 * @see org.eclipse.osbp.xtext.signal.SignalHandlerTypeEnum
+	 * @see #getActionType()
+	 * @generated
+	 */
+	void setActionType(SignalHandlerTypeEnum value);
+
+	/**
+	 * 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#getSignalHandler_Filemask()
+	 * @model unique="false"
+	 * @generated
+	 */
+	String getFilemask();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.signal.SignalHandler#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>Datainterchanges</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>Datainterchanges</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>Datainterchanges</em>' containment reference list.
+	 * @see org.eclipse.osbp.xtext.signal.SignalDSLPackage#getSignalHandler_Datainterchanges()
 	 * @model containment="true"
 	 * @generated
 	 */
-	SignalHandling getHandler();
+	EList<SignalDatainterchange> getDatainterchanges();
 
 	/**
-	 * Sets the value of the '{@link org.eclipse.osbp.xtext.signal.SignalHandler#getHandler <em>Handler</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Handler</em>' containment reference.
-	 * @see #getHandler()
-	 * @generated
-	 */
-	void setHandler(SignalHandling value);
-
-	/**
-	 * Returns the value of the '<em><b>Notification</b></em>' containment reference.
+	 * Returns the value of the '<em><b>Data</b></em>' containment reference.
 	 * <!-- begin-user-doc -->
 	 * <p>
-	 * If the meaning of the '<em>Notification</em>' containment reference isn't clear,
+	 * If the meaning of the '<em>Data</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>Notification</em>' containment reference.
-	 * @see #setNotification(SignalNotification)
-	 * @see org.eclipse.osbp.xtext.signal.SignalDSLPackage#getSignalHandler_Notification()
+	 * @return the value of the '<em>Data</em>' containment reference.
+	 * @see #setData(DataTransfer)
+	 * @see org.eclipse.osbp.xtext.signal.SignalDSLPackage#getSignalHandler_Data()
 	 * @model containment="true"
 	 * @generated
 	 */
-	SignalNotification getNotification();
+	DataTransfer getData();
 
 	/**
-	 * Sets the value of the '{@link org.eclipse.osbp.xtext.signal.SignalHandler#getNotification <em>Notification</em>}' containment reference.
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.signal.SignalHandler#getData <em>Data</em>}' containment reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Notification</em>' containment reference.
-	 * @see #getNotification()
+	 * @param value the new value of the '<em>Data</em>' containment reference.
+	 * @see #getData()
 	 * @generated
 	 */
-	void setNotification(SignalNotification value);
+	void setData(DataTransfer value);
 
 } // SignalHandler
diff --git a/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/SignalHandlerTypeEnum.java b/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/SignalHandlerTypeEnum.java
index 4c4acfb..b9cc24c 100644
--- a/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/SignalHandlerTypeEnum.java
+++ b/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/SignalHandlerTypeEnum.java
@@ -31,204 +31,104 @@
  */
 public enum SignalHandlerTypeEnum implements Enumerator {
 	/**
-	 * The '<em><b>Do After</b></em>' literal object.
+	 * The '<em><b>Doafter</b></em>' literal object.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @see #DO_AFTER_VALUE
+	 * @see #DOAFTER_VALUE
 	 * @generated
 	 * @ordered
 	 */
-	DO_AFTER(0, "doAfter", "doAfter"),
+	DOAFTER(0, "doafter", "doAfter"),
 
 	/**
-	 * The '<em><b>Do Before</b></em>' literal object.
+	 * The '<em><b>Doaftermodify</b></em>' literal object.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @see #DO_BEFORE_VALUE
+	 * @see #DOAFTERMODIFY_VALUE
 	 * @generated
 	 * @ordered
 	 */
-	DO_BEFORE(0, "doBefore", "doBefore"),
+	DOAFTERMODIFY(0, "doaftermodify", "doAfterModify"),
 
 	/**
-	 * The '<em><b>Do After Modify</b></em>' literal object.
+	 * The '<em><b>Doaftercreate</b></em>' literal object.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @see #DO_AFTER_MODIFY_VALUE
+	 * @see #DOAFTERCREATE_VALUE
 	 * @generated
 	 * @ordered
 	 */
-	DO_AFTER_MODIFY(0, "doAfterModify", "doAfterModify"),
+	DOAFTERCREATE(0, "doaftercreate", "doAfterCreate"),
 
 	/**
-	 * The '<em><b>Do After Create</b></em>' literal object.
+	 * The '<em><b>Doafterdelete</b></em>' literal object.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @see #DO_AFTER_CREATE_VALUE
+	 * @see #DOAFTERDELETE_VALUE
 	 * @generated
 	 * @ordered
 	 */
-	DO_AFTER_CREATE(0, "doAfterCreate", "doAfterCreate"),
+	DOAFTERDELETE(0, "doafterdelete", "doAfterDelete");
 
 	/**
-	 * The '<em><b>Do After Delete</b></em>' literal object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #DO_AFTER_DELETE_VALUE
-	 * @generated
-	 * @ordered
-	 */
-	DO_AFTER_DELETE(0, "doAfterDelete", "doAfterDelete"),
-
-	/**
-	 * The '<em><b>Do Before Modify</b></em>' literal object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #DO_BEFORE_MODIFY_VALUE
-	 * @generated
-	 * @ordered
-	 */
-	DO_BEFORE_MODIFY(0, "doBeforeModify", "doBeforeModify"),
-
-	/**
-	 * The '<em><b>Do Before Create</b></em>' literal object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #DO_BEFORE_CREATE_VALUE
-	 * @generated
-	 * @ordered
-	 */
-	DO_BEFORE_CREATE(0, "doBeforeCreate", "doBeforeCreate"),
-
-	/**
-	 * The '<em><b>Do Defore Delete</b></em>' literal object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #DO_DEFORE_DELETE_VALUE
-	 * @generated
-	 * @ordered
-	 */
-	DO_DEFORE_DELETE(0, "doDeforeDelete", "doBeforedelete");
-
-	/**
-	 * The '<em><b>Do After</b></em>' literal value.
+	 * The '<em><b>Doafter</b></em>' literal value.
 	 * <!-- begin-user-doc -->
 	 * <p>
-	 * If the meaning of '<em><b>Do After</b></em>' literal object isn't clear,
+	 * If the meaning of '<em><b>Doafter</b></em>' literal object isn't clear,
 	 * there really should be more of a description here...
 	 * </p>
 	 * <!-- end-user-doc -->
-	 * @see #DO_AFTER
-	 * @model name="doAfter"
+	 * @see #DOAFTER
+	 * @model name="doafter" literal="doAfter"
 	 * @generated
 	 * @ordered
 	 */
-	public static final int DO_AFTER_VALUE = 0;
+	public static final int DOAFTER_VALUE = 0;
 
 	/**
-	 * The '<em><b>Do Before</b></em>' literal value.
+	 * The '<em><b>Doaftermodify</b></em>' literal value.
 	 * <!-- begin-user-doc -->
 	 * <p>
-	 * If the meaning of '<em><b>Do Before</b></em>' literal object isn't clear,
+	 * If the meaning of '<em><b>Doaftermodify</b></em>' literal object isn't clear,
 	 * there really should be more of a description here...
 	 * </p>
 	 * <!-- end-user-doc -->
-	 * @see #DO_BEFORE
-	 * @model name="doBefore"
+	 * @see #DOAFTERMODIFY
+	 * @model name="doaftermodify" literal="doAfterModify"
 	 * @generated
 	 * @ordered
 	 */
-	public static final int DO_BEFORE_VALUE = 0;
+	public static final int DOAFTERMODIFY_VALUE = 0;
 
 	/**
-	 * The '<em><b>Do After Modify</b></em>' literal value.
+	 * The '<em><b>Doaftercreate</b></em>' literal value.
 	 * <!-- begin-user-doc -->
 	 * <p>
-	 * If the meaning of '<em><b>Do After Modify</b></em>' literal object isn't clear,
+	 * If the meaning of '<em><b>Doaftercreate</b></em>' literal object isn't clear,
 	 * there really should be more of a description here...
 	 * </p>
 	 * <!-- end-user-doc -->
-	 * @see #DO_AFTER_MODIFY
-	 * @model name="doAfterModify"
+	 * @see #DOAFTERCREATE
+	 * @model name="doaftercreate" literal="doAfterCreate"
 	 * @generated
 	 * @ordered
 	 */
-	public static final int DO_AFTER_MODIFY_VALUE = 0;
+	public static final int DOAFTERCREATE_VALUE = 0;
 
 	/**
-	 * The '<em><b>Do After Create</b></em>' literal value.
+	 * The '<em><b>Doafterdelete</b></em>' literal value.
 	 * <!-- begin-user-doc -->
 	 * <p>
-	 * If the meaning of '<em><b>Do After Create</b></em>' literal object isn't clear,
+	 * If the meaning of '<em><b>Doafterdelete</b></em>' literal object isn't clear,
 	 * there really should be more of a description here...
 	 * </p>
 	 * <!-- end-user-doc -->
-	 * @see #DO_AFTER_CREATE
-	 * @model name="doAfterCreate"
+	 * @see #DOAFTERDELETE
+	 * @model name="doafterdelete" literal="doAfterDelete"
 	 * @generated
 	 * @ordered
 	 */
-	public static final int DO_AFTER_CREATE_VALUE = 0;
-
-	/**
-	 * The '<em><b>Do After Delete</b></em>' literal value.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of '<em><b>Do After Delete</b></em>' literal object isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @see #DO_AFTER_DELETE
-	 * @model name="doAfterDelete"
-	 * @generated
-	 * @ordered
-	 */
-	public static final int DO_AFTER_DELETE_VALUE = 0;
-
-	/**
-	 * The '<em><b>Do Before Modify</b></em>' literal value.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of '<em><b>Do Before Modify</b></em>' literal object isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @see #DO_BEFORE_MODIFY
-	 * @model name="doBeforeModify"
-	 * @generated
-	 * @ordered
-	 */
-	public static final int DO_BEFORE_MODIFY_VALUE = 0;
-
-	/**
-	 * The '<em><b>Do Before Create</b></em>' literal value.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of '<em><b>Do Before Create</b></em>' literal object isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @see #DO_BEFORE_CREATE
-	 * @model name="doBeforeCreate"
-	 * @generated
-	 * @ordered
-	 */
-	public static final int DO_BEFORE_CREATE_VALUE = 0;
-
-	/**
-	 * The '<em><b>Do Defore Delete</b></em>' literal value.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of '<em><b>Do Defore Delete</b></em>' literal object isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @see #DO_DEFORE_DELETE
-	 * @model name="doDeforeDelete" literal="doBeforedelete"
-	 * @generated
-	 * @ordered
-	 */
-	public static final int DO_DEFORE_DELETE_VALUE = 0;
+	public static final int DOAFTERDELETE_VALUE = 0;
 
 	/**
 	 * An array of all the '<em><b>Signal Handler Type Enum</b></em>' enumerators.
@@ -238,14 +138,10 @@
 	 */
 	private static final SignalHandlerTypeEnum[] VALUES_ARRAY =
 		new SignalHandlerTypeEnum[] {
-			DO_AFTER,
-			DO_BEFORE,
-			DO_AFTER_MODIFY,
-			DO_AFTER_CREATE,
-			DO_AFTER_DELETE,
-			DO_BEFORE_MODIFY,
-			DO_BEFORE_CREATE,
-			DO_DEFORE_DELETE,
+			DOAFTER,
+			DOAFTERMODIFY,
+			DOAFTERCREATE,
+			DOAFTERDELETE,
 		};
 
 	/**
@@ -302,7 +198,7 @@
 	 */
 	public static SignalHandlerTypeEnum get(int value) {
 		switch (value) {
-			case DO_AFTER_VALUE: return DO_AFTER;
+			case DOAFTER_VALUE: return DOAFTER;
 		}
 		return null;
 	}
diff --git a/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/SignalHandling.java b/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/SignalHandling.java
deleted file mode 100644
index 14f68b5..0000000
--- a/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/SignalHandling.java
+++ /dev/null
@@ -1,92 +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 v1.0
- *  which accompanies this distribution, and is available at
- *  http://www.eclipse.org/legal/epl-v10.html
- *  
- *  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;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Signal Handling</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link org.eclipse.osbp.xtext.signal.SignalHandling#getActionType <em>Action Type</em>}</li>
- *   <li>{@link org.eclipse.osbp.xtext.signal.SignalHandling#getDataRef <em>Data Ref</em>}</li>
- * </ul>
- *
- * @see org.eclipse.osbp.xtext.signal.SignalDSLPackage#getSignalHandling()
- * @model
- * @generated
- */
-public interface SignalHandling extends SignalLazyResolver {
-	/**
-	 * Returns the value of the '<em><b>Action Type</b></em>' attribute.
-	 * The literals are from the enumeration {@link org.eclipse.osbp.xtext.signal.SignalHandlerTypeEnum}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * 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>Action Type</em>' attribute.
-	 * @see org.eclipse.osbp.xtext.signal.SignalHandlerTypeEnum
-	 * @see #setActionType(SignalHandlerTypeEnum)
-	 * @see org.eclipse.osbp.xtext.signal.SignalDSLPackage#getSignalHandling_ActionType()
-	 * @model unique="false"
-	 * @generated
-	 */
-	SignalHandlerTypeEnum getActionType();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.osbp.xtext.signal.SignalHandling#getActionType <em>Action Type</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Action Type</em>' attribute.
-	 * @see org.eclipse.osbp.xtext.signal.SignalHandlerTypeEnum
-	 * @see #getActionType()
-	 * @generated
-	 */
-	void setActionType(SignalHandlerTypeEnum value);
-
-	/**
-	 * Returns the value of the '<em><b>Data Ref</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Data Ref</em>' reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Data Ref</em>' reference.
-	 * @see #setDataRef(DataInterchange)
-	 * @see org.eclipse.osbp.xtext.signal.SignalDSLPackage#getSignalHandling_DataRef()
-	 * @model
-	 * @generated
-	 */
-	DataInterchange getDataRef();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.osbp.xtext.signal.SignalHandling#getDataRef <em>Data Ref</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Data Ref</em>' reference.
-	 * @see #getDataRef()
-	 * @generated
-	 */
-	void setDataRef(DataInterchange value);
-
-} // SignalHandling
diff --git a/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/SignalNotification.java b/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/SignalNotification.java
deleted file mode 100644
index 6400f4c..0000000
--- a/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/SignalNotification.java
+++ /dev/null
@@ -1,91 +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 v1.0
- *  which accompanies this distribution, and is available at
- *  http://www.eclipse.org/legal/epl-v10.html
- *  
- *  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>Signal Notification</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link org.eclipse.osbp.xtext.signal.SignalNotification#getEvent <em>Event</em>}</li>
- *   <li>{@link org.eclipse.osbp.xtext.signal.SignalNotification#getMessage <em>Message</em>}</li>
- * </ul>
- *
- * @see org.eclipse.osbp.xtext.signal.SignalDSLPackage#getSignalNotification()
- * @model
- * @generated
- */
-public interface SignalNotification extends SignalBase {
-	/**
-	 * Returns the value of the '<em><b>Event</b></em>' attribute.
-	 * The literals are from the enumeration {@link org.eclipse.osbp.xtext.signal.SignalNotificationEnum}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Event</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Event</em>' attribute.
-	 * @see org.eclipse.osbp.xtext.signal.SignalNotificationEnum
-	 * @see #setEvent(SignalNotificationEnum)
-	 * @see org.eclipse.osbp.xtext.signal.SignalDSLPackage#getSignalNotification_Event()
-	 * @model unique="false"
-	 * @generated
-	 */
-	SignalNotificationEnum getEvent();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.osbp.xtext.signal.SignalNotification#getEvent <em>Event</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Event</em>' attribute.
-	 * @see org.eclipse.osbp.xtext.signal.SignalNotificationEnum
-	 * @see #getEvent()
-	 * @generated
-	 */
-	void setEvent(SignalNotificationEnum value);
-
-	/**
-	 * Returns the value of the '<em><b>Message</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Message</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Message</em>' attribute.
-	 * @see #setMessage(String)
-	 * @see org.eclipse.osbp.xtext.signal.SignalDSLPackage#getSignalNotification_Message()
-	 * @model unique="false"
-	 * @generated
-	 */
-	String getMessage();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.osbp.xtext.signal.SignalNotification#getMessage <em>Message</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Message</em>' attribute.
-	 * @see #getMessage()
-	 * @generated
-	 */
-	void setMessage(String value);
-
-} // SignalNotification
diff --git a/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/SignalNotificationEnum.java b/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/SignalNotificationEnum.java
deleted file mode 100644
index 45e9a18..0000000
--- a/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/SignalNotificationEnum.java
+++ /dev/null
@@ -1,277 +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 v1.0
- *  which accompanies this distribution, and is available at
- *  http://www.eclipse.org/legal/epl-v10.html
- *  
- *  Contributors:                                                      
- *     Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
- *  
- *  generated from SignalDSL.xcore
- * 
- *  
- */
-package org.eclipse.osbp.xtext.signal;
-
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-
-import org.eclipse.emf.common.util.Enumerator;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the literals of the enumeration '<em><b>Signal Notification Enum</b></em>',
- * and utility methods for working with them.
- * <!-- end-user-doc -->
- * @see org.eclipse.osbp.xtext.signal.SignalDSLPackage#getSignalNotificationEnum()
- * @model
- * @generated
- */
-public enum SignalNotificationEnum implements Enumerator {
-	/**
-	 * The '<em><b>Show On All</b></em>' literal object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #SHOW_ON_ALL_VALUE
-	 * @generated
-	 * @ordered
-	 */
-	SHOW_ON_ALL(0, "showOnAll", "show"),
-
-	/**
-	 * The '<em><b>Show On Create</b></em>' literal object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #SHOW_ON_CREATE_VALUE
-	 * @generated
-	 * @ordered
-	 */
-	SHOW_ON_CREATE(0, "showOnCreate", "showOnCreate"),
-
-	/**
-	 * The '<em><b>Show On Delete</b></em>' literal object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #SHOW_ON_DELETE_VALUE
-	 * @generated
-	 * @ordered
-	 */
-	SHOW_ON_DELETE(0, "showOnDelete", "showOnDelete"),
-
-	/**
-	 * The '<em><b>Show On Modify</b></em>' literal object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #SHOW_ON_MODIFY_VALUE
-	 * @generated
-	 * @ordered
-	 */
-	SHOW_ON_MODIFY(0, "showOnModify", "showOnModify");
-
-	/**
-	 * The '<em><b>Show On All</b></em>' literal value.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of '<em><b>Show On All</b></em>' literal object isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @see #SHOW_ON_ALL
-	 * @model name="showOnAll" literal="show"
-	 * @generated
-	 * @ordered
-	 */
-	public static final int SHOW_ON_ALL_VALUE = 0;
-
-	/**
-	 * The '<em><b>Show On Create</b></em>' literal value.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of '<em><b>Show On Create</b></em>' literal object isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @see #SHOW_ON_CREATE
-	 * @model name="showOnCreate"
-	 * @generated
-	 * @ordered
-	 */
-	public static final int SHOW_ON_CREATE_VALUE = 0;
-
-	/**
-	 * The '<em><b>Show On Delete</b></em>' literal value.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of '<em><b>Show On Delete</b></em>' literal object isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @see #SHOW_ON_DELETE
-	 * @model name="showOnDelete"
-	 * @generated
-	 * @ordered
-	 */
-	public static final int SHOW_ON_DELETE_VALUE = 0;
-
-	/**
-	 * The '<em><b>Show On Modify</b></em>' literal value.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of '<em><b>Show On Modify</b></em>' literal object isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @see #SHOW_ON_MODIFY
-	 * @model name="showOnModify"
-	 * @generated
-	 * @ordered
-	 */
-	public static final int SHOW_ON_MODIFY_VALUE = 0;
-
-	/**
-	 * An array of all the '<em><b>Signal Notification Enum</b></em>' enumerators.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private static final SignalNotificationEnum[] VALUES_ARRAY =
-		new SignalNotificationEnum[] {
-			SHOW_ON_ALL,
-			SHOW_ON_CREATE,
-			SHOW_ON_DELETE,
-			SHOW_ON_MODIFY,
-		};
-
-	/**
-	 * A public read-only list of all the '<em><b>Signal Notification Enum</b></em>' enumerators.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public static final List<SignalNotificationEnum> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
-
-	/**
-	 * Returns the '<em><b>Signal Notification 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 SignalNotificationEnum get(String literal) {
-		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
-			SignalNotificationEnum result = VALUES_ARRAY[i];
-			if (result.toString().equals(literal)) {
-				return result;
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * Returns the '<em><b>Signal Notification 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 SignalNotificationEnum getByName(String name) {
-		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
-			SignalNotificationEnum result = VALUES_ARRAY[i];
-			if (result.getName().equals(name)) {
-				return result;
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * Returns the '<em><b>Signal Notification 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 SignalNotificationEnum get(int value) {
-		switch (value) {
-			case SHOW_ON_ALL_VALUE: return SHOW_ON_ALL;
-		}
-		return null;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private final int value;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private final String name;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private final String literal;
-
-	/**
-	 * Only this class can construct instances.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private SignalNotificationEnum(int value, String name, String literal) {
-		this.value = value;
-		this.name = name;
-		this.literal = literal;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public int getValue() {
-	  return value;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getName() {
-	  return name;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getLiteral() {
-	  return literal;
-	}
-
-	/**
-	 * Returns the literal value of the enumerator, which is its string representation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String toString() {
-		return literal;
-	}
-	
-} //SignalNotificationEnum
diff --git a/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/SignalTypeEnum.java b/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/SignalTypeEnum.java
index d372de8..d4a7ac7 100644
--- a/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/SignalTypeEnum.java
+++ b/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/SignalTypeEnum.java
@@ -58,7 +58,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	DELETESIGNALS(0, "deletesignals", "modifySignals"),
+	DELETESIGNALS(0, "deletesignals", "deleteSignals"),
 
 	/**
 	 * The '<em><b>Modifysignals</b></em>' literal object.
@@ -68,7 +68,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	MODIFYSIGNALS(0, "modifysignals", "deleteSignals");
+	MODIFYSIGNALS(0, "modifysignals", "modifySignals");
 
 	/**
 	 * The '<em><b>All</b></em>' literal value.
@@ -109,7 +109,7 @@
 	 * </p>
 	 * <!-- end-user-doc -->
 	 * @see #DELETESIGNALS
-	 * @model name="deletesignals" literal="modifySignals"
+	 * @model name="deletesignals" literal="deleteSignals"
 	 * @generated
 	 * @ordered
 	 */
@@ -124,7 +124,7 @@
 	 * </p>
 	 * <!-- end-user-doc -->
 	 * @see #MODIFYSIGNALS
-	 * @model name="modifysignals" literal="deleteSignals"
+	 * @model name="modifysignals" literal="modifySignals"
 	 * @generated
 	 * @ordered
 	 */
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 435b7e6..31fe367 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
@@ -14,6 +14,7 @@
  */
 package org.eclipse.osbp.xtext.signal;
 
+import org.eclipse.emf.common.util.EList;
 
 /**
  * <!-- begin-user-doc -->
@@ -24,15 +25,43 @@
  * The following features are supported:
  * </p>
  * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.signal.SignalWatcher#getName <em>Name</em>}</li>
  *   <li>{@link org.eclipse.osbp.xtext.signal.SignalWatcher#getDirectory <em>Directory</em>}</li>
  *   <li>{@link org.eclipse.osbp.xtext.signal.SignalWatcher#getSignal <em>Signal</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.signal.SignalWatcher#getHandlers <em>Handlers</em>}</li>
  * </ul>
  *
  * @see org.eclipse.osbp.xtext.signal.SignalDSLPackage#getSignalWatcher()
  * @model
  * @generated
  */
-public interface SignalWatcher extends SignalBase {
+public interface SignalWatcher extends SignalLazyResolver {
+	/**
+	 * Returns the value of the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Name</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Name</em>' attribute.
+	 * @see #setName(String)
+	 * @see org.eclipse.osbp.xtext.signal.SignalDSLPackage#getSignalWatcher_Name()
+	 * @model unique="false"
+	 * @generated
+	 */
+	String getName();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.signal.SignalWatcher#getName <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Name</em>' attribute.
+	 * @see #getName()
+	 * @generated
+	 */
+	void setName(String value);
+
 	/**
 	 * Returns the value of the '<em><b>Directory</b></em>' attribute.
 	 * <!-- begin-user-doc -->
@@ -88,4 +117,20 @@
 	 */
 	void setSignal(SignalTypeEnum value);
 
+	/**
+	 * Returns the value of the '<em><b>Handlers</b></em>' containment reference list.
+	 * The list contents are of type {@link org.eclipse.osbp.xtext.signal.SignalHandler}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Handlers</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>Handlers</em>' containment reference list.
+	 * @see org.eclipse.osbp.xtext.signal.SignalDSLPackage#getSignalWatcher_Handlers()
+	 * @model containment="true"
+	 * @generated
+	 */
+	EList<SignalHandler> getHandlers();
+
 } // SignalWatcher
diff --git a/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/SingleTransfer.java b/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/SingleTransfer.java
new file mode 100644
index 0000000..36f68ba
--- /dev/null
+++ b/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/SingleTransfer.java
@@ -0,0 +1,61 @@
+/**
+ * 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 v1.0
+ *  which accompanies this distribution, and is available at
+ *  http://www.eclipse.org/legal/epl-v10.html
+ *  
+ *  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>Single Transfer</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.signal.SingleTransfer#getInterchange <em>Interchange</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.osbp.xtext.signal.SignalDSLPackage#getSingleTransfer()
+ * @model
+ * @generated
+ */
+public interface SingleTransfer extends DataTransfer {
+	/**
+	 * 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#getSingleTransfer_Interchange()
+	 * @model containment="true"
+	 * @generated
+	 */
+	SignalDatainterchange getInterchange();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.signal.SingleTransfer#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);
+
+} // SingleTransfer
diff --git a/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/impl/DataTransferImpl.java b/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/impl/DataTransferImpl.java
new file mode 100644
index 0000000..a87a172
--- /dev/null
+++ b/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/impl/DataTransferImpl.java
@@ -0,0 +1,49 @@
+/**
+ * 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 v1.0
+ *  which accompanies this distribution, and is available at
+ *  http://www.eclipse.org/legal/epl-v10.html
+ *  
+ *  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.DataTransfer;
+import org.eclipse.osbp.xtext.signal.SignalDSLPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Data Transfer</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class DataTransferImpl extends SignalLazyResolverImpl implements DataTransfer {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected DataTransferImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return SignalDSLPackage.Literals.DATA_TRANSFER;
+	}
+
+} //DataTransferImpl
diff --git a/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/impl/ListTransferImpl.java b/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/impl/ListTransferImpl.java
new file mode 100644
index 0000000..0024caf
--- /dev/null
+++ b/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/impl/ListTransferImpl.java
@@ -0,0 +1,234 @@
+/**
+ * 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 v1.0
+ *  which accompanies this distribution, and is available at
+ *  http://www.eclipse.org/legal/epl-v10.html
+ *  
+ *  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.ListTransfer;
+import org.eclipse.osbp.xtext.signal.SignalDSLPackage;
+import org.eclipse.osbp.xtext.signal.SignalDatainterchange;
+import org.eclipse.osbp.xtext.signal.SignalExecutionTypeEnum;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>List Transfer</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.signal.impl.ListTransferImpl#getExecutiontype <em>Executiontype</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.signal.impl.ListTransferImpl#getInterchanges <em>Interchanges</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class ListTransferImpl extends DataTransferImpl implements ListTransfer {
+	/**
+	 * 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.SYNC;
+
+	/**
+	 * 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 #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 ListTransferImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return SignalDSLPackage.Literals.LIST_TRANSFER;
+	}
+
+	/**
+	 * <!-- 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.LIST_TRANSFER__EXECUTIONTYPE, oldExecutiontype, executiontype));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<SignalDatainterchange> getInterchanges() {
+		if (interchanges == null) {
+			interchanges = new EObjectContainmentEList<SignalDatainterchange>(SignalDatainterchange.class, this, SignalDSLPackage.LIST_TRANSFER__INTERCHANGES);
+		}
+		return interchanges;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case SignalDSLPackage.LIST_TRANSFER__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.LIST_TRANSFER__EXECUTIONTYPE:
+				return getExecutiontype();
+			case SignalDSLPackage.LIST_TRANSFER__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.LIST_TRANSFER__EXECUTIONTYPE:
+				setExecutiontype((SignalExecutionTypeEnum)newValue);
+				return;
+			case SignalDSLPackage.LIST_TRANSFER__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.LIST_TRANSFER__EXECUTIONTYPE:
+				setExecutiontype(EXECUTIONTYPE_EDEFAULT);
+				return;
+			case SignalDSLPackage.LIST_TRANSFER__INTERCHANGES:
+				getInterchanges().clear();
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case SignalDSLPackage.LIST_TRANSFER__EXECUTIONTYPE:
+				return executiontype != EXECUTIONTYPE_EDEFAULT;
+			case SignalDSLPackage.LIST_TRANSFER__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();
+	}
+
+} //ListTransferImpl
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 4a56fee..94885c7 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
@@ -76,9 +76,10 @@
 			case SignalDSLPackage.SIGNAL_BASE: return createSignalBase();
 			case SignalDSLPackage.SIGNAL_WATCHER: return createSignalWatcher();
 			case SignalDSLPackage.SIGNAL_HANDLER: return createSignalHandler();
-			case SignalDSLPackage.SIGNAL_HANDLING: return createSignalHandling();
 			case SignalDSLPackage.SIGNAL_DATAINTERCHANGE: return createSignalDatainterchange();
-			case SignalDSLPackage.SIGNAL_NOTIFICATION: return createSignalNotification();
+			case SignalDSLPackage.DATA_TRANSFER: return createDataTransfer();
+			case SignalDSLPackage.SINGLE_TRANSFER: return createSingleTransfer();
+			case SignalDSLPackage.LIST_TRANSFER: return createListTransfer();
 			default:
 				throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
 		}
@@ -94,14 +95,12 @@
 		switch (eDataType.getClassifierID()) {
 			case SignalDSLPackage.SIGNAL_HANDLER_TYPE_ENUM:
 				return createSignalHandlerTypeEnumFromString(eDataType, initialValue);
-			case SignalDSLPackage.SIGNAL_NOTIFICATION_ENUM:
-				return createSignalNotificationEnumFromString(eDataType, initialValue);
 			case SignalDSLPackage.SIGNAL_TYPE_ENUM:
 				return createSignalTypeEnumFromString(eDataType, initialValue);
 			case SignalDSLPackage.SIGNAL_ACTION_ENUM:
 				return createSignalActionEnumFromString(eDataType, initialValue);
-			case SignalDSLPackage.FILE_MASK_ENUM:
-				return createFileMaskEnumFromString(eDataType, initialValue);
+			case SignalDSLPackage.SIGNAL_EXECUTION_TYPE_ENUM:
+				return createSignalExecutionTypeEnumFromString(eDataType, initialValue);
 			case SignalDSLPackage.INTERNAL_EOBJECT:
 				return createInternalEObjectFromString(eDataType, initialValue);
 			default:
@@ -119,14 +118,12 @@
 		switch (eDataType.getClassifierID()) {
 			case SignalDSLPackage.SIGNAL_HANDLER_TYPE_ENUM:
 				return convertSignalHandlerTypeEnumToString(eDataType, instanceValue);
-			case SignalDSLPackage.SIGNAL_NOTIFICATION_ENUM:
-				return convertSignalNotificationEnumToString(eDataType, instanceValue);
 			case SignalDSLPackage.SIGNAL_TYPE_ENUM:
 				return convertSignalTypeEnumToString(eDataType, instanceValue);
 			case SignalDSLPackage.SIGNAL_ACTION_ENUM:
 				return convertSignalActionEnumToString(eDataType, instanceValue);
-			case SignalDSLPackage.FILE_MASK_ENUM:
-				return convertFileMaskEnumToString(eDataType, instanceValue);
+			case SignalDSLPackage.SIGNAL_EXECUTION_TYPE_ENUM:
+				return convertSignalExecutionTypeEnumToString(eDataType, instanceValue);
 			case SignalDSLPackage.INTERNAL_EOBJECT:
 				return convertInternalEObjectToString(eDataType, instanceValue);
 			default:
@@ -199,16 +196,6 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public SignalHandling createSignalHandling() {
-		SignalHandlingImpl signalHandling = new SignalHandlingImpl();
-		return signalHandling;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
 	public SignalDatainterchange createSignalDatainterchange() {
 		SignalDatainterchangeImpl signalDatainterchange = new SignalDatainterchangeImpl();
 		return signalDatainterchange;
@@ -219,9 +206,29 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public SignalNotification createSignalNotification() {
-		SignalNotificationImpl signalNotification = new SignalNotificationImpl();
-		return signalNotification;
+	public DataTransfer createDataTransfer() {
+		DataTransferImpl dataTransfer = new DataTransferImpl();
+		return dataTransfer;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public SingleTransfer createSingleTransfer() {
+		SingleTransferImpl singleTransfer = new SingleTransferImpl();
+		return singleTransfer;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ListTransfer createListTransfer() {
+		ListTransferImpl listTransfer = new ListTransferImpl();
+		return listTransfer;
 	}
 
 	/**
@@ -249,26 +256,6 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public SignalNotificationEnum createSignalNotificationEnumFromString(EDataType eDataType, String initialValue) {
-		SignalNotificationEnum result = SignalNotificationEnum.get(initialValue);
-		if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
-		return result;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String convertSignalNotificationEnumToString(EDataType eDataType, Object instanceValue) {
-		return instanceValue == null ? null : instanceValue.toString();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
 	public SignalTypeEnum createSignalTypeEnumFromString(EDataType eDataType, String initialValue) {
 		SignalTypeEnum result = SignalTypeEnum.get(initialValue);
 		if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
@@ -309,8 +296,8 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public FileMaskEnum createFileMaskEnumFromString(EDataType eDataType, String initialValue) {
-		FileMaskEnum result = FileMaskEnum.get(initialValue);
+	public SignalExecutionTypeEnum createSignalExecutionTypeEnumFromString(EDataType eDataType, String initialValue) {
+		SignalExecutionTypeEnum result = SignalExecutionTypeEnum.get(initialValue);
 		if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
 		return result;
 	}
@@ -320,7 +307,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public String convertFileMaskEnumToString(EDataType eDataType, Object instanceValue) {
+	public String convertSignalExecutionTypeEnumToString(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 e15963d..0a4f01c 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
@@ -30,23 +30,23 @@
 
 import org.eclipse.osbp.xtext.datainterchange.DataDSLPackage;
 
-import org.eclipse.osbp.xtext.signal.FileMaskEnum;
+import org.eclipse.osbp.xtext.signal.DataTransfer;
+import org.eclipse.osbp.xtext.signal.ListTransfer;
 import org.eclipse.osbp.xtext.signal.SignalActionEnum;
 import org.eclipse.osbp.xtext.signal.SignalBase;
 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.SignalExecutionTypeEnum;
 import org.eclipse.osbp.xtext.signal.SignalHandler;
 import org.eclipse.osbp.xtext.signal.SignalHandlerTypeEnum;
-import org.eclipse.osbp.xtext.signal.SignalHandling;
 import org.eclipse.osbp.xtext.signal.SignalLazyResolver;
 import org.eclipse.osbp.xtext.signal.SignalModel;
-import org.eclipse.osbp.xtext.signal.SignalNotification;
-import org.eclipse.osbp.xtext.signal.SignalNotificationEnum;
 import org.eclipse.osbp.xtext.signal.SignalPackage;
 import org.eclipse.osbp.xtext.signal.SignalProcessor;
 import org.eclipse.osbp.xtext.signal.SignalTypeEnum;
 import org.eclipse.osbp.xtext.signal.SignalWatcher;
+import org.eclipse.osbp.xtext.signal.SingleTransfer;
 
 import org.eclipse.xtext.xtype.XtypePackage;
 
@@ -104,13 +104,6 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	private EClass signalHandlingEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
 	private EClass signalProcessorEClass = null;
 
 	/**
@@ -125,7 +118,21 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	private EClass signalNotificationEClass = null;
+	private EClass dataTransferEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass singleTransferEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass listTransferEClass = null;
 
 	/**
 	 * <!-- begin-user-doc -->
@@ -139,13 +146,6 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	private EEnum signalNotificationEnumEEnum = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
 	private EEnum signalTypeEnumEEnum = null;
 
 	/**
@@ -160,7 +160,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	private EEnum fileMaskEnumEEnum = null;
+	private EEnum signalExecutionTypeEnumEEnum = null;
 
 	/**
 	 * <!-- begin-user-doc -->
@@ -337,7 +337,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EAttribute getSignalWatcher_Directory() {
+	public EAttribute getSignalWatcher_Name() {
 		return (EAttribute)signalWatcherEClass.getEStructuralFeatures().get(0);
 	}
 
@@ -346,7 +346,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EAttribute getSignalWatcher_Signal() {
+	public EAttribute getSignalWatcher_Directory() {
 		return (EAttribute)signalWatcherEClass.getEStructuralFeatures().get(1);
 	}
 
@@ -355,6 +355,24 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	public EAttribute getSignalWatcher_Signal() {
+		return (EAttribute)signalWatcherEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getSignalWatcher_Handlers() {
+		return (EReference)signalWatcherEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
 	public EClass getSignalHandler() {
 		return signalHandlerEClass;
 	}
@@ -364,8 +382,8 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EReference getSignalHandler_Watcher() {
-		return (EReference)signalHandlerEClass.getEStructuralFeatures().get(0);
+	public EAttribute getSignalHandler_Name() {
+		return (EAttribute)signalHandlerEClass.getEStructuralFeatures().get(0);
 	}
 
 	/**
@@ -373,8 +391,8 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EReference getSignalHandler_Handler() {
-		return (EReference)signalHandlerEClass.getEStructuralFeatures().get(1);
+	public EAttribute getSignalHandler_ActionType() {
+		return (EAttribute)signalHandlerEClass.getEStructuralFeatures().get(1);
 	}
 
 	/**
@@ -382,8 +400,8 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EReference getSignalHandler_Notification() {
-		return (EReference)signalHandlerEClass.getEStructuralFeatures().get(2);
+	public EAttribute getSignalHandler_Filemask() {
+		return (EAttribute)signalHandlerEClass.getEStructuralFeatures().get(2);
 	}
 
 	/**
@@ -391,8 +409,8 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EClass getSignalHandling() {
-		return signalHandlingEClass;
+	public EReference getSignalHandler_Datainterchanges() {
+		return (EReference)signalHandlerEClass.getEStructuralFeatures().get(3);
 	}
 
 	/**
@@ -400,17 +418,8 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EAttribute getSignalHandling_ActionType() {
-		return (EAttribute)signalHandlingEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getSignalHandling_DataRef() {
-		return (EReference)signalHandlingEClass.getEStructuralFeatures().get(1);
+	public EReference getSignalHandler_Data() {
+		return (EReference)signalHandlerEClass.getEStructuralFeatures().get(4);
 	}
 
 	/**
@@ -436,8 +445,17 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	public EAttribute getSignalDatainterchange_DataAction() {
+		return (EAttribute)signalDatainterchangeEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
 	public EReference getSignalDatainterchange_DataRef() {
-		return (EReference)signalDatainterchangeEClass.getEStructuralFeatures().get(0);
+		return (EReference)signalDatainterchangeEClass.getEStructuralFeatures().get(1);
 	}
 
 	/**
@@ -445,8 +463,8 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EClass getSignalNotification() {
-		return signalNotificationEClass;
+	public EClass getDataTransfer() {
+		return dataTransferEClass;
 	}
 
 	/**
@@ -454,8 +472,8 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EAttribute getSignalNotification_Event() {
-		return (EAttribute)signalNotificationEClass.getEStructuralFeatures().get(0);
+	public EClass getSingleTransfer() {
+		return singleTransferEClass;
 	}
 
 	/**
@@ -463,8 +481,35 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EAttribute getSignalNotification_Message() {
-		return (EAttribute)signalNotificationEClass.getEStructuralFeatures().get(1);
+	public EReference getSingleTransfer_Interchange() {
+		return (EReference)singleTransferEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getListTransfer() {
+		return listTransferEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getListTransfer_Executiontype() {
+		return (EAttribute)listTransferEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getListTransfer_Interchanges() {
+		return (EReference)listTransferEClass.getEStructuralFeatures().get(1);
 	}
 
 	/**
@@ -481,15 +526,6 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EEnum getSignalNotificationEnum() {
-		return signalNotificationEnumEEnum;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
 	public EEnum getSignalTypeEnum() {
 		return signalTypeEnumEEnum;
 	}
@@ -508,8 +544,8 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EEnum getFileMaskEnum() {
-		return fileMaskEnumEEnum;
+	public EEnum getSignalExecutionTypeEnum() {
+		return signalExecutionTypeEnumEEnum;
 	}
 
 	/**
@@ -564,33 +600,38 @@
 		createEAttribute(signalBaseEClass, SIGNAL_BASE__NAME);
 
 		signalWatcherEClass = createEClass(SIGNAL_WATCHER);
+		createEAttribute(signalWatcherEClass, SIGNAL_WATCHER__NAME);
 		createEAttribute(signalWatcherEClass, SIGNAL_WATCHER__DIRECTORY);
 		createEAttribute(signalWatcherEClass, SIGNAL_WATCHER__SIGNAL);
+		createEReference(signalWatcherEClass, SIGNAL_WATCHER__HANDLERS);
 
 		signalHandlerEClass = createEClass(SIGNAL_HANDLER);
-		createEReference(signalHandlerEClass, SIGNAL_HANDLER__WATCHER);
-		createEReference(signalHandlerEClass, SIGNAL_HANDLER__HANDLER);
-		createEReference(signalHandlerEClass, SIGNAL_HANDLER__NOTIFICATION);
-
-		signalHandlingEClass = createEClass(SIGNAL_HANDLING);
-		createEAttribute(signalHandlingEClass, SIGNAL_HANDLING__ACTION_TYPE);
-		createEReference(signalHandlingEClass, SIGNAL_HANDLING__DATA_REF);
+		createEAttribute(signalHandlerEClass, SIGNAL_HANDLER__NAME);
+		createEAttribute(signalHandlerEClass, SIGNAL_HANDLER__ACTION_TYPE);
+		createEAttribute(signalHandlerEClass, SIGNAL_HANDLER__FILEMASK);
+		createEReference(signalHandlerEClass, SIGNAL_HANDLER__DATAINTERCHANGES);
+		createEReference(signalHandlerEClass, SIGNAL_HANDLER__DATA);
 
 		signalProcessorEClass = createEClass(SIGNAL_PROCESSOR);
 
 		signalDatainterchangeEClass = createEClass(SIGNAL_DATAINTERCHANGE);
+		createEAttribute(signalDatainterchangeEClass, SIGNAL_DATAINTERCHANGE__DATA_ACTION);
 		createEReference(signalDatainterchangeEClass, SIGNAL_DATAINTERCHANGE__DATA_REF);
 
-		signalNotificationEClass = createEClass(SIGNAL_NOTIFICATION);
-		createEAttribute(signalNotificationEClass, SIGNAL_NOTIFICATION__EVENT);
-		createEAttribute(signalNotificationEClass, SIGNAL_NOTIFICATION__MESSAGE);
+		dataTransferEClass = createEClass(DATA_TRANSFER);
+
+		singleTransferEClass = createEClass(SINGLE_TRANSFER);
+		createEReference(singleTransferEClass, SINGLE_TRANSFER__INTERCHANGE);
+
+		listTransferEClass = createEClass(LIST_TRANSFER);
+		createEAttribute(listTransferEClass, LIST_TRANSFER__EXECUTIONTYPE);
+		createEReference(listTransferEClass, LIST_TRANSFER__INTERCHANGES);
 
 		// Create enums
 		signalHandlerTypeEnumEEnum = createEEnum(SIGNAL_HANDLER_TYPE_ENUM);
-		signalNotificationEnumEEnum = createEEnum(SIGNAL_NOTIFICATION_ENUM);
 		signalTypeEnumEEnum = createEEnum(SIGNAL_TYPE_ENUM);
 		signalActionEnumEEnum = createEEnum(SIGNAL_ACTION_ENUM);
-		fileMaskEnumEEnum = createEEnum(FILE_MASK_ENUM);
+		signalExecutionTypeEnumEEnum = createEEnum(SIGNAL_EXECUTION_TYPE_ENUM);
 
 		// Create data types
 		internalEObjectEDataType = createEDataType(INTERNAL_EOBJECT);
@@ -632,12 +673,13 @@
 		// Add supertypes to classes
 		signalPackageEClass.getESuperTypes().add(theOSBPTypesPackage.getLPackage());
 		signalBaseEClass.getESuperTypes().add(this.getSignalLazyResolver());
-		signalWatcherEClass.getESuperTypes().add(this.getSignalBase());
+		signalWatcherEClass.getESuperTypes().add(this.getSignalLazyResolver());
 		signalHandlerEClass.getESuperTypes().add(this.getSignalLazyResolver());
-		signalHandlingEClass.getESuperTypes().add(this.getSignalLazyResolver());
 		signalProcessorEClass.getESuperTypes().add(this.getSignalLazyResolver());
 		signalDatainterchangeEClass.getESuperTypes().add(this.getSignalProcessor());
-		signalNotificationEClass.getESuperTypes().add(this.getSignalBase());
+		dataTransferEClass.getESuperTypes().add(this.getSignalLazyResolver());
+		singleTransferEClass.getESuperTypes().add(this.getDataTransfer());
+		listTransferEClass.getESuperTypes().add(this.getDataTransfer());
 
 		// Initialize classes, features, and operations; add parameters
 		initEClass(signalModelEClass, SignalModel.class, "SignalModel", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
@@ -657,43 +699,39 @@
 		initEAttribute(getSignalBase_Name(), theEcorePackage.getEString(), "name", null, 0, 1, SignalBase.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
 		initEClass(signalWatcherEClass, SignalWatcher.class, "SignalWatcher", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getSignalWatcher_Name(), theEcorePackage.getEString(), "name", null, 0, 1, SignalWatcher.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEAttribute(getSignalWatcher_Directory(), theEcorePackage.getEString(), "directory", null, 0, 1, SignalWatcher.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEAttribute(getSignalWatcher_Signal(), this.getSignalTypeEnum(), "signal", null, 0, 1, SignalWatcher.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getSignalWatcher_Handlers(), this.getSignalHandler(), null, "handlers", 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(signalHandlerEClass, SignalHandler.class, "SignalHandler", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getSignalHandler_Watcher(), this.getSignalWatcher(), null, "watcher", null, 0, 1, SignalHandler.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getSignalHandler_Handler(), this.getSignalHandling(), null, "handler", null, 0, 1, SignalHandler.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getSignalHandler_Notification(), this.getSignalNotification(), null, "notification", null, 0, 1, SignalHandler.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(signalHandlingEClass, SignalHandling.class, "SignalHandling", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEAttribute(getSignalHandling_ActionType(), this.getSignalHandlerTypeEnum(), "actionType", null, 0, 1, SignalHandling.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getSignalHandling_DataRef(), theDataDSLPackage.getDataInterchange(), null, "dataRef", null, 0, 1, SignalHandling.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getSignalHandler_Name(), theEcorePackage.getEString(), "name", null, 0, 1, SignalHandler.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getSignalHandler_ActionType(), this.getSignalHandlerTypeEnum(), "actionType", null, 0, 1, SignalHandler.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getSignalHandler_Filemask(), theEcorePackage.getEString(), "filemask", null, 0, 1, SignalHandler.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getSignalHandler_Datainterchanges(), this.getSignalDatainterchange(), null, "datainterchanges", null, 0, -1, SignalHandler.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getSignalHandler_Data(), this.getDataTransfer(), null, "data", null, 0, 1, SignalHandler.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
 		initEClass(signalProcessorEClass, SignalProcessor.class, "SignalProcessor", 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);
 		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);
 
-		initEClass(signalNotificationEClass, SignalNotification.class, "SignalNotification", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEAttribute(getSignalNotification_Event(), this.getSignalNotificationEnum(), "event", null, 0, 1, SignalNotification.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEAttribute(getSignalNotification_Message(), theEcorePackage.getEString(), "message", null, 0, 1, SignalNotification.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEClass(dataTransferEClass, DataTransfer.class, "DataTransfer", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+		initEClass(singleTransferEClass, SingleTransfer.class, "SingleTransfer", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getSingleTransfer_Interchange(), this.getSignalDatainterchange(), null, "interchange", null, 0, 1, SingleTransfer.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(listTransferEClass, ListTransfer.class, "ListTransfer", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getListTransfer_Executiontype(), this.getSignalExecutionTypeEnum(), "executiontype", null, 0, 1, ListTransfer.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getListTransfer_Interchanges(), this.getSignalDatainterchange(), null, "interchanges", null, 0, -1, ListTransfer.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(signalHandlerTypeEnumEEnum, SignalHandlerTypeEnum.class, "SignalHandlerTypeEnum");
-		addEEnumLiteral(signalHandlerTypeEnumEEnum, SignalHandlerTypeEnum.DO_AFTER);
-		addEEnumLiteral(signalHandlerTypeEnumEEnum, SignalHandlerTypeEnum.DO_BEFORE);
-		addEEnumLiteral(signalHandlerTypeEnumEEnum, SignalHandlerTypeEnum.DO_AFTER_MODIFY);
-		addEEnumLiteral(signalHandlerTypeEnumEEnum, SignalHandlerTypeEnum.DO_AFTER_CREATE);
-		addEEnumLiteral(signalHandlerTypeEnumEEnum, SignalHandlerTypeEnum.DO_AFTER_DELETE);
-		addEEnumLiteral(signalHandlerTypeEnumEEnum, SignalHandlerTypeEnum.DO_BEFORE_MODIFY);
-		addEEnumLiteral(signalHandlerTypeEnumEEnum, SignalHandlerTypeEnum.DO_BEFORE_CREATE);
-		addEEnumLiteral(signalHandlerTypeEnumEEnum, SignalHandlerTypeEnum.DO_DEFORE_DELETE);
-
-		initEEnum(signalNotificationEnumEEnum, SignalNotificationEnum.class, "SignalNotificationEnum");
-		addEEnumLiteral(signalNotificationEnumEEnum, SignalNotificationEnum.SHOW_ON_ALL);
-		addEEnumLiteral(signalNotificationEnumEEnum, SignalNotificationEnum.SHOW_ON_CREATE);
-		addEEnumLiteral(signalNotificationEnumEEnum, SignalNotificationEnum.SHOW_ON_DELETE);
-		addEEnumLiteral(signalNotificationEnumEEnum, SignalNotificationEnum.SHOW_ON_MODIFY);
+		addEEnumLiteral(signalHandlerTypeEnumEEnum, SignalHandlerTypeEnum.DOAFTER);
+		addEEnumLiteral(signalHandlerTypeEnumEEnum, SignalHandlerTypeEnum.DOAFTERMODIFY);
+		addEEnumLiteral(signalHandlerTypeEnumEEnum, SignalHandlerTypeEnum.DOAFTERCREATE);
+		addEEnumLiteral(signalHandlerTypeEnumEEnum, SignalHandlerTypeEnum.DOAFTERDELETE);
 
 		initEEnum(signalTypeEnumEEnum, SignalTypeEnum.class, "SignalTypeEnum");
 		addEEnumLiteral(signalTypeEnumEEnum, SignalTypeEnum.ALL);
@@ -703,17 +741,12 @@
 
 		initEEnum(signalActionEnumEEnum, SignalActionEnum.class, "SignalActionEnum");
 		addEEnumLiteral(signalActionEnumEEnum, SignalActionEnum.DATAIMPORT);
-		addEEnumLiteral(signalActionEnumEEnum, SignalActionEnum.PDFPRINT);
-		addEEnumLiteral(signalActionEnumEEnum, SignalActionEnum.PRINT);
-		addEEnumLiteral(signalActionEnumEEnum, SignalActionEnum.MAIL);
-		addEEnumLiteral(signalActionEnumEEnum, SignalActionEnum.MESSAGEPROMPT);
+		addEEnumLiteral(signalActionEnumEEnum, SignalActionEnum.DATAEXPORT);
 		addEEnumLiteral(signalActionEnumEEnum, SignalActionEnum.NONE);
 
-		initEEnum(fileMaskEnumEEnum, FileMaskEnum.class, "FileMaskEnum");
-		addEEnumLiteral(fileMaskEnumEEnum, FileMaskEnum.FILE_IMPORT);
-		addEEnumLiteral(fileMaskEnumEEnum, FileMaskEnum.PDF_FILE);
-		addEEnumLiteral(fileMaskEnumEEnum, FileMaskEnum.FILE_PRINT);
-		addEEnumLiteral(fileMaskEnumEEnum, FileMaskEnum.MESSAGE);
+		initEEnum(signalExecutionTypeEnumEEnum, SignalExecutionTypeEnum.class, "SignalExecutionTypeEnum");
+		addEEnumLiteral(signalExecutionTypeEnumEEnum, SignalExecutionTypeEnum.SYNC);
+		addEEnumLiteral(signalExecutionTypeEnumEEnum, SignalExecutionTypeEnum.ASYNC);
 
 		// Initialize data types
 		initEDataType(internalEObjectEDataType, InternalEObject.class, "InternalEObject", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS);
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 3bfd606..d4e685f 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
@@ -23,6 +23,7 @@
 
 import org.eclipse.osbp.xtext.datainterchange.DataInterchange;
 
+import org.eclipse.osbp.xtext.signal.SignalActionEnum;
 import org.eclipse.osbp.xtext.signal.SignalDSLPackage;
 import org.eclipse.osbp.xtext.signal.SignalDatainterchange;
 
@@ -34,6 +35,7 @@
  * 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#getDataRef <em>Data Ref</em>}</li>
  * </ul>
  *
@@ -41,6 +43,26 @@
  */
 public class SignalDatainterchangeImpl extends SignalLazyResolverImpl implements SignalDatainterchange {
 	/**
+	 * The default value of the '{@link #getDataAction() <em>Data Action</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDataAction()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final SignalActionEnum DATA_ACTION_EDEFAULT = SignalActionEnum.DATAIMPORT;
+
+	/**
+	 * The cached value of the '{@link #getDataAction() <em>Data Action</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDataAction()
+	 * @generated
+	 * @ordered
+	 */
+	protected SignalActionEnum dataAction = DATA_ACTION_EDEFAULT;
+
+	/**
 	 * The cached value of the '{@link #getDataRef() <em>Data Ref</em>}' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -74,6 +96,27 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	public SignalActionEnum getDataAction() {
+		return dataAction;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setDataAction(SignalActionEnum newDataAction) {
+		SignalActionEnum oldDataAction = dataAction;
+		dataAction = newDataAction == null ? DATA_ACTION_EDEFAULT : newDataAction;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SignalDSLPackage.SIGNAL_DATAINTERCHANGE__DATA_ACTION, oldDataAction, dataAction));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
 	public DataInterchange getDataRef() {
 		if (dataRef != null && dataRef.eIsProxy()) {
 			InternalEObject oldDataRef = (InternalEObject)dataRef;
@@ -115,6 +158,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__DATA_REF:
 				if (resolve) return getDataRef();
 				return basicGetDataRef();
@@ -130,6 +175,9 @@
 	@Override
 	public void eSet(int featureID, Object newValue) {
 		switch (featureID) {
+			case SignalDSLPackage.SIGNAL_DATAINTERCHANGE__DATA_ACTION:
+				setDataAction((SignalActionEnum)newValue);
+				return;
 			case SignalDSLPackage.SIGNAL_DATAINTERCHANGE__DATA_REF:
 				setDataRef((DataInterchange)newValue);
 				return;
@@ -145,6 +193,9 @@
 	@Override
 	public void eUnset(int featureID) {
 		switch (featureID) {
+			case SignalDSLPackage.SIGNAL_DATAINTERCHANGE__DATA_ACTION:
+				setDataAction(DATA_ACTION_EDEFAULT);
+				return;
 			case SignalDSLPackage.SIGNAL_DATAINTERCHANGE__DATA_REF:
 				setDataRef((DataInterchange)null);
 				return;
@@ -160,10 +211,28 @@
 	@Override
 	public boolean eIsSet(int featureID) {
 		switch (featureID) {
+			case SignalDSLPackage.SIGNAL_DATAINTERCHANGE__DATA_ACTION:
+				return dataAction != DATA_ACTION_EDEFAULT;
 			case SignalDSLPackage.SIGNAL_DATAINTERCHANGE__DATA_REF:
 				return dataRef != 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(" (dataAction: ");
+		result.append(dataAction);
+		result.append(')');
+		return result.toString();
+	}
+
 } //SignalDatainterchangeImpl
diff --git a/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/impl/SignalHandlerImpl.java b/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/impl/SignalHandlerImpl.java
index 38be210..cbb2305 100644
--- a/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/impl/SignalHandlerImpl.java
+++ b/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/impl/SignalHandlerImpl.java
@@ -14,19 +14,26 @@
  */
 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.DataTransfer;
 import org.eclipse.osbp.xtext.signal.SignalDSLPackage;
+import org.eclipse.osbp.xtext.signal.SignalDatainterchange;
 import org.eclipse.osbp.xtext.signal.SignalHandler;
-import org.eclipse.osbp.xtext.signal.SignalHandling;
-import org.eclipse.osbp.xtext.signal.SignalNotification;
-import org.eclipse.osbp.xtext.signal.SignalWatcher;
+import org.eclipse.osbp.xtext.signal.SignalHandlerTypeEnum;
 
 /**
  * <!-- begin-user-doc -->
@@ -36,43 +43,95 @@
  * The following features are implemented:
  * </p>
  * <ul>
- *   <li>{@link org.eclipse.osbp.xtext.signal.impl.SignalHandlerImpl#getWatcher <em>Watcher</em>}</li>
- *   <li>{@link org.eclipse.osbp.xtext.signal.impl.SignalHandlerImpl#getHandler <em>Handler</em>}</li>
- *   <li>{@link org.eclipse.osbp.xtext.signal.impl.SignalHandlerImpl#getNotification <em>Notification</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.signal.impl.SignalHandlerImpl#getName <em>Name</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.signal.impl.SignalHandlerImpl#getActionType <em>Action Type</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.signal.impl.SignalHandlerImpl#getFilemask <em>Filemask</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.signal.impl.SignalHandlerImpl#getDatainterchanges <em>Datainterchanges</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.signal.impl.SignalHandlerImpl#getData <em>Data</em>}</li>
  * </ul>
  *
  * @generated
  */
 public class SignalHandlerImpl extends SignalLazyResolverImpl implements SignalHandler {
 	/**
-	 * The cached value of the '{@link #getWatcher() <em>Watcher</em>}' reference.
+	 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @see #getWatcher()
+	 * @see #getName()
 	 * @generated
 	 * @ordered
 	 */
-	protected SignalWatcher watcher;
+	protected static final String NAME_EDEFAULT = null;
 
 	/**
-	 * The cached value of the '{@link #getHandler() <em>Handler</em>}' containment reference.
+	 * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @see #getHandler()
+	 * @see #getName()
 	 * @generated
 	 * @ordered
 	 */
-	protected SignalHandling handler;
+	protected String name = NAME_EDEFAULT;
 
 	/**
-	 * The cached value of the '{@link #getNotification() <em>Notification</em>}' containment reference.
+	 * The default value of the '{@link #getActionType() <em>Action Type</em>}' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @see #getNotification()
+	 * @see #getActionType()
 	 * @generated
 	 * @ordered
 	 */
-	protected SignalNotification notification;
+	protected static final SignalHandlerTypeEnum ACTION_TYPE_EDEFAULT = SignalHandlerTypeEnum.DOAFTER;
+
+	/**
+	 * The cached value of the '{@link #getActionType() <em>Action Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getActionType()
+	 * @generated
+	 * @ordered
+	 */
+	protected SignalHandlerTypeEnum actionType = ACTION_TYPE_EDEFAULT;
+
+	/**
+	 * 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 #getDatainterchanges() <em>Datainterchanges</em>}' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDatainterchanges()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<SignalDatainterchange> datainterchanges;
+
+	/**
+	 * The cached value of the '{@link #getData() <em>Data</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getData()
+	 * @generated
+	 * @ordered
+	 */
+	protected DataTransfer data;
 
 	/**
 	 * <!-- begin-user-doc -->
@@ -98,16 +157,8 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public SignalWatcher getWatcher() {
-		if (watcher != null && watcher.eIsProxy()) {
-			InternalEObject oldWatcher = (InternalEObject)watcher;
-			watcher = (SignalWatcher)eResolveProxy(oldWatcher);
-			if (watcher != oldWatcher) {
-				if (eNotificationRequired())
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE, SignalDSLPackage.SIGNAL_HANDLER__WATCHER, oldWatcher, watcher));
-			}
-		}
-		return watcher;
+	public String getName() {
+		return name;
 	}
 
 	/**
@@ -115,20 +166,11 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public SignalWatcher basicGetWatcher() {
-		return watcher;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setWatcher(SignalWatcher newWatcher) {
-		SignalWatcher oldWatcher = watcher;
-		watcher = newWatcher;
+	public void setName(String newName) {
+		String oldName = name;
+		name = newName;
 		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, SignalDSLPackage.SIGNAL_HANDLER__WATCHER, oldWatcher, watcher));
+			eNotify(new ENotificationImpl(this, Notification.SET, SignalDSLPackage.SIGNAL_HANDLER__NAME, oldName, name));
 	}
 
 	/**
@@ -136,8 +178,8 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public SignalHandling getHandler() {
-		return handler;
+	public SignalHandlerTypeEnum getActionType() {
+		return actionType;
 	}
 
 	/**
@@ -145,11 +187,65 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public NotificationChain basicSetHandler(SignalHandling newHandler, NotificationChain msgs) {
-		SignalHandling oldHandler = handler;
-		handler = newHandler;
+	public void setActionType(SignalHandlerTypeEnum newActionType) {
+		SignalHandlerTypeEnum oldActionType = actionType;
+		actionType = newActionType == null ? ACTION_TYPE_EDEFAULT : newActionType;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SignalDSLPackage.SIGNAL_HANDLER__ACTION_TYPE, oldActionType, actionType));
+	}
+
+	/**
+	 * <!-- 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.SIGNAL_HANDLER__FILEMASK, oldFilemask, filemask));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<SignalDatainterchange> getDatainterchanges() {
+		if (datainterchanges == null) {
+			datainterchanges = new EObjectContainmentEList<SignalDatainterchange>(SignalDatainterchange.class, this, SignalDSLPackage.SIGNAL_HANDLER__DATAINTERCHANGES);
+		}
+		return datainterchanges;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public DataTransfer getData() {
+		return data;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetData(DataTransfer newData, NotificationChain msgs) {
+		DataTransfer oldData = data;
+		data = newData;
 		if (eNotificationRequired()) {
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SignalDSLPackage.SIGNAL_HANDLER__HANDLER, oldHandler, newHandler);
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SignalDSLPackage.SIGNAL_HANDLER__DATA, oldData, newData);
 			if (msgs == null) msgs = notification; else msgs.add(notification);
 		}
 		return msgs;
@@ -160,61 +256,18 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public void setHandler(SignalHandling newHandler) {
-		if (newHandler != handler) {
+	public void setData(DataTransfer newData) {
+		if (newData != data) {
 			NotificationChain msgs = null;
-			if (handler != null)
-				msgs = ((InternalEObject)handler).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SignalDSLPackage.SIGNAL_HANDLER__HANDLER, null, msgs);
-			if (newHandler != null)
-				msgs = ((InternalEObject)newHandler).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SignalDSLPackage.SIGNAL_HANDLER__HANDLER, null, msgs);
-			msgs = basicSetHandler(newHandler, msgs);
+			if (data != null)
+				msgs = ((InternalEObject)data).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SignalDSLPackage.SIGNAL_HANDLER__DATA, null, msgs);
+			if (newData != null)
+				msgs = ((InternalEObject)newData).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SignalDSLPackage.SIGNAL_HANDLER__DATA, null, msgs);
+			msgs = basicSetData(newData, msgs);
 			if (msgs != null) msgs.dispatch();
 		}
 		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, SignalDSLPackage.SIGNAL_HANDLER__HANDLER, newHandler, newHandler));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public SignalNotification getNotification() {
-		return notification;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetNotification(SignalNotification newNotification, NotificationChain msgs) {
-		SignalNotification oldNotification = notification;
-		notification = newNotification;
-		if (eNotificationRequired()) {
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SignalDSLPackage.SIGNAL_HANDLER__NOTIFICATION, oldNotification, newNotification);
-			if (msgs == null) msgs = notification; else msgs.add(notification);
-		}
-		return msgs;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setNotification(SignalNotification newNotification) {
-		if (newNotification != notification) {
-			NotificationChain msgs = null;
-			if (notification != null)
-				msgs = ((InternalEObject)notification).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SignalDSLPackage.SIGNAL_HANDLER__NOTIFICATION, null, msgs);
-			if (newNotification != null)
-				msgs = ((InternalEObject)newNotification).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SignalDSLPackage.SIGNAL_HANDLER__NOTIFICATION, null, msgs);
-			msgs = basicSetNotification(newNotification, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, SignalDSLPackage.SIGNAL_HANDLER__NOTIFICATION, newNotification, newNotification));
+			eNotify(new ENotificationImpl(this, Notification.SET, SignalDSLPackage.SIGNAL_HANDLER__DATA, newData, newData));
 	}
 
 	/**
@@ -225,10 +278,10 @@
 	@Override
 	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
 		switch (featureID) {
-			case SignalDSLPackage.SIGNAL_HANDLER__HANDLER:
-				return basicSetHandler(null, msgs);
-			case SignalDSLPackage.SIGNAL_HANDLER__NOTIFICATION:
-				return basicSetNotification(null, msgs);
+			case SignalDSLPackage.SIGNAL_HANDLER__DATAINTERCHANGES:
+				return ((InternalEList<?>)getDatainterchanges()).basicRemove(otherEnd, msgs);
+			case SignalDSLPackage.SIGNAL_HANDLER__DATA:
+				return basicSetData(null, msgs);
 		}
 		return super.eInverseRemove(otherEnd, featureID, msgs);
 	}
@@ -241,13 +294,16 @@
 	@Override
 	public Object eGet(int featureID, boolean resolve, boolean coreType) {
 		switch (featureID) {
-			case SignalDSLPackage.SIGNAL_HANDLER__WATCHER:
-				if (resolve) return getWatcher();
-				return basicGetWatcher();
-			case SignalDSLPackage.SIGNAL_HANDLER__HANDLER:
-				return getHandler();
-			case SignalDSLPackage.SIGNAL_HANDLER__NOTIFICATION:
-				return getNotification();
+			case SignalDSLPackage.SIGNAL_HANDLER__NAME:
+				return getName();
+			case SignalDSLPackage.SIGNAL_HANDLER__ACTION_TYPE:
+				return getActionType();
+			case SignalDSLPackage.SIGNAL_HANDLER__FILEMASK:
+				return getFilemask();
+			case SignalDSLPackage.SIGNAL_HANDLER__DATAINTERCHANGES:
+				return getDatainterchanges();
+			case SignalDSLPackage.SIGNAL_HANDLER__DATA:
+				return getData();
 		}
 		return super.eGet(featureID, resolve, coreType);
 	}
@@ -257,17 +313,25 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@SuppressWarnings("unchecked")
 	@Override
 	public void eSet(int featureID, Object newValue) {
 		switch (featureID) {
-			case SignalDSLPackage.SIGNAL_HANDLER__WATCHER:
-				setWatcher((SignalWatcher)newValue);
+			case SignalDSLPackage.SIGNAL_HANDLER__NAME:
+				setName((String)newValue);
 				return;
-			case SignalDSLPackage.SIGNAL_HANDLER__HANDLER:
-				setHandler((SignalHandling)newValue);
+			case SignalDSLPackage.SIGNAL_HANDLER__ACTION_TYPE:
+				setActionType((SignalHandlerTypeEnum)newValue);
 				return;
-			case SignalDSLPackage.SIGNAL_HANDLER__NOTIFICATION:
-				setNotification((SignalNotification)newValue);
+			case SignalDSLPackage.SIGNAL_HANDLER__FILEMASK:
+				setFilemask((String)newValue);
+				return;
+			case SignalDSLPackage.SIGNAL_HANDLER__DATAINTERCHANGES:
+				getDatainterchanges().clear();
+				getDatainterchanges().addAll((Collection<? extends SignalDatainterchange>)newValue);
+				return;
+			case SignalDSLPackage.SIGNAL_HANDLER__DATA:
+				setData((DataTransfer)newValue);
 				return;
 		}
 		super.eSet(featureID, newValue);
@@ -281,14 +345,20 @@
 	@Override
 	public void eUnset(int featureID) {
 		switch (featureID) {
-			case SignalDSLPackage.SIGNAL_HANDLER__WATCHER:
-				setWatcher((SignalWatcher)null);
+			case SignalDSLPackage.SIGNAL_HANDLER__NAME:
+				setName(NAME_EDEFAULT);
 				return;
-			case SignalDSLPackage.SIGNAL_HANDLER__HANDLER:
-				setHandler((SignalHandling)null);
+			case SignalDSLPackage.SIGNAL_HANDLER__ACTION_TYPE:
+				setActionType(ACTION_TYPE_EDEFAULT);
 				return;
-			case SignalDSLPackage.SIGNAL_HANDLER__NOTIFICATION:
-				setNotification((SignalNotification)null);
+			case SignalDSLPackage.SIGNAL_HANDLER__FILEMASK:
+				setFilemask(FILEMASK_EDEFAULT);
+				return;
+			case SignalDSLPackage.SIGNAL_HANDLER__DATAINTERCHANGES:
+				getDatainterchanges().clear();
+				return;
+			case SignalDSLPackage.SIGNAL_HANDLER__DATA:
+				setData((DataTransfer)null);
 				return;
 		}
 		super.eUnset(featureID);
@@ -302,14 +372,38 @@
 	@Override
 	public boolean eIsSet(int featureID) {
 		switch (featureID) {
-			case SignalDSLPackage.SIGNAL_HANDLER__WATCHER:
-				return watcher != null;
-			case SignalDSLPackage.SIGNAL_HANDLER__HANDLER:
-				return handler != null;
-			case SignalDSLPackage.SIGNAL_HANDLER__NOTIFICATION:
-				return notification != null;
+			case SignalDSLPackage.SIGNAL_HANDLER__NAME:
+				return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+			case SignalDSLPackage.SIGNAL_HANDLER__ACTION_TYPE:
+				return actionType != ACTION_TYPE_EDEFAULT;
+			case SignalDSLPackage.SIGNAL_HANDLER__FILEMASK:
+				return FILEMASK_EDEFAULT == null ? filemask != null : !FILEMASK_EDEFAULT.equals(filemask);
+			case SignalDSLPackage.SIGNAL_HANDLER__DATAINTERCHANGES:
+				return datainterchanges != null && !datainterchanges.isEmpty();
+			case SignalDSLPackage.SIGNAL_HANDLER__DATA:
+				return data != 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(" (name: ");
+		result.append(name);
+		result.append(", actionType: ");
+		result.append(actionType);
+		result.append(", filemask: ");
+		result.append(filemask);
+		result.append(')');
+		return result.toString();
+	}
+
 } //SignalHandlerImpl
diff --git a/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/impl/SignalHandlingImpl.java b/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/impl/SignalHandlingImpl.java
deleted file mode 100644
index 8a00a81..0000000
--- a/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/impl/SignalHandlingImpl.java
+++ /dev/null
@@ -1,238 +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 v1.0
- *  which accompanies this distribution, and is available at
- *  http://www.eclipse.org/legal/epl-v10.html
- *  
- *  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.signal.SignalDSLPackage;
-import org.eclipse.osbp.xtext.signal.SignalHandlerTypeEnum;
-import org.eclipse.osbp.xtext.signal.SignalHandling;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Signal Handling</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link org.eclipse.osbp.xtext.signal.impl.SignalHandlingImpl#getActionType <em>Action Type</em>}</li>
- *   <li>{@link org.eclipse.osbp.xtext.signal.impl.SignalHandlingImpl#getDataRef <em>Data Ref</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class SignalHandlingImpl extends SignalLazyResolverImpl implements SignalHandling {
-	/**
-	 * The default value of the '{@link #getActionType() <em>Action Type</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getActionType()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final SignalHandlerTypeEnum ACTION_TYPE_EDEFAULT = SignalHandlerTypeEnum.DO_AFTER;
-
-	/**
-	 * The cached value of the '{@link #getActionType() <em>Action Type</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getActionType()
-	 * @generated
-	 * @ordered
-	 */
-	protected SignalHandlerTypeEnum actionType = ACTION_TYPE_EDEFAULT;
-
-	/**
-	 * The cached value of the '{@link #getDataRef() <em>Data Ref</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getDataRef()
-	 * @generated
-	 * @ordered
-	 */
-	protected DataInterchange dataRef;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected SignalHandlingImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return SignalDSLPackage.Literals.SIGNAL_HANDLING;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public SignalHandlerTypeEnum getActionType() {
-		return actionType;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setActionType(SignalHandlerTypeEnum newActionType) {
-		SignalHandlerTypeEnum oldActionType = actionType;
-		actionType = newActionType == null ? ACTION_TYPE_EDEFAULT : newActionType;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, SignalDSLPackage.SIGNAL_HANDLING__ACTION_TYPE, oldActionType, actionType));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public DataInterchange getDataRef() {
-		if (dataRef != null && dataRef.eIsProxy()) {
-			InternalEObject oldDataRef = (InternalEObject)dataRef;
-			dataRef = (DataInterchange)eResolveProxy(oldDataRef);
-			if (dataRef != oldDataRef) {
-				if (eNotificationRequired())
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE, SignalDSLPackage.SIGNAL_HANDLING__DATA_REF, oldDataRef, dataRef));
-			}
-		}
-		return dataRef;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public DataInterchange basicGetDataRef() {
-		return dataRef;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setDataRef(DataInterchange newDataRef) {
-		DataInterchange oldDataRef = dataRef;
-		dataRef = newDataRef;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, SignalDSLPackage.SIGNAL_HANDLING__DATA_REF, oldDataRef, dataRef));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-			case SignalDSLPackage.SIGNAL_HANDLING__ACTION_TYPE:
-				return getActionType();
-			case SignalDSLPackage.SIGNAL_HANDLING__DATA_REF:
-				if (resolve) return getDataRef();
-				return basicGetDataRef();
-		}
-		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_HANDLING__ACTION_TYPE:
-				setActionType((SignalHandlerTypeEnum)newValue);
-				return;
-			case SignalDSLPackage.SIGNAL_HANDLING__DATA_REF:
-				setDataRef((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_HANDLING__ACTION_TYPE:
-				setActionType(ACTION_TYPE_EDEFAULT);
-				return;
-			case SignalDSLPackage.SIGNAL_HANDLING__DATA_REF:
-				setDataRef((DataInterchange)null);
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-			case SignalDSLPackage.SIGNAL_HANDLING__ACTION_TYPE:
-				return actionType != ACTION_TYPE_EDEFAULT;
-			case SignalDSLPackage.SIGNAL_HANDLING__DATA_REF:
-				return dataRef != 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(" (actionType: ");
-		result.append(actionType);
-		result.append(')');
-		return result.toString();
-	}
-
-} //SignalHandlingImpl
diff --git a/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/impl/SignalNotificationImpl.java b/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/impl/SignalNotificationImpl.java
deleted file mode 100644
index e4b4732..0000000
--- a/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/impl/SignalNotificationImpl.java
+++ /dev/null
@@ -1,229 +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 v1.0
- *  which accompanies this distribution, and is available at
- *  http://www.eclipse.org/legal/epl-v10.html
- *  
- *  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.impl.ENotificationImpl;
-
-import org.eclipse.osbp.xtext.signal.SignalDSLPackage;
-import org.eclipse.osbp.xtext.signal.SignalNotification;
-import org.eclipse.osbp.xtext.signal.SignalNotificationEnum;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Signal Notification</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link org.eclipse.osbp.xtext.signal.impl.SignalNotificationImpl#getEvent <em>Event</em>}</li>
- *   <li>{@link org.eclipse.osbp.xtext.signal.impl.SignalNotificationImpl#getMessage <em>Message</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class SignalNotificationImpl extends SignalBaseImpl implements SignalNotification {
-	/**
-	 * The default value of the '{@link #getEvent() <em>Event</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getEvent()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final SignalNotificationEnum EVENT_EDEFAULT = SignalNotificationEnum.SHOW_ON_ALL;
-
-	/**
-	 * The cached value of the '{@link #getEvent() <em>Event</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getEvent()
-	 * @generated
-	 * @ordered
-	 */
-	protected SignalNotificationEnum event = EVENT_EDEFAULT;
-
-	/**
-	 * The default value of the '{@link #getMessage() <em>Message</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getMessage()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String MESSAGE_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getMessage() <em>Message</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getMessage()
-	 * @generated
-	 * @ordered
-	 */
-	protected String message = MESSAGE_EDEFAULT;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected SignalNotificationImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return SignalDSLPackage.Literals.SIGNAL_NOTIFICATION;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public SignalNotificationEnum getEvent() {
-		return event;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setEvent(SignalNotificationEnum newEvent) {
-		SignalNotificationEnum oldEvent = event;
-		event = newEvent == null ? EVENT_EDEFAULT : newEvent;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, SignalDSLPackage.SIGNAL_NOTIFICATION__EVENT, oldEvent, event));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getMessage() {
-		return message;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setMessage(String newMessage) {
-		String oldMessage = message;
-		message = newMessage;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, SignalDSLPackage.SIGNAL_NOTIFICATION__MESSAGE, oldMessage, message));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-			case SignalDSLPackage.SIGNAL_NOTIFICATION__EVENT:
-				return getEvent();
-			case SignalDSLPackage.SIGNAL_NOTIFICATION__MESSAGE:
-				return getMessage();
-		}
-		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_NOTIFICATION__EVENT:
-				setEvent((SignalNotificationEnum)newValue);
-				return;
-			case SignalDSLPackage.SIGNAL_NOTIFICATION__MESSAGE:
-				setMessage((String)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-			case SignalDSLPackage.SIGNAL_NOTIFICATION__EVENT:
-				setEvent(EVENT_EDEFAULT);
-				return;
-			case SignalDSLPackage.SIGNAL_NOTIFICATION__MESSAGE:
-				setMessage(MESSAGE_EDEFAULT);
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-			case SignalDSLPackage.SIGNAL_NOTIFICATION__EVENT:
-				return event != EVENT_EDEFAULT;
-			case SignalDSLPackage.SIGNAL_NOTIFICATION__MESSAGE:
-				return MESSAGE_EDEFAULT == null ? message != null : !MESSAGE_EDEFAULT.equals(message);
-		}
-		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(" (event: ");
-		result.append(event);
-		result.append(", message: ");
-		result.append(message);
-		result.append(')');
-		return result.toString();
-	}
-
-} //SignalNotificationImpl
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 dd56d1b..3866c33 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
@@ -14,13 +14,23 @@
  */
 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.SignalHandler;
 import org.eclipse.osbp.xtext.signal.SignalTypeEnum;
 import org.eclipse.osbp.xtext.signal.SignalWatcher;
 
@@ -32,13 +42,35 @@
  * The following features are implemented:
  * </p>
  * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.signal.impl.SignalWatcherImpl#getName <em>Name</em>}</li>
  *   <li>{@link org.eclipse.osbp.xtext.signal.impl.SignalWatcherImpl#getDirectory <em>Directory</em>}</li>
  *   <li>{@link org.eclipse.osbp.xtext.signal.impl.SignalWatcherImpl#getSignal <em>Signal</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.signal.impl.SignalWatcherImpl#getHandlers <em>Handlers</em>}</li>
  * </ul>
  *
  * @generated
  */
-public class SignalWatcherImpl extends SignalBaseImpl implements SignalWatcher {
+public class SignalWatcherImpl extends SignalLazyResolverImpl implements SignalWatcher {
+	/**
+	 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String NAME_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected String name = NAME_EDEFAULT;
+
 	/**
 	 * The default value of the '{@link #getDirectory() <em>Directory</em>}' attribute.
 	 * <!-- begin-user-doc -->
@@ -80,6 +112,16 @@
 	protected SignalTypeEnum signal = SIGNAL_EDEFAULT;
 
 	/**
+	 * The cached value of the '{@link #getHandlers() <em>Handlers</em>}' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getHandlers()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<SignalHandler> handlers;
+
+	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
@@ -103,6 +145,27 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	public String getName() {
+		return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setName(String newName) {
+		String oldName = name;
+		name = newName;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SignalDSLPackage.SIGNAL_WATCHER__NAME, oldName, name));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
 	public String getDirectory() {
 		return directory;
 	}
@@ -145,13 +208,43 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	public EList<SignalHandler> getHandlers() {
+		if (handlers == null) {
+			handlers = new EObjectContainmentEList<SignalHandler>(SignalHandler.class, this, SignalDSLPackage.SIGNAL_WATCHER__HANDLERS);
+		}
+		return handlers;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case SignalDSLPackage.SIGNAL_WATCHER__HANDLERS:
+				return ((InternalEList<?>)getHandlers()).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_WATCHER__NAME:
+				return getName();
 			case SignalDSLPackage.SIGNAL_WATCHER__DIRECTORY:
 				return getDirectory();
 			case SignalDSLPackage.SIGNAL_WATCHER__SIGNAL:
 				return getSignal();
+			case SignalDSLPackage.SIGNAL_WATCHER__HANDLERS:
+				return getHandlers();
 		}
 		return super.eGet(featureID, resolve, coreType);
 	}
@@ -161,15 +254,23 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@SuppressWarnings("unchecked")
 	@Override
 	public void eSet(int featureID, Object newValue) {
 		switch (featureID) {
+			case SignalDSLPackage.SIGNAL_WATCHER__NAME:
+				setName((String)newValue);
+				return;
 			case SignalDSLPackage.SIGNAL_WATCHER__DIRECTORY:
 				setDirectory((String)newValue);
 				return;
 			case SignalDSLPackage.SIGNAL_WATCHER__SIGNAL:
 				setSignal((SignalTypeEnum)newValue);
 				return;
+			case SignalDSLPackage.SIGNAL_WATCHER__HANDLERS:
+				getHandlers().clear();
+				getHandlers().addAll((Collection<? extends SignalHandler>)newValue);
+				return;
 		}
 		super.eSet(featureID, newValue);
 	}
@@ -182,12 +283,18 @@
 	@Override
 	public void eUnset(int featureID) {
 		switch (featureID) {
+			case SignalDSLPackage.SIGNAL_WATCHER__NAME:
+				setName(NAME_EDEFAULT);
+				return;
 			case SignalDSLPackage.SIGNAL_WATCHER__DIRECTORY:
 				setDirectory(DIRECTORY_EDEFAULT);
 				return;
 			case SignalDSLPackage.SIGNAL_WATCHER__SIGNAL:
 				setSignal(SIGNAL_EDEFAULT);
 				return;
+			case SignalDSLPackage.SIGNAL_WATCHER__HANDLERS:
+				getHandlers().clear();
+				return;
 		}
 		super.eUnset(featureID);
 	}
@@ -200,10 +307,14 @@
 	@Override
 	public boolean eIsSet(int featureID) {
 		switch (featureID) {
+			case SignalDSLPackage.SIGNAL_WATCHER__NAME:
+				return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
 			case SignalDSLPackage.SIGNAL_WATCHER__DIRECTORY:
 				return DIRECTORY_EDEFAULT == null ? directory != null : !DIRECTORY_EDEFAULT.equals(directory);
 			case SignalDSLPackage.SIGNAL_WATCHER__SIGNAL:
 				return signal != SIGNAL_EDEFAULT;
+			case SignalDSLPackage.SIGNAL_WATCHER__HANDLERS:
+				return handlers != null && !handlers.isEmpty();
 		}
 		return super.eIsSet(featureID);
 	}
@@ -218,7 +329,9 @@
 		if (eIsProxy()) return super.toString();
 
 		StringBuffer result = new StringBuffer(super.toString());
-		result.append(" (directory: ");
+		result.append(" (name: ");
+		result.append(name);
+		result.append(", directory: ");
 		result.append(directory);
 		result.append(", signal: ");
 		result.append(signal);
diff --git a/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/impl/SingleTransferImpl.java b/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/impl/SingleTransferImpl.java
new file mode 100644
index 0000000..8aa21c9
--- /dev/null
+++ b/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/impl/SingleTransferImpl.java
@@ -0,0 +1,187 @@
+/**
+ * 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 v1.0
+ *  which accompanies this distribution, and is available at
+ *  http://www.eclipse.org/legal/epl-v10.html
+ *  
+ *  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.SingleTransfer;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Single Transfer</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.signal.impl.SingleTransferImpl#getInterchange <em>Interchange</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class SingleTransferImpl extends DataTransferImpl implements SingleTransfer {
+	/**
+	 * 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 SingleTransferImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return SignalDSLPackage.Literals.SINGLE_TRANSFER;
+	}
+
+	/**
+	 * <!-- 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.SINGLE_TRANSFER__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.SINGLE_TRANSFER__INTERCHANGE, null, msgs);
+			if (newInterchange != null)
+				msgs = ((InternalEObject)newInterchange).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SignalDSLPackage.SINGLE_TRANSFER__INTERCHANGE, null, msgs);
+			msgs = basicSetInterchange(newInterchange, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SignalDSLPackage.SINGLE_TRANSFER__INTERCHANGE, newInterchange, newInterchange));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case SignalDSLPackage.SINGLE_TRANSFER__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.SINGLE_TRANSFER__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.SINGLE_TRANSFER__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.SINGLE_TRANSFER__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.SINGLE_TRANSFER__INTERCHANGE:
+				return interchange != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+} //SingleTransferImpl
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 5442c00..2c37a94 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
@@ -107,10 +107,6 @@
 				return createSignalHandlerAdapter();
 			}
 			@Override
-			public Adapter caseSignalHandling(SignalHandling object) {
-				return createSignalHandlingAdapter();
-			}
-			@Override
 			public Adapter caseSignalProcessor(SignalProcessor object) {
 				return createSignalProcessorAdapter();
 			}
@@ -119,8 +115,16 @@
 				return createSignalDatainterchangeAdapter();
 			}
 			@Override
-			public Adapter caseSignalNotification(SignalNotification object) {
-				return createSignalNotificationAdapter();
+			public Adapter caseDataTransfer(DataTransfer object) {
+				return createDataTransferAdapter();
+			}
+			@Override
+			public Adapter caseSingleTransfer(SingleTransfer object) {
+				return createSingleTransferAdapter();
+			}
+			@Override
+			public Adapter caseListTransfer(ListTransfer object) {
+				return createListTransferAdapter();
 			}
 			@Override
 			public Adapter caseLLazyResolver(LLazyResolver object) {
@@ -235,20 +239,6 @@
 	}
 
 	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.signal.SignalHandling <em>Signal Handling</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.SignalHandling
-	 * @generated
-	 */
-	public Adapter createSignalHandlingAdapter() {
-		return null;
-	}
-
-	/**
 	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.signal.SignalProcessor <em>Signal Processor</em>}'.
 	 * <!-- begin-user-doc -->
 	 * This default implementation returns null so that we can easily ignore cases;
@@ -277,16 +267,44 @@
 	}
 
 	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.signal.SignalNotification <em>Signal Notification</em>}'.
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.signal.DataTransfer <em>Data Transfer</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.SignalNotification
+	 * @see org.eclipse.osbp.xtext.signal.DataTransfer
 	 * @generated
 	 */
-	public Adapter createSignalNotificationAdapter() {
+	public Adapter createDataTransferAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.signal.SingleTransfer <em>Single Transfer</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.SingleTransfer
+	 * @generated
+	 */
+	public Adapter createSingleTransferAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.signal.ListTransfer <em>List Transfer</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.ListTransfer
+	 * @generated
+	 */
+	public Adapter createListTransferAdapter() {
 		return null;
 	}
 
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 ffeebd0..aab0343 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
@@ -111,7 +111,6 @@
 			case SignalDSLPackage.SIGNAL_WATCHER: {
 				SignalWatcher signalWatcher = (SignalWatcher)theEObject;
 				T result = caseSignalWatcher(signalWatcher);
-				if (result == null) result = caseSignalBase(signalWatcher);
 				if (result == null) result = caseSignalLazyResolver(signalWatcher);
 				if (result == null) result = defaultCase(theEObject);
 				return result;
@@ -123,13 +122,6 @@
 				if (result == null) result = defaultCase(theEObject);
 				return result;
 			}
-			case SignalDSLPackage.SIGNAL_HANDLING: {
-				SignalHandling signalHandling = (SignalHandling)theEObject;
-				T result = caseSignalHandling(signalHandling);
-				if (result == null) result = caseSignalLazyResolver(signalHandling);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
 			case SignalDSLPackage.SIGNAL_PROCESSOR: {
 				SignalProcessor signalProcessor = (SignalProcessor)theEObject;
 				T result = caseSignalProcessor(signalProcessor);
@@ -145,11 +137,26 @@
 				if (result == null) result = defaultCase(theEObject);
 				return result;
 			}
-			case SignalDSLPackage.SIGNAL_NOTIFICATION: {
-				SignalNotification signalNotification = (SignalNotification)theEObject;
-				T result = caseSignalNotification(signalNotification);
-				if (result == null) result = caseSignalBase(signalNotification);
-				if (result == null) result = caseSignalLazyResolver(signalNotification);
+			case SignalDSLPackage.DATA_TRANSFER: {
+				DataTransfer dataTransfer = (DataTransfer)theEObject;
+				T result = caseDataTransfer(dataTransfer);
+				if (result == null) result = caseSignalLazyResolver(dataTransfer);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case SignalDSLPackage.SINGLE_TRANSFER: {
+				SingleTransfer singleTransfer = (SingleTransfer)theEObject;
+				T result = caseSingleTransfer(singleTransfer);
+				if (result == null) result = caseDataTransfer(singleTransfer);
+				if (result == null) result = caseSignalLazyResolver(singleTransfer);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case SignalDSLPackage.LIST_TRANSFER: {
+				ListTransfer listTransfer = (ListTransfer)theEObject;
+				T result = caseListTransfer(listTransfer);
+				if (result == null) result = caseDataTransfer(listTransfer);
+				if (result == null) result = caseSignalLazyResolver(listTransfer);
 				if (result == null) result = defaultCase(theEObject);
 				return result;
 			}
@@ -248,21 +255,6 @@
 	}
 
 	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Signal Handling</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 Handling</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseSignalHandling(SignalHandling object) {
-		return null;
-	}
-
-	/**
 	 * Returns the result of interpreting the object as an instance of '<em>Signal Processor</em>'.
 	 * <!-- begin-user-doc -->
 	 * This implementation returns null;
@@ -293,17 +285,47 @@
 	}
 
 	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Signal Notification</em>'.
+	 * Returns the result of interpreting the object as an instance of '<em>Data Transfer</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 Notification</em>'.
+	 * @return the result of interpreting the object as an instance of '<em>Data Transfer</em>'.
 	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
 	 * @generated
 	 */
-	public T caseSignalNotification(SignalNotification object) {
+	public T caseDataTransfer(DataTransfer object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Single Transfer</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>Single Transfer</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseSingleTransfer(SingleTransfer object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>List Transfer</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>List Transfer</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseListTransfer(ListTransfer object) {
 		return null;
 	}
 
diff --git a/org.eclipse.osbp.xtext.signal/model/SignalDSL.xcore b/org.eclipse.osbp.xtext.signal/model/SignalDSL.xcore
index af03777..e5e5acd 100644
--- a/org.eclipse.osbp.xtext.signal/model/SignalDSL.xcore
+++ b/org.eclipse.osbp.xtext.signal/model/SignalDSL.xcore
@@ -52,72 +52,62 @@
 	String name
 }
 
-class SignalWatcher extends SignalBase {
+class SignalWatcher extends SignalLazyResolver {
+	String name
 	String directory
 	SignalTypeEnum signal
+	contains SignalHandler[] handlers
 }
 
 class SignalHandler extends SignalLazyResolver {
-	refers SignalWatcher watcher
-	contains SignalHandling handler
-	contains SignalNotification notification
-}
-
-class SignalHandling extends SignalLazyResolver {
+	String name
 	SignalHandlerTypeEnum actionType
-	refers DataInterchange dataRef
-//	contains SignalProcessor processor
+	String filemask
+	contains SignalDatainterchange[] datainterchanges
+	contains DataTransfer data
+//	contains SignalNotification notification
 }
 
 interface SignalProcessor extends SignalLazyResolver {}
 
 class SignalDatainterchange extends SignalProcessor {
+	SignalActionEnum dataAction
 	refers DataInterchange dataRef
 }
 
-class SignalNotification extends SignalBase {
-	SignalNotificationEnum event
-	String message
+class DataTransfer extends SignalLazyResolver {
+}
+
+class SingleTransfer extends DataTransfer {
+	contains SignalDatainterchange interchange
+}
+
+class ListTransfer extends DataTransfer {
+	SignalExecutionTypeEnum executiontype
+	contains SignalDatainterchange[] interchanges
 }
 
 enum SignalHandlerTypeEnum {
-	doAfter as 'doAfter'	
-	doBefore as 'doBefore'     
-	doAfterModify as 'doAfterModify'
-	doAfterCreate as 'doAfterCreate'
-	doAfterDelete as 'doAfterDelete'
-	doBeforeModify as 'doBeforeModify'
-	doBeforeCreate as 'doBeforeCreate'
-	doDeforeDelete as 'doBeforedelete'
-}
-
-enum SignalNotificationEnum {
-	showOnAll as	'show'
-	showOnCreate as 'showOnCreate'
-	showOnDelete as 'showOnDelete' 
-	showOnModify as 'showOnModify'
+	doafter as 'doAfter'	
+	doaftermodify as 'doAfterModify'
+	doaftercreate as 'doAfterCreate'
+	doafterdelete as 'doAfterDelete'
 }
 
 enum SignalTypeEnum{
 	all as 'all'
 	createsignals as 'createSignals' 
-	deletesignals as 'modifySignals' 
-	modifysignals as 'deleteSignals'
+	deletesignals as 'deleteSignals' 
+	modifysignals as 'modifySignals'
 }
 
-	
 enum SignalActionEnum {
-	DATAIMPORT as 'dataimport'
-	PDFPRINT as 'pdfprint'
-	PRINT as 'print'
-	MAIL as 'mail'
-	MESSAGEPROMPT as 'showinfo'
-	NONE as 'none'
+	DATAIMPORT as 'Import'
+	DATAEXPORT as 'Export'
+	NONE as 'None'
 }
 
-enum FileMaskEnum {
-	fileImport as '_imp'
-	pdfFile as '_pdf'
-	filePrint as '_prt'
-	message as '_sd'
+enum SignalExecutionTypeEnum {
+	SYNC as 'synch'
+	ASYNC as 'asynch'
 }
diff --git a/org.eclipse.osbp.xtext.signal/plugin.properties b/org.eclipse.osbp.xtext.signal/plugin.properties
index 9de71d8..d69b21f 100644
--- a/org.eclipse.osbp.xtext.signal/plugin.properties
+++ b/org.eclipse.osbp.xtext.signal/plugin.properties
@@ -1,3 +1,4 @@
+#Generated by Eclipse Messages Editor (Eclipse Babel)
 # 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 v1.0
@@ -11,5 +12,6 @@
 # 
 #  
 
-pluginName = SignalDSL Model
-providerName = www.example.org
+pluginName = OSBP SignalDSL Model
+
+providerName = Loetz GmbH&Co.KG, 69115 Heidelberg, Germany
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 fc88421..51cfbaf 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
@@ -201,28 +201,9 @@
 					}
 				)
 			)*
-			(
-				(
-					{
-						newCompositeNode(grammarAccess.getSignalPackageAccess().getHandlersSignalHandlerParserRuleCall_3_2_0());
-					}
-					lv_handlers_5_0=ruleSignalHandler
-					{
-						if ($current==null) {
-							$current = createModelElementForParent(grammarAccess.getSignalPackageRule());
-						}
-						add(
-							$current,
-							"handlers",
-							lv_handlers_5_0,
-							"org.eclipse.osbp.xtext.signal.SignalDSL.SignalHandler");
-						afterParserOrEnumRuleCall();
-					}
-				)
-			)*
-			otherlv_6='}'
+			otherlv_5='}'
 			{
-				newLeafNode(otherlv_6, grammarAccess.getSignalPackageAccess().getRightCurlyBracketKeyword_3_3());
+				newLeafNode(otherlv_5, grammarAccess.getSignalPackageAccess().getRightCurlyBracketKeyword_3_2());
 			}
 		)
 	)
@@ -318,6 +299,33 @@
 				}
 			)
 		)
+		otherlv_7='{'
+		{
+			newLeafNode(otherlv_7, grammarAccess.getSignalWatcherAccess().getLeftCurlyBracketKeyword_7());
+		}
+		(
+			(
+				{
+					newCompositeNode(grammarAccess.getSignalWatcherAccess().getHandlersSignalHandlerParserRuleCall_8_0());
+				}
+				lv_handlers_8_0=ruleSignalHandler
+				{
+					if ($current==null) {
+						$current = createModelElementForParent(grammarAccess.getSignalWatcherRule());
+					}
+					add(
+						$current,
+						"handlers",
+						lv_handlers_8_0,
+						"org.eclipse.osbp.xtext.signal.SignalDSL.SignalHandler");
+					afterParserOrEnumRuleCall();
+				}
+			)
+		)*
+		otherlv_9='}'
+		{
+			newLeafNode(otherlv_9, grammarAccess.getSignalWatcherAccess().getRightCurlyBracketKeyword_9());
+		}
 	)
 ;
 
@@ -344,75 +352,140 @@
 					$current);
 			}
 		)
-		otherlv_1='handlerOn'
+		otherlv_1='handler'
 		{
-			newLeafNode(otherlv_1, grammarAccess.getSignalHandlerAccess().getHandlerOnKeyword_1());
+			newLeafNode(otherlv_1, grammarAccess.getSignalHandlerAccess().getHandlerKeyword_1());
 		}
 		(
 			(
+				lv_name_2_0=RULE_ID
+				{
+					newLeafNode(lv_name_2_0, grammarAccess.getSignalHandlerAccess().getNameIDTerminalRuleCall_2_0());
+				}
 				{
 					if ($current==null) {
 						$current = createModelElement(grammarAccess.getSignalHandlerRule());
 					}
-				}
-				otherlv_2=RULE_ID
-				{
-					newLeafNode(otherlv_2, grammarAccess.getSignalHandlerAccess().getWatcherSignalWatcherCrossReference_2_0());
+					setWithLastConsumed(
+						$current,
+						"name",
+						lv_name_2_0,
+						"org.eclipse.xtext.xbase.Xtype.ID");
 				}
 			)
 		)
 		(
 			(
-				(
-					{
-						newCompositeNode(grammarAccess.getSignalHandlerAccess().getHandlerSignalHandlingParserRuleCall_3_0_0());
+				{
+					newCompositeNode(grammarAccess.getSignalHandlerAccess().getActionTypeSignalHandlerTypeEnumEnumRuleCall_3_0());
+				}
+				lv_actionType_3_0=ruleSignalHandlerTypeEnum
+				{
+					if ($current==null) {
+						$current = createModelElementForParent(grammarAccess.getSignalHandlerRule());
 					}
-					lv_handler_3_0=ruleSignalHandling
-					{
-						if ($current==null) {
-							$current = createModelElementForParent(grammarAccess.getSignalHandlerRule());
-						}
-						set(
-							$current,
-							"handler",
-							lv_handler_3_0,
-							"org.eclipse.osbp.xtext.signal.SignalDSL.SignalHandling");
-						afterParserOrEnumRuleCall();
-					}
-				)
+					set(
+						$current,
+						"actionType",
+						lv_actionType_3_0,
+						"org.eclipse.osbp.xtext.signal.SignalDSL.SignalHandlerTypeEnum");
+					afterParserOrEnumRuleCall();
+				}
 			)
+		)
+		(
 			(
-				(
-					{
-						newCompositeNode(grammarAccess.getSignalHandlerAccess().getNotificationSignalNotificationParserRuleCall_3_1_0());
+				{
+					newCompositeNode(grammarAccess.getSignalHandlerAccess().getDataDataTransferParserRuleCall_4_0());
+				}
+				lv_data_4_0=ruleDataTransfer
+				{
+					if ($current==null) {
+						$current = createModelElementForParent(grammarAccess.getSignalHandlerRule());
 					}
-					lv_notification_4_0=ruleSignalNotification
-					{
-						if ($current==null) {
-							$current = createModelElementForParent(grammarAccess.getSignalHandlerRule());
-						}
-						set(
-							$current,
-							"notification",
-							lv_notification_4_0,
-							"org.eclipse.osbp.xtext.signal.SignalDSL.SignalNotification");
-						afterParserOrEnumRuleCall();
+					set(
+						$current,
+						"data",
+						lv_data_4_0,
+						"org.eclipse.osbp.xtext.signal.SignalDSL.DataTransfer");
+					afterParserOrEnumRuleCall();
+				}
+			)
+		)
+		otherlv_5='for'
+		{
+			newLeafNode(otherlv_5, grammarAccess.getSignalHandlerAccess().getForKeyword_5());
+		}
+		otherlv_6='fileMask'
+		{
+			newLeafNode(otherlv_6, grammarAccess.getSignalHandlerAccess().getFileMaskKeyword_6());
+		}
+		(
+			(
+				lv_filemask_7_0=RULE_STRING
+				{
+					newLeafNode(lv_filemask_7_0, grammarAccess.getSignalHandlerAccess().getFilemaskSTRINGTerminalRuleCall_7_0());
+				}
+				{
+					if ($current==null) {
+						$current = createModelElement(grammarAccess.getSignalHandlerRule());
 					}
-				)
-			)?
+					setWithLastConsumed(
+						$current,
+						"filemask",
+						lv_filemask_7_0,
+						"org.eclipse.xtext.xbase.Xtype.STRING");
+				}
+			)
 		)
 	)
 ;
 
-// Entry rule entryRuleSignalNotification
-entryRuleSignalNotification returns [EObject current=null]:
-	{ newCompositeNode(grammarAccess.getSignalNotificationRule()); }
-	iv_ruleSignalNotification=ruleSignalNotification
-	{ $current=$iv_ruleSignalNotification.current; }
+// Entry rule entryRuleDataTransfer
+entryRuleDataTransfer returns [EObject current=null]:
+	{ newCompositeNode(grammarAccess.getDataTransferRule()); }
+	iv_ruleDataTransfer=ruleDataTransfer
+	{ $current=$iv_ruleDataTransfer.current; }
 	EOF;
 
-// Rule SignalNotification
-ruleSignalNotification returns [EObject current=null]
+// Rule DataTransfer
+ruleDataTransfer returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		{
+			newCompositeNode(grammarAccess.getDataTransferAccess().getSingleTransferParserRuleCall_0());
+		}
+		this_SingleTransfer_0=ruleSingleTransfer
+		{
+			$current = $this_SingleTransfer_0.current;
+			afterParserOrEnumRuleCall();
+		}
+		    |
+		{
+			newCompositeNode(grammarAccess.getDataTransferAccess().getListTransferParserRuleCall_1());
+		}
+		this_ListTransfer_1=ruleListTransfer
+		{
+			$current = $this_ListTransfer_1.current;
+			afterParserOrEnumRuleCall();
+		}
+	)
+;
+
+// Entry rule entryRuleListTransfer
+entryRuleListTransfer returns [EObject current=null]:
+	{ newCompositeNode(grammarAccess.getListTransferRule()); }
+	iv_ruleListTransfer=ruleListTransfer
+	{ $current=$iv_ruleListTransfer.current; }
+	EOF;
+
+// Rule ListTransfer
+ruleListTransfer returns [EObject current=null]
 @init {
 	enterRule();
 }
@@ -421,41 +494,97 @@
 }:
 	(
 		(
+			{
+				$current = forceCreateModelElement(
+					grammarAccess.getListTransferAccess().getListTransferAction_0(),
+					$current);
+			}
+		)
+		otherlv_1='DataTransfer'
+		{
+			newLeafNode(otherlv_1, grammarAccess.getListTransferAccess().getDataTransferKeyword_1());
+		}
+		(
 			(
 				{
-					newCompositeNode(grammarAccess.getSignalNotificationAccess().getEventSignalNotificationEnumEnumRuleCall_0_0());
+					newCompositeNode(grammarAccess.getListTransferAccess().getExecutiontypeSignalExecutionTypeEnumEnumRuleCall_2_0());
 				}
-				lv_event_0_0=ruleSignalNotificationEnum
+				lv_executiontype_2_0=ruleSignalExecutionTypeEnum
 				{
 					if ($current==null) {
-						$current = createModelElementForParent(grammarAccess.getSignalNotificationRule());
+						$current = createModelElementForParent(grammarAccess.getListTransferRule());
 					}
 					set(
 						$current,
-						"event",
-						lv_event_0_0,
-						"org.eclipse.osbp.xtext.signal.SignalDSL.SignalNotificationEnum");
+						"executiontype",
+						lv_executiontype_2_0,
+						"org.eclipse.osbp.xtext.signal.SignalDSL.SignalExecutionTypeEnum");
 					afterParserOrEnumRuleCall();
 				}
 			)
-		)
+		)?
+		otherlv_3='{'
+		{
+			newLeafNode(otherlv_3, grammarAccess.getListTransferAccess().getLeftCurlyBracketKeyword_3());
+		}
 		(
 			(
-				lv_message_1_0=RULE_STRING
 				{
-					newLeafNode(lv_message_1_0, grammarAccess.getSignalNotificationAccess().getMessageSTRINGTerminalRuleCall_1_0());
+					newCompositeNode(grammarAccess.getListTransferAccess().getInterchangesSignalDatainterchangeParserRuleCall_4_0());
 				}
+				lv_interchanges_4_0=ruleSignalDatainterchange
 				{
 					if ($current==null) {
-						$current = createModelElement(grammarAccess.getSignalNotificationRule());
+						$current = createModelElementForParent(grammarAccess.getListTransferRule());
 					}
-					setWithLastConsumed(
+					add(
 						$current,
-						"message",
-						lv_message_1_0,
-						"org.eclipse.xtext.xbase.Xtype.STRING");
+						"interchanges",
+						lv_interchanges_4_0,
+						"org.eclipse.osbp.xtext.signal.SignalDSL.SignalDatainterchange");
+					afterParserOrEnumRuleCall();
 				}
 			)
+		)*
+		otherlv_5='}'
+		{
+			newLeafNode(otherlv_5, grammarAccess.getListTransferAccess().getRightCurlyBracketKeyword_5());
+		}
+	)
+;
+
+// Entry rule entryRuleSingleTransfer
+entryRuleSingleTransfer returns [EObject current=null]:
+	{ newCompositeNode(grammarAccess.getSingleTransferRule()); }
+	iv_ruleSingleTransfer=ruleSingleTransfer
+	{ $current=$iv_ruleSingleTransfer.current; }
+	EOF;
+
+// Rule SingleTransfer
+ruleSingleTransfer returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		(
+			{
+				newCompositeNode(grammarAccess.getSingleTransferAccess().getInterchangeSignalDatainterchangeParserRuleCall_0());
+			}
+			lv_interchange_0_0=ruleSignalDatainterchange
+			{
+				if ($current==null) {
+					$current = createModelElementForParent(grammarAccess.getSingleTransferRule());
+				}
+				set(
+					$current,
+					"interchange",
+					lv_interchange_0_0,
+					"org.eclipse.osbp.xtext.signal.SignalDSL.SignalDatainterchange");
+				afterParserOrEnumRuleCall();
+			}
 		)
 	)
 ;
@@ -477,50 +606,20 @@
 }:
 	(
 		(
-			{
-				if ($current==null) {
-					$current = createModelElement(grammarAccess.getSignalDatainterchangeRule());
-				}
-			}
-			otherlv_0=RULE_ID
-			{
-				newLeafNode(otherlv_0, grammarAccess.getSignalDatainterchangeAccess().getDataRefDataInterchangeCrossReference_0());
-			}
-		)
-	)
-;
-
-// Entry rule entryRuleSignalHandling
-entryRuleSignalHandling returns [EObject current=null]:
-	{ newCompositeNode(grammarAccess.getSignalHandlingRule()); }
-	iv_ruleSignalHandling=ruleSignalHandling
-	{ $current=$iv_ruleSignalHandling.current; }
-	EOF;
-
-// Rule SignalHandling
-ruleSignalHandling returns [EObject current=null]
-@init {
-	enterRule();
-}
-@after {
-	leaveRule();
-}:
-	(
-		(
 			(
 				{
-					newCompositeNode(grammarAccess.getSignalHandlingAccess().getActionTypeSignalHandlerTypeEnumEnumRuleCall_0_0());
+					newCompositeNode(grammarAccess.getSignalDatainterchangeAccess().getDataActionSignalActionEnumEnumRuleCall_0_0());
 				}
-				lv_actionType_0_0=ruleSignalHandlerTypeEnum
+				lv_dataAction_0_0=ruleSignalActionEnum
 				{
 					if ($current==null) {
-						$current = createModelElementForParent(grammarAccess.getSignalHandlingRule());
+						$current = createModelElementForParent(grammarAccess.getSignalDatainterchangeRule());
 					}
 					set(
 						$current,
-						"actionType",
-						lv_actionType_0_0,
-						"org.eclipse.osbp.xtext.signal.SignalDSL.SignalHandlerTypeEnum");
+						"dataAction",
+						lv_dataAction_0_0,
+						"org.eclipse.osbp.xtext.signal.SignalDSL.SignalActionEnum");
 					afterParserOrEnumRuleCall();
 				}
 			)
@@ -529,12 +628,12 @@
 			(
 				{
 					if ($current==null) {
-						$current = createModelElement(grammarAccess.getSignalHandlingRule());
+						$current = createModelElement(grammarAccess.getSignalDatainterchangeRule());
 					}
 				}
 				otherlv_1=RULE_ID
 				{
-					newLeafNode(otherlv_1, grammarAccess.getSignalHandlingAccess().getDataRefDataInterchangeCrossReference_1_0());
+					newLeafNode(otherlv_1, grammarAccess.getSignalDatainterchangeAccess().getDataRefDataInterchangeCrossReference_1_0());
 				}
 			)
 		)
@@ -7402,6 +7501,33 @@
 	)+
 ;
 
+// Rule SignalActionEnum
+ruleSignalActionEnum returns [Enumerator current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		(
+			enumLiteral_0='Import'
+			{
+				$current = grammarAccess.getSignalActionEnumAccess().getDATAIMPORTEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
+				newLeafNode(enumLiteral_0, grammarAccess.getSignalActionEnumAccess().getDATAIMPORTEnumLiteralDeclaration_0());
+			}
+		)
+		    |
+		(
+			enumLiteral_1='Export'
+			{
+				$current = grammarAccess.getSignalActionEnumAccess().getDATAEXPORTEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
+				newLeafNode(enumLiteral_1, grammarAccess.getSignalActionEnumAccess().getDATAEXPORTEnumLiteralDeclaration_1());
+			}
+		)
+	)
+;
+
 // Rule SignalTypeEnum
 ruleSignalTypeEnum returns [Enumerator current=null]
 @init {
@@ -7445,49 +7571,6 @@
 	)
 ;
 
-// Rule SignalNotificationEnum
-ruleSignalNotificationEnum returns [Enumerator current=null]
-@init {
-	enterRule();
-}
-@after {
-	leaveRule();
-}:
-	(
-		(
-			enumLiteral_0='show'
-			{
-				$current = grammarAccess.getSignalNotificationEnumAccess().getShowOnAllEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
-				newLeafNode(enumLiteral_0, grammarAccess.getSignalNotificationEnumAccess().getShowOnAllEnumLiteralDeclaration_0());
-			}
-		)
-		    |
-		(
-			enumLiteral_1='showOnCreate'
-			{
-				$current = grammarAccess.getSignalNotificationEnumAccess().getShowOnCreateEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
-				newLeafNode(enumLiteral_1, grammarAccess.getSignalNotificationEnumAccess().getShowOnCreateEnumLiteralDeclaration_1());
-			}
-		)
-		    |
-		(
-			enumLiteral_2='showOnDelete'
-			{
-				$current = grammarAccess.getSignalNotificationEnumAccess().getShowOnDeleteEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
-				newLeafNode(enumLiteral_2, grammarAccess.getSignalNotificationEnumAccess().getShowOnDeleteEnumLiteralDeclaration_2());
-			}
-		)
-		    |
-		(
-			enumLiteral_3='showOnModify'
-			{
-				$current = grammarAccess.getSignalNotificationEnumAccess().getShowOnModifyEnumLiteralDeclaration_3().getEnumLiteral().getInstance();
-				newLeafNode(enumLiteral_3, grammarAccess.getSignalNotificationEnumAccess().getShowOnModifyEnumLiteralDeclaration_3());
-			}
-		)
-	)
-;
-
 // Rule SignalHandlerTypeEnum
 ruleSignalHandlerTypeEnum returns [Enumerator current=null]
 @init {
@@ -7500,64 +7583,59 @@
 		(
 			enumLiteral_0='doAfter'
 			{
-				$current = grammarAccess.getSignalHandlerTypeEnumAccess().getDoAfterEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
-				newLeafNode(enumLiteral_0, grammarAccess.getSignalHandlerTypeEnumAccess().getDoAfterEnumLiteralDeclaration_0());
+				$current = grammarAccess.getSignalHandlerTypeEnumAccess().getDoafterEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
+				newLeafNode(enumLiteral_0, grammarAccess.getSignalHandlerTypeEnumAccess().getDoafterEnumLiteralDeclaration_0());
 			}
 		)
 		    |
 		(
-			enumLiteral_1='doAfterCreate'
+			enumLiteral_1='doAfterModify'
 			{
-				$current = grammarAccess.getSignalHandlerTypeEnumAccess().getDoAfterCreateEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
-				newLeafNode(enumLiteral_1, grammarAccess.getSignalHandlerTypeEnumAccess().getDoAfterCreateEnumLiteralDeclaration_1());
+				$current = grammarAccess.getSignalHandlerTypeEnumAccess().getDoaftermodifyEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
+				newLeafNode(enumLiteral_1, grammarAccess.getSignalHandlerTypeEnumAccess().getDoaftermodifyEnumLiteralDeclaration_1());
 			}
 		)
 		    |
 		(
-			enumLiteral_2='doAfterDelete'
+			enumLiteral_2='doAfterCreate'
 			{
-				$current = grammarAccess.getSignalHandlerTypeEnumAccess().getDoAfterDeleteEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
-				newLeafNode(enumLiteral_2, grammarAccess.getSignalHandlerTypeEnumAccess().getDoAfterDeleteEnumLiteralDeclaration_2());
+				$current = grammarAccess.getSignalHandlerTypeEnumAccess().getDoaftercreateEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
+				newLeafNode(enumLiteral_2, grammarAccess.getSignalHandlerTypeEnumAccess().getDoaftercreateEnumLiteralDeclaration_2());
 			}
 		)
 		    |
 		(
-			enumLiteral_3='doAfterModify'
+			enumLiteral_3='doAfterDelete'
 			{
-				$current = grammarAccess.getSignalHandlerTypeEnumAccess().getDoAfterModifyEnumLiteralDeclaration_3().getEnumLiteral().getInstance();
-				newLeafNode(enumLiteral_3, grammarAccess.getSignalHandlerTypeEnumAccess().getDoAfterModifyEnumLiteralDeclaration_3());
+				$current = grammarAccess.getSignalHandlerTypeEnumAccess().getDoafterdeleteEnumLiteralDeclaration_3().getEnumLiteral().getInstance();
+				newLeafNode(enumLiteral_3, grammarAccess.getSignalHandlerTypeEnumAccess().getDoafterdeleteEnumLiteralDeclaration_3());
+			}
+		)
+	)
+;
+
+// Rule SignalExecutionTypeEnum
+ruleSignalExecutionTypeEnum returns [Enumerator current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		(
+			enumLiteral_0='synch'
+			{
+				$current = grammarAccess.getSignalExecutionTypeEnumAccess().getSYNCEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
+				newLeafNode(enumLiteral_0, grammarAccess.getSignalExecutionTypeEnumAccess().getSYNCEnumLiteralDeclaration_0());
 			}
 		)
 		    |
 		(
-			enumLiteral_4='doBefore'
+			enumLiteral_1='asynch'
 			{
-				$current = grammarAccess.getSignalHandlerTypeEnumAccess().getDoBeforeEnumLiteralDeclaration_4().getEnumLiteral().getInstance();
-				newLeafNode(enumLiteral_4, grammarAccess.getSignalHandlerTypeEnumAccess().getDoBeforeEnumLiteralDeclaration_4());
-			}
-		)
-		    |
-		(
-			enumLiteral_5='doBeforeCreate'
-			{
-				$current = grammarAccess.getSignalHandlerTypeEnumAccess().getDoBeforeCreateEnumLiteralDeclaration_5().getEnumLiteral().getInstance();
-				newLeafNode(enumLiteral_5, grammarAccess.getSignalHandlerTypeEnumAccess().getDoBeforeCreateEnumLiteralDeclaration_5());
-			}
-		)
-		    |
-		(
-			enumLiteral_6='doBeforeModify'
-			{
-				$current = grammarAccess.getSignalHandlerTypeEnumAccess().getDoBeforeModifyEnumLiteralDeclaration_6().getEnumLiteral().getInstance();
-				newLeafNode(enumLiteral_6, grammarAccess.getSignalHandlerTypeEnumAccess().getDoBeforeModifyEnumLiteralDeclaration_6());
-			}
-		)
-		    |
-		(
-			enumLiteral_7='doBeforedelete'
-			{
-				$current = grammarAccess.getSignalHandlerTypeEnumAccess().getDoDeforeDeleteEnumLiteralDeclaration_7().getEnumLiteral().getInstance();
-				newLeafNode(enumLiteral_7, grammarAccess.getSignalHandlerTypeEnumAccess().getDoDeforeDeleteEnumLiteralDeclaration_7());
+				$current = grammarAccess.getSignalExecutionTypeEnumAccess().getASYNCEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
+				newLeafNode(enumLiteral_1, grammarAccess.getSignalExecutionTypeEnumAccess().getASYNCEnumLiteralDeclaration_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 cad22d3..188e174 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,98 +1,96 @@
-'!'=60
-'!='=45
-'!=='=47
-'#'=31
-'%'=59
-'%='=38
-'&&'=43
-'&'=92
-'('=27
-')'=29
-'*'=23
-'**'=57
-'*='=36
-'+'=55
-'++'=62
-'+='=34
-','=28
-'-'=56
-'--'=63
-'-='=35
-'->'=49
-'.'=64
-'..'=51
-'..<'=50
-'/'=58
-'/='=37
-':'=71
-'::'=65
-';'=25
-'<'=39
-'<>'=53
-'='=30
-'=='=44
-'==='=46
-'=>'=52
-'>'=40
-'>='=41
-'?'=91
-'?.'=66
-'?:'=54
-'@'=26
-'['=32
-']'=33
-'all'=93
-'as'=61
-'case'=73
-'catch'=90
-'createSignals'=94
-'default'=72
-'deleteSignals'=96
+'!'=62
+'!='=47
+'!=='=49
+'#'=33
+'%'=61
+'%='=40
+'&&'=45
+'&'=94
+'('=29
+')'=31
+'*'=25
+'**'=59
+'*='=38
+'+'=57
+'++'=64
+'+='=36
+','=30
+'-'=58
+'--'=65
+'-='=37
+'->'=51
+'.'=66
+'..'=53
+'..<'=52
+'/'=60
+'/='=39
+':'=73
+'::'=67
+';'=27
+'<'=41
+'<>'=55
+'='=32
+'=='=46
+'==='=48
+'=>'=54
+'>'=42
+'>='=43
+'?'=93
+'?.'=68
+'?:'=56
+'@'=28
+'DataTransfer'=21
+'Export'=96
+'Import'=95
+'['=34
+']'=35
+'all'=97
+'as'=63
+'asynch'=106
+'case'=75
+'catch'=92
+'createSignals'=98
+'default'=74
+'deleteSignals'=100
 'directory'=17
-'do'=75
+'do'=77
 'doAfter'=101
-'doAfterCreate'=102
-'doAfterDelete'=103
-'doAfterModify'=104
-'doBefore'=105
-'doBeforeCreate'=106
-'doBeforeModify'=107
-'doBeforedelete'=108
-'else'=69
-'extends'=78
-'extension'=22
-'false'=81
-'finally'=88
+'doAfterCreate'=103
+'doAfterDelete'=104
+'doAfterModify'=102
+'else'=71
+'extends'=80
+'extension'=24
+'false'=83
+'fileMask'=20
+'finally'=90
 'for'=18
-'handlerOn'=19
-'if'=68
-'import'=20
-'instanceof'=48
-'modifySignals'=95
-'new'=80
-'ns'=24
-'null'=83
+'handler'=19
+'if'=70
+'import'=22
+'instanceof'=50
+'modifySignals'=99
+'new'=82
+'ns'=26
+'null'=85
 'package'=13
-'return'=86
-'show'=97
-'showOnCreate'=98
-'showOnDelete'=99
-'showOnModify'=100
-'static'=21
-'super'=79
-'switch'=70
-'synchronized'=89
-'throw'=85
-'true'=82
-'try'=87
-'typeof'=84
-'val'=77
-'var'=76
+'return'=88
+'static'=23
+'super'=81
+'switch'=72
+'synch'=105
+'synchronized'=91
+'throw'=87
+'true'=84
+'try'=89
+'typeof'=86
+'val'=79
+'var'=78
 'watcher'=16
-'while'=74
+'while'=76
 '{'=14
-'|'=67
-'||'=42
+'|'=69
+'||'=44
 '}'=15
 RULE_ANY_OTHER=12
 RULE_DECIMAL=8
@@ -110,8 +108,6 @@
 T__104=104
 T__105=105
 T__106=106
-T__107=107
-T__108=108
 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 55469fe..1cfb354 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
@@ -107,9 +107,7 @@
     public static final int RULE_WS=11;
     public static final int RULE_ANY_OTHER=12;
     public static final int T__88=88;
-    public static final int T__108=108;
     public static final int T__89=89;
-    public static final int T__107=107;
     public static final int T__84=84;
     public static final int T__104=104;
     public static final int T__85=85;
@@ -261,10 +259,10 @@
         try {
             int _type = T__19;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:17:7: ( 'handlerOn' )
-            // InternalSignalDSL.g:17:9: 'handlerOn'
+            // InternalSignalDSL.g:17:7: ( 'handler' )
+            // InternalSignalDSL.g:17:9: 'handler'
             {
-            match("handlerOn"); 
+            match("handler"); 
 
 
             }
@@ -282,10 +280,10 @@
         try {
             int _type = T__20;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:18:7: ( 'import' )
-            // InternalSignalDSL.g:18:9: 'import'
+            // InternalSignalDSL.g:18:7: ( 'fileMask' )
+            // InternalSignalDSL.g:18:9: 'fileMask'
             {
-            match("import"); 
+            match("fileMask"); 
 
 
             }
@@ -303,10 +301,10 @@
         try {
             int _type = T__21;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:19:7: ( 'static' )
-            // InternalSignalDSL.g:19:9: 'static'
+            // InternalSignalDSL.g:19:7: ( 'DataTransfer' )
+            // InternalSignalDSL.g:19:9: 'DataTransfer'
             {
-            match("static"); 
+            match("DataTransfer"); 
 
 
             }
@@ -324,10 +322,10 @@
         try {
             int _type = T__22;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:20:7: ( 'extension' )
-            // InternalSignalDSL.g:20:9: 'extension'
+            // InternalSignalDSL.g:20:7: ( 'import' )
+            // InternalSignalDSL.g:20:9: 'import'
             {
-            match("extension"); 
+            match("import"); 
 
 
             }
@@ -345,10 +343,11 @@
         try {
             int _type = T__23;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:21:7: ( '*' )
-            // InternalSignalDSL.g:21:9: '*'
+            // InternalSignalDSL.g:21:7: ( 'static' )
+            // InternalSignalDSL.g:21:9: 'static'
             {
-            match('*'); 
+            match("static"); 
+
 
             }
 
@@ -365,10 +364,10 @@
         try {
             int _type = T__24;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:22:7: ( 'ns' )
-            // InternalSignalDSL.g:22:9: 'ns'
+            // InternalSignalDSL.g:22:7: ( 'extension' )
+            // InternalSignalDSL.g:22:9: 'extension'
             {
-            match("ns"); 
+            match("extension"); 
 
 
             }
@@ -386,10 +385,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('*'); 
 
             }
 
@@ -406,10 +405,11 @@
         try {
             int _type = T__26;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:24:7: ( '@' )
-            // InternalSignalDSL.g:24:9: '@'
+            // InternalSignalDSL.g:24:7: ( 'ns' )
+            // InternalSignalDSL.g:24:9: 'ns'
             {
-            match('@'); 
+            match("ns"); 
+
 
             }
 
@@ -426,10 +426,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(';'); 
 
             }
 
@@ -446,10 +446,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('@'); 
 
             }
 
@@ -466,10 +466,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('('); 
 
             }
 
@@ -486,10 +486,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(','); 
 
             }
 
@@ -506,10 +506,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(')'); 
 
             }
 
@@ -526,10 +526,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('='); 
 
             }
 
@@ -546,10 +546,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('#'); 
 
             }
 
@@ -566,11 +566,10 @@
         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('['); 
 
             }
 
@@ -587,11 +586,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(']'); 
 
             }
 
@@ -608,10 +606,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("+="); 
 
 
             }
@@ -629,10 +627,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("-="); 
 
 
             }
@@ -650,10 +648,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("*="); 
 
 
             }
@@ -671,10 +669,11 @@
         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("/="); 
+
 
             }
 
@@ -691,10 +690,11 @@
         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("%="); 
+
 
             }
 
@@ -711,11 +711,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('<'); 
 
             }
 
@@ -732,11 +731,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('>'); 
 
             }
 
@@ -753,10 +751,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(">="); 
 
 
             }
@@ -774,10 +772,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("||"); 
 
 
             }
@@ -795,10 +793,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("&&"); 
 
 
             }
@@ -816,10 +814,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("=="); 
 
 
             }
@@ -837,10 +835,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("!="); 
 
 
             }
@@ -858,10 +856,10 @@
         try {
             int _type = T__48;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:46:7: ( 'instanceof' )
-            // InternalSignalDSL.g:46:9: 'instanceof'
+            // InternalSignalDSL.g:46:7: ( '===' )
+            // InternalSignalDSL.g:46:9: '==='
             {
-            match("instanceof"); 
+            match("==="); 
 
 
             }
@@ -879,10 +877,10 @@
         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("!=="); 
 
 
             }
@@ -900,10 +898,10 @@
         try {
             int _type = T__50;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:48:7: ( '..<' )
-            // InternalSignalDSL.g:48:9: '..<'
+            // InternalSignalDSL.g:48:7: ( 'instanceof' )
+            // InternalSignalDSL.g:48:9: 'instanceof'
             {
-            match("..<"); 
+            match("instanceof"); 
 
 
             }
@@ -921,10 +919,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("->"); 
 
 
             }
@@ -942,10 +940,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("..<"); 
 
 
             }
@@ -963,10 +961,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(".."); 
 
 
             }
@@ -984,10 +982,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("=>"); 
 
 
             }
@@ -1005,10 +1003,11 @@
         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("<>"); 
+
 
             }
 
@@ -1025,10 +1024,11 @@
         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("?:"); 
+
 
             }
 
@@ -1045,11 +1045,10 @@
         try {
             int _type = T__57;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:55:7: ( '**' )
-            // InternalSignalDSL.g:55:9: '**'
+            // InternalSignalDSL.g:55:7: ( '+' )
+            // InternalSignalDSL.g:55:9: '+'
             {
-            match("**"); 
-
+            match('+'); 
 
             }
 
@@ -1066,10 +1065,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('-'); 
 
             }
 
@@ -1086,10 +1085,11 @@
         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("**"); 
+
 
             }
 
@@ -1106,10 +1106,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('/'); 
 
             }
 
@@ -1126,11 +1126,10 @@
         try {
             int _type = T__61;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:59:7: ( 'as' )
-            // InternalSignalDSL.g:59:9: 'as'
+            // InternalSignalDSL.g:59:7: ( '%' )
+            // InternalSignalDSL.g:59:9: '%'
             {
-            match("as"); 
-
+            match('%'); 
 
             }
 
@@ -1147,11 +1146,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('!'); 
 
             }
 
@@ -1168,10 +1166,10 @@
         try {
             int _type = T__63;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:61:7: ( '--' )
-            // InternalSignalDSL.g:61:9: '--'
+            // InternalSignalDSL.g:61:7: ( 'as' )
+            // InternalSignalDSL.g:61:9: 'as'
             {
-            match("--"); 
+            match("as"); 
 
 
             }
@@ -1189,10 +1187,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("++"); 
+
 
             }
 
@@ -1209,10 +1208,10 @@
         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("--"); 
 
 
             }
@@ -1230,11 +1229,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('.'); 
 
             }
 
@@ -1251,10 +1249,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("::"); 
+
 
             }
 
@@ -1271,10 +1270,10 @@
         try {
             int _type = T__68;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:66:7: ( 'if' )
-            // InternalSignalDSL.g:66:9: 'if'
+            // InternalSignalDSL.g:66:7: ( '?.' )
+            // InternalSignalDSL.g:66:9: '?.'
             {
-            match("if"); 
+            match("?."); 
 
 
             }
@@ -1292,11 +1291,10 @@
         try {
             int _type = T__69;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:67:7: ( 'else' )
-            // InternalSignalDSL.g:67:9: 'else'
+            // InternalSignalDSL.g:67:7: ( '|' )
+            // InternalSignalDSL.g:67:9: '|'
             {
-            match("else"); 
-
+            match('|'); 
 
             }
 
@@ -1313,10 +1311,10 @@
         try {
             int _type = T__70;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:68:7: ( 'switch' )
-            // InternalSignalDSL.g:68:9: 'switch'
+            // InternalSignalDSL.g:68:7: ( 'if' )
+            // InternalSignalDSL.g:68:9: 'if'
             {
-            match("switch"); 
+            match("if"); 
 
 
             }
@@ -1334,10 +1332,11 @@
         try {
             int _type = T__71;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:69:7: ( ':' )
-            // InternalSignalDSL.g:69:9: ':'
+            // InternalSignalDSL.g:69:7: ( 'else' )
+            // InternalSignalDSL.g:69:9: 'else'
             {
-            match(':'); 
+            match("else"); 
+
 
             }
 
@@ -1354,10 +1353,10 @@
         try {
             int _type = T__72;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:70:7: ( 'default' )
-            // InternalSignalDSL.g:70:9: 'default'
+            // InternalSignalDSL.g:70:7: ( 'switch' )
+            // InternalSignalDSL.g:70:9: 'switch'
             {
-            match("default"); 
+            match("switch"); 
 
 
             }
@@ -1375,11 +1374,10 @@
         try {
             int _type = T__73;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:71:7: ( 'case' )
-            // InternalSignalDSL.g:71:9: 'case'
+            // InternalSignalDSL.g:71:7: ( ':' )
+            // InternalSignalDSL.g:71:9: ':'
             {
-            match("case"); 
-
+            match(':'); 
 
             }
 
@@ -1396,10 +1394,10 @@
         try {
             int _type = T__74;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:72:7: ( 'while' )
-            // InternalSignalDSL.g:72:9: 'while'
+            // InternalSignalDSL.g:72:7: ( 'default' )
+            // InternalSignalDSL.g:72:9: 'default'
             {
-            match("while"); 
+            match("default"); 
 
 
             }
@@ -1417,10 +1415,10 @@
         try {
             int _type = T__75;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:73:7: ( 'do' )
-            // InternalSignalDSL.g:73:9: 'do'
+            // InternalSignalDSL.g:73:7: ( 'case' )
+            // InternalSignalDSL.g:73:9: 'case'
             {
-            match("do"); 
+            match("case"); 
 
 
             }
@@ -1438,10 +1436,10 @@
         try {
             int _type = T__76;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:74:7: ( 'var' )
-            // InternalSignalDSL.g:74:9: 'var'
+            // InternalSignalDSL.g:74:7: ( 'while' )
+            // InternalSignalDSL.g:74:9: 'while'
             {
-            match("var"); 
+            match("while"); 
 
 
             }
@@ -1459,10 +1457,10 @@
         try {
             int _type = T__77;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:75:7: ( 'val' )
-            // InternalSignalDSL.g:75:9: 'val'
+            // InternalSignalDSL.g:75:7: ( 'do' )
+            // InternalSignalDSL.g:75:9: 'do'
             {
-            match("val"); 
+            match("do"); 
 
 
             }
@@ -1480,10 +1478,10 @@
         try {
             int _type = T__78;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:76:7: ( 'extends' )
-            // InternalSignalDSL.g:76:9: 'extends'
+            // InternalSignalDSL.g:76:7: ( 'var' )
+            // InternalSignalDSL.g:76:9: 'var'
             {
-            match("extends"); 
+            match("var"); 
 
 
             }
@@ -1501,10 +1499,10 @@
         try {
             int _type = T__79;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:77:7: ( 'super' )
-            // InternalSignalDSL.g:77:9: 'super'
+            // InternalSignalDSL.g:77:7: ( 'val' )
+            // InternalSignalDSL.g:77:9: 'val'
             {
-            match("super"); 
+            match("val"); 
 
 
             }
@@ -1522,10 +1520,10 @@
         try {
             int _type = T__80;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:78:7: ( 'new' )
-            // InternalSignalDSL.g:78:9: 'new'
+            // InternalSignalDSL.g:78:7: ( 'extends' )
+            // InternalSignalDSL.g:78:9: 'extends'
             {
-            match("new"); 
+            match("extends"); 
 
 
             }
@@ -1543,10 +1541,10 @@
         try {
             int _type = T__81;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:79:7: ( 'false' )
-            // InternalSignalDSL.g:79:9: 'false'
+            // InternalSignalDSL.g:79:7: ( 'super' )
+            // InternalSignalDSL.g:79:9: 'super'
             {
-            match("false"); 
+            match("super"); 
 
 
             }
@@ -1564,10 +1562,10 @@
         try {
             int _type = T__82;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:80:7: ( 'true' )
-            // InternalSignalDSL.g:80:9: 'true'
+            // InternalSignalDSL.g:80:7: ( 'new' )
+            // InternalSignalDSL.g:80:9: 'new'
             {
-            match("true"); 
+            match("new"); 
 
 
             }
@@ -1585,10 +1583,10 @@
         try {
             int _type = T__83;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:81:7: ( 'null' )
-            // InternalSignalDSL.g:81:9: 'null'
+            // InternalSignalDSL.g:81:7: ( 'false' )
+            // InternalSignalDSL.g:81:9: 'false'
             {
-            match("null"); 
+            match("false"); 
 
 
             }
@@ -1606,10 +1604,10 @@
         try {
             int _type = T__84;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:82:7: ( 'typeof' )
-            // InternalSignalDSL.g:82:9: 'typeof'
+            // InternalSignalDSL.g:82:7: ( 'true' )
+            // InternalSignalDSL.g:82:9: 'true'
             {
-            match("typeof"); 
+            match("true"); 
 
 
             }
@@ -1627,10 +1625,10 @@
         try {
             int _type = T__85;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:83:7: ( 'throw' )
-            // InternalSignalDSL.g:83:9: 'throw'
+            // InternalSignalDSL.g:83:7: ( 'null' )
+            // InternalSignalDSL.g:83:9: 'null'
             {
-            match("throw"); 
+            match("null"); 
 
 
             }
@@ -1648,10 +1646,10 @@
         try {
             int _type = T__86;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:84:7: ( 'return' )
-            // InternalSignalDSL.g:84:9: 'return'
+            // InternalSignalDSL.g:84:7: ( 'typeof' )
+            // InternalSignalDSL.g:84:9: 'typeof'
             {
-            match("return"); 
+            match("typeof"); 
 
 
             }
@@ -1669,10 +1667,10 @@
         try {
             int _type = T__87;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:85:7: ( 'try' )
-            // InternalSignalDSL.g:85:9: 'try'
+            // InternalSignalDSL.g:85:7: ( 'throw' )
+            // InternalSignalDSL.g:85:9: 'throw'
             {
-            match("try"); 
+            match("throw"); 
 
 
             }
@@ -1690,10 +1688,10 @@
         try {
             int _type = T__88;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:86:7: ( 'finally' )
-            // InternalSignalDSL.g:86:9: 'finally'
+            // InternalSignalDSL.g:86:7: ( 'return' )
+            // InternalSignalDSL.g:86:9: 'return'
             {
-            match("finally"); 
+            match("return"); 
 
 
             }
@@ -1711,10 +1709,10 @@
         try {
             int _type = T__89;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:87:7: ( 'synchronized' )
-            // InternalSignalDSL.g:87:9: 'synchronized'
+            // InternalSignalDSL.g:87:7: ( 'try' )
+            // InternalSignalDSL.g:87:9: 'try'
             {
-            match("synchronized"); 
+            match("try"); 
 
 
             }
@@ -1732,10 +1730,10 @@
         try {
             int _type = T__90;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:88:7: ( 'catch' )
-            // InternalSignalDSL.g:88:9: 'catch'
+            // InternalSignalDSL.g:88:7: ( 'finally' )
+            // InternalSignalDSL.g:88:9: 'finally'
             {
-            match("catch"); 
+            match("finally"); 
 
 
             }
@@ -1753,10 +1751,11 @@
         try {
             int _type = T__91;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:89:7: ( '?' )
-            // InternalSignalDSL.g:89:9: '?'
+            // InternalSignalDSL.g:89:7: ( 'synchronized' )
+            // InternalSignalDSL.g:89:9: 'synchronized'
             {
-            match('?'); 
+            match("synchronized"); 
+
 
             }
 
@@ -1773,10 +1772,11 @@
         try {
             int _type = T__92;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:90:7: ( '&' )
-            // InternalSignalDSL.g:90:9: '&'
+            // InternalSignalDSL.g:90:7: ( 'catch' )
+            // InternalSignalDSL.g:90:9: 'catch'
             {
-            match('&'); 
+            match("catch"); 
+
 
             }
 
@@ -1793,11 +1793,10 @@
         try {
             int _type = T__93;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:91:7: ( 'all' )
-            // InternalSignalDSL.g:91:9: 'all'
+            // InternalSignalDSL.g:91:7: ( '?' )
+            // InternalSignalDSL.g:91:9: '?'
             {
-            match("all"); 
-
+            match('?'); 
 
             }
 
@@ -1814,11 +1813,10 @@
         try {
             int _type = T__94;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:92:7: ( 'createSignals' )
-            // InternalSignalDSL.g:92:9: 'createSignals'
+            // InternalSignalDSL.g:92:7: ( '&' )
+            // InternalSignalDSL.g:92:9: '&'
             {
-            match("createSignals"); 
-
+            match('&'); 
 
             }
 
@@ -1835,10 +1833,10 @@
         try {
             int _type = T__95;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:93:7: ( 'modifySignals' )
-            // InternalSignalDSL.g:93:9: 'modifySignals'
+            // InternalSignalDSL.g:93:7: ( 'Import' )
+            // InternalSignalDSL.g:93:9: 'Import'
             {
-            match("modifySignals"); 
+            match("Import"); 
 
 
             }
@@ -1856,10 +1854,10 @@
         try {
             int _type = T__96;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:94:7: ( 'deleteSignals' )
-            // InternalSignalDSL.g:94:9: 'deleteSignals'
+            // InternalSignalDSL.g:94:7: ( 'Export' )
+            // InternalSignalDSL.g:94:9: 'Export'
             {
-            match("deleteSignals"); 
+            match("Export"); 
 
 
             }
@@ -1877,10 +1875,10 @@
         try {
             int _type = T__97;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:95:7: ( 'show' )
-            // InternalSignalDSL.g:95:9: 'show'
+            // InternalSignalDSL.g:95:7: ( 'all' )
+            // InternalSignalDSL.g:95:9: 'all'
             {
-            match("show"); 
+            match("all"); 
 
 
             }
@@ -1898,10 +1896,10 @@
         try {
             int _type = T__98;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:96:7: ( 'showOnCreate' )
-            // InternalSignalDSL.g:96:9: 'showOnCreate'
+            // InternalSignalDSL.g:96:7: ( 'createSignals' )
+            // InternalSignalDSL.g:96:9: 'createSignals'
             {
-            match("showOnCreate"); 
+            match("createSignals"); 
 
 
             }
@@ -1919,10 +1917,10 @@
         try {
             int _type = T__99;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:97:7: ( 'showOnDelete' )
-            // InternalSignalDSL.g:97:9: 'showOnDelete'
+            // InternalSignalDSL.g:97:7: ( 'modifySignals' )
+            // InternalSignalDSL.g:97:9: 'modifySignals'
             {
-            match("showOnDelete"); 
+            match("modifySignals"); 
 
 
             }
@@ -1940,10 +1938,10 @@
         try {
             int _type = T__100;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:98:8: ( 'showOnModify' )
-            // InternalSignalDSL.g:98:10: 'showOnModify'
+            // InternalSignalDSL.g:98:8: ( 'deleteSignals' )
+            // InternalSignalDSL.g:98:10: 'deleteSignals'
             {
-            match("showOnModify"); 
+            match("deleteSignals"); 
 
 
             }
@@ -1982,10 +1980,10 @@
         try {
             int _type = T__102;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:100:8: ( 'doAfterCreate' )
-            // InternalSignalDSL.g:100:10: 'doAfterCreate'
+            // InternalSignalDSL.g:100:8: ( 'doAfterModify' )
+            // InternalSignalDSL.g:100:10: 'doAfterModify'
             {
-            match("doAfterCreate"); 
+            match("doAfterModify"); 
 
 
             }
@@ -2003,10 +2001,10 @@
         try {
             int _type = T__103;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:101:8: ( 'doAfterDelete' )
-            // InternalSignalDSL.g:101:10: 'doAfterDelete'
+            // InternalSignalDSL.g:101:8: ( 'doAfterCreate' )
+            // InternalSignalDSL.g:101:10: 'doAfterCreate'
             {
-            match("doAfterDelete"); 
+            match("doAfterCreate"); 
 
 
             }
@@ -2024,10 +2022,10 @@
         try {
             int _type = T__104;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:102:8: ( 'doAfterModify' )
-            // InternalSignalDSL.g:102:10: 'doAfterModify'
+            // InternalSignalDSL.g:102:8: ( 'doAfterDelete' )
+            // InternalSignalDSL.g:102:10: 'doAfterDelete'
             {
-            match("doAfterModify"); 
+            match("doAfterDelete"); 
 
 
             }
@@ -2045,10 +2043,10 @@
         try {
             int _type = T__105;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:103:8: ( 'doBefore' )
-            // InternalSignalDSL.g:103:10: 'doBefore'
+            // InternalSignalDSL.g:103:8: ( 'synch' )
+            // InternalSignalDSL.g:103:10: 'synch'
             {
-            match("doBefore"); 
+            match("synch"); 
 
 
             }
@@ -2066,10 +2064,10 @@
         try {
             int _type = T__106;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:104:8: ( 'doBeforeCreate' )
-            // InternalSignalDSL.g:104:10: 'doBeforeCreate'
+            // InternalSignalDSL.g:104:8: ( 'asynch' )
+            // InternalSignalDSL.g:104:10: 'asynch'
             {
-            match("doBeforeCreate"); 
+            match("asynch"); 
 
 
             }
@@ -2082,57 +2080,15 @@
     }
     // $ANTLR end "T__106"
 
-    // $ANTLR start "T__107"
-    public final void mT__107() throws RecognitionException {
-        try {
-            int _type = T__107;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:105:8: ( 'doBeforeModify' )
-            // InternalSignalDSL.g:105:10: 'doBeforeModify'
-            {
-            match("doBeforeModify"); 
-
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__107"
-
-    // $ANTLR start "T__108"
-    public final void mT__108() throws RecognitionException {
-        try {
-            int _type = T__108;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:106:8: ( 'doBeforedelete' )
-            // InternalSignalDSL.g:106:10: 'doBeforedelete'
-            {
-            match("doBeforedelete"); 
-
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__108"
-
     // $ANTLR start "RULE_HEX"
     public final void mRULE_HEX() throws RecognitionException {
         try {
             int _type = RULE_HEX;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:7566:10: ( ( '0x' | '0X' ) ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+ ( '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) ) )? )
-            // InternalSignalDSL.g:7566:12: ( '0x' | '0X' ) ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+ ( '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) ) )?
+            // InternalSignalDSL.g:7644:10: ( ( '0x' | '0X' ) ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+ ( '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) ) )? )
+            // InternalSignalDSL.g:7644:12: ( '0x' | '0X' ) ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+ ( '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) ) )?
             {
-            // InternalSignalDSL.g:7566:12: ( '0x' | '0X' )
+            // InternalSignalDSL.g:7644:12: ( '0x' | '0X' )
             int alt1=2;
             int LA1_0 = input.LA(1);
 
@@ -2160,7 +2116,7 @@
             }
             switch (alt1) {
                 case 1 :
-                    // InternalSignalDSL.g:7566:13: '0x'
+                    // InternalSignalDSL.g:7644:13: '0x'
                     {
                     match("0x"); 
 
@@ -2168,7 +2124,7 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:7566:18: '0X'
+                    // InternalSignalDSL.g:7644:18: '0X'
                     {
                     match("0X"); 
 
@@ -2178,7 +2134,7 @@
 
             }
 
-            // InternalSignalDSL.g:7566:24: ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+
+            // InternalSignalDSL.g:7644:24: ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+
             int cnt2=0;
             loop2:
             do {
@@ -2216,7 +2172,7 @@
                 cnt2++;
             } while (true);
 
-            // InternalSignalDSL.g:7566:58: ( '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) ) )?
+            // InternalSignalDSL.g:7644:58: ( '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) ) )?
             int alt4=2;
             int LA4_0 = input.LA(1);
 
@@ -2225,10 +2181,10 @@
             }
             switch (alt4) {
                 case 1 :
-                    // InternalSignalDSL.g:7566:59: '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) )
+                    // InternalSignalDSL.g:7644:59: '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) )
                     {
                     match('#'); 
-                    // InternalSignalDSL.g:7566:63: ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) )
+                    // InternalSignalDSL.g:7644:63: ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) )
                     int alt3=2;
                     int LA3_0 = input.LA(1);
 
@@ -2246,7 +2202,7 @@
                     }
                     switch (alt3) {
                         case 1 :
-                            // InternalSignalDSL.g:7566:64: ( 'b' | 'B' ) ( 'i' | 'I' )
+                            // InternalSignalDSL.g:7644:64: ( 'b' | 'B' ) ( 'i' | 'I' )
                             {
                             if ( input.LA(1)=='B'||input.LA(1)=='b' ) {
                                 input.consume();
@@ -2270,7 +2226,7 @@
                             }
                             break;
                         case 2 :
-                            // InternalSignalDSL.g:7566:84: ( 'l' | 'L' )
+                            // InternalSignalDSL.g:7644:84: ( 'l' | 'L' )
                             {
                             if ( input.LA(1)=='L'||input.LA(1)=='l' ) {
                                 input.consume();
@@ -2309,11 +2265,11 @@
         try {
             int _type = RULE_INT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:7568:10: ( '0' .. '9' ( '0' .. '9' | '_' )* )
-            // InternalSignalDSL.g:7568:12: '0' .. '9' ( '0' .. '9' | '_' )*
+            // InternalSignalDSL.g:7646:10: ( '0' .. '9' ( '0' .. '9' | '_' )* )
+            // InternalSignalDSL.g:7646:12: '0' .. '9' ( '0' .. '9' | '_' )*
             {
             matchRange('0','9'); 
-            // InternalSignalDSL.g:7568:21: ( '0' .. '9' | '_' )*
+            // InternalSignalDSL.g:7646:21: ( '0' .. '9' | '_' )*
             loop5:
             do {
                 int alt5=2;
@@ -2362,11 +2318,11 @@
         try {
             int _type = RULE_DECIMAL;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:7570:14: ( RULE_INT ( ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT )? ( ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' ) | ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' ) )? )
-            // InternalSignalDSL.g:7570:16: RULE_INT ( ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT )? ( ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' ) | ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' ) )?
+            // InternalSignalDSL.g:7648:14: ( RULE_INT ( ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT )? ( ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' ) | ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' ) )? )
+            // InternalSignalDSL.g:7648:16: RULE_INT ( ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT )? ( ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' ) | ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' ) )?
             {
             mRULE_INT(); 
-            // InternalSignalDSL.g:7570:25: ( ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT )?
+            // InternalSignalDSL.g:7648:25: ( ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT )?
             int alt7=2;
             int LA7_0 = input.LA(1);
 
@@ -2375,7 +2331,7 @@
             }
             switch (alt7) {
                 case 1 :
-                    // InternalSignalDSL.g:7570:26: ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT
+                    // InternalSignalDSL.g:7648:26: ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT
                     {
                     if ( input.LA(1)=='E'||input.LA(1)=='e' ) {
                         input.consume();
@@ -2386,7 +2342,7 @@
                         recover(mse);
                         throw mse;}
 
-                    // InternalSignalDSL.g:7570:36: ( '+' | '-' )?
+                    // InternalSignalDSL.g:7648:36: ( '+' | '-' )?
                     int alt6=2;
                     int LA6_0 = input.LA(1);
 
@@ -2419,7 +2375,7 @@
 
             }
 
-            // InternalSignalDSL.g:7570:58: ( ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' ) | ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' ) )?
+            // InternalSignalDSL.g:7648:58: ( ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' ) | ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' ) )?
             int alt8=3;
             int LA8_0 = input.LA(1);
 
@@ -2431,7 +2387,7 @@
             }
             switch (alt8) {
                 case 1 :
-                    // InternalSignalDSL.g:7570:59: ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' )
+                    // InternalSignalDSL.g:7648:59: ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' )
                     {
                     if ( input.LA(1)=='B'||input.LA(1)=='b' ) {
                         input.consume();
@@ -2455,7 +2411,7 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:7570:87: ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' )
+                    // InternalSignalDSL.g:7648: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();
@@ -2488,10 +2444,10 @@
         try {
             int _type = RULE_ID;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:7572:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '0' .. '9' )* )
-            // InternalSignalDSL.g:7572:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '0' .. '9' )*
+            // InternalSignalDSL.g:7650:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '0' .. '9' )* )
+            // InternalSignalDSL.g:7650:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '0' .. '9' )*
             {
-            // InternalSignalDSL.g:7572:11: ( '^' )?
+            // InternalSignalDSL.g:7650:11: ( '^' )?
             int alt9=2;
             int LA9_0 = input.LA(1);
 
@@ -2500,7 +2456,7 @@
             }
             switch (alt9) {
                 case 1 :
-                    // InternalSignalDSL.g:7572:11: '^'
+                    // InternalSignalDSL.g:7650:11: '^'
                     {
                     match('^'); 
 
@@ -2518,7 +2474,7 @@
                 recover(mse);
                 throw mse;}
 
-            // InternalSignalDSL.g:7572:44: ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '0' .. '9' )*
+            // InternalSignalDSL.g:7650:44: ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '0' .. '9' )*
             loop10:
             do {
                 int alt10=2;
@@ -2567,10 +2523,10 @@
         try {
             int _type = RULE_STRING;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:7574:13: ( ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )? | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )? ) )
-            // InternalSignalDSL.g:7574:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )? | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )? )
+            // InternalSignalDSL.g:7652:13: ( ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )? | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )? ) )
+            // InternalSignalDSL.g:7652:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )? | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )? )
             {
-            // InternalSignalDSL.g:7574:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )? | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )? )
+            // InternalSignalDSL.g:7652:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )? | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )? )
             int alt15=2;
             int LA15_0 = input.LA(1);
 
@@ -2588,10 +2544,10 @@
             }
             switch (alt15) {
                 case 1 :
-                    // InternalSignalDSL.g:7574:16: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )?
+                    // InternalSignalDSL.g:7652:16: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )?
                     {
                     match('\"'); 
-                    // InternalSignalDSL.g:7574:20: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )*
+                    // InternalSignalDSL.g:7652:20: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )*
                     loop11:
                     do {
                         int alt11=3;
@@ -2607,7 +2563,7 @@
 
                         switch (alt11) {
                     	case 1 :
-                    	    // InternalSignalDSL.g:7574:21: '\\\\' .
+                    	    // InternalSignalDSL.g:7652:21: '\\\\' .
                     	    {
                     	    match('\\'); 
                     	    matchAny(); 
@@ -2615,7 +2571,7 @@
                     	    }
                     	    break;
                     	case 2 :
-                    	    // InternalSignalDSL.g:7574:28: ~ ( ( '\\\\' | '\"' ) )
+                    	    // InternalSignalDSL.g:7652:28: ~ ( ( '\\\\' | '\"' ) )
                     	    {
                     	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
                     	        input.consume();
@@ -2635,7 +2591,7 @@
                         }
                     } while (true);
 
-                    // InternalSignalDSL.g:7574:44: ( '\"' )?
+                    // InternalSignalDSL.g:7652:44: ( '\"' )?
                     int alt12=2;
                     int LA12_0 = input.LA(1);
 
@@ -2644,7 +2600,7 @@
                     }
                     switch (alt12) {
                         case 1 :
-                            // InternalSignalDSL.g:7574:44: '\"'
+                            // InternalSignalDSL.g:7652:44: '\"'
                             {
                             match('\"'); 
 
@@ -2657,10 +2613,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:7574:49: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )?
+                    // InternalSignalDSL.g:7652:49: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )?
                     {
                     match('\''); 
-                    // InternalSignalDSL.g:7574:54: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )*
+                    // InternalSignalDSL.g:7652:54: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )*
                     loop13:
                     do {
                         int alt13=3;
@@ -2676,7 +2632,7 @@
 
                         switch (alt13) {
                     	case 1 :
-                    	    // InternalSignalDSL.g:7574:55: '\\\\' .
+                    	    // InternalSignalDSL.g:7652:55: '\\\\' .
                     	    {
                     	    match('\\'); 
                     	    matchAny(); 
@@ -2684,7 +2640,7 @@
                     	    }
                     	    break;
                     	case 2 :
-                    	    // InternalSignalDSL.g:7574:62: ~ ( ( '\\\\' | '\\'' ) )
+                    	    // InternalSignalDSL.g:7652:62: ~ ( ( '\\\\' | '\\'' ) )
                     	    {
                     	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='&')||(input.LA(1)>='(' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
                     	        input.consume();
@@ -2704,7 +2660,7 @@
                         }
                     } while (true);
 
-                    // InternalSignalDSL.g:7574:79: ( '\\'' )?
+                    // InternalSignalDSL.g:7652:79: ( '\\'' )?
                     int alt14=2;
                     int LA14_0 = input.LA(1);
 
@@ -2713,7 +2669,7 @@
                     }
                     switch (alt14) {
                         case 1 :
-                            // InternalSignalDSL.g:7574:79: '\\''
+                            // InternalSignalDSL.g:7652:79: '\\''
                             {
                             match('\''); 
 
@@ -2744,12 +2700,12 @@
         try {
             int _type = RULE_ML_COMMENT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:7576:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
-            // InternalSignalDSL.g:7576:19: '/*' ( options {greedy=false; } : . )* '*/'
+            // InternalSignalDSL.g:7654:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
+            // InternalSignalDSL.g:7654:19: '/*' ( options {greedy=false; } : . )* '*/'
             {
             match("/*"); 
 
-            // InternalSignalDSL.g:7576:24: ( options {greedy=false; } : . )*
+            // InternalSignalDSL.g:7654:24: ( options {greedy=false; } : . )*
             loop16:
             do {
                 int alt16=2;
@@ -2774,7 +2730,7 @@
 
                 switch (alt16) {
             	case 1 :
-            	    // InternalSignalDSL.g:7576:52: .
+            	    // InternalSignalDSL.g:7654:52: .
             	    {
             	    matchAny(); 
 
@@ -2804,12 +2760,12 @@
         try {
             int _type = RULE_SL_COMMENT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:7578:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
-            // InternalSignalDSL.g:7578:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
+            // InternalSignalDSL.g:7656:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
+            // InternalSignalDSL.g:7656:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
             {
             match("//"); 
 
-            // InternalSignalDSL.g:7578:24: (~ ( ( '\\n' | '\\r' ) ) )*
+            // InternalSignalDSL.g:7656:24: (~ ( ( '\\n' | '\\r' ) ) )*
             loop17:
             do {
                 int alt17=2;
@@ -2822,7 +2778,7 @@
 
                 switch (alt17) {
             	case 1 :
-            	    // InternalSignalDSL.g:7578:24: ~ ( ( '\\n' | '\\r' ) )
+            	    // InternalSignalDSL.g:7656: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();
@@ -2842,7 +2798,7 @@
                 }
             } while (true);
 
-            // InternalSignalDSL.g:7578:40: ( ( '\\r' )? '\\n' )?
+            // InternalSignalDSL.g:7656:40: ( ( '\\r' )? '\\n' )?
             int alt19=2;
             int LA19_0 = input.LA(1);
 
@@ -2851,9 +2807,9 @@
             }
             switch (alt19) {
                 case 1 :
-                    // InternalSignalDSL.g:7578:41: ( '\\r' )? '\\n'
+                    // InternalSignalDSL.g:7656:41: ( '\\r' )? '\\n'
                     {
-                    // InternalSignalDSL.g:7578:41: ( '\\r' )?
+                    // InternalSignalDSL.g:7656:41: ( '\\r' )?
                     int alt18=2;
                     int LA18_0 = input.LA(1);
 
@@ -2862,7 +2818,7 @@
                     }
                     switch (alt18) {
                         case 1 :
-                            // InternalSignalDSL.g:7578:41: '\\r'
+                            // InternalSignalDSL.g:7656:41: '\\r'
                             {
                             match('\r'); 
 
@@ -2894,10 +2850,10 @@
         try {
             int _type = RULE_WS;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:7580:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
-            // InternalSignalDSL.g:7580:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+            // InternalSignalDSL.g:7658:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
+            // InternalSignalDSL.g:7658:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
             {
-            // InternalSignalDSL.g:7580:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+            // InternalSignalDSL.g:7658:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
             int cnt20=0;
             loop20:
             do {
@@ -2951,8 +2907,8 @@
         try {
             int _type = RULE_ANY_OTHER;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:7582:16: ( . )
-            // InternalSignalDSL.g:7582:18: .
+            // InternalSignalDSL.g:7660:16: ( . )
+            // InternalSignalDSL.g:7660:18: .
             {
             matchAny(); 
 
@@ -2967,8 +2923,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 | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_ID | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER )
-        int alt21=105;
+        // 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 | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_ID | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER )
+        int alt21=103;
         alt21 = dfa21.predict(input);
         switch (alt21) {
             case 1 :
@@ -3630,77 +3586,63 @@
                 }
                 break;
             case 95 :
-                // InternalSignalDSL.g:1:581: T__107
-                {
-                mT__107(); 
-
-                }
-                break;
-            case 96 :
-                // InternalSignalDSL.g:1:588: T__108
-                {
-                mT__108(); 
-
-                }
-                break;
-            case 97 :
-                // InternalSignalDSL.g:1:595: RULE_HEX
+                // InternalSignalDSL.g:1:581: RULE_HEX
                 {
                 mRULE_HEX(); 
 
                 }
                 break;
-            case 98 :
-                // InternalSignalDSL.g:1:604: RULE_INT
+            case 96 :
+                // InternalSignalDSL.g:1:590: RULE_INT
                 {
                 mRULE_INT(); 
 
                 }
                 break;
-            case 99 :
-                // InternalSignalDSL.g:1:613: RULE_DECIMAL
+            case 97 :
+                // InternalSignalDSL.g:1:599: RULE_DECIMAL
                 {
                 mRULE_DECIMAL(); 
 
                 }
                 break;
-            case 100 :
-                // InternalSignalDSL.g:1:626: RULE_ID
+            case 98 :
+                // InternalSignalDSL.g:1:612: RULE_ID
                 {
                 mRULE_ID(); 
 
                 }
                 break;
-            case 101 :
-                // InternalSignalDSL.g:1:634: RULE_STRING
+            case 99 :
+                // InternalSignalDSL.g:1:620: RULE_STRING
                 {
                 mRULE_STRING(); 
 
                 }
                 break;
-            case 102 :
-                // InternalSignalDSL.g:1:646: RULE_ML_COMMENT
+            case 100 :
+                // InternalSignalDSL.g:1:632: RULE_ML_COMMENT
                 {
                 mRULE_ML_COMMENT(); 
 
                 }
                 break;
-            case 103 :
-                // InternalSignalDSL.g:1:662: RULE_SL_COMMENT
+            case 101 :
+                // InternalSignalDSL.g:1:648: RULE_SL_COMMENT
                 {
                 mRULE_SL_COMMENT(); 
 
                 }
                 break;
-            case 104 :
-                // InternalSignalDSL.g:1:678: RULE_WS
+            case 102 :
+                // InternalSignalDSL.g:1:664: RULE_WS
                 {
                 mRULE_WS(); 
 
                 }
                 break;
-            case 105 :
-                // InternalSignalDSL.g:1:686: RULE_ANY_OTHER
+            case 103 :
+                // InternalSignalDSL.g:1:672: RULE_ANY_OTHER
                 {
                 mRULE_ANY_OTHER(); 
 
@@ -3714,154 +3656,145 @@
 
     protected DFA21 dfa21 = new DFA21(this);
     static final String DFA21_eotS =
-        "\1\uffff\1\61\2\uffff\7\61\1\111\1\61\5\uffff\1\124\3\uffff\1\132\1\136\1\142\1\144\1\146\1\150\1\152\1\154\1\156\1\160\1\163\1\61\1\167\5\61\2\u0082\1\57\5\uffff\1\61\3\uffff\4\61\1\u008e\6\61\1\u0095\7\61\3\uffff\1\u009d\2\61\5\uffff\1\u00a1\32\uffff\1\u00a3\1\uffff\1\u00a5\4\uffff\1\u00a6\1\61\2\uffff\10\61\1\uffff\1\u0082\4\uffff\10\61\1\uffff\1\u00bb\5\61\1\uffff\7\61\1\uffff\1\u00c8\1\61\7\uffff\1\u00ca\3\61\1\u00ce\1\u00cf\1\61\1\u00d1\14\61\1\uffff\11\61\1\u00e8\1\61\1\u00ea\1\uffff\1\u00eb\1\uffff\1\u00ec\2\61\2\uffff\1\u00ef\1\uffff\6\61\1\u00f6\5\61\1\u00fc\6\61\1\u0103\2\61\1\uffff\1\61\3\uffff\1\u0108\1\61\1\uffff\1\61\1\u010b\4\61\1\uffff\5\61\1\uffff\2\61\1\u0117\1\61\1\u0119\1\u011a\1\uffff\4\61\1\uffff\1\61\1\u0122\1\uffff\1\u0123\1\61\1\u0125\1\u0126\1\61\1\u0128\1\61\1\u012d\1\61\1\u012f\1\61\1\uffff\1\61\2\uffff\5\61\1\u0137\1\61\2\uffff\1\61\2\uffff\1\61\1\uffff\4\61\1\uffff\1\u0142\1\uffff\7\61\1\uffff\2\61\1\u014c\7\61\1\uffff\1\u0154\5\61\1\u015a\2\61\1\uffff\7\61\1\uffff\1\u0164\4\61\1\uffff\11\61\1\uffff\15\61\1\u017f\1\u0180\1\u0181\1\u0182\2\61\1\u0185\1\u0186\1\u0187\1\u0188\3\61\4\uffff\1\u018c\1\u018d\4\uffff\1\u018e\1\u018f\1\u0190\5\uffff";
+        "\1\uffff\1\64\2\uffff\10\64\1\114\1\64\5\uffff\1\127\3\uffff\1\135\1\141\1\145\1\147\1\151\1\153\1\155\1\157\1\161\1\163\1\166\1\64\1\172\7\64\2\u0087\1\62\5\uffff\1\64\3\uffff\4\64\1\u0092\7\64\1\u009b\6\64\3\uffff\1\u00a2\2\64\5\uffff\1\u00a6\32\uffff\1\u00a8\1\uffff\1\u00aa\4\uffff\1\u00ac\1\64\2\uffff\12\64\1\uffff\1\u0087\4\uffff\7\64\1\uffff\1\u00c2\7\64\1\uffff\6\64\1\uffff\1\u00d0\1\64\6\uffff\1\64\1\uffff\1\u00d3\3\64\1\u00d7\1\u00d8\1\64\1\u00da\15\64\1\uffff\14\64\1\u00f4\1\uffff\1\u00f5\1\64\1\uffff\1\u00f7\2\64\2\uffff\1\u00fa\1\uffff\10\64\1\u0103\6\64\1\u010a\6\64\1\u0111\1\u0113\1\64\2\uffff\1\64\1\uffff\1\u0117\1\64\1\uffff\1\64\1\u011a\6\64\1\uffff\6\64\1\uffff\2\64\1\u0129\1\64\1\u012b\1\u012c\1\uffff\1\64\1\uffff\2\64\1\u0130\1\uffff\1\64\1\u0132\1\uffff\1\u0133\1\u0134\1\u0135\1\64\1\u0137\1\u0138\1\64\1\u013a\1\64\1\u013f\1\64\1\u0141\1\u0142\1\64\1\uffff\1\64\2\uffff\2\64\1\u0147\1\uffff\1\64\4\uffff\1\64\2\uffff\1\64\1\uffff\4\64\1\uffff\1\u014f\2\uffff\4\64\1\uffff\2\64\1\u0156\4\64\1\uffff\3\64\1\u015e\2\64\1\uffff\5\64\1\u0166\1\64\1\uffff\7\64\1\uffff\7\64\1\u0176\1\u0177\2\64\1\u017a\1\u017b\1\u017c\1\u017d\2\uffff\1\u017e\1\u017f\6\uffff";
     static final String DFA21_eofS =
-        "\u0191\uffff";
+        "\u0180\uffff";
     static final String DFA21_minS =
-        "\1\0\1\141\2\uffff\1\141\1\145\2\141\1\146\1\150\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\154\1\72\2\141\1\150\1\145\1\157\2\60\1\44\5\uffff\1\143\3\uffff\1\164\1\151\1\162\1\146\1\44\1\162\1\154\2\156\1\160\1\163\1\44\1\141\1\151\1\160\1\156\1\157\1\164\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\44\1\154\2\uffff\1\163\1\145\1\154\1\165\1\160\1\162\1\164\1\144\1\uffff\1\60\4\uffff\1\153\1\143\1\154\1\145\1\141\1\145\1\146\1\145\1\uffff\1\44\1\163\1\141\1\144\1\157\1\164\1\uffff\2\164\1\145\1\143\1\167\2\145\1\uffff\1\44\1\154\7\uffff\1\44\1\145\1\143\1\141\2\44\1\145\1\44\1\145\1\157\1\165\1\151\1\141\1\150\1\145\1\143\1\165\2\164\1\146\1\uffff\1\145\2\154\1\162\1\141\1\151\1\143\1\162\1\150\1\44\1\156\1\44\1\uffff\1\44\1\uffff\1\44\1\150\1\164\2\uffff\1\44\1\uffff\1\157\1\167\1\162\1\146\1\147\1\145\1\44\1\164\1\154\2\145\1\157\1\44\1\154\1\145\1\164\1\156\1\143\1\150\1\44\1\162\1\156\1\uffff\1\144\3\uffff\1\44\1\145\1\uffff\1\146\1\44\1\156\1\171\1\145\1\162\1\uffff\1\157\1\164\1\123\2\162\1\uffff\1\171\1\162\1\44\1\143\2\44\1\uffff\1\157\1\103\1\151\1\163\1\uffff\1\123\1\44\1\uffff\1\44\1\123\2\44\1\162\1\44\1\151\1\44\1\145\1\44\1\117\1\uffff\1\145\2\uffff\1\156\1\162\1\145\2\157\1\44\1\151\2\uffff\1\151\2\uffff\1\171\1\uffff\1\147\1\162\1\145\1\157\1\uffff\1\44\1\uffff\1\156\1\157\1\151\1\145\1\154\1\144\1\156\1\uffff\2\147\1\44\1\156\1\145\1\154\1\144\1\162\1\157\1\145\1\uffff\1\44\1\146\1\172\1\141\1\145\1\151\1\44\2\156\1\uffff\2\141\1\145\1\151\1\145\1\144\1\154\1\uffff\1\44\1\145\2\164\1\146\1\uffff\2\141\1\154\2\164\1\146\1\141\1\151\1\145\1\uffff\1\144\2\145\1\171\2\154\1\163\2\145\1\171\1\164\1\146\1\164\4\44\2\163\4\44\1\145\1\171\1\145\4\uffff\2\44\4\uffff\3\44\5\uffff";
+        "\1\0\1\141\2\uffff\1\141\1\145\3\141\1\146\1\164\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\154\1\72\2\141\1\150\1\145\1\155\1\170\1\157\2\60\1\44\5\uffff\1\143\3\uffff\1\164\1\151\1\162\1\146\1\44\1\162\2\154\1\156\1\164\1\160\1\163\1\44\1\141\1\151\1\160\1\156\1\164\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\44\1\154\2\uffff\1\163\1\145\1\154\1\165\1\160\1\162\1\164\2\160\1\144\1\uffff\1\60\4\uffff\1\153\1\143\1\154\1\145\1\141\1\145\1\146\1\uffff\1\44\1\145\1\141\1\163\1\144\1\141\1\157\1\164\1\uffff\2\164\1\145\1\143\2\145\1\uffff\1\44\1\154\6\uffff\1\156\1\uffff\1\44\1\145\1\143\1\141\2\44\1\145\1\44\1\145\1\157\1\165\2\157\1\151\1\141\1\150\1\145\1\143\1\165\2\164\1\uffff\1\115\1\154\1\145\1\154\1\124\1\162\1\141\1\151\1\143\1\162\1\150\1\156\1\44\1\uffff\1\44\1\143\1\uffff\1\44\1\150\1\164\2\uffff\1\44\1\uffff\1\157\1\167\3\162\1\146\1\147\1\145\1\44\1\164\1\154\2\145\1\141\1\154\1\44\1\145\1\162\1\164\1\156\1\143\1\150\2\44\1\144\2\uffff\1\150\1\uffff\1\44\1\145\1\uffff\1\146\1\44\1\156\2\164\1\171\1\145\1\162\1\uffff\1\157\1\164\1\123\1\162\1\163\1\171\1\uffff\1\162\1\141\1\44\1\143\2\44\1\uffff\1\157\1\uffff\1\151\1\163\1\44\1\uffff\1\123\1\44\1\uffff\3\44\1\123\2\44\1\162\1\44\1\151\1\44\1\153\2\44\1\156\1\uffff\1\145\2\uffff\1\156\1\157\1\44\1\uffff\1\151\4\uffff\1\151\2\uffff\1\171\1\uffff\1\147\1\157\1\162\1\145\1\uffff\1\44\2\uffff\1\163\1\157\1\151\1\156\1\uffff\2\147\1\44\1\156\1\144\1\145\1\154\1\uffff\2\146\1\172\1\44\2\156\1\uffff\1\141\1\151\1\141\2\145\1\44\1\145\1\uffff\2\141\1\154\1\146\2\164\1\162\1\uffff\1\144\2\154\1\163\1\171\2\145\2\44\2\163\4\44\2\uffff\2\44\6\uffff";
     static final String DFA21_maxS =
-        "\1\uffff\1\141\2\uffff\1\150\2\157\1\141\1\156\1\171\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\163\1\72\1\162\1\141\1\171\1\145\1\157\1\170\1\154\1\172\5\uffff\1\143\3\uffff\1\164\1\151\1\162\1\154\1\172\1\162\1\154\2\156\1\160\1\163\1\172\1\141\1\151\1\160\1\156\1\157\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\172\1\154\2\uffff\1\164\1\145\1\162\1\171\1\160\1\162\1\164\1\144\1\uffff\1\154\4\uffff\1\153\1\143\1\154\1\145\1\141\1\145\1\146\1\145\1\uffff\1\172\1\163\1\141\1\144\1\157\1\164\1\uffff\2\164\1\145\1\143\1\167\2\145\1\uffff\1\172\1\154\7\uffff\1\172\1\145\1\143\1\141\2\172\1\145\1\172\1\145\1\157\1\165\1\151\1\141\1\150\1\145\1\143\1\165\2\164\1\146\1\uffff\1\145\2\154\1\162\1\141\1\151\1\143\1\162\1\150\1\172\1\156\1\172\1\uffff\1\172\1\uffff\1\172\1\150\1\164\2\uffff\1\172\1\uffff\1\157\1\167\1\162\1\146\1\147\1\145\1\172\1\164\1\154\2\145\1\157\1\172\1\154\1\145\1\164\1\156\1\143\1\150\1\172\1\162\1\156\1\uffff\1\163\3\uffff\1\172\1\145\1\uffff\1\146\1\172\1\156\1\171\1\145\1\162\1\uffff\1\157\1\164\1\123\2\162\1\uffff\1\171\1\162\1\172\1\143\2\172\1\uffff\1\157\1\115\1\151\1\163\1\uffff\1\123\1\172\1\uffff\1\172\1\123\2\172\1\162\1\172\1\151\1\172\1\145\1\172\1\117\1\uffff\1\145\2\uffff\1\156\1\162\1\145\2\157\1\172\1\151\2\uffff\1\151\2\uffff\1\171\1\uffff\1\147\1\162\1\145\1\157\1\uffff\1\172\1\uffff\1\156\1\157\1\151\1\145\1\154\1\144\1\156\1\uffff\2\147\1\172\1\156\1\145\1\154\1\144\1\162\1\157\1\145\1\uffff\1\172\1\146\1\172\1\141\1\145\1\151\1\172\2\156\1\uffff\2\141\1\145\1\151\1\145\1\144\1\154\1\uffff\1\172\1\145\2\164\1\146\1\uffff\2\141\1\154\2\164\1\146\1\141\1\151\1\145\1\uffff\1\144\2\145\1\171\2\154\1\163\2\145\1\171\1\164\1\146\1\164\4\172\2\163\4\172\1\145\1\171\1\145\4\uffff\2\172\4\uffff\3\172\5\uffff";
+        "\1\uffff\1\141\2\uffff\1\150\2\157\2\141\1\156\1\171\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\163\1\72\1\162\1\141\1\171\1\145\1\155\1\170\1\157\1\170\1\154\1\172\5\uffff\1\143\3\uffff\1\164\1\151\1\162\1\154\1\172\1\162\1\156\1\154\1\156\1\164\1\160\1\163\1\172\1\141\1\151\1\160\1\156\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\172\1\154\2\uffff\1\164\1\145\1\162\1\171\1\160\1\162\1\164\2\160\1\144\1\uffff\1\154\4\uffff\1\153\1\143\1\154\1\145\1\141\1\145\1\146\1\uffff\1\172\1\145\1\141\1\163\1\144\1\141\1\157\1\164\1\uffff\2\164\1\145\1\143\2\145\1\uffff\1\172\1\154\6\uffff\1\156\1\uffff\1\172\1\145\1\143\1\141\2\172\1\145\1\172\1\145\1\157\1\165\2\157\1\151\1\141\1\150\1\145\1\143\1\165\2\164\1\uffff\1\115\1\154\1\145\1\154\1\124\1\162\1\141\1\151\1\143\1\162\1\150\1\156\1\172\1\uffff\1\172\1\143\1\uffff\1\172\1\150\1\164\2\uffff\1\172\1\uffff\1\157\1\167\3\162\1\146\1\147\1\145\1\172\1\164\1\154\2\145\1\141\1\154\1\172\1\145\1\162\1\164\1\156\1\143\1\150\2\172\1\163\2\uffff\1\150\1\uffff\1\172\1\145\1\uffff\1\146\1\172\1\156\2\164\1\171\1\145\1\162\1\uffff\1\157\1\164\1\123\1\162\1\163\1\171\1\uffff\1\162\1\141\1\172\1\143\2\172\1\uffff\1\157\1\uffff\1\151\1\163\1\172\1\uffff\1\123\1\172\1\uffff\3\172\1\123\2\172\1\162\1\172\1\151\1\172\1\153\2\172\1\156\1\uffff\1\145\2\uffff\1\156\1\157\1\172\1\uffff\1\151\4\uffff\1\151\2\uffff\1\171\1\uffff\1\147\1\157\1\162\1\145\1\uffff\1\172\2\uffff\1\163\1\157\1\151\1\156\1\uffff\2\147\1\172\1\156\1\144\1\145\1\154\1\uffff\2\146\2\172\2\156\1\uffff\1\141\1\151\1\141\2\145\1\172\1\145\1\uffff\2\141\1\154\1\146\2\164\1\162\1\uffff\1\144\2\154\1\163\1\171\2\145\2\172\2\163\4\172\2\uffff\2\172\6\uffff";
     static final String DFA21_acceptS =
-        "\2\uffff\1\2\1\3\11\uffff\1\15\1\16\1\17\1\20\1\21\1\uffff\1\23\1\24\1\25\25\uffff\1\144\2\145\1\150\1\151\1\uffff\1\144\1\2\1\3\23\uffff\1\30\1\55\1\13\3\uffff\1\15\1\16\1\17\1\20\1\21\1\uffff\1\50\1\22\1\23\1\24\1\25\1\26\1\62\1\53\1\27\1\45\1\63\1\54\1\31\1\146\1\147\1\56\1\32\1\57\1\51\1\33\1\35\1\34\1\36\1\67\1\37\1\120\1\uffff\1\60\1\uffff\1\64\1\52\1\66\1\117\2\uffff\1\65\1\73\10\uffff\1\141\1\uffff\1\142\1\143\1\145\1\150\10\uffff\1\77\6\uffff\1\70\7\uffff\1\14\2\uffff\1\42\1\40\1\43\1\41\1\46\1\47\1\61\24\uffff\1\6\14\uffff\1\104\1\uffff\1\121\3\uffff\1\100\1\101\1\uffff\1\113\26\uffff\1\125\1\uffff\1\71\1\107\1\75\2\uffff\1\106\6\uffff\1\76\5\uffff\1\105\6\uffff\1\103\4\uffff\1\116\2\uffff\1\111\13\uffff\1\10\1\uffff\1\11\1\72\7\uffff\1\110\1\112\1\uffff\1\1\1\4\1\uffff\1\74\4\uffff\1\131\1\uffff\1\114\7\uffff\1\102\12\uffff\1\135\11\uffff\1\5\7\uffff\1\7\5\uffff\1\12\11\uffff\1\44\32\uffff\1\115\1\126\1\127\1\130\2\uffff\1\124\1\132\1\133\1\134\3\uffff\1\122\1\123\1\136\1\137\1\140";
+        "\2\uffff\1\2\1\3\12\uffff\1\17\1\20\1\21\1\22\1\23\1\uffff\1\25\1\26\1\27\27\uffff\1\142\2\143\1\146\1\147\1\uffff\1\142\1\2\1\3\23\uffff\1\32\1\57\1\15\3\uffff\1\17\1\20\1\21\1\22\1\23\1\uffff\1\52\1\24\1\25\1\26\1\27\1\30\1\64\1\55\1\31\1\47\1\65\1\56\1\33\1\144\1\145\1\60\1\34\1\61\1\53\1\35\1\37\1\36\1\40\1\71\1\41\1\122\1\uffff\1\62\1\uffff\1\66\1\54\1\70\1\121\2\uffff\1\67\1\75\12\uffff\1\137\1\uffff\1\140\1\141\1\143\1\146\7\uffff\1\101\10\uffff\1\72\6\uffff\1\16\2\uffff\1\44\1\42\1\45\1\43\1\50\1\51\1\uffff\1\63\25\uffff\1\6\15\uffff\1\106\2\uffff\1\125\3\uffff\1\102\1\103\1\uffff\1\115\31\uffff\1\73\1\111\1\uffff\1\77\2\uffff\1\110\10\uffff\1\100\6\uffff\1\107\6\uffff\1\105\1\uffff\1\135\3\uffff\1\120\2\uffff\1\113\16\uffff\1\12\1\uffff\1\13\1\74\3\uffff\1\136\1\uffff\1\112\1\114\1\123\1\124\1\uffff\1\1\1\4\1\uffff\1\76\4\uffff\1\131\1\uffff\1\116\1\7\4\uffff\1\104\7\uffff\1\10\6\uffff\1\5\7\uffff\1\14\7\uffff\1\46\17\uffff\1\11\1\117\2\uffff\1\130\1\132\1\133\1\134\1\126\1\127";
     static final String DFA21_specialS =
-        "\1\0\u0190\uffff}>";
+        "\1\0\u017f\uffff}>";
     static final String[] DFA21_transitionS = {
-            "\11\57\2\56\2\57\1\56\22\57\1\56\1\36\1\54\1\23\1\53\1\31\1\35\1\55\1\17\1\21\1\13\1\26\1\20\1\27\1\37\1\30\1\50\11\51\1\42\1\15\1\32\1\22\1\33\1\40\1\16\32\53\1\24\1\57\1\25\1\52\1\53\1\57\1\41\1\53\1\43\1\5\1\12\1\6\1\53\1\7\1\10\3\53\1\47\1\14\1\53\1\1\1\53\1\46\1\11\1\45\1\53\1\44\1\4\3\53\1\2\1\34\1\3\uff82\57",
-            "\1\60",
+            "\11\62\2\61\2\62\1\61\22\62\1\61\1\37\1\57\1\24\1\56\1\32\1\36\1\60\1\20\1\22\1\14\1\27\1\21\1\30\1\40\1\31\1\53\11\54\1\43\1\16\1\33\1\23\1\34\1\41\1\17\3\56\1\10\1\51\3\56\1\50\21\56\1\25\1\62\1\26\1\55\1\56\1\62\1\42\1\56\1\44\1\5\1\13\1\6\1\56\1\7\1\11\3\56\1\52\1\15\1\56\1\1\1\56\1\47\1\12\1\46\1\56\1\45\1\4\3\56\1\2\1\35\1\3\uff82\62",
+            "\1\63",
             "",
             "",
-            "\1\64\6\uffff\1\65",
-            "\1\67\3\uffff\1\66\5\uffff\1\70",
-            "\1\72\7\uffff\1\73\5\uffff\1\71",
-            "\1\74",
-            "\1\77\6\uffff\1\75\1\76",
-            "\1\104\13\uffff\1\100\1\102\1\uffff\1\101\1\uffff\1\103",
-            "\1\106\13\uffff\1\105",
-            "\1\110\22\uffff\1\107",
-            "\1\113\15\uffff\1\112\1\uffff\1\114",
+            "\1\67\6\uffff\1\70",
+            "\1\72\3\uffff\1\71\5\uffff\1\73",
+            "\1\76\7\uffff\1\75\5\uffff\1\74",
+            "\1\77",
+            "\1\100",
+            "\1\103\6\uffff\1\101\1\102",
+            "\1\104\1\106\1\uffff\1\105\1\uffff\1\107",
+            "\1\111\13\uffff\1\110",
+            "\1\113\22\uffff\1\112",
+            "\1\116\15\uffff\1\115\1\uffff\1\117",
             "",
             "",
             "",
             "",
             "",
-            "\1\122\1\123",
+            "\1\125\1\126",
             "",
             "",
             "",
-            "\1\131\21\uffff\1\130",
-            "\1\135\17\uffff\1\133\1\134",
-            "\1\140\4\uffff\1\141\15\uffff\1\137",
-            "\1\143",
-            "\1\145",
-            "\1\147",
-            "\1\151",
-            "\1\153",
-            "\1\155",
-            "\1\157",
-            "\1\162\13\uffff\1\161",
-            "\1\165\6\uffff\1\164",
-            "\1\166",
-            "\1\170\20\uffff\1\171",
-            "\1\172",
-            "\1\175\11\uffff\1\173\6\uffff\1\174",
-            "\1\176",
-            "\1\177",
-            "\12\u0081\10\uffff\1\u0083\1\uffff\3\u0083\5\uffff\1\u0083\13\uffff\1\u0080\6\uffff\1\u0081\2\uffff\1\u0083\1\uffff\3\u0083\5\uffff\1\u0083\13\uffff\1\u0080",
-            "\12\u0081\10\uffff\1\u0083\1\uffff\3\u0083\5\uffff\1\u0083\22\uffff\1\u0081\2\uffff\1\u0083\1\uffff\3\u0083\5\uffff\1\u0083",
-            "\1\61\34\uffff\32\61\4\uffff\1\61\1\uffff\32\61",
+            "\1\134\21\uffff\1\133",
+            "\1\140\17\uffff\1\136\1\137",
+            "\1\143\4\uffff\1\144\15\uffff\1\142",
+            "\1\146",
+            "\1\150",
+            "\1\152",
+            "\1\154",
+            "\1\156",
+            "\1\160",
+            "\1\162",
+            "\1\165\13\uffff\1\164",
+            "\1\170\6\uffff\1\167",
+            "\1\171",
+            "\1\173\20\uffff\1\174",
+            "\1\175",
+            "\1\u0080\11\uffff\1\176\6\uffff\1\177",
+            "\1\u0081",
+            "\1\u0082",
+            "\1\u0083",
+            "\1\u0084",
+            "\12\u0086\10\uffff\1\u0088\1\uffff\3\u0088\5\uffff\1\u0088\13\uffff\1\u0085\6\uffff\1\u0086\2\uffff\1\u0088\1\uffff\3\u0088\5\uffff\1\u0088\13\uffff\1\u0085",
+            "\12\u0086\10\uffff\1\u0088\1\uffff\3\u0088\5\uffff\1\u0088\22\uffff\1\u0086\2\uffff\1\u0088\1\uffff\3\u0088\5\uffff\1\u0088",
+            "\1\64\34\uffff\32\64\4\uffff\1\64\1\uffff\32\64",
             "",
             "",
             "",
             "",
             "",
-            "\1\u0086",
+            "\1\u008b",
             "",
             "",
             "",
-            "\1\u0087",
-            "\1\u0088",
-            "\1\u0089",
-            "\1\u008a\5\uffff\1\u008b",
-            "\1\61\13\uffff\12\61\7\uffff\1\u008c\1\u008d\30\61\4\uffff\1\61\1\uffff\32\61",
-            "\1\u008f",
-            "\1\u0090",
-            "\1\u0091",
-            "\1\u0092",
+            "\1\u008c",
+            "\1\u008d",
+            "\1\u008e",
+            "\1\u008f\5\uffff\1\u0090",
+            "\1\64\13\uffff\12\64\7\uffff\1\u0091\31\64\4\uffff\1\64\1\uffff\32\64",
             "\1\u0093",
-            "\1\u0094",
-            "\1\61\13\uffff\12\61\7\uffff\32\61\4\uffff\1\61\1\uffff\32\61",
+            "\1\u0094\1\uffff\1\u0095",
             "\1\u0096",
             "\1\u0097",
             "\1\u0098",
             "\1\u0099",
             "\1\u009a",
-            "\1\u009b",
+            "\1\64\13\uffff\12\64\7\uffff\32\64\4\uffff\1\64\1\uffff\32\64",
             "\1\u009c",
-            "",
-            "",
-            "",
-            "\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\64\13\uffff\12\64\7\uffff\32\64\4\uffff\1\64\1\uffff\32\64",
+            "\1\u00a3",
             "\1\u00a4",
             "",
             "",
             "",
             "",
-            "\1\61\13\uffff\12\61\7\uffff\32\61\4\uffff\1\61\1\uffff\32\61",
+            "",
+            "\1\u00a5",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
             "\1\u00a7",
             "",
+            "\1\u00a9",
             "",
-            "\1\u00a8\1\u00a9",
-            "\1\u00aa",
-            "\1\u00ac\5\uffff\1\u00ab",
-            "\1\u00ad\3\uffff\1\u00ae",
-            "\1\u00af",
+            "",
+            "",
+            "",
+            "\1\64\13\uffff\12\64\7\uffff\32\64\4\uffff\1\64\1\uffff\30\64\1\u00ab\1\64",
+            "\1\u00ad",
+            "",
+            "",
+            "\1\u00ae\1\u00af",
             "\1\u00b0",
-            "\1\u00b1",
-            "\1\u00b2",
-            "",
-            "\12\u0081\10\uffff\1\u0083\1\uffff\3\u0083\5\uffff\1\u0083\22\uffff\1\u0081\2\uffff\1\u0083\1\uffff\3\u0083\5\uffff\1\u0083",
-            "",
-            "",
-            "",
-            "",
-            "\1\u00b3",
-            "\1\u00b4",
+            "\1\u00b2\5\uffff\1\u00b1",
+            "\1\u00b3\3\uffff\1\u00b4",
             "\1\u00b5",
             "\1\u00b6",
             "\1\u00b7",
@@ -3869,51 +3802,56 @@
             "\1\u00b9",
             "\1\u00ba",
             "",
-            "\1\61\13\uffff\12\61\7\uffff\32\61\4\uffff\1\61\1\uffff\32\61",
+            "\12\u0086\10\uffff\1\u0088\1\uffff\3\u0088\5\uffff\1\u0088\22\uffff\1\u0086\2\uffff\1\u0088\1\uffff\3\u0088\5\uffff\1\u0088",
+            "",
+            "",
+            "",
+            "",
+            "\1\u00bb",
             "\1\u00bc",
             "\1\u00bd",
             "\1\u00be",
             "\1\u00bf",
             "\1\u00c0",
-            "",
             "\1\u00c1",
-            "\1\u00c2",
+            "",
+            "\1\64\13\uffff\12\64\7\uffff\32\64\4\uffff\1\64\1\uffff\32\64",
             "\1\u00c3",
             "\1\u00c4",
             "\1\u00c5",
             "\1\u00c6",
             "\1\u00c7",
-            "",
-            "\1\61\13\uffff\12\61\7\uffff\32\61\4\uffff\1\61\1\uffff\32\61",
+            "\1\u00c8",
             "\1\u00c9",
             "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "\1\61\13\uffff\12\61\7\uffff\32\61\4\uffff\1\61\1\uffff\32\61",
+            "\1\u00ca",
             "\1\u00cb",
             "\1\u00cc",
             "\1\u00cd",
-            "\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\u00d0",
-            "\1\61\13\uffff\12\61\7\uffff\32\61\4\uffff\1\61\1\uffff\32\61",
+            "\1\u00ce",
+            "\1\u00cf",
+            "",
+            "\1\64\13\uffff\12\64\7\uffff\32\64\4\uffff\1\64\1\uffff\32\64",
+            "\1\u00d1",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
             "\1\u00d2",
-            "\1\u00d3",
+            "",
+            "\1\64\13\uffff\12\64\7\uffff\32\64\4\uffff\1\64\1\uffff\32\64",
             "\1\u00d4",
             "\1\u00d5",
             "\1\u00d6",
-            "\1\u00d7",
-            "\1\u00d8",
+            "\1\64\13\uffff\12\64\7\uffff\32\64\4\uffff\1\64\1\uffff\32\64",
+            "\1\64\13\uffff\12\64\7\uffff\32\64\4\uffff\1\64\1\uffff\32\64",
             "\1\u00d9",
-            "\1\u00da",
+            "\1\64\13\uffff\12\64\7\uffff\32\64\4\uffff\1\64\1\uffff\32\64",
             "\1\u00db",
             "\1\u00dc",
             "\1\u00dd",
-            "",
             "\1\u00de",
             "\1\u00df",
             "\1\u00e0",
@@ -3923,206 +3861,193 @@
             "\1\u00e4",
             "\1\u00e5",
             "\1\u00e6",
-            "\1\61\13\uffff\12\61\7\uffff\16\61\1\u00e7\13\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\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\u00ea",
+            "\1\u00eb",
+            "\1\u00ec",
             "\1\u00ed",
             "\1\u00ee",
-            "",
-            "",
-            "\1\61\13\uffff\12\61\7\uffff\32\61\4\uffff\1\61\1\uffff\32\61",
-            "",
+            "\1\u00ef",
             "\1\u00f0",
             "\1\u00f1",
             "\1\u00f2",
             "\1\u00f3",
-            "\1\u00f4",
-            "\1\u00f5",
-            "\1\61\13\uffff\12\61\7\uffff\32\61\4\uffff\1\61\1\uffff\32\61",
-            "\1\u00f7",
+            "\1\64\13\uffff\12\64\7\uffff\32\64\4\uffff\1\64\1\uffff\32\64",
+            "",
+            "\1\64\13\uffff\12\64\7\uffff\32\64\4\uffff\1\64\1\uffff\32\64",
+            "\1\u00f6",
+            "",
+            "\1\64\13\uffff\12\64\7\uffff\32\64\4\uffff\1\64\1\uffff\32\64",
             "\1\u00f8",
             "\1\u00f9",
-            "\1\u00fa",
+            "",
+            "",
+            "\1\64\13\uffff\12\64\7\uffff\32\64\4\uffff\1\64\1\uffff\32\64",
+            "",
             "\1\u00fb",
-            "\1\61\13\uffff\12\61\7\uffff\32\61\4\uffff\1\61\1\uffff\32\61",
+            "\1\u00fc",
             "\1\u00fd",
             "\1\u00fe",
             "\1\u00ff",
             "\1\u0100",
             "\1\u0101",
             "\1\u0102",
-            "\1\61\13\uffff\12\61\7\uffff\32\61\4\uffff\1\61\1\uffff\32\61",
+            "\1\64\13\uffff\12\64\7\uffff\32\64\4\uffff\1\64\1\uffff\32\64",
             "\1\u0104",
             "\1\u0105",
-            "",
-            "\1\u0107\16\uffff\1\u0106",
-            "",
-            "",
-            "",
-            "\1\61\13\uffff\12\61\7\uffff\32\61\4\uffff\1\61\1\uffff\32\61",
+            "\1\u0106",
+            "\1\u0107",
+            "\1\u0108",
             "\1\u0109",
-            "",
-            "\1\u010a",
-            "\1\61\13\uffff\12\61\7\uffff\32\61\4\uffff\1\61\1\uffff\32\61",
+            "\1\64\13\uffff\12\64\7\uffff\32\64\4\uffff\1\64\1\uffff\32\64",
+            "\1\u010b",
             "\1\u010c",
             "\1\u010d",
             "\1\u010e",
             "\1\u010f",
-            "",
             "\1\u0110",
-            "\1\u0111",
-            "\1\u0112",
-            "\1\u0113",
-            "\1\u0114",
+            "\1\64\13\uffff\12\64\7\uffff\32\64\4\uffff\1\64\1\uffff\32\64",
+            "\1\64\13\uffff\12\64\7\uffff\32\64\4\uffff\1\64\1\uffff\21\64\1\u0112\10\64",
+            "\1\u0115\16\uffff\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\u0118",
-            "\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\64\13\uffff\12\64\7\uffff\32\64\4\uffff\1\64\1\uffff\32\64",
+            "\1\u0118",
+            "",
+            "\1\u0119",
+            "\1\64\13\uffff\12\64\7\uffff\32\64\4\uffff\1\64\1\uffff\32\64",
             "\1\u011b",
-            "\1\u011c\1\u011d\10\uffff\1\u011e",
+            "\1\u011c",
+            "\1\u011d",
+            "\1\u011e",
             "\1\u011f",
             "\1\u0120",
             "",
             "\1\u0121",
-            "\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\u0122",
+            "\1\u0123",
             "\1\u0124",
-            "\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\u0125",
+            "\1\u0126",
+            "",
             "\1\u0127",
-            "\1\61\13\uffff\12\61\7\uffff\32\61\4\uffff\1\61\1\uffff\32\61",
-            "\1\u0129",
-            "\1\61\13\uffff\12\61\7\uffff\2\61\1\u012a\1\u012b\10\61\1\u012c\15\61\4\uffff\1\61\1\uffff\32\61",
+            "\1\u0128",
+            "\1\64\13\uffff\12\64\7\uffff\32\64\4\uffff\1\64\1\uffff\32\64",
+            "\1\u012a",
+            "\1\64\13\uffff\12\64\7\uffff\32\64\4\uffff\1\64\1\uffff\32\64",
+            "\1\64\13\uffff\12\64\7\uffff\32\64\4\uffff\1\64\1\uffff\32\64",
+            "",
+            "\1\u012d",
+            "",
             "\1\u012e",
-            "\1\61\13\uffff\12\61\7\uffff\32\61\4\uffff\1\61\1\uffff\32\61",
-            "\1\u0130",
+            "\1\u012f",
+            "\1\64\13\uffff\12\64\7\uffff\32\64\4\uffff\1\64\1\uffff\32\64",
             "",
             "\1\u0131",
+            "\1\64\13\uffff\12\64\7\uffff\32\64\4\uffff\1\64\1\uffff\32\64",
             "",
-            "",
-            "\1\u0132",
-            "\1\u0133",
-            "\1\u0134",
-            "\1\u0135",
+            "\1\64\13\uffff\12\64\7\uffff\32\64\4\uffff\1\64\1\uffff\32\64",
+            "\1\64\13\uffff\12\64\7\uffff\32\64\4\uffff\1\64\1\uffff\32\64",
+            "\1\64\13\uffff\12\64\7\uffff\32\64\4\uffff\1\64\1\uffff\32\64",
             "\1\u0136",
-            "\1\61\13\uffff\12\61\7\uffff\32\61\4\uffff\1\61\1\uffff\32\61",
-            "\1\u0138",
-            "",
-            "",
+            "\1\64\13\uffff\12\64\7\uffff\32\64\4\uffff\1\64\1\uffff\32\64",
+            "\1\64\13\uffff\12\64\7\uffff\32\64\4\uffff\1\64\1\uffff\32\64",
             "\1\u0139",
-            "",
-            "",
-            "\1\u013a",
-            "",
+            "\1\64\13\uffff\12\64\7\uffff\32\64\4\uffff\1\64\1\uffff\32\64",
             "\1\u013b",
-            "\1\u013c",
-            "\1\u013d",
-            "\1\u013e",
-            "",
-            "\1\61\13\uffff\12\61\7\uffff\2\61\1\u013f\11\61\1\u0140\15\61\4\uffff\1\61\1\uffff\3\61\1\u0141\26\61",
-            "",
+            "\1\64\13\uffff\12\64\7\uffff\2\64\1\u013d\1\u013e\10\64\1\u013c\15\64\4\uffff\1\64\1\uffff\32\64",
+            "\1\u0140",
+            "\1\64\13\uffff\12\64\7\uffff\32\64\4\uffff\1\64\1\uffff\32\64",
+            "\1\64\13\uffff\12\64\7\uffff\32\64\4\uffff\1\64\1\uffff\32\64",
             "\1\u0143",
+            "",
             "\1\u0144",
+            "",
+            "",
             "\1\u0145",
             "\1\u0146",
-            "\1\u0147",
+            "\1\64\13\uffff\12\64\7\uffff\32\64\4\uffff\1\64\1\uffff\32\64",
+            "",
             "\1\u0148",
+            "",
+            "",
+            "",
+            "",
             "\1\u0149",
             "",
+            "",
             "\1\u014a",
+            "",
             "\1\u014b",
-            "\1\61\13\uffff\12\61\7\uffff\32\61\4\uffff\1\61\1\uffff\32\61",
+            "\1\u014c",
             "\1\u014d",
             "\1\u014e",
-            "\1\u014f",
+            "",
+            "\1\64\13\uffff\12\64\7\uffff\32\64\4\uffff\1\64\1\uffff\32\64",
+            "",
+            "",
             "\1\u0150",
             "\1\u0151",
             "\1\u0152",
             "\1\u0153",
             "",
-            "\1\61\13\uffff\12\61\7\uffff\32\61\4\uffff\1\61\1\uffff\32\61",
+            "\1\u0154",
             "\1\u0155",
-            "\1\u0156",
+            "\1\64\13\uffff\12\64\7\uffff\32\64\4\uffff\1\64\1\uffff\32\64",
             "\1\u0157",
             "\1\u0158",
             "\1\u0159",
-            "\1\61\13\uffff\12\61\7\uffff\32\61\4\uffff\1\61\1\uffff\32\61",
+            "\1\u015a",
+            "",
             "\1\u015b",
             "\1\u015c",
-            "",
             "\1\u015d",
-            "\1\u015e",
+            "\1\64\13\uffff\12\64\7\uffff\32\64\4\uffff\1\64\1\uffff\32\64",
             "\1\u015f",
             "\1\u0160",
+            "",
             "\1\u0161",
             "\1\u0162",
             "\1\u0163",
-            "",
-            "\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\64\13\uffff\12\64\7\uffff\32\64\4\uffff\1\64\1\uffff\32\64",
             "\1\u0167",
-            "\1\u0168",
             "",
+            "\1\u0168",
             "\1\u0169",
             "\1\u016a",
             "\1\u016b",
             "\1\u016c",
             "\1\u016d",
             "\1\u016e",
+            "",
             "\1\u016f",
             "\1\u0170",
             "\1\u0171",
-            "",
             "\1\u0172",
             "\1\u0173",
             "\1\u0174",
             "\1\u0175",
-            "\1\u0176",
-            "\1\u0177",
+            "\1\64\13\uffff\12\64\7\uffff\32\64\4\uffff\1\64\1\uffff\32\64",
+            "\1\64\13\uffff\12\64\7\uffff\32\64\4\uffff\1\64\1\uffff\32\64",
             "\1\u0178",
             "\1\u0179",
-            "\1\u017a",
-            "\1\u017b",
-            "\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\61\13\uffff\12\61\7\uffff\32\61\4\uffff\1\61\1\uffff\32\61",
-            "\1\u0183",
-            "\1\u0184",
-            "\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\61\13\uffff\12\61\7\uffff\32\61\4\uffff\1\61\1\uffff\32\61",
-            "\1\u0189",
-            "\1\u018a",
-            "\1\u018b",
+            "\1\64\13\uffff\12\64\7\uffff\32\64\4\uffff\1\64\1\uffff\32\64",
+            "\1\64\13\uffff\12\64\7\uffff\32\64\4\uffff\1\64\1\uffff\32\64",
+            "\1\64\13\uffff\12\64\7\uffff\32\64\4\uffff\1\64\1\uffff\32\64",
+            "\1\64\13\uffff\12\64\7\uffff\32\64\4\uffff\1\64\1\uffff\32\64",
             "",
             "",
+            "\1\64\13\uffff\12\64\7\uffff\32\64\4\uffff\1\64\1\uffff\32\64",
+            "\1\64\13\uffff\12\64\7\uffff\32\64\4\uffff\1\64\1\uffff\32\64",
             "",
             "",
-            "\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\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",
-            "",
             "",
             "",
             "",
@@ -4159,7 +4084,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 | 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 | 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;
@@ -4183,85 +4108,91 @@
 
                         else if ( (LA21_0=='h') ) {s = 7;}
 
-                        else if ( (LA21_0=='i') ) {s = 8;}
+                        else if ( (LA21_0=='D') ) {s = 8;}
 
-                        else if ( (LA21_0=='s') ) {s = 9;}
+                        else if ( (LA21_0=='i') ) {s = 9;}
 
-                        else if ( (LA21_0=='e') ) {s = 10;}
+                        else if ( (LA21_0=='s') ) {s = 10;}
 
-                        else if ( (LA21_0=='*') ) {s = 11;}
+                        else if ( (LA21_0=='e') ) {s = 11;}
 
-                        else if ( (LA21_0=='n') ) {s = 12;}
+                        else if ( (LA21_0=='*') ) {s = 12;}
 
-                        else if ( (LA21_0==';') ) {s = 13;}
+                        else if ( (LA21_0=='n') ) {s = 13;}
 
-                        else if ( (LA21_0=='@') ) {s = 14;}
+                        else if ( (LA21_0==';') ) {s = 14;}
 
-                        else if ( (LA21_0=='(') ) {s = 15;}
+                        else if ( (LA21_0=='@') ) {s = 15;}
 
-                        else if ( (LA21_0==',') ) {s = 16;}
+                        else if ( (LA21_0=='(') ) {s = 16;}
 
-                        else if ( (LA21_0==')') ) {s = 17;}
+                        else if ( (LA21_0==',') ) {s = 17;}
 
-                        else if ( (LA21_0=='=') ) {s = 18;}
+                        else if ( (LA21_0==')') ) {s = 18;}
 
-                        else if ( (LA21_0=='#') ) {s = 19;}
+                        else if ( (LA21_0=='=') ) {s = 19;}
 
-                        else if ( (LA21_0=='[') ) {s = 20;}
+                        else if ( (LA21_0=='#') ) {s = 20;}
 
-                        else if ( (LA21_0==']') ) {s = 21;}
+                        else if ( (LA21_0=='[') ) {s = 21;}
 
-                        else if ( (LA21_0=='+') ) {s = 22;}
+                        else if ( (LA21_0==']') ) {s = 22;}
 
-                        else if ( (LA21_0=='-') ) {s = 23;}
+                        else if ( (LA21_0=='+') ) {s = 23;}
 
-                        else if ( (LA21_0=='/') ) {s = 24;}
+                        else if ( (LA21_0=='-') ) {s = 24;}
 
-                        else if ( (LA21_0=='%') ) {s = 25;}
+                        else if ( (LA21_0=='/') ) {s = 25;}
 
-                        else if ( (LA21_0=='<') ) {s = 26;}
+                        else if ( (LA21_0=='%') ) {s = 26;}
 
-                        else if ( (LA21_0=='>') ) {s = 27;}
+                        else if ( (LA21_0=='<') ) {s = 27;}
 
-                        else if ( (LA21_0=='|') ) {s = 28;}
+                        else if ( (LA21_0=='>') ) {s = 28;}
 
-                        else if ( (LA21_0=='&') ) {s = 29;}
+                        else if ( (LA21_0=='|') ) {s = 29;}
 
-                        else if ( (LA21_0=='!') ) {s = 30;}
+                        else if ( (LA21_0=='&') ) {s = 30;}
 
-                        else if ( (LA21_0=='.') ) {s = 31;}
+                        else if ( (LA21_0=='!') ) {s = 31;}
 
-                        else if ( (LA21_0=='?') ) {s = 32;}
+                        else if ( (LA21_0=='.') ) {s = 32;}
 
-                        else if ( (LA21_0=='a') ) {s = 33;}
+                        else if ( (LA21_0=='?') ) {s = 33;}
 
-                        else if ( (LA21_0==':') ) {s = 34;}
+                        else if ( (LA21_0=='a') ) {s = 34;}
 
-                        else if ( (LA21_0=='c') ) {s = 35;}
+                        else if ( (LA21_0==':') ) {s = 35;}
 
-                        else if ( (LA21_0=='v') ) {s = 36;}
+                        else if ( (LA21_0=='c') ) {s = 36;}
 
-                        else if ( (LA21_0=='t') ) {s = 37;}
+                        else if ( (LA21_0=='v') ) {s = 37;}
 
-                        else if ( (LA21_0=='r') ) {s = 38;}
+                        else if ( (LA21_0=='t') ) {s = 38;}
 
-                        else if ( (LA21_0=='m') ) {s = 39;}
+                        else if ( (LA21_0=='r') ) {s = 39;}
 
-                        else if ( (LA21_0=='0') ) {s = 40;}
+                        else if ( (LA21_0=='I') ) {s = 40;}
 
-                        else if ( ((LA21_0>='1' && LA21_0<='9')) ) {s = 41;}
+                        else if ( (LA21_0=='E') ) {s = 41;}
 
-                        else if ( (LA21_0=='^') ) {s = 42;}
+                        else if ( (LA21_0=='m') ) {s = 42;}
 
-                        else if ( (LA21_0=='$'||(LA21_0>='A' && LA21_0<='Z')||LA21_0=='_'||LA21_0=='b'||LA21_0=='g'||(LA21_0>='j' && LA21_0<='l')||LA21_0=='o'||LA21_0=='q'||LA21_0=='u'||(LA21_0>='x' && LA21_0<='z')) ) {s = 43;}
+                        else if ( (LA21_0=='0') ) {s = 43;}
 
-                        else if ( (LA21_0=='\"') ) {s = 44;}
+                        else if ( ((LA21_0>='1' && LA21_0<='9')) ) {s = 44;}
 
-                        else if ( (LA21_0=='\'') ) {s = 45;}
+                        else if ( (LA21_0=='^') ) {s = 45;}
 
-                        else if ( ((LA21_0>='\t' && LA21_0<='\n')||LA21_0=='\r'||LA21_0==' ') ) {s = 46;}
+                        else if ( (LA21_0=='$'||(LA21_0>='A' && LA21_0<='C')||(LA21_0>='F' && LA21_0<='H')||(LA21_0>='J' && LA21_0<='Z')||LA21_0=='_'||LA21_0=='b'||LA21_0=='g'||(LA21_0>='j' && LA21_0<='l')||LA21_0=='o'||LA21_0=='q'||LA21_0=='u'||(LA21_0>='x' && LA21_0<='z')) ) {s = 46;}
 
-                        else if ( ((LA21_0>='\u0000' && LA21_0<='\b')||(LA21_0>='\u000B' && LA21_0<='\f')||(LA21_0>='\u000E' && LA21_0<='\u001F')||LA21_0=='\\'||LA21_0=='`'||(LA21_0>='~' && LA21_0<='\uFFFF')) ) {s = 47;}
+                        else if ( (LA21_0=='\"') ) {s = 47;}
+
+                        else if ( (LA21_0=='\'') ) {s = 48;}
+
+                        else if ( ((LA21_0>='\t' && LA21_0<='\n')||LA21_0=='\r'||LA21_0==' ') ) {s = 49;}
+
+                        else if ( ((LA21_0>='\u0000' && LA21_0<='\b')||(LA21_0>='\u000B' && LA21_0<='\f')||(LA21_0>='\u000E' && LA21_0<='\u001F')||LA21_0=='\\'||LA21_0=='`'||(LA21_0>='~' && LA21_0<='\uFFFF')) ) {s = 50;}
 
                         if ( s>=0 ) return s;
                         break;
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 8dcc027..aacce78 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
@@ -38,7 +38,7 @@
 @SuppressWarnings("all")
 public class InternalSignalDSLParser extends AbstractInternalAntlrParser {
     public static final String[] tokenNames = new String[] {
-        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_ID", "RULE_STRING", "RULE_HEX", "RULE_INT", "RULE_DECIMAL", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'package'", "'{'", "'}'", "'watcher'", "'directory'", "'for'", "'handlerOn'", "'import'", "'static'", "'extension'", "'*'", "'ns'", "';'", "'@'", "'('", "','", "')'", "'='", "'#'", "'['", "']'", "'+='", "'-='", "'*='", "'/='", "'%='", "'<'", "'>'", "'>='", "'||'", "'&&'", "'=='", "'!='", "'==='", "'!=='", "'instanceof'", "'->'", "'..<'", "'..'", "'=>'", "'<>'", "'?:'", "'+'", "'-'", "'**'", "'/'", "'%'", "'!'", "'as'", "'++'", "'--'", "'.'", "'::'", "'?.'", "'|'", "'if'", "'else'", "'switch'", "':'", "'default'", "'case'", "'while'", "'do'", "'var'", "'val'", "'extends'", "'super'", "'new'", "'false'", "'true'", "'null'", "'typeof'", "'throw'", "'return'", "'try'", "'finally'", "'synchronized'", "'catch'", "'?'", "'&'", "'all'", "'createSignals'", "'modifySignals'", "'deleteSignals'", "'show'", "'showOnCreate'", "'showOnDelete'", "'showOnModify'", "'doAfter'", "'doAfterCreate'", "'doAfterDelete'", "'doAfterModify'", "'doBefore'", "'doBeforeCreate'", "'doBeforeModify'", "'doBeforedelete'"
+        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_ID", "RULE_STRING", "RULE_HEX", "RULE_INT", "RULE_DECIMAL", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'package'", "'{'", "'}'", "'watcher'", "'directory'", "'for'", "'handler'", "'fileMask'", "'DataTransfer'", "'import'", "'static'", "'extension'", "'*'", "'ns'", "';'", "'@'", "'('", "','", "')'", "'='", "'#'", "'['", "']'", "'+='", "'-='", "'*='", "'/='", "'%='", "'<'", "'>'", "'>='", "'||'", "'&&'", "'=='", "'!='", "'==='", "'!=='", "'instanceof'", "'->'", "'..<'", "'..'", "'=>'", "'<>'", "'?:'", "'+'", "'-'", "'**'", "'/'", "'%'", "'!'", "'as'", "'++'", "'--'", "'.'", "'::'", "'?.'", "'|'", "'if'", "'else'", "'switch'", "':'", "'default'", "'case'", "'while'", "'do'", "'var'", "'val'", "'extends'", "'super'", "'new'", "'false'", "'true'", "'null'", "'typeof'", "'throw'", "'return'", "'try'", "'finally'", "'synchronized'", "'catch'", "'?'", "'&'", "'Import'", "'Export'", "'all'", "'createSignals'", "'modifySignals'", "'deleteSignals'", "'doAfter'", "'doAfterModify'", "'doAfterCreate'", "'doAfterDelete'", "'synch'", "'asynch'"
     };
     public static final int RULE_HEX=6;
     public static final int T__50=50;
@@ -135,9 +135,7 @@
     public static final int RULE_WS=11;
     public static final int RULE_ANY_OTHER=12;
     public static final int T__88=88;
-    public static final int T__108=108;
     public static final int T__89=89;
-    public static final int T__107=107;
     public static final int T__84=84;
     public static final int T__104=104;
     public static final int T__85=85;
@@ -250,7 +248,7 @@
             int alt1=2;
             int LA1_0 = input.LA(1);
 
-            if ( (LA1_0==20) ) {
+            if ( (LA1_0==22) ) {
                 alt1=1;
             }
             switch (alt1) {
@@ -410,29 +408,27 @@
 
 
     // $ANTLR start "ruleSignalPackage"
-    // InternalSignalDSL.g:142:1: ruleSignalPackage returns [EObject current=null] : ( () otherlv_1= 'package' ( (lv_name_2_0= ruleQualifiedName ) ) (otherlv_3= '{' ( (lv_watchers_4_0= ruleSignalWatcher ) )* ( (lv_handlers_5_0= ruleSignalHandler ) )* otherlv_6= '}' ) ) ;
+    // InternalSignalDSL.g:142:1: ruleSignalPackage returns [EObject current=null] : ( () otherlv_1= 'package' ( (lv_name_2_0= ruleQualifiedName ) ) (otherlv_3= '{' ( (lv_watchers_4_0= ruleSignalWatcher ) )* otherlv_5= '}' ) ) ;
     public final EObject ruleSignalPackage() throws RecognitionException {
         EObject current = null;
 
         Token otherlv_1=null;
         Token otherlv_3=null;
-        Token otherlv_6=null;
+        Token otherlv_5=null;
         AntlrDatatypeRuleToken lv_name_2_0 = null;
 
         EObject lv_watchers_4_0 = null;
 
-        EObject lv_handlers_5_0 = null;
-
 
 
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:148:2: ( ( () otherlv_1= 'package' ( (lv_name_2_0= ruleQualifiedName ) ) (otherlv_3= '{' ( (lv_watchers_4_0= ruleSignalWatcher ) )* ( (lv_handlers_5_0= ruleSignalHandler ) )* otherlv_6= '}' ) ) )
-            // InternalSignalDSL.g:149:2: ( () otherlv_1= 'package' ( (lv_name_2_0= ruleQualifiedName ) ) (otherlv_3= '{' ( (lv_watchers_4_0= ruleSignalWatcher ) )* ( (lv_handlers_5_0= ruleSignalHandler ) )* otherlv_6= '}' ) )
+            // InternalSignalDSL.g:148:2: ( ( () otherlv_1= 'package' ( (lv_name_2_0= ruleQualifiedName ) ) (otherlv_3= '{' ( (lv_watchers_4_0= ruleSignalWatcher ) )* otherlv_5= '}' ) ) )
+            // InternalSignalDSL.g:149:2: ( () otherlv_1= 'package' ( (lv_name_2_0= ruleQualifiedName ) ) (otherlv_3= '{' ( (lv_watchers_4_0= ruleSignalWatcher ) )* otherlv_5= '}' ) )
             {
-            // InternalSignalDSL.g:149:2: ( () otherlv_1= 'package' ( (lv_name_2_0= ruleQualifiedName ) ) (otherlv_3= '{' ( (lv_watchers_4_0= ruleSignalWatcher ) )* ( (lv_handlers_5_0= ruleSignalHandler ) )* otherlv_6= '}' ) )
-            // InternalSignalDSL.g:150:3: () otherlv_1= 'package' ( (lv_name_2_0= ruleQualifiedName ) ) (otherlv_3= '{' ( (lv_watchers_4_0= ruleSignalWatcher ) )* ( (lv_handlers_5_0= ruleSignalHandler ) )* otherlv_6= '}' )
+            // InternalSignalDSL.g:149:2: ( () otherlv_1= 'package' ( (lv_name_2_0= ruleQualifiedName ) ) (otherlv_3= '{' ( (lv_watchers_4_0= ruleSignalWatcher ) )* otherlv_5= '}' ) )
+            // InternalSignalDSL.g:150:3: () otherlv_1= 'package' ( (lv_name_2_0= ruleQualifiedName ) ) (otherlv_3= '{' ( (lv_watchers_4_0= ruleSignalWatcher ) )* otherlv_5= '}' )
             {
             // InternalSignalDSL.g:150:3: ()
             // InternalSignalDSL.g:151:4: 
@@ -488,8 +484,8 @@
 
             }
 
-            // InternalSignalDSL.g:180:3: (otherlv_3= '{' ( (lv_watchers_4_0= ruleSignalWatcher ) )* ( (lv_handlers_5_0= ruleSignalHandler ) )* otherlv_6= '}' )
-            // InternalSignalDSL.g:181:4: otherlv_3= '{' ( (lv_watchers_4_0= ruleSignalWatcher ) )* ( (lv_handlers_5_0= ruleSignalHandler ) )* otherlv_6= '}'
+            // InternalSignalDSL.g:180:3: (otherlv_3= '{' ( (lv_watchers_4_0= ruleSignalWatcher ) )* otherlv_5= '}' )
+            // InternalSignalDSL.g:181:4: otherlv_3= '{' ( (lv_watchers_4_0= ruleSignalWatcher ) )* otherlv_5= '}'
             {
             otherlv_3=(Token)match(input,14,FOLLOW_6); if (state.failed) return current;
             if ( state.backtracking==0 ) {
@@ -550,63 +546,10 @@
                 }
             } while (true);
 
-            // InternalSignalDSL.g:204:4: ( (lv_handlers_5_0= ruleSignalHandler ) )*
-            loop4:
-            do {
-                int alt4=2;
-                int LA4_0 = input.LA(1);
-
-                if ( (LA4_0==19) ) {
-                    alt4=1;
-                }
-
-
-                switch (alt4) {
-            	case 1 :
-            	    // InternalSignalDSL.g:205:5: (lv_handlers_5_0= ruleSignalHandler )
-            	    {
-            	    // InternalSignalDSL.g:205:5: (lv_handlers_5_0= ruleSignalHandler )
-            	    // InternalSignalDSL.g:206:6: lv_handlers_5_0= ruleSignalHandler
-            	    {
-            	    if ( state.backtracking==0 ) {
-
-            	      						newCompositeNode(grammarAccess.getSignalPackageAccess().getHandlersSignalHandlerParserRuleCall_3_2_0());
-            	      					
-            	    }
-            	    pushFollow(FOLLOW_7);
-            	    lv_handlers_5_0=ruleSignalHandler();
-
-            	    state._fsp--;
-            	    if (state.failed) return current;
-            	    if ( state.backtracking==0 ) {
-
-            	      						if (current==null) {
-            	      							current = createModelElementForParent(grammarAccess.getSignalPackageRule());
-            	      						}
-            	      						add(
-            	      							current,
-            	      							"handlers",
-            	      							lv_handlers_5_0,
-            	      							"org.eclipse.osbp.xtext.signal.SignalDSL.SignalHandler");
-            	      						afterParserOrEnumRuleCall();
-            	      					
-            	    }
-
-            	    }
-
-
-            	    }
-            	    break;
-
-            	default :
-            	    break loop4;
-                }
-            } while (true);
-
-            otherlv_6=(Token)match(input,15,FOLLOW_2); if (state.failed) return current;
+            otherlv_5=(Token)match(input,15,FOLLOW_2); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
-              				newLeafNode(otherlv_6, grammarAccess.getSignalPackageAccess().getRightCurlyBracketKeyword_3_3());
+              				newLeafNode(otherlv_5, grammarAccess.getSignalPackageAccess().getRightCurlyBracketKeyword_3_2());
               			
             }
 
@@ -637,7 +580,7 @@
 
 
     // $ANTLR start "entryRuleSignalWatcher"
-    // InternalSignalDSL.g:232:1: entryRuleSignalWatcher returns [EObject current=null] : iv_ruleSignalWatcher= ruleSignalWatcher EOF ;
+    // InternalSignalDSL.g:213:1: entryRuleSignalWatcher returns [EObject current=null] : iv_ruleSignalWatcher= ruleSignalWatcher EOF ;
     public final EObject entryRuleSignalWatcher() throws RecognitionException {
         EObject current = null;
 
@@ -645,8 +588,8 @@
 
 
         try {
-            // InternalSignalDSL.g:232:54: (iv_ruleSignalWatcher= ruleSignalWatcher EOF )
-            // InternalSignalDSL.g:233:2: iv_ruleSignalWatcher= ruleSignalWatcher EOF
+            // InternalSignalDSL.g:213:54: (iv_ruleSignalWatcher= ruleSignalWatcher EOF )
+            // InternalSignalDSL.g:214:2: iv_ruleSignalWatcher= ruleSignalWatcher EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getSignalWatcherRule()); 
@@ -677,7 +620,7 @@
 
 
     // $ANTLR start "ruleSignalWatcher"
-    // InternalSignalDSL.g:239:1: ruleSignalWatcher returns [EObject current=null] : ( () otherlv_1= 'watcher' ( (lv_name_2_0= RULE_ID ) ) otherlv_3= 'directory' ( (lv_directory_4_0= RULE_STRING ) ) otherlv_5= 'for' ( (lv_signal_6_0= ruleSignalTypeEnum ) ) ) ;
+    // InternalSignalDSL.g:220:1: ruleSignalWatcher returns [EObject current=null] : ( () otherlv_1= 'watcher' ( (lv_name_2_0= RULE_ID ) ) otherlv_3= 'directory' ( (lv_directory_4_0= RULE_STRING ) ) otherlv_5= 'for' ( (lv_signal_6_0= ruleSignalTypeEnum ) ) otherlv_7= '{' ( (lv_handlers_8_0= ruleSignalHandler ) )* otherlv_9= '}' ) ;
     public final EObject ruleSignalWatcher() throws RecognitionException {
         EObject current = null;
 
@@ -686,21 +629,25 @@
         Token otherlv_3=null;
         Token lv_directory_4_0=null;
         Token otherlv_5=null;
+        Token otherlv_7=null;
+        Token otherlv_9=null;
         Enumerator lv_signal_6_0 = null;
 
+        EObject lv_handlers_8_0 = null;
+
 
 
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:245:2: ( ( () otherlv_1= 'watcher' ( (lv_name_2_0= RULE_ID ) ) otherlv_3= 'directory' ( (lv_directory_4_0= RULE_STRING ) ) otherlv_5= 'for' ( (lv_signal_6_0= ruleSignalTypeEnum ) ) ) )
-            // InternalSignalDSL.g:246:2: ( () otherlv_1= 'watcher' ( (lv_name_2_0= RULE_ID ) ) otherlv_3= 'directory' ( (lv_directory_4_0= RULE_STRING ) ) otherlv_5= 'for' ( (lv_signal_6_0= ruleSignalTypeEnum ) ) )
+            // InternalSignalDSL.g:226:2: ( ( () otherlv_1= 'watcher' ( (lv_name_2_0= RULE_ID ) ) otherlv_3= 'directory' ( (lv_directory_4_0= RULE_STRING ) ) otherlv_5= 'for' ( (lv_signal_6_0= ruleSignalTypeEnum ) ) otherlv_7= '{' ( (lv_handlers_8_0= ruleSignalHandler ) )* otherlv_9= '}' ) )
+            // InternalSignalDSL.g:227:2: ( () otherlv_1= 'watcher' ( (lv_name_2_0= RULE_ID ) ) otherlv_3= 'directory' ( (lv_directory_4_0= RULE_STRING ) ) otherlv_5= 'for' ( (lv_signal_6_0= ruleSignalTypeEnum ) ) otherlv_7= '{' ( (lv_handlers_8_0= ruleSignalHandler ) )* otherlv_9= '}' )
             {
-            // InternalSignalDSL.g:246:2: ( () otherlv_1= 'watcher' ( (lv_name_2_0= RULE_ID ) ) otherlv_3= 'directory' ( (lv_directory_4_0= RULE_STRING ) ) otherlv_5= 'for' ( (lv_signal_6_0= ruleSignalTypeEnum ) ) )
-            // InternalSignalDSL.g:247:3: () otherlv_1= 'watcher' ( (lv_name_2_0= RULE_ID ) ) otherlv_3= 'directory' ( (lv_directory_4_0= RULE_STRING ) ) otherlv_5= 'for' ( (lv_signal_6_0= ruleSignalTypeEnum ) )
+            // InternalSignalDSL.g:227:2: ( () otherlv_1= 'watcher' ( (lv_name_2_0= RULE_ID ) ) otherlv_3= 'directory' ( (lv_directory_4_0= RULE_STRING ) ) otherlv_5= 'for' ( (lv_signal_6_0= ruleSignalTypeEnum ) ) otherlv_7= '{' ( (lv_handlers_8_0= ruleSignalHandler ) )* otherlv_9= '}' )
+            // InternalSignalDSL.g:228:3: () otherlv_1= 'watcher' ( (lv_name_2_0= RULE_ID ) ) otherlv_3= 'directory' ( (lv_directory_4_0= RULE_STRING ) ) otherlv_5= 'for' ( (lv_signal_6_0= ruleSignalTypeEnum ) ) otherlv_7= '{' ( (lv_handlers_8_0= ruleSignalHandler ) )* otherlv_9= '}'
             {
-            // InternalSignalDSL.g:247:3: ()
-            // InternalSignalDSL.g:248:4: 
+            // InternalSignalDSL.g:228:3: ()
+            // InternalSignalDSL.g:229:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -718,13 +665,13 @@
               			newLeafNode(otherlv_1, grammarAccess.getSignalWatcherAccess().getWatcherKeyword_1());
               		
             }
-            // InternalSignalDSL.g:258:3: ( (lv_name_2_0= RULE_ID ) )
-            // InternalSignalDSL.g:259:4: (lv_name_2_0= RULE_ID )
+            // InternalSignalDSL.g:239:3: ( (lv_name_2_0= RULE_ID ) )
+            // InternalSignalDSL.g:240:4: (lv_name_2_0= RULE_ID )
             {
-            // InternalSignalDSL.g:259:4: (lv_name_2_0= RULE_ID )
-            // InternalSignalDSL.g:260:5: lv_name_2_0= RULE_ID
+            // InternalSignalDSL.g:240:4: (lv_name_2_0= RULE_ID )
+            // InternalSignalDSL.g:241:5: lv_name_2_0= RULE_ID
             {
-            lv_name_2_0=(Token)match(input,RULE_ID,FOLLOW_8); if (state.failed) return current;
+            lv_name_2_0=(Token)match(input,RULE_ID,FOLLOW_7); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               					newLeafNode(lv_name_2_0, grammarAccess.getSignalWatcherAccess().getNameIDTerminalRuleCall_2_0());
@@ -748,19 +695,19 @@
 
             }
 
-            otherlv_3=(Token)match(input,17,FOLLOW_9); if (state.failed) return current;
+            otherlv_3=(Token)match(input,17,FOLLOW_8); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_3, grammarAccess.getSignalWatcherAccess().getDirectoryKeyword_3());
               		
             }
-            // InternalSignalDSL.g:280:3: ( (lv_directory_4_0= RULE_STRING ) )
-            // InternalSignalDSL.g:281:4: (lv_directory_4_0= RULE_STRING )
+            // InternalSignalDSL.g:261:3: ( (lv_directory_4_0= RULE_STRING ) )
+            // InternalSignalDSL.g:262:4: (lv_directory_4_0= RULE_STRING )
             {
-            // InternalSignalDSL.g:281:4: (lv_directory_4_0= RULE_STRING )
-            // InternalSignalDSL.g:282:5: lv_directory_4_0= RULE_STRING
+            // InternalSignalDSL.g:262:4: (lv_directory_4_0= RULE_STRING )
+            // InternalSignalDSL.g:263:5: lv_directory_4_0= RULE_STRING
             {
-            lv_directory_4_0=(Token)match(input,RULE_STRING,FOLLOW_10); if (state.failed) return current;
+            lv_directory_4_0=(Token)match(input,RULE_STRING,FOLLOW_9); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               					newLeafNode(lv_directory_4_0, grammarAccess.getSignalWatcherAccess().getDirectorySTRINGTerminalRuleCall_4_0());
@@ -784,24 +731,24 @@
 
             }
 
-            otherlv_5=(Token)match(input,18,FOLLOW_11); if (state.failed) return current;
+            otherlv_5=(Token)match(input,18,FOLLOW_10); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_5, grammarAccess.getSignalWatcherAccess().getForKeyword_5());
               		
             }
-            // InternalSignalDSL.g:302:3: ( (lv_signal_6_0= ruleSignalTypeEnum ) )
-            // InternalSignalDSL.g:303:4: (lv_signal_6_0= ruleSignalTypeEnum )
+            // InternalSignalDSL.g:283:3: ( (lv_signal_6_0= ruleSignalTypeEnum ) )
+            // InternalSignalDSL.g:284:4: (lv_signal_6_0= ruleSignalTypeEnum )
             {
-            // InternalSignalDSL.g:303:4: (lv_signal_6_0= ruleSignalTypeEnum )
-            // InternalSignalDSL.g:304:5: lv_signal_6_0= ruleSignalTypeEnum
+            // InternalSignalDSL.g:284:4: (lv_signal_6_0= ruleSignalTypeEnum )
+            // InternalSignalDSL.g:285:5: lv_signal_6_0= ruleSignalTypeEnum
             {
             if ( state.backtracking==0 ) {
 
               					newCompositeNode(grammarAccess.getSignalWatcherAccess().getSignalSignalTypeEnumEnumRuleCall_6_0());
               				
             }
-            pushFollow(FOLLOW_2);
+            pushFollow(FOLLOW_5);
             lv_signal_6_0=ruleSignalTypeEnum();
 
             state._fsp--;
@@ -825,6 +772,71 @@
 
             }
 
+            otherlv_7=(Token)match(input,14,FOLLOW_11); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(otherlv_7, grammarAccess.getSignalWatcherAccess().getLeftCurlyBracketKeyword_7());
+              		
+            }
+            // InternalSignalDSL.g:306:3: ( (lv_handlers_8_0= ruleSignalHandler ) )*
+            loop4:
+            do {
+                int alt4=2;
+                int LA4_0 = input.LA(1);
+
+                if ( (LA4_0==19) ) {
+                    alt4=1;
+                }
+
+
+                switch (alt4) {
+            	case 1 :
+            	    // InternalSignalDSL.g:307:4: (lv_handlers_8_0= ruleSignalHandler )
+            	    {
+            	    // InternalSignalDSL.g:307:4: (lv_handlers_8_0= ruleSignalHandler )
+            	    // InternalSignalDSL.g:308:5: lv_handlers_8_0= ruleSignalHandler
+            	    {
+            	    if ( state.backtracking==0 ) {
+
+            	      					newCompositeNode(grammarAccess.getSignalWatcherAccess().getHandlersSignalHandlerParserRuleCall_8_0());
+            	      				
+            	    }
+            	    pushFollow(FOLLOW_11);
+            	    lv_handlers_8_0=ruleSignalHandler();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      					if (current==null) {
+            	      						current = createModelElementForParent(grammarAccess.getSignalWatcherRule());
+            	      					}
+            	      					add(
+            	      						current,
+            	      						"handlers",
+            	      						lv_handlers_8_0,
+            	      						"org.eclipse.osbp.xtext.signal.SignalDSL.SignalHandler");
+            	      					afterParserOrEnumRuleCall();
+            	      				
+            	    }
+
+            	    }
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop4;
+                }
+            } while (true);
+
+            otherlv_9=(Token)match(input,15,FOLLOW_2); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(otherlv_9, grammarAccess.getSignalWatcherAccess().getRightCurlyBracketKeyword_9());
+              		
+            }
 
             }
 
@@ -850,7 +862,7 @@
 
 
     // $ANTLR start "entryRuleSignalHandler"
-    // InternalSignalDSL.g:325:1: entryRuleSignalHandler returns [EObject current=null] : iv_ruleSignalHandler= ruleSignalHandler EOF ;
+    // InternalSignalDSL.g:333:1: entryRuleSignalHandler returns [EObject current=null] : iv_ruleSignalHandler= ruleSignalHandler EOF ;
     public final EObject entryRuleSignalHandler() throws RecognitionException {
         EObject current = null;
 
@@ -858,8 +870,8 @@
 
 
         try {
-            // InternalSignalDSL.g:325:54: (iv_ruleSignalHandler= ruleSignalHandler EOF )
-            // InternalSignalDSL.g:326:2: iv_ruleSignalHandler= ruleSignalHandler EOF
+            // InternalSignalDSL.g:333:54: (iv_ruleSignalHandler= ruleSignalHandler EOF )
+            // InternalSignalDSL.g:334:2: iv_ruleSignalHandler= ruleSignalHandler EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getSignalHandlerRule()); 
@@ -890,29 +902,32 @@
 
 
     // $ANTLR start "ruleSignalHandler"
-    // InternalSignalDSL.g:332:1: ruleSignalHandler returns [EObject current=null] : ( () otherlv_1= 'handlerOn' ( (otherlv_2= RULE_ID ) ) ( ( (lv_handler_3_0= ruleSignalHandling ) ) ( (lv_notification_4_0= ruleSignalNotification ) )? ) ) ;
+    // InternalSignalDSL.g:340:1: ruleSignalHandler returns [EObject current=null] : ( () otherlv_1= 'handler' ( (lv_name_2_0= RULE_ID ) ) ( (lv_actionType_3_0= ruleSignalHandlerTypeEnum ) ) ( (lv_data_4_0= ruleDataTransfer ) ) otherlv_5= 'for' otherlv_6= 'fileMask' ( (lv_filemask_7_0= RULE_STRING ) ) ) ;
     public final EObject ruleSignalHandler() throws RecognitionException {
         EObject current = null;
 
         Token otherlv_1=null;
-        Token otherlv_2=null;
-        EObject lv_handler_3_0 = null;
+        Token lv_name_2_0=null;
+        Token otherlv_5=null;
+        Token otherlv_6=null;
+        Token lv_filemask_7_0=null;
+        Enumerator lv_actionType_3_0 = null;
 
-        EObject lv_notification_4_0 = null;
+        EObject lv_data_4_0 = null;
 
 
 
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:338:2: ( ( () otherlv_1= 'handlerOn' ( (otherlv_2= RULE_ID ) ) ( ( (lv_handler_3_0= ruleSignalHandling ) ) ( (lv_notification_4_0= ruleSignalNotification ) )? ) ) )
-            // InternalSignalDSL.g:339:2: ( () otherlv_1= 'handlerOn' ( (otherlv_2= RULE_ID ) ) ( ( (lv_handler_3_0= ruleSignalHandling ) ) ( (lv_notification_4_0= ruleSignalNotification ) )? ) )
+            // InternalSignalDSL.g:346:2: ( ( () otherlv_1= 'handler' ( (lv_name_2_0= RULE_ID ) ) ( (lv_actionType_3_0= ruleSignalHandlerTypeEnum ) ) ( (lv_data_4_0= ruleDataTransfer ) ) otherlv_5= 'for' otherlv_6= 'fileMask' ( (lv_filemask_7_0= RULE_STRING ) ) ) )
+            // InternalSignalDSL.g:347:2: ( () otherlv_1= 'handler' ( (lv_name_2_0= RULE_ID ) ) ( (lv_actionType_3_0= ruleSignalHandlerTypeEnum ) ) ( (lv_data_4_0= ruleDataTransfer ) ) otherlv_5= 'for' otherlv_6= 'fileMask' ( (lv_filemask_7_0= RULE_STRING ) ) )
             {
-            // InternalSignalDSL.g:339:2: ( () otherlv_1= 'handlerOn' ( (otherlv_2= RULE_ID ) ) ( ( (lv_handler_3_0= ruleSignalHandling ) ) ( (lv_notification_4_0= ruleSignalNotification ) )? ) )
-            // InternalSignalDSL.g:340:3: () otherlv_1= 'handlerOn' ( (otherlv_2= RULE_ID ) ) ( ( (lv_handler_3_0= ruleSignalHandling ) ) ( (lv_notification_4_0= ruleSignalNotification ) )? )
+            // InternalSignalDSL.g:347:2: ( () otherlv_1= 'handler' ( (lv_name_2_0= RULE_ID ) ) ( (lv_actionType_3_0= ruleSignalHandlerTypeEnum ) ) ( (lv_data_4_0= ruleDataTransfer ) ) otherlv_5= 'for' otherlv_6= 'fileMask' ( (lv_filemask_7_0= RULE_STRING ) ) )
+            // InternalSignalDSL.g:348:3: () otherlv_1= 'handler' ( (lv_name_2_0= RULE_ID ) ) ( (lv_actionType_3_0= ruleSignalHandlerTypeEnum ) ) ( (lv_data_4_0= ruleDataTransfer ) ) otherlv_5= 'for' otherlv_6= 'fileMask' ( (lv_filemask_7_0= RULE_STRING ) )
             {
-            // InternalSignalDSL.g:340:3: ()
-            // InternalSignalDSL.g:341:4: 
+            // InternalSignalDSL.g:348:3: ()
+            // InternalSignalDSL.g:349:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -927,26 +942,31 @@
             otherlv_1=(Token)match(input,19,FOLLOW_4); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
-              			newLeafNode(otherlv_1, grammarAccess.getSignalHandlerAccess().getHandlerOnKeyword_1());
+              			newLeafNode(otherlv_1, grammarAccess.getSignalHandlerAccess().getHandlerKeyword_1());
               		
             }
-            // InternalSignalDSL.g:351:3: ( (otherlv_2= RULE_ID ) )
-            // InternalSignalDSL.g:352:4: (otherlv_2= RULE_ID )
+            // InternalSignalDSL.g:359:3: ( (lv_name_2_0= RULE_ID ) )
+            // InternalSignalDSL.g:360:4: (lv_name_2_0= RULE_ID )
             {
-            // InternalSignalDSL.g:352:4: (otherlv_2= RULE_ID )
-            // InternalSignalDSL.g:353:5: otherlv_2= RULE_ID
+            // InternalSignalDSL.g:360:4: (lv_name_2_0= RULE_ID )
+            // InternalSignalDSL.g:361:5: lv_name_2_0= RULE_ID
             {
+            lv_name_2_0=(Token)match(input,RULE_ID,FOLLOW_12); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              					newLeafNode(lv_name_2_0, grammarAccess.getSignalHandlerAccess().getNameIDTerminalRuleCall_2_0());
+              				
+            }
             if ( state.backtracking==0 ) {
 
               					if (current==null) {
               						current = createModelElement(grammarAccess.getSignalHandlerRule());
               					}
-              				
-            }
-            otherlv_2=(Token)match(input,RULE_ID,FOLLOW_12); if (state.failed) return current;
-            if ( state.backtracking==0 ) {
-
-              					newLeafNode(otherlv_2, grammarAccess.getSignalHandlerAccess().getWatcherSignalWatcherCrossReference_2_0());
+              					setWithLastConsumed(
+              						current,
+              						"name",
+              						lv_name_2_0,
+              						"org.eclipse.xtext.xbase.Xtype.ID");
               				
             }
 
@@ -955,202 +975,32 @@
 
             }
 
-            // InternalSignalDSL.g:364:3: ( ( (lv_handler_3_0= ruleSignalHandling ) ) ( (lv_notification_4_0= ruleSignalNotification ) )? )
-            // InternalSignalDSL.g:365:4: ( (lv_handler_3_0= ruleSignalHandling ) ) ( (lv_notification_4_0= ruleSignalNotification ) )?
+            // InternalSignalDSL.g:377:3: ( (lv_actionType_3_0= ruleSignalHandlerTypeEnum ) )
+            // InternalSignalDSL.g:378:4: (lv_actionType_3_0= ruleSignalHandlerTypeEnum )
             {
-            // InternalSignalDSL.g:365:4: ( (lv_handler_3_0= ruleSignalHandling ) )
-            // InternalSignalDSL.g:366:5: (lv_handler_3_0= ruleSignalHandling )
-            {
-            // InternalSignalDSL.g:366:5: (lv_handler_3_0= ruleSignalHandling )
-            // InternalSignalDSL.g:367:6: lv_handler_3_0= ruleSignalHandling
+            // InternalSignalDSL.g:378:4: (lv_actionType_3_0= ruleSignalHandlerTypeEnum )
+            // InternalSignalDSL.g:379:5: lv_actionType_3_0= ruleSignalHandlerTypeEnum
             {
             if ( state.backtracking==0 ) {
 
-              						newCompositeNode(grammarAccess.getSignalHandlerAccess().getHandlerSignalHandlingParserRuleCall_3_0_0());
-              					
+              					newCompositeNode(grammarAccess.getSignalHandlerAccess().getActionTypeSignalHandlerTypeEnumEnumRuleCall_3_0());
+              				
             }
             pushFollow(FOLLOW_13);
-            lv_handler_3_0=ruleSignalHandling();
-
-            state._fsp--;
-            if (state.failed) return current;
-            if ( state.backtracking==0 ) {
-
-              						if (current==null) {
-              							current = createModelElementForParent(grammarAccess.getSignalHandlerRule());
-              						}
-              						set(
-              							current,
-              							"handler",
-              							lv_handler_3_0,
-              							"org.eclipse.osbp.xtext.signal.SignalDSL.SignalHandling");
-              						afterParserOrEnumRuleCall();
-              					
-            }
-
-            }
-
-
-            }
-
-            // InternalSignalDSL.g:384:4: ( (lv_notification_4_0= ruleSignalNotification ) )?
-            int alt5=2;
-            int LA5_0 = input.LA(1);
-
-            if ( ((LA5_0>=97 && LA5_0<=100)) ) {
-                alt5=1;
-            }
-            switch (alt5) {
-                case 1 :
-                    // InternalSignalDSL.g:385:5: (lv_notification_4_0= ruleSignalNotification )
-                    {
-                    // InternalSignalDSL.g:385:5: (lv_notification_4_0= ruleSignalNotification )
-                    // InternalSignalDSL.g:386:6: lv_notification_4_0= ruleSignalNotification
-                    {
-                    if ( state.backtracking==0 ) {
-
-                      						newCompositeNode(grammarAccess.getSignalHandlerAccess().getNotificationSignalNotificationParserRuleCall_3_1_0());
-                      					
-                    }
-                    pushFollow(FOLLOW_2);
-                    lv_notification_4_0=ruleSignalNotification();
-
-                    state._fsp--;
-                    if (state.failed) return current;
-                    if ( state.backtracking==0 ) {
-
-                      						if (current==null) {
-                      							current = createModelElementForParent(grammarAccess.getSignalHandlerRule());
-                      						}
-                      						set(
-                      							current,
-                      							"notification",
-                      							lv_notification_4_0,
-                      							"org.eclipse.osbp.xtext.signal.SignalDSL.SignalNotification");
-                      						afterParserOrEnumRuleCall();
-                      					
-                    }
-
-                    }
-
-
-                    }
-                    break;
-
-            }
-
-
-            }
-
-
-            }
-
-
-            }
-
-            if ( state.backtracking==0 ) {
-
-              	leaveRule();
-
-            }
-        }
-
-            catch (RecognitionException re) {
-                recover(input,re);
-                appendSkippedTokens();
-            }
-        finally {
-        }
-        return current;
-    }
-    // $ANTLR end "ruleSignalHandler"
-
-
-    // $ANTLR start "entryRuleSignalNotification"
-    // InternalSignalDSL.g:408:1: entryRuleSignalNotification returns [EObject current=null] : iv_ruleSignalNotification= ruleSignalNotification EOF ;
-    public final EObject entryRuleSignalNotification() throws RecognitionException {
-        EObject current = null;
-
-        EObject iv_ruleSignalNotification = null;
-
-
-        try {
-            // InternalSignalDSL.g:408:59: (iv_ruleSignalNotification= ruleSignalNotification EOF )
-            // InternalSignalDSL.g:409:2: iv_ruleSignalNotification= ruleSignalNotification EOF
-            {
-            if ( state.backtracking==0 ) {
-               newCompositeNode(grammarAccess.getSignalNotificationRule()); 
-            }
-            pushFollow(FOLLOW_1);
-            iv_ruleSignalNotification=ruleSignalNotification();
-
-            state._fsp--;
-            if (state.failed) return current;
-            if ( state.backtracking==0 ) {
-               current =iv_ruleSignalNotification; 
-            }
-            match(input,EOF,FOLLOW_2); if (state.failed) return current;
-
-            }
-
-        }
-
-            catch (RecognitionException re) {
-                recover(input,re);
-                appendSkippedTokens();
-            }
-        finally {
-        }
-        return current;
-    }
-    // $ANTLR end "entryRuleSignalNotification"
-
-
-    // $ANTLR start "ruleSignalNotification"
-    // InternalSignalDSL.g:415:1: ruleSignalNotification returns [EObject current=null] : ( ( (lv_event_0_0= ruleSignalNotificationEnum ) ) ( (lv_message_1_0= RULE_STRING ) ) ) ;
-    public final EObject ruleSignalNotification() throws RecognitionException {
-        EObject current = null;
-
-        Token lv_message_1_0=null;
-        Enumerator lv_event_0_0 = null;
-
-
-
-        	enterRule();
-
-        try {
-            // InternalSignalDSL.g:421:2: ( ( ( (lv_event_0_0= ruleSignalNotificationEnum ) ) ( (lv_message_1_0= RULE_STRING ) ) ) )
-            // InternalSignalDSL.g:422:2: ( ( (lv_event_0_0= ruleSignalNotificationEnum ) ) ( (lv_message_1_0= RULE_STRING ) ) )
-            {
-            // InternalSignalDSL.g:422:2: ( ( (lv_event_0_0= ruleSignalNotificationEnum ) ) ( (lv_message_1_0= RULE_STRING ) ) )
-            // InternalSignalDSL.g:423:3: ( (lv_event_0_0= ruleSignalNotificationEnum ) ) ( (lv_message_1_0= RULE_STRING ) )
-            {
-            // InternalSignalDSL.g:423:3: ( (lv_event_0_0= ruleSignalNotificationEnum ) )
-            // InternalSignalDSL.g:424:4: (lv_event_0_0= ruleSignalNotificationEnum )
-            {
-            // InternalSignalDSL.g:424:4: (lv_event_0_0= ruleSignalNotificationEnum )
-            // InternalSignalDSL.g:425:5: lv_event_0_0= ruleSignalNotificationEnum
-            {
-            if ( state.backtracking==0 ) {
-
-              					newCompositeNode(grammarAccess.getSignalNotificationAccess().getEventSignalNotificationEnumEnumRuleCall_0_0());
-              				
-            }
-            pushFollow(FOLLOW_9);
-            lv_event_0_0=ruleSignalNotificationEnum();
+            lv_actionType_3_0=ruleSignalHandlerTypeEnum();
 
             state._fsp--;
             if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               					if (current==null) {
-              						current = createModelElementForParent(grammarAccess.getSignalNotificationRule());
+              						current = createModelElementForParent(grammarAccess.getSignalHandlerRule());
               					}
               					set(
               						current,
-              						"event",
-              						lv_event_0_0,
-              						"org.eclipse.osbp.xtext.signal.SignalDSL.SignalNotificationEnum");
+              						"actionType",
+              						lv_actionType_3_0,
+              						"org.eclipse.osbp.xtext.signal.SignalDSL.SignalHandlerTypeEnum");
               					afterParserOrEnumRuleCall();
               				
             }
@@ -1160,27 +1010,74 @@
 
             }
 
-            // InternalSignalDSL.g:442:3: ( (lv_message_1_0= RULE_STRING ) )
-            // InternalSignalDSL.g:443:4: (lv_message_1_0= RULE_STRING )
+            // InternalSignalDSL.g:396:3: ( (lv_data_4_0= ruleDataTransfer ) )
+            // InternalSignalDSL.g:397:4: (lv_data_4_0= ruleDataTransfer )
             {
-            // InternalSignalDSL.g:443:4: (lv_message_1_0= RULE_STRING )
-            // InternalSignalDSL.g:444:5: lv_message_1_0= RULE_STRING
+            // InternalSignalDSL.g:397:4: (lv_data_4_0= ruleDataTransfer )
+            // InternalSignalDSL.g:398:5: lv_data_4_0= ruleDataTransfer
             {
-            lv_message_1_0=(Token)match(input,RULE_STRING,FOLLOW_2); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
-              					newLeafNode(lv_message_1_0, grammarAccess.getSignalNotificationAccess().getMessageSTRINGTerminalRuleCall_1_0());
+              					newCompositeNode(grammarAccess.getSignalHandlerAccess().getDataDataTransferParserRuleCall_4_0());
+              				
+            }
+            pushFollow(FOLLOW_9);
+            lv_data_4_0=ruleDataTransfer();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              					if (current==null) {
+              						current = createModelElementForParent(grammarAccess.getSignalHandlerRule());
+              					}
+              					set(
+              						current,
+              						"data",
+              						lv_data_4_0,
+              						"org.eclipse.osbp.xtext.signal.SignalDSL.DataTransfer");
+              					afterParserOrEnumRuleCall();
+              				
+            }
+
+            }
+
+
+            }
+
+            otherlv_5=(Token)match(input,18,FOLLOW_14); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(otherlv_5, grammarAccess.getSignalHandlerAccess().getForKeyword_5());
+              		
+            }
+            otherlv_6=(Token)match(input,20,FOLLOW_8); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(otherlv_6, grammarAccess.getSignalHandlerAccess().getFileMaskKeyword_6());
+              		
+            }
+            // InternalSignalDSL.g:423:3: ( (lv_filemask_7_0= RULE_STRING ) )
+            // InternalSignalDSL.g:424:4: (lv_filemask_7_0= RULE_STRING )
+            {
+            // InternalSignalDSL.g:424:4: (lv_filemask_7_0= RULE_STRING )
+            // InternalSignalDSL.g:425:5: lv_filemask_7_0= RULE_STRING
+            {
+            lv_filemask_7_0=(Token)match(input,RULE_STRING,FOLLOW_2); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              					newLeafNode(lv_filemask_7_0, grammarAccess.getSignalHandlerAccess().getFilemaskSTRINGTerminalRuleCall_7_0());
               				
             }
             if ( state.backtracking==0 ) {
 
               					if (current==null) {
-              						current = createModelElement(grammarAccess.getSignalNotificationRule());
+              						current = createModelElement(grammarAccess.getSignalHandlerRule());
               					}
               					setWithLastConsumed(
               						current,
-              						"message",
-              						lv_message_1_0,
+              						"filemask",
+              						lv_filemask_7_0,
               						"org.eclipse.xtext.xbase.Xtype.STRING");
               				
             }
@@ -1211,11 +1108,482 @@
         }
         return current;
     }
-    // $ANTLR end "ruleSignalNotification"
+    // $ANTLR end "ruleSignalHandler"
+
+
+    // $ANTLR start "entryRuleDataTransfer"
+    // InternalSignalDSL.g:445:1: entryRuleDataTransfer returns [EObject current=null] : iv_ruleDataTransfer= ruleDataTransfer EOF ;
+    public final EObject entryRuleDataTransfer() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleDataTransfer = null;
+
+
+        try {
+            // InternalSignalDSL.g:445:53: (iv_ruleDataTransfer= ruleDataTransfer EOF )
+            // InternalSignalDSL.g:446:2: iv_ruleDataTransfer= ruleDataTransfer EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getDataTransferRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_ruleDataTransfer=ruleDataTransfer();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleDataTransfer; 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleDataTransfer"
+
+
+    // $ANTLR start "ruleDataTransfer"
+    // InternalSignalDSL.g:452:1: ruleDataTransfer returns [EObject current=null] : (this_SingleTransfer_0= ruleSingleTransfer | this_ListTransfer_1= ruleListTransfer ) ;
+    public final EObject ruleDataTransfer() throws RecognitionException {
+        EObject current = null;
+
+        EObject this_SingleTransfer_0 = null;
+
+        EObject this_ListTransfer_1 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalSignalDSL.g:458:2: ( (this_SingleTransfer_0= ruleSingleTransfer | this_ListTransfer_1= ruleListTransfer ) )
+            // InternalSignalDSL.g:459:2: (this_SingleTransfer_0= ruleSingleTransfer | this_ListTransfer_1= ruleListTransfer )
+            {
+            // InternalSignalDSL.g:459:2: (this_SingleTransfer_0= ruleSingleTransfer | this_ListTransfer_1= ruleListTransfer )
+            int alt5=2;
+            int LA5_0 = input.LA(1);
+
+            if ( ((LA5_0>=95 && LA5_0<=96)) ) {
+                alt5=1;
+            }
+            else if ( (LA5_0==21) ) {
+                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:460:3: this_SingleTransfer_0= ruleSingleTransfer
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      			newCompositeNode(grammarAccess.getDataTransferAccess().getSingleTransferParserRuleCall_0());
+                      		
+                    }
+                    pushFollow(FOLLOW_2);
+                    this_SingleTransfer_0=ruleSingleTransfer();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      			current = this_SingleTransfer_0;
+                      			afterParserOrEnumRuleCall();
+                      		
+                    }
+
+                    }
+                    break;
+                case 2 :
+                    // InternalSignalDSL.g:469:3: this_ListTransfer_1= ruleListTransfer
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      			newCompositeNode(grammarAccess.getDataTransferAccess().getListTransferParserRuleCall_1());
+                      		
+                    }
+                    pushFollow(FOLLOW_2);
+                    this_ListTransfer_1=ruleListTransfer();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      			current = this_ListTransfer_1;
+                      			afterParserOrEnumRuleCall();
+                      		
+                    }
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleDataTransfer"
+
+
+    // $ANTLR start "entryRuleListTransfer"
+    // InternalSignalDSL.g:481:1: entryRuleListTransfer returns [EObject current=null] : iv_ruleListTransfer= ruleListTransfer EOF ;
+    public final EObject entryRuleListTransfer() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleListTransfer = null;
+
+
+        try {
+            // InternalSignalDSL.g:481:53: (iv_ruleListTransfer= ruleListTransfer EOF )
+            // InternalSignalDSL.g:482:2: iv_ruleListTransfer= ruleListTransfer EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getListTransferRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_ruleListTransfer=ruleListTransfer();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleListTransfer; 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleListTransfer"
+
+
+    // $ANTLR start "ruleListTransfer"
+    // InternalSignalDSL.g:488:1: ruleListTransfer returns [EObject current=null] : ( () otherlv_1= 'DataTransfer' ( (lv_executiontype_2_0= ruleSignalExecutionTypeEnum ) )? otherlv_3= '{' ( (lv_interchanges_4_0= ruleSignalDatainterchange ) )* otherlv_5= '}' ) ;
+    public final EObject ruleListTransfer() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_1=null;
+        Token otherlv_3=null;
+        Token otherlv_5=null;
+        Enumerator lv_executiontype_2_0 = null;
+
+        EObject lv_interchanges_4_0 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalSignalDSL.g:494:2: ( ( () otherlv_1= 'DataTransfer' ( (lv_executiontype_2_0= ruleSignalExecutionTypeEnum ) )? otherlv_3= '{' ( (lv_interchanges_4_0= ruleSignalDatainterchange ) )* otherlv_5= '}' ) )
+            // InternalSignalDSL.g:495:2: ( () otherlv_1= 'DataTransfer' ( (lv_executiontype_2_0= ruleSignalExecutionTypeEnum ) )? otherlv_3= '{' ( (lv_interchanges_4_0= ruleSignalDatainterchange ) )* otherlv_5= '}' )
+            {
+            // InternalSignalDSL.g:495:2: ( () otherlv_1= 'DataTransfer' ( (lv_executiontype_2_0= ruleSignalExecutionTypeEnum ) )? otherlv_3= '{' ( (lv_interchanges_4_0= ruleSignalDatainterchange ) )* otherlv_5= '}' )
+            // InternalSignalDSL.g:496:3: () otherlv_1= 'DataTransfer' ( (lv_executiontype_2_0= ruleSignalExecutionTypeEnum ) )? otherlv_3= '{' ( (lv_interchanges_4_0= ruleSignalDatainterchange ) )* otherlv_5= '}'
+            {
+            // InternalSignalDSL.g:496:3: ()
+            // InternalSignalDSL.g:497:4: 
+            {
+            if ( state.backtracking==0 ) {
+
+              				current = forceCreateModelElement(
+              					grammarAccess.getListTransferAccess().getListTransferAction_0(),
+              					current);
+              			
+            }
+
+            }
+
+            otherlv_1=(Token)match(input,21,FOLLOW_15); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(otherlv_1, grammarAccess.getListTransferAccess().getDataTransferKeyword_1());
+              		
+            }
+            // InternalSignalDSL.g:507:3: ( (lv_executiontype_2_0= ruleSignalExecutionTypeEnum ) )?
+            int alt6=2;
+            int LA6_0 = input.LA(1);
+
+            if ( ((LA6_0>=105 && LA6_0<=106)) ) {
+                alt6=1;
+            }
+            switch (alt6) {
+                case 1 :
+                    // InternalSignalDSL.g:508:4: (lv_executiontype_2_0= ruleSignalExecutionTypeEnum )
+                    {
+                    // InternalSignalDSL.g:508:4: (lv_executiontype_2_0= ruleSignalExecutionTypeEnum )
+                    // InternalSignalDSL.g:509:5: lv_executiontype_2_0= ruleSignalExecutionTypeEnum
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      					newCompositeNode(grammarAccess.getListTransferAccess().getExecutiontypeSignalExecutionTypeEnumEnumRuleCall_2_0());
+                      				
+                    }
+                    pushFollow(FOLLOW_5);
+                    lv_executiontype_2_0=ruleSignalExecutionTypeEnum();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      					if (current==null) {
+                      						current = createModelElementForParent(grammarAccess.getListTransferRule());
+                      					}
+                      					set(
+                      						current,
+                      						"executiontype",
+                      						lv_executiontype_2_0,
+                      						"org.eclipse.osbp.xtext.signal.SignalDSL.SignalExecutionTypeEnum");
+                      					afterParserOrEnumRuleCall();
+                      				
+                    }
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+            otherlv_3=(Token)match(input,14,FOLLOW_16); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(otherlv_3, grammarAccess.getListTransferAccess().getLeftCurlyBracketKeyword_3());
+              		
+            }
+            // InternalSignalDSL.g:530:3: ( (lv_interchanges_4_0= ruleSignalDatainterchange ) )*
+            loop7:
+            do {
+                int alt7=2;
+                int LA7_0 = input.LA(1);
+
+                if ( ((LA7_0>=95 && LA7_0<=96)) ) {
+                    alt7=1;
+                }
+
+
+                switch (alt7) {
+            	case 1 :
+            	    // InternalSignalDSL.g:531:4: (lv_interchanges_4_0= ruleSignalDatainterchange )
+            	    {
+            	    // InternalSignalDSL.g:531:4: (lv_interchanges_4_0= ruleSignalDatainterchange )
+            	    // InternalSignalDSL.g:532:5: lv_interchanges_4_0= ruleSignalDatainterchange
+            	    {
+            	    if ( state.backtracking==0 ) {
+
+            	      					newCompositeNode(grammarAccess.getListTransferAccess().getInterchangesSignalDatainterchangeParserRuleCall_4_0());
+            	      				
+            	    }
+            	    pushFollow(FOLLOW_16);
+            	    lv_interchanges_4_0=ruleSignalDatainterchange();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      					if (current==null) {
+            	      						current = createModelElementForParent(grammarAccess.getListTransferRule());
+            	      					}
+            	      					add(
+            	      						current,
+            	      						"interchanges",
+            	      						lv_interchanges_4_0,
+            	      						"org.eclipse.osbp.xtext.signal.SignalDSL.SignalDatainterchange");
+            	      					afterParserOrEnumRuleCall();
+            	      				
+            	    }
+
+            	    }
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop7;
+                }
+            } while (true);
+
+            otherlv_5=(Token)match(input,15,FOLLOW_2); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(otherlv_5, grammarAccess.getListTransferAccess().getRightCurlyBracketKeyword_5());
+              		
+            }
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleListTransfer"
+
+
+    // $ANTLR start "entryRuleSingleTransfer"
+    // InternalSignalDSL.g:557:1: entryRuleSingleTransfer returns [EObject current=null] : iv_ruleSingleTransfer= ruleSingleTransfer EOF ;
+    public final EObject entryRuleSingleTransfer() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleSingleTransfer = null;
+
+
+        try {
+            // InternalSignalDSL.g:557:55: (iv_ruleSingleTransfer= ruleSingleTransfer EOF )
+            // InternalSignalDSL.g:558:2: iv_ruleSingleTransfer= ruleSingleTransfer EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getSingleTransferRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_ruleSingleTransfer=ruleSingleTransfer();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleSingleTransfer; 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleSingleTransfer"
+
+
+    // $ANTLR start "ruleSingleTransfer"
+    // InternalSignalDSL.g:564:1: ruleSingleTransfer returns [EObject current=null] : ( (lv_interchange_0_0= ruleSignalDatainterchange ) ) ;
+    public final EObject ruleSingleTransfer() throws RecognitionException {
+        EObject current = null;
+
+        EObject lv_interchange_0_0 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalSignalDSL.g:570:2: ( ( (lv_interchange_0_0= ruleSignalDatainterchange ) ) )
+            // InternalSignalDSL.g:571:2: ( (lv_interchange_0_0= ruleSignalDatainterchange ) )
+            {
+            // InternalSignalDSL.g:571:2: ( (lv_interchange_0_0= ruleSignalDatainterchange ) )
+            // InternalSignalDSL.g:572:3: (lv_interchange_0_0= ruleSignalDatainterchange )
+            {
+            // InternalSignalDSL.g:572:3: (lv_interchange_0_0= ruleSignalDatainterchange )
+            // InternalSignalDSL.g:573:4: lv_interchange_0_0= ruleSignalDatainterchange
+            {
+            if ( state.backtracking==0 ) {
+
+              				newCompositeNode(grammarAccess.getSingleTransferAccess().getInterchangeSignalDatainterchangeParserRuleCall_0());
+              			
+            }
+            pushFollow(FOLLOW_2);
+            lv_interchange_0_0=ruleSignalDatainterchange();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              				if (current==null) {
+              					current = createModelElementForParent(grammarAccess.getSingleTransferRule());
+              				}
+              				set(
+              					current,
+              					"interchange",
+              					lv_interchange_0_0,
+              					"org.eclipse.osbp.xtext.signal.SignalDSL.SignalDatainterchange");
+              				afterParserOrEnumRuleCall();
+              			
+            }
+
+            }
+
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleSingleTransfer"
 
 
     // $ANTLR start "entryRuleSignalDatainterchange"
-    // InternalSignalDSL.g:464:1: entryRuleSignalDatainterchange returns [EObject current=null] : iv_ruleSignalDatainterchange= ruleSignalDatainterchange EOF ;
+    // InternalSignalDSL.g:593:1: entryRuleSignalDatainterchange returns [EObject current=null] : iv_ruleSignalDatainterchange= ruleSignalDatainterchange EOF ;
     public final EObject entryRuleSignalDatainterchange() throws RecognitionException {
         EObject current = null;
 
@@ -1223,8 +1591,8 @@
 
 
         try {
-            // InternalSignalDSL.g:464:62: (iv_ruleSignalDatainterchange= ruleSignalDatainterchange EOF )
-            // InternalSignalDSL.g:465:2: iv_ruleSignalDatainterchange= ruleSignalDatainterchange EOF
+            // InternalSignalDSL.g:593:62: (iv_ruleSignalDatainterchange= ruleSignalDatainterchange EOF )
+            // InternalSignalDSL.g:594:2: iv_ruleSignalDatainterchange= ruleSignalDatainterchange EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getSignalDatainterchangeRule()); 
@@ -1255,37 +1623,52 @@
 
 
     // $ANTLR start "ruleSignalDatainterchange"
-    // InternalSignalDSL.g:471:1: ruleSignalDatainterchange returns [EObject current=null] : ( (otherlv_0= RULE_ID ) ) ;
+    // InternalSignalDSL.g:600:1: ruleSignalDatainterchange returns [EObject current=null] : ( ( (lv_dataAction_0_0= ruleSignalActionEnum ) ) ( (otherlv_1= RULE_ID ) ) ) ;
     public final EObject ruleSignalDatainterchange() throws RecognitionException {
         EObject current = null;
 
-        Token otherlv_0=null;
+        Token otherlv_1=null;
+        Enumerator lv_dataAction_0_0 = null;
+
 
 
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:477:2: ( ( (otherlv_0= RULE_ID ) ) )
-            // InternalSignalDSL.g:478:2: ( (otherlv_0= RULE_ID ) )
+            // InternalSignalDSL.g:606:2: ( ( ( (lv_dataAction_0_0= ruleSignalActionEnum ) ) ( (otherlv_1= RULE_ID ) ) ) )
+            // InternalSignalDSL.g:607:2: ( ( (lv_dataAction_0_0= ruleSignalActionEnum ) ) ( (otherlv_1= RULE_ID ) ) )
             {
-            // InternalSignalDSL.g:478:2: ( (otherlv_0= RULE_ID ) )
-            // InternalSignalDSL.g:479:3: (otherlv_0= RULE_ID )
+            // InternalSignalDSL.g:607:2: ( ( (lv_dataAction_0_0= ruleSignalActionEnum ) ) ( (otherlv_1= RULE_ID ) ) )
+            // InternalSignalDSL.g:608:3: ( (lv_dataAction_0_0= ruleSignalActionEnum ) ) ( (otherlv_1= RULE_ID ) )
             {
-            // InternalSignalDSL.g:479:3: (otherlv_0= RULE_ID )
-            // InternalSignalDSL.g:480:4: otherlv_0= RULE_ID
+            // InternalSignalDSL.g:608:3: ( (lv_dataAction_0_0= ruleSignalActionEnum ) )
+            // InternalSignalDSL.g:609:4: (lv_dataAction_0_0= ruleSignalActionEnum )
+            {
+            // InternalSignalDSL.g:609:4: (lv_dataAction_0_0= ruleSignalActionEnum )
+            // InternalSignalDSL.g:610:5: lv_dataAction_0_0= ruleSignalActionEnum
             {
             if ( state.backtracking==0 ) {
 
-              				if (current==null) {
-              					current = createModelElement(grammarAccess.getSignalDatainterchangeRule());
-              				}
-              			
+              					newCompositeNode(grammarAccess.getSignalDatainterchangeAccess().getDataActionSignalActionEnumEnumRuleCall_0_0());
+              				
             }
-            otherlv_0=(Token)match(input,RULE_ID,FOLLOW_2); if (state.failed) return current;
+            pushFollow(FOLLOW_4);
+            lv_dataAction_0_0=ruleSignalActionEnum();
+
+            state._fsp--;
+            if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
-              				newLeafNode(otherlv_0, grammarAccess.getSignalDatainterchangeAccess().getDataRefDataInterchangeCrossReference_0());
-              			
+              					if (current==null) {
+              						current = createModelElementForParent(grammarAccess.getSignalDatainterchangeRule());
+              					}
+              					set(
+              						current,
+              						"dataAction",
+              						lv_dataAction_0_0,
+              						"org.eclipse.osbp.xtext.signal.SignalDSL.SignalActionEnum");
+              					afterParserOrEnumRuleCall();
+              				
             }
 
             }
@@ -1293,6 +1676,34 @@
 
             }
 
+            // InternalSignalDSL.g:627:3: ( (otherlv_1= RULE_ID ) )
+            // InternalSignalDSL.g:628:4: (otherlv_1= RULE_ID )
+            {
+            // InternalSignalDSL.g:628:4: (otherlv_1= RULE_ID )
+            // InternalSignalDSL.g:629:5: otherlv_1= RULE_ID
+            {
+            if ( state.backtracking==0 ) {
+
+              					if (current==null) {
+              						current = createModelElement(grammarAccess.getSignalDatainterchangeRule());
+              					}
+              				
+            }
+            otherlv_1=(Token)match(input,RULE_ID,FOLLOW_2); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              					newLeafNode(otherlv_1, grammarAccess.getSignalDatainterchangeAccess().getDataRefDataInterchangeCrossReference_1_0());
+              				
+            }
+
+            }
+
+
+            }
+
+
+            }
+
 
             }
 
@@ -1314,151 +1725,8 @@
     // $ANTLR end "ruleSignalDatainterchange"
 
 
-    // $ANTLR start "entryRuleSignalHandling"
-    // InternalSignalDSL.g:494:1: entryRuleSignalHandling returns [EObject current=null] : iv_ruleSignalHandling= ruleSignalHandling EOF ;
-    public final EObject entryRuleSignalHandling() throws RecognitionException {
-        EObject current = null;
-
-        EObject iv_ruleSignalHandling = null;
-
-
-        try {
-            // InternalSignalDSL.g:494:55: (iv_ruleSignalHandling= ruleSignalHandling EOF )
-            // InternalSignalDSL.g:495:2: iv_ruleSignalHandling= ruleSignalHandling EOF
-            {
-            if ( state.backtracking==0 ) {
-               newCompositeNode(grammarAccess.getSignalHandlingRule()); 
-            }
-            pushFollow(FOLLOW_1);
-            iv_ruleSignalHandling=ruleSignalHandling();
-
-            state._fsp--;
-            if (state.failed) return current;
-            if ( state.backtracking==0 ) {
-               current =iv_ruleSignalHandling; 
-            }
-            match(input,EOF,FOLLOW_2); if (state.failed) return current;
-
-            }
-
-        }
-
-            catch (RecognitionException re) {
-                recover(input,re);
-                appendSkippedTokens();
-            }
-        finally {
-        }
-        return current;
-    }
-    // $ANTLR end "entryRuleSignalHandling"
-
-
-    // $ANTLR start "ruleSignalHandling"
-    // InternalSignalDSL.g:501:1: ruleSignalHandling returns [EObject current=null] : ( ( (lv_actionType_0_0= ruleSignalHandlerTypeEnum ) ) ( (otherlv_1= RULE_ID ) ) ) ;
-    public final EObject ruleSignalHandling() throws RecognitionException {
-        EObject current = null;
-
-        Token otherlv_1=null;
-        Enumerator lv_actionType_0_0 = null;
-
-
-
-        	enterRule();
-
-        try {
-            // InternalSignalDSL.g:507:2: ( ( ( (lv_actionType_0_0= ruleSignalHandlerTypeEnum ) ) ( (otherlv_1= RULE_ID ) ) ) )
-            // InternalSignalDSL.g:508:2: ( ( (lv_actionType_0_0= ruleSignalHandlerTypeEnum ) ) ( (otherlv_1= RULE_ID ) ) )
-            {
-            // InternalSignalDSL.g:508:2: ( ( (lv_actionType_0_0= ruleSignalHandlerTypeEnum ) ) ( (otherlv_1= RULE_ID ) ) )
-            // InternalSignalDSL.g:509:3: ( (lv_actionType_0_0= ruleSignalHandlerTypeEnum ) ) ( (otherlv_1= RULE_ID ) )
-            {
-            // InternalSignalDSL.g:509:3: ( (lv_actionType_0_0= ruleSignalHandlerTypeEnum ) )
-            // InternalSignalDSL.g:510:4: (lv_actionType_0_0= ruleSignalHandlerTypeEnum )
-            {
-            // InternalSignalDSL.g:510:4: (lv_actionType_0_0= ruleSignalHandlerTypeEnum )
-            // InternalSignalDSL.g:511:5: lv_actionType_0_0= ruleSignalHandlerTypeEnum
-            {
-            if ( state.backtracking==0 ) {
-
-              					newCompositeNode(grammarAccess.getSignalHandlingAccess().getActionTypeSignalHandlerTypeEnumEnumRuleCall_0_0());
-              				
-            }
-            pushFollow(FOLLOW_4);
-            lv_actionType_0_0=ruleSignalHandlerTypeEnum();
-
-            state._fsp--;
-            if (state.failed) return current;
-            if ( state.backtracking==0 ) {
-
-              					if (current==null) {
-              						current = createModelElementForParent(grammarAccess.getSignalHandlingRule());
-              					}
-              					set(
-              						current,
-              						"actionType",
-              						lv_actionType_0_0,
-              						"org.eclipse.osbp.xtext.signal.SignalDSL.SignalHandlerTypeEnum");
-              					afterParserOrEnumRuleCall();
-              				
-            }
-
-            }
-
-
-            }
-
-            // InternalSignalDSL.g:528:3: ( (otherlv_1= RULE_ID ) )
-            // InternalSignalDSL.g:529:4: (otherlv_1= RULE_ID )
-            {
-            // InternalSignalDSL.g:529:4: (otherlv_1= RULE_ID )
-            // InternalSignalDSL.g:530:5: otherlv_1= RULE_ID
-            {
-            if ( state.backtracking==0 ) {
-
-              					if (current==null) {
-              						current = createModelElement(grammarAccess.getSignalHandlingRule());
-              					}
-              				
-            }
-            otherlv_1=(Token)match(input,RULE_ID,FOLLOW_2); if (state.failed) return current;
-            if ( state.backtracking==0 ) {
-
-              					newLeafNode(otherlv_1, grammarAccess.getSignalHandlingAccess().getDataRefDataInterchangeCrossReference_1_0());
-              				
-            }
-
-            }
-
-
-            }
-
-
-            }
-
-
-            }
-
-            if ( state.backtracking==0 ) {
-
-              	leaveRule();
-
-            }
-        }
-
-            catch (RecognitionException re) {
-                recover(input,re);
-                appendSkippedTokens();
-            }
-        finally {
-        }
-        return current;
-    }
-    // $ANTLR end "ruleSignalHandling"
-
-
     // $ANTLR start "entryRuleXImportDeclaration"
-    // InternalSignalDSL.g:545:1: entryRuleXImportDeclaration returns [EObject current=null] : iv_ruleXImportDeclaration= ruleXImportDeclaration EOF ;
+    // InternalSignalDSL.g:644:1: entryRuleXImportDeclaration returns [EObject current=null] : iv_ruleXImportDeclaration= ruleXImportDeclaration EOF ;
     public final EObject entryRuleXImportDeclaration() throws RecognitionException {
         EObject current = null;
 
@@ -1466,8 +1734,8 @@
 
 
         try {
-            // InternalSignalDSL.g:545:59: (iv_ruleXImportDeclaration= ruleXImportDeclaration EOF )
-            // InternalSignalDSL.g:546:2: iv_ruleXImportDeclaration= ruleXImportDeclaration EOF
+            // InternalSignalDSL.g:644:59: (iv_ruleXImportDeclaration= ruleXImportDeclaration EOF )
+            // InternalSignalDSL.g:645:2: iv_ruleXImportDeclaration= ruleXImportDeclaration EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXImportDeclarationRule()); 
@@ -1498,7 +1766,7 @@
 
 
     // $ANTLR start "ruleXImportDeclaration"
-    // InternalSignalDSL.g:552: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:651: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;
 
@@ -1519,14 +1787,14 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:558: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:559: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:657: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:658: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:559: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:560: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:658: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:659: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:560:3: ()
-            // InternalSignalDSL.g:561:4: 
+            // InternalSignalDSL.g:659:3: ()
+            // InternalSignalDSL.g:660:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -1538,29 +1806,29 @@
 
             }
 
-            otherlv_1=(Token)match(input,20,FOLLOW_14); if (state.failed) return current;
+            otherlv_1=(Token)match(input,22,FOLLOW_17); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_1, grammarAccess.getXImportDeclarationAccess().getImportKeyword_1());
               		
             }
-            // InternalSignalDSL.g:571: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 alt8=4;
-            alt8 = dfa8.predict(input);
-            switch (alt8) {
+            // InternalSignalDSL.g:670: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 alt10=4;
+            alt10 = dfa10.predict(input);
+            switch (alt10) {
                 case 1 :
-                    // InternalSignalDSL.g:572:4: ( ( (lv_static_2_0= 'static' ) ) ( (lv_extension_3_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_5_0= '*' ) ) | ( (lv_memberName_6_0= ruleValidID ) ) ) )
+                    // InternalSignalDSL.g:671:4: ( ( (lv_static_2_0= 'static' ) ) ( (lv_extension_3_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_5_0= '*' ) ) | ( (lv_memberName_6_0= ruleValidID ) ) ) )
                     {
-                    // InternalSignalDSL.g:572:4: ( ( (lv_static_2_0= 'static' ) ) ( (lv_extension_3_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_5_0= '*' ) ) | ( (lv_memberName_6_0= ruleValidID ) ) ) )
-                    // InternalSignalDSL.g:573:5: ( (lv_static_2_0= 'static' ) ) ( (lv_extension_3_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_5_0= '*' ) ) | ( (lv_memberName_6_0= ruleValidID ) ) )
+                    // InternalSignalDSL.g:671:4: ( ( (lv_static_2_0= 'static' ) ) ( (lv_extension_3_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_5_0= '*' ) ) | ( (lv_memberName_6_0= ruleValidID ) ) ) )
+                    // InternalSignalDSL.g:672:5: ( (lv_static_2_0= 'static' ) ) ( (lv_extension_3_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_5_0= '*' ) ) | ( (lv_memberName_6_0= ruleValidID ) ) )
                     {
-                    // InternalSignalDSL.g:573:5: ( (lv_static_2_0= 'static' ) )
-                    // InternalSignalDSL.g:574:6: (lv_static_2_0= 'static' )
+                    // InternalSignalDSL.g:672:5: ( (lv_static_2_0= 'static' ) )
+                    // InternalSignalDSL.g:673:6: (lv_static_2_0= 'static' )
                     {
-                    // InternalSignalDSL.g:574:6: (lv_static_2_0= 'static' )
-                    // InternalSignalDSL.g:575:7: lv_static_2_0= 'static'
+                    // InternalSignalDSL.g:673:6: (lv_static_2_0= 'static' )
+                    // InternalSignalDSL.g:674:7: lv_static_2_0= 'static'
                     {
-                    lv_static_2_0=(Token)match(input,21,FOLLOW_15); if (state.failed) return current;
+                    lv_static_2_0=(Token)match(input,23,FOLLOW_18); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       							newLeafNode(lv_static_2_0, grammarAccess.getXImportDeclarationAccess().getStaticStaticKeyword_2_0_0_0());
@@ -1580,21 +1848,21 @@
 
                     }
 
-                    // InternalSignalDSL.g:587:5: ( (lv_extension_3_0= 'extension' ) )?
-                    int alt6=2;
-                    int LA6_0 = input.LA(1);
+                    // InternalSignalDSL.g:686:5: ( (lv_extension_3_0= 'extension' ) )?
+                    int alt8=2;
+                    int LA8_0 = input.LA(1);
 
-                    if ( (LA6_0==22) ) {
-                        alt6=1;
+                    if ( (LA8_0==24) ) {
+                        alt8=1;
                     }
-                    switch (alt6) {
+                    switch (alt8) {
                         case 1 :
-                            // InternalSignalDSL.g:588:6: (lv_extension_3_0= 'extension' )
+                            // InternalSignalDSL.g:687:6: (lv_extension_3_0= 'extension' )
                             {
-                            // InternalSignalDSL.g:588:6: (lv_extension_3_0= 'extension' )
-                            // InternalSignalDSL.g:589:7: lv_extension_3_0= 'extension'
+                            // InternalSignalDSL.g:687:6: (lv_extension_3_0= 'extension' )
+                            // InternalSignalDSL.g:688:7: lv_extension_3_0= 'extension'
                             {
-                            lv_extension_3_0=(Token)match(input,22,FOLLOW_15); if (state.failed) return current;
+                            lv_extension_3_0=(Token)match(input,24,FOLLOW_18); if (state.failed) return current;
                             if ( state.backtracking==0 ) {
 
                               							newLeafNode(lv_extension_3_0, grammarAccess.getXImportDeclarationAccess().getExtensionExtensionKeyword_2_0_1_0());
@@ -1617,11 +1885,11 @@
 
                     }
 
-                    // InternalSignalDSL.g:601:5: ( ( ruleQualifiedNameInStaticImport ) )
-                    // InternalSignalDSL.g:602:6: ( ruleQualifiedNameInStaticImport )
+                    // InternalSignalDSL.g:700:5: ( ( ruleQualifiedNameInStaticImport ) )
+                    // InternalSignalDSL.g:701:6: ( ruleQualifiedNameInStaticImport )
                     {
-                    // InternalSignalDSL.g:602:6: ( ruleQualifiedNameInStaticImport )
-                    // InternalSignalDSL.g:603:7: ruleQualifiedNameInStaticImport
+                    // InternalSignalDSL.g:701:6: ( ruleQualifiedNameInStaticImport )
+                    // InternalSignalDSL.g:702:7: ruleQualifiedNameInStaticImport
                     {
                     if ( state.backtracking==0 ) {
 
@@ -1635,7 +1903,7 @@
                       							newCompositeNode(grammarAccess.getXImportDeclarationAccess().getImportedTypeJvmDeclaredTypeCrossReference_2_0_2_0());
                       						
                     }
-                    pushFollow(FOLLOW_16);
+                    pushFollow(FOLLOW_19);
                     ruleQualifiedNameInStaticImport();
 
                     state._fsp--;
@@ -1651,34 +1919,34 @@
 
                     }
 
-                    // InternalSignalDSL.g:617:5: ( ( (lv_wildcard_5_0= '*' ) ) | ( (lv_memberName_6_0= ruleValidID ) ) )
-                    int alt7=2;
-                    int LA7_0 = input.LA(1);
+                    // InternalSignalDSL.g:716:5: ( ( (lv_wildcard_5_0= '*' ) ) | ( (lv_memberName_6_0= ruleValidID ) ) )
+                    int alt9=2;
+                    int LA9_0 = input.LA(1);
 
-                    if ( (LA7_0==23) ) {
-                        alt7=1;
+                    if ( (LA9_0==25) ) {
+                        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 current;}
                         NoViableAltException nvae =
-                            new NoViableAltException("", 7, 0, input);
+                            new NoViableAltException("", 9, 0, input);
 
                         throw nvae;
                     }
-                    switch (alt7) {
+                    switch (alt9) {
                         case 1 :
-                            // InternalSignalDSL.g:618:6: ( (lv_wildcard_5_0= '*' ) )
+                            // InternalSignalDSL.g:717:6: ( (lv_wildcard_5_0= '*' ) )
                             {
-                            // InternalSignalDSL.g:618:6: ( (lv_wildcard_5_0= '*' ) )
-                            // InternalSignalDSL.g:619:7: (lv_wildcard_5_0= '*' )
+                            // InternalSignalDSL.g:717:6: ( (lv_wildcard_5_0= '*' ) )
+                            // InternalSignalDSL.g:718:7: (lv_wildcard_5_0= '*' )
                             {
-                            // InternalSignalDSL.g:619:7: (lv_wildcard_5_0= '*' )
-                            // InternalSignalDSL.g:620:8: lv_wildcard_5_0= '*'
+                            // InternalSignalDSL.g:718:7: (lv_wildcard_5_0= '*' )
+                            // InternalSignalDSL.g:719:8: lv_wildcard_5_0= '*'
                             {
-                            lv_wildcard_5_0=(Token)match(input,23,FOLLOW_17); if (state.failed) return current;
+                            lv_wildcard_5_0=(Token)match(input,25,FOLLOW_20); if (state.failed) return current;
                             if ( state.backtracking==0 ) {
 
                               								newLeafNode(lv_wildcard_5_0, grammarAccess.getXImportDeclarationAccess().getWildcardAsteriskKeyword_2_0_3_0_0());
@@ -1702,20 +1970,20 @@
                             }
                             break;
                         case 2 :
-                            // InternalSignalDSL.g:633:6: ( (lv_memberName_6_0= ruleValidID ) )
+                            // InternalSignalDSL.g:732:6: ( (lv_memberName_6_0= ruleValidID ) )
                             {
-                            // InternalSignalDSL.g:633:6: ( (lv_memberName_6_0= ruleValidID ) )
-                            // InternalSignalDSL.g:634:7: (lv_memberName_6_0= ruleValidID )
+                            // InternalSignalDSL.g:732:6: ( (lv_memberName_6_0= ruleValidID ) )
+                            // InternalSignalDSL.g:733:7: (lv_memberName_6_0= ruleValidID )
                             {
-                            // InternalSignalDSL.g:634:7: (lv_memberName_6_0= ruleValidID )
-                            // InternalSignalDSL.g:635:8: lv_memberName_6_0= ruleValidID
+                            // InternalSignalDSL.g:733:7: (lv_memberName_6_0= ruleValidID )
+                            // InternalSignalDSL.g:734:8: lv_memberName_6_0= ruleValidID
                             {
                             if ( state.backtracking==0 ) {
 
                               								newCompositeNode(grammarAccess.getXImportDeclarationAccess().getMemberNameValidIDParserRuleCall_2_0_3_1_0());
                               							
                             }
-                            pushFollow(FOLLOW_17);
+                            pushFollow(FOLLOW_20);
                             lv_memberName_6_0=ruleValidID();
 
                             state._fsp--;
@@ -1752,13 +2020,13 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:655:4: ( ( ruleQualifiedName ) )
+                    // InternalSignalDSL.g:754:4: ( ( ruleQualifiedName ) )
                     {
-                    // InternalSignalDSL.g:655:4: ( ( ruleQualifiedName ) )
-                    // InternalSignalDSL.g:656:5: ( ruleQualifiedName )
+                    // InternalSignalDSL.g:754:4: ( ( ruleQualifiedName ) )
+                    // InternalSignalDSL.g:755:5: ( ruleQualifiedName )
                     {
-                    // InternalSignalDSL.g:656:5: ( ruleQualifiedName )
-                    // InternalSignalDSL.g:657:6: ruleQualifiedName
+                    // InternalSignalDSL.g:755:5: ( ruleQualifiedName )
+                    // InternalSignalDSL.g:756:6: ruleQualifiedName
                     {
                     if ( state.backtracking==0 ) {
 
@@ -1772,7 +2040,7 @@
                       						newCompositeNode(grammarAccess.getXImportDeclarationAccess().getImportedTypeJvmDeclaredTypeCrossReference_2_1_0());
                       					
                     }
-                    pushFollow(FOLLOW_17);
+                    pushFollow(FOLLOW_20);
                     ruleQualifiedName();
 
                     state._fsp--;
@@ -1792,20 +2060,20 @@
                     }
                     break;
                 case 3 :
-                    // InternalSignalDSL.g:672:4: ( (lv_importedNamespace_8_0= ruleQualifiedNameWithWildcard ) )
+                    // InternalSignalDSL.g:771:4: ( (lv_importedNamespace_8_0= ruleQualifiedNameWithWildcard ) )
                     {
-                    // InternalSignalDSL.g:672:4: ( (lv_importedNamespace_8_0= ruleQualifiedNameWithWildcard ) )
-                    // InternalSignalDSL.g:673:5: (lv_importedNamespace_8_0= ruleQualifiedNameWithWildcard )
+                    // InternalSignalDSL.g:771:4: ( (lv_importedNamespace_8_0= ruleQualifiedNameWithWildcard ) )
+                    // InternalSignalDSL.g:772:5: (lv_importedNamespace_8_0= ruleQualifiedNameWithWildcard )
                     {
-                    // InternalSignalDSL.g:673:5: (lv_importedNamespace_8_0= ruleQualifiedNameWithWildcard )
-                    // InternalSignalDSL.g:674:6: lv_importedNamespace_8_0= ruleQualifiedNameWithWildcard
+                    // InternalSignalDSL.g:772:5: (lv_importedNamespace_8_0= ruleQualifiedNameWithWildcard )
+                    // InternalSignalDSL.g:773:6: lv_importedNamespace_8_0= ruleQualifiedNameWithWildcard
                     {
                     if ( state.backtracking==0 ) {
 
                       						newCompositeNode(grammarAccess.getXImportDeclarationAccess().getImportedNamespaceQualifiedNameWithWildcardParserRuleCall_2_2_0());
                       					
                     }
-                    pushFollow(FOLLOW_17);
+                    pushFollow(FOLLOW_20);
                     lv_importedNamespace_8_0=ruleQualifiedNameWithWildcard();
 
                     state._fsp--;
@@ -1833,18 +2101,18 @@
                     }
                     break;
                 case 4 :
-                    // InternalSignalDSL.g:692:4: ( ( (lv_fqnImport_9_0= 'ns' ) ) ( (lv_importedFullyQualifiedName_10_0= ruleQualifiedName ) ) )
+                    // InternalSignalDSL.g:791:4: ( ( (lv_fqnImport_9_0= 'ns' ) ) ( (lv_importedFullyQualifiedName_10_0= ruleQualifiedName ) ) )
                     {
-                    // InternalSignalDSL.g:692:4: ( ( (lv_fqnImport_9_0= 'ns' ) ) ( (lv_importedFullyQualifiedName_10_0= ruleQualifiedName ) ) )
-                    // InternalSignalDSL.g:693:5: ( (lv_fqnImport_9_0= 'ns' ) ) ( (lv_importedFullyQualifiedName_10_0= ruleQualifiedName ) )
+                    // InternalSignalDSL.g:791:4: ( ( (lv_fqnImport_9_0= 'ns' ) ) ( (lv_importedFullyQualifiedName_10_0= ruleQualifiedName ) ) )
+                    // InternalSignalDSL.g:792:5: ( (lv_fqnImport_9_0= 'ns' ) ) ( (lv_importedFullyQualifiedName_10_0= ruleQualifiedName ) )
                     {
-                    // InternalSignalDSL.g:693:5: ( (lv_fqnImport_9_0= 'ns' ) )
-                    // InternalSignalDSL.g:694:6: (lv_fqnImport_9_0= 'ns' )
+                    // InternalSignalDSL.g:792:5: ( (lv_fqnImport_9_0= 'ns' ) )
+                    // InternalSignalDSL.g:793:6: (lv_fqnImport_9_0= 'ns' )
                     {
-                    // InternalSignalDSL.g:694:6: (lv_fqnImport_9_0= 'ns' )
-                    // InternalSignalDSL.g:695:7: lv_fqnImport_9_0= 'ns'
+                    // InternalSignalDSL.g:793:6: (lv_fqnImport_9_0= 'ns' )
+                    // InternalSignalDSL.g:794:7: lv_fqnImport_9_0= 'ns'
                     {
-                    lv_fqnImport_9_0=(Token)match(input,24,FOLLOW_4); if (state.failed) return current;
+                    lv_fqnImport_9_0=(Token)match(input,26,FOLLOW_4); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       							newLeafNode(lv_fqnImport_9_0, grammarAccess.getXImportDeclarationAccess().getFqnImportNsKeyword_2_3_0_0());
@@ -1864,18 +2132,18 @@
 
                     }
 
-                    // InternalSignalDSL.g:707:5: ( (lv_importedFullyQualifiedName_10_0= ruleQualifiedName ) )
-                    // InternalSignalDSL.g:708:6: (lv_importedFullyQualifiedName_10_0= ruleQualifiedName )
+                    // InternalSignalDSL.g:806:5: ( (lv_importedFullyQualifiedName_10_0= ruleQualifiedName ) )
+                    // InternalSignalDSL.g:807:6: (lv_importedFullyQualifiedName_10_0= ruleQualifiedName )
                     {
-                    // InternalSignalDSL.g:708:6: (lv_importedFullyQualifiedName_10_0= ruleQualifiedName )
-                    // InternalSignalDSL.g:709:7: lv_importedFullyQualifiedName_10_0= ruleQualifiedName
+                    // InternalSignalDSL.g:807:6: (lv_importedFullyQualifiedName_10_0= ruleQualifiedName )
+                    // InternalSignalDSL.g:808:7: lv_importedFullyQualifiedName_10_0= ruleQualifiedName
                     {
                     if ( state.backtracking==0 ) {
 
                       							newCompositeNode(grammarAccess.getXImportDeclarationAccess().getImportedFullyQualifiedNameQualifiedNameParserRuleCall_2_3_1_0());
                       						
                     }
-                    pushFollow(FOLLOW_17);
+                    pushFollow(FOLLOW_20);
                     lv_importedFullyQualifiedName_10_0=ruleQualifiedName();
 
                     state._fsp--;
@@ -1908,18 +2176,18 @@
 
             }
 
-            // InternalSignalDSL.g:728:3: (otherlv_11= ';' )?
-            int alt9=2;
-            int LA9_0 = input.LA(1);
+            // InternalSignalDSL.g:827:3: (otherlv_11= ';' )?
+            int alt11=2;
+            int LA11_0 = input.LA(1);
 
-            if ( (LA9_0==25) ) {
-                alt9=1;
+            if ( (LA11_0==27) ) {
+                alt11=1;
             }
-            switch (alt9) {
+            switch (alt11) {
                 case 1 :
-                    // InternalSignalDSL.g:729:4: otherlv_11= ';'
+                    // InternalSignalDSL.g:828:4: otherlv_11= ';'
                     {
-                    otherlv_11=(Token)match(input,25,FOLLOW_2); if (state.failed) return current;
+                    otherlv_11=(Token)match(input,27,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				newLeafNode(otherlv_11, grammarAccess.getXImportDeclarationAccess().getSemicolonKeyword_3());
@@ -1956,7 +2224,7 @@
 
 
     // $ANTLR start "entryRuleXAnnotation"
-    // InternalSignalDSL.g:738:1: entryRuleXAnnotation returns [EObject current=null] : iv_ruleXAnnotation= ruleXAnnotation EOF ;
+    // InternalSignalDSL.g:837:1: entryRuleXAnnotation returns [EObject current=null] : iv_ruleXAnnotation= ruleXAnnotation EOF ;
     public final EObject entryRuleXAnnotation() throws RecognitionException {
         EObject current = null;
 
@@ -1964,8 +2232,8 @@
 
 
         try {
-            // InternalSignalDSL.g:738:52: (iv_ruleXAnnotation= ruleXAnnotation EOF )
-            // InternalSignalDSL.g:739:2: iv_ruleXAnnotation= ruleXAnnotation EOF
+            // InternalSignalDSL.g:837:52: (iv_ruleXAnnotation= ruleXAnnotation EOF )
+            // InternalSignalDSL.g:838:2: iv_ruleXAnnotation= ruleXAnnotation EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXAnnotationRule()); 
@@ -1996,7 +2264,7 @@
 
 
     // $ANTLR start "ruleXAnnotation"
-    // InternalSignalDSL.g:745: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:844: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;
 
@@ -2015,14 +2283,14 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:751: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:752: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:850: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:851: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:752: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:753: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:851: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:852: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:753:3: ()
-            // InternalSignalDSL.g:754:4: 
+            // InternalSignalDSL.g:852:3: ()
+            // InternalSignalDSL.g:853:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -2034,17 +2302,17 @@
 
             }
 
-            otherlv_1=(Token)match(input,26,FOLLOW_4); if (state.failed) return current;
+            otherlv_1=(Token)match(input,28,FOLLOW_4); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_1, grammarAccess.getXAnnotationAccess().getCommercialAtKeyword_1());
               		
             }
-            // InternalSignalDSL.g:764:3: ( ( ruleQualifiedName ) )
-            // InternalSignalDSL.g:765:4: ( ruleQualifiedName )
+            // InternalSignalDSL.g:863:3: ( ( ruleQualifiedName ) )
+            // InternalSignalDSL.g:864:4: ( ruleQualifiedName )
             {
-            // InternalSignalDSL.g:765:4: ( ruleQualifiedName )
-            // InternalSignalDSL.g:766:5: ruleQualifiedName
+            // InternalSignalDSL.g:864:4: ( ruleQualifiedName )
+            // InternalSignalDSL.g:865:5: ruleQualifiedName
             {
             if ( state.backtracking==0 ) {
 
@@ -2058,7 +2326,7 @@
               					newCompositeNode(grammarAccess.getXAnnotationAccess().getAnnotationTypeJvmAnnotationTypeCrossReference_2_0());
               				
             }
-            pushFollow(FOLLOW_18);
+            pushFollow(FOLLOW_21);
             ruleQualifiedName();
 
             state._fsp--;
@@ -2074,21 +2342,21 @@
 
             }
 
-            // InternalSignalDSL.g:780: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 alt12=2;
-            int LA12_0 = input.LA(1);
+            // InternalSignalDSL.g:879: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 alt14=2;
+            int LA14_0 = input.LA(1);
 
-            if ( (LA12_0==27) && (synpred1_InternalSignalDSL())) {
-                alt12=1;
+            if ( (LA14_0==29) && (synpred1_InternalSignalDSL())) {
+                alt14=1;
             }
-            switch (alt12) {
+            switch (alt14) {
                 case 1 :
-                    // InternalSignalDSL.g:781: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:880: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:781:4: ( ( '(' )=>otherlv_3= '(' )
-                    // InternalSignalDSL.g:782:5: ( '(' )=>otherlv_3= '('
+                    // InternalSignalDSL.g:880:4: ( ( '(' )=>otherlv_3= '(' )
+                    // InternalSignalDSL.g:881:5: ( '(' )=>otherlv_3= '('
                     {
-                    otherlv_3=(Token)match(input,27,FOLLOW_19); if (state.failed) return current;
+                    otherlv_3=(Token)match(input,29,FOLLOW_22); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       					newLeafNode(otherlv_3, grammarAccess.getXAnnotationAccess().getLeftParenthesisKeyword_3_0());
@@ -2097,28 +2365,28 @@
 
                     }
 
-                    // InternalSignalDSL.g:788:4: ( ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* ) | ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) ) )?
-                    int alt11=3;
-                    alt11 = dfa11.predict(input);
-                    switch (alt11) {
+                    // InternalSignalDSL.g:887:4: ( ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* ) | ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) ) )?
+                    int alt13=3;
+                    alt13 = dfa13.predict(input);
+                    switch (alt13) {
                         case 1 :
-                            // InternalSignalDSL.g:789:5: ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* )
+                            // InternalSignalDSL.g:888:5: ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* )
                             {
-                            // InternalSignalDSL.g:789:5: ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* )
-                            // InternalSignalDSL.g:790:6: ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )*
+                            // InternalSignalDSL.g:888:5: ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* )
+                            // InternalSignalDSL.g:889:6: ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )*
                             {
-                            // InternalSignalDSL.g:790:6: ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) )
-                            // InternalSignalDSL.g:791:7: ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair )
+                            // InternalSignalDSL.g:889:6: ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) )
+                            // InternalSignalDSL.g:890:7: ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair )
                             {
-                            // InternalSignalDSL.g:800:7: (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair )
-                            // InternalSignalDSL.g:801:8: lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair
+                            // InternalSignalDSL.g:899:7: (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair )
+                            // InternalSignalDSL.g:900:8: lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair
                             {
                             if ( state.backtracking==0 ) {
 
                               								newCompositeNode(grammarAccess.getXAnnotationAccess().getElementValuePairsXAnnotationElementValuePairParserRuleCall_3_1_0_0_0());
                               							
                             }
-                            pushFollow(FOLLOW_20);
+                            pushFollow(FOLLOW_23);
                             lv_elementValuePairs_4_0=ruleXAnnotationElementValuePair();
 
                             state._fsp--;
@@ -2142,39 +2410,39 @@
 
                             }
 
-                            // InternalSignalDSL.g:818:6: (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )*
-                            loop10:
+                            // InternalSignalDSL.g:917:6: (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )*
+                            loop12:
                             do {
-                                int alt10=2;
-                                int LA10_0 = input.LA(1);
+                                int alt12=2;
+                                int LA12_0 = input.LA(1);
 
-                                if ( (LA10_0==28) ) {
-                                    alt10=1;
+                                if ( (LA12_0==30) ) {
+                                    alt12=1;
                                 }
 
 
-                                switch (alt10) {
+                                switch (alt12) {
                             	case 1 :
-                            	    // InternalSignalDSL.g:819:7: otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) )
+                            	    // InternalSignalDSL.g:918:7: otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) )
                             	    {
-                            	    otherlv_5=(Token)match(input,28,FOLLOW_4); if (state.failed) return current;
+                            	    otherlv_5=(Token)match(input,30,FOLLOW_4); if (state.failed) return current;
                             	    if ( state.backtracking==0 ) {
 
                             	      							newLeafNode(otherlv_5, grammarAccess.getXAnnotationAccess().getCommaKeyword_3_1_0_1_0());
                             	      						
                             	    }
-                            	    // InternalSignalDSL.g:823:7: ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) )
-                            	    // InternalSignalDSL.g:824:8: ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair )
+                            	    // InternalSignalDSL.g:922:7: ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) )
+                            	    // InternalSignalDSL.g:923:8: ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair )
                             	    {
-                            	    // InternalSignalDSL.g:833:8: (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair )
-                            	    // InternalSignalDSL.g:834:9: lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair
+                            	    // InternalSignalDSL.g:932:8: (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair )
+                            	    // InternalSignalDSL.g:933:9: lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair
                             	    {
                             	    if ( state.backtracking==0 ) {
 
                             	      									newCompositeNode(grammarAccess.getXAnnotationAccess().getElementValuePairsXAnnotationElementValuePairParserRuleCall_3_1_0_1_1_0());
                             	      								
                             	    }
-                            	    pushFollow(FOLLOW_20);
+                            	    pushFollow(FOLLOW_23);
                             	    lv_elementValuePairs_6_0=ruleXAnnotationElementValuePair();
 
                             	    state._fsp--;
@@ -2203,7 +2471,7 @@
                             	    break;
 
                             	default :
-                            	    break loop10;
+                            	    break loop12;
                                 }
                             } while (true);
 
@@ -2214,20 +2482,20 @@
                             }
                             break;
                         case 2 :
-                            // InternalSignalDSL.g:854:5: ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) )
+                            // InternalSignalDSL.g:953:5: ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) )
                             {
-                            // InternalSignalDSL.g:854:5: ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) )
-                            // InternalSignalDSL.g:855:6: (lv_value_7_0= ruleXAnnotationElementValueOrCommaList )
+                            // InternalSignalDSL.g:953:5: ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) )
+                            // InternalSignalDSL.g:954:6: (lv_value_7_0= ruleXAnnotationElementValueOrCommaList )
                             {
-                            // InternalSignalDSL.g:855:6: (lv_value_7_0= ruleXAnnotationElementValueOrCommaList )
-                            // InternalSignalDSL.g:856:7: lv_value_7_0= ruleXAnnotationElementValueOrCommaList
+                            // InternalSignalDSL.g:954:6: (lv_value_7_0= ruleXAnnotationElementValueOrCommaList )
+                            // InternalSignalDSL.g:955:7: lv_value_7_0= ruleXAnnotationElementValueOrCommaList
                             {
                             if ( state.backtracking==0 ) {
 
                               							newCompositeNode(grammarAccess.getXAnnotationAccess().getValueXAnnotationElementValueOrCommaListParserRuleCall_3_1_1_0());
                               						
                             }
-                            pushFollow(FOLLOW_21);
+                            pushFollow(FOLLOW_24);
                             lv_value_7_0=ruleXAnnotationElementValueOrCommaList();
 
                             state._fsp--;
@@ -2257,7 +2525,7 @@
 
                     }
 
-                    otherlv_8=(Token)match(input,29,FOLLOW_2); if (state.failed) return current;
+                    otherlv_8=(Token)match(input,31,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				newLeafNode(otherlv_8, grammarAccess.getXAnnotationAccess().getRightParenthesisKeyword_3_2());
@@ -2294,7 +2562,7 @@
 
 
     // $ANTLR start "entryRuleXAnnotationElementValuePair"
-    // InternalSignalDSL.g:883:1: entryRuleXAnnotationElementValuePair returns [EObject current=null] : iv_ruleXAnnotationElementValuePair= ruleXAnnotationElementValuePair EOF ;
+    // InternalSignalDSL.g:982:1: entryRuleXAnnotationElementValuePair returns [EObject current=null] : iv_ruleXAnnotationElementValuePair= ruleXAnnotationElementValuePair EOF ;
     public final EObject entryRuleXAnnotationElementValuePair() throws RecognitionException {
         EObject current = null;
 
@@ -2302,8 +2570,8 @@
 
 
         try {
-            // InternalSignalDSL.g:883:68: (iv_ruleXAnnotationElementValuePair= ruleXAnnotationElementValuePair EOF )
-            // InternalSignalDSL.g:884:2: iv_ruleXAnnotationElementValuePair= ruleXAnnotationElementValuePair EOF
+            // InternalSignalDSL.g:982:68: (iv_ruleXAnnotationElementValuePair= ruleXAnnotationElementValuePair EOF )
+            // InternalSignalDSL.g:983:2: iv_ruleXAnnotationElementValuePair= ruleXAnnotationElementValuePair EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXAnnotationElementValuePairRule()); 
@@ -2334,7 +2602,7 @@
 
 
     // $ANTLR start "ruleXAnnotationElementValuePair"
-    // InternalSignalDSL.g:890:1: ruleXAnnotationElementValuePair returns [EObject current=null] : ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> ( ( ( ruleValidID ) ) otherlv_1= '=' ) ) ( (lv_value_2_0= ruleXAnnotationElementValue ) ) ) ;
+    // InternalSignalDSL.g:989:1: ruleXAnnotationElementValuePair returns [EObject current=null] : ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> ( ( ( ruleValidID ) ) otherlv_1= '=' ) ) ( (lv_value_2_0= ruleXAnnotationElementValue ) ) ) ;
     public final EObject ruleXAnnotationElementValuePair() throws RecognitionException {
         EObject current = null;
 
@@ -2346,23 +2614,23 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:896:2: ( ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> ( ( ( ruleValidID ) ) otherlv_1= '=' ) ) ( (lv_value_2_0= ruleXAnnotationElementValue ) ) ) )
-            // InternalSignalDSL.g:897:2: ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> ( ( ( ruleValidID ) ) otherlv_1= '=' ) ) ( (lv_value_2_0= ruleXAnnotationElementValue ) ) )
+            // InternalSignalDSL.g:995:2: ( ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> ( ( ( ruleValidID ) ) otherlv_1= '=' ) ) ( (lv_value_2_0= ruleXAnnotationElementValue ) ) ) )
+            // InternalSignalDSL.g:996:2: ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> ( ( ( ruleValidID ) ) otherlv_1= '=' ) ) ( (lv_value_2_0= ruleXAnnotationElementValue ) ) )
             {
-            // InternalSignalDSL.g:897:2: ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> ( ( ( ruleValidID ) ) otherlv_1= '=' ) ) ( (lv_value_2_0= ruleXAnnotationElementValue ) ) )
-            // InternalSignalDSL.g:898:3: ( ( ( ( ( ruleValidID ) ) '=' ) )=> ( ( ( ruleValidID ) ) otherlv_1= '=' ) ) ( (lv_value_2_0= ruleXAnnotationElementValue ) )
+            // InternalSignalDSL.g:996:2: ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> ( ( ( ruleValidID ) ) otherlv_1= '=' ) ) ( (lv_value_2_0= ruleXAnnotationElementValue ) ) )
+            // InternalSignalDSL.g:997:3: ( ( ( ( ( ruleValidID ) ) '=' ) )=> ( ( ( ruleValidID ) ) otherlv_1= '=' ) ) ( (lv_value_2_0= ruleXAnnotationElementValue ) )
             {
-            // InternalSignalDSL.g:898:3: ( ( ( ( ( ruleValidID ) ) '=' ) )=> ( ( ( ruleValidID ) ) otherlv_1= '=' ) )
-            // InternalSignalDSL.g:899:4: ( ( ( ( ruleValidID ) ) '=' ) )=> ( ( ( ruleValidID ) ) otherlv_1= '=' )
+            // InternalSignalDSL.g:997:3: ( ( ( ( ( ruleValidID ) ) '=' ) )=> ( ( ( ruleValidID ) ) otherlv_1= '=' ) )
+            // InternalSignalDSL.g:998:4: ( ( ( ( ruleValidID ) ) '=' ) )=> ( ( ( ruleValidID ) ) otherlv_1= '=' )
             {
-            // InternalSignalDSL.g:908:4: ( ( ( ruleValidID ) ) otherlv_1= '=' )
-            // InternalSignalDSL.g:909:5: ( ( ruleValidID ) ) otherlv_1= '='
+            // InternalSignalDSL.g:1007:4: ( ( ( ruleValidID ) ) otherlv_1= '=' )
+            // InternalSignalDSL.g:1008:5: ( ( ruleValidID ) ) otherlv_1= '='
             {
-            // InternalSignalDSL.g:909:5: ( ( ruleValidID ) )
-            // InternalSignalDSL.g:910:6: ( ruleValidID )
+            // InternalSignalDSL.g:1008:5: ( ( ruleValidID ) )
+            // InternalSignalDSL.g:1009:6: ( ruleValidID )
             {
-            // InternalSignalDSL.g:910:6: ( ruleValidID )
-            // InternalSignalDSL.g:911:7: ruleValidID
+            // InternalSignalDSL.g:1009:6: ( ruleValidID )
+            // InternalSignalDSL.g:1010:7: ruleValidID
             {
             if ( state.backtracking==0 ) {
 
@@ -2376,7 +2644,7 @@
               							newCompositeNode(grammarAccess.getXAnnotationElementValuePairAccess().getElementJvmOperationCrossReference_0_0_0_0());
               						
             }
-            pushFollow(FOLLOW_22);
+            pushFollow(FOLLOW_25);
             ruleValidID();
 
             state._fsp--;
@@ -2392,7 +2660,7 @@
 
             }
 
-            otherlv_1=(Token)match(input,30,FOLLOW_23); if (state.failed) return current;
+            otherlv_1=(Token)match(input,32,FOLLOW_26); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               					newLeafNode(otherlv_1, grammarAccess.getXAnnotationElementValuePairAccess().getEqualsSignKeyword_0_0_1());
@@ -2404,11 +2672,11 @@
 
             }
 
-            // InternalSignalDSL.g:931:3: ( (lv_value_2_0= ruleXAnnotationElementValue ) )
-            // InternalSignalDSL.g:932:4: (lv_value_2_0= ruleXAnnotationElementValue )
+            // InternalSignalDSL.g:1030:3: ( (lv_value_2_0= ruleXAnnotationElementValue ) )
+            // InternalSignalDSL.g:1031:4: (lv_value_2_0= ruleXAnnotationElementValue )
             {
-            // InternalSignalDSL.g:932:4: (lv_value_2_0= ruleXAnnotationElementValue )
-            // InternalSignalDSL.g:933:5: lv_value_2_0= ruleXAnnotationElementValue
+            // InternalSignalDSL.g:1031:4: (lv_value_2_0= ruleXAnnotationElementValue )
+            // InternalSignalDSL.g:1032:5: lv_value_2_0= ruleXAnnotationElementValue
             {
             if ( state.backtracking==0 ) {
 
@@ -2464,7 +2732,7 @@
 
 
     // $ANTLR start "entryRuleXAnnotationElementValueOrCommaList"
-    // InternalSignalDSL.g:954:1: entryRuleXAnnotationElementValueOrCommaList returns [EObject current=null] : iv_ruleXAnnotationElementValueOrCommaList= ruleXAnnotationElementValueOrCommaList EOF ;
+    // InternalSignalDSL.g:1053:1: entryRuleXAnnotationElementValueOrCommaList returns [EObject current=null] : iv_ruleXAnnotationElementValueOrCommaList= ruleXAnnotationElementValueOrCommaList EOF ;
     public final EObject entryRuleXAnnotationElementValueOrCommaList() throws RecognitionException {
         EObject current = null;
 
@@ -2472,8 +2740,8 @@
 
 
         try {
-            // InternalSignalDSL.g:954:75: (iv_ruleXAnnotationElementValueOrCommaList= ruleXAnnotationElementValueOrCommaList EOF )
-            // InternalSignalDSL.g:955:2: iv_ruleXAnnotationElementValueOrCommaList= ruleXAnnotationElementValueOrCommaList EOF
+            // InternalSignalDSL.g:1053:75: (iv_ruleXAnnotationElementValueOrCommaList= ruleXAnnotationElementValueOrCommaList EOF )
+            // InternalSignalDSL.g:1054:2: iv_ruleXAnnotationElementValueOrCommaList= ruleXAnnotationElementValueOrCommaList EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXAnnotationElementValueOrCommaListRule()); 
@@ -2504,7 +2772,7 @@
 
 
     // $ANTLR start "ruleXAnnotationElementValueOrCommaList"
-    // InternalSignalDSL.g:961: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:1060: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;
 
@@ -2526,27 +2794,27 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:967: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:968: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:1066: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:1067: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:968: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 alt17=2;
-            alt17 = dfa17.predict(input);
-            switch (alt17) {
+            // InternalSignalDSL.g:1067: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 alt19=2;
+            alt19 = dfa19.predict(input);
+            switch (alt19) {
                 case 1 :
-                    // InternalSignalDSL.g:969:3: ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' )
+                    // InternalSignalDSL.g:1068:3: ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' )
                     {
-                    // InternalSignalDSL.g:969:3: ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' )
-                    // InternalSignalDSL.g:970:4: ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']'
+                    // InternalSignalDSL.g:1068:3: ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' )
+                    // InternalSignalDSL.g:1069:4: ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']'
                     {
-                    // InternalSignalDSL.g:970:4: ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) )
-                    // InternalSignalDSL.g:971:5: ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' )
+                    // InternalSignalDSL.g:1069:4: ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) )
+                    // InternalSignalDSL.g:1070:5: ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' )
                     {
-                    // InternalSignalDSL.g:978:5: ( () otherlv_1= '#' otherlv_2= '[' )
-                    // InternalSignalDSL.g:979:6: () otherlv_1= '#' otherlv_2= '['
+                    // InternalSignalDSL.g:1077:5: ( () otherlv_1= '#' otherlv_2= '[' )
+                    // InternalSignalDSL.g:1078:6: () otherlv_1= '#' otherlv_2= '['
                     {
-                    // InternalSignalDSL.g:979:6: ()
-                    // InternalSignalDSL.g:980:7: 
+                    // InternalSignalDSL.g:1078:6: ()
+                    // InternalSignalDSL.g:1079:7: 
                     {
                     if ( state.backtracking==0 ) {
 
@@ -2558,13 +2826,13 @@
 
                     }
 
-                    otherlv_1=(Token)match(input,31,FOLLOW_24); if (state.failed) return current;
+                    otherlv_1=(Token)match(input,33,FOLLOW_27); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       						newLeafNode(otherlv_1, grammarAccess.getXAnnotationElementValueOrCommaListAccess().getNumberSignKeyword_0_0_0_1());
                       					
                     }
-                    otherlv_2=(Token)match(input,32,FOLLOW_25); if (state.failed) return current;
+                    otherlv_2=(Token)match(input,34,FOLLOW_28); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       						newLeafNode(otherlv_2, grammarAccess.getXAnnotationElementValueOrCommaListAccess().getLeftSquareBracketKeyword_0_0_0_2());
@@ -2576,29 +2844,29 @@
 
                     }
 
-                    // InternalSignalDSL.g:996:4: ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )?
-                    int alt14=2;
-                    int LA14_0 = input.LA(1);
+                    // InternalSignalDSL.g:1095:4: ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )?
+                    int alt16=2;
+                    int LA16_0 = input.LA(1);
 
-                    if ( ((LA14_0>=RULE_ID && LA14_0<=RULE_DECIMAL)||LA14_0==14||LA14_0==18||(LA14_0>=20 && LA14_0<=22)||(LA14_0>=26 && LA14_0<=27)||(LA14_0>=31 && LA14_0<=32)||LA14_0==39||(LA14_0>=55 && LA14_0<=56)||LA14_0==60||LA14_0==68||LA14_0==70||(LA14_0>=74 && LA14_0<=75)||(LA14_0>=78 && LA14_0<=87)||LA14_0==89) ) {
-                        alt14=1;
+                    if ( ((LA16_0>=RULE_ID && LA16_0<=RULE_DECIMAL)||LA16_0==14||LA16_0==18||(LA16_0>=22 && LA16_0<=24)||(LA16_0>=28 && LA16_0<=29)||(LA16_0>=33 && LA16_0<=34)||LA16_0==41||(LA16_0>=57 && LA16_0<=58)||LA16_0==62||LA16_0==70||LA16_0==72||(LA16_0>=76 && LA16_0<=77)||(LA16_0>=80 && LA16_0<=89)||LA16_0==91) ) {
+                        alt16=1;
                     }
-                    switch (alt14) {
+                    switch (alt16) {
                         case 1 :
-                            // InternalSignalDSL.g:997:5: ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )*
+                            // InternalSignalDSL.g:1096:5: ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )*
                             {
-                            // InternalSignalDSL.g:997:5: ( (lv_elements_3_0= ruleXAnnotationOrExpression ) )
-                            // InternalSignalDSL.g:998:6: (lv_elements_3_0= ruleXAnnotationOrExpression )
+                            // InternalSignalDSL.g:1096:5: ( (lv_elements_3_0= ruleXAnnotationOrExpression ) )
+                            // InternalSignalDSL.g:1097:6: (lv_elements_3_0= ruleXAnnotationOrExpression )
                             {
-                            // InternalSignalDSL.g:998:6: (lv_elements_3_0= ruleXAnnotationOrExpression )
-                            // InternalSignalDSL.g:999:7: lv_elements_3_0= ruleXAnnotationOrExpression
+                            // InternalSignalDSL.g:1097:6: (lv_elements_3_0= ruleXAnnotationOrExpression )
+                            // InternalSignalDSL.g:1098:7: lv_elements_3_0= ruleXAnnotationOrExpression
                             {
                             if ( state.backtracking==0 ) {
 
                               							newCompositeNode(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getElementsXAnnotationOrExpressionParserRuleCall_0_1_0_0());
                               						
                             }
-                            pushFollow(FOLLOW_26);
+                            pushFollow(FOLLOW_29);
                             lv_elements_3_0=ruleXAnnotationOrExpression();
 
                             state._fsp--;
@@ -2622,39 +2890,39 @@
 
                             }
 
-                            // InternalSignalDSL.g:1016:5: (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )*
-                            loop13:
+                            // InternalSignalDSL.g:1115:5: (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )*
+                            loop15:
                             do {
-                                int alt13=2;
-                                int LA13_0 = input.LA(1);
+                                int alt15=2;
+                                int LA15_0 = input.LA(1);
 
-                                if ( (LA13_0==28) ) {
-                                    alt13=1;
+                                if ( (LA15_0==30) ) {
+                                    alt15=1;
                                 }
 
 
-                                switch (alt13) {
+                                switch (alt15) {
                             	case 1 :
-                            	    // InternalSignalDSL.g:1017:6: otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) )
+                            	    // InternalSignalDSL.g:1116:6: otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) )
                             	    {
-                            	    otherlv_4=(Token)match(input,28,FOLLOW_23); if (state.failed) return current;
+                            	    otherlv_4=(Token)match(input,30,FOLLOW_26); if (state.failed) return current;
                             	    if ( state.backtracking==0 ) {
 
                             	      						newLeafNode(otherlv_4, grammarAccess.getXAnnotationElementValueOrCommaListAccess().getCommaKeyword_0_1_1_0());
                             	      					
                             	    }
-                            	    // InternalSignalDSL.g:1021:6: ( (lv_elements_5_0= ruleXAnnotationOrExpression ) )
-                            	    // InternalSignalDSL.g:1022:7: (lv_elements_5_0= ruleXAnnotationOrExpression )
+                            	    // InternalSignalDSL.g:1120:6: ( (lv_elements_5_0= ruleXAnnotationOrExpression ) )
+                            	    // InternalSignalDSL.g:1121:7: (lv_elements_5_0= ruleXAnnotationOrExpression )
                             	    {
-                            	    // InternalSignalDSL.g:1022:7: (lv_elements_5_0= ruleXAnnotationOrExpression )
-                            	    // InternalSignalDSL.g:1023:8: lv_elements_5_0= ruleXAnnotationOrExpression
+                            	    // InternalSignalDSL.g:1121:7: (lv_elements_5_0= ruleXAnnotationOrExpression )
+                            	    // InternalSignalDSL.g:1122:8: lv_elements_5_0= ruleXAnnotationOrExpression
                             	    {
                             	    if ( state.backtracking==0 ) {
 
                             	      								newCompositeNode(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getElementsXAnnotationOrExpressionParserRuleCall_0_1_1_1_0());
                             	      							
                             	    }
-                            	    pushFollow(FOLLOW_26);
+                            	    pushFollow(FOLLOW_29);
                             	    lv_elements_5_0=ruleXAnnotationOrExpression();
 
                             	    state._fsp--;
@@ -2683,7 +2951,7 @@
                             	    break;
 
                             	default :
-                            	    break loop13;
+                            	    break loop15;
                                 }
                             } while (true);
 
@@ -2693,7 +2961,7 @@
 
                     }
 
-                    otherlv_6=(Token)match(input,33,FOLLOW_2); if (state.failed) return current;
+                    otherlv_6=(Token)match(input,35,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				newLeafNode(otherlv_6, grammarAccess.getXAnnotationElementValueOrCommaListAccess().getRightSquareBracketKeyword_0_2());
@@ -2706,17 +2974,17 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:1048:3: (this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression ( () (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+ )? )
+                    // InternalSignalDSL.g:1147:3: (this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression ( () (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+ )? )
                     {
-                    // InternalSignalDSL.g:1048:3: (this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression ( () (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+ )? )
-                    // InternalSignalDSL.g:1049:4: this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression ( () (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+ )?
+                    // InternalSignalDSL.g:1147:3: (this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression ( () (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+ )? )
+                    // InternalSignalDSL.g:1148:4: this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression ( () (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+ )?
                     {
                     if ( state.backtracking==0 ) {
 
                       				newCompositeNode(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getXAnnotationOrExpressionParserRuleCall_1_0());
                       			
                     }
-                    pushFollow(FOLLOW_27);
+                    pushFollow(FOLLOW_30);
                     this_XAnnotationOrExpression_7=ruleXAnnotationOrExpression();
 
                     state._fsp--;
@@ -2727,19 +2995,19 @@
                       				afterParserOrEnumRuleCall();
                       			
                     }
-                    // InternalSignalDSL.g:1057:4: ( () (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+ )?
-                    int alt16=2;
-                    int LA16_0 = input.LA(1);
+                    // InternalSignalDSL.g:1156:4: ( () (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+ )?
+                    int alt18=2;
+                    int LA18_0 = input.LA(1);
 
-                    if ( (LA16_0==28) ) {
-                        alt16=1;
+                    if ( (LA18_0==30) ) {
+                        alt18=1;
                     }
-                    switch (alt16) {
+                    switch (alt18) {
                         case 1 :
-                            // InternalSignalDSL.g:1058:5: () (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+
+                            // InternalSignalDSL.g:1157:5: () (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+
                             {
-                            // InternalSignalDSL.g:1058:5: ()
-                            // InternalSignalDSL.g:1059:6: 
+                            // InternalSignalDSL.g:1157:5: ()
+                            // InternalSignalDSL.g:1158:6: 
                             {
                             if ( state.backtracking==0 ) {
 
@@ -2751,40 +3019,40 @@
 
                             }
 
-                            // InternalSignalDSL.g:1065:5: (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+
-                            int cnt15=0;
-                            loop15:
+                            // InternalSignalDSL.g:1164:5: (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+
+                            int cnt17=0;
+                            loop17:
                             do {
-                                int alt15=2;
-                                int LA15_0 = input.LA(1);
+                                int alt17=2;
+                                int LA17_0 = input.LA(1);
 
-                                if ( (LA15_0==28) ) {
-                                    alt15=1;
+                                if ( (LA17_0==30) ) {
+                                    alt17=1;
                                 }
 
 
-                                switch (alt15) {
+                                switch (alt17) {
                             	case 1 :
-                            	    // InternalSignalDSL.g:1066:6: otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) )
+                            	    // InternalSignalDSL.g:1165:6: otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) )
                             	    {
-                            	    otherlv_9=(Token)match(input,28,FOLLOW_23); if (state.failed) return current;
+                            	    otherlv_9=(Token)match(input,30,FOLLOW_26); if (state.failed) return current;
                             	    if ( state.backtracking==0 ) {
 
                             	      						newLeafNode(otherlv_9, grammarAccess.getXAnnotationElementValueOrCommaListAccess().getCommaKeyword_1_1_1_0());
                             	      					
                             	    }
-                            	    // InternalSignalDSL.g:1070:6: ( (lv_elements_10_0= ruleXAnnotationOrExpression ) )
-                            	    // InternalSignalDSL.g:1071:7: (lv_elements_10_0= ruleXAnnotationOrExpression )
+                            	    // InternalSignalDSL.g:1169:6: ( (lv_elements_10_0= ruleXAnnotationOrExpression ) )
+                            	    // InternalSignalDSL.g:1170:7: (lv_elements_10_0= ruleXAnnotationOrExpression )
                             	    {
-                            	    // InternalSignalDSL.g:1071:7: (lv_elements_10_0= ruleXAnnotationOrExpression )
-                            	    // InternalSignalDSL.g:1072:8: lv_elements_10_0= ruleXAnnotationOrExpression
+                            	    // InternalSignalDSL.g:1170:7: (lv_elements_10_0= ruleXAnnotationOrExpression )
+                            	    // InternalSignalDSL.g:1171:8: lv_elements_10_0= ruleXAnnotationOrExpression
                             	    {
                             	    if ( state.backtracking==0 ) {
 
                             	      								newCompositeNode(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getElementsXAnnotationOrExpressionParserRuleCall_1_1_1_1_0());
                             	      							
                             	    }
-                            	    pushFollow(FOLLOW_27);
+                            	    pushFollow(FOLLOW_30);
                             	    lv_elements_10_0=ruleXAnnotationOrExpression();
 
                             	    state._fsp--;
@@ -2813,13 +3081,13 @@
                             	    break;
 
                             	default :
-                            	    if ( cnt15 >= 1 ) break loop15;
+                            	    if ( cnt17 >= 1 ) break loop17;
                             	    if (state.backtracking>0) {state.failed=true; return current;}
                                         EarlyExitException eee =
-                                            new EarlyExitException(15, input);
+                                            new EarlyExitException(17, input);
                                         throw eee;
                                 }
-                                cnt15++;
+                                cnt17++;
                             } while (true);
 
 
@@ -2859,7 +3127,7 @@
 
 
     // $ANTLR start "entryRuleXAnnotationElementValue"
-    // InternalSignalDSL.g:1096:1: entryRuleXAnnotationElementValue returns [EObject current=null] : iv_ruleXAnnotationElementValue= ruleXAnnotationElementValue EOF ;
+    // InternalSignalDSL.g:1195:1: entryRuleXAnnotationElementValue returns [EObject current=null] : iv_ruleXAnnotationElementValue= ruleXAnnotationElementValue EOF ;
     public final EObject entryRuleXAnnotationElementValue() throws RecognitionException {
         EObject current = null;
 
@@ -2867,8 +3135,8 @@
 
 
         try {
-            // InternalSignalDSL.g:1096:64: (iv_ruleXAnnotationElementValue= ruleXAnnotationElementValue EOF )
-            // InternalSignalDSL.g:1097:2: iv_ruleXAnnotationElementValue= ruleXAnnotationElementValue EOF
+            // InternalSignalDSL.g:1195:64: (iv_ruleXAnnotationElementValue= ruleXAnnotationElementValue EOF )
+            // InternalSignalDSL.g:1196:2: iv_ruleXAnnotationElementValue= ruleXAnnotationElementValue EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXAnnotationElementValueRule()); 
@@ -2899,7 +3167,7 @@
 
 
     // $ANTLR start "ruleXAnnotationElementValue"
-    // InternalSignalDSL.g:1103: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:1202: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;
 
@@ -2918,27 +3186,27 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:1109: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:1110: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:1208: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:1209: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:1110:2: ( ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' ) | this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression )
-            int alt20=2;
-            alt20 = dfa20.predict(input);
-            switch (alt20) {
+            // InternalSignalDSL.g:1209:2: ( ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' ) | this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression )
+            int alt22=2;
+            alt22 = dfa22.predict(input);
+            switch (alt22) {
                 case 1 :
-                    // InternalSignalDSL.g:1111:3: ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' )
+                    // InternalSignalDSL.g:1210:3: ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' )
                     {
-                    // InternalSignalDSL.g:1111:3: ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' )
-                    // InternalSignalDSL.g:1112:4: ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']'
+                    // InternalSignalDSL.g:1210:3: ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' )
+                    // InternalSignalDSL.g:1211:4: ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']'
                     {
-                    // InternalSignalDSL.g:1112:4: ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) )
-                    // InternalSignalDSL.g:1113:5: ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' )
+                    // InternalSignalDSL.g:1211:4: ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) )
+                    // InternalSignalDSL.g:1212:5: ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' )
                     {
-                    // InternalSignalDSL.g:1120:5: ( () otherlv_1= '#' otherlv_2= '[' )
-                    // InternalSignalDSL.g:1121:6: () otherlv_1= '#' otherlv_2= '['
+                    // InternalSignalDSL.g:1219:5: ( () otherlv_1= '#' otherlv_2= '[' )
+                    // InternalSignalDSL.g:1220:6: () otherlv_1= '#' otherlv_2= '['
                     {
-                    // InternalSignalDSL.g:1121:6: ()
-                    // InternalSignalDSL.g:1122:7: 
+                    // InternalSignalDSL.g:1220:6: ()
+                    // InternalSignalDSL.g:1221:7: 
                     {
                     if ( state.backtracking==0 ) {
 
@@ -2950,13 +3218,13 @@
 
                     }
 
-                    otherlv_1=(Token)match(input,31,FOLLOW_24); if (state.failed) return current;
+                    otherlv_1=(Token)match(input,33,FOLLOW_27); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       						newLeafNode(otherlv_1, grammarAccess.getXAnnotationElementValueAccess().getNumberSignKeyword_0_0_0_1());
                       					
                     }
-                    otherlv_2=(Token)match(input,32,FOLLOW_25); if (state.failed) return current;
+                    otherlv_2=(Token)match(input,34,FOLLOW_28); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       						newLeafNode(otherlv_2, grammarAccess.getXAnnotationElementValueAccess().getLeftSquareBracketKeyword_0_0_0_2());
@@ -2968,29 +3236,29 @@
 
                     }
 
-                    // InternalSignalDSL.g:1138:4: ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )?
-                    int alt19=2;
-                    int LA19_0 = input.LA(1);
+                    // InternalSignalDSL.g:1237:4: ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )?
+                    int alt21=2;
+                    int LA21_0 = input.LA(1);
 
-                    if ( ((LA19_0>=RULE_ID && LA19_0<=RULE_DECIMAL)||LA19_0==14||LA19_0==18||(LA19_0>=20 && LA19_0<=22)||(LA19_0>=26 && LA19_0<=27)||(LA19_0>=31 && LA19_0<=32)||LA19_0==39||(LA19_0>=55 && LA19_0<=56)||LA19_0==60||LA19_0==68||LA19_0==70||(LA19_0>=74 && LA19_0<=75)||(LA19_0>=78 && LA19_0<=87)||LA19_0==89) ) {
-                        alt19=1;
+                    if ( ((LA21_0>=RULE_ID && LA21_0<=RULE_DECIMAL)||LA21_0==14||LA21_0==18||(LA21_0>=22 && LA21_0<=24)||(LA21_0>=28 && LA21_0<=29)||(LA21_0>=33 && LA21_0<=34)||LA21_0==41||(LA21_0>=57 && LA21_0<=58)||LA21_0==62||LA21_0==70||LA21_0==72||(LA21_0>=76 && LA21_0<=77)||(LA21_0>=80 && LA21_0<=89)||LA21_0==91) ) {
+                        alt21=1;
                     }
-                    switch (alt19) {
+                    switch (alt21) {
                         case 1 :
-                            // InternalSignalDSL.g:1139:5: ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )*
+                            // InternalSignalDSL.g:1238:5: ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )*
                             {
-                            // InternalSignalDSL.g:1139:5: ( (lv_elements_3_0= ruleXAnnotationOrExpression ) )
-                            // InternalSignalDSL.g:1140:6: (lv_elements_3_0= ruleXAnnotationOrExpression )
+                            // InternalSignalDSL.g:1238:5: ( (lv_elements_3_0= ruleXAnnotationOrExpression ) )
+                            // InternalSignalDSL.g:1239:6: (lv_elements_3_0= ruleXAnnotationOrExpression )
                             {
-                            // InternalSignalDSL.g:1140:6: (lv_elements_3_0= ruleXAnnotationOrExpression )
-                            // InternalSignalDSL.g:1141:7: lv_elements_3_0= ruleXAnnotationOrExpression
+                            // InternalSignalDSL.g:1239:6: (lv_elements_3_0= ruleXAnnotationOrExpression )
+                            // InternalSignalDSL.g:1240:7: lv_elements_3_0= ruleXAnnotationOrExpression
                             {
                             if ( state.backtracking==0 ) {
 
                               							newCompositeNode(grammarAccess.getXAnnotationElementValueAccess().getElementsXAnnotationOrExpressionParserRuleCall_0_1_0_0());
                               						
                             }
-                            pushFollow(FOLLOW_26);
+                            pushFollow(FOLLOW_29);
                             lv_elements_3_0=ruleXAnnotationOrExpression();
 
                             state._fsp--;
@@ -3014,39 +3282,39 @@
 
                             }
 
-                            // InternalSignalDSL.g:1158:5: (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )*
-                            loop18:
+                            // InternalSignalDSL.g:1257:5: (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )*
+                            loop20:
                             do {
-                                int alt18=2;
-                                int LA18_0 = input.LA(1);
+                                int alt20=2;
+                                int LA20_0 = input.LA(1);
 
-                                if ( (LA18_0==28) ) {
-                                    alt18=1;
+                                if ( (LA20_0==30) ) {
+                                    alt20=1;
                                 }
 
 
-                                switch (alt18) {
+                                switch (alt20) {
                             	case 1 :
-                            	    // InternalSignalDSL.g:1159:6: otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) )
+                            	    // InternalSignalDSL.g:1258:6: otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) )
                             	    {
-                            	    otherlv_4=(Token)match(input,28,FOLLOW_23); if (state.failed) return current;
+                            	    otherlv_4=(Token)match(input,30,FOLLOW_26); if (state.failed) return current;
                             	    if ( state.backtracking==0 ) {
 
                             	      						newLeafNode(otherlv_4, grammarAccess.getXAnnotationElementValueAccess().getCommaKeyword_0_1_1_0());
                             	      					
                             	    }
-                            	    // InternalSignalDSL.g:1163:6: ( (lv_elements_5_0= ruleXAnnotationOrExpression ) )
-                            	    // InternalSignalDSL.g:1164:7: (lv_elements_5_0= ruleXAnnotationOrExpression )
+                            	    // InternalSignalDSL.g:1262:6: ( (lv_elements_5_0= ruleXAnnotationOrExpression ) )
+                            	    // InternalSignalDSL.g:1263:7: (lv_elements_5_0= ruleXAnnotationOrExpression )
                             	    {
-                            	    // InternalSignalDSL.g:1164:7: (lv_elements_5_0= ruleXAnnotationOrExpression )
-                            	    // InternalSignalDSL.g:1165:8: lv_elements_5_0= ruleXAnnotationOrExpression
+                            	    // InternalSignalDSL.g:1263:7: (lv_elements_5_0= ruleXAnnotationOrExpression )
+                            	    // InternalSignalDSL.g:1264:8: lv_elements_5_0= ruleXAnnotationOrExpression
                             	    {
                             	    if ( state.backtracking==0 ) {
 
                             	      								newCompositeNode(grammarAccess.getXAnnotationElementValueAccess().getElementsXAnnotationOrExpressionParserRuleCall_0_1_1_1_0());
                             	      							
                             	    }
-                            	    pushFollow(FOLLOW_26);
+                            	    pushFollow(FOLLOW_29);
                             	    lv_elements_5_0=ruleXAnnotationOrExpression();
 
                             	    state._fsp--;
@@ -3075,7 +3343,7 @@
                             	    break;
 
                             	default :
-                            	    break loop18;
+                            	    break loop20;
                                 }
                             } while (true);
 
@@ -3085,7 +3353,7 @@
 
                     }
 
-                    otherlv_6=(Token)match(input,33,FOLLOW_2); if (state.failed) return current;
+                    otherlv_6=(Token)match(input,35,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				newLeafNode(otherlv_6, grammarAccess.getXAnnotationElementValueAccess().getRightSquareBracketKeyword_0_2());
@@ -3098,7 +3366,7 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:1190:3: this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression
+                    // InternalSignalDSL.g:1289:3: this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression
                     {
                     if ( state.backtracking==0 ) {
 
@@ -3144,7 +3412,7 @@
 
 
     // $ANTLR start "entryRuleXAnnotationOrExpression"
-    // InternalSignalDSL.g:1202:1: entryRuleXAnnotationOrExpression returns [EObject current=null] : iv_ruleXAnnotationOrExpression= ruleXAnnotationOrExpression EOF ;
+    // InternalSignalDSL.g:1301:1: entryRuleXAnnotationOrExpression returns [EObject current=null] : iv_ruleXAnnotationOrExpression= ruleXAnnotationOrExpression EOF ;
     public final EObject entryRuleXAnnotationOrExpression() throws RecognitionException {
         EObject current = null;
 
@@ -3152,8 +3420,8 @@
 
 
         try {
-            // InternalSignalDSL.g:1202:64: (iv_ruleXAnnotationOrExpression= ruleXAnnotationOrExpression EOF )
-            // InternalSignalDSL.g:1203:2: iv_ruleXAnnotationOrExpression= ruleXAnnotationOrExpression EOF
+            // InternalSignalDSL.g:1301:64: (iv_ruleXAnnotationOrExpression= ruleXAnnotationOrExpression EOF )
+            // InternalSignalDSL.g:1302:2: iv_ruleXAnnotationOrExpression= ruleXAnnotationOrExpression EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXAnnotationOrExpressionRule()); 
@@ -3184,7 +3452,7 @@
 
 
     // $ANTLR start "ruleXAnnotationOrExpression"
-    // InternalSignalDSL.g:1209:1: ruleXAnnotationOrExpression returns [EObject current=null] : (this_XAnnotation_0= ruleXAnnotation | this_XExpression_1= ruleXExpression ) ;
+    // InternalSignalDSL.g:1308:1: ruleXAnnotationOrExpression returns [EObject current=null] : (this_XAnnotation_0= ruleXAnnotation | this_XExpression_1= ruleXExpression ) ;
     public final EObject ruleXAnnotationOrExpression() throws RecognitionException {
         EObject current = null;
 
@@ -3197,29 +3465,29 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:1215:2: ( (this_XAnnotation_0= ruleXAnnotation | this_XExpression_1= ruleXExpression ) )
-            // InternalSignalDSL.g:1216:2: (this_XAnnotation_0= ruleXAnnotation | this_XExpression_1= ruleXExpression )
+            // InternalSignalDSL.g:1314:2: ( (this_XAnnotation_0= ruleXAnnotation | this_XExpression_1= ruleXExpression ) )
+            // InternalSignalDSL.g:1315:2: (this_XAnnotation_0= ruleXAnnotation | this_XExpression_1= ruleXExpression )
             {
-            // InternalSignalDSL.g:1216:2: (this_XAnnotation_0= ruleXAnnotation | this_XExpression_1= ruleXExpression )
-            int alt21=2;
-            int LA21_0 = input.LA(1);
+            // InternalSignalDSL.g:1315:2: (this_XAnnotation_0= ruleXAnnotation | this_XExpression_1= ruleXExpression )
+            int alt23=2;
+            int LA23_0 = input.LA(1);
 
-            if ( (LA21_0==26) ) {
-                alt21=1;
+            if ( (LA23_0==28) ) {
+                alt23=1;
             }
-            else if ( ((LA21_0>=RULE_ID && LA21_0<=RULE_DECIMAL)||LA21_0==14||LA21_0==18||(LA21_0>=20 && LA21_0<=22)||LA21_0==27||(LA21_0>=31 && LA21_0<=32)||LA21_0==39||(LA21_0>=55 && LA21_0<=56)||LA21_0==60||LA21_0==68||LA21_0==70||(LA21_0>=74 && LA21_0<=75)||(LA21_0>=78 && LA21_0<=87)||LA21_0==89) ) {
-                alt21=2;
+            else if ( ((LA23_0>=RULE_ID && LA23_0<=RULE_DECIMAL)||LA23_0==14||LA23_0==18||(LA23_0>=22 && LA23_0<=24)||LA23_0==29||(LA23_0>=33 && LA23_0<=34)||LA23_0==41||(LA23_0>=57 && LA23_0<=58)||LA23_0==62||LA23_0==70||LA23_0==72||(LA23_0>=76 && LA23_0<=77)||(LA23_0>=80 && LA23_0<=89)||LA23_0==91) ) {
+                alt23=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 21, 0, input);
+                    new NoViableAltException("", 23, 0, input);
 
                 throw nvae;
             }
-            switch (alt21) {
+            switch (alt23) {
                 case 1 :
-                    // InternalSignalDSL.g:1217:3: this_XAnnotation_0= ruleXAnnotation
+                    // InternalSignalDSL.g:1316:3: this_XAnnotation_0= ruleXAnnotation
                     {
                     if ( state.backtracking==0 ) {
 
@@ -3241,7 +3509,7 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:1226:3: this_XExpression_1= ruleXExpression
+                    // InternalSignalDSL.g:1325:3: this_XExpression_1= ruleXExpression
                     {
                     if ( state.backtracking==0 ) {
 
@@ -3287,7 +3555,7 @@
 
 
     // $ANTLR start "entryRuleXExpression"
-    // InternalSignalDSL.g:1238:1: entryRuleXExpression returns [EObject current=null] : iv_ruleXExpression= ruleXExpression EOF ;
+    // InternalSignalDSL.g:1337:1: entryRuleXExpression returns [EObject current=null] : iv_ruleXExpression= ruleXExpression EOF ;
     public final EObject entryRuleXExpression() throws RecognitionException {
         EObject current = null;
 
@@ -3295,8 +3563,8 @@
 
 
         try {
-            // InternalSignalDSL.g:1238:52: (iv_ruleXExpression= ruleXExpression EOF )
-            // InternalSignalDSL.g:1239:2: iv_ruleXExpression= ruleXExpression EOF
+            // InternalSignalDSL.g:1337:52: (iv_ruleXExpression= ruleXExpression EOF )
+            // InternalSignalDSL.g:1338:2: iv_ruleXExpression= ruleXExpression EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXExpressionRule()); 
@@ -3327,7 +3595,7 @@
 
 
     // $ANTLR start "ruleXExpression"
-    // InternalSignalDSL.g:1245:1: ruleXExpression returns [EObject current=null] : this_XAssignment_0= ruleXAssignment ;
+    // InternalSignalDSL.g:1344:1: ruleXExpression returns [EObject current=null] : this_XAssignment_0= ruleXAssignment ;
     public final EObject ruleXExpression() throws RecognitionException {
         EObject current = null;
 
@@ -3338,8 +3606,8 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:1251:2: (this_XAssignment_0= ruleXAssignment )
-            // InternalSignalDSL.g:1252:2: this_XAssignment_0= ruleXAssignment
+            // InternalSignalDSL.g:1350:2: (this_XAssignment_0= ruleXAssignment )
+            // InternalSignalDSL.g:1351:2: this_XAssignment_0= ruleXAssignment
             {
             if ( state.backtracking==0 ) {
 
@@ -3379,7 +3647,7 @@
 
 
     // $ANTLR start "entryRuleXAssignment"
-    // InternalSignalDSL.g:1263:1: entryRuleXAssignment returns [EObject current=null] : iv_ruleXAssignment= ruleXAssignment EOF ;
+    // InternalSignalDSL.g:1362:1: entryRuleXAssignment returns [EObject current=null] : iv_ruleXAssignment= ruleXAssignment EOF ;
     public final EObject entryRuleXAssignment() throws RecognitionException {
         EObject current = null;
 
@@ -3387,8 +3655,8 @@
 
 
         try {
-            // InternalSignalDSL.g:1263:52: (iv_ruleXAssignment= ruleXAssignment EOF )
-            // InternalSignalDSL.g:1264:2: iv_ruleXAssignment= ruleXAssignment EOF
+            // InternalSignalDSL.g:1362:52: (iv_ruleXAssignment= ruleXAssignment EOF )
+            // InternalSignalDSL.g:1363:2: iv_ruleXAssignment= ruleXAssignment EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXAssignmentRule()); 
@@ -3419,7 +3687,7 @@
 
 
     // $ANTLR start "ruleXAssignment"
-    // InternalSignalDSL.g:1270: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:1369: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;
 
@@ -3434,83 +3702,64 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:1276:2: ( ( ( () ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ( (lv_value_3_0= ruleXAssignment ) ) ) | (this_XOrExpression_4= ruleXOrExpression ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )? ) ) )
-            // InternalSignalDSL.g:1277:2: ( ( () ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ( (lv_value_3_0= ruleXAssignment ) ) ) | (this_XOrExpression_4= ruleXOrExpression ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )? ) )
+            // InternalSignalDSL.g:1375:2: ( ( ( () ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ( (lv_value_3_0= ruleXAssignment ) ) ) | (this_XOrExpression_4= ruleXOrExpression ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )? ) ) )
+            // InternalSignalDSL.g:1376:2: ( ( () ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ( (lv_value_3_0= ruleXAssignment ) ) ) | (this_XOrExpression_4= ruleXOrExpression ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )? ) )
             {
-            // InternalSignalDSL.g:1277:2: ( ( () ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ( (lv_value_3_0= ruleXAssignment ) ) ) | (this_XOrExpression_4= ruleXOrExpression ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )? ) )
-            int alt23=2;
+            // InternalSignalDSL.g:1376:2: ( ( () ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ( (lv_value_3_0= ruleXAssignment ) ) ) | (this_XOrExpression_4= ruleXOrExpression ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )? ) )
+            int alt25=2;
             switch ( input.LA(1) ) {
             case RULE_ID:
                 {
-                int LA23_1 = input.LA(2);
+                int LA25_1 = input.LA(2);
 
-                if ( (LA23_1==30) ) {
-                    alt23=1;
+                if ( (LA25_1==32) ) {
+                    alt25=1;
                 }
-                else if ( (LA23_1==EOF||(LA23_1>=RULE_ID && LA23_1<=RULE_DECIMAL)||(LA23_1>=14 && LA23_1<=15)||LA23_1==18||(LA23_1>=20 && LA23_1<=23)||LA23_1==25||(LA23_1>=27 && LA23_1<=29)||(LA23_1>=31 && LA23_1<=66)||(LA23_1>=68 && LA23_1<=90)) ) {
-                    alt23=2;
+                else if ( (LA25_1==EOF||(LA25_1>=RULE_ID && LA25_1<=RULE_DECIMAL)||(LA25_1>=14 && LA25_1<=15)||LA25_1==18||(LA25_1>=22 && LA25_1<=25)||LA25_1==27||(LA25_1>=29 && LA25_1<=31)||(LA25_1>=33 && LA25_1<=68)||(LA25_1>=70 && LA25_1<=92)) ) {
+                    alt25=2;
                 }
                 else {
                     if (state.backtracking>0) {state.failed=true; return current;}
                     NoViableAltException nvae =
-                        new NoViableAltException("", 23, 1, input);
+                        new NoViableAltException("", 25, 1, input);
 
                     throw nvae;
                 }
                 }
                 break;
-            case 78:
+            case 80:
                 {
-                int LA23_2 = input.LA(2);
+                int LA25_2 = input.LA(2);
 
-                if ( (LA23_2==30) ) {
-                    alt23=1;
+                if ( (LA25_2==EOF||(LA25_2>=RULE_ID && LA25_2<=RULE_DECIMAL)||(LA25_2>=14 && LA25_2<=15)||LA25_2==18||(LA25_2>=22 && LA25_2<=25)||LA25_2==27||(LA25_2>=29 && LA25_2<=31)||(LA25_2>=33 && LA25_2<=68)||(LA25_2>=70 && LA25_2<=92)) ) {
+                    alt25=2;
                 }
-                else if ( (LA23_2==EOF||(LA23_2>=RULE_ID && LA23_2<=RULE_DECIMAL)||(LA23_2>=14 && LA23_2<=15)||LA23_2==18||(LA23_2>=20 && LA23_2<=23)||LA23_2==25||(LA23_2>=27 && LA23_2<=29)||(LA23_2>=31 && LA23_2<=66)||(LA23_2>=68 && LA23_2<=90)) ) {
-                    alt23=2;
+                else if ( (LA25_2==32) ) {
+                    alt25=1;
                 }
                 else {
                     if (state.backtracking>0) {state.failed=true; return current;}
                     NoViableAltException nvae =
-                        new NoViableAltException("", 23, 2, input);
+                        new NoViableAltException("", 25, 2, input);
 
                     throw nvae;
                 }
                 }
                 break;
-            case 21:
+            case 23:
                 {
-                int LA23_3 = input.LA(2);
+                int LA25_3 = input.LA(2);
 
-                if ( (LA23_3==30) ) {
-                    alt23=1;
+                if ( (LA25_3==EOF||(LA25_3>=RULE_ID && LA25_3<=RULE_DECIMAL)||(LA25_3>=14 && LA25_3<=15)||LA25_3==18||(LA25_3>=22 && LA25_3<=25)||LA25_3==27||(LA25_3>=29 && LA25_3<=31)||(LA25_3>=33 && LA25_3<=68)||(LA25_3>=70 && LA25_3<=92)) ) {
+                    alt25=2;
                 }
-                else if ( (LA23_3==EOF||(LA23_3>=RULE_ID && LA23_3<=RULE_DECIMAL)||(LA23_3>=14 && LA23_3<=15)||LA23_3==18||(LA23_3>=20 && LA23_3<=23)||LA23_3==25||(LA23_3>=27 && LA23_3<=29)||(LA23_3>=31 && LA23_3<=66)||(LA23_3>=68 && LA23_3<=90)) ) {
-                    alt23=2;
+                else if ( (LA25_3==32) ) {
+                    alt25=1;
                 }
                 else {
                     if (state.backtracking>0) {state.failed=true; return current;}
                     NoViableAltException nvae =
-                        new NoViableAltException("", 23, 3, input);
-
-                    throw nvae;
-                }
-                }
-                break;
-            case 20:
-                {
-                int LA23_4 = input.LA(2);
-
-                if ( (LA23_4==30) ) {
-                    alt23=1;
-                }
-                else if ( (LA23_4==EOF||(LA23_4>=RULE_ID && LA23_4<=RULE_DECIMAL)||(LA23_4>=14 && LA23_4<=15)||LA23_4==18||(LA23_4>=20 && LA23_4<=23)||LA23_4==25||(LA23_4>=27 && LA23_4<=29)||(LA23_4>=31 && LA23_4<=66)||(LA23_4>=68 && LA23_4<=90)) ) {
-                    alt23=2;
-                }
-                else {
-                    if (state.backtracking>0) {state.failed=true; return current;}
-                    NoViableAltException nvae =
-                        new NoViableAltException("", 23, 4, input);
+                        new NoViableAltException("", 25, 3, input);
 
                     throw nvae;
                 }
@@ -3518,18 +3767,37 @@
                 break;
             case 22:
                 {
-                int LA23_5 = input.LA(2);
+                int LA25_4 = input.LA(2);
 
-                if ( (LA23_5==30) ) {
-                    alt23=1;
+                if ( (LA25_4==32) ) {
+                    alt25=1;
                 }
-                else if ( (LA23_5==EOF||(LA23_5>=RULE_ID && LA23_5<=RULE_DECIMAL)||(LA23_5>=14 && LA23_5<=15)||LA23_5==18||(LA23_5>=20 && LA23_5<=23)||LA23_5==25||(LA23_5>=27 && LA23_5<=29)||(LA23_5>=31 && LA23_5<=66)||(LA23_5>=68 && LA23_5<=90)) ) {
-                    alt23=2;
+                else if ( (LA25_4==EOF||(LA25_4>=RULE_ID && LA25_4<=RULE_DECIMAL)||(LA25_4>=14 && LA25_4<=15)||LA25_4==18||(LA25_4>=22 && LA25_4<=25)||LA25_4==27||(LA25_4>=29 && LA25_4<=31)||(LA25_4>=33 && LA25_4<=68)||(LA25_4>=70 && LA25_4<=92)) ) {
+                    alt25=2;
                 }
                 else {
                     if (state.backtracking>0) {state.failed=true; return current;}
                     NoViableAltException nvae =
-                        new NoViableAltException("", 23, 5, input);
+                        new NoViableAltException("", 25, 4, input);
+
+                    throw nvae;
+                }
+                }
+                break;
+            case 24:
+                {
+                int LA25_5 = input.LA(2);
+
+                if ( (LA25_5==EOF||(LA25_5>=RULE_ID && LA25_5<=RULE_DECIMAL)||(LA25_5>=14 && LA25_5<=15)||LA25_5==18||(LA25_5>=22 && LA25_5<=25)||LA25_5==27||(LA25_5>=29 && LA25_5<=31)||(LA25_5>=33 && LA25_5<=68)||(LA25_5>=70 && LA25_5<=92)) ) {
+                    alt25=2;
+                }
+                else if ( (LA25_5==32) ) {
+                    alt25=1;
+                }
+                else {
+                    if (state.backtracking>0) {state.failed=true; return current;}
+                    NoViableAltException nvae =
+                        new NoViableAltException("", 25, 5, input);
 
                     throw nvae;
                 }
@@ -3541,19 +3809,17 @@
             case RULE_DECIMAL:
             case 14:
             case 18:
-            case 27:
-            case 31:
-            case 32:
-            case 39:
-            case 55:
-            case 56:
-            case 60:
-            case 68:
+            case 29:
+            case 33:
+            case 34:
+            case 41:
+            case 57:
+            case 58:
+            case 62:
             case 70:
-            case 74:
-            case 75:
-            case 79:
-            case 80:
+            case 72:
+            case 76:
+            case 77:
             case 81:
             case 82:
             case 83:
@@ -3561,28 +3827,30 @@
             case 85:
             case 86:
             case 87:
+            case 88:
             case 89:
+            case 91:
                 {
-                alt23=2;
+                alt25=2;
                 }
                 break;
             default:
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 23, 0, input);
+                    new NoViableAltException("", 25, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt23) {
+            switch (alt25) {
                 case 1 :
-                    // InternalSignalDSL.g:1278:3: ( () ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ( (lv_value_3_0= ruleXAssignment ) ) )
+                    // InternalSignalDSL.g:1377:3: ( () ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ( (lv_value_3_0= ruleXAssignment ) ) )
                     {
-                    // InternalSignalDSL.g:1278:3: ( () ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ( (lv_value_3_0= ruleXAssignment ) ) )
-                    // InternalSignalDSL.g:1279:4: () ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ( (lv_value_3_0= ruleXAssignment ) )
+                    // InternalSignalDSL.g:1377:3: ( () ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ( (lv_value_3_0= ruleXAssignment ) ) )
+                    // InternalSignalDSL.g:1378:4: () ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ( (lv_value_3_0= ruleXAssignment ) )
                     {
-                    // InternalSignalDSL.g:1279:4: ()
-                    // InternalSignalDSL.g:1280:5: 
+                    // InternalSignalDSL.g:1378:4: ()
+                    // InternalSignalDSL.g:1379:5: 
                     {
                     if ( state.backtracking==0 ) {
 
@@ -3594,11 +3862,11 @@
 
                     }
 
-                    // InternalSignalDSL.g:1286:4: ( ( ruleFeatureCallID ) )
-                    // InternalSignalDSL.g:1287:5: ( ruleFeatureCallID )
+                    // InternalSignalDSL.g:1385:4: ( ( ruleFeatureCallID ) )
+                    // InternalSignalDSL.g:1386:5: ( ruleFeatureCallID )
                     {
-                    // InternalSignalDSL.g:1287:5: ( ruleFeatureCallID )
-                    // InternalSignalDSL.g:1288:6: ruleFeatureCallID
+                    // InternalSignalDSL.g:1386:5: ( ruleFeatureCallID )
+                    // InternalSignalDSL.g:1387:6: ruleFeatureCallID
                     {
                     if ( state.backtracking==0 ) {
 
@@ -3612,7 +3880,7 @@
                       						newCompositeNode(grammarAccess.getXAssignmentAccess().getFeatureJvmIdentifiableElementCrossReference_0_1_0());
                       					
                     }
-                    pushFollow(FOLLOW_22);
+                    pushFollow(FOLLOW_25);
                     ruleFeatureCallID();
 
                     state._fsp--;
@@ -3633,7 +3901,7 @@
                       				newCompositeNode(grammarAccess.getXAssignmentAccess().getOpSingleAssignParserRuleCall_0_2());
                       			
                     }
-                    pushFollow(FOLLOW_23);
+                    pushFollow(FOLLOW_26);
                     ruleOpSingleAssign();
 
                     state._fsp--;
@@ -3643,11 +3911,11 @@
                       				afterParserOrEnumRuleCall();
                       			
                     }
-                    // InternalSignalDSL.g:1309:4: ( (lv_value_3_0= ruleXAssignment ) )
-                    // InternalSignalDSL.g:1310:5: (lv_value_3_0= ruleXAssignment )
+                    // InternalSignalDSL.g:1408:4: ( (lv_value_3_0= ruleXAssignment ) )
+                    // InternalSignalDSL.g:1409:5: (lv_value_3_0= ruleXAssignment )
                     {
-                    // InternalSignalDSL.g:1310:5: (lv_value_3_0= ruleXAssignment )
-                    // InternalSignalDSL.g:1311:6: lv_value_3_0= ruleXAssignment
+                    // InternalSignalDSL.g:1409:5: (lv_value_3_0= ruleXAssignment )
+                    // InternalSignalDSL.g:1410:6: lv_value_3_0= ruleXAssignment
                     {
                     if ( state.backtracking==0 ) {
 
@@ -3685,17 +3953,17 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:1330:3: (this_XOrExpression_4= ruleXOrExpression ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )? )
+                    // InternalSignalDSL.g:1429:3: (this_XOrExpression_4= ruleXOrExpression ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )? )
                     {
-                    // InternalSignalDSL.g:1330:3: (this_XOrExpression_4= ruleXOrExpression ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )? )
-                    // InternalSignalDSL.g:1331:4: this_XOrExpression_4= ruleXOrExpression ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )?
+                    // InternalSignalDSL.g:1429:3: (this_XOrExpression_4= ruleXOrExpression ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )? )
+                    // InternalSignalDSL.g:1430:4: this_XOrExpression_4= ruleXOrExpression ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )?
                     {
                     if ( state.backtracking==0 ) {
 
                       				newCompositeNode(grammarAccess.getXAssignmentAccess().getXOrExpressionParserRuleCall_1_0());
                       			
                     }
-                    pushFollow(FOLLOW_28);
+                    pushFollow(FOLLOW_31);
                     this_XOrExpression_4=ruleXOrExpression();
 
                     state._fsp--;
@@ -3706,21 +3974,21 @@
                       				afterParserOrEnumRuleCall();
                       			
                     }
-                    // InternalSignalDSL.g:1339:4: ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )?
-                    int alt22=2;
-                    alt22 = dfa22.predict(input);
-                    switch (alt22) {
+                    // InternalSignalDSL.g:1438:4: ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )?
+                    int alt24=2;
+                    alt24 = dfa24.predict(input);
+                    switch (alt24) {
                         case 1 :
-                            // InternalSignalDSL.g:1340:5: ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) )
+                            // InternalSignalDSL.g:1439:5: ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) )
                             {
-                            // InternalSignalDSL.g:1340:5: ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) )
-                            // InternalSignalDSL.g:1341:6: ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) )
+                            // InternalSignalDSL.g:1439:5: ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) )
+                            // InternalSignalDSL.g:1440:6: ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) )
                             {
-                            // InternalSignalDSL.g:1351:6: ( () ( ( ruleOpMultiAssign ) ) )
-                            // InternalSignalDSL.g:1352:7: () ( ( ruleOpMultiAssign ) )
+                            // InternalSignalDSL.g:1450:6: ( () ( ( ruleOpMultiAssign ) ) )
+                            // InternalSignalDSL.g:1451:7: () ( ( ruleOpMultiAssign ) )
                             {
-                            // InternalSignalDSL.g:1352:7: ()
-                            // InternalSignalDSL.g:1353:8: 
+                            // InternalSignalDSL.g:1451:7: ()
+                            // InternalSignalDSL.g:1452:8: 
                             {
                             if ( state.backtracking==0 ) {
 
@@ -3732,11 +4000,11 @@
 
                             }
 
-                            // InternalSignalDSL.g:1359:7: ( ( ruleOpMultiAssign ) )
-                            // InternalSignalDSL.g:1360:8: ( ruleOpMultiAssign )
+                            // InternalSignalDSL.g:1458:7: ( ( ruleOpMultiAssign ) )
+                            // InternalSignalDSL.g:1459:8: ( ruleOpMultiAssign )
                             {
-                            // InternalSignalDSL.g:1360:8: ( ruleOpMultiAssign )
-                            // InternalSignalDSL.g:1361:9: ruleOpMultiAssign
+                            // InternalSignalDSL.g:1459:8: ( ruleOpMultiAssign )
+                            // InternalSignalDSL.g:1460:9: ruleOpMultiAssign
                             {
                             if ( state.backtracking==0 ) {
 
@@ -3750,7 +4018,7 @@
                               									newCompositeNode(grammarAccess.getXAssignmentAccess().getFeatureJvmIdentifiableElementCrossReference_1_1_0_0_1_0());
                               								
                             }
-                            pushFollow(FOLLOW_23);
+                            pushFollow(FOLLOW_26);
                             ruleOpMultiAssign();
 
                             state._fsp--;
@@ -3772,11 +4040,11 @@
 
                             }
 
-                            // InternalSignalDSL.g:1377:5: ( (lv_rightOperand_7_0= ruleXAssignment ) )
-                            // InternalSignalDSL.g:1378:6: (lv_rightOperand_7_0= ruleXAssignment )
+                            // InternalSignalDSL.g:1476:5: ( (lv_rightOperand_7_0= ruleXAssignment ) )
+                            // InternalSignalDSL.g:1477:6: (lv_rightOperand_7_0= ruleXAssignment )
                             {
-                            // InternalSignalDSL.g:1378:6: (lv_rightOperand_7_0= ruleXAssignment )
-                            // InternalSignalDSL.g:1379:7: lv_rightOperand_7_0= ruleXAssignment
+                            // InternalSignalDSL.g:1477:6: (lv_rightOperand_7_0= ruleXAssignment )
+                            // InternalSignalDSL.g:1478:7: lv_rightOperand_7_0= ruleXAssignment
                             {
                             if ( state.backtracking==0 ) {
 
@@ -3844,7 +4112,7 @@
 
 
     // $ANTLR start "entryRuleOpSingleAssign"
-    // InternalSignalDSL.g:1402:1: entryRuleOpSingleAssign returns [String current=null] : iv_ruleOpSingleAssign= ruleOpSingleAssign EOF ;
+    // InternalSignalDSL.g:1501:1: entryRuleOpSingleAssign returns [String current=null] : iv_ruleOpSingleAssign= ruleOpSingleAssign EOF ;
     public final String entryRuleOpSingleAssign() throws RecognitionException {
         String current = null;
 
@@ -3852,8 +4120,8 @@
 
 
         try {
-            // InternalSignalDSL.g:1402:54: (iv_ruleOpSingleAssign= ruleOpSingleAssign EOF )
-            // InternalSignalDSL.g:1403:2: iv_ruleOpSingleAssign= ruleOpSingleAssign EOF
+            // InternalSignalDSL.g:1501:54: (iv_ruleOpSingleAssign= ruleOpSingleAssign EOF )
+            // InternalSignalDSL.g:1502:2: iv_ruleOpSingleAssign= ruleOpSingleAssign EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getOpSingleAssignRule()); 
@@ -3884,7 +4152,7 @@
 
 
     // $ANTLR start "ruleOpSingleAssign"
-    // InternalSignalDSL.g:1409:1: ruleOpSingleAssign returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : kw= '=' ;
+    // InternalSignalDSL.g:1508:1: ruleOpSingleAssign returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : kw= '=' ;
     public final AntlrDatatypeRuleToken ruleOpSingleAssign() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
@@ -3894,10 +4162,10 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:1415:2: (kw= '=' )
-            // InternalSignalDSL.g:1416:2: kw= '='
+            // InternalSignalDSL.g:1514:2: (kw= '=' )
+            // InternalSignalDSL.g:1515:2: kw= '='
             {
-            kw=(Token)match(input,30,FOLLOW_2); if (state.failed) return current;
+            kw=(Token)match(input,32,FOLLOW_2); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               		current.merge(kw);
@@ -3926,7 +4194,7 @@
 
 
     // $ANTLR start "entryRuleOpMultiAssign"
-    // InternalSignalDSL.g:1424:1: entryRuleOpMultiAssign returns [String current=null] : iv_ruleOpMultiAssign= ruleOpMultiAssign EOF ;
+    // InternalSignalDSL.g:1523:1: entryRuleOpMultiAssign returns [String current=null] : iv_ruleOpMultiAssign= ruleOpMultiAssign EOF ;
     public final String entryRuleOpMultiAssign() throws RecognitionException {
         String current = null;
 
@@ -3934,8 +4202,8 @@
 
 
         try {
-            // InternalSignalDSL.g:1424:53: (iv_ruleOpMultiAssign= ruleOpMultiAssign EOF )
-            // InternalSignalDSL.g:1425:2: iv_ruleOpMultiAssign= ruleOpMultiAssign EOF
+            // InternalSignalDSL.g:1523:53: (iv_ruleOpMultiAssign= ruleOpMultiAssign EOF )
+            // InternalSignalDSL.g:1524:2: iv_ruleOpMultiAssign= ruleOpMultiAssign EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getOpMultiAssignRule()); 
@@ -3966,7 +4234,7 @@
 
 
     // $ANTLR start "ruleOpMultiAssign"
-    // InternalSignalDSL.g:1431:1: ruleOpMultiAssign returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '+=' | kw= '-=' | kw= '*=' | kw= '/=' | kw= '%=' | (kw= '<' kw= '<' kw= '=' ) | (kw= '>' (kw= '>' )? kw= '>=' ) ) ;
+    // InternalSignalDSL.g:1530: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();
 
@@ -3976,60 +4244,60 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:1437:2: ( (kw= '+=' | kw= '-=' | kw= '*=' | kw= '/=' | kw= '%=' | (kw= '<' kw= '<' kw= '=' ) | (kw= '>' (kw= '>' )? kw= '>=' ) ) )
-            // InternalSignalDSL.g:1438:2: (kw= '+=' | kw= '-=' | kw= '*=' | kw= '/=' | kw= '%=' | (kw= '<' kw= '<' kw= '=' ) | (kw= '>' (kw= '>' )? kw= '>=' ) )
+            // InternalSignalDSL.g:1536:2: ( (kw= '+=' | kw= '-=' | kw= '*=' | kw= '/=' | kw= '%=' | (kw= '<' kw= '<' kw= '=' ) | (kw= '>' (kw= '>' )? kw= '>=' ) ) )
+            // InternalSignalDSL.g:1537:2: (kw= '+=' | kw= '-=' | kw= '*=' | kw= '/=' | kw= '%=' | (kw= '<' kw= '<' kw= '=' ) | (kw= '>' (kw= '>' )? kw= '>=' ) )
             {
-            // InternalSignalDSL.g:1438:2: (kw= '+=' | kw= '-=' | kw= '*=' | kw= '/=' | kw= '%=' | (kw= '<' kw= '<' kw= '=' ) | (kw= '>' (kw= '>' )? kw= '>=' ) )
-            int alt25=7;
+            // InternalSignalDSL.g:1537:2: (kw= '+=' | kw= '-=' | kw= '*=' | kw= '/=' | kw= '%=' | (kw= '<' kw= '<' kw= '=' ) | (kw= '>' (kw= '>' )? kw= '>=' ) )
+            int alt27=7;
             switch ( input.LA(1) ) {
-            case 34:
-                {
-                alt25=1;
-                }
-                break;
-            case 35:
-                {
-                alt25=2;
-                }
-                break;
             case 36:
                 {
-                alt25=3;
+                alt27=1;
                 }
                 break;
             case 37:
                 {
-                alt25=4;
+                alt27=2;
                 }
                 break;
             case 38:
                 {
-                alt25=5;
+                alt27=3;
                 }
                 break;
             case 39:
                 {
-                alt25=6;
+                alt27=4;
                 }
                 break;
             case 40:
                 {
-                alt25=7;
+                alt27=5;
+                }
+                break;
+            case 41:
+                {
+                alt27=6;
+                }
+                break;
+            case 42:
+                {
+                alt27=7;
                 }
                 break;
             default:
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 25, 0, input);
+                    new NoViableAltException("", 27, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt25) {
+            switch (alt27) {
                 case 1 :
-                    // InternalSignalDSL.g:1439:3: kw= '+='
+                    // InternalSignalDSL.g:1538:3: kw= '+='
                     {
-                    kw=(Token)match(input,34,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);
@@ -4040,9 +4308,9 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:1445:3: kw= '-='
+                    // InternalSignalDSL.g:1544:3: kw= '-='
                     {
-                    kw=(Token)match(input,35,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,37,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -4053,9 +4321,9 @@
                     }
                     break;
                 case 3 :
-                    // InternalSignalDSL.g:1451:3: kw= '*='
+                    // InternalSignalDSL.g:1550:3: kw= '*='
                     {
-                    kw=(Token)match(input,36,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,38,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -4066,9 +4334,9 @@
                     }
                     break;
                 case 4 :
-                    // InternalSignalDSL.g:1457:3: kw= '/='
+                    // InternalSignalDSL.g:1556:3: kw= '/='
                     {
-                    kw=(Token)match(input,37,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,39,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -4079,9 +4347,9 @@
                     }
                     break;
                 case 5 :
-                    // InternalSignalDSL.g:1463:3: kw= '%='
+                    // InternalSignalDSL.g:1562:3: kw= '%='
                     {
-                    kw=(Token)match(input,38,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,40,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -4092,26 +4360,26 @@
                     }
                     break;
                 case 6 :
-                    // InternalSignalDSL.g:1469:3: (kw= '<' kw= '<' kw= '=' )
+                    // InternalSignalDSL.g:1568:3: (kw= '<' kw= '<' kw= '=' )
                     {
-                    // InternalSignalDSL.g:1469:3: (kw= '<' kw= '<' kw= '=' )
-                    // InternalSignalDSL.g:1470:4: kw= '<' kw= '<' kw= '='
+                    // InternalSignalDSL.g:1568:3: (kw= '<' kw= '<' kw= '=' )
+                    // InternalSignalDSL.g:1569:4: kw= '<' kw= '<' kw= '='
                     {
-                    kw=(Token)match(input,39,FOLLOW_29); if (state.failed) return current;
+                    kw=(Token)match(input,41,FOLLOW_32); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current.merge(kw);
                       				newLeafNode(kw, grammarAccess.getOpMultiAssignAccess().getLessThanSignKeyword_5_0());
                       			
                     }
-                    kw=(Token)match(input,39,FOLLOW_22); if (state.failed) return current;
+                    kw=(Token)match(input,41,FOLLOW_25); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current.merge(kw);
                       				newLeafNode(kw, grammarAccess.getOpMultiAssignAccess().getLessThanSignKeyword_5_1());
                       			
                     }
-                    kw=(Token)match(input,30,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,32,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current.merge(kw);
@@ -4125,30 +4393,30 @@
                     }
                     break;
                 case 7 :
-                    // InternalSignalDSL.g:1487:3: (kw= '>' (kw= '>' )? kw= '>=' )
+                    // InternalSignalDSL.g:1586:3: (kw= '>' (kw= '>' )? kw= '>=' )
                     {
-                    // InternalSignalDSL.g:1487:3: (kw= '>' (kw= '>' )? kw= '>=' )
-                    // InternalSignalDSL.g:1488:4: kw= '>' (kw= '>' )? kw= '>='
+                    // InternalSignalDSL.g:1586:3: (kw= '>' (kw= '>' )? kw= '>=' )
+                    // InternalSignalDSL.g:1587:4: kw= '>' (kw= '>' )? kw= '>='
                     {
-                    kw=(Token)match(input,40,FOLLOW_30); if (state.failed) return current;
+                    kw=(Token)match(input,42,FOLLOW_33); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current.merge(kw);
                       				newLeafNode(kw, grammarAccess.getOpMultiAssignAccess().getGreaterThanSignKeyword_6_0());
                       			
                     }
-                    // InternalSignalDSL.g:1493:4: (kw= '>' )?
-                    int alt24=2;
-                    int LA24_0 = input.LA(1);
+                    // InternalSignalDSL.g:1592:4: (kw= '>' )?
+                    int alt26=2;
+                    int LA26_0 = input.LA(1);
 
-                    if ( (LA24_0==40) ) {
-                        alt24=1;
+                    if ( (LA26_0==42) ) {
+                        alt26=1;
                     }
-                    switch (alt24) {
+                    switch (alt26) {
                         case 1 :
-                            // InternalSignalDSL.g:1494:5: kw= '>'
+                            // InternalSignalDSL.g:1593:5: kw= '>'
                             {
-                            kw=(Token)match(input,40,FOLLOW_31); if (state.failed) return current;
+                            kw=(Token)match(input,42,FOLLOW_34); if (state.failed) return current;
                             if ( state.backtracking==0 ) {
 
                               					current.merge(kw);
@@ -4161,7 +4429,7 @@
 
                     }
 
-                    kw=(Token)match(input,41,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);
@@ -4199,7 +4467,7 @@
 
 
     // $ANTLR start "entryRuleXOrExpression"
-    // InternalSignalDSL.g:1510:1: entryRuleXOrExpression returns [EObject current=null] : iv_ruleXOrExpression= ruleXOrExpression EOF ;
+    // InternalSignalDSL.g:1609:1: entryRuleXOrExpression returns [EObject current=null] : iv_ruleXOrExpression= ruleXOrExpression EOF ;
     public final EObject entryRuleXOrExpression() throws RecognitionException {
         EObject current = null;
 
@@ -4207,8 +4475,8 @@
 
 
         try {
-            // InternalSignalDSL.g:1510:54: (iv_ruleXOrExpression= ruleXOrExpression EOF )
-            // InternalSignalDSL.g:1511:2: iv_ruleXOrExpression= ruleXOrExpression EOF
+            // InternalSignalDSL.g:1609:54: (iv_ruleXOrExpression= ruleXOrExpression EOF )
+            // InternalSignalDSL.g:1610:2: iv_ruleXOrExpression= ruleXOrExpression EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXOrExpressionRule()); 
@@ -4239,7 +4507,7 @@
 
 
     // $ANTLR start "ruleXOrExpression"
-    // InternalSignalDSL.g:1517:1: ruleXOrExpression returns [EObject current=null] : (this_XAndExpression_0= ruleXAndExpression ( ( ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) ) ) ( (lv_rightOperand_3_0= ruleXAndExpression ) ) )* ) ;
+    // InternalSignalDSL.g:1616: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;
 
@@ -4252,18 +4520,18 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:1523:2: ( (this_XAndExpression_0= ruleXAndExpression ( ( ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) ) ) ( (lv_rightOperand_3_0= ruleXAndExpression ) ) )* ) )
-            // InternalSignalDSL.g:1524:2: (this_XAndExpression_0= ruleXAndExpression ( ( ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) ) ) ( (lv_rightOperand_3_0= ruleXAndExpression ) ) )* )
+            // InternalSignalDSL.g:1622:2: ( (this_XAndExpression_0= ruleXAndExpression ( ( ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) ) ) ( (lv_rightOperand_3_0= ruleXAndExpression ) ) )* ) )
+            // InternalSignalDSL.g:1623:2: (this_XAndExpression_0= ruleXAndExpression ( ( ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) ) ) ( (lv_rightOperand_3_0= ruleXAndExpression ) ) )* )
             {
-            // InternalSignalDSL.g:1524:2: (this_XAndExpression_0= ruleXAndExpression ( ( ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) ) ) ( (lv_rightOperand_3_0= ruleXAndExpression ) ) )* )
-            // InternalSignalDSL.g:1525:3: this_XAndExpression_0= ruleXAndExpression ( ( ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) ) ) ( (lv_rightOperand_3_0= ruleXAndExpression ) ) )*
+            // InternalSignalDSL.g:1623:2: (this_XAndExpression_0= ruleXAndExpression ( ( ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) ) ) ( (lv_rightOperand_3_0= ruleXAndExpression ) ) )* )
+            // InternalSignalDSL.g:1624:3: this_XAndExpression_0= ruleXAndExpression ( ( ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) ) ) ( (lv_rightOperand_3_0= ruleXAndExpression ) ) )*
             {
             if ( state.backtracking==0 ) {
 
               			newCompositeNode(grammarAccess.getXOrExpressionAccess().getXAndExpressionParserRuleCall_0());
               		
             }
-            pushFollow(FOLLOW_32);
+            pushFollow(FOLLOW_35);
             this_XAndExpression_0=ruleXAndExpression();
 
             state._fsp--;
@@ -4274,35 +4542,35 @@
               			afterParserOrEnumRuleCall();
               		
             }
-            // InternalSignalDSL.g:1533:3: ( ( ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) ) ) ( (lv_rightOperand_3_0= ruleXAndExpression ) ) )*
-            loop26:
+            // InternalSignalDSL.g:1632:3: ( ( ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) ) ) ( (lv_rightOperand_3_0= ruleXAndExpression ) ) )*
+            loop28:
             do {
-                int alt26=2;
-                int LA26_0 = input.LA(1);
+                int alt28=2;
+                int LA28_0 = input.LA(1);
 
-                if ( (LA26_0==42) ) {
-                    int LA26_2 = input.LA(2);
+                if ( (LA28_0==44) ) {
+                    int LA28_2 = input.LA(2);
 
                     if ( (synpred8_InternalSignalDSL()) ) {
-                        alt26=1;
+                        alt28=1;
                     }
 
 
                 }
 
 
-                switch (alt26) {
+                switch (alt28) {
             	case 1 :
-            	    // InternalSignalDSL.g:1534:4: ( ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) ) ) ( (lv_rightOperand_3_0= ruleXAndExpression ) )
+            	    // InternalSignalDSL.g:1633:4: ( ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) ) ) ( (lv_rightOperand_3_0= ruleXAndExpression ) )
             	    {
-            	    // InternalSignalDSL.g:1534:4: ( ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) ) )
-            	    // InternalSignalDSL.g:1535:5: ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) )
+            	    // InternalSignalDSL.g:1633:4: ( ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) ) )
+            	    // InternalSignalDSL.g:1634:5: ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) )
             	    {
-            	    // InternalSignalDSL.g:1545:5: ( () ( ( ruleOpOr ) ) )
-            	    // InternalSignalDSL.g:1546:6: () ( ( ruleOpOr ) )
+            	    // InternalSignalDSL.g:1644:5: ( () ( ( ruleOpOr ) ) )
+            	    // InternalSignalDSL.g:1645:6: () ( ( ruleOpOr ) )
             	    {
-            	    // InternalSignalDSL.g:1546:6: ()
-            	    // InternalSignalDSL.g:1547:7: 
+            	    // InternalSignalDSL.g:1645:6: ()
+            	    // InternalSignalDSL.g:1646:7: 
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -4314,11 +4582,11 @@
 
             	    }
 
-            	    // InternalSignalDSL.g:1553:6: ( ( ruleOpOr ) )
-            	    // InternalSignalDSL.g:1554:7: ( ruleOpOr )
+            	    // InternalSignalDSL.g:1652:6: ( ( ruleOpOr ) )
+            	    // InternalSignalDSL.g:1653:7: ( ruleOpOr )
             	    {
-            	    // InternalSignalDSL.g:1554:7: ( ruleOpOr )
-            	    // InternalSignalDSL.g:1555:8: ruleOpOr
+            	    // InternalSignalDSL.g:1653:7: ( ruleOpOr )
+            	    // InternalSignalDSL.g:1654:8: ruleOpOr
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -4332,7 +4600,7 @@
             	      								newCompositeNode(grammarAccess.getXOrExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0());
             	      							
             	    }
-            	    pushFollow(FOLLOW_23);
+            	    pushFollow(FOLLOW_26);
             	    ruleOpOr();
 
             	    state._fsp--;
@@ -4354,18 +4622,18 @@
 
             	    }
 
-            	    // InternalSignalDSL.g:1571:4: ( (lv_rightOperand_3_0= ruleXAndExpression ) )
-            	    // InternalSignalDSL.g:1572:5: (lv_rightOperand_3_0= ruleXAndExpression )
+            	    // InternalSignalDSL.g:1670:4: ( (lv_rightOperand_3_0= ruleXAndExpression ) )
+            	    // InternalSignalDSL.g:1671:5: (lv_rightOperand_3_0= ruleXAndExpression )
             	    {
-            	    // InternalSignalDSL.g:1572:5: (lv_rightOperand_3_0= ruleXAndExpression )
-            	    // InternalSignalDSL.g:1573:6: lv_rightOperand_3_0= ruleXAndExpression
+            	    // InternalSignalDSL.g:1671:5: (lv_rightOperand_3_0= ruleXAndExpression )
+            	    // InternalSignalDSL.g:1672:6: lv_rightOperand_3_0= ruleXAndExpression
             	    {
             	    if ( state.backtracking==0 ) {
 
             	      						newCompositeNode(grammarAccess.getXOrExpressionAccess().getRightOperandXAndExpressionParserRuleCall_1_1_0());
             	      					
             	    }
-            	    pushFollow(FOLLOW_32);
+            	    pushFollow(FOLLOW_35);
             	    lv_rightOperand_3_0=ruleXAndExpression();
 
             	    state._fsp--;
@@ -4394,653 +4662,6 @@
             	    break;
 
             	default :
-            	    break loop26;
-                }
-            } while (true);
-
-
-            }
-
-
-            }
-
-            if ( state.backtracking==0 ) {
-
-              	leaveRule();
-
-            }
-        }
-
-            catch (RecognitionException re) {
-                recover(input,re);
-                appendSkippedTokens();
-            }
-        finally {
-        }
-        return current;
-    }
-    // $ANTLR end "ruleXOrExpression"
-
-
-    // $ANTLR start "entryRuleOpOr"
-    // InternalSignalDSL.g:1595:1: entryRuleOpOr returns [String current=null] : iv_ruleOpOr= ruleOpOr EOF ;
-    public final String entryRuleOpOr() throws RecognitionException {
-        String current = null;
-
-        AntlrDatatypeRuleToken iv_ruleOpOr = null;
-
-
-        try {
-            // InternalSignalDSL.g:1595:44: (iv_ruleOpOr= ruleOpOr EOF )
-            // InternalSignalDSL.g:1596:2: iv_ruleOpOr= ruleOpOr EOF
-            {
-            if ( state.backtracking==0 ) {
-               newCompositeNode(grammarAccess.getOpOrRule()); 
-            }
-            pushFollow(FOLLOW_1);
-            iv_ruleOpOr=ruleOpOr();
-
-            state._fsp--;
-            if (state.failed) return current;
-            if ( state.backtracking==0 ) {
-               current =iv_ruleOpOr.getText(); 
-            }
-            match(input,EOF,FOLLOW_2); if (state.failed) return current;
-
-            }
-
-        }
-
-            catch (RecognitionException re) {
-                recover(input,re);
-                appendSkippedTokens();
-            }
-        finally {
-        }
-        return current;
-    }
-    // $ANTLR end "entryRuleOpOr"
-
-
-    // $ANTLR start "ruleOpOr"
-    // InternalSignalDSL.g:1602:1: ruleOpOr returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : kw= '||' ;
-    public final AntlrDatatypeRuleToken ruleOpOr() throws RecognitionException {
-        AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
-
-        Token kw=null;
-
-
-        	enterRule();
-
-        try {
-            // InternalSignalDSL.g:1608:2: (kw= '||' )
-            // InternalSignalDSL.g:1609:2: kw= '||'
-            {
-            kw=(Token)match(input,42,FOLLOW_2); if (state.failed) return current;
-            if ( state.backtracking==0 ) {
-
-              		current.merge(kw);
-              		newLeafNode(kw, grammarAccess.getOpOrAccess().getVerticalLineVerticalLineKeyword());
-              	
-            }
-
-            }
-
-            if ( state.backtracking==0 ) {
-
-              	leaveRule();
-
-            }
-        }
-
-            catch (RecognitionException re) {
-                recover(input,re);
-                appendSkippedTokens();
-            }
-        finally {
-        }
-        return current;
-    }
-    // $ANTLR end "ruleOpOr"
-
-
-    // $ANTLR start "entryRuleXAndExpression"
-    // InternalSignalDSL.g:1617:1: entryRuleXAndExpression returns [EObject current=null] : iv_ruleXAndExpression= ruleXAndExpression EOF ;
-    public final EObject entryRuleXAndExpression() throws RecognitionException {
-        EObject current = null;
-
-        EObject iv_ruleXAndExpression = null;
-
-
-        try {
-            // InternalSignalDSL.g:1617:55: (iv_ruleXAndExpression= ruleXAndExpression EOF )
-            // InternalSignalDSL.g:1618:2: iv_ruleXAndExpression= ruleXAndExpression EOF
-            {
-            if ( state.backtracking==0 ) {
-               newCompositeNode(grammarAccess.getXAndExpressionRule()); 
-            }
-            pushFollow(FOLLOW_1);
-            iv_ruleXAndExpression=ruleXAndExpression();
-
-            state._fsp--;
-            if (state.failed) return current;
-            if ( state.backtracking==0 ) {
-               current =iv_ruleXAndExpression; 
-            }
-            match(input,EOF,FOLLOW_2); if (state.failed) return current;
-
-            }
-
-        }
-
-            catch (RecognitionException re) {
-                recover(input,re);
-                appendSkippedTokens();
-            }
-        finally {
-        }
-        return current;
-    }
-    // $ANTLR end "entryRuleXAndExpression"
-
-
-    // $ANTLR start "ruleXAndExpression"
-    // InternalSignalDSL.g:1624: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;
-
-        EObject this_XEqualityExpression_0 = null;
-
-        EObject lv_rightOperand_3_0 = null;
-
-
-
-        	enterRule();
-
-        try {
-            // InternalSignalDSL.g:1630:2: ( (this_XEqualityExpression_0= ruleXEqualityExpression ( ( ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) ) ) ( (lv_rightOperand_3_0= ruleXEqualityExpression ) ) )* ) )
-            // InternalSignalDSL.g:1631:2: (this_XEqualityExpression_0= ruleXEqualityExpression ( ( ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) ) ) ( (lv_rightOperand_3_0= ruleXEqualityExpression ) ) )* )
-            {
-            // InternalSignalDSL.g:1631:2: (this_XEqualityExpression_0= ruleXEqualityExpression ( ( ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) ) ) ( (lv_rightOperand_3_0= ruleXEqualityExpression ) ) )* )
-            // InternalSignalDSL.g:1632:3: this_XEqualityExpression_0= ruleXEqualityExpression ( ( ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) ) ) ( (lv_rightOperand_3_0= ruleXEqualityExpression ) ) )*
-            {
-            if ( state.backtracking==0 ) {
-
-              			newCompositeNode(grammarAccess.getXAndExpressionAccess().getXEqualityExpressionParserRuleCall_0());
-              		
-            }
-            pushFollow(FOLLOW_33);
-            this_XEqualityExpression_0=ruleXEqualityExpression();
-
-            state._fsp--;
-            if (state.failed) return current;
-            if ( state.backtracking==0 ) {
-
-              			current = this_XEqualityExpression_0;
-              			afterParserOrEnumRuleCall();
-              		
-            }
-            // InternalSignalDSL.g:1640:3: ( ( ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) ) ) ( (lv_rightOperand_3_0= ruleXEqualityExpression ) ) )*
-            loop27:
-            do {
-                int alt27=2;
-                int LA27_0 = input.LA(1);
-
-                if ( (LA27_0==43) ) {
-                    int LA27_2 = input.LA(2);
-
-                    if ( (synpred9_InternalSignalDSL()) ) {
-                        alt27=1;
-                    }
-
-
-                }
-
-
-                switch (alt27) {
-            	case 1 :
-            	    // InternalSignalDSL.g:1641:4: ( ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) ) ) ( (lv_rightOperand_3_0= ruleXEqualityExpression ) )
-            	    {
-            	    // InternalSignalDSL.g:1641:4: ( ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) ) )
-            	    // InternalSignalDSL.g:1642:5: ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) )
-            	    {
-            	    // InternalSignalDSL.g:1652:5: ( () ( ( ruleOpAnd ) ) )
-            	    // InternalSignalDSL.g:1653:6: () ( ( ruleOpAnd ) )
-            	    {
-            	    // InternalSignalDSL.g:1653:6: ()
-            	    // InternalSignalDSL.g:1654:7: 
-            	    {
-            	    if ( state.backtracking==0 ) {
-
-            	      							current = forceCreateModelElementAndSet(
-            	      								grammarAccess.getXAndExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0(),
-            	      								current);
-            	      						
-            	    }
-
-            	    }
-
-            	    // InternalSignalDSL.g:1660:6: ( ( ruleOpAnd ) )
-            	    // InternalSignalDSL.g:1661:7: ( ruleOpAnd )
-            	    {
-            	    // InternalSignalDSL.g:1661:7: ( ruleOpAnd )
-            	    // InternalSignalDSL.g:1662:8: ruleOpAnd
-            	    {
-            	    if ( state.backtracking==0 ) {
-
-            	      								if (current==null) {
-            	      									current = createModelElement(grammarAccess.getXAndExpressionRule());
-            	      								}
-            	      							
-            	    }
-            	    if ( state.backtracking==0 ) {
-
-            	      								newCompositeNode(grammarAccess.getXAndExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0());
-            	      							
-            	    }
-            	    pushFollow(FOLLOW_23);
-            	    ruleOpAnd();
-
-            	    state._fsp--;
-            	    if (state.failed) return current;
-            	    if ( state.backtracking==0 ) {
-
-            	      								afterParserOrEnumRuleCall();
-            	      							
-            	    }
-
-            	    }
-
-
-            	    }
-
-
-            	    }
-
-
-            	    }
-
-            	    // InternalSignalDSL.g:1678:4: ( (lv_rightOperand_3_0= ruleXEqualityExpression ) )
-            	    // InternalSignalDSL.g:1679:5: (lv_rightOperand_3_0= ruleXEqualityExpression )
-            	    {
-            	    // InternalSignalDSL.g:1679:5: (lv_rightOperand_3_0= ruleXEqualityExpression )
-            	    // InternalSignalDSL.g:1680:6: lv_rightOperand_3_0= ruleXEqualityExpression
-            	    {
-            	    if ( state.backtracking==0 ) {
-
-            	      						newCompositeNode(grammarAccess.getXAndExpressionAccess().getRightOperandXEqualityExpressionParserRuleCall_1_1_0());
-            	      					
-            	    }
-            	    pushFollow(FOLLOW_33);
-            	    lv_rightOperand_3_0=ruleXEqualityExpression();
-
-            	    state._fsp--;
-            	    if (state.failed) return current;
-            	    if ( state.backtracking==0 ) {
-
-            	      						if (current==null) {
-            	      							current = createModelElementForParent(grammarAccess.getXAndExpressionRule());
-            	      						}
-            	      						set(
-            	      							current,
-            	      							"rightOperand",
-            	      							lv_rightOperand_3_0,
-            	      							"org.eclipse.xtext.xbase.Xbase.XEqualityExpression");
-            	      						afterParserOrEnumRuleCall();
-            	      					
-            	    }
-
-            	    }
-
-
-            	    }
-
-
-            	    }
-            	    break;
-
-            	default :
-            	    break loop27;
-                }
-            } while (true);
-
-
-            }
-
-
-            }
-
-            if ( state.backtracking==0 ) {
-
-              	leaveRule();
-
-            }
-        }
-
-            catch (RecognitionException re) {
-                recover(input,re);
-                appendSkippedTokens();
-            }
-        finally {
-        }
-        return current;
-    }
-    // $ANTLR end "ruleXAndExpression"
-
-
-    // $ANTLR start "entryRuleOpAnd"
-    // InternalSignalDSL.g:1702:1: entryRuleOpAnd returns [String current=null] : iv_ruleOpAnd= ruleOpAnd EOF ;
-    public final String entryRuleOpAnd() throws RecognitionException {
-        String current = null;
-
-        AntlrDatatypeRuleToken iv_ruleOpAnd = null;
-
-
-        try {
-            // InternalSignalDSL.g:1702:45: (iv_ruleOpAnd= ruleOpAnd EOF )
-            // InternalSignalDSL.g:1703:2: iv_ruleOpAnd= ruleOpAnd EOF
-            {
-            if ( state.backtracking==0 ) {
-               newCompositeNode(grammarAccess.getOpAndRule()); 
-            }
-            pushFollow(FOLLOW_1);
-            iv_ruleOpAnd=ruleOpAnd();
-
-            state._fsp--;
-            if (state.failed) return current;
-            if ( state.backtracking==0 ) {
-               current =iv_ruleOpAnd.getText(); 
-            }
-            match(input,EOF,FOLLOW_2); if (state.failed) return current;
-
-            }
-
-        }
-
-            catch (RecognitionException re) {
-                recover(input,re);
-                appendSkippedTokens();
-            }
-        finally {
-        }
-        return current;
-    }
-    // $ANTLR end "entryRuleOpAnd"
-
-
-    // $ANTLR start "ruleOpAnd"
-    // InternalSignalDSL.g:1709:1: ruleOpAnd returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : kw= '&&' ;
-    public final AntlrDatatypeRuleToken ruleOpAnd() throws RecognitionException {
-        AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
-
-        Token kw=null;
-
-
-        	enterRule();
-
-        try {
-            // InternalSignalDSL.g:1715:2: (kw= '&&' )
-            // InternalSignalDSL.g:1716:2: kw= '&&'
-            {
-            kw=(Token)match(input,43,FOLLOW_2); if (state.failed) return current;
-            if ( state.backtracking==0 ) {
-
-              		current.merge(kw);
-              		newLeafNode(kw, grammarAccess.getOpAndAccess().getAmpersandAmpersandKeyword());
-              	
-            }
-
-            }
-
-            if ( state.backtracking==0 ) {
-
-              	leaveRule();
-
-            }
-        }
-
-            catch (RecognitionException re) {
-                recover(input,re);
-                appendSkippedTokens();
-            }
-        finally {
-        }
-        return current;
-    }
-    // $ANTLR end "ruleOpAnd"
-
-
-    // $ANTLR start "entryRuleXEqualityExpression"
-    // InternalSignalDSL.g:1724:1: entryRuleXEqualityExpression returns [EObject current=null] : iv_ruleXEqualityExpression= ruleXEqualityExpression EOF ;
-    public final EObject entryRuleXEqualityExpression() throws RecognitionException {
-        EObject current = null;
-
-        EObject iv_ruleXEqualityExpression = null;
-
-
-        try {
-            // InternalSignalDSL.g:1724:60: (iv_ruleXEqualityExpression= ruleXEqualityExpression EOF )
-            // InternalSignalDSL.g:1725:2: iv_ruleXEqualityExpression= ruleXEqualityExpression EOF
-            {
-            if ( state.backtracking==0 ) {
-               newCompositeNode(grammarAccess.getXEqualityExpressionRule()); 
-            }
-            pushFollow(FOLLOW_1);
-            iv_ruleXEqualityExpression=ruleXEqualityExpression();
-
-            state._fsp--;
-            if (state.failed) return current;
-            if ( state.backtracking==0 ) {
-               current =iv_ruleXEqualityExpression; 
-            }
-            match(input,EOF,FOLLOW_2); if (state.failed) return current;
-
-            }
-
-        }
-
-            catch (RecognitionException re) {
-                recover(input,re);
-                appendSkippedTokens();
-            }
-        finally {
-        }
-        return current;
-    }
-    // $ANTLR end "entryRuleXEqualityExpression"
-
-
-    // $ANTLR start "ruleXEqualityExpression"
-    // InternalSignalDSL.g:1731: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;
-
-        EObject this_XRelationalExpression_0 = null;
-
-        EObject lv_rightOperand_3_0 = null;
-
-
-
-        	enterRule();
-
-        try {
-            // InternalSignalDSL.g:1737:2: ( (this_XRelationalExpression_0= ruleXRelationalExpression ( ( ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) ) ) ( (lv_rightOperand_3_0= ruleXRelationalExpression ) ) )* ) )
-            // InternalSignalDSL.g:1738:2: (this_XRelationalExpression_0= ruleXRelationalExpression ( ( ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) ) ) ( (lv_rightOperand_3_0= ruleXRelationalExpression ) ) )* )
-            {
-            // InternalSignalDSL.g:1738:2: (this_XRelationalExpression_0= ruleXRelationalExpression ( ( ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) ) ) ( (lv_rightOperand_3_0= ruleXRelationalExpression ) ) )* )
-            // InternalSignalDSL.g:1739:3: this_XRelationalExpression_0= ruleXRelationalExpression ( ( ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) ) ) ( (lv_rightOperand_3_0= ruleXRelationalExpression ) ) )*
-            {
-            if ( state.backtracking==0 ) {
-
-              			newCompositeNode(grammarAccess.getXEqualityExpressionAccess().getXRelationalExpressionParserRuleCall_0());
-              		
-            }
-            pushFollow(FOLLOW_34);
-            this_XRelationalExpression_0=ruleXRelationalExpression();
-
-            state._fsp--;
-            if (state.failed) return current;
-            if ( state.backtracking==0 ) {
-
-              			current = this_XRelationalExpression_0;
-              			afterParserOrEnumRuleCall();
-              		
-            }
-            // InternalSignalDSL.g:1747:3: ( ( ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) ) ) ( (lv_rightOperand_3_0= ruleXRelationalExpression ) ) )*
-            loop28:
-            do {
-                int alt28=2;
-                switch ( input.LA(1) ) {
-                case 44:
-                    {
-                    int LA28_2 = input.LA(2);
-
-                    if ( (synpred10_InternalSignalDSL()) ) {
-                        alt28=1;
-                    }
-
-
-                    }
-                    break;
-                case 45:
-                    {
-                    int LA28_3 = input.LA(2);
-
-                    if ( (synpred10_InternalSignalDSL()) ) {
-                        alt28=1;
-                    }
-
-
-                    }
-                    break;
-                case 46:
-                    {
-                    int LA28_4 = input.LA(2);
-
-                    if ( (synpred10_InternalSignalDSL()) ) {
-                        alt28=1;
-                    }
-
-
-                    }
-                    break;
-                case 47:
-                    {
-                    int LA28_5 = input.LA(2);
-
-                    if ( (synpred10_InternalSignalDSL()) ) {
-                        alt28=1;
-                    }
-
-
-                    }
-                    break;
-
-                }
-
-                switch (alt28) {
-            	case 1 :
-            	    // InternalSignalDSL.g:1748:4: ( ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) ) ) ( (lv_rightOperand_3_0= ruleXRelationalExpression ) )
-            	    {
-            	    // InternalSignalDSL.g:1748:4: ( ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) ) )
-            	    // InternalSignalDSL.g:1749:5: ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) )
-            	    {
-            	    // InternalSignalDSL.g:1759:5: ( () ( ( ruleOpEquality ) ) )
-            	    // InternalSignalDSL.g:1760:6: () ( ( ruleOpEquality ) )
-            	    {
-            	    // InternalSignalDSL.g:1760:6: ()
-            	    // InternalSignalDSL.g:1761:7: 
-            	    {
-            	    if ( state.backtracking==0 ) {
-
-            	      							current = forceCreateModelElementAndSet(
-            	      								grammarAccess.getXEqualityExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0(),
-            	      								current);
-            	      						
-            	    }
-
-            	    }
-
-            	    // InternalSignalDSL.g:1767:6: ( ( ruleOpEquality ) )
-            	    // InternalSignalDSL.g:1768:7: ( ruleOpEquality )
-            	    {
-            	    // InternalSignalDSL.g:1768:7: ( ruleOpEquality )
-            	    // InternalSignalDSL.g:1769:8: ruleOpEquality
-            	    {
-            	    if ( state.backtracking==0 ) {
-
-            	      								if (current==null) {
-            	      									current = createModelElement(grammarAccess.getXEqualityExpressionRule());
-            	      								}
-            	      							
-            	    }
-            	    if ( state.backtracking==0 ) {
-
-            	      								newCompositeNode(grammarAccess.getXEqualityExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0());
-            	      							
-            	    }
-            	    pushFollow(FOLLOW_23);
-            	    ruleOpEquality();
-
-            	    state._fsp--;
-            	    if (state.failed) return current;
-            	    if ( state.backtracking==0 ) {
-
-            	      								afterParserOrEnumRuleCall();
-            	      							
-            	    }
-
-            	    }
-
-
-            	    }
-
-
-            	    }
-
-
-            	    }
-
-            	    // InternalSignalDSL.g:1785:4: ( (lv_rightOperand_3_0= ruleXRelationalExpression ) )
-            	    // InternalSignalDSL.g:1786:5: (lv_rightOperand_3_0= ruleXRelationalExpression )
-            	    {
-            	    // InternalSignalDSL.g:1786:5: (lv_rightOperand_3_0= ruleXRelationalExpression )
-            	    // InternalSignalDSL.g:1787:6: lv_rightOperand_3_0= ruleXRelationalExpression
-            	    {
-            	    if ( state.backtracking==0 ) {
-
-            	      						newCompositeNode(grammarAccess.getXEqualityExpressionAccess().getRightOperandXRelationalExpressionParserRuleCall_1_1_0());
-            	      					
-            	    }
-            	    pushFollow(FOLLOW_34);
-            	    lv_rightOperand_3_0=ruleXRelationalExpression();
-
-            	    state._fsp--;
-            	    if (state.failed) return current;
-            	    if ( state.backtracking==0 ) {
-
-            	      						if (current==null) {
-            	      							current = createModelElementForParent(grammarAccess.getXEqualityExpressionRule());
-            	      						}
-            	      						set(
-            	      							current,
-            	      							"rightOperand",
-            	      							lv_rightOperand_3_0,
-            	      							"org.eclipse.xtext.xbase.Xbase.XRelationalExpression");
-            	      						afterParserOrEnumRuleCall();
-            	      					
-            	    }
-
-            	    }
-
-
-            	    }
-
-
-            	    }
-            	    break;
-
-            	default :
             	    break loop28;
                 }
             } while (true);
@@ -5066,31 +4687,31 @@
         }
         return current;
     }
-    // $ANTLR end "ruleXEqualityExpression"
+    // $ANTLR end "ruleXOrExpression"
 
 
-    // $ANTLR start "entryRuleOpEquality"
-    // InternalSignalDSL.g:1809:1: entryRuleOpEquality returns [String current=null] : iv_ruleOpEquality= ruleOpEquality EOF ;
-    public final String entryRuleOpEquality() throws RecognitionException {
+    // $ANTLR start "entryRuleOpOr"
+    // InternalSignalDSL.g:1694:1: entryRuleOpOr returns [String current=null] : iv_ruleOpOr= ruleOpOr EOF ;
+    public final String entryRuleOpOr() throws RecognitionException {
         String current = null;
 
-        AntlrDatatypeRuleToken iv_ruleOpEquality = null;
+        AntlrDatatypeRuleToken iv_ruleOpOr = null;
 
 
         try {
-            // InternalSignalDSL.g:1809:50: (iv_ruleOpEquality= ruleOpEquality EOF )
-            // InternalSignalDSL.g:1810:2: iv_ruleOpEquality= ruleOpEquality EOF
+            // InternalSignalDSL.g:1694:44: (iv_ruleOpOr= ruleOpOr EOF )
+            // InternalSignalDSL.g:1695:2: iv_ruleOpOr= ruleOpOr EOF
             {
             if ( state.backtracking==0 ) {
-               newCompositeNode(grammarAccess.getOpEqualityRule()); 
+               newCompositeNode(grammarAccess.getOpOrRule()); 
             }
             pushFollow(FOLLOW_1);
-            iv_ruleOpEquality=ruleOpEquality();
+            iv_ruleOpOr=ruleOpOr();
 
             state._fsp--;
             if (state.failed) return current;
             if ( state.backtracking==0 ) {
-               current =iv_ruleOpEquality.getText(); 
+               current =iv_ruleOpOr.getText(); 
             }
             match(input,EOF,FOLLOW_2); if (state.failed) return current;
 
@@ -5106,12 +4727,12 @@
         }
         return current;
     }
-    // $ANTLR end "entryRuleOpEquality"
+    // $ANTLR end "entryRuleOpOr"
 
 
-    // $ANTLR start "ruleOpEquality"
-    // InternalSignalDSL.g:1816:1: ruleOpEquality returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '==' | kw= '!=' | kw= '===' | kw= '!==' ) ;
-    public final AntlrDatatypeRuleToken ruleOpEquality() throws RecognitionException {
+    // $ANTLR start "ruleOpOr"
+    // InternalSignalDSL.g:1701:1: ruleOpOr returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : kw= '||' ;
+    public final AntlrDatatypeRuleToken ruleOpOr() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
         Token kw=null;
@@ -5120,93 +4741,237 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:1822:2: ( (kw= '==' | kw= '!=' | kw= '===' | kw= '!==' ) )
-            // InternalSignalDSL.g:1823:2: (kw= '==' | kw= '!=' | kw= '===' | kw= '!==' )
+            // InternalSignalDSL.g:1707:2: (kw= '||' )
+            // InternalSignalDSL.g:1708:2: kw= '||'
             {
-            // InternalSignalDSL.g:1823:2: (kw= '==' | kw= '!=' | kw= '===' | kw= '!==' )
-            int alt29=4;
-            switch ( input.LA(1) ) {
-            case 44:
-                {
-                alt29=1;
-                }
-                break;
-            case 45:
-                {
-                alt29=2;
-                }
-                break;
-            case 46:
-                {
-                alt29=3;
-                }
-                break;
-            case 47:
-                {
-                alt29=4;
-                }
-                break;
-            default:
-                if (state.backtracking>0) {state.failed=true; return current;}
-                NoViableAltException nvae =
-                    new NoViableAltException("", 29, 0, input);
+            kw=(Token)match(input,44,FOLLOW_2); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
 
-                throw nvae;
+              		current.merge(kw);
+              		newLeafNode(kw, grammarAccess.getOpOrAccess().getVerticalLineVerticalLineKeyword());
+              	
             }
 
-            switch (alt29) {
-                case 1 :
-                    // InternalSignalDSL.g:1824:3: kw= '=='
-                    {
-                    kw=(Token)match(input,44,FOLLOW_2); if (state.failed) return current;
-                    if ( state.backtracking==0 ) {
+            }
 
-                      			current.merge(kw);
-                      			newLeafNode(kw, grammarAccess.getOpEqualityAccess().getEqualsSignEqualsSignKeyword_0());
-                      		
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleOpOr"
+
+
+    // $ANTLR start "entryRuleXAndExpression"
+    // InternalSignalDSL.g:1716:1: entryRuleXAndExpression returns [EObject current=null] : iv_ruleXAndExpression= ruleXAndExpression EOF ;
+    public final EObject entryRuleXAndExpression() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleXAndExpression = null;
+
+
+        try {
+            // InternalSignalDSL.g:1716:55: (iv_ruleXAndExpression= ruleXAndExpression EOF )
+            // InternalSignalDSL.g:1717:2: iv_ruleXAndExpression= ruleXAndExpression EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getXAndExpressionRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_ruleXAndExpression=ruleXAndExpression();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleXAndExpression; 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleXAndExpression"
+
+
+    // $ANTLR start "ruleXAndExpression"
+    // InternalSignalDSL.g:1723: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;
+
+        EObject this_XEqualityExpression_0 = null;
+
+        EObject lv_rightOperand_3_0 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalSignalDSL.g:1729:2: ( (this_XEqualityExpression_0= ruleXEqualityExpression ( ( ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) ) ) ( (lv_rightOperand_3_0= ruleXEqualityExpression ) ) )* ) )
+            // InternalSignalDSL.g:1730:2: (this_XEqualityExpression_0= ruleXEqualityExpression ( ( ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) ) ) ( (lv_rightOperand_3_0= ruleXEqualityExpression ) ) )* )
+            {
+            // InternalSignalDSL.g:1730:2: (this_XEqualityExpression_0= ruleXEqualityExpression ( ( ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) ) ) ( (lv_rightOperand_3_0= ruleXEqualityExpression ) ) )* )
+            // InternalSignalDSL.g:1731:3: this_XEqualityExpression_0= ruleXEqualityExpression ( ( ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) ) ) ( (lv_rightOperand_3_0= ruleXEqualityExpression ) ) )*
+            {
+            if ( state.backtracking==0 ) {
+
+              			newCompositeNode(grammarAccess.getXAndExpressionAccess().getXEqualityExpressionParserRuleCall_0());
+              		
+            }
+            pushFollow(FOLLOW_36);
+            this_XEqualityExpression_0=ruleXEqualityExpression();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			current = this_XEqualityExpression_0;
+              			afterParserOrEnumRuleCall();
+              		
+            }
+            // InternalSignalDSL.g:1739:3: ( ( ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) ) ) ( (lv_rightOperand_3_0= ruleXEqualityExpression ) ) )*
+            loop29:
+            do {
+                int alt29=2;
+                int LA29_0 = input.LA(1);
+
+                if ( (LA29_0==45) ) {
+                    int LA29_2 = input.LA(2);
+
+                    if ( (synpred9_InternalSignalDSL()) ) {
+                        alt29=1;
                     }
 
-                    }
-                    break;
-                case 2 :
-                    // InternalSignalDSL.g:1830:3: kw= '!='
-                    {
-                    kw=(Token)match(input,45,FOLLOW_2); if (state.failed) return current;
-                    if ( state.backtracking==0 ) {
 
-                      			current.merge(kw);
-                      			newLeafNode(kw, grammarAccess.getOpEqualityAccess().getExclamationMarkEqualsSignKeyword_1());
-                      		
-                    }
+                }
 
-                    }
-                    break;
-                case 3 :
-                    // InternalSignalDSL.g:1836:3: kw= '==='
-                    {
-                    kw=(Token)match(input,46,FOLLOW_2); if (state.failed) return current;
-                    if ( state.backtracking==0 ) {
 
-                      			current.merge(kw);
-                      			newLeafNode(kw, grammarAccess.getOpEqualityAccess().getEqualsSignEqualsSignEqualsSignKeyword_2());
-                      		
-                    }
+                switch (alt29) {
+            	case 1 :
+            	    // InternalSignalDSL.g:1740:4: ( ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) ) ) ( (lv_rightOperand_3_0= ruleXEqualityExpression ) )
+            	    {
+            	    // InternalSignalDSL.g:1740:4: ( ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) ) )
+            	    // InternalSignalDSL.g:1741:5: ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) )
+            	    {
+            	    // InternalSignalDSL.g:1751:5: ( () ( ( ruleOpAnd ) ) )
+            	    // InternalSignalDSL.g:1752:6: () ( ( ruleOpAnd ) )
+            	    {
+            	    // InternalSignalDSL.g:1752:6: ()
+            	    // InternalSignalDSL.g:1753:7: 
+            	    {
+            	    if ( state.backtracking==0 ) {
 
-                    }
-                    break;
-                case 4 :
-                    // InternalSignalDSL.g:1842:3: kw= '!=='
-                    {
-                    kw=(Token)match(input,47,FOLLOW_2); if (state.failed) return current;
-                    if ( state.backtracking==0 ) {
+            	      							current = forceCreateModelElementAndSet(
+            	      								grammarAccess.getXAndExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0(),
+            	      								current);
+            	      						
+            	    }
 
-                      			current.merge(kw);
-                      			newLeafNode(kw, grammarAccess.getOpEqualityAccess().getExclamationMarkEqualsSignEqualsSignKeyword_3());
-                      		
-                    }
+            	    }
 
-                    }
-                    break;
+            	    // InternalSignalDSL.g:1759:6: ( ( ruleOpAnd ) )
+            	    // InternalSignalDSL.g:1760:7: ( ruleOpAnd )
+            	    {
+            	    // InternalSignalDSL.g:1760:7: ( ruleOpAnd )
+            	    // InternalSignalDSL.g:1761:8: ruleOpAnd
+            	    {
+            	    if ( state.backtracking==0 ) {
+
+            	      								if (current==null) {
+            	      									current = createModelElement(grammarAccess.getXAndExpressionRule());
+            	      								}
+            	      							
+            	    }
+            	    if ( state.backtracking==0 ) {
+
+            	      								newCompositeNode(grammarAccess.getXAndExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0());
+            	      							
+            	    }
+            	    pushFollow(FOLLOW_26);
+            	    ruleOpAnd();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      								afterParserOrEnumRuleCall();
+            	      							
+            	    }
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+            	    // InternalSignalDSL.g:1777:4: ( (lv_rightOperand_3_0= ruleXEqualityExpression ) )
+            	    // InternalSignalDSL.g:1778:5: (lv_rightOperand_3_0= ruleXEqualityExpression )
+            	    {
+            	    // InternalSignalDSL.g:1778:5: (lv_rightOperand_3_0= ruleXEqualityExpression )
+            	    // InternalSignalDSL.g:1779:6: lv_rightOperand_3_0= ruleXEqualityExpression
+            	    {
+            	    if ( state.backtracking==0 ) {
+
+            	      						newCompositeNode(grammarAccess.getXAndExpressionAccess().getRightOperandXEqualityExpressionParserRuleCall_1_1_0());
+            	      					
+            	    }
+            	    pushFollow(FOLLOW_36);
+            	    lv_rightOperand_3_0=ruleXEqualityExpression();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      						if (current==null) {
+            	      							current = createModelElementForParent(grammarAccess.getXAndExpressionRule());
+            	      						}
+            	      						set(
+            	      							current,
+            	      							"rightOperand",
+            	      							lv_rightOperand_3_0,
+            	      							"org.eclipse.xtext.xbase.Xbase.XEqualityExpression");
+            	      						afterParserOrEnumRuleCall();
+            	      					
+            	    }
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop29;
+                }
+            } while (true);
+
 
             }
 
@@ -5228,31 +4993,31 @@
         }
         return current;
     }
-    // $ANTLR end "ruleOpEquality"
+    // $ANTLR end "ruleXAndExpression"
 
 
-    // $ANTLR start "entryRuleXRelationalExpression"
-    // InternalSignalDSL.g:1851:1: entryRuleXRelationalExpression returns [EObject current=null] : iv_ruleXRelationalExpression= ruleXRelationalExpression EOF ;
-    public final EObject entryRuleXRelationalExpression() throws RecognitionException {
-        EObject current = null;
+    // $ANTLR start "entryRuleOpAnd"
+    // InternalSignalDSL.g:1801:1: entryRuleOpAnd returns [String current=null] : iv_ruleOpAnd= ruleOpAnd EOF ;
+    public final String entryRuleOpAnd() throws RecognitionException {
+        String current = null;
 
-        EObject iv_ruleXRelationalExpression = null;
+        AntlrDatatypeRuleToken iv_ruleOpAnd = null;
 
 
         try {
-            // InternalSignalDSL.g:1851:62: (iv_ruleXRelationalExpression= ruleXRelationalExpression EOF )
-            // InternalSignalDSL.g:1852:2: iv_ruleXRelationalExpression= ruleXRelationalExpression EOF
+            // InternalSignalDSL.g:1801:45: (iv_ruleOpAnd= ruleOpAnd EOF )
+            // InternalSignalDSL.g:1802:2: iv_ruleOpAnd= ruleOpAnd EOF
             {
             if ( state.backtracking==0 ) {
-               newCompositeNode(grammarAccess.getXRelationalExpressionRule()); 
+               newCompositeNode(grammarAccess.getOpAndRule()); 
             }
             pushFollow(FOLLOW_1);
-            iv_ruleXRelationalExpression=ruleXRelationalExpression();
+            iv_ruleOpAnd=ruleOpAnd();
 
             state._fsp--;
             if (state.failed) return current;
             if ( state.backtracking==0 ) {
-               current =iv_ruleXRelationalExpression; 
+               current =iv_ruleOpAnd.getText(); 
             }
             match(input,EOF,FOLLOW_2); if (state.failed) return current;
 
@@ -5268,70 +5033,149 @@
         }
         return current;
     }
-    // $ANTLR end "entryRuleXRelationalExpression"
+    // $ANTLR end "entryRuleOpAnd"
 
 
-    // $ANTLR start "ruleXRelationalExpression"
-    // InternalSignalDSL.g:1858: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 {
+    // $ANTLR start "ruleOpAnd"
+    // InternalSignalDSL.g:1808:1: ruleOpAnd returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : kw= '&&' ;
+    public final AntlrDatatypeRuleToken ruleOpAnd() throws RecognitionException {
+        AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+        Token kw=null;
+
+
+        	enterRule();
+
+        try {
+            // InternalSignalDSL.g:1814:2: (kw= '&&' )
+            // InternalSignalDSL.g:1815:2: kw= '&&'
+            {
+            kw=(Token)match(input,45,FOLLOW_2); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              		current.merge(kw);
+              		newLeafNode(kw, grammarAccess.getOpAndAccess().getAmpersandAmpersandKeyword());
+              	
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleOpAnd"
+
+
+    // $ANTLR start "entryRuleXEqualityExpression"
+    // InternalSignalDSL.g:1823:1: entryRuleXEqualityExpression returns [EObject current=null] : iv_ruleXEqualityExpression= ruleXEqualityExpression EOF ;
+    public final EObject entryRuleXEqualityExpression() throws RecognitionException {
         EObject current = null;
 
-        Token otherlv_2=null;
-        EObject this_XOtherOperatorExpression_0 = null;
+        EObject iv_ruleXEqualityExpression = null;
 
-        EObject lv_type_3_0 = null;
 
-        EObject lv_rightOperand_6_0 = null;
+        try {
+            // InternalSignalDSL.g:1823:60: (iv_ruleXEqualityExpression= ruleXEqualityExpression EOF )
+            // InternalSignalDSL.g:1824:2: iv_ruleXEqualityExpression= ruleXEqualityExpression EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getXEqualityExpressionRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_ruleXEqualityExpression=ruleXEqualityExpression();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleXEqualityExpression; 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleXEqualityExpression"
+
+
+    // $ANTLR start "ruleXEqualityExpression"
+    // InternalSignalDSL.g:1830: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;
+
+        EObject this_XRelationalExpression_0 = null;
+
+        EObject lv_rightOperand_3_0 = null;
 
 
 
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:1864:2: ( (this_XOtherOperatorExpression_0= ruleXOtherOperatorExpression ( ( ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) ) | ( ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) ) ) )* ) )
-            // InternalSignalDSL.g:1865:2: (this_XOtherOperatorExpression_0= ruleXOtherOperatorExpression ( ( ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) ) | ( ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) ) ) )* )
+            // InternalSignalDSL.g:1836:2: ( (this_XRelationalExpression_0= ruleXRelationalExpression ( ( ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) ) ) ( (lv_rightOperand_3_0= ruleXRelationalExpression ) ) )* ) )
+            // InternalSignalDSL.g:1837:2: (this_XRelationalExpression_0= ruleXRelationalExpression ( ( ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) ) ) ( (lv_rightOperand_3_0= ruleXRelationalExpression ) ) )* )
             {
-            // InternalSignalDSL.g:1865:2: (this_XOtherOperatorExpression_0= ruleXOtherOperatorExpression ( ( ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) ) | ( ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) ) ) )* )
-            // InternalSignalDSL.g:1866:3: this_XOtherOperatorExpression_0= ruleXOtherOperatorExpression ( ( ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) ) | ( ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) ) ) )*
+            // InternalSignalDSL.g:1837:2: (this_XRelationalExpression_0= ruleXRelationalExpression ( ( ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) ) ) ( (lv_rightOperand_3_0= ruleXRelationalExpression ) ) )* )
+            // InternalSignalDSL.g:1838:3: this_XRelationalExpression_0= ruleXRelationalExpression ( ( ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) ) ) ( (lv_rightOperand_3_0= ruleXRelationalExpression ) ) )*
             {
             if ( state.backtracking==0 ) {
 
-              			newCompositeNode(grammarAccess.getXRelationalExpressionAccess().getXOtherOperatorExpressionParserRuleCall_0());
+              			newCompositeNode(grammarAccess.getXEqualityExpressionAccess().getXRelationalExpressionParserRuleCall_0());
               		
             }
-            pushFollow(FOLLOW_35);
-            this_XOtherOperatorExpression_0=ruleXOtherOperatorExpression();
+            pushFollow(FOLLOW_37);
+            this_XRelationalExpression_0=ruleXRelationalExpression();
 
             state._fsp--;
             if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
-              			current = this_XOtherOperatorExpression_0;
+              			current = this_XRelationalExpression_0;
               			afterParserOrEnumRuleCall();
               		
             }
-            // InternalSignalDSL.g:1874:3: ( ( ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) ) | ( ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) ) ) )*
+            // InternalSignalDSL.g:1846:3: ( ( ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) ) ) ( (lv_rightOperand_3_0= ruleXRelationalExpression ) ) )*
             loop30:
             do {
-                int alt30=3;
+                int alt30=2;
                 switch ( input.LA(1) ) {
-                case 39:
+                case 46:
                     {
                     int LA30_2 = input.LA(2);
 
-                    if ( (synpred12_InternalSignalDSL()) ) {
-                        alt30=2;
+                    if ( (synpred10_InternalSignalDSL()) ) {
+                        alt30=1;
                     }
 
 
                     }
                     break;
-                case 40:
+                case 47:
                     {
                     int LA30_3 = input.LA(2);
 
-                    if ( (synpred12_InternalSignalDSL()) ) {
-                        alt30=2;
+                    if ( (synpred10_InternalSignalDSL()) ) {
+                        alt30=1;
                     }
 
 
@@ -5341,19 +5185,19 @@
                     {
                     int LA30_4 = input.LA(2);
 
-                    if ( (synpred11_InternalSignalDSL()) ) {
+                    if ( (synpred10_InternalSignalDSL()) ) {
                         alt30=1;
                     }
 
 
                     }
                     break;
-                case 41:
+                case 49:
                     {
                     int LA30_5 = input.LA(2);
 
-                    if ( (synpred12_InternalSignalDSL()) ) {
-                        alt30=2;
+                    if ( (synpred10_InternalSignalDSL()) ) {
+                        alt30=1;
                     }
 
 
@@ -5364,70 +5208,95 @@
 
                 switch (alt30) {
             	case 1 :
-            	    // InternalSignalDSL.g:1875:4: ( ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) )
+            	    // InternalSignalDSL.g:1847:4: ( ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) ) ) ( (lv_rightOperand_3_0= ruleXRelationalExpression ) )
             	    {
-            	    // InternalSignalDSL.g:1875:4: ( ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) )
-            	    // InternalSignalDSL.g:1876:5: ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) )
+            	    // InternalSignalDSL.g:1847:4: ( ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) ) )
+            	    // InternalSignalDSL.g:1848:5: ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) )
             	    {
-            	    // InternalSignalDSL.g:1876:5: ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) )
-            	    // InternalSignalDSL.g:1877:6: ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' )
+            	    // InternalSignalDSL.g:1858:5: ( () ( ( ruleOpEquality ) ) )
+            	    // InternalSignalDSL.g:1859:6: () ( ( ruleOpEquality ) )
             	    {
-            	    // InternalSignalDSL.g:1883:6: ( () otherlv_2= 'instanceof' )
-            	    // InternalSignalDSL.g:1884:7: () otherlv_2= 'instanceof'
-            	    {
-            	    // InternalSignalDSL.g:1884:7: ()
-            	    // InternalSignalDSL.g:1885:8: 
+            	    // InternalSignalDSL.g:1859:6: ()
+            	    // InternalSignalDSL.g:1860:7: 
             	    {
             	    if ( state.backtracking==0 ) {
 
-            	      								current = forceCreateModelElementAndSet(
-            	      									grammarAccess.getXRelationalExpressionAccess().getXInstanceOfExpressionExpressionAction_1_0_0_0_0(),
-            	      									current);
+            	      							current = forceCreateModelElementAndSet(
+            	      								grammarAccess.getXEqualityExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0(),
+            	      								current);
+            	      						
+            	    }
+
+            	    }
+
+            	    // InternalSignalDSL.g:1866:6: ( ( ruleOpEquality ) )
+            	    // InternalSignalDSL.g:1867:7: ( ruleOpEquality )
+            	    {
+            	    // InternalSignalDSL.g:1867:7: ( ruleOpEquality )
+            	    // InternalSignalDSL.g:1868:8: ruleOpEquality
+            	    {
+            	    if ( state.backtracking==0 ) {
+
+            	      								if (current==null) {
+            	      									current = createModelElement(grammarAccess.getXEqualityExpressionRule());
+            	      								}
+            	      							
+            	    }
+            	    if ( state.backtracking==0 ) {
+
+            	      								newCompositeNode(grammarAccess.getXEqualityExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0());
+            	      							
+            	    }
+            	    pushFollow(FOLLOW_26);
+            	    ruleOpEquality();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      								afterParserOrEnumRuleCall();
             	      							
             	    }
 
             	    }
 
-            	    otherlv_2=(Token)match(input,48,FOLLOW_36); if (state.failed) return current;
-            	    if ( state.backtracking==0 ) {
-
-            	      							newLeafNode(otherlv_2, grammarAccess.getXRelationalExpressionAccess().getInstanceofKeyword_1_0_0_0_1());
-            	      						
-            	    }
 
             	    }
 
 
             	    }
 
-            	    // InternalSignalDSL.g:1897:5: ( (lv_type_3_0= ruleJvmTypeReference ) )
-            	    // InternalSignalDSL.g:1898:6: (lv_type_3_0= ruleJvmTypeReference )
+
+            	    }
+
+            	    // InternalSignalDSL.g:1884:4: ( (lv_rightOperand_3_0= ruleXRelationalExpression ) )
+            	    // InternalSignalDSL.g:1885:5: (lv_rightOperand_3_0= ruleXRelationalExpression )
             	    {
-            	    // InternalSignalDSL.g:1898:6: (lv_type_3_0= ruleJvmTypeReference )
-            	    // InternalSignalDSL.g:1899:7: lv_type_3_0= ruleJvmTypeReference
+            	    // InternalSignalDSL.g:1885:5: (lv_rightOperand_3_0= ruleXRelationalExpression )
+            	    // InternalSignalDSL.g:1886:6: lv_rightOperand_3_0= ruleXRelationalExpression
             	    {
             	    if ( state.backtracking==0 ) {
 
-            	      							newCompositeNode(grammarAccess.getXRelationalExpressionAccess().getTypeJvmTypeReferenceParserRuleCall_1_0_1_0());
-            	      						
+            	      						newCompositeNode(grammarAccess.getXEqualityExpressionAccess().getRightOperandXRelationalExpressionParserRuleCall_1_1_0());
+            	      					
             	    }
-            	    pushFollow(FOLLOW_35);
-            	    lv_type_3_0=ruleJvmTypeReference();
+            	    pushFollow(FOLLOW_37);
+            	    lv_rightOperand_3_0=ruleXRelationalExpression();
 
             	    state._fsp--;
             	    if (state.failed) return current;
             	    if ( state.backtracking==0 ) {
 
-            	      							if (current==null) {
-            	      								current = createModelElementForParent(grammarAccess.getXRelationalExpressionRule());
-            	      							}
-            	      							set(
-            	      								current,
-            	      								"type",
-            	      								lv_type_3_0,
-            	      								"org.eclipse.xtext.xbase.Xtype.JvmTypeReference");
-            	      							afterParserOrEnumRuleCall();
-            	      						
+            	      						if (current==null) {
+            	      							current = createModelElementForParent(grammarAccess.getXEqualityExpressionRule());
+            	      						}
+            	      						set(
+            	      							current,
+            	      							"rightOperand",
+            	      							lv_rightOperand_3_0,
+            	      							"org.eclipse.xtext.xbase.Xbase.XRelationalExpression");
+            	      						afterParserOrEnumRuleCall();
+            	      					
             	    }
 
             	    }
@@ -5437,115 +5306,6 @@
 
 
             	    }
-
-
-            	    }
-            	    break;
-            	case 2 :
-            	    // InternalSignalDSL.g:1918:4: ( ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) ) )
-            	    {
-            	    // InternalSignalDSL.g:1918:4: ( ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) ) )
-            	    // InternalSignalDSL.g:1919:5: ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) )
-            	    {
-            	    // InternalSignalDSL.g:1919:5: ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) )
-            	    // InternalSignalDSL.g:1920:6: ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) )
-            	    {
-            	    // InternalSignalDSL.g:1930:6: ( () ( ( ruleOpCompare ) ) )
-            	    // InternalSignalDSL.g:1931:7: () ( ( ruleOpCompare ) )
-            	    {
-            	    // InternalSignalDSL.g:1931:7: ()
-            	    // InternalSignalDSL.g:1932:8: 
-            	    {
-            	    if ( state.backtracking==0 ) {
-
-            	      								current = forceCreateModelElementAndSet(
-            	      									grammarAccess.getXRelationalExpressionAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0(),
-            	      									current);
-            	      							
-            	    }
-
-            	    }
-
-            	    // InternalSignalDSL.g:1938:7: ( ( ruleOpCompare ) )
-            	    // InternalSignalDSL.g:1939:8: ( ruleOpCompare )
-            	    {
-            	    // InternalSignalDSL.g:1939:8: ( ruleOpCompare )
-            	    // InternalSignalDSL.g:1940:9: ruleOpCompare
-            	    {
-            	    if ( state.backtracking==0 ) {
-
-            	      									if (current==null) {
-            	      										current = createModelElement(grammarAccess.getXRelationalExpressionRule());
-            	      									}
-            	      								
-            	    }
-            	    if ( state.backtracking==0 ) {
-
-            	      									newCompositeNode(grammarAccess.getXRelationalExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_1_0_0_1_0());
-            	      								
-            	    }
-            	    pushFollow(FOLLOW_23);
-            	    ruleOpCompare();
-
-            	    state._fsp--;
-            	    if (state.failed) return current;
-            	    if ( state.backtracking==0 ) {
-
-            	      									afterParserOrEnumRuleCall();
-            	      								
-            	    }
-
-            	    }
-
-
-            	    }
-
-
-            	    }
-
-
-            	    }
-
-            	    // InternalSignalDSL.g:1956:5: ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) )
-            	    // InternalSignalDSL.g:1957:6: (lv_rightOperand_6_0= ruleXOtherOperatorExpression )
-            	    {
-            	    // InternalSignalDSL.g:1957:6: (lv_rightOperand_6_0= ruleXOtherOperatorExpression )
-            	    // InternalSignalDSL.g:1958:7: lv_rightOperand_6_0= ruleXOtherOperatorExpression
-            	    {
-            	    if ( state.backtracking==0 ) {
-
-            	      							newCompositeNode(grammarAccess.getXRelationalExpressionAccess().getRightOperandXOtherOperatorExpressionParserRuleCall_1_1_1_0());
-            	      						
-            	    }
-            	    pushFollow(FOLLOW_35);
-            	    lv_rightOperand_6_0=ruleXOtherOperatorExpression();
-
-            	    state._fsp--;
-            	    if (state.failed) return current;
-            	    if ( state.backtracking==0 ) {
-
-            	      							if (current==null) {
-            	      								current = createModelElementForParent(grammarAccess.getXRelationalExpressionRule());
-            	      							}
-            	      							set(
-            	      								current,
-            	      								"rightOperand",
-            	      								lv_rightOperand_6_0,
-            	      								"org.eclipse.xtext.xbase.Xbase.XOtherOperatorExpression");
-            	      							afterParserOrEnumRuleCall();
-            	      						
-            	    }
-
-            	    }
-
-
-            	    }
-
-
-            	    }
-
-
-            	    }
             	    break;
 
             	default :
@@ -5574,31 +5334,31 @@
         }
         return current;
     }
-    // $ANTLR end "ruleXRelationalExpression"
+    // $ANTLR end "ruleXEqualityExpression"
 
 
-    // $ANTLR start "entryRuleOpCompare"
-    // InternalSignalDSL.g:1981:1: entryRuleOpCompare returns [String current=null] : iv_ruleOpCompare= ruleOpCompare EOF ;
-    public final String entryRuleOpCompare() throws RecognitionException {
+    // $ANTLR start "entryRuleOpEquality"
+    // InternalSignalDSL.g:1908:1: entryRuleOpEquality returns [String current=null] : iv_ruleOpEquality= ruleOpEquality EOF ;
+    public final String entryRuleOpEquality() throws RecognitionException {
         String current = null;
 
-        AntlrDatatypeRuleToken iv_ruleOpCompare = null;
+        AntlrDatatypeRuleToken iv_ruleOpEquality = null;
 
 
         try {
-            // InternalSignalDSL.g:1981:49: (iv_ruleOpCompare= ruleOpCompare EOF )
-            // InternalSignalDSL.g:1982:2: iv_ruleOpCompare= ruleOpCompare EOF
+            // InternalSignalDSL.g:1908:50: (iv_ruleOpEquality= ruleOpEquality EOF )
+            // InternalSignalDSL.g:1909:2: iv_ruleOpEquality= ruleOpEquality EOF
             {
             if ( state.backtracking==0 ) {
-               newCompositeNode(grammarAccess.getOpCompareRule()); 
+               newCompositeNode(grammarAccess.getOpEqualityRule()); 
             }
             pushFollow(FOLLOW_1);
-            iv_ruleOpCompare=ruleOpCompare();
+            iv_ruleOpEquality=ruleOpEquality();
 
             state._fsp--;
             if (state.failed) return current;
             if ( state.backtracking==0 ) {
-               current =iv_ruleOpCompare.getText(); 
+               current =iv_ruleOpEquality.getText(); 
             }
             match(input,EOF,FOLLOW_2); if (state.failed) return current;
 
@@ -5614,12 +5374,12 @@
         }
         return current;
     }
-    // $ANTLR end "entryRuleOpCompare"
+    // $ANTLR end "entryRuleOpEquality"
 
 
-    // $ANTLR start "ruleOpCompare"
-    // InternalSignalDSL.g:1988:1: ruleOpCompare returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '>=' | (kw= '<' kw= '=' ) | kw= '>' | kw= '<' ) ;
-    public final AntlrDatatypeRuleToken ruleOpCompare() throws RecognitionException {
+    // $ANTLR start "ruleOpEquality"
+    // InternalSignalDSL.g:1915:1: ruleOpEquality returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '==' | kw= '!=' | kw= '===' | kw= '!==' ) ;
+    public final AntlrDatatypeRuleToken ruleOpEquality() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
         Token kw=null;
@@ -5628,41 +5388,32 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:1994:2: ( (kw= '>=' | (kw= '<' kw= '=' ) | kw= '>' | kw= '<' ) )
-            // InternalSignalDSL.g:1995:2: (kw= '>=' | (kw= '<' kw= '=' ) | kw= '>' | kw= '<' )
+            // InternalSignalDSL.g:1921:2: ( (kw= '==' | kw= '!=' | kw= '===' | kw= '!==' ) )
+            // InternalSignalDSL.g:1922:2: (kw= '==' | kw= '!=' | kw= '===' | kw= '!==' )
             {
-            // InternalSignalDSL.g:1995:2: (kw= '>=' | (kw= '<' kw= '=' ) | kw= '>' | kw= '<' )
+            // InternalSignalDSL.g:1922:2: (kw= '==' | kw= '!=' | kw= '===' | kw= '!==' )
             int alt31=4;
             switch ( input.LA(1) ) {
-            case 41:
+            case 46:
                 {
                 alt31=1;
                 }
                 break;
-            case 39:
+            case 47:
                 {
-                int LA31_2 = input.LA(2);
-
-                if ( (LA31_2==EOF||(LA31_2>=RULE_ID && LA31_2<=RULE_DECIMAL)||LA31_2==14||LA31_2==18||(LA31_2>=20 && LA31_2<=22)||LA31_2==27||(LA31_2>=31 && LA31_2<=32)||LA31_2==39||(LA31_2>=55 && LA31_2<=56)||LA31_2==60||LA31_2==68||LA31_2==70||(LA31_2>=74 && LA31_2<=75)||(LA31_2>=78 && LA31_2<=87)||LA31_2==89) ) {
-                    alt31=4;
-                }
-                else if ( (LA31_2==30) ) {
-                    alt31=2;
-                }
-                else {
-                    if (state.backtracking>0) {state.failed=true; return current;}
-                    NoViableAltException nvae =
-                        new NoViableAltException("", 31, 2, input);
-
-                    throw nvae;
-                }
+                alt31=2;
                 }
                 break;
-            case 40:
+            case 48:
                 {
                 alt31=3;
                 }
                 break;
+            case 49:
+                {
+                alt31=4;
+                }
+                break;
             default:
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
@@ -5673,65 +5424,52 @@
 
             switch (alt31) {
                 case 1 :
-                    // InternalSignalDSL.g:1996:3: kw= '>='
+                    // InternalSignalDSL.g:1923:3: kw= '=='
                     {
-                    kw=(Token)match(input,41,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);
-                      			newLeafNode(kw, grammarAccess.getOpCompareAccess().getGreaterThanSignEqualsSignKeyword_0());
+                      			newLeafNode(kw, grammarAccess.getOpEqualityAccess().getEqualsSignEqualsSignKeyword_0());
                       		
                     }
 
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:2002:3: (kw= '<' kw= '=' )
+                    // InternalSignalDSL.g:1929:3: kw= '!='
                     {
-                    // InternalSignalDSL.g:2002:3: (kw= '<' kw= '=' )
-                    // InternalSignalDSL.g:2003:4: kw= '<' kw= '='
-                    {
-                    kw=(Token)match(input,39,FOLLOW_22); if (state.failed) return current;
+                    kw=(Token)match(input,47,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
-                      				current.merge(kw);
-                      				newLeafNode(kw, grammarAccess.getOpCompareAccess().getLessThanSignKeyword_1_0());
-                      			
+                      			current.merge(kw);
+                      			newLeafNode(kw, grammarAccess.getOpEqualityAccess().getExclamationMarkEqualsSignKeyword_1());
+                      		
                     }
-                    kw=(Token)match(input,30,FOLLOW_2); if (state.failed) return current;
-                    if ( state.backtracking==0 ) {
-
-                      				current.merge(kw);
-                      				newLeafNode(kw, grammarAccess.getOpCompareAccess().getEqualsSignKeyword_1_1());
-                      			
-                    }
-
-                    }
-
 
                     }
                     break;
                 case 3 :
-                    // InternalSignalDSL.g:2015:3: kw= '>'
+                    // InternalSignalDSL.g:1935:3: kw= '==='
                     {
-                    kw=(Token)match(input,40,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);
-                      			newLeafNode(kw, grammarAccess.getOpCompareAccess().getGreaterThanSignKeyword_2());
+                      			newLeafNode(kw, grammarAccess.getOpEqualityAccess().getEqualsSignEqualsSignEqualsSignKeyword_2());
                       		
                     }
 
                     }
                     break;
                 case 4 :
-                    // InternalSignalDSL.g:2021:3: kw= '<'
+                    // InternalSignalDSL.g:1941:3: kw= '!=='
                     {
-                    kw=(Token)match(input,39,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);
-                      			newLeafNode(kw, grammarAccess.getOpCompareAccess().getLessThanSignKeyword_3());
+                      			newLeafNode(kw, grammarAccess.getOpEqualityAccess().getExclamationMarkEqualsSignEqualsSignKeyword_3());
                       		
                     }
 
@@ -5758,31 +5496,31 @@
         }
         return current;
     }
-    // $ANTLR end "ruleOpCompare"
+    // $ANTLR end "ruleOpEquality"
 
 
-    // $ANTLR start "entryRuleXOtherOperatorExpression"
-    // InternalSignalDSL.g:2030:1: entryRuleXOtherOperatorExpression returns [EObject current=null] : iv_ruleXOtherOperatorExpression= ruleXOtherOperatorExpression EOF ;
-    public final EObject entryRuleXOtherOperatorExpression() throws RecognitionException {
+    // $ANTLR start "entryRuleXRelationalExpression"
+    // InternalSignalDSL.g:1950:1: entryRuleXRelationalExpression returns [EObject current=null] : iv_ruleXRelationalExpression= ruleXRelationalExpression EOF ;
+    public final EObject entryRuleXRelationalExpression() throws RecognitionException {
         EObject current = null;
 
-        EObject iv_ruleXOtherOperatorExpression = null;
+        EObject iv_ruleXRelationalExpression = null;
 
 
         try {
-            // InternalSignalDSL.g:2030:65: (iv_ruleXOtherOperatorExpression= ruleXOtherOperatorExpression EOF )
-            // InternalSignalDSL.g:2031:2: iv_ruleXOtherOperatorExpression= ruleXOtherOperatorExpression EOF
+            // InternalSignalDSL.g:1950:62: (iv_ruleXRelationalExpression= ruleXRelationalExpression EOF )
+            // InternalSignalDSL.g:1951:2: iv_ruleXRelationalExpression= ruleXRelationalExpression EOF
             {
             if ( state.backtracking==0 ) {
-               newCompositeNode(grammarAccess.getXOtherOperatorExpressionRule()); 
+               newCompositeNode(grammarAccess.getXRelationalExpressionRule()); 
             }
             pushFollow(FOLLOW_1);
-            iv_ruleXOtherOperatorExpression=ruleXOtherOperatorExpression();
+            iv_ruleXRelationalExpression=ruleXRelationalExpression();
 
             state._fsp--;
             if (state.failed) return current;
             if ( state.backtracking==0 ) {
-               current =iv_ruleXOtherOperatorExpression; 
+               current =iv_ruleXRelationalExpression; 
             }
             match(input,EOF,FOLLOW_2); if (state.failed) return current;
 
@@ -5798,141 +5536,231 @@
         }
         return current;
     }
-    // $ANTLR end "entryRuleXOtherOperatorExpression"
+    // $ANTLR end "entryRuleXRelationalExpression"
 
 
-    // $ANTLR start "ruleXOtherOperatorExpression"
-    // InternalSignalDSL.g:2037:1: ruleXOtherOperatorExpression returns [EObject current=null] : (this_XAdditiveExpression_0= ruleXAdditiveExpression ( ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) ) ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) ) )* ) ;
-    public final EObject ruleXOtherOperatorExpression() throws RecognitionException {
+    // $ANTLR start "ruleXRelationalExpression"
+    // InternalSignalDSL.g:1957: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;
 
-        EObject this_XAdditiveExpression_0 = null;
+        Token otherlv_2=null;
+        EObject this_XOtherOperatorExpression_0 = null;
 
-        EObject lv_rightOperand_3_0 = null;
+        EObject lv_type_3_0 = null;
+
+        EObject lv_rightOperand_6_0 = null;
 
 
 
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:2043:2: ( (this_XAdditiveExpression_0= ruleXAdditiveExpression ( ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) ) ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) ) )* ) )
-            // InternalSignalDSL.g:2044:2: (this_XAdditiveExpression_0= ruleXAdditiveExpression ( ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) ) ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) ) )* )
+            // InternalSignalDSL.g:1963:2: ( (this_XOtherOperatorExpression_0= ruleXOtherOperatorExpression ( ( ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) ) | ( ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) ) ) )* ) )
+            // InternalSignalDSL.g:1964:2: (this_XOtherOperatorExpression_0= ruleXOtherOperatorExpression ( ( ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) ) | ( ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) ) ) )* )
             {
-            // InternalSignalDSL.g:2044:2: (this_XAdditiveExpression_0= ruleXAdditiveExpression ( ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) ) ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) ) )* )
-            // InternalSignalDSL.g:2045:3: this_XAdditiveExpression_0= ruleXAdditiveExpression ( ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) ) ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) ) )*
+            // InternalSignalDSL.g:1964:2: (this_XOtherOperatorExpression_0= ruleXOtherOperatorExpression ( ( ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) ) | ( ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) ) ) )* )
+            // InternalSignalDSL.g:1965: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 ) {
 
-              			newCompositeNode(grammarAccess.getXOtherOperatorExpressionAccess().getXAdditiveExpressionParserRuleCall_0());
+              			newCompositeNode(grammarAccess.getXRelationalExpressionAccess().getXOtherOperatorExpressionParserRuleCall_0());
               		
             }
-            pushFollow(FOLLOW_37);
-            this_XAdditiveExpression_0=ruleXAdditiveExpression();
+            pushFollow(FOLLOW_38);
+            this_XOtherOperatorExpression_0=ruleXOtherOperatorExpression();
 
             state._fsp--;
             if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
-              			current = this_XAdditiveExpression_0;
+              			current = this_XOtherOperatorExpression_0;
               			afterParserOrEnumRuleCall();
               		
             }
-            // InternalSignalDSL.g:2053:3: ( ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) ) ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) ) )*
+            // InternalSignalDSL.g:1973:3: ( ( ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) ) | ( ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) ) ) )*
             loop32:
             do {
-                int alt32=2;
-                alt32 = dfa32.predict(input);
+                int alt32=3;
+                switch ( input.LA(1) ) {
+                case 41:
+                    {
+                    int LA32_2 = input.LA(2);
+
+                    if ( (synpred12_InternalSignalDSL()) ) {
+                        alt32=2;
+                    }
+
+
+                    }
+                    break;
+                case 42:
+                    {
+                    int LA32_3 = input.LA(2);
+
+                    if ( (synpred12_InternalSignalDSL()) ) {
+                        alt32=2;
+                    }
+
+
+                    }
+                    break;
+                case 50:
+                    {
+                    int LA32_4 = input.LA(2);
+
+                    if ( (synpred11_InternalSignalDSL()) ) {
+                        alt32=1;
+                    }
+
+
+                    }
+                    break;
+                case 43:
+                    {
+                    int LA32_5 = input.LA(2);
+
+                    if ( (synpred12_InternalSignalDSL()) ) {
+                        alt32=2;
+                    }
+
+
+                    }
+                    break;
+
+                }
+
                 switch (alt32) {
             	case 1 :
-            	    // InternalSignalDSL.g:2054:4: ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) ) ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) )
+            	    // InternalSignalDSL.g:1974:4: ( ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) )
             	    {
-            	    // InternalSignalDSL.g:2054:4: ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) )
-            	    // InternalSignalDSL.g:2055:5: ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) )
+            	    // InternalSignalDSL.g:1974:4: ( ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) )
+            	    // InternalSignalDSL.g:1975:5: ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) )
             	    {
-            	    // InternalSignalDSL.g:2065:5: ( () ( ( ruleOpOther ) ) )
-            	    // InternalSignalDSL.g:2066:6: () ( ( ruleOpOther ) )
+            	    // InternalSignalDSL.g:1975:5: ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) )
+            	    // InternalSignalDSL.g:1976:6: ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' )
             	    {
-            	    // InternalSignalDSL.g:2066:6: ()
-            	    // InternalSignalDSL.g:2067:7: 
+            	    // InternalSignalDSL.g:1982:6: ( () otherlv_2= 'instanceof' )
+            	    // InternalSignalDSL.g:1983:7: () otherlv_2= 'instanceof'
+            	    {
+            	    // InternalSignalDSL.g:1983:7: ()
+            	    // InternalSignalDSL.g:1984:8: 
             	    {
             	    if ( state.backtracking==0 ) {
 
-            	      							current = forceCreateModelElementAndSet(
-            	      								grammarAccess.getXOtherOperatorExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0(),
-            	      								current);
+            	      								current = forceCreateModelElementAndSet(
+            	      									grammarAccess.getXRelationalExpressionAccess().getXInstanceOfExpressionExpressionAction_1_0_0_0_0(),
+            	      									current);
+            	      							
+            	    }
+
+            	    }
+
+            	    otherlv_2=(Token)match(input,50,FOLLOW_39); if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      							newLeafNode(otherlv_2, grammarAccess.getXRelationalExpressionAccess().getInstanceofKeyword_1_0_0_0_1());
             	      						
             	    }
 
             	    }
 
-            	    // InternalSignalDSL.g:2073:6: ( ( ruleOpOther ) )
-            	    // InternalSignalDSL.g:2074:7: ( ruleOpOther )
+
+            	    }
+
+            	    // InternalSignalDSL.g:1996:5: ( (lv_type_3_0= ruleJvmTypeReference ) )
+            	    // InternalSignalDSL.g:1997:6: (lv_type_3_0= ruleJvmTypeReference )
             	    {
-            	    // InternalSignalDSL.g:2074:7: ( ruleOpOther )
-            	    // InternalSignalDSL.g:2075:8: ruleOpOther
+            	    // InternalSignalDSL.g:1997:6: (lv_type_3_0= ruleJvmTypeReference )
+            	    // InternalSignalDSL.g:1998:7: lv_type_3_0= ruleJvmTypeReference
             	    {
             	    if ( state.backtracking==0 ) {
 
-            	      								if (current==null) {
-            	      									current = createModelElement(grammarAccess.getXOtherOperatorExpressionRule());
-            	      								}
-            	      							
+            	      							newCompositeNode(grammarAccess.getXRelationalExpressionAccess().getTypeJvmTypeReferenceParserRuleCall_1_0_1_0());
+            	      						
             	    }
-            	    if ( state.backtracking==0 ) {
-
-            	      								newCompositeNode(grammarAccess.getXOtherOperatorExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0());
-            	      							
-            	    }
-            	    pushFollow(FOLLOW_23);
-            	    ruleOpOther();
+            	    pushFollow(FOLLOW_38);
+            	    lv_type_3_0=ruleJvmTypeReference();
 
             	    state._fsp--;
             	    if (state.failed) return current;
             	    if ( state.backtracking==0 ) {
 
-            	      								afterParserOrEnumRuleCall();
+            	      							if (current==null) {
+            	      								current = createModelElementForParent(grammarAccess.getXRelationalExpressionRule());
+            	      							}
+            	      							set(
+            	      								current,
+            	      								"type",
+            	      								lv_type_3_0,
+            	      								"org.eclipse.xtext.xbase.Xtype.JvmTypeReference");
+            	      							afterParserOrEnumRuleCall();
+            	      						
+            	    }
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+            	    break;
+            	case 2 :
+            	    // InternalSignalDSL.g:2017:4: ( ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) ) )
+            	    {
+            	    // InternalSignalDSL.g:2017:4: ( ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) ) )
+            	    // InternalSignalDSL.g:2018:5: ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) )
+            	    {
+            	    // InternalSignalDSL.g:2018:5: ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) )
+            	    // InternalSignalDSL.g:2019:6: ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) )
+            	    {
+            	    // InternalSignalDSL.g:2029:6: ( () ( ( ruleOpCompare ) ) )
+            	    // InternalSignalDSL.g:2030:7: () ( ( ruleOpCompare ) )
+            	    {
+            	    // InternalSignalDSL.g:2030:7: ()
+            	    // InternalSignalDSL.g:2031:8: 
+            	    {
+            	    if ( state.backtracking==0 ) {
+
+            	      								current = forceCreateModelElementAndSet(
+            	      									grammarAccess.getXRelationalExpressionAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0(),
+            	      									current);
             	      							
             	    }
 
             	    }
 
-
-            	    }
-
-
-            	    }
-
-
-            	    }
-
-            	    // InternalSignalDSL.g:2091:4: ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) )
-            	    // InternalSignalDSL.g:2092:5: (lv_rightOperand_3_0= ruleXAdditiveExpression )
+            	    // InternalSignalDSL.g:2037:7: ( ( ruleOpCompare ) )
+            	    // InternalSignalDSL.g:2038:8: ( ruleOpCompare )
             	    {
-            	    // InternalSignalDSL.g:2092:5: (lv_rightOperand_3_0= ruleXAdditiveExpression )
-            	    // InternalSignalDSL.g:2093:6: lv_rightOperand_3_0= ruleXAdditiveExpression
+            	    // InternalSignalDSL.g:2038:8: ( ruleOpCompare )
+            	    // InternalSignalDSL.g:2039:9: ruleOpCompare
             	    {
             	    if ( state.backtracking==0 ) {
 
-            	      						newCompositeNode(grammarAccess.getXOtherOperatorExpressionAccess().getRightOperandXAdditiveExpressionParserRuleCall_1_1_0());
-            	      					
+            	      									if (current==null) {
+            	      										current = createModelElement(grammarAccess.getXRelationalExpressionRule());
+            	      									}
+            	      								
             	    }
-            	    pushFollow(FOLLOW_37);
-            	    lv_rightOperand_3_0=ruleXAdditiveExpression();
+            	    if ( state.backtracking==0 ) {
+
+            	      									newCompositeNode(grammarAccess.getXRelationalExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_1_0_0_1_0());
+            	      								
+            	    }
+            	    pushFollow(FOLLOW_26);
+            	    ruleOpCompare();
 
             	    state._fsp--;
             	    if (state.failed) return current;
             	    if ( state.backtracking==0 ) {
 
-            	      						if (current==null) {
-            	      							current = createModelElementForParent(grammarAccess.getXOtherOperatorExpressionRule());
-            	      						}
-            	      						set(
-            	      							current,
-            	      							"rightOperand",
-            	      							lv_rightOperand_3_0,
-            	      							"org.eclipse.xtext.xbase.Xbase.XAdditiveExpression");
-            	      						afterParserOrEnumRuleCall();
-            	      					
+            	      									afterParserOrEnumRuleCall();
+            	      								
             	    }
 
             	    }
@@ -5942,6 +5770,50 @@
 
 
             	    }
+
+
+            	    }
+
+            	    // InternalSignalDSL.g:2055:5: ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) )
+            	    // InternalSignalDSL.g:2056:6: (lv_rightOperand_6_0= ruleXOtherOperatorExpression )
+            	    {
+            	    // InternalSignalDSL.g:2056:6: (lv_rightOperand_6_0= ruleXOtherOperatorExpression )
+            	    // InternalSignalDSL.g:2057:7: lv_rightOperand_6_0= ruleXOtherOperatorExpression
+            	    {
+            	    if ( state.backtracking==0 ) {
+
+            	      							newCompositeNode(grammarAccess.getXRelationalExpressionAccess().getRightOperandXOtherOperatorExpressionParserRuleCall_1_1_1_0());
+            	      						
+            	    }
+            	    pushFollow(FOLLOW_38);
+            	    lv_rightOperand_6_0=ruleXOtherOperatorExpression();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      							if (current==null) {
+            	      								current = createModelElementForParent(grammarAccess.getXRelationalExpressionRule());
+            	      							}
+            	      							set(
+            	      								current,
+            	      								"rightOperand",
+            	      								lv_rightOperand_6_0,
+            	      								"org.eclipse.xtext.xbase.Xbase.XOtherOperatorExpression");
+            	      							afterParserOrEnumRuleCall();
+            	      						
+            	    }
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+
+            	    }
             	    break;
 
             	default :
@@ -5970,11 +5842,407 @@
         }
         return current;
     }
+    // $ANTLR end "ruleXRelationalExpression"
+
+
+    // $ANTLR start "entryRuleOpCompare"
+    // InternalSignalDSL.g:2080:1: entryRuleOpCompare returns [String current=null] : iv_ruleOpCompare= ruleOpCompare EOF ;
+    public final String entryRuleOpCompare() throws RecognitionException {
+        String current = null;
+
+        AntlrDatatypeRuleToken iv_ruleOpCompare = null;
+
+
+        try {
+            // InternalSignalDSL.g:2080:49: (iv_ruleOpCompare= ruleOpCompare EOF )
+            // InternalSignalDSL.g:2081:2: iv_ruleOpCompare= ruleOpCompare EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getOpCompareRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_ruleOpCompare=ruleOpCompare();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleOpCompare.getText(); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleOpCompare"
+
+
+    // $ANTLR start "ruleOpCompare"
+    // InternalSignalDSL.g:2087:1: ruleOpCompare returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '>=' | (kw= '<' kw= '=' ) | kw= '>' | kw= '<' ) ;
+    public final AntlrDatatypeRuleToken ruleOpCompare() throws RecognitionException {
+        AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+        Token kw=null;
+
+
+        	enterRule();
+
+        try {
+            // InternalSignalDSL.g:2093:2: ( (kw= '>=' | (kw= '<' kw= '=' ) | kw= '>' | kw= '<' ) )
+            // InternalSignalDSL.g:2094:2: (kw= '>=' | (kw= '<' kw= '=' ) | kw= '>' | kw= '<' )
+            {
+            // InternalSignalDSL.g:2094:2: (kw= '>=' | (kw= '<' kw= '=' ) | kw= '>' | kw= '<' )
+            int alt33=4;
+            switch ( input.LA(1) ) {
+            case 43:
+                {
+                alt33=1;
+                }
+                break;
+            case 41:
+                {
+                int LA33_2 = input.LA(2);
+
+                if ( (LA33_2==EOF||(LA33_2>=RULE_ID && LA33_2<=RULE_DECIMAL)||LA33_2==14||LA33_2==18||(LA33_2>=22 && LA33_2<=24)||LA33_2==29||(LA33_2>=33 && LA33_2<=34)||LA33_2==41||(LA33_2>=57 && LA33_2<=58)||LA33_2==62||LA33_2==70||LA33_2==72||(LA33_2>=76 && LA33_2<=77)||(LA33_2>=80 && LA33_2<=89)||LA33_2==91) ) {
+                    alt33=4;
+                }
+                else if ( (LA33_2==32) ) {
+                    alt33=2;
+                }
+                else {
+                    if (state.backtracking>0) {state.failed=true; return current;}
+                    NoViableAltException nvae =
+                        new NoViableAltException("", 33, 2, input);
+
+                    throw nvae;
+                }
+                }
+                break;
+            case 42:
+                {
+                alt33=3;
+                }
+                break;
+            default:
+                if (state.backtracking>0) {state.failed=true; return current;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 33, 0, input);
+
+                throw nvae;
+            }
+
+            switch (alt33) {
+                case 1 :
+                    // InternalSignalDSL.g:2095:3: kw= '>='
+                    {
+                    kw=(Token)match(input,43,FOLLOW_2); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      			current.merge(kw);
+                      			newLeafNode(kw, grammarAccess.getOpCompareAccess().getGreaterThanSignEqualsSignKeyword_0());
+                      		
+                    }
+
+                    }
+                    break;
+                case 2 :
+                    // InternalSignalDSL.g:2101:3: (kw= '<' kw= '=' )
+                    {
+                    // InternalSignalDSL.g:2101:3: (kw= '<' kw= '=' )
+                    // InternalSignalDSL.g:2102:4: kw= '<' kw= '='
+                    {
+                    kw=(Token)match(input,41,FOLLOW_25); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      				current.merge(kw);
+                      				newLeafNode(kw, grammarAccess.getOpCompareAccess().getLessThanSignKeyword_1_0());
+                      			
+                    }
+                    kw=(Token)match(input,32,FOLLOW_2); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      				current.merge(kw);
+                      				newLeafNode(kw, grammarAccess.getOpCompareAccess().getEqualsSignKeyword_1_1());
+                      			
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 3 :
+                    // InternalSignalDSL.g:2114:3: kw= '>'
+                    {
+                    kw=(Token)match(input,42,FOLLOW_2); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      			current.merge(kw);
+                      			newLeafNode(kw, grammarAccess.getOpCompareAccess().getGreaterThanSignKeyword_2());
+                      		
+                    }
+
+                    }
+                    break;
+                case 4 :
+                    // InternalSignalDSL.g:2120:3: kw= '<'
+                    {
+                    kw=(Token)match(input,41,FOLLOW_2); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      			current.merge(kw);
+                      			newLeafNode(kw, grammarAccess.getOpCompareAccess().getLessThanSignKeyword_3());
+                      		
+                    }
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleOpCompare"
+
+
+    // $ANTLR start "entryRuleXOtherOperatorExpression"
+    // InternalSignalDSL.g:2129:1: entryRuleXOtherOperatorExpression returns [EObject current=null] : iv_ruleXOtherOperatorExpression= ruleXOtherOperatorExpression EOF ;
+    public final EObject entryRuleXOtherOperatorExpression() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleXOtherOperatorExpression = null;
+
+
+        try {
+            // InternalSignalDSL.g:2129:65: (iv_ruleXOtherOperatorExpression= ruleXOtherOperatorExpression EOF )
+            // InternalSignalDSL.g:2130:2: iv_ruleXOtherOperatorExpression= ruleXOtherOperatorExpression EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getXOtherOperatorExpressionRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_ruleXOtherOperatorExpression=ruleXOtherOperatorExpression();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleXOtherOperatorExpression; 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleXOtherOperatorExpression"
+
+
+    // $ANTLR start "ruleXOtherOperatorExpression"
+    // InternalSignalDSL.g:2136: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;
+
+        EObject this_XAdditiveExpression_0 = null;
+
+        EObject lv_rightOperand_3_0 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalSignalDSL.g:2142:2: ( (this_XAdditiveExpression_0= ruleXAdditiveExpression ( ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) ) ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) ) )* ) )
+            // InternalSignalDSL.g:2143:2: (this_XAdditiveExpression_0= ruleXAdditiveExpression ( ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) ) ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) ) )* )
+            {
+            // InternalSignalDSL.g:2143:2: (this_XAdditiveExpression_0= ruleXAdditiveExpression ( ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) ) ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) ) )* )
+            // InternalSignalDSL.g:2144:3: this_XAdditiveExpression_0= ruleXAdditiveExpression ( ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) ) ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) ) )*
+            {
+            if ( state.backtracking==0 ) {
+
+              			newCompositeNode(grammarAccess.getXOtherOperatorExpressionAccess().getXAdditiveExpressionParserRuleCall_0());
+              		
+            }
+            pushFollow(FOLLOW_40);
+            this_XAdditiveExpression_0=ruleXAdditiveExpression();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			current = this_XAdditiveExpression_0;
+              			afterParserOrEnumRuleCall();
+              		
+            }
+            // InternalSignalDSL.g:2152:3: ( ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) ) ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) ) )*
+            loop34:
+            do {
+                int alt34=2;
+                alt34 = dfa34.predict(input);
+                switch (alt34) {
+            	case 1 :
+            	    // InternalSignalDSL.g:2153:4: ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) ) ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) )
+            	    {
+            	    // InternalSignalDSL.g:2153:4: ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) )
+            	    // InternalSignalDSL.g:2154:5: ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) )
+            	    {
+            	    // InternalSignalDSL.g:2164:5: ( () ( ( ruleOpOther ) ) )
+            	    // InternalSignalDSL.g:2165:6: () ( ( ruleOpOther ) )
+            	    {
+            	    // InternalSignalDSL.g:2165:6: ()
+            	    // InternalSignalDSL.g:2166:7: 
+            	    {
+            	    if ( state.backtracking==0 ) {
+
+            	      							current = forceCreateModelElementAndSet(
+            	      								grammarAccess.getXOtherOperatorExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0(),
+            	      								current);
+            	      						
+            	    }
+
+            	    }
+
+            	    // InternalSignalDSL.g:2172:6: ( ( ruleOpOther ) )
+            	    // InternalSignalDSL.g:2173:7: ( ruleOpOther )
+            	    {
+            	    // InternalSignalDSL.g:2173:7: ( ruleOpOther )
+            	    // InternalSignalDSL.g:2174:8: ruleOpOther
+            	    {
+            	    if ( state.backtracking==0 ) {
+
+            	      								if (current==null) {
+            	      									current = createModelElement(grammarAccess.getXOtherOperatorExpressionRule());
+            	      								}
+            	      							
+            	    }
+            	    if ( state.backtracking==0 ) {
+
+            	      								newCompositeNode(grammarAccess.getXOtherOperatorExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0());
+            	      							
+            	    }
+            	    pushFollow(FOLLOW_26);
+            	    ruleOpOther();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      								afterParserOrEnumRuleCall();
+            	      							
+            	    }
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+            	    // InternalSignalDSL.g:2190:4: ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) )
+            	    // InternalSignalDSL.g:2191:5: (lv_rightOperand_3_0= ruleXAdditiveExpression )
+            	    {
+            	    // InternalSignalDSL.g:2191:5: (lv_rightOperand_3_0= ruleXAdditiveExpression )
+            	    // InternalSignalDSL.g:2192:6: lv_rightOperand_3_0= ruleXAdditiveExpression
+            	    {
+            	    if ( state.backtracking==0 ) {
+
+            	      						newCompositeNode(grammarAccess.getXOtherOperatorExpressionAccess().getRightOperandXAdditiveExpressionParserRuleCall_1_1_0());
+            	      					
+            	    }
+            	    pushFollow(FOLLOW_40);
+            	    lv_rightOperand_3_0=ruleXAdditiveExpression();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      						if (current==null) {
+            	      							current = createModelElementForParent(grammarAccess.getXOtherOperatorExpressionRule());
+            	      						}
+            	      						set(
+            	      							current,
+            	      							"rightOperand",
+            	      							lv_rightOperand_3_0,
+            	      							"org.eclipse.xtext.xbase.Xbase.XAdditiveExpression");
+            	      						afterParserOrEnumRuleCall();
+            	      					
+            	    }
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop34;
+                }
+            } while (true);
+
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
     // $ANTLR end "ruleXOtherOperatorExpression"
 
 
     // $ANTLR start "entryRuleOpOther"
-    // InternalSignalDSL.g:2115:1: entryRuleOpOther returns [String current=null] : iv_ruleOpOther= ruleOpOther EOF ;
+    // InternalSignalDSL.g:2214:1: entryRuleOpOther returns [String current=null] : iv_ruleOpOther= ruleOpOther EOF ;
     public final String entryRuleOpOther() throws RecognitionException {
         String current = null;
 
@@ -5982,8 +6250,8 @@
 
 
         try {
-            // InternalSignalDSL.g:2115:47: (iv_ruleOpOther= ruleOpOther EOF )
-            // InternalSignalDSL.g:2116:2: iv_ruleOpOther= ruleOpOther EOF
+            // InternalSignalDSL.g:2214:47: (iv_ruleOpOther= ruleOpOther EOF )
+            // InternalSignalDSL.g:2215:2: iv_ruleOpOther= ruleOpOther EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getOpOtherRule()); 
@@ -6014,7 +6282,7 @@
 
 
     // $ANTLR start "ruleOpOther"
-    // InternalSignalDSL.g:2122: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:2221: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();
 
@@ -6024,17 +6292,17 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:2128:2: ( (kw= '->' | kw= '..<' | (kw= '>' kw= '..' ) | kw= '..' | kw= '=>' | (kw= '>' ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' ) ) | (kw= '<' ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' | kw= '=>' ) ) | kw= '<>' | kw= '?:' ) )
-            // InternalSignalDSL.g:2129:2: (kw= '->' | kw= '..<' | (kw= '>' kw= '..' ) | kw= '..' | kw= '=>' | (kw= '>' ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' ) ) | (kw= '<' ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' | kw= '=>' ) ) | kw= '<>' | kw= '?:' )
+            // InternalSignalDSL.g:2227:2: ( (kw= '->' | kw= '..<' | (kw= '>' kw= '..' ) | kw= '..' | kw= '=>' | (kw= '>' ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' ) ) | (kw= '<' ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' | kw= '=>' ) ) | kw= '<>' | kw= '?:' ) )
+            // InternalSignalDSL.g:2228:2: (kw= '->' | kw= '..<' | (kw= '>' kw= '..' ) | kw= '..' | kw= '=>' | (kw= '>' ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' ) ) | (kw= '<' ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' | kw= '=>' ) ) | kw= '<>' | kw= '?:' )
             {
-            // InternalSignalDSL.g:2129:2: (kw= '->' | kw= '..<' | (kw= '>' kw= '..' ) | kw= '..' | kw= '=>' | (kw= '>' ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' ) ) | (kw= '<' ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' | kw= '=>' ) ) | kw= '<>' | kw= '?:' )
-            int alt35=9;
-            alt35 = dfa35.predict(input);
-            switch (alt35) {
+            // InternalSignalDSL.g:2228:2: (kw= '->' | kw= '..<' | (kw= '>' kw= '..' ) | kw= '..' | kw= '=>' | (kw= '>' ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' ) ) | (kw= '<' ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' | kw= '=>' ) ) | kw= '<>' | kw= '?:' )
+            int alt37=9;
+            alt37 = dfa37.predict(input);
+            switch (alt37) {
                 case 1 :
-                    // InternalSignalDSL.g:2130:3: kw= '->'
+                    // InternalSignalDSL.g:2229:3: kw= '->'
                     {
-                    kw=(Token)match(input,49,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);
@@ -6045,9 +6313,9 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:2136:3: kw= '..<'
+                    // InternalSignalDSL.g:2235:3: kw= '..<'
                     {
-                    kw=(Token)match(input,50,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);
@@ -6058,19 +6326,19 @@
                     }
                     break;
                 case 3 :
-                    // InternalSignalDSL.g:2142:3: (kw= '>' kw= '..' )
+                    // InternalSignalDSL.g:2241:3: (kw= '>' kw= '..' )
                     {
-                    // InternalSignalDSL.g:2142:3: (kw= '>' kw= '..' )
-                    // InternalSignalDSL.g:2143:4: kw= '>' kw= '..'
+                    // InternalSignalDSL.g:2241:3: (kw= '>' kw= '..' )
+                    // InternalSignalDSL.g:2242:4: kw= '>' kw= '..'
                     {
-                    kw=(Token)match(input,40,FOLLOW_38); if (state.failed) return current;
+                    kw=(Token)match(input,42,FOLLOW_41); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current.merge(kw);
                       				newLeafNode(kw, grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_2_0());
                       			
                     }
-                    kw=(Token)match(input,51,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);
@@ -6084,9 +6352,9 @@
                     }
                     break;
                 case 4 :
-                    // InternalSignalDSL.g:2155:3: kw= '..'
+                    // InternalSignalDSL.g:2254:3: kw= '..'
                     {
-                    kw=(Token)match(input,51,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);
@@ -6097,9 +6365,9 @@
                     }
                     break;
                 case 5 :
-                    // InternalSignalDSL.g:2161:3: kw= '=>'
+                    // InternalSignalDSL.g:2260:3: kw= '=>'
                     {
-                    kw=(Token)match(input,52,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);
@@ -6110,35 +6378,35 @@
                     }
                     break;
                 case 6 :
-                    // InternalSignalDSL.g:2167:3: (kw= '>' ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' ) )
+                    // InternalSignalDSL.g:2266:3: (kw= '>' ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' ) )
                     {
-                    // InternalSignalDSL.g:2167:3: (kw= '>' ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' ) )
-                    // InternalSignalDSL.g:2168:4: kw= '>' ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' )
+                    // InternalSignalDSL.g:2266:3: (kw= '>' ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' ) )
+                    // InternalSignalDSL.g:2267:4: kw= '>' ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' )
                     {
-                    kw=(Token)match(input,40,FOLLOW_39); if (state.failed) return current;
+                    kw=(Token)match(input,42,FOLLOW_42); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current.merge(kw);
                       				newLeafNode(kw, grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_0());
                       			
                     }
-                    // InternalSignalDSL.g:2173:4: ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' )
-                    int alt33=2;
-                    int LA33_0 = input.LA(1);
+                    // InternalSignalDSL.g:2272:4: ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' )
+                    int alt35=2;
+                    int LA35_0 = input.LA(1);
 
-                    if ( (LA33_0==40) ) {
-                        int LA33_1 = input.LA(2);
+                    if ( (LA35_0==42) ) {
+                        int LA35_1 = input.LA(2);
 
-                        if ( (LA33_1==EOF||(LA33_1>=RULE_ID && LA33_1<=RULE_DECIMAL)||LA33_1==14||LA33_1==18||(LA33_1>=20 && LA33_1<=22)||LA33_1==27||(LA33_1>=31 && LA33_1<=32)||LA33_1==39||(LA33_1>=55 && LA33_1<=56)||LA33_1==60||LA33_1==68||LA33_1==70||(LA33_1>=74 && LA33_1<=75)||(LA33_1>=78 && LA33_1<=87)||LA33_1==89) ) {
-                            alt33=2;
+                        if ( (LA35_1==42) && (synpred14_InternalSignalDSL())) {
+                            alt35=1;
                         }
-                        else if ( (LA33_1==40) && (synpred14_InternalSignalDSL())) {
-                            alt33=1;
+                        else if ( (LA35_1==EOF||(LA35_1>=RULE_ID && LA35_1<=RULE_DECIMAL)||LA35_1==14||LA35_1==18||(LA35_1>=22 && LA35_1<=24)||LA35_1==29||(LA35_1>=33 && LA35_1<=34)||LA35_1==41||(LA35_1>=57 && LA35_1<=58)||LA35_1==62||LA35_1==70||LA35_1==72||(LA35_1>=76 && LA35_1<=77)||(LA35_1>=80 && LA35_1<=89)||LA35_1==91) ) {
+                            alt35=2;
                         }
                         else {
                             if (state.backtracking>0) {state.failed=true; return current;}
                             NoViableAltException nvae =
-                                new NoViableAltException("", 33, 1, input);
+                                new NoViableAltException("", 35, 1, input);
 
                             throw nvae;
                         }
@@ -6146,28 +6414,28 @@
                     else {
                         if (state.backtracking>0) {state.failed=true; return current;}
                         NoViableAltException nvae =
-                            new NoViableAltException("", 33, 0, input);
+                            new NoViableAltException("", 35, 0, input);
 
                         throw nvae;
                     }
-                    switch (alt33) {
+                    switch (alt35) {
                         case 1 :
-                            // InternalSignalDSL.g:2174:5: ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) )
+                            // InternalSignalDSL.g:2273:5: ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) )
                             {
-                            // InternalSignalDSL.g:2174:5: ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) )
-                            // InternalSignalDSL.g:2175:6: ( ( '>' '>' ) )=> (kw= '>' kw= '>' )
+                            // InternalSignalDSL.g:2273:5: ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) )
+                            // InternalSignalDSL.g:2274:6: ( ( '>' '>' ) )=> (kw= '>' kw= '>' )
                             {
-                            // InternalSignalDSL.g:2180:6: (kw= '>' kw= '>' )
-                            // InternalSignalDSL.g:2181:7: kw= '>' kw= '>'
+                            // InternalSignalDSL.g:2279:6: (kw= '>' kw= '>' )
+                            // InternalSignalDSL.g:2280:7: kw= '>' kw= '>'
                             {
-                            kw=(Token)match(input,40,FOLLOW_39); if (state.failed) return current;
+                            kw=(Token)match(input,42,FOLLOW_42); 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,40,FOLLOW_2); if (state.failed) return current;
+                            kw=(Token)match(input,42,FOLLOW_2); if (state.failed) return current;
                             if ( state.backtracking==0 ) {
 
                               							current.merge(kw);
@@ -6184,9 +6452,9 @@
                             }
                             break;
                         case 2 :
-                            // InternalSignalDSL.g:2194:5: kw= '>'
+                            // InternalSignalDSL.g:2293:5: kw= '>'
                             {
-                            kw=(Token)match(input,40,FOLLOW_2); if (state.failed) return current;
+                            kw=(Token)match(input,42,FOLLOW_2); if (state.failed) return current;
                             if ( state.backtracking==0 ) {
 
                               					current.merge(kw);
@@ -6206,67 +6474,67 @@
                     }
                     break;
                 case 7 :
-                    // InternalSignalDSL.g:2202:3: (kw= '<' ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' | kw= '=>' ) )
+                    // InternalSignalDSL.g:2301:3: (kw= '<' ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' | kw= '=>' ) )
                     {
-                    // InternalSignalDSL.g:2202:3: (kw= '<' ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' | kw= '=>' ) )
-                    // InternalSignalDSL.g:2203:4: kw= '<' ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' | kw= '=>' )
+                    // InternalSignalDSL.g:2301:3: (kw= '<' ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' | kw= '=>' ) )
+                    // InternalSignalDSL.g:2302:4: kw= '<' ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' | kw= '=>' )
                     {
-                    kw=(Token)match(input,39,FOLLOW_40); if (state.failed) return current;
+                    kw=(Token)match(input,41,FOLLOW_43); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current.merge(kw);
                       				newLeafNode(kw, grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_0());
                       			
                     }
-                    // InternalSignalDSL.g:2208:4: ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' | kw= '=>' )
-                    int alt34=3;
-                    int LA34_0 = input.LA(1);
+                    // InternalSignalDSL.g:2307:4: ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' | kw= '=>' )
+                    int alt36=3;
+                    int LA36_0 = input.LA(1);
 
-                    if ( (LA34_0==39) ) {
-                        int LA34_1 = input.LA(2);
+                    if ( (LA36_0==41) ) {
+                        int LA36_1 = input.LA(2);
 
                         if ( (synpred15_InternalSignalDSL()) ) {
-                            alt34=1;
+                            alt36=1;
                         }
                         else if ( (true) ) {
-                            alt34=2;
+                            alt36=2;
                         }
                         else {
                             if (state.backtracking>0) {state.failed=true; return current;}
                             NoViableAltException nvae =
-                                new NoViableAltException("", 34, 1, input);
+                                new NoViableAltException("", 36, 1, input);
 
                             throw nvae;
                         }
                     }
-                    else if ( (LA34_0==52) ) {
-                        alt34=3;
+                    else if ( (LA36_0==54) ) {
+                        alt36=3;
                     }
                     else {
                         if (state.backtracking>0) {state.failed=true; return current;}
                         NoViableAltException nvae =
-                            new NoViableAltException("", 34, 0, input);
+                            new NoViableAltException("", 36, 0, input);
 
                         throw nvae;
                     }
-                    switch (alt34) {
+                    switch (alt36) {
                         case 1 :
-                            // InternalSignalDSL.g:2209:5: ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) )
+                            // InternalSignalDSL.g:2308:5: ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) )
                             {
-                            // InternalSignalDSL.g:2209:5: ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) )
-                            // InternalSignalDSL.g:2210:6: ( ( '<' '<' ) )=> (kw= '<' kw= '<' )
+                            // InternalSignalDSL.g:2308:5: ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) )
+                            // InternalSignalDSL.g:2309:6: ( ( '<' '<' ) )=> (kw= '<' kw= '<' )
                             {
-                            // InternalSignalDSL.g:2215:6: (kw= '<' kw= '<' )
-                            // InternalSignalDSL.g:2216:7: kw= '<' kw= '<'
+                            // InternalSignalDSL.g:2314:6: (kw= '<' kw= '<' )
+                            // InternalSignalDSL.g:2315:7: kw= '<' kw= '<'
                             {
-                            kw=(Token)match(input,39,FOLLOW_29); if (state.failed) return current;
+                            kw=(Token)match(input,41,FOLLOW_32); 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,39,FOLLOW_2); if (state.failed) return current;
+                            kw=(Token)match(input,41,FOLLOW_2); if (state.failed) return current;
                             if ( state.backtracking==0 ) {
 
                               							current.merge(kw);
@@ -6283,9 +6551,9 @@
                             }
                             break;
                         case 2 :
-                            // InternalSignalDSL.g:2229:5: kw= '<'
+                            // InternalSignalDSL.g:2328:5: kw= '<'
                             {
-                            kw=(Token)match(input,39,FOLLOW_2); if (state.failed) return current;
+                            kw=(Token)match(input,41,FOLLOW_2); if (state.failed) return current;
                             if ( state.backtracking==0 ) {
 
                               					current.merge(kw);
@@ -6296,9 +6564,9 @@
                             }
                             break;
                         case 3 :
-                            // InternalSignalDSL.g:2235:5: kw= '=>'
+                            // InternalSignalDSL.g:2334:5: kw= '=>'
                             {
-                            kw=(Token)match(input,52,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);
@@ -6318,9 +6586,9 @@
                     }
                     break;
                 case 8 :
-                    // InternalSignalDSL.g:2243:3: kw= '<>'
+                    // InternalSignalDSL.g:2342:3: kw= '<>'
                     {
-                    kw=(Token)match(input,53,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);
@@ -6331,9 +6599,9 @@
                     }
                     break;
                 case 9 :
-                    // InternalSignalDSL.g:2249:3: kw= '?:'
+                    // InternalSignalDSL.g:2348:3: kw= '?:'
                     {
-                    kw=(Token)match(input,54,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);
@@ -6368,7 +6636,7 @@
 
 
     // $ANTLR start "entryRuleXAdditiveExpression"
-    // InternalSignalDSL.g:2258:1: entryRuleXAdditiveExpression returns [EObject current=null] : iv_ruleXAdditiveExpression= ruleXAdditiveExpression EOF ;
+    // InternalSignalDSL.g:2357:1: entryRuleXAdditiveExpression returns [EObject current=null] : iv_ruleXAdditiveExpression= ruleXAdditiveExpression EOF ;
     public final EObject entryRuleXAdditiveExpression() throws RecognitionException {
         EObject current = null;
 
@@ -6376,8 +6644,8 @@
 
 
         try {
-            // InternalSignalDSL.g:2258:60: (iv_ruleXAdditiveExpression= ruleXAdditiveExpression EOF )
-            // InternalSignalDSL.g:2259:2: iv_ruleXAdditiveExpression= ruleXAdditiveExpression EOF
+            // InternalSignalDSL.g:2357:60: (iv_ruleXAdditiveExpression= ruleXAdditiveExpression EOF )
+            // InternalSignalDSL.g:2358:2: iv_ruleXAdditiveExpression= ruleXAdditiveExpression EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXAdditiveExpressionRule()); 
@@ -6408,7 +6676,7 @@
 
 
     // $ANTLR start "ruleXAdditiveExpression"
-    // InternalSignalDSL.g:2265:1: ruleXAdditiveExpression returns [EObject current=null] : (this_XMultiplicativeExpression_0= ruleXMultiplicativeExpression ( ( ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) ) ) ( (lv_rightOperand_3_0= ruleXMultiplicativeExpression ) ) )* ) ;
+    // InternalSignalDSL.g:2364: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;
 
@@ -6421,18 +6689,18 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:2271:2: ( (this_XMultiplicativeExpression_0= ruleXMultiplicativeExpression ( ( ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) ) ) ( (lv_rightOperand_3_0= ruleXMultiplicativeExpression ) ) )* ) )
-            // InternalSignalDSL.g:2272:2: (this_XMultiplicativeExpression_0= ruleXMultiplicativeExpression ( ( ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) ) ) ( (lv_rightOperand_3_0= ruleXMultiplicativeExpression ) ) )* )
+            // InternalSignalDSL.g:2370:2: ( (this_XMultiplicativeExpression_0= ruleXMultiplicativeExpression ( ( ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) ) ) ( (lv_rightOperand_3_0= ruleXMultiplicativeExpression ) ) )* ) )
+            // InternalSignalDSL.g:2371:2: (this_XMultiplicativeExpression_0= ruleXMultiplicativeExpression ( ( ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) ) ) ( (lv_rightOperand_3_0= ruleXMultiplicativeExpression ) ) )* )
             {
-            // InternalSignalDSL.g:2272:2: (this_XMultiplicativeExpression_0= ruleXMultiplicativeExpression ( ( ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) ) ) ( (lv_rightOperand_3_0= ruleXMultiplicativeExpression ) ) )* )
-            // InternalSignalDSL.g:2273:3: this_XMultiplicativeExpression_0= ruleXMultiplicativeExpression ( ( ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) ) ) ( (lv_rightOperand_3_0= ruleXMultiplicativeExpression ) ) )*
+            // InternalSignalDSL.g:2371:2: (this_XMultiplicativeExpression_0= ruleXMultiplicativeExpression ( ( ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) ) ) ( (lv_rightOperand_3_0= ruleXMultiplicativeExpression ) ) )* )
+            // InternalSignalDSL.g:2372:3: this_XMultiplicativeExpression_0= ruleXMultiplicativeExpression ( ( ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) ) ) ( (lv_rightOperand_3_0= ruleXMultiplicativeExpression ) ) )*
             {
             if ( state.backtracking==0 ) {
 
               			newCompositeNode(grammarAccess.getXAdditiveExpressionAccess().getXMultiplicativeExpressionParserRuleCall_0());
               		
             }
-            pushFollow(FOLLOW_41);
+            pushFollow(FOLLOW_44);
             this_XMultiplicativeExpression_0=ruleXMultiplicativeExpression();
 
             state._fsp--;
@@ -6443,44 +6711,44 @@
               			afterParserOrEnumRuleCall();
               		
             }
-            // InternalSignalDSL.g:2281:3: ( ( ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) ) ) ( (lv_rightOperand_3_0= ruleXMultiplicativeExpression ) ) )*
-            loop36:
+            // InternalSignalDSL.g:2380:3: ( ( ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) ) ) ( (lv_rightOperand_3_0= ruleXMultiplicativeExpression ) ) )*
+            loop38:
             do {
-                int alt36=2;
-                int LA36_0 = input.LA(1);
+                int alt38=2;
+                int LA38_0 = input.LA(1);
 
-                if ( (LA36_0==55) ) {
-                    int LA36_2 = input.LA(2);
+                if ( (LA38_0==57) ) {
+                    int LA38_2 = input.LA(2);
 
                     if ( (synpred16_InternalSignalDSL()) ) {
-                        alt36=1;
+                        alt38=1;
                     }
 
 
                 }
-                else if ( (LA36_0==56) ) {
-                    int LA36_3 = input.LA(2);
+                else if ( (LA38_0==58) ) {
+                    int LA38_3 = input.LA(2);
 
                     if ( (synpred16_InternalSignalDSL()) ) {
-                        alt36=1;
+                        alt38=1;
                     }
 
 
                 }
 
 
-                switch (alt36) {
+                switch (alt38) {
             	case 1 :
-            	    // InternalSignalDSL.g:2282:4: ( ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) ) ) ( (lv_rightOperand_3_0= ruleXMultiplicativeExpression ) )
+            	    // InternalSignalDSL.g:2381:4: ( ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) ) ) ( (lv_rightOperand_3_0= ruleXMultiplicativeExpression ) )
             	    {
-            	    // InternalSignalDSL.g:2282:4: ( ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) ) )
-            	    // InternalSignalDSL.g:2283:5: ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) )
+            	    // InternalSignalDSL.g:2381:4: ( ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) ) )
+            	    // InternalSignalDSL.g:2382:5: ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) )
             	    {
-            	    // InternalSignalDSL.g:2293:5: ( () ( ( ruleOpAdd ) ) )
-            	    // InternalSignalDSL.g:2294:6: () ( ( ruleOpAdd ) )
+            	    // InternalSignalDSL.g:2392:5: ( () ( ( ruleOpAdd ) ) )
+            	    // InternalSignalDSL.g:2393:6: () ( ( ruleOpAdd ) )
             	    {
-            	    // InternalSignalDSL.g:2294:6: ()
-            	    // InternalSignalDSL.g:2295:7: 
+            	    // InternalSignalDSL.g:2393:6: ()
+            	    // InternalSignalDSL.g:2394:7: 
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -6492,11 +6760,11 @@
 
             	    }
 
-            	    // InternalSignalDSL.g:2301:6: ( ( ruleOpAdd ) )
-            	    // InternalSignalDSL.g:2302:7: ( ruleOpAdd )
+            	    // InternalSignalDSL.g:2400:6: ( ( ruleOpAdd ) )
+            	    // InternalSignalDSL.g:2401:7: ( ruleOpAdd )
             	    {
-            	    // InternalSignalDSL.g:2302:7: ( ruleOpAdd )
-            	    // InternalSignalDSL.g:2303:8: ruleOpAdd
+            	    // InternalSignalDSL.g:2401:7: ( ruleOpAdd )
+            	    // InternalSignalDSL.g:2402:8: ruleOpAdd
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -6510,7 +6778,7 @@
             	      								newCompositeNode(grammarAccess.getXAdditiveExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0());
             	      							
             	    }
-            	    pushFollow(FOLLOW_23);
+            	    pushFollow(FOLLOW_26);
             	    ruleOpAdd();
 
             	    state._fsp--;
@@ -6532,18 +6800,18 @@
 
             	    }
 
-            	    // InternalSignalDSL.g:2319:4: ( (lv_rightOperand_3_0= ruleXMultiplicativeExpression ) )
-            	    // InternalSignalDSL.g:2320:5: (lv_rightOperand_3_0= ruleXMultiplicativeExpression )
+            	    // InternalSignalDSL.g:2418:4: ( (lv_rightOperand_3_0= ruleXMultiplicativeExpression ) )
+            	    // InternalSignalDSL.g:2419:5: (lv_rightOperand_3_0= ruleXMultiplicativeExpression )
             	    {
-            	    // InternalSignalDSL.g:2320:5: (lv_rightOperand_3_0= ruleXMultiplicativeExpression )
-            	    // InternalSignalDSL.g:2321:6: lv_rightOperand_3_0= ruleXMultiplicativeExpression
+            	    // InternalSignalDSL.g:2419:5: (lv_rightOperand_3_0= ruleXMultiplicativeExpression )
+            	    // InternalSignalDSL.g:2420:6: lv_rightOperand_3_0= ruleXMultiplicativeExpression
             	    {
             	    if ( state.backtracking==0 ) {
 
             	      						newCompositeNode(grammarAccess.getXAdditiveExpressionAccess().getRightOperandXMultiplicativeExpressionParserRuleCall_1_1_0());
             	      					
             	    }
-            	    pushFollow(FOLLOW_41);
+            	    pushFollow(FOLLOW_44);
             	    lv_rightOperand_3_0=ruleXMultiplicativeExpression();
 
             	    state._fsp--;
@@ -6572,387 +6840,6 @@
             	    break;
 
             	default :
-            	    break loop36;
-                }
-            } while (true);
-
-
-            }
-
-
-            }
-
-            if ( state.backtracking==0 ) {
-
-              	leaveRule();
-
-            }
-        }
-
-            catch (RecognitionException re) {
-                recover(input,re);
-                appendSkippedTokens();
-            }
-        finally {
-        }
-        return current;
-    }
-    // $ANTLR end "ruleXAdditiveExpression"
-
-
-    // $ANTLR start "entryRuleOpAdd"
-    // InternalSignalDSL.g:2343:1: entryRuleOpAdd returns [String current=null] : iv_ruleOpAdd= ruleOpAdd EOF ;
-    public final String entryRuleOpAdd() throws RecognitionException {
-        String current = null;
-
-        AntlrDatatypeRuleToken iv_ruleOpAdd = null;
-
-
-        try {
-            // InternalSignalDSL.g:2343:45: (iv_ruleOpAdd= ruleOpAdd EOF )
-            // InternalSignalDSL.g:2344:2: iv_ruleOpAdd= ruleOpAdd EOF
-            {
-            if ( state.backtracking==0 ) {
-               newCompositeNode(grammarAccess.getOpAddRule()); 
-            }
-            pushFollow(FOLLOW_1);
-            iv_ruleOpAdd=ruleOpAdd();
-
-            state._fsp--;
-            if (state.failed) return current;
-            if ( state.backtracking==0 ) {
-               current =iv_ruleOpAdd.getText(); 
-            }
-            match(input,EOF,FOLLOW_2); if (state.failed) return current;
-
-            }
-
-        }
-
-            catch (RecognitionException re) {
-                recover(input,re);
-                appendSkippedTokens();
-            }
-        finally {
-        }
-        return current;
-    }
-    // $ANTLR end "entryRuleOpAdd"
-
-
-    // $ANTLR start "ruleOpAdd"
-    // InternalSignalDSL.g:2350:1: ruleOpAdd returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '+' | kw= '-' ) ;
-    public final AntlrDatatypeRuleToken ruleOpAdd() throws RecognitionException {
-        AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
-
-        Token kw=null;
-
-
-        	enterRule();
-
-        try {
-            // InternalSignalDSL.g:2356:2: ( (kw= '+' | kw= '-' ) )
-            // InternalSignalDSL.g:2357:2: (kw= '+' | kw= '-' )
-            {
-            // InternalSignalDSL.g:2357:2: (kw= '+' | kw= '-' )
-            int alt37=2;
-            int LA37_0 = input.LA(1);
-
-            if ( (LA37_0==55) ) {
-                alt37=1;
-            }
-            else if ( (LA37_0==56) ) {
-                alt37=2;
-            }
-            else {
-                if (state.backtracking>0) {state.failed=true; return current;}
-                NoViableAltException nvae =
-                    new NoViableAltException("", 37, 0, input);
-
-                throw nvae;
-            }
-            switch (alt37) {
-                case 1 :
-                    // InternalSignalDSL.g:2358:3: kw= '+'
-                    {
-                    kw=(Token)match(input,55,FOLLOW_2); if (state.failed) return current;
-                    if ( state.backtracking==0 ) {
-
-                      			current.merge(kw);
-                      			newLeafNode(kw, grammarAccess.getOpAddAccess().getPlusSignKeyword_0());
-                      		
-                    }
-
-                    }
-                    break;
-                case 2 :
-                    // InternalSignalDSL.g:2364:3: kw= '-'
-                    {
-                    kw=(Token)match(input,56,FOLLOW_2); if (state.failed) return current;
-                    if ( state.backtracking==0 ) {
-
-                      			current.merge(kw);
-                      			newLeafNode(kw, grammarAccess.getOpAddAccess().getHyphenMinusKeyword_1());
-                      		
-                    }
-
-                    }
-                    break;
-
-            }
-
-
-            }
-
-            if ( state.backtracking==0 ) {
-
-              	leaveRule();
-
-            }
-        }
-
-            catch (RecognitionException re) {
-                recover(input,re);
-                appendSkippedTokens();
-            }
-        finally {
-        }
-        return current;
-    }
-    // $ANTLR end "ruleOpAdd"
-
-
-    // $ANTLR start "entryRuleXMultiplicativeExpression"
-    // InternalSignalDSL.g:2373:1: entryRuleXMultiplicativeExpression returns [EObject current=null] : iv_ruleXMultiplicativeExpression= ruleXMultiplicativeExpression EOF ;
-    public final EObject entryRuleXMultiplicativeExpression() throws RecognitionException {
-        EObject current = null;
-
-        EObject iv_ruleXMultiplicativeExpression = null;
-
-
-        try {
-            // InternalSignalDSL.g:2373:66: (iv_ruleXMultiplicativeExpression= ruleXMultiplicativeExpression EOF )
-            // InternalSignalDSL.g:2374:2: iv_ruleXMultiplicativeExpression= ruleXMultiplicativeExpression EOF
-            {
-            if ( state.backtracking==0 ) {
-               newCompositeNode(grammarAccess.getXMultiplicativeExpressionRule()); 
-            }
-            pushFollow(FOLLOW_1);
-            iv_ruleXMultiplicativeExpression=ruleXMultiplicativeExpression();
-
-            state._fsp--;
-            if (state.failed) return current;
-            if ( state.backtracking==0 ) {
-               current =iv_ruleXMultiplicativeExpression; 
-            }
-            match(input,EOF,FOLLOW_2); if (state.failed) return current;
-
-            }
-
-        }
-
-            catch (RecognitionException re) {
-                recover(input,re);
-                appendSkippedTokens();
-            }
-        finally {
-        }
-        return current;
-    }
-    // $ANTLR end "entryRuleXMultiplicativeExpression"
-
-
-    // $ANTLR start "ruleXMultiplicativeExpression"
-    // InternalSignalDSL.g:2380: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;
-
-        EObject this_XUnaryOperation_0 = null;
-
-        EObject lv_rightOperand_3_0 = null;
-
-
-
-        	enterRule();
-
-        try {
-            // InternalSignalDSL.g:2386:2: ( (this_XUnaryOperation_0= ruleXUnaryOperation ( ( ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) ) ) ( (lv_rightOperand_3_0= ruleXUnaryOperation ) ) )* ) )
-            // InternalSignalDSL.g:2387:2: (this_XUnaryOperation_0= ruleXUnaryOperation ( ( ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) ) ) ( (lv_rightOperand_3_0= ruleXUnaryOperation ) ) )* )
-            {
-            // InternalSignalDSL.g:2387:2: (this_XUnaryOperation_0= ruleXUnaryOperation ( ( ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) ) ) ( (lv_rightOperand_3_0= ruleXUnaryOperation ) ) )* )
-            // InternalSignalDSL.g:2388:3: this_XUnaryOperation_0= ruleXUnaryOperation ( ( ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) ) ) ( (lv_rightOperand_3_0= ruleXUnaryOperation ) ) )*
-            {
-            if ( state.backtracking==0 ) {
-
-              			newCompositeNode(grammarAccess.getXMultiplicativeExpressionAccess().getXUnaryOperationParserRuleCall_0());
-              		
-            }
-            pushFollow(FOLLOW_42);
-            this_XUnaryOperation_0=ruleXUnaryOperation();
-
-            state._fsp--;
-            if (state.failed) return current;
-            if ( state.backtracking==0 ) {
-
-              			current = this_XUnaryOperation_0;
-              			afterParserOrEnumRuleCall();
-              		
-            }
-            // InternalSignalDSL.g:2396:3: ( ( ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) ) ) ( (lv_rightOperand_3_0= ruleXUnaryOperation ) ) )*
-            loop38:
-            do {
-                int alt38=2;
-                switch ( input.LA(1) ) {
-                case 23:
-                    {
-                    int LA38_2 = input.LA(2);
-
-                    if ( (synpred17_InternalSignalDSL()) ) {
-                        alt38=1;
-                    }
-
-
-                    }
-                    break;
-                case 57:
-                    {
-                    int LA38_3 = input.LA(2);
-
-                    if ( (synpred17_InternalSignalDSL()) ) {
-                        alt38=1;
-                    }
-
-
-                    }
-                    break;
-                case 58:
-                    {
-                    int LA38_4 = input.LA(2);
-
-                    if ( (synpred17_InternalSignalDSL()) ) {
-                        alt38=1;
-                    }
-
-
-                    }
-                    break;
-                case 59:
-                    {
-                    int LA38_5 = input.LA(2);
-
-                    if ( (synpred17_InternalSignalDSL()) ) {
-                        alt38=1;
-                    }
-
-
-                    }
-                    break;
-
-                }
-
-                switch (alt38) {
-            	case 1 :
-            	    // InternalSignalDSL.g:2397:4: ( ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) ) ) ( (lv_rightOperand_3_0= ruleXUnaryOperation ) )
-            	    {
-            	    // InternalSignalDSL.g:2397:4: ( ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) ) )
-            	    // InternalSignalDSL.g:2398:5: ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) )
-            	    {
-            	    // InternalSignalDSL.g:2408:5: ( () ( ( ruleOpMulti ) ) )
-            	    // InternalSignalDSL.g:2409:6: () ( ( ruleOpMulti ) )
-            	    {
-            	    // InternalSignalDSL.g:2409:6: ()
-            	    // InternalSignalDSL.g:2410:7: 
-            	    {
-            	    if ( state.backtracking==0 ) {
-
-            	      							current = forceCreateModelElementAndSet(
-            	      								grammarAccess.getXMultiplicativeExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0(),
-            	      								current);
-            	      						
-            	    }
-
-            	    }
-
-            	    // InternalSignalDSL.g:2416:6: ( ( ruleOpMulti ) )
-            	    // InternalSignalDSL.g:2417:7: ( ruleOpMulti )
-            	    {
-            	    // InternalSignalDSL.g:2417:7: ( ruleOpMulti )
-            	    // InternalSignalDSL.g:2418:8: ruleOpMulti
-            	    {
-            	    if ( state.backtracking==0 ) {
-
-            	      								if (current==null) {
-            	      									current = createModelElement(grammarAccess.getXMultiplicativeExpressionRule());
-            	      								}
-            	      							
-            	    }
-            	    if ( state.backtracking==0 ) {
-
-            	      								newCompositeNode(grammarAccess.getXMultiplicativeExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0());
-            	      							
-            	    }
-            	    pushFollow(FOLLOW_23);
-            	    ruleOpMulti();
-
-            	    state._fsp--;
-            	    if (state.failed) return current;
-            	    if ( state.backtracking==0 ) {
-
-            	      								afterParserOrEnumRuleCall();
-            	      							
-            	    }
-
-            	    }
-
-
-            	    }
-
-
-            	    }
-
-
-            	    }
-
-            	    // InternalSignalDSL.g:2434:4: ( (lv_rightOperand_3_0= ruleXUnaryOperation ) )
-            	    // InternalSignalDSL.g:2435:5: (lv_rightOperand_3_0= ruleXUnaryOperation )
-            	    {
-            	    // InternalSignalDSL.g:2435:5: (lv_rightOperand_3_0= ruleXUnaryOperation )
-            	    // InternalSignalDSL.g:2436:6: lv_rightOperand_3_0= ruleXUnaryOperation
-            	    {
-            	    if ( state.backtracking==0 ) {
-
-            	      						newCompositeNode(grammarAccess.getXMultiplicativeExpressionAccess().getRightOperandXUnaryOperationParserRuleCall_1_1_0());
-            	      					
-            	    }
-            	    pushFollow(FOLLOW_42);
-            	    lv_rightOperand_3_0=ruleXUnaryOperation();
-
-            	    state._fsp--;
-            	    if (state.failed) return current;
-            	    if ( state.backtracking==0 ) {
-
-            	      						if (current==null) {
-            	      							current = createModelElementForParent(grammarAccess.getXMultiplicativeExpressionRule());
-            	      						}
-            	      						set(
-            	      							current,
-            	      							"rightOperand",
-            	      							lv_rightOperand_3_0,
-            	      							"org.eclipse.xtext.xbase.Xbase.XUnaryOperation");
-            	      						afterParserOrEnumRuleCall();
-            	      					
-            	    }
-
-            	    }
-
-
-            	    }
-
-
-            	    }
-            	    break;
-
-            	default :
             	    break loop38;
                 }
             } while (true);
@@ -6978,11 +6865,392 @@
         }
         return current;
     }
+    // $ANTLR end "ruleXAdditiveExpression"
+
+
+    // $ANTLR start "entryRuleOpAdd"
+    // InternalSignalDSL.g:2442:1: entryRuleOpAdd returns [String current=null] : iv_ruleOpAdd= ruleOpAdd EOF ;
+    public final String entryRuleOpAdd() throws RecognitionException {
+        String current = null;
+
+        AntlrDatatypeRuleToken iv_ruleOpAdd = null;
+
+
+        try {
+            // InternalSignalDSL.g:2442:45: (iv_ruleOpAdd= ruleOpAdd EOF )
+            // InternalSignalDSL.g:2443:2: iv_ruleOpAdd= ruleOpAdd EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getOpAddRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_ruleOpAdd=ruleOpAdd();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleOpAdd.getText(); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleOpAdd"
+
+
+    // $ANTLR start "ruleOpAdd"
+    // InternalSignalDSL.g:2449:1: ruleOpAdd returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '+' | kw= '-' ) ;
+    public final AntlrDatatypeRuleToken ruleOpAdd() throws RecognitionException {
+        AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+        Token kw=null;
+
+
+        	enterRule();
+
+        try {
+            // InternalSignalDSL.g:2455:2: ( (kw= '+' | kw= '-' ) )
+            // InternalSignalDSL.g:2456:2: (kw= '+' | kw= '-' )
+            {
+            // InternalSignalDSL.g:2456:2: (kw= '+' | kw= '-' )
+            int alt39=2;
+            int LA39_0 = input.LA(1);
+
+            if ( (LA39_0==57) ) {
+                alt39=1;
+            }
+            else if ( (LA39_0==58) ) {
+                alt39=2;
+            }
+            else {
+                if (state.backtracking>0) {state.failed=true; return current;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 39, 0, input);
+
+                throw nvae;
+            }
+            switch (alt39) {
+                case 1 :
+                    // InternalSignalDSL.g:2457:3: kw= '+'
+                    {
+                    kw=(Token)match(input,57,FOLLOW_2); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      			current.merge(kw);
+                      			newLeafNode(kw, grammarAccess.getOpAddAccess().getPlusSignKeyword_0());
+                      		
+                    }
+
+                    }
+                    break;
+                case 2 :
+                    // InternalSignalDSL.g:2463:3: kw= '-'
+                    {
+                    kw=(Token)match(input,58,FOLLOW_2); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      			current.merge(kw);
+                      			newLeafNode(kw, grammarAccess.getOpAddAccess().getHyphenMinusKeyword_1());
+                      		
+                    }
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleOpAdd"
+
+
+    // $ANTLR start "entryRuleXMultiplicativeExpression"
+    // InternalSignalDSL.g:2472:1: entryRuleXMultiplicativeExpression returns [EObject current=null] : iv_ruleXMultiplicativeExpression= ruleXMultiplicativeExpression EOF ;
+    public final EObject entryRuleXMultiplicativeExpression() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleXMultiplicativeExpression = null;
+
+
+        try {
+            // InternalSignalDSL.g:2472:66: (iv_ruleXMultiplicativeExpression= ruleXMultiplicativeExpression EOF )
+            // InternalSignalDSL.g:2473:2: iv_ruleXMultiplicativeExpression= ruleXMultiplicativeExpression EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getXMultiplicativeExpressionRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_ruleXMultiplicativeExpression=ruleXMultiplicativeExpression();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleXMultiplicativeExpression; 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleXMultiplicativeExpression"
+
+
+    // $ANTLR start "ruleXMultiplicativeExpression"
+    // InternalSignalDSL.g:2479: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;
+
+        EObject this_XUnaryOperation_0 = null;
+
+        EObject lv_rightOperand_3_0 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalSignalDSL.g:2485:2: ( (this_XUnaryOperation_0= ruleXUnaryOperation ( ( ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) ) ) ( (lv_rightOperand_3_0= ruleXUnaryOperation ) ) )* ) )
+            // InternalSignalDSL.g:2486:2: (this_XUnaryOperation_0= ruleXUnaryOperation ( ( ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) ) ) ( (lv_rightOperand_3_0= ruleXUnaryOperation ) ) )* )
+            {
+            // InternalSignalDSL.g:2486:2: (this_XUnaryOperation_0= ruleXUnaryOperation ( ( ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) ) ) ( (lv_rightOperand_3_0= ruleXUnaryOperation ) ) )* )
+            // InternalSignalDSL.g:2487:3: this_XUnaryOperation_0= ruleXUnaryOperation ( ( ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) ) ) ( (lv_rightOperand_3_0= ruleXUnaryOperation ) ) )*
+            {
+            if ( state.backtracking==0 ) {
+
+              			newCompositeNode(grammarAccess.getXMultiplicativeExpressionAccess().getXUnaryOperationParserRuleCall_0());
+              		
+            }
+            pushFollow(FOLLOW_45);
+            this_XUnaryOperation_0=ruleXUnaryOperation();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			current = this_XUnaryOperation_0;
+              			afterParserOrEnumRuleCall();
+              		
+            }
+            // InternalSignalDSL.g:2495:3: ( ( ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) ) ) ( (lv_rightOperand_3_0= ruleXUnaryOperation ) ) )*
+            loop40:
+            do {
+                int alt40=2;
+                switch ( input.LA(1) ) {
+                case 25:
+                    {
+                    int LA40_2 = input.LA(2);
+
+                    if ( (synpred17_InternalSignalDSL()) ) {
+                        alt40=1;
+                    }
+
+
+                    }
+                    break;
+                case 59:
+                    {
+                    int LA40_3 = input.LA(2);
+
+                    if ( (synpred17_InternalSignalDSL()) ) {
+                        alt40=1;
+                    }
+
+
+                    }
+                    break;
+                case 60:
+                    {
+                    int LA40_4 = input.LA(2);
+
+                    if ( (synpred17_InternalSignalDSL()) ) {
+                        alt40=1;
+                    }
+
+
+                    }
+                    break;
+                case 61:
+                    {
+                    int LA40_5 = input.LA(2);
+
+                    if ( (synpred17_InternalSignalDSL()) ) {
+                        alt40=1;
+                    }
+
+
+                    }
+                    break;
+
+                }
+
+                switch (alt40) {
+            	case 1 :
+            	    // InternalSignalDSL.g:2496:4: ( ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) ) ) ( (lv_rightOperand_3_0= ruleXUnaryOperation ) )
+            	    {
+            	    // InternalSignalDSL.g:2496:4: ( ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) ) )
+            	    // InternalSignalDSL.g:2497:5: ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) )
+            	    {
+            	    // InternalSignalDSL.g:2507:5: ( () ( ( ruleOpMulti ) ) )
+            	    // InternalSignalDSL.g:2508:6: () ( ( ruleOpMulti ) )
+            	    {
+            	    // InternalSignalDSL.g:2508:6: ()
+            	    // InternalSignalDSL.g:2509:7: 
+            	    {
+            	    if ( state.backtracking==0 ) {
+
+            	      							current = forceCreateModelElementAndSet(
+            	      								grammarAccess.getXMultiplicativeExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0(),
+            	      								current);
+            	      						
+            	    }
+
+            	    }
+
+            	    // InternalSignalDSL.g:2515:6: ( ( ruleOpMulti ) )
+            	    // InternalSignalDSL.g:2516:7: ( ruleOpMulti )
+            	    {
+            	    // InternalSignalDSL.g:2516:7: ( ruleOpMulti )
+            	    // InternalSignalDSL.g:2517:8: ruleOpMulti
+            	    {
+            	    if ( state.backtracking==0 ) {
+
+            	      								if (current==null) {
+            	      									current = createModelElement(grammarAccess.getXMultiplicativeExpressionRule());
+            	      								}
+            	      							
+            	    }
+            	    if ( state.backtracking==0 ) {
+
+            	      								newCompositeNode(grammarAccess.getXMultiplicativeExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0());
+            	      							
+            	    }
+            	    pushFollow(FOLLOW_26);
+            	    ruleOpMulti();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      								afterParserOrEnumRuleCall();
+            	      							
+            	    }
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+            	    // InternalSignalDSL.g:2533:4: ( (lv_rightOperand_3_0= ruleXUnaryOperation ) )
+            	    // InternalSignalDSL.g:2534:5: (lv_rightOperand_3_0= ruleXUnaryOperation )
+            	    {
+            	    // InternalSignalDSL.g:2534:5: (lv_rightOperand_3_0= ruleXUnaryOperation )
+            	    // InternalSignalDSL.g:2535:6: lv_rightOperand_3_0= ruleXUnaryOperation
+            	    {
+            	    if ( state.backtracking==0 ) {
+
+            	      						newCompositeNode(grammarAccess.getXMultiplicativeExpressionAccess().getRightOperandXUnaryOperationParserRuleCall_1_1_0());
+            	      					
+            	    }
+            	    pushFollow(FOLLOW_45);
+            	    lv_rightOperand_3_0=ruleXUnaryOperation();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      						if (current==null) {
+            	      							current = createModelElementForParent(grammarAccess.getXMultiplicativeExpressionRule());
+            	      						}
+            	      						set(
+            	      							current,
+            	      							"rightOperand",
+            	      							lv_rightOperand_3_0,
+            	      							"org.eclipse.xtext.xbase.Xbase.XUnaryOperation");
+            	      						afterParserOrEnumRuleCall();
+            	      					
+            	    }
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop40;
+                }
+            } while (true);
+
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
     // $ANTLR end "ruleXMultiplicativeExpression"
 
 
     // $ANTLR start "entryRuleOpMulti"
-    // InternalSignalDSL.g:2458:1: entryRuleOpMulti returns [String current=null] : iv_ruleOpMulti= ruleOpMulti EOF ;
+    // InternalSignalDSL.g:2557:1: entryRuleOpMulti returns [String current=null] : iv_ruleOpMulti= ruleOpMulti EOF ;
     public final String entryRuleOpMulti() throws RecognitionException {
         String current = null;
 
@@ -6990,8 +7258,8 @@
 
 
         try {
-            // InternalSignalDSL.g:2458:47: (iv_ruleOpMulti= ruleOpMulti EOF )
-            // InternalSignalDSL.g:2459:2: iv_ruleOpMulti= ruleOpMulti EOF
+            // InternalSignalDSL.g:2557:47: (iv_ruleOpMulti= ruleOpMulti EOF )
+            // InternalSignalDSL.g:2558:2: iv_ruleOpMulti= ruleOpMulti EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getOpMultiRule()); 
@@ -7022,7 +7290,7 @@
 
 
     // $ANTLR start "ruleOpMulti"
-    // InternalSignalDSL.g:2465:1: ruleOpMulti returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '*' | kw= '**' | kw= '/' | kw= '%' ) ;
+    // InternalSignalDSL.g:2564:1: ruleOpMulti returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '*' | kw= '**' | kw= '/' | kw= '%' ) ;
     public final AntlrDatatypeRuleToken ruleOpMulti() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
@@ -7032,45 +7300,45 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:2471:2: ( (kw= '*' | kw= '**' | kw= '/' | kw= '%' ) )
-            // InternalSignalDSL.g:2472:2: (kw= '*' | kw= '**' | kw= '/' | kw= '%' )
+            // InternalSignalDSL.g:2570:2: ( (kw= '*' | kw= '**' | kw= '/' | kw= '%' ) )
+            // InternalSignalDSL.g:2571:2: (kw= '*' | kw= '**' | kw= '/' | kw= '%' )
             {
-            // InternalSignalDSL.g:2472:2: (kw= '*' | kw= '**' | kw= '/' | kw= '%' )
-            int alt39=4;
+            // InternalSignalDSL.g:2571:2: (kw= '*' | kw= '**' | kw= '/' | kw= '%' )
+            int alt41=4;
             switch ( input.LA(1) ) {
-            case 23:
+            case 25:
                 {
-                alt39=1;
-                }
-                break;
-            case 57:
-                {
-                alt39=2;
-                }
-                break;
-            case 58:
-                {
-                alt39=3;
+                alt41=1;
                 }
                 break;
             case 59:
                 {
-                alt39=4;
+                alt41=2;
+                }
+                break;
+            case 60:
+                {
+                alt41=3;
+                }
+                break;
+            case 61:
+                {
+                alt41=4;
                 }
                 break;
             default:
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 39, 0, input);
+                    new NoViableAltException("", 41, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt39) {
+            switch (alt41) {
                 case 1 :
-                    // InternalSignalDSL.g:2473:3: kw= '*'
+                    // InternalSignalDSL.g:2572:3: kw= '*'
                     {
-                    kw=(Token)match(input,23,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,25,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -7081,9 +7349,9 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:2479:3: kw= '**'
+                    // InternalSignalDSL.g:2578:3: kw= '**'
                     {
-                    kw=(Token)match(input,57,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);
@@ -7094,9 +7362,9 @@
                     }
                     break;
                 case 3 :
-                    // InternalSignalDSL.g:2485:3: kw= '/'
+                    // InternalSignalDSL.g:2584:3: kw= '/'
                     {
-                    kw=(Token)match(input,58,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);
@@ -7107,9 +7375,9 @@
                     }
                     break;
                 case 4 :
-                    // InternalSignalDSL.g:2491:3: kw= '%'
+                    // InternalSignalDSL.g:2590:3: kw= '%'
                     {
-                    kw=(Token)match(input,59,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,61,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -7144,7 +7412,7 @@
 
 
     // $ANTLR start "entryRuleXUnaryOperation"
-    // InternalSignalDSL.g:2500:1: entryRuleXUnaryOperation returns [EObject current=null] : iv_ruleXUnaryOperation= ruleXUnaryOperation EOF ;
+    // InternalSignalDSL.g:2599:1: entryRuleXUnaryOperation returns [EObject current=null] : iv_ruleXUnaryOperation= ruleXUnaryOperation EOF ;
     public final EObject entryRuleXUnaryOperation() throws RecognitionException {
         EObject current = null;
 
@@ -7152,8 +7420,8 @@
 
 
         try {
-            // InternalSignalDSL.g:2500:56: (iv_ruleXUnaryOperation= ruleXUnaryOperation EOF )
-            // InternalSignalDSL.g:2501:2: iv_ruleXUnaryOperation= ruleXUnaryOperation EOF
+            // InternalSignalDSL.g:2599:56: (iv_ruleXUnaryOperation= ruleXUnaryOperation EOF )
+            // InternalSignalDSL.g:2600:2: iv_ruleXUnaryOperation= ruleXUnaryOperation EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXUnaryOperationRule()); 
@@ -7184,7 +7452,7 @@
 
 
     // $ANTLR start "ruleXUnaryOperation"
-    // InternalSignalDSL.g:2507:1: ruleXUnaryOperation returns [EObject current=null] : ( ( () ( ( ruleOpUnary ) ) ( (lv_operand_2_0= ruleXUnaryOperation ) ) ) | this_XCastedExpression_3= ruleXCastedExpression ) ;
+    // InternalSignalDSL.g:2606: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;
 
@@ -7197,35 +7465,35 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:2513:2: ( ( ( () ( ( ruleOpUnary ) ) ( (lv_operand_2_0= ruleXUnaryOperation ) ) ) | this_XCastedExpression_3= ruleXCastedExpression ) )
-            // InternalSignalDSL.g:2514:2: ( ( () ( ( ruleOpUnary ) ) ( (lv_operand_2_0= ruleXUnaryOperation ) ) ) | this_XCastedExpression_3= ruleXCastedExpression )
+            // InternalSignalDSL.g:2612:2: ( ( ( () ( ( ruleOpUnary ) ) ( (lv_operand_2_0= ruleXUnaryOperation ) ) ) | this_XCastedExpression_3= ruleXCastedExpression ) )
+            // InternalSignalDSL.g:2613:2: ( ( () ( ( ruleOpUnary ) ) ( (lv_operand_2_0= ruleXUnaryOperation ) ) ) | this_XCastedExpression_3= ruleXCastedExpression )
             {
-            // InternalSignalDSL.g:2514:2: ( ( () ( ( ruleOpUnary ) ) ( (lv_operand_2_0= ruleXUnaryOperation ) ) ) | this_XCastedExpression_3= ruleXCastedExpression )
-            int alt40=2;
-            int LA40_0 = input.LA(1);
+            // InternalSignalDSL.g:2613:2: ( ( () ( ( ruleOpUnary ) ) ( (lv_operand_2_0= ruleXUnaryOperation ) ) ) | this_XCastedExpression_3= ruleXCastedExpression )
+            int alt42=2;
+            int LA42_0 = input.LA(1);
 
-            if ( ((LA40_0>=55 && LA40_0<=56)||LA40_0==60) ) {
-                alt40=1;
+            if ( ((LA42_0>=57 && LA42_0<=58)||LA42_0==62) ) {
+                alt42=1;
             }
-            else if ( ((LA40_0>=RULE_ID && LA40_0<=RULE_DECIMAL)||LA40_0==14||LA40_0==18||(LA40_0>=20 && LA40_0<=22)||LA40_0==27||(LA40_0>=31 && LA40_0<=32)||LA40_0==39||LA40_0==68||LA40_0==70||(LA40_0>=74 && LA40_0<=75)||(LA40_0>=78 && LA40_0<=87)||LA40_0==89) ) {
-                alt40=2;
+            else if ( ((LA42_0>=RULE_ID && LA42_0<=RULE_DECIMAL)||LA42_0==14||LA42_0==18||(LA42_0>=22 && LA42_0<=24)||LA42_0==29||(LA42_0>=33 && LA42_0<=34)||LA42_0==41||LA42_0==70||LA42_0==72||(LA42_0>=76 && LA42_0<=77)||(LA42_0>=80 && LA42_0<=89)||LA42_0==91) ) {
+                alt42=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 40, 0, input);
+                    new NoViableAltException("", 42, 0, input);
 
                 throw nvae;
             }
-            switch (alt40) {
+            switch (alt42) {
                 case 1 :
-                    // InternalSignalDSL.g:2515:3: ( () ( ( ruleOpUnary ) ) ( (lv_operand_2_0= ruleXUnaryOperation ) ) )
+                    // InternalSignalDSL.g:2614:3: ( () ( ( ruleOpUnary ) ) ( (lv_operand_2_0= ruleXUnaryOperation ) ) )
                     {
-                    // InternalSignalDSL.g:2515:3: ( () ( ( ruleOpUnary ) ) ( (lv_operand_2_0= ruleXUnaryOperation ) ) )
-                    // InternalSignalDSL.g:2516:4: () ( ( ruleOpUnary ) ) ( (lv_operand_2_0= ruleXUnaryOperation ) )
+                    // InternalSignalDSL.g:2614:3: ( () ( ( ruleOpUnary ) ) ( (lv_operand_2_0= ruleXUnaryOperation ) ) )
+                    // InternalSignalDSL.g:2615:4: () ( ( ruleOpUnary ) ) ( (lv_operand_2_0= ruleXUnaryOperation ) )
                     {
-                    // InternalSignalDSL.g:2516:4: ()
-                    // InternalSignalDSL.g:2517:5: 
+                    // InternalSignalDSL.g:2615:4: ()
+                    // InternalSignalDSL.g:2616:5: 
                     {
                     if ( state.backtracking==0 ) {
 
@@ -7237,11 +7505,11 @@
 
                     }
 
-                    // InternalSignalDSL.g:2523:4: ( ( ruleOpUnary ) )
-                    // InternalSignalDSL.g:2524:5: ( ruleOpUnary )
+                    // InternalSignalDSL.g:2622:4: ( ( ruleOpUnary ) )
+                    // InternalSignalDSL.g:2623:5: ( ruleOpUnary )
                     {
-                    // InternalSignalDSL.g:2524:5: ( ruleOpUnary )
-                    // InternalSignalDSL.g:2525:6: ruleOpUnary
+                    // InternalSignalDSL.g:2623:5: ( ruleOpUnary )
+                    // InternalSignalDSL.g:2624:6: ruleOpUnary
                     {
                     if ( state.backtracking==0 ) {
 
@@ -7255,7 +7523,7 @@
                       						newCompositeNode(grammarAccess.getXUnaryOperationAccess().getFeatureJvmIdentifiableElementCrossReference_0_1_0());
                       					
                     }
-                    pushFollow(FOLLOW_23);
+                    pushFollow(FOLLOW_26);
                     ruleOpUnary();
 
                     state._fsp--;
@@ -7271,11 +7539,11 @@
 
                     }
 
-                    // InternalSignalDSL.g:2539:4: ( (lv_operand_2_0= ruleXUnaryOperation ) )
-                    // InternalSignalDSL.g:2540:5: (lv_operand_2_0= ruleXUnaryOperation )
+                    // InternalSignalDSL.g:2638:4: ( (lv_operand_2_0= ruleXUnaryOperation ) )
+                    // InternalSignalDSL.g:2639:5: (lv_operand_2_0= ruleXUnaryOperation )
                     {
-                    // InternalSignalDSL.g:2540:5: (lv_operand_2_0= ruleXUnaryOperation )
-                    // InternalSignalDSL.g:2541:6: lv_operand_2_0= ruleXUnaryOperation
+                    // InternalSignalDSL.g:2639:5: (lv_operand_2_0= ruleXUnaryOperation )
+                    // InternalSignalDSL.g:2640:6: lv_operand_2_0= ruleXUnaryOperation
                     {
                     if ( state.backtracking==0 ) {
 
@@ -7313,7 +7581,7 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:2560:3: this_XCastedExpression_3= ruleXCastedExpression
+                    // InternalSignalDSL.g:2659:3: this_XCastedExpression_3= ruleXCastedExpression
                     {
                     if ( state.backtracking==0 ) {
 
@@ -7359,7 +7627,7 @@
 
 
     // $ANTLR start "entryRuleOpUnary"
-    // InternalSignalDSL.g:2572:1: entryRuleOpUnary returns [String current=null] : iv_ruleOpUnary= ruleOpUnary EOF ;
+    // InternalSignalDSL.g:2671:1: entryRuleOpUnary returns [String current=null] : iv_ruleOpUnary= ruleOpUnary EOF ;
     public final String entryRuleOpUnary() throws RecognitionException {
         String current = null;
 
@@ -7367,8 +7635,8 @@
 
 
         try {
-            // InternalSignalDSL.g:2572:47: (iv_ruleOpUnary= ruleOpUnary EOF )
-            // InternalSignalDSL.g:2573:2: iv_ruleOpUnary= ruleOpUnary EOF
+            // InternalSignalDSL.g:2671:47: (iv_ruleOpUnary= ruleOpUnary EOF )
+            // InternalSignalDSL.g:2672:2: iv_ruleOpUnary= ruleOpUnary EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getOpUnaryRule()); 
@@ -7399,7 +7667,7 @@
 
 
     // $ANTLR start "ruleOpUnary"
-    // InternalSignalDSL.g:2579:1: ruleOpUnary returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '!' | kw= '-' | kw= '+' ) ;
+    // InternalSignalDSL.g:2678:1: ruleOpUnary returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '!' | kw= '-' | kw= '+' ) ;
     public final AntlrDatatypeRuleToken ruleOpUnary() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
@@ -7409,40 +7677,40 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:2585:2: ( (kw= '!' | kw= '-' | kw= '+' ) )
-            // InternalSignalDSL.g:2586:2: (kw= '!' | kw= '-' | kw= '+' )
+            // InternalSignalDSL.g:2684:2: ( (kw= '!' | kw= '-' | kw= '+' ) )
+            // InternalSignalDSL.g:2685:2: (kw= '!' | kw= '-' | kw= '+' )
             {
-            // InternalSignalDSL.g:2586:2: (kw= '!' | kw= '-' | kw= '+' )
-            int alt41=3;
+            // InternalSignalDSL.g:2685:2: (kw= '!' | kw= '-' | kw= '+' )
+            int alt43=3;
             switch ( input.LA(1) ) {
-            case 60:
+            case 62:
                 {
-                alt41=1;
+                alt43=1;
                 }
                 break;
-            case 56:
+            case 58:
                 {
-                alt41=2;
+                alt43=2;
                 }
                 break;
-            case 55:
+            case 57:
                 {
-                alt41=3;
+                alt43=3;
                 }
                 break;
             default:
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 41, 0, input);
+                    new NoViableAltException("", 43, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt41) {
+            switch (alt43) {
                 case 1 :
-                    // InternalSignalDSL.g:2587:3: kw= '!'
+                    // InternalSignalDSL.g:2686:3: kw= '!'
                     {
-                    kw=(Token)match(input,60,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);
@@ -7453,9 +7721,9 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:2593:3: kw= '-'
+                    // InternalSignalDSL.g:2692:3: kw= '-'
                     {
-                    kw=(Token)match(input,56,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);
@@ -7466,9 +7734,9 @@
                     }
                     break;
                 case 3 :
-                    // InternalSignalDSL.g:2599:3: kw= '+'
+                    // InternalSignalDSL.g:2698:3: kw= '+'
                     {
-                    kw=(Token)match(input,55,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);
@@ -7503,7 +7771,7 @@
 
 
     // $ANTLR start "entryRuleXCastedExpression"
-    // InternalSignalDSL.g:2608:1: entryRuleXCastedExpression returns [EObject current=null] : iv_ruleXCastedExpression= ruleXCastedExpression EOF ;
+    // InternalSignalDSL.g:2707:1: entryRuleXCastedExpression returns [EObject current=null] : iv_ruleXCastedExpression= ruleXCastedExpression EOF ;
     public final EObject entryRuleXCastedExpression() throws RecognitionException {
         EObject current = null;
 
@@ -7511,8 +7779,8 @@
 
 
         try {
-            // InternalSignalDSL.g:2608:58: (iv_ruleXCastedExpression= ruleXCastedExpression EOF )
-            // InternalSignalDSL.g:2609:2: iv_ruleXCastedExpression= ruleXCastedExpression EOF
+            // InternalSignalDSL.g:2707:58: (iv_ruleXCastedExpression= ruleXCastedExpression EOF )
+            // InternalSignalDSL.g:2708:2: iv_ruleXCastedExpression= ruleXCastedExpression EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXCastedExpressionRule()); 
@@ -7543,7 +7811,7 @@
 
 
     // $ANTLR start "ruleXCastedExpression"
-    // InternalSignalDSL.g:2615:1: ruleXCastedExpression returns [EObject current=null] : (this_XPostfixOperation_0= ruleXPostfixOperation ( ( ( ( () 'as' ) )=> ( () otherlv_2= 'as' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) )* ) ;
+    // InternalSignalDSL.g:2714: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;
 
@@ -7557,18 +7825,18 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:2621:2: ( (this_XPostfixOperation_0= ruleXPostfixOperation ( ( ( ( () 'as' ) )=> ( () otherlv_2= 'as' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) )* ) )
-            // InternalSignalDSL.g:2622:2: (this_XPostfixOperation_0= ruleXPostfixOperation ( ( ( ( () 'as' ) )=> ( () otherlv_2= 'as' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) )* )
+            // InternalSignalDSL.g:2720:2: ( (this_XPostfixOperation_0= ruleXPostfixOperation ( ( ( ( () 'as' ) )=> ( () otherlv_2= 'as' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) )* ) )
+            // InternalSignalDSL.g:2721:2: (this_XPostfixOperation_0= ruleXPostfixOperation ( ( ( ( () 'as' ) )=> ( () otherlv_2= 'as' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) )* )
             {
-            // InternalSignalDSL.g:2622:2: (this_XPostfixOperation_0= ruleXPostfixOperation ( ( ( ( () 'as' ) )=> ( () otherlv_2= 'as' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) )* )
-            // InternalSignalDSL.g:2623:3: this_XPostfixOperation_0= ruleXPostfixOperation ( ( ( ( () 'as' ) )=> ( () otherlv_2= 'as' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) )*
+            // InternalSignalDSL.g:2721:2: (this_XPostfixOperation_0= ruleXPostfixOperation ( ( ( ( () 'as' ) )=> ( () otherlv_2= 'as' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) )* )
+            // InternalSignalDSL.g:2722:3: this_XPostfixOperation_0= ruleXPostfixOperation ( ( ( ( () 'as' ) )=> ( () otherlv_2= 'as' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) )*
             {
             if ( state.backtracking==0 ) {
 
               			newCompositeNode(grammarAccess.getXCastedExpressionAccess().getXPostfixOperationParserRuleCall_0());
               		
             }
-            pushFollow(FOLLOW_43);
+            pushFollow(FOLLOW_46);
             this_XPostfixOperation_0=ruleXPostfixOperation();
 
             state._fsp--;
@@ -7579,35 +7847,35 @@
               			afterParserOrEnumRuleCall();
               		
             }
-            // InternalSignalDSL.g:2631:3: ( ( ( ( () 'as' ) )=> ( () otherlv_2= 'as' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) )*
-            loop42:
+            // InternalSignalDSL.g:2730:3: ( ( ( ( () 'as' ) )=> ( () otherlv_2= 'as' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) )*
+            loop44:
             do {
-                int alt42=2;
-                int LA42_0 = input.LA(1);
+                int alt44=2;
+                int LA44_0 = input.LA(1);
 
-                if ( (LA42_0==61) ) {
-                    int LA42_2 = input.LA(2);
+                if ( (LA44_0==63) ) {
+                    int LA44_2 = input.LA(2);
 
                     if ( (synpred18_InternalSignalDSL()) ) {
-                        alt42=1;
+                        alt44=1;
                     }
 
 
                 }
 
 
-                switch (alt42) {
+                switch (alt44) {
             	case 1 :
-            	    // InternalSignalDSL.g:2632:4: ( ( ( () 'as' ) )=> ( () otherlv_2= 'as' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) )
+            	    // InternalSignalDSL.g:2731:4: ( ( ( () 'as' ) )=> ( () otherlv_2= 'as' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) )
             	    {
-            	    // InternalSignalDSL.g:2632:4: ( ( ( () 'as' ) )=> ( () otherlv_2= 'as' ) )
-            	    // InternalSignalDSL.g:2633:5: ( ( () 'as' ) )=> ( () otherlv_2= 'as' )
+            	    // InternalSignalDSL.g:2731:4: ( ( ( () 'as' ) )=> ( () otherlv_2= 'as' ) )
+            	    // InternalSignalDSL.g:2732:5: ( ( () 'as' ) )=> ( () otherlv_2= 'as' )
             	    {
-            	    // InternalSignalDSL.g:2639:5: ( () otherlv_2= 'as' )
-            	    // InternalSignalDSL.g:2640:6: () otherlv_2= 'as'
+            	    // InternalSignalDSL.g:2738:5: ( () otherlv_2= 'as' )
+            	    // InternalSignalDSL.g:2739:6: () otherlv_2= 'as'
             	    {
-            	    // InternalSignalDSL.g:2640:6: ()
-            	    // InternalSignalDSL.g:2641:7: 
+            	    // InternalSignalDSL.g:2739:6: ()
+            	    // InternalSignalDSL.g:2740:7: 
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -7619,7 +7887,7 @@
 
             	    }
 
-            	    otherlv_2=(Token)match(input,61,FOLLOW_36); if (state.failed) return current;
+            	    otherlv_2=(Token)match(input,63,FOLLOW_39); if (state.failed) return current;
             	    if ( state.backtracking==0 ) {
 
             	      						newLeafNode(otherlv_2, grammarAccess.getXCastedExpressionAccess().getAsKeyword_1_0_0_1());
@@ -7631,18 +7899,18 @@
 
             	    }
 
-            	    // InternalSignalDSL.g:2653:4: ( (lv_type_3_0= ruleJvmTypeReference ) )
-            	    // InternalSignalDSL.g:2654:5: (lv_type_3_0= ruleJvmTypeReference )
+            	    // InternalSignalDSL.g:2752:4: ( (lv_type_3_0= ruleJvmTypeReference ) )
+            	    // InternalSignalDSL.g:2753:5: (lv_type_3_0= ruleJvmTypeReference )
             	    {
-            	    // InternalSignalDSL.g:2654:5: (lv_type_3_0= ruleJvmTypeReference )
-            	    // InternalSignalDSL.g:2655:6: lv_type_3_0= ruleJvmTypeReference
+            	    // InternalSignalDSL.g:2753:5: (lv_type_3_0= ruleJvmTypeReference )
+            	    // InternalSignalDSL.g:2754:6: lv_type_3_0= ruleJvmTypeReference
             	    {
             	    if ( state.backtracking==0 ) {
 
             	      						newCompositeNode(grammarAccess.getXCastedExpressionAccess().getTypeJvmTypeReferenceParserRuleCall_1_1_0());
             	      					
             	    }
-            	    pushFollow(FOLLOW_43);
+            	    pushFollow(FOLLOW_46);
             	    lv_type_3_0=ruleJvmTypeReference();
 
             	    state._fsp--;
@@ -7671,7 +7939,7 @@
             	    break;
 
             	default :
-            	    break loop42;
+            	    break loop44;
                 }
             } while (true);
 
@@ -7700,7 +7968,7 @@
 
 
     // $ANTLR start "entryRuleXPostfixOperation"
-    // InternalSignalDSL.g:2677:1: entryRuleXPostfixOperation returns [EObject current=null] : iv_ruleXPostfixOperation= ruleXPostfixOperation EOF ;
+    // InternalSignalDSL.g:2776:1: entryRuleXPostfixOperation returns [EObject current=null] : iv_ruleXPostfixOperation= ruleXPostfixOperation EOF ;
     public final EObject entryRuleXPostfixOperation() throws RecognitionException {
         EObject current = null;
 
@@ -7708,8 +7976,8 @@
 
 
         try {
-            // InternalSignalDSL.g:2677:58: (iv_ruleXPostfixOperation= ruleXPostfixOperation EOF )
-            // InternalSignalDSL.g:2678:2: iv_ruleXPostfixOperation= ruleXPostfixOperation EOF
+            // InternalSignalDSL.g:2776:58: (iv_ruleXPostfixOperation= ruleXPostfixOperation EOF )
+            // InternalSignalDSL.g:2777:2: iv_ruleXPostfixOperation= ruleXPostfixOperation EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXPostfixOperationRule()); 
@@ -7740,7 +8008,7 @@
 
 
     // $ANTLR start "ruleXPostfixOperation"
-    // InternalSignalDSL.g:2684:1: ruleXPostfixOperation returns [EObject current=null] : (this_XMemberFeatureCall_0= ruleXMemberFeatureCall ( ( ( () ( ( ruleOpPostfix ) ) ) )=> ( () ( ( ruleOpPostfix ) ) ) )? ) ;
+    // InternalSignalDSL.g:2783:1: ruleXPostfixOperation returns [EObject current=null] : (this_XMemberFeatureCall_0= ruleXMemberFeatureCall ( ( ( () ( ( ruleOpPostfix ) ) ) )=> ( () ( ( ruleOpPostfix ) ) ) )? ) ;
     public final EObject ruleXPostfixOperation() throws RecognitionException {
         EObject current = null;
 
@@ -7751,18 +8019,18 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:2690:2: ( (this_XMemberFeatureCall_0= ruleXMemberFeatureCall ( ( ( () ( ( ruleOpPostfix ) ) ) )=> ( () ( ( ruleOpPostfix ) ) ) )? ) )
-            // InternalSignalDSL.g:2691:2: (this_XMemberFeatureCall_0= ruleXMemberFeatureCall ( ( ( () ( ( ruleOpPostfix ) ) ) )=> ( () ( ( ruleOpPostfix ) ) ) )? )
+            // InternalSignalDSL.g:2789:2: ( (this_XMemberFeatureCall_0= ruleXMemberFeatureCall ( ( ( () ( ( ruleOpPostfix ) ) ) )=> ( () ( ( ruleOpPostfix ) ) ) )? ) )
+            // InternalSignalDSL.g:2790:2: (this_XMemberFeatureCall_0= ruleXMemberFeatureCall ( ( ( () ( ( ruleOpPostfix ) ) ) )=> ( () ( ( ruleOpPostfix ) ) ) )? )
             {
-            // InternalSignalDSL.g:2691:2: (this_XMemberFeatureCall_0= ruleXMemberFeatureCall ( ( ( () ( ( ruleOpPostfix ) ) ) )=> ( () ( ( ruleOpPostfix ) ) ) )? )
-            // InternalSignalDSL.g:2692:3: this_XMemberFeatureCall_0= ruleXMemberFeatureCall ( ( ( () ( ( ruleOpPostfix ) ) ) )=> ( () ( ( ruleOpPostfix ) ) ) )?
+            // InternalSignalDSL.g:2790:2: (this_XMemberFeatureCall_0= ruleXMemberFeatureCall ( ( ( () ( ( ruleOpPostfix ) ) ) )=> ( () ( ( ruleOpPostfix ) ) ) )? )
+            // InternalSignalDSL.g:2791:3: this_XMemberFeatureCall_0= ruleXMemberFeatureCall ( ( ( () ( ( ruleOpPostfix ) ) ) )=> ( () ( ( ruleOpPostfix ) ) ) )?
             {
             if ( state.backtracking==0 ) {
 
               			newCompositeNode(grammarAccess.getXPostfixOperationAccess().getXMemberFeatureCallParserRuleCall_0());
               		
             }
-            pushFollow(FOLLOW_44);
+            pushFollow(FOLLOW_47);
             this_XMemberFeatureCall_0=ruleXMemberFeatureCall();
 
             state._fsp--;
@@ -7773,33 +8041,33 @@
               			afterParserOrEnumRuleCall();
               		
             }
-            // InternalSignalDSL.g:2700:3: ( ( ( () ( ( ruleOpPostfix ) ) ) )=> ( () ( ( ruleOpPostfix ) ) ) )?
-            int alt43=2;
-            int LA43_0 = input.LA(1);
+            // InternalSignalDSL.g:2799:3: ( ( ( () ( ( ruleOpPostfix ) ) ) )=> ( () ( ( ruleOpPostfix ) ) ) )?
+            int alt45=2;
+            int LA45_0 = input.LA(1);
 
-            if ( (LA43_0==62) ) {
-                int LA43_1 = input.LA(2);
+            if ( (LA45_0==64) ) {
+                int LA45_1 = input.LA(2);
 
                 if ( (synpred19_InternalSignalDSL()) ) {
-                    alt43=1;
+                    alt45=1;
                 }
             }
-            else if ( (LA43_0==63) ) {
-                int LA43_2 = input.LA(2);
+            else if ( (LA45_0==65) ) {
+                int LA45_2 = input.LA(2);
 
                 if ( (synpred19_InternalSignalDSL()) ) {
-                    alt43=1;
+                    alt45=1;
                 }
             }
-            switch (alt43) {
+            switch (alt45) {
                 case 1 :
-                    // InternalSignalDSL.g:2701:4: ( ( () ( ( ruleOpPostfix ) ) ) )=> ( () ( ( ruleOpPostfix ) ) )
+                    // InternalSignalDSL.g:2800:4: ( ( () ( ( ruleOpPostfix ) ) ) )=> ( () ( ( ruleOpPostfix ) ) )
                     {
-                    // InternalSignalDSL.g:2711:4: ( () ( ( ruleOpPostfix ) ) )
-                    // InternalSignalDSL.g:2712:5: () ( ( ruleOpPostfix ) )
+                    // InternalSignalDSL.g:2810:4: ( () ( ( ruleOpPostfix ) ) )
+                    // InternalSignalDSL.g:2811:5: () ( ( ruleOpPostfix ) )
                     {
-                    // InternalSignalDSL.g:2712:5: ()
-                    // InternalSignalDSL.g:2713:6: 
+                    // InternalSignalDSL.g:2811:5: ()
+                    // InternalSignalDSL.g:2812:6: 
                     {
                     if ( state.backtracking==0 ) {
 
@@ -7811,11 +8079,11 @@
 
                     }
 
-                    // InternalSignalDSL.g:2719:5: ( ( ruleOpPostfix ) )
-                    // InternalSignalDSL.g:2720:6: ( ruleOpPostfix )
+                    // InternalSignalDSL.g:2818:5: ( ( ruleOpPostfix ) )
+                    // InternalSignalDSL.g:2819:6: ( ruleOpPostfix )
                     {
-                    // InternalSignalDSL.g:2720:6: ( ruleOpPostfix )
-                    // InternalSignalDSL.g:2721:7: ruleOpPostfix
+                    // InternalSignalDSL.g:2819:6: ( ruleOpPostfix )
+                    // InternalSignalDSL.g:2820:7: ruleOpPostfix
                     {
                     if ( state.backtracking==0 ) {
 
@@ -7879,7 +8147,7 @@
 
 
     // $ANTLR start "entryRuleOpPostfix"
-    // InternalSignalDSL.g:2741:1: entryRuleOpPostfix returns [String current=null] : iv_ruleOpPostfix= ruleOpPostfix EOF ;
+    // InternalSignalDSL.g:2840:1: entryRuleOpPostfix returns [String current=null] : iv_ruleOpPostfix= ruleOpPostfix EOF ;
     public final String entryRuleOpPostfix() throws RecognitionException {
         String current = null;
 
@@ -7887,8 +8155,8 @@
 
 
         try {
-            // InternalSignalDSL.g:2741:49: (iv_ruleOpPostfix= ruleOpPostfix EOF )
-            // InternalSignalDSL.g:2742:2: iv_ruleOpPostfix= ruleOpPostfix EOF
+            // InternalSignalDSL.g:2840:49: (iv_ruleOpPostfix= ruleOpPostfix EOF )
+            // InternalSignalDSL.g:2841:2: iv_ruleOpPostfix= ruleOpPostfix EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getOpPostfixRule()); 
@@ -7919,7 +8187,7 @@
 
 
     // $ANTLR start "ruleOpPostfix"
-    // InternalSignalDSL.g:2748:1: ruleOpPostfix returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '++' | kw= '--' ) ;
+    // InternalSignalDSL.g:2847:1: ruleOpPostfix returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '++' | kw= '--' ) ;
     public final AntlrDatatypeRuleToken ruleOpPostfix() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
@@ -7929,31 +8197,31 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:2754:2: ( (kw= '++' | kw= '--' ) )
-            // InternalSignalDSL.g:2755:2: (kw= '++' | kw= '--' )
+            // InternalSignalDSL.g:2853:2: ( (kw= '++' | kw= '--' ) )
+            // InternalSignalDSL.g:2854:2: (kw= '++' | kw= '--' )
             {
-            // InternalSignalDSL.g:2755:2: (kw= '++' | kw= '--' )
-            int alt44=2;
-            int LA44_0 = input.LA(1);
+            // InternalSignalDSL.g:2854:2: (kw= '++' | kw= '--' )
+            int alt46=2;
+            int LA46_0 = input.LA(1);
 
-            if ( (LA44_0==62) ) {
-                alt44=1;
+            if ( (LA46_0==64) ) {
+                alt46=1;
             }
-            else if ( (LA44_0==63) ) {
-                alt44=2;
+            else if ( (LA46_0==65) ) {
+                alt46=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 44, 0, input);
+                    new NoViableAltException("", 46, 0, input);
 
                 throw nvae;
             }
-            switch (alt44) {
+            switch (alt46) {
                 case 1 :
-                    // InternalSignalDSL.g:2756:3: kw= '++'
+                    // InternalSignalDSL.g:2855:3: kw= '++'
                     {
-                    kw=(Token)match(input,62,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);
@@ -7964,9 +8232,9 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:2762:3: kw= '--'
+                    // InternalSignalDSL.g:2861:3: kw= '--'
                     {
-                    kw=(Token)match(input,63,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);
@@ -8001,7 +8269,7 @@
 
 
     // $ANTLR start "entryRuleXMemberFeatureCall"
-    // InternalSignalDSL.g:2771:1: entryRuleXMemberFeatureCall returns [EObject current=null] : iv_ruleXMemberFeatureCall= ruleXMemberFeatureCall EOF ;
+    // InternalSignalDSL.g:2870:1: entryRuleXMemberFeatureCall returns [EObject current=null] : iv_ruleXMemberFeatureCall= ruleXMemberFeatureCall EOF ;
     public final EObject entryRuleXMemberFeatureCall() throws RecognitionException {
         EObject current = null;
 
@@ -8009,8 +8277,8 @@
 
 
         try {
-            // InternalSignalDSL.g:2771:59: (iv_ruleXMemberFeatureCall= ruleXMemberFeatureCall EOF )
-            // InternalSignalDSL.g:2772:2: iv_ruleXMemberFeatureCall= ruleXMemberFeatureCall EOF
+            // InternalSignalDSL.g:2870:59: (iv_ruleXMemberFeatureCall= ruleXMemberFeatureCall EOF )
+            // InternalSignalDSL.g:2871:2: iv_ruleXMemberFeatureCall= ruleXMemberFeatureCall EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXMemberFeatureCallRule()); 
@@ -8041,7 +8309,7 @@
 
 
     // $ANTLR start "ruleXMemberFeatureCall"
-    // InternalSignalDSL.g:2778: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:2877: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;
 
@@ -8077,18 +8345,18 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:2784: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:2785: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:2883: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:2884: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:2785: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:2786: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:2884: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:2885: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 ) {
 
               			newCompositeNode(grammarAccess.getXMemberFeatureCallAccess().getXPrimaryExpressionParserRuleCall_0());
               		
             }
-            pushFollow(FOLLOW_45);
+            pushFollow(FOLLOW_48);
             this_XPrimaryExpression_0=ruleXPrimaryExpression();
 
             state._fsp--;
@@ -8099,45 +8367,45 @@
               			afterParserOrEnumRuleCall();
               		
             }
-            // InternalSignalDSL.g:2794: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 ) )? ) )*
-            loop53:
+            // InternalSignalDSL.g:2893: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 ) )? ) )*
+            loop55:
             do {
-                int alt53=3;
+                int alt55=3;
                 switch ( input.LA(1) ) {
-                case 64:
-                    {
-                    int LA53_2 = input.LA(2);
-
-                    if ( (synpred20_InternalSignalDSL()) ) {
-                        alt53=1;
-                    }
-                    else if ( (synpred21_InternalSignalDSL()) ) {
-                        alt53=2;
-                    }
-
-
-                    }
-                    break;
-                case 65:
-                    {
-                    int LA53_3 = input.LA(2);
-
-                    if ( (synpred20_InternalSignalDSL()) ) {
-                        alt53=1;
-                    }
-                    else if ( (synpred21_InternalSignalDSL()) ) {
-                        alt53=2;
-                    }
-
-
-                    }
-                    break;
                 case 66:
                     {
-                    int LA53_4 = input.LA(2);
+                    int LA55_2 = input.LA(2);
+
+                    if ( (synpred20_InternalSignalDSL()) ) {
+                        alt55=1;
+                    }
+                    else if ( (synpred21_InternalSignalDSL()) ) {
+                        alt55=2;
+                    }
+
+
+                    }
+                    break;
+                case 67:
+                    {
+                    int LA55_3 = input.LA(2);
+
+                    if ( (synpred20_InternalSignalDSL()) ) {
+                        alt55=1;
+                    }
+                    else if ( (synpred21_InternalSignalDSL()) ) {
+                        alt55=2;
+                    }
+
+
+                    }
+                    break;
+                case 68:
+                    {
+                    int LA55_4 = input.LA(2);
 
                     if ( (synpred21_InternalSignalDSL()) ) {
-                        alt53=2;
+                        alt55=2;
                     }
 
 
@@ -8146,21 +8414,21 @@
 
                 }
 
-                switch (alt53) {
+                switch (alt55) {
             	case 1 :
-            	    // InternalSignalDSL.g:2795:4: ( ( ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) ) ( (lv_value_6_0= ruleXAssignment ) ) )
+            	    // InternalSignalDSL.g:2894:4: ( ( ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) ) ( (lv_value_6_0= ruleXAssignment ) ) )
             	    {
-            	    // InternalSignalDSL.g:2795:4: ( ( ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) ) ( (lv_value_6_0= ruleXAssignment ) ) )
-            	    // InternalSignalDSL.g:2796:5: ( ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) ) ( (lv_value_6_0= ruleXAssignment ) )
+            	    // InternalSignalDSL.g:2894:4: ( ( ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) ) ( (lv_value_6_0= ruleXAssignment ) ) )
+            	    // InternalSignalDSL.g:2895:5: ( ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) ) ( (lv_value_6_0= ruleXAssignment ) )
             	    {
-            	    // InternalSignalDSL.g:2796:5: ( ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )
-            	    // InternalSignalDSL.g:2797:6: ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign )
+            	    // InternalSignalDSL.g:2895:5: ( ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )
+            	    // InternalSignalDSL.g:2896:6: ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign )
             	    {
-            	    // InternalSignalDSL.g:2817:6: ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign )
-            	    // InternalSignalDSL.g:2818:7: () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign
+            	    // InternalSignalDSL.g:2916:6: ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign )
+            	    // InternalSignalDSL.g:2917:7: () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign
             	    {
-            	    // InternalSignalDSL.g:2818:7: ()
-            	    // InternalSignalDSL.g:2819:8: 
+            	    // InternalSignalDSL.g:2917:7: ()
+            	    // InternalSignalDSL.g:2918:8: 
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -8172,28 +8440,28 @@
 
             	    }
 
-            	    // InternalSignalDSL.g:2825:7: (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) )
-            	    int alt45=2;
-            	    int LA45_0 = input.LA(1);
+            	    // InternalSignalDSL.g:2924:7: (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) )
+            	    int alt47=2;
+            	    int LA47_0 = input.LA(1);
 
-            	    if ( (LA45_0==64) ) {
-            	        alt45=1;
+            	    if ( (LA47_0==66) ) {
+            	        alt47=1;
             	    }
-            	    else if ( (LA45_0==65) ) {
-            	        alt45=2;
+            	    else if ( (LA47_0==67) ) {
+            	        alt47=2;
             	    }
             	    else {
             	        if (state.backtracking>0) {state.failed=true; return current;}
             	        NoViableAltException nvae =
-            	            new NoViableAltException("", 45, 0, input);
+            	            new NoViableAltException("", 47, 0, input);
 
             	        throw nvae;
             	    }
-            	    switch (alt45) {
+            	    switch (alt47) {
             	        case 1 :
-            	            // InternalSignalDSL.g:2826:8: otherlv_2= '.'
+            	            // InternalSignalDSL.g:2925:8: otherlv_2= '.'
             	            {
-            	            otherlv_2=(Token)match(input,64,FOLLOW_46); if (state.failed) return current;
+            	            otherlv_2=(Token)match(input,66,FOLLOW_49); if (state.failed) return current;
             	            if ( state.backtracking==0 ) {
 
             	              								newLeafNode(otherlv_2, grammarAccess.getXMemberFeatureCallAccess().getFullStopKeyword_1_0_0_0_1_0());
@@ -8203,15 +8471,15 @@
             	            }
             	            break;
             	        case 2 :
-            	            // InternalSignalDSL.g:2831:8: ( (lv_explicitStatic_3_0= '::' ) )
+            	            // InternalSignalDSL.g:2930:8: ( (lv_explicitStatic_3_0= '::' ) )
             	            {
-            	            // InternalSignalDSL.g:2831:8: ( (lv_explicitStatic_3_0= '::' ) )
-            	            // InternalSignalDSL.g:2832:9: (lv_explicitStatic_3_0= '::' )
+            	            // InternalSignalDSL.g:2930:8: ( (lv_explicitStatic_3_0= '::' ) )
+            	            // InternalSignalDSL.g:2931:9: (lv_explicitStatic_3_0= '::' )
             	            {
-            	            // InternalSignalDSL.g:2832:9: (lv_explicitStatic_3_0= '::' )
-            	            // InternalSignalDSL.g:2833:10: lv_explicitStatic_3_0= '::'
+            	            // InternalSignalDSL.g:2931:9: (lv_explicitStatic_3_0= '::' )
+            	            // InternalSignalDSL.g:2932:10: lv_explicitStatic_3_0= '::'
             	            {
-            	            lv_explicitStatic_3_0=(Token)match(input,65,FOLLOW_46); if (state.failed) return current;
+            	            lv_explicitStatic_3_0=(Token)match(input,67,FOLLOW_49); if (state.failed) return current;
             	            if ( state.backtracking==0 ) {
 
             	              										newLeafNode(lv_explicitStatic_3_0, grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticColonColonKeyword_1_0_0_0_1_1_0());
@@ -8237,11 +8505,11 @@
 
             	    }
 
-            	    // InternalSignalDSL.g:2846:7: ( ( ruleFeatureCallID ) )
-            	    // InternalSignalDSL.g:2847:8: ( ruleFeatureCallID )
+            	    // InternalSignalDSL.g:2945:7: ( ( ruleFeatureCallID ) )
+            	    // InternalSignalDSL.g:2946:8: ( ruleFeatureCallID )
             	    {
-            	    // InternalSignalDSL.g:2847:8: ( ruleFeatureCallID )
-            	    // InternalSignalDSL.g:2848:9: ruleFeatureCallID
+            	    // InternalSignalDSL.g:2946:8: ( ruleFeatureCallID )
+            	    // InternalSignalDSL.g:2947:9: ruleFeatureCallID
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -8255,7 +8523,7 @@
             	      									newCompositeNode(grammarAccess.getXMemberFeatureCallAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_0_2_0());
             	      								
             	    }
-            	    pushFollow(FOLLOW_22);
+            	    pushFollow(FOLLOW_25);
             	    ruleFeatureCallID();
 
             	    state._fsp--;
@@ -8276,7 +8544,7 @@
             	      							newCompositeNode(grammarAccess.getXMemberFeatureCallAccess().getOpSingleAssignParserRuleCall_1_0_0_0_3());
             	      						
             	    }
-            	    pushFollow(FOLLOW_23);
+            	    pushFollow(FOLLOW_26);
             	    ruleOpSingleAssign();
 
             	    state._fsp--;
@@ -8292,18 +8560,18 @@
 
             	    }
 
-            	    // InternalSignalDSL.g:2871:5: ( (lv_value_6_0= ruleXAssignment ) )
-            	    // InternalSignalDSL.g:2872:6: (lv_value_6_0= ruleXAssignment )
+            	    // InternalSignalDSL.g:2970:5: ( (lv_value_6_0= ruleXAssignment ) )
+            	    // InternalSignalDSL.g:2971:6: (lv_value_6_0= ruleXAssignment )
             	    {
-            	    // InternalSignalDSL.g:2872:6: (lv_value_6_0= ruleXAssignment )
-            	    // InternalSignalDSL.g:2873:7: lv_value_6_0= ruleXAssignment
+            	    // InternalSignalDSL.g:2971:6: (lv_value_6_0= ruleXAssignment )
+            	    // InternalSignalDSL.g:2972:7: lv_value_6_0= ruleXAssignment
             	    {
             	    if ( state.backtracking==0 ) {
 
             	      							newCompositeNode(grammarAccess.getXMemberFeatureCallAccess().getValueXAssignmentParserRuleCall_1_0_1_0());
             	      						
             	    }
-            	    pushFollow(FOLLOW_45);
+            	    pushFollow(FOLLOW_48);
             	    lv_value_6_0=ruleXAssignment();
 
             	    state._fsp--;
@@ -8334,19 +8602,19 @@
             	    }
             	    break;
             	case 2 :
-            	    // InternalSignalDSL.g:2892: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:2991: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:2892: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:2893: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:2991: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:2992: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:2893:5: ( ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )=> ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) ) )
-            	    // InternalSignalDSL.g:2894:6: ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )=> ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) )
+            	    // InternalSignalDSL.g:2992:5: ( ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )=> ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) ) )
+            	    // InternalSignalDSL.g:2993:6: ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )=> ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) )
             	    {
-            	    // InternalSignalDSL.g:2914:6: ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) )
-            	    // InternalSignalDSL.g:2915:7: () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) )
+            	    // InternalSignalDSL.g:3013:6: ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) )
+            	    // InternalSignalDSL.g:3014:7: () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) )
             	    {
-            	    // InternalSignalDSL.g:2915:7: ()
-            	    // InternalSignalDSL.g:2916:8: 
+            	    // InternalSignalDSL.g:3014:7: ()
+            	    // InternalSignalDSL.g:3015:8: 
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -8358,37 +8626,37 @@
 
             	    }
 
-            	    // InternalSignalDSL.g:2922:7: (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) )
-            	    int alt46=3;
+            	    // InternalSignalDSL.g:3021:7: (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) )
+            	    int alt48=3;
             	    switch ( input.LA(1) ) {
-            	    case 64:
-            	        {
-            	        alt46=1;
-            	        }
-            	        break;
             	    case 66:
             	        {
-            	        alt46=2;
+            	        alt48=1;
             	        }
             	        break;
-            	    case 65:
+            	    case 68:
             	        {
-            	        alt46=3;
+            	        alt48=2;
+            	        }
+            	        break;
+            	    case 67:
+            	        {
+            	        alt48=3;
             	        }
             	        break;
             	    default:
             	        if (state.backtracking>0) {state.failed=true; return current;}
             	        NoViableAltException nvae =
-            	            new NoViableAltException("", 46, 0, input);
+            	            new NoViableAltException("", 48, 0, input);
 
             	        throw nvae;
             	    }
 
-            	    switch (alt46) {
+            	    switch (alt48) {
             	        case 1 :
-            	            // InternalSignalDSL.g:2923:8: otherlv_8= '.'
+            	            // InternalSignalDSL.g:3022:8: otherlv_8= '.'
             	            {
-            	            otherlv_8=(Token)match(input,64,FOLLOW_47); if (state.failed) return current;
+            	            otherlv_8=(Token)match(input,66,FOLLOW_50); if (state.failed) return current;
             	            if ( state.backtracking==0 ) {
 
             	              								newLeafNode(otherlv_8, grammarAccess.getXMemberFeatureCallAccess().getFullStopKeyword_1_1_0_0_1_0());
@@ -8398,15 +8666,15 @@
             	            }
             	            break;
             	        case 2 :
-            	            // InternalSignalDSL.g:2928:8: ( (lv_nullSafe_9_0= '?.' ) )
+            	            // InternalSignalDSL.g:3027:8: ( (lv_nullSafe_9_0= '?.' ) )
             	            {
-            	            // InternalSignalDSL.g:2928:8: ( (lv_nullSafe_9_0= '?.' ) )
-            	            // InternalSignalDSL.g:2929:9: (lv_nullSafe_9_0= '?.' )
+            	            // InternalSignalDSL.g:3027:8: ( (lv_nullSafe_9_0= '?.' ) )
+            	            // InternalSignalDSL.g:3028:9: (lv_nullSafe_9_0= '?.' )
             	            {
-            	            // InternalSignalDSL.g:2929:9: (lv_nullSafe_9_0= '?.' )
-            	            // InternalSignalDSL.g:2930:10: lv_nullSafe_9_0= '?.'
+            	            // InternalSignalDSL.g:3028:9: (lv_nullSafe_9_0= '?.' )
+            	            // InternalSignalDSL.g:3029:10: lv_nullSafe_9_0= '?.'
             	            {
-            	            lv_nullSafe_9_0=(Token)match(input,66,FOLLOW_47); if (state.failed) return current;
+            	            lv_nullSafe_9_0=(Token)match(input,68,FOLLOW_50); if (state.failed) return current;
             	            if ( state.backtracking==0 ) {
 
             	              										newLeafNode(lv_nullSafe_9_0, grammarAccess.getXMemberFeatureCallAccess().getNullSafeQuestionMarkFullStopKeyword_1_1_0_0_1_1_0());
@@ -8430,15 +8698,15 @@
             	            }
             	            break;
             	        case 3 :
-            	            // InternalSignalDSL.g:2943:8: ( (lv_explicitStatic_10_0= '::' ) )
+            	            // InternalSignalDSL.g:3042:8: ( (lv_explicitStatic_10_0= '::' ) )
             	            {
-            	            // InternalSignalDSL.g:2943:8: ( (lv_explicitStatic_10_0= '::' ) )
-            	            // InternalSignalDSL.g:2944:9: (lv_explicitStatic_10_0= '::' )
+            	            // InternalSignalDSL.g:3042:8: ( (lv_explicitStatic_10_0= '::' ) )
+            	            // InternalSignalDSL.g:3043:9: (lv_explicitStatic_10_0= '::' )
             	            {
-            	            // InternalSignalDSL.g:2944:9: (lv_explicitStatic_10_0= '::' )
-            	            // InternalSignalDSL.g:2945:10: lv_explicitStatic_10_0= '::'
+            	            // InternalSignalDSL.g:3043:9: (lv_explicitStatic_10_0= '::' )
+            	            // InternalSignalDSL.g:3044:10: lv_explicitStatic_10_0= '::'
             	            {
-            	            lv_explicitStatic_10_0=(Token)match(input,65,FOLLOW_47); if (state.failed) return current;
+            	            lv_explicitStatic_10_0=(Token)match(input,67,FOLLOW_50); if (state.failed) return current;
             	            if ( state.backtracking==0 ) {
 
             	              										newLeafNode(lv_explicitStatic_10_0, grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticColonColonKeyword_1_1_0_0_1_2_0());
@@ -8470,35 +8738,35 @@
 
             	    }
 
-            	    // InternalSignalDSL.g:2960:5: (otherlv_11= '<' ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) ) (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )* otherlv_15= '>' )?
-            	    int alt48=2;
-            	    int LA48_0 = input.LA(1);
+            	    // InternalSignalDSL.g:3059:5: (otherlv_11= '<' ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) ) (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )* otherlv_15= '>' )?
+            	    int alt50=2;
+            	    int LA50_0 = input.LA(1);
 
-            	    if ( (LA48_0==39) ) {
-            	        alt48=1;
+            	    if ( (LA50_0==41) ) {
+            	        alt50=1;
             	    }
-            	    switch (alt48) {
+            	    switch (alt50) {
             	        case 1 :
-            	            // InternalSignalDSL.g:2961:6: otherlv_11= '<' ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) ) (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )* otherlv_15= '>'
+            	            // InternalSignalDSL.g:3060:6: otherlv_11= '<' ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) ) (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )* otherlv_15= '>'
             	            {
-            	            otherlv_11=(Token)match(input,39,FOLLOW_48); if (state.failed) return current;
+            	            otherlv_11=(Token)match(input,41,FOLLOW_51); if (state.failed) return current;
             	            if ( state.backtracking==0 ) {
 
             	              						newLeafNode(otherlv_11, grammarAccess.getXMemberFeatureCallAccess().getLessThanSignKeyword_1_1_1_0());
             	              					
             	            }
-            	            // InternalSignalDSL.g:2965:6: ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) )
-            	            // InternalSignalDSL.g:2966:7: (lv_typeArguments_12_0= ruleJvmArgumentTypeReference )
+            	            // InternalSignalDSL.g:3064:6: ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) )
+            	            // InternalSignalDSL.g:3065:7: (lv_typeArguments_12_0= ruleJvmArgumentTypeReference )
             	            {
-            	            // InternalSignalDSL.g:2966:7: (lv_typeArguments_12_0= ruleJvmArgumentTypeReference )
-            	            // InternalSignalDSL.g:2967:8: lv_typeArguments_12_0= ruleJvmArgumentTypeReference
+            	            // InternalSignalDSL.g:3065:7: (lv_typeArguments_12_0= ruleJvmArgumentTypeReference )
+            	            // InternalSignalDSL.g:3066:8: lv_typeArguments_12_0= ruleJvmArgumentTypeReference
             	            {
             	            if ( state.backtracking==0 ) {
 
             	              								newCompositeNode(grammarAccess.getXMemberFeatureCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_1_1_1_1_0());
             	              							
             	            }
-            	            pushFollow(FOLLOW_49);
+            	            pushFollow(FOLLOW_52);
             	            lv_typeArguments_12_0=ruleJvmArgumentTypeReference();
 
             	            state._fsp--;
@@ -8522,39 +8790,39 @@
 
             	            }
 
-            	            // InternalSignalDSL.g:2984:6: (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )*
-            	            loop47:
+            	            // InternalSignalDSL.g:3083:6: (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )*
+            	            loop49:
             	            do {
-            	                int alt47=2;
-            	                int LA47_0 = input.LA(1);
+            	                int alt49=2;
+            	                int LA49_0 = input.LA(1);
 
-            	                if ( (LA47_0==28) ) {
-            	                    alt47=1;
+            	                if ( (LA49_0==30) ) {
+            	                    alt49=1;
             	                }
 
 
-            	                switch (alt47) {
+            	                switch (alt49) {
             	            	case 1 :
-            	            	    // InternalSignalDSL.g:2985:7: otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) )
+            	            	    // InternalSignalDSL.g:3084:7: otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) )
             	            	    {
-            	            	    otherlv_13=(Token)match(input,28,FOLLOW_48); if (state.failed) return current;
+            	            	    otherlv_13=(Token)match(input,30,FOLLOW_51); if (state.failed) return current;
             	            	    if ( state.backtracking==0 ) {
 
             	            	      							newLeafNode(otherlv_13, grammarAccess.getXMemberFeatureCallAccess().getCommaKeyword_1_1_1_2_0());
             	            	      						
             	            	    }
-            	            	    // InternalSignalDSL.g:2989:7: ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) )
-            	            	    // InternalSignalDSL.g:2990:8: (lv_typeArguments_14_0= ruleJvmArgumentTypeReference )
+            	            	    // InternalSignalDSL.g:3088:7: ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) )
+            	            	    // InternalSignalDSL.g:3089:8: (lv_typeArguments_14_0= ruleJvmArgumentTypeReference )
             	            	    {
-            	            	    // InternalSignalDSL.g:2990:8: (lv_typeArguments_14_0= ruleJvmArgumentTypeReference )
-            	            	    // InternalSignalDSL.g:2991:9: lv_typeArguments_14_0= ruleJvmArgumentTypeReference
+            	            	    // InternalSignalDSL.g:3089:8: (lv_typeArguments_14_0= ruleJvmArgumentTypeReference )
+            	            	    // InternalSignalDSL.g:3090:9: lv_typeArguments_14_0= ruleJvmArgumentTypeReference
             	            	    {
             	            	    if ( state.backtracking==0 ) {
 
             	            	      									newCompositeNode(grammarAccess.getXMemberFeatureCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_1_1_1_2_1_0());
             	            	      								
             	            	    }
-            	            	    pushFollow(FOLLOW_49);
+            	            	    pushFollow(FOLLOW_52);
             	            	    lv_typeArguments_14_0=ruleJvmArgumentTypeReference();
 
             	            	    state._fsp--;
@@ -8583,11 +8851,11 @@
             	            	    break;
 
             	            	default :
-            	            	    break loop47;
+            	            	    break loop49;
             	                }
             	            } while (true);
 
-            	            otherlv_15=(Token)match(input,40,FOLLOW_47); if (state.failed) return current;
+            	            otherlv_15=(Token)match(input,42,FOLLOW_50); if (state.failed) return current;
             	            if ( state.backtracking==0 ) {
 
             	              						newLeafNode(otherlv_15, grammarAccess.getXMemberFeatureCallAccess().getGreaterThanSignKeyword_1_1_1_3());
@@ -8599,11 +8867,11 @@
 
             	    }
 
-            	    // InternalSignalDSL.g:3014:5: ( ( ruleIdOrSuper ) )
-            	    // InternalSignalDSL.g:3015:6: ( ruleIdOrSuper )
+            	    // InternalSignalDSL.g:3113:5: ( ( ruleIdOrSuper ) )
+            	    // InternalSignalDSL.g:3114:6: ( ruleIdOrSuper )
             	    {
-            	    // InternalSignalDSL.g:3015:6: ( ruleIdOrSuper )
-            	    // InternalSignalDSL.g:3016:7: ruleIdOrSuper
+            	    // InternalSignalDSL.g:3114:6: ( ruleIdOrSuper )
+            	    // InternalSignalDSL.g:3115:7: ruleIdOrSuper
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -8617,7 +8885,7 @@
             	      							newCompositeNode(grammarAccess.getXMemberFeatureCallAccess().getFeatureJvmIdentifiableElementCrossReference_1_1_2_0());
             	      						
             	    }
-            	    pushFollow(FOLLOW_50);
+            	    pushFollow(FOLLOW_53);
             	    ruleIdOrSuper();
 
             	    state._fsp--;
@@ -8633,20 +8901,20 @@
 
             	    }
 
-            	    // InternalSignalDSL.g:3030: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 alt51=2;
-            	    alt51 = dfa51.predict(input);
-            	    switch (alt51) {
+            	    // InternalSignalDSL.g:3129: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 alt53=2;
+            	    alt53 = dfa53.predict(input);
+            	    switch (alt53) {
             	        case 1 :
-            	            // InternalSignalDSL.g:3031: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:3130: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:3031:6: ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) )
-            	            // InternalSignalDSL.g:3032:7: ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' )
+            	            // InternalSignalDSL.g:3130:6: ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) )
+            	            // InternalSignalDSL.g:3131:7: ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' )
             	            {
-            	            // InternalSignalDSL.g:3036:7: (lv_explicitOperationCall_17_0= '(' )
-            	            // InternalSignalDSL.g:3037:8: lv_explicitOperationCall_17_0= '('
+            	            // InternalSignalDSL.g:3135:7: (lv_explicitOperationCall_17_0= '(' )
+            	            // InternalSignalDSL.g:3136:8: lv_explicitOperationCall_17_0= '('
             	            {
-            	            lv_explicitOperationCall_17_0=(Token)match(input,27,FOLLOW_51); if (state.failed) return current;
+            	            lv_explicitOperationCall_17_0=(Token)match(input,29,FOLLOW_54); if (state.failed) return current;
             	            if ( state.backtracking==0 ) {
 
             	              								newLeafNode(lv_explicitOperationCall_17_0, grammarAccess.getXMemberFeatureCallAccess().getExplicitOperationCallLeftParenthesisKeyword_1_1_3_0_0());
@@ -8666,25 +8934,25 @@
 
             	            }
 
-            	            // InternalSignalDSL.g:3049:6: ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )?
-            	            int alt50=3;
-            	            alt50 = dfa50.predict(input);
-            	            switch (alt50) {
+            	            // InternalSignalDSL.g:3148:6: ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )?
+            	            int alt52=3;
+            	            alt52 = dfa52.predict(input);
+            	            switch (alt52) {
             	                case 1 :
-            	                    // InternalSignalDSL.g:3050:7: ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) )
+            	                    // InternalSignalDSL.g:3149:7: ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) )
             	                    {
-            	                    // InternalSignalDSL.g:3050:7: ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) )
-            	                    // InternalSignalDSL.g:3051:8: ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure )
+            	                    // InternalSignalDSL.g:3149:7: ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) )
+            	                    // InternalSignalDSL.g:3150:8: ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure )
             	                    {
-            	                    // InternalSignalDSL.g:3076:8: (lv_memberCallArguments_18_0= ruleXShortClosure )
-            	                    // InternalSignalDSL.g:3077:9: lv_memberCallArguments_18_0= ruleXShortClosure
+            	                    // InternalSignalDSL.g:3175:8: (lv_memberCallArguments_18_0= ruleXShortClosure )
+            	                    // InternalSignalDSL.g:3176:9: lv_memberCallArguments_18_0= ruleXShortClosure
             	                    {
             	                    if ( state.backtracking==0 ) {
 
             	                      									newCompositeNode(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsXShortClosureParserRuleCall_1_1_3_1_0_0());
             	                      								
             	                    }
-            	                    pushFollow(FOLLOW_21);
+            	                    pushFollow(FOLLOW_24);
             	                    lv_memberCallArguments_18_0=ruleXShortClosure();
 
             	                    state._fsp--;
@@ -8712,23 +8980,23 @@
             	                    }
             	                    break;
             	                case 2 :
-            	                    // InternalSignalDSL.g:3095:7: ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* )
+            	                    // InternalSignalDSL.g:3194:7: ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* )
             	                    {
-            	                    // InternalSignalDSL.g:3095:7: ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* )
-            	                    // InternalSignalDSL.g:3096:8: ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )*
+            	                    // InternalSignalDSL.g:3194:7: ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* )
+            	                    // InternalSignalDSL.g:3195:8: ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )*
             	                    {
-            	                    // InternalSignalDSL.g:3096:8: ( (lv_memberCallArguments_19_0= ruleXExpression ) )
-            	                    // InternalSignalDSL.g:3097:9: (lv_memberCallArguments_19_0= ruleXExpression )
+            	                    // InternalSignalDSL.g:3195:8: ( (lv_memberCallArguments_19_0= ruleXExpression ) )
+            	                    // InternalSignalDSL.g:3196:9: (lv_memberCallArguments_19_0= ruleXExpression )
             	                    {
-            	                    // InternalSignalDSL.g:3097:9: (lv_memberCallArguments_19_0= ruleXExpression )
-            	                    // InternalSignalDSL.g:3098:10: lv_memberCallArguments_19_0= ruleXExpression
+            	                    // InternalSignalDSL.g:3196:9: (lv_memberCallArguments_19_0= ruleXExpression )
+            	                    // InternalSignalDSL.g:3197:10: lv_memberCallArguments_19_0= ruleXExpression
             	                    {
             	                    if ( state.backtracking==0 ) {
 
             	                      										newCompositeNode(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsXExpressionParserRuleCall_1_1_3_1_1_0_0());
             	                      									
             	                    }
-            	                    pushFollow(FOLLOW_20);
+            	                    pushFollow(FOLLOW_23);
             	                    lv_memberCallArguments_19_0=ruleXExpression();
 
             	                    state._fsp--;
@@ -8752,39 +9020,39 @@
 
             	                    }
 
-            	                    // InternalSignalDSL.g:3115:8: (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )*
-            	                    loop49:
+            	                    // InternalSignalDSL.g:3214:8: (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )*
+            	                    loop51:
             	                    do {
-            	                        int alt49=2;
-            	                        int LA49_0 = input.LA(1);
+            	                        int alt51=2;
+            	                        int LA51_0 = input.LA(1);
 
-            	                        if ( (LA49_0==28) ) {
-            	                            alt49=1;
+            	                        if ( (LA51_0==30) ) {
+            	                            alt51=1;
             	                        }
 
 
-            	                        switch (alt49) {
+            	                        switch (alt51) {
             	                    	case 1 :
-            	                    	    // InternalSignalDSL.g:3116:9: otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) )
+            	                    	    // InternalSignalDSL.g:3215:9: otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) )
             	                    	    {
-            	                    	    otherlv_20=(Token)match(input,28,FOLLOW_23); if (state.failed) return current;
+            	                    	    otherlv_20=(Token)match(input,30,FOLLOW_26); if (state.failed) return current;
             	                    	    if ( state.backtracking==0 ) {
 
             	                    	      									newLeafNode(otherlv_20, grammarAccess.getXMemberFeatureCallAccess().getCommaKeyword_1_1_3_1_1_1_0());
             	                    	      								
             	                    	    }
-            	                    	    // InternalSignalDSL.g:3120:9: ( (lv_memberCallArguments_21_0= ruleXExpression ) )
-            	                    	    // InternalSignalDSL.g:3121:10: (lv_memberCallArguments_21_0= ruleXExpression )
+            	                    	    // InternalSignalDSL.g:3219:9: ( (lv_memberCallArguments_21_0= ruleXExpression ) )
+            	                    	    // InternalSignalDSL.g:3220:10: (lv_memberCallArguments_21_0= ruleXExpression )
             	                    	    {
-            	                    	    // InternalSignalDSL.g:3121:10: (lv_memberCallArguments_21_0= ruleXExpression )
-            	                    	    // InternalSignalDSL.g:3122:11: lv_memberCallArguments_21_0= ruleXExpression
+            	                    	    // InternalSignalDSL.g:3220:10: (lv_memberCallArguments_21_0= ruleXExpression )
+            	                    	    // InternalSignalDSL.g:3221:11: lv_memberCallArguments_21_0= ruleXExpression
             	                    	    {
             	                    	    if ( state.backtracking==0 ) {
 
             	                    	      											newCompositeNode(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsXExpressionParserRuleCall_1_1_3_1_1_1_1_0());
             	                    	      										
             	                    	    }
-            	                    	    pushFollow(FOLLOW_20);
+            	                    	    pushFollow(FOLLOW_23);
             	                    	    lv_memberCallArguments_21_0=ruleXExpression();
 
             	                    	    state._fsp--;
@@ -8813,7 +9081,7 @@
             	                    	    break;
 
             	                    	default :
-            	                    	    break loop49;
+            	                    	    break loop51;
             	                        }
             	                    } while (true);
 
@@ -8826,7 +9094,7 @@
 
             	            }
 
-            	            otherlv_22=(Token)match(input,29,FOLLOW_52); if (state.failed) return current;
+            	            otherlv_22=(Token)match(input,31,FOLLOW_55); if (state.failed) return current;
             	            if ( state.backtracking==0 ) {
 
             	              						newLeafNode(otherlv_22, grammarAccess.getXMemberFeatureCallAccess().getRightParenthesisKeyword_1_1_3_2());
@@ -8838,22 +9106,22 @@
 
             	    }
 
-            	    // InternalSignalDSL.g:3147:5: ( ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure ) )?
-            	    int alt52=2;
-            	    alt52 = dfa52.predict(input);
-            	    switch (alt52) {
+            	    // InternalSignalDSL.g:3246:5: ( ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure ) )?
+            	    int alt54=2;
+            	    alt54 = dfa54.predict(input);
+            	    switch (alt54) {
             	        case 1 :
-            	            // InternalSignalDSL.g:3148:6: ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure )
+            	            // InternalSignalDSL.g:3247:6: ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure )
             	            {
-            	            // InternalSignalDSL.g:3154:6: (lv_memberCallArguments_23_0= ruleXClosure )
-            	            // InternalSignalDSL.g:3155:7: lv_memberCallArguments_23_0= ruleXClosure
+            	            // InternalSignalDSL.g:3253:6: (lv_memberCallArguments_23_0= ruleXClosure )
+            	            // InternalSignalDSL.g:3254:7: lv_memberCallArguments_23_0= ruleXClosure
             	            {
             	            if ( state.backtracking==0 ) {
 
             	              							newCompositeNode(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsXClosureParserRuleCall_1_1_4_0());
             	              						
             	            }
-            	            pushFollow(FOLLOW_45);
+            	            pushFollow(FOLLOW_48);
             	            lv_memberCallArguments_23_0=ruleXClosure();
 
             	            state._fsp--;
@@ -8888,7 +9156,7 @@
             	    break;
 
             	default :
-            	    break loop53;
+            	    break loop55;
                 }
             } while (true);
 
@@ -8917,7 +9185,7 @@
 
 
     // $ANTLR start "entryRuleXPrimaryExpression"
-    // InternalSignalDSL.g:3178:1: entryRuleXPrimaryExpression returns [EObject current=null] : iv_ruleXPrimaryExpression= ruleXPrimaryExpression EOF ;
+    // InternalSignalDSL.g:3277:1: entryRuleXPrimaryExpression returns [EObject current=null] : iv_ruleXPrimaryExpression= ruleXPrimaryExpression EOF ;
     public final EObject entryRuleXPrimaryExpression() throws RecognitionException {
         EObject current = null;
 
@@ -8925,8 +9193,8 @@
 
 
         try {
-            // InternalSignalDSL.g:3178:59: (iv_ruleXPrimaryExpression= ruleXPrimaryExpression EOF )
-            // InternalSignalDSL.g:3179:2: iv_ruleXPrimaryExpression= ruleXPrimaryExpression EOF
+            // InternalSignalDSL.g:3277:59: (iv_ruleXPrimaryExpression= ruleXPrimaryExpression EOF )
+            // InternalSignalDSL.g:3278:2: iv_ruleXPrimaryExpression= ruleXPrimaryExpression EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXPrimaryExpressionRule()); 
@@ -8957,7 +9225,7 @@
 
 
     // $ANTLR start "ruleXPrimaryExpression"
-    // InternalSignalDSL.g:3185: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:3284: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;
 
@@ -8996,15 +9264,15 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:3191: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:3192: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:3290: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:3291: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:3192: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 alt54=15;
-            alt54 = dfa54.predict(input);
-            switch (alt54) {
+            // InternalSignalDSL.g:3291: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 alt56=15;
+            alt56 = dfa56.predict(input);
+            switch (alt56) {
                 case 1 :
-                    // InternalSignalDSL.g:3193:3: this_XConstructorCall_0= ruleXConstructorCall
+                    // InternalSignalDSL.g:3292:3: this_XConstructorCall_0= ruleXConstructorCall
                     {
                     if ( state.backtracking==0 ) {
 
@@ -9026,7 +9294,7 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:3202:3: this_XBlockExpression_1= ruleXBlockExpression
+                    // InternalSignalDSL.g:3301:3: this_XBlockExpression_1= ruleXBlockExpression
                     {
                     if ( state.backtracking==0 ) {
 
@@ -9048,7 +9316,7 @@
                     }
                     break;
                 case 3 :
-                    // InternalSignalDSL.g:3211:3: this_XSwitchExpression_2= ruleXSwitchExpression
+                    // InternalSignalDSL.g:3310:3: this_XSwitchExpression_2= ruleXSwitchExpression
                     {
                     if ( state.backtracking==0 ) {
 
@@ -9070,10 +9338,10 @@
                     }
                     break;
                 case 4 :
-                    // InternalSignalDSL.g:3220:3: ( ( ( () 'synchronized' '(' ) )=>this_XSynchronizedExpression_3= ruleXSynchronizedExpression )
+                    // InternalSignalDSL.g:3319:3: ( ( ( () 'synchronized' '(' ) )=>this_XSynchronizedExpression_3= ruleXSynchronizedExpression )
                     {
-                    // InternalSignalDSL.g:3220:3: ( ( ( () 'synchronized' '(' ) )=>this_XSynchronizedExpression_3= ruleXSynchronizedExpression )
-                    // InternalSignalDSL.g:3221:4: ( ( () 'synchronized' '(' ) )=>this_XSynchronizedExpression_3= ruleXSynchronizedExpression
+                    // InternalSignalDSL.g:3319:3: ( ( ( () 'synchronized' '(' ) )=>this_XSynchronizedExpression_3= ruleXSynchronizedExpression )
+                    // InternalSignalDSL.g:3320:4: ( ( () 'synchronized' '(' ) )=>this_XSynchronizedExpression_3= ruleXSynchronizedExpression
                     {
                     if ( state.backtracking==0 ) {
 
@@ -9098,7 +9366,7 @@
                     }
                     break;
                 case 5 :
-                    // InternalSignalDSL.g:3238:3: this_XFeatureCall_4= ruleXFeatureCall
+                    // InternalSignalDSL.g:3337:3: this_XFeatureCall_4= ruleXFeatureCall
                     {
                     if ( state.backtracking==0 ) {
 
@@ -9120,7 +9388,7 @@
                     }
                     break;
                 case 6 :
-                    // InternalSignalDSL.g:3247:3: this_XLiteral_5= ruleXLiteral
+                    // InternalSignalDSL.g:3346:3: this_XLiteral_5= ruleXLiteral
                     {
                     if ( state.backtracking==0 ) {
 
@@ -9142,7 +9410,7 @@
                     }
                     break;
                 case 7 :
-                    // InternalSignalDSL.g:3256:3: this_XIfExpression_6= ruleXIfExpression
+                    // InternalSignalDSL.g:3355:3: this_XIfExpression_6= ruleXIfExpression
                     {
                     if ( state.backtracking==0 ) {
 
@@ -9164,10 +9432,10 @@
                     }
                     break;
                 case 8 :
-                    // InternalSignalDSL.g:3265:3: ( ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=>this_XForLoopExpression_7= ruleXForLoopExpression )
+                    // InternalSignalDSL.g:3364:3: ( ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=>this_XForLoopExpression_7= ruleXForLoopExpression )
                     {
-                    // InternalSignalDSL.g:3265:3: ( ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=>this_XForLoopExpression_7= ruleXForLoopExpression )
-                    // InternalSignalDSL.g:3266:4: ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=>this_XForLoopExpression_7= ruleXForLoopExpression
+                    // InternalSignalDSL.g:3364:3: ( ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=>this_XForLoopExpression_7= ruleXForLoopExpression )
+                    // InternalSignalDSL.g:3365:4: ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=>this_XForLoopExpression_7= ruleXForLoopExpression
                     {
                     if ( state.backtracking==0 ) {
 
@@ -9192,7 +9460,7 @@
                     }
                     break;
                 case 9 :
-                    // InternalSignalDSL.g:3289:3: this_XBasicForLoopExpression_8= ruleXBasicForLoopExpression
+                    // InternalSignalDSL.g:3388:3: this_XBasicForLoopExpression_8= ruleXBasicForLoopExpression
                     {
                     if ( state.backtracking==0 ) {
 
@@ -9214,7 +9482,7 @@
                     }
                     break;
                 case 10 :
-                    // InternalSignalDSL.g:3298:3: this_XWhileExpression_9= ruleXWhileExpression
+                    // InternalSignalDSL.g:3397:3: this_XWhileExpression_9= ruleXWhileExpression
                     {
                     if ( state.backtracking==0 ) {
 
@@ -9236,7 +9504,7 @@
                     }
                     break;
                 case 11 :
-                    // InternalSignalDSL.g:3307:3: this_XDoWhileExpression_10= ruleXDoWhileExpression
+                    // InternalSignalDSL.g:3406:3: this_XDoWhileExpression_10= ruleXDoWhileExpression
                     {
                     if ( state.backtracking==0 ) {
 
@@ -9258,7 +9526,7 @@
                     }
                     break;
                 case 12 :
-                    // InternalSignalDSL.g:3316:3: this_XThrowExpression_11= ruleXThrowExpression
+                    // InternalSignalDSL.g:3415:3: this_XThrowExpression_11= ruleXThrowExpression
                     {
                     if ( state.backtracking==0 ) {
 
@@ -9280,7 +9548,7 @@
                     }
                     break;
                 case 13 :
-                    // InternalSignalDSL.g:3325:3: this_XReturnExpression_12= ruleXReturnExpression
+                    // InternalSignalDSL.g:3424:3: this_XReturnExpression_12= ruleXReturnExpression
                     {
                     if ( state.backtracking==0 ) {
 
@@ -9302,7 +9570,7 @@
                     }
                     break;
                 case 14 :
-                    // InternalSignalDSL.g:3334:3: this_XTryCatchFinallyExpression_13= ruleXTryCatchFinallyExpression
+                    // InternalSignalDSL.g:3433:3: this_XTryCatchFinallyExpression_13= ruleXTryCatchFinallyExpression
                     {
                     if ( state.backtracking==0 ) {
 
@@ -9324,7 +9592,7 @@
                     }
                     break;
                 case 15 :
-                    // InternalSignalDSL.g:3343:3: this_XParenthesizedExpression_14= ruleXParenthesizedExpression
+                    // InternalSignalDSL.g:3442:3: this_XParenthesizedExpression_14= ruleXParenthesizedExpression
                     {
                     if ( state.backtracking==0 ) {
 
@@ -9370,7 +9638,7 @@
 
 
     // $ANTLR start "entryRuleXLiteral"
-    // InternalSignalDSL.g:3355:1: entryRuleXLiteral returns [EObject current=null] : iv_ruleXLiteral= ruleXLiteral EOF ;
+    // InternalSignalDSL.g:3454:1: entryRuleXLiteral returns [EObject current=null] : iv_ruleXLiteral= ruleXLiteral EOF ;
     public final EObject entryRuleXLiteral() throws RecognitionException {
         EObject current = null;
 
@@ -9378,8 +9646,8 @@
 
 
         try {
-            // InternalSignalDSL.g:3355:49: (iv_ruleXLiteral= ruleXLiteral EOF )
-            // InternalSignalDSL.g:3356:2: iv_ruleXLiteral= ruleXLiteral EOF
+            // InternalSignalDSL.g:3454:49: (iv_ruleXLiteral= ruleXLiteral EOF )
+            // InternalSignalDSL.g:3455:2: iv_ruleXLiteral= ruleXLiteral EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXLiteralRule()); 
@@ -9410,7 +9678,7 @@
 
 
     // $ANTLR start "ruleXLiteral"
-    // InternalSignalDSL.g:3362: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:3461: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;
 
@@ -9433,44 +9701,44 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:3368: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:3369: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:3467: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:3468: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:3369: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 alt55=7;
-            int LA55_0 = input.LA(1);
+            // InternalSignalDSL.g:3468: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 alt57=7;
+            int LA57_0 = input.LA(1);
 
-            if ( (LA55_0==31) ) {
-                alt55=1;
+            if ( (LA57_0==33) ) {
+                alt57=1;
             }
-            else if ( (LA55_0==32) && (synpred27_InternalSignalDSL())) {
-                alt55=2;
+            else if ( (LA57_0==34) && (synpred27_InternalSignalDSL())) {
+                alt57=2;
             }
-            else if ( ((LA55_0>=81 && LA55_0<=82)) ) {
-                alt55=3;
+            else if ( ((LA57_0>=83 && LA57_0<=84)) ) {
+                alt57=3;
             }
-            else if ( ((LA55_0>=RULE_HEX && LA55_0<=RULE_DECIMAL)) ) {
-                alt55=4;
+            else if ( ((LA57_0>=RULE_HEX && LA57_0<=RULE_DECIMAL)) ) {
+                alt57=4;
             }
-            else if ( (LA55_0==83) ) {
-                alt55=5;
+            else if ( (LA57_0==85) ) {
+                alt57=5;
             }
-            else if ( (LA55_0==RULE_STRING) ) {
-                alt55=6;
+            else if ( (LA57_0==RULE_STRING) ) {
+                alt57=6;
             }
-            else if ( (LA55_0==84) ) {
-                alt55=7;
+            else if ( (LA57_0==86) ) {
+                alt57=7;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 55, 0, input);
+                    new NoViableAltException("", 57, 0, input);
 
                 throw nvae;
             }
-            switch (alt55) {
+            switch (alt57) {
                 case 1 :
-                    // InternalSignalDSL.g:3370:3: this_XCollectionLiteral_0= ruleXCollectionLiteral
+                    // InternalSignalDSL.g:3469:3: this_XCollectionLiteral_0= ruleXCollectionLiteral
                     {
                     if ( state.backtracking==0 ) {
 
@@ -9492,10 +9760,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:3379:3: ( ( ( () '[' ) )=>this_XClosure_1= ruleXClosure )
+                    // InternalSignalDSL.g:3478:3: ( ( ( () '[' ) )=>this_XClosure_1= ruleXClosure )
                     {
-                    // InternalSignalDSL.g:3379:3: ( ( ( () '[' ) )=>this_XClosure_1= ruleXClosure )
-                    // InternalSignalDSL.g:3380:4: ( ( () '[' ) )=>this_XClosure_1= ruleXClosure
+                    // InternalSignalDSL.g:3478:3: ( ( ( () '[' ) )=>this_XClosure_1= ruleXClosure )
+                    // InternalSignalDSL.g:3479:4: ( ( () '[' ) )=>this_XClosure_1= ruleXClosure
                     {
                     if ( state.backtracking==0 ) {
 
@@ -9520,7 +9788,7 @@
                     }
                     break;
                 case 3 :
-                    // InternalSignalDSL.g:3396:3: this_XBooleanLiteral_2= ruleXBooleanLiteral
+                    // InternalSignalDSL.g:3495:3: this_XBooleanLiteral_2= ruleXBooleanLiteral
                     {
                     if ( state.backtracking==0 ) {
 
@@ -9542,7 +9810,7 @@
                     }
                     break;
                 case 4 :
-                    // InternalSignalDSL.g:3405:3: this_XNumberLiteral_3= ruleXNumberLiteral
+                    // InternalSignalDSL.g:3504:3: this_XNumberLiteral_3= ruleXNumberLiteral
                     {
                     if ( state.backtracking==0 ) {
 
@@ -9564,7 +9832,7 @@
                     }
                     break;
                 case 5 :
-                    // InternalSignalDSL.g:3414:3: this_XNullLiteral_4= ruleXNullLiteral
+                    // InternalSignalDSL.g:3513:3: this_XNullLiteral_4= ruleXNullLiteral
                     {
                     if ( state.backtracking==0 ) {
 
@@ -9586,7 +9854,7 @@
                     }
                     break;
                 case 6 :
-                    // InternalSignalDSL.g:3423:3: this_XStringLiteral_5= ruleXStringLiteral
+                    // InternalSignalDSL.g:3522:3: this_XStringLiteral_5= ruleXStringLiteral
                     {
                     if ( state.backtracking==0 ) {
 
@@ -9608,7 +9876,7 @@
                     }
                     break;
                 case 7 :
-                    // InternalSignalDSL.g:3432:3: this_XTypeLiteral_6= ruleXTypeLiteral
+                    // InternalSignalDSL.g:3531:3: this_XTypeLiteral_6= ruleXTypeLiteral
                     {
                     if ( state.backtracking==0 ) {
 
@@ -9654,7 +9922,7 @@
 
 
     // $ANTLR start "entryRuleXCollectionLiteral"
-    // InternalSignalDSL.g:3444:1: entryRuleXCollectionLiteral returns [EObject current=null] : iv_ruleXCollectionLiteral= ruleXCollectionLiteral EOF ;
+    // InternalSignalDSL.g:3543:1: entryRuleXCollectionLiteral returns [EObject current=null] : iv_ruleXCollectionLiteral= ruleXCollectionLiteral EOF ;
     public final EObject entryRuleXCollectionLiteral() throws RecognitionException {
         EObject current = null;
 
@@ -9662,8 +9930,8 @@
 
 
         try {
-            // InternalSignalDSL.g:3444:59: (iv_ruleXCollectionLiteral= ruleXCollectionLiteral EOF )
-            // InternalSignalDSL.g:3445:2: iv_ruleXCollectionLiteral= ruleXCollectionLiteral EOF
+            // InternalSignalDSL.g:3543:59: (iv_ruleXCollectionLiteral= ruleXCollectionLiteral EOF )
+            // InternalSignalDSL.g:3544:2: iv_ruleXCollectionLiteral= ruleXCollectionLiteral EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXCollectionLiteralRule()); 
@@ -9694,7 +9962,7 @@
 
 
     // $ANTLR start "ruleXCollectionLiteral"
-    // InternalSignalDSL.g:3451:1: ruleXCollectionLiteral returns [EObject current=null] : (this_XSetLiteral_0= ruleXSetLiteral | this_XListLiteral_1= ruleXListLiteral ) ;
+    // InternalSignalDSL.g:3550:1: ruleXCollectionLiteral returns [EObject current=null] : (this_XSetLiteral_0= ruleXSetLiteral | this_XListLiteral_1= ruleXListLiteral ) ;
     public final EObject ruleXCollectionLiteral() throws RecognitionException {
         EObject current = null;
 
@@ -9707,26 +9975,26 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:3457:2: ( (this_XSetLiteral_0= ruleXSetLiteral | this_XListLiteral_1= ruleXListLiteral ) )
-            // InternalSignalDSL.g:3458:2: (this_XSetLiteral_0= ruleXSetLiteral | this_XListLiteral_1= ruleXListLiteral )
+            // InternalSignalDSL.g:3556:2: ( (this_XSetLiteral_0= ruleXSetLiteral | this_XListLiteral_1= ruleXListLiteral ) )
+            // InternalSignalDSL.g:3557:2: (this_XSetLiteral_0= ruleXSetLiteral | this_XListLiteral_1= ruleXListLiteral )
             {
-            // InternalSignalDSL.g:3458:2: (this_XSetLiteral_0= ruleXSetLiteral | this_XListLiteral_1= ruleXListLiteral )
-            int alt56=2;
-            int LA56_0 = input.LA(1);
+            // InternalSignalDSL.g:3557:2: (this_XSetLiteral_0= ruleXSetLiteral | this_XListLiteral_1= ruleXListLiteral )
+            int alt58=2;
+            int LA58_0 = input.LA(1);
 
-            if ( (LA56_0==31) ) {
-                int LA56_1 = input.LA(2);
+            if ( (LA58_0==33) ) {
+                int LA58_1 = input.LA(2);
 
-                if ( (LA56_1==32) ) {
-                    alt56=2;
+                if ( (LA58_1==34) ) {
+                    alt58=2;
                 }
-                else if ( (LA56_1==14) ) {
-                    alt56=1;
+                else if ( (LA58_1==14) ) {
+                    alt58=1;
                 }
                 else {
                     if (state.backtracking>0) {state.failed=true; return current;}
                     NoViableAltException nvae =
-                        new NoViableAltException("", 56, 1, input);
+                        new NoViableAltException("", 58, 1, input);
 
                     throw nvae;
                 }
@@ -9734,13 +10002,13 @@
             else {
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 56, 0, input);
+                    new NoViableAltException("", 58, 0, input);
 
                 throw nvae;
             }
-            switch (alt56) {
+            switch (alt58) {
                 case 1 :
-                    // InternalSignalDSL.g:3459:3: this_XSetLiteral_0= ruleXSetLiteral
+                    // InternalSignalDSL.g:3558:3: this_XSetLiteral_0= ruleXSetLiteral
                     {
                     if ( state.backtracking==0 ) {
 
@@ -9762,7 +10030,7 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:3468:3: this_XListLiteral_1= ruleXListLiteral
+                    // InternalSignalDSL.g:3567:3: this_XListLiteral_1= ruleXListLiteral
                     {
                     if ( state.backtracking==0 ) {
 
@@ -9808,7 +10076,7 @@
 
 
     // $ANTLR start "entryRuleXSetLiteral"
-    // InternalSignalDSL.g:3480:1: entryRuleXSetLiteral returns [EObject current=null] : iv_ruleXSetLiteral= ruleXSetLiteral EOF ;
+    // InternalSignalDSL.g:3579:1: entryRuleXSetLiteral returns [EObject current=null] : iv_ruleXSetLiteral= ruleXSetLiteral EOF ;
     public final EObject entryRuleXSetLiteral() throws RecognitionException {
         EObject current = null;
 
@@ -9816,8 +10084,8 @@
 
 
         try {
-            // InternalSignalDSL.g:3480:52: (iv_ruleXSetLiteral= ruleXSetLiteral EOF )
-            // InternalSignalDSL.g:3481:2: iv_ruleXSetLiteral= ruleXSetLiteral EOF
+            // InternalSignalDSL.g:3579:52: (iv_ruleXSetLiteral= ruleXSetLiteral EOF )
+            // InternalSignalDSL.g:3580:2: iv_ruleXSetLiteral= ruleXSetLiteral EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXSetLiteralRule()); 
@@ -9848,7 +10116,7 @@
 
 
     // $ANTLR start "ruleXSetLiteral"
-    // InternalSignalDSL.g:3487: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:3586: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;
 
@@ -9865,14 +10133,14 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:3493:2: ( ( () otherlv_1= '#' otherlv_2= '{' ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )? otherlv_6= '}' ) )
-            // InternalSignalDSL.g:3494:2: ( () otherlv_1= '#' otherlv_2= '{' ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )? otherlv_6= '}' )
+            // InternalSignalDSL.g:3592:2: ( ( () otherlv_1= '#' otherlv_2= '{' ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )? otherlv_6= '}' ) )
+            // InternalSignalDSL.g:3593:2: ( () otherlv_1= '#' otherlv_2= '{' ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )? otherlv_6= '}' )
             {
-            // InternalSignalDSL.g:3494:2: ( () otherlv_1= '#' otherlv_2= '{' ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )? otherlv_6= '}' )
-            // InternalSignalDSL.g:3495:3: () otherlv_1= '#' otherlv_2= '{' ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )? otherlv_6= '}'
+            // InternalSignalDSL.g:3593:2: ( () otherlv_1= '#' otherlv_2= '{' ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )? otherlv_6= '}' )
+            // InternalSignalDSL.g:3594:3: () otherlv_1= '#' otherlv_2= '{' ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )? otherlv_6= '}'
             {
-            // InternalSignalDSL.g:3495:3: ()
-            // InternalSignalDSL.g:3496:4: 
+            // InternalSignalDSL.g:3594:3: ()
+            // InternalSignalDSL.g:3595:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -9884,41 +10152,41 @@
 
             }
 
-            otherlv_1=(Token)match(input,31,FOLLOW_5); if (state.failed) return current;
+            otherlv_1=(Token)match(input,33,FOLLOW_5); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_1, grammarAccess.getXSetLiteralAccess().getNumberSignKeyword_1());
               		
             }
-            otherlv_2=(Token)match(input,14,FOLLOW_53); if (state.failed) return current;
+            otherlv_2=(Token)match(input,14,FOLLOW_56); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_2, grammarAccess.getXSetLiteralAccess().getLeftCurlyBracketKeyword_2());
               		
             }
-            // InternalSignalDSL.g:3510:3: ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )?
-            int alt58=2;
-            int LA58_0 = input.LA(1);
+            // InternalSignalDSL.g:3609:3: ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )?
+            int alt60=2;
+            int LA60_0 = input.LA(1);
 
-            if ( ((LA58_0>=RULE_ID && LA58_0<=RULE_DECIMAL)||LA58_0==14||LA58_0==18||(LA58_0>=20 && LA58_0<=22)||LA58_0==27||(LA58_0>=31 && LA58_0<=32)||LA58_0==39||(LA58_0>=55 && LA58_0<=56)||LA58_0==60||LA58_0==68||LA58_0==70||(LA58_0>=74 && LA58_0<=75)||(LA58_0>=78 && LA58_0<=87)||LA58_0==89) ) {
-                alt58=1;
+            if ( ((LA60_0>=RULE_ID && LA60_0<=RULE_DECIMAL)||LA60_0==14||LA60_0==18||(LA60_0>=22 && LA60_0<=24)||LA60_0==29||(LA60_0>=33 && LA60_0<=34)||LA60_0==41||(LA60_0>=57 && LA60_0<=58)||LA60_0==62||LA60_0==70||LA60_0==72||(LA60_0>=76 && LA60_0<=77)||(LA60_0>=80 && LA60_0<=89)||LA60_0==91) ) {
+                alt60=1;
             }
-            switch (alt58) {
+            switch (alt60) {
                 case 1 :
-                    // InternalSignalDSL.g:3511:4: ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )*
+                    // InternalSignalDSL.g:3610:4: ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )*
                     {
-                    // InternalSignalDSL.g:3511:4: ( (lv_elements_3_0= ruleXExpression ) )
-                    // InternalSignalDSL.g:3512:5: (lv_elements_3_0= ruleXExpression )
+                    // InternalSignalDSL.g:3610:4: ( (lv_elements_3_0= ruleXExpression ) )
+                    // InternalSignalDSL.g:3611:5: (lv_elements_3_0= ruleXExpression )
                     {
-                    // InternalSignalDSL.g:3512:5: (lv_elements_3_0= ruleXExpression )
-                    // InternalSignalDSL.g:3513:6: lv_elements_3_0= ruleXExpression
+                    // InternalSignalDSL.g:3611:5: (lv_elements_3_0= ruleXExpression )
+                    // InternalSignalDSL.g:3612:6: lv_elements_3_0= ruleXExpression
                     {
                     if ( state.backtracking==0 ) {
 
                       						newCompositeNode(grammarAccess.getXSetLiteralAccess().getElementsXExpressionParserRuleCall_3_0_0());
                       					
                     }
-                    pushFollow(FOLLOW_54);
+                    pushFollow(FOLLOW_57);
                     lv_elements_3_0=ruleXExpression();
 
                     state._fsp--;
@@ -9942,39 +10210,39 @@
 
                     }
 
-                    // InternalSignalDSL.g:3530:4: (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )*
-                    loop57:
+                    // InternalSignalDSL.g:3629:4: (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )*
+                    loop59:
                     do {
-                        int alt57=2;
-                        int LA57_0 = input.LA(1);
+                        int alt59=2;
+                        int LA59_0 = input.LA(1);
 
-                        if ( (LA57_0==28) ) {
-                            alt57=1;
+                        if ( (LA59_0==30) ) {
+                            alt59=1;
                         }
 
 
-                        switch (alt57) {
+                        switch (alt59) {
                     	case 1 :
-                    	    // InternalSignalDSL.g:3531:5: otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) )
+                    	    // InternalSignalDSL.g:3630:5: otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) )
                     	    {
-                    	    otherlv_4=(Token)match(input,28,FOLLOW_23); if (state.failed) return current;
+                    	    otherlv_4=(Token)match(input,30,FOLLOW_26); if (state.failed) return current;
                     	    if ( state.backtracking==0 ) {
 
                     	      					newLeafNode(otherlv_4, grammarAccess.getXSetLiteralAccess().getCommaKeyword_3_1_0());
                     	      				
                     	    }
-                    	    // InternalSignalDSL.g:3535:5: ( (lv_elements_5_0= ruleXExpression ) )
-                    	    // InternalSignalDSL.g:3536:6: (lv_elements_5_0= ruleXExpression )
+                    	    // InternalSignalDSL.g:3634:5: ( (lv_elements_5_0= ruleXExpression ) )
+                    	    // InternalSignalDSL.g:3635:6: (lv_elements_5_0= ruleXExpression )
                     	    {
-                    	    // InternalSignalDSL.g:3536:6: (lv_elements_5_0= ruleXExpression )
-                    	    // InternalSignalDSL.g:3537:7: lv_elements_5_0= ruleXExpression
+                    	    // InternalSignalDSL.g:3635:6: (lv_elements_5_0= ruleXExpression )
+                    	    // InternalSignalDSL.g:3636:7: lv_elements_5_0= ruleXExpression
                     	    {
                     	    if ( state.backtracking==0 ) {
 
                     	      							newCompositeNode(grammarAccess.getXSetLiteralAccess().getElementsXExpressionParserRuleCall_3_1_1_0());
                     	      						
                     	    }
-                    	    pushFollow(FOLLOW_54);
+                    	    pushFollow(FOLLOW_57);
                     	    lv_elements_5_0=ruleXExpression();
 
                     	    state._fsp--;
@@ -10003,7 +10271,7 @@
                     	    break;
 
                     	default :
-                    	    break loop57;
+                    	    break loop59;
                         }
                     } while (true);
 
@@ -10044,7 +10312,7 @@
 
 
     // $ANTLR start "entryRuleXListLiteral"
-    // InternalSignalDSL.g:3564:1: entryRuleXListLiteral returns [EObject current=null] : iv_ruleXListLiteral= ruleXListLiteral EOF ;
+    // InternalSignalDSL.g:3663:1: entryRuleXListLiteral returns [EObject current=null] : iv_ruleXListLiteral= ruleXListLiteral EOF ;
     public final EObject entryRuleXListLiteral() throws RecognitionException {
         EObject current = null;
 
@@ -10052,8 +10320,8 @@
 
 
         try {
-            // InternalSignalDSL.g:3564:53: (iv_ruleXListLiteral= ruleXListLiteral EOF )
-            // InternalSignalDSL.g:3565:2: iv_ruleXListLiteral= ruleXListLiteral EOF
+            // InternalSignalDSL.g:3663:53: (iv_ruleXListLiteral= ruleXListLiteral EOF )
+            // InternalSignalDSL.g:3664:2: iv_ruleXListLiteral= ruleXListLiteral EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXListLiteralRule()); 
@@ -10084,7 +10352,7 @@
 
 
     // $ANTLR start "ruleXListLiteral"
-    // InternalSignalDSL.g:3571: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:3670: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;
 
@@ -10101,14 +10369,14 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:3577:2: ( ( () otherlv_1= '#' otherlv_2= '[' ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )? otherlv_6= ']' ) )
-            // InternalSignalDSL.g:3578:2: ( () otherlv_1= '#' otherlv_2= '[' ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )? otherlv_6= ']' )
+            // InternalSignalDSL.g:3676:2: ( ( () otherlv_1= '#' otherlv_2= '[' ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )? otherlv_6= ']' ) )
+            // InternalSignalDSL.g:3677:2: ( () otherlv_1= '#' otherlv_2= '[' ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )? otherlv_6= ']' )
             {
-            // InternalSignalDSL.g:3578:2: ( () otherlv_1= '#' otherlv_2= '[' ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )? otherlv_6= ']' )
-            // InternalSignalDSL.g:3579:3: () otherlv_1= '#' otherlv_2= '[' ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )? otherlv_6= ']'
+            // InternalSignalDSL.g:3677:2: ( () otherlv_1= '#' otherlv_2= '[' ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )? otherlv_6= ']' )
+            // InternalSignalDSL.g:3678:3: () otherlv_1= '#' otherlv_2= '[' ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )? otherlv_6= ']'
             {
-            // InternalSignalDSL.g:3579:3: ()
-            // InternalSignalDSL.g:3580:4: 
+            // InternalSignalDSL.g:3678:3: ()
+            // InternalSignalDSL.g:3679:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -10120,41 +10388,41 @@
 
             }
 
-            otherlv_1=(Token)match(input,31,FOLLOW_24); if (state.failed) return current;
+            otherlv_1=(Token)match(input,33,FOLLOW_27); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_1, grammarAccess.getXListLiteralAccess().getNumberSignKeyword_1());
               		
             }
-            otherlv_2=(Token)match(input,32,FOLLOW_25); if (state.failed) return current;
+            otherlv_2=(Token)match(input,34,FOLLOW_28); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_2, grammarAccess.getXListLiteralAccess().getLeftSquareBracketKeyword_2());
               		
             }
-            // InternalSignalDSL.g:3594:3: ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )?
-            int alt60=2;
-            int LA60_0 = input.LA(1);
+            // InternalSignalDSL.g:3693:3: ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )?
+            int alt62=2;
+            int LA62_0 = input.LA(1);
 
-            if ( ((LA60_0>=RULE_ID && LA60_0<=RULE_DECIMAL)||LA60_0==14||LA60_0==18||(LA60_0>=20 && LA60_0<=22)||LA60_0==27||(LA60_0>=31 && LA60_0<=32)||LA60_0==39||(LA60_0>=55 && LA60_0<=56)||LA60_0==60||LA60_0==68||LA60_0==70||(LA60_0>=74 && LA60_0<=75)||(LA60_0>=78 && LA60_0<=87)||LA60_0==89) ) {
-                alt60=1;
+            if ( ((LA62_0>=RULE_ID && LA62_0<=RULE_DECIMAL)||LA62_0==14||LA62_0==18||(LA62_0>=22 && LA62_0<=24)||LA62_0==29||(LA62_0>=33 && LA62_0<=34)||LA62_0==41||(LA62_0>=57 && LA62_0<=58)||LA62_0==62||LA62_0==70||LA62_0==72||(LA62_0>=76 && LA62_0<=77)||(LA62_0>=80 && LA62_0<=89)||LA62_0==91) ) {
+                alt62=1;
             }
-            switch (alt60) {
+            switch (alt62) {
                 case 1 :
-                    // InternalSignalDSL.g:3595:4: ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )*
+                    // InternalSignalDSL.g:3694:4: ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )*
                     {
-                    // InternalSignalDSL.g:3595:4: ( (lv_elements_3_0= ruleXExpression ) )
-                    // InternalSignalDSL.g:3596:5: (lv_elements_3_0= ruleXExpression )
+                    // InternalSignalDSL.g:3694:4: ( (lv_elements_3_0= ruleXExpression ) )
+                    // InternalSignalDSL.g:3695:5: (lv_elements_3_0= ruleXExpression )
                     {
-                    // InternalSignalDSL.g:3596:5: (lv_elements_3_0= ruleXExpression )
-                    // InternalSignalDSL.g:3597:6: lv_elements_3_0= ruleXExpression
+                    // InternalSignalDSL.g:3695:5: (lv_elements_3_0= ruleXExpression )
+                    // InternalSignalDSL.g:3696:6: lv_elements_3_0= ruleXExpression
                     {
                     if ( state.backtracking==0 ) {
 
                       						newCompositeNode(grammarAccess.getXListLiteralAccess().getElementsXExpressionParserRuleCall_3_0_0());
                       					
                     }
-                    pushFollow(FOLLOW_26);
+                    pushFollow(FOLLOW_29);
                     lv_elements_3_0=ruleXExpression();
 
                     state._fsp--;
@@ -10178,39 +10446,39 @@
 
                     }
 
-                    // InternalSignalDSL.g:3614:4: (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )*
-                    loop59:
+                    // InternalSignalDSL.g:3713:4: (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )*
+                    loop61:
                     do {
-                        int alt59=2;
-                        int LA59_0 = input.LA(1);
+                        int alt61=2;
+                        int LA61_0 = input.LA(1);
 
-                        if ( (LA59_0==28) ) {
-                            alt59=1;
+                        if ( (LA61_0==30) ) {
+                            alt61=1;
                         }
 
 
-                        switch (alt59) {
+                        switch (alt61) {
                     	case 1 :
-                    	    // InternalSignalDSL.g:3615:5: otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) )
+                    	    // InternalSignalDSL.g:3714:5: otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) )
                     	    {
-                    	    otherlv_4=(Token)match(input,28,FOLLOW_23); if (state.failed) return current;
+                    	    otherlv_4=(Token)match(input,30,FOLLOW_26); if (state.failed) return current;
                     	    if ( state.backtracking==0 ) {
 
                     	      					newLeafNode(otherlv_4, grammarAccess.getXListLiteralAccess().getCommaKeyword_3_1_0());
                     	      				
                     	    }
-                    	    // InternalSignalDSL.g:3619:5: ( (lv_elements_5_0= ruleXExpression ) )
-                    	    // InternalSignalDSL.g:3620:6: (lv_elements_5_0= ruleXExpression )
+                    	    // InternalSignalDSL.g:3718:5: ( (lv_elements_5_0= ruleXExpression ) )
+                    	    // InternalSignalDSL.g:3719:6: (lv_elements_5_0= ruleXExpression )
                     	    {
-                    	    // InternalSignalDSL.g:3620:6: (lv_elements_5_0= ruleXExpression )
-                    	    // InternalSignalDSL.g:3621:7: lv_elements_5_0= ruleXExpression
+                    	    // InternalSignalDSL.g:3719:6: (lv_elements_5_0= ruleXExpression )
+                    	    // InternalSignalDSL.g:3720:7: lv_elements_5_0= ruleXExpression
                     	    {
                     	    if ( state.backtracking==0 ) {
 
                     	      							newCompositeNode(grammarAccess.getXListLiteralAccess().getElementsXExpressionParserRuleCall_3_1_1_0());
                     	      						
                     	    }
-                    	    pushFollow(FOLLOW_26);
+                    	    pushFollow(FOLLOW_29);
                     	    lv_elements_5_0=ruleXExpression();
 
                     	    state._fsp--;
@@ -10239,7 +10507,7 @@
                     	    break;
 
                     	default :
-                    	    break loop59;
+                    	    break loop61;
                         }
                     } while (true);
 
@@ -10249,7 +10517,7 @@
 
             }
 
-            otherlv_6=(Token)match(input,33,FOLLOW_2); if (state.failed) return current;
+            otherlv_6=(Token)match(input,35,FOLLOW_2); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_6, grammarAccess.getXListLiteralAccess().getRightSquareBracketKeyword_4());
@@ -10280,7 +10548,7 @@
 
 
     // $ANTLR start "entryRuleXClosure"
-    // InternalSignalDSL.g:3648:1: entryRuleXClosure returns [EObject current=null] : iv_ruleXClosure= ruleXClosure EOF ;
+    // InternalSignalDSL.g:3747:1: entryRuleXClosure returns [EObject current=null] : iv_ruleXClosure= ruleXClosure EOF ;
     public final EObject entryRuleXClosure() throws RecognitionException {
         EObject current = null;
 
@@ -10288,8 +10556,8 @@
 
 
         try {
-            // InternalSignalDSL.g:3648:49: (iv_ruleXClosure= ruleXClosure EOF )
-            // InternalSignalDSL.g:3649:2: iv_ruleXClosure= ruleXClosure EOF
+            // InternalSignalDSL.g:3747:49: (iv_ruleXClosure= ruleXClosure EOF )
+            // InternalSignalDSL.g:3748:2: iv_ruleXClosure= ruleXClosure EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXClosureRule()); 
@@ -10320,7 +10588,7 @@
 
 
     // $ANTLR start "ruleXClosure"
-    // InternalSignalDSL.g:3655: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:3754: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;
 
@@ -10339,20 +10607,20 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:3661: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:3662: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:3760: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:3761: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:3662: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:3663: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:3761: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:3762: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:3663:3: ( ( ( () '[' ) )=> ( () otherlv_1= '[' ) )
-            // InternalSignalDSL.g:3664:4: ( ( () '[' ) )=> ( () otherlv_1= '[' )
+            // InternalSignalDSL.g:3762:3: ( ( ( () '[' ) )=> ( () otherlv_1= '[' ) )
+            // InternalSignalDSL.g:3763:4: ( ( () '[' ) )=> ( () otherlv_1= '[' )
             {
-            // InternalSignalDSL.g:3670:4: ( () otherlv_1= '[' )
-            // InternalSignalDSL.g:3671:5: () otherlv_1= '['
+            // InternalSignalDSL.g:3769:4: ( () otherlv_1= '[' )
+            // InternalSignalDSL.g:3770:5: () otherlv_1= '['
             {
-            // InternalSignalDSL.g:3671:5: ()
-            // InternalSignalDSL.g:3672:6: 
+            // InternalSignalDSL.g:3770:5: ()
+            // InternalSignalDSL.g:3771:6: 
             {
             if ( state.backtracking==0 ) {
 
@@ -10364,7 +10632,7 @@
 
             }
 
-            otherlv_1=(Token)match(input,32,FOLLOW_55); if (state.failed) return current;
+            otherlv_1=(Token)match(input,34,FOLLOW_58); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               					newLeafNode(otherlv_1, grammarAccess.getXClosureAccess().getLeftSquareBracketKeyword_0_0_1());
@@ -10376,39 +10644,39 @@
 
             }
 
-            // InternalSignalDSL.g:3684:3: ( ( ( ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( ( ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_5_0= '|' ) ) ) )?
-            int alt63=2;
-            alt63 = dfa63.predict(input);
-            switch (alt63) {
+            // InternalSignalDSL.g:3783:3: ( ( ( ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( ( ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_5_0= '|' ) ) ) )?
+            int alt65=2;
+            alt65 = dfa65.predict(input);
+            switch (alt65) {
                 case 1 :
-                    // InternalSignalDSL.g:3685:4: ( ( ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( ( ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_5_0= '|' ) ) )
+                    // InternalSignalDSL.g:3784:4: ( ( ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( ( ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_5_0= '|' ) ) )
                     {
-                    // InternalSignalDSL.g:3708:4: ( ( ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_5_0= '|' ) ) )
-                    // InternalSignalDSL.g:3709:5: ( ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_5_0= '|' ) )
+                    // InternalSignalDSL.g:3807:4: ( ( ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_5_0= '|' ) ) )
+                    // InternalSignalDSL.g:3808:5: ( ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_5_0= '|' ) )
                     {
-                    // InternalSignalDSL.g:3709:5: ( ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )* )?
-                    int alt62=2;
-                    int LA62_0 = input.LA(1);
+                    // InternalSignalDSL.g:3808:5: ( ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )* )?
+                    int alt64=2;
+                    int LA64_0 = input.LA(1);
 
-                    if ( (LA62_0==RULE_ID||LA62_0==27||LA62_0==52) ) {
-                        alt62=1;
+                    if ( (LA64_0==RULE_ID||LA64_0==29||LA64_0==54) ) {
+                        alt64=1;
                     }
-                    switch (alt62) {
+                    switch (alt64) {
                         case 1 :
-                            // InternalSignalDSL.g:3710:6: ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )*
+                            // InternalSignalDSL.g:3809:6: ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )*
                             {
-                            // InternalSignalDSL.g:3710:6: ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) )
-                            // InternalSignalDSL.g:3711:7: (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter )
+                            // InternalSignalDSL.g:3809:6: ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) )
+                            // InternalSignalDSL.g:3810:7: (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter )
                             {
-                            // InternalSignalDSL.g:3711:7: (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter )
-                            // InternalSignalDSL.g:3712:8: lv_declaredFormalParameters_2_0= ruleJvmFormalParameter
+                            // InternalSignalDSL.g:3810:7: (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter )
+                            // InternalSignalDSL.g:3811:8: lv_declaredFormalParameters_2_0= ruleJvmFormalParameter
                             {
                             if ( state.backtracking==0 ) {
 
                               								newCompositeNode(grammarAccess.getXClosureAccess().getDeclaredFormalParametersJvmFormalParameterParserRuleCall_1_0_0_0_0());
                               							
                             }
-                            pushFollow(FOLLOW_56);
+                            pushFollow(FOLLOW_59);
                             lv_declaredFormalParameters_2_0=ruleJvmFormalParameter();
 
                             state._fsp--;
@@ -10432,39 +10700,39 @@
 
                             }
 
-                            // InternalSignalDSL.g:3729:6: (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )*
-                            loop61:
+                            // InternalSignalDSL.g:3828:6: (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )*
+                            loop63:
                             do {
-                                int alt61=2;
-                                int LA61_0 = input.LA(1);
+                                int alt63=2;
+                                int LA63_0 = input.LA(1);
 
-                                if ( (LA61_0==28) ) {
-                                    alt61=1;
+                                if ( (LA63_0==30) ) {
+                                    alt63=1;
                                 }
 
 
-                                switch (alt61) {
+                                switch (alt63) {
                             	case 1 :
-                            	    // InternalSignalDSL.g:3730:7: otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) )
+                            	    // InternalSignalDSL.g:3829:7: otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) )
                             	    {
-                            	    otherlv_3=(Token)match(input,28,FOLLOW_36); if (state.failed) return current;
+                            	    otherlv_3=(Token)match(input,30,FOLLOW_39); if (state.failed) return current;
                             	    if ( state.backtracking==0 ) {
 
                             	      							newLeafNode(otherlv_3, grammarAccess.getXClosureAccess().getCommaKeyword_1_0_0_1_0());
                             	      						
                             	    }
-                            	    // InternalSignalDSL.g:3734:7: ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) )
-                            	    // InternalSignalDSL.g:3735:8: (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter )
+                            	    // InternalSignalDSL.g:3833:7: ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) )
+                            	    // InternalSignalDSL.g:3834:8: (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter )
                             	    {
-                            	    // InternalSignalDSL.g:3735:8: (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter )
-                            	    // InternalSignalDSL.g:3736:9: lv_declaredFormalParameters_4_0= ruleJvmFormalParameter
+                            	    // InternalSignalDSL.g:3834:8: (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter )
+                            	    // InternalSignalDSL.g:3835:9: lv_declaredFormalParameters_4_0= ruleJvmFormalParameter
                             	    {
                             	    if ( state.backtracking==0 ) {
 
                             	      									newCompositeNode(grammarAccess.getXClosureAccess().getDeclaredFormalParametersJvmFormalParameterParserRuleCall_1_0_0_1_1_0());
                             	      								
                             	    }
-                            	    pushFollow(FOLLOW_56);
+                            	    pushFollow(FOLLOW_59);
                             	    lv_declaredFormalParameters_4_0=ruleJvmFormalParameter();
 
                             	    state._fsp--;
@@ -10493,7 +10761,7 @@
                             	    break;
 
                             	default :
-                            	    break loop61;
+                            	    break loop63;
                                 }
                             } while (true);
 
@@ -10503,13 +10771,13 @@
 
                     }
 
-                    // InternalSignalDSL.g:3755:5: ( (lv_explicitSyntax_5_0= '|' ) )
-                    // InternalSignalDSL.g:3756:6: (lv_explicitSyntax_5_0= '|' )
+                    // InternalSignalDSL.g:3854:5: ( (lv_explicitSyntax_5_0= '|' ) )
+                    // InternalSignalDSL.g:3855:6: (lv_explicitSyntax_5_0= '|' )
                     {
-                    // InternalSignalDSL.g:3756:6: (lv_explicitSyntax_5_0= '|' )
-                    // InternalSignalDSL.g:3757:7: lv_explicitSyntax_5_0= '|'
+                    // InternalSignalDSL.g:3855:6: (lv_explicitSyntax_5_0= '|' )
+                    // InternalSignalDSL.g:3856:7: lv_explicitSyntax_5_0= '|'
                     {
-                    lv_explicitSyntax_5_0=(Token)match(input,67,FOLLOW_57); if (state.failed) return current;
+                    lv_explicitSyntax_5_0=(Token)match(input,69,FOLLOW_60); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       							newLeafNode(lv_explicitSyntax_5_0, grammarAccess.getXClosureAccess().getExplicitSyntaxVerticalLineKeyword_1_0_1_0());
@@ -10538,18 +10806,18 @@
 
             }
 
-            // InternalSignalDSL.g:3771:3: ( (lv_expression_6_0= ruleXExpressionInClosure ) )
-            // InternalSignalDSL.g:3772:4: (lv_expression_6_0= ruleXExpressionInClosure )
+            // InternalSignalDSL.g:3870:3: ( (lv_expression_6_0= ruleXExpressionInClosure ) )
+            // InternalSignalDSL.g:3871:4: (lv_expression_6_0= ruleXExpressionInClosure )
             {
-            // InternalSignalDSL.g:3772:4: (lv_expression_6_0= ruleXExpressionInClosure )
-            // InternalSignalDSL.g:3773:5: lv_expression_6_0= ruleXExpressionInClosure
+            // InternalSignalDSL.g:3871:4: (lv_expression_6_0= ruleXExpressionInClosure )
+            // InternalSignalDSL.g:3872:5: lv_expression_6_0= ruleXExpressionInClosure
             {
             if ( state.backtracking==0 ) {
 
               					newCompositeNode(grammarAccess.getXClosureAccess().getExpressionXExpressionInClosureParserRuleCall_2_0());
               				
             }
-            pushFollow(FOLLOW_58);
+            pushFollow(FOLLOW_61);
             lv_expression_6_0=ruleXExpressionInClosure();
 
             state._fsp--;
@@ -10573,7 +10841,7 @@
 
             }
 
-            otherlv_7=(Token)match(input,33,FOLLOW_2); if (state.failed) return current;
+            otherlv_7=(Token)match(input,35,FOLLOW_2); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_7, grammarAccess.getXClosureAccess().getRightSquareBracketKeyword_3());
@@ -10604,7 +10872,7 @@
 
 
     // $ANTLR start "entryRuleXExpressionInClosure"
-    // InternalSignalDSL.g:3798:1: entryRuleXExpressionInClosure returns [EObject current=null] : iv_ruleXExpressionInClosure= ruleXExpressionInClosure EOF ;
+    // InternalSignalDSL.g:3897:1: entryRuleXExpressionInClosure returns [EObject current=null] : iv_ruleXExpressionInClosure= ruleXExpressionInClosure EOF ;
     public final EObject entryRuleXExpressionInClosure() throws RecognitionException {
         EObject current = null;
 
@@ -10612,8 +10880,8 @@
 
 
         try {
-            // InternalSignalDSL.g:3798:61: (iv_ruleXExpressionInClosure= ruleXExpressionInClosure EOF )
-            // InternalSignalDSL.g:3799:2: iv_ruleXExpressionInClosure= ruleXExpressionInClosure EOF
+            // InternalSignalDSL.g:3897:61: (iv_ruleXExpressionInClosure= ruleXExpressionInClosure EOF )
+            // InternalSignalDSL.g:3898:2: iv_ruleXExpressionInClosure= ruleXExpressionInClosure EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXExpressionInClosureRule()); 
@@ -10644,7 +10912,7 @@
 
 
     // $ANTLR start "ruleXExpressionInClosure"
-    // InternalSignalDSL.g:3805:1: ruleXExpressionInClosure returns [EObject current=null] : ( () ( ( (lv_expressions_1_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_2= ';' )? )* ) ;
+    // InternalSignalDSL.g:3904:1: ruleXExpressionInClosure returns [EObject current=null] : ( () ( ( (lv_expressions_1_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_2= ';' )? )* ) ;
     public final EObject ruleXExpressionInClosure() throws RecognitionException {
         EObject current = null;
 
@@ -10656,14 +10924,14 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:3811:2: ( ( () ( ( (lv_expressions_1_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_2= ';' )? )* ) )
-            // InternalSignalDSL.g:3812:2: ( () ( ( (lv_expressions_1_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_2= ';' )? )* )
+            // InternalSignalDSL.g:3910:2: ( ( () ( ( (lv_expressions_1_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_2= ';' )? )* ) )
+            // InternalSignalDSL.g:3911:2: ( () ( ( (lv_expressions_1_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_2= ';' )? )* )
             {
-            // InternalSignalDSL.g:3812:2: ( () ( ( (lv_expressions_1_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_2= ';' )? )* )
-            // InternalSignalDSL.g:3813:3: () ( ( (lv_expressions_1_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_2= ';' )? )*
+            // InternalSignalDSL.g:3911:2: ( () ( ( (lv_expressions_1_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_2= ';' )? )* )
+            // InternalSignalDSL.g:3912:3: () ( ( (lv_expressions_1_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_2= ';' )? )*
             {
-            // InternalSignalDSL.g:3813:3: ()
-            // InternalSignalDSL.g:3814:4: 
+            // InternalSignalDSL.g:3912:3: ()
+            // InternalSignalDSL.g:3913:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -10675,33 +10943,33 @@
 
             }
 
-            // InternalSignalDSL.g:3820:3: ( ( (lv_expressions_1_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_2= ';' )? )*
-            loop65:
+            // InternalSignalDSL.g:3919:3: ( ( (lv_expressions_1_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_2= ';' )? )*
+            loop67:
             do {
-                int alt65=2;
-                int LA65_0 = input.LA(1);
+                int alt67=2;
+                int LA67_0 = input.LA(1);
 
-                if ( ((LA65_0>=RULE_ID && LA65_0<=RULE_DECIMAL)||LA65_0==14||LA65_0==18||(LA65_0>=20 && LA65_0<=22)||LA65_0==27||(LA65_0>=31 && LA65_0<=32)||LA65_0==39||(LA65_0>=55 && LA65_0<=56)||LA65_0==60||LA65_0==68||LA65_0==70||(LA65_0>=74 && LA65_0<=87)||LA65_0==89) ) {
-                    alt65=1;
+                if ( ((LA67_0>=RULE_ID && LA67_0<=RULE_DECIMAL)||LA67_0==14||LA67_0==18||(LA67_0>=22 && LA67_0<=24)||LA67_0==29||(LA67_0>=33 && LA67_0<=34)||LA67_0==41||(LA67_0>=57 && LA67_0<=58)||LA67_0==62||LA67_0==70||LA67_0==72||(LA67_0>=76 && LA67_0<=89)||LA67_0==91) ) {
+                    alt67=1;
                 }
 
 
-                switch (alt65) {
+                switch (alt67) {
             	case 1 :
-            	    // InternalSignalDSL.g:3821:4: ( (lv_expressions_1_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_2= ';' )?
+            	    // InternalSignalDSL.g:3920:4: ( (lv_expressions_1_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_2= ';' )?
             	    {
-            	    // InternalSignalDSL.g:3821:4: ( (lv_expressions_1_0= ruleXExpressionOrVarDeclaration ) )
-            	    // InternalSignalDSL.g:3822:5: (lv_expressions_1_0= ruleXExpressionOrVarDeclaration )
+            	    // InternalSignalDSL.g:3920:4: ( (lv_expressions_1_0= ruleXExpressionOrVarDeclaration ) )
+            	    // InternalSignalDSL.g:3921:5: (lv_expressions_1_0= ruleXExpressionOrVarDeclaration )
             	    {
-            	    // InternalSignalDSL.g:3822:5: (lv_expressions_1_0= ruleXExpressionOrVarDeclaration )
-            	    // InternalSignalDSL.g:3823:6: lv_expressions_1_0= ruleXExpressionOrVarDeclaration
+            	    // InternalSignalDSL.g:3921:5: (lv_expressions_1_0= ruleXExpressionOrVarDeclaration )
+            	    // InternalSignalDSL.g:3922:6: lv_expressions_1_0= ruleXExpressionOrVarDeclaration
             	    {
             	    if ( state.backtracking==0 ) {
 
             	      						newCompositeNode(grammarAccess.getXExpressionInClosureAccess().getExpressionsXExpressionOrVarDeclarationParserRuleCall_1_0_0());
             	      					
             	    }
-            	    pushFollow(FOLLOW_59);
+            	    pushFollow(FOLLOW_62);
             	    lv_expressions_1_0=ruleXExpressionOrVarDeclaration();
 
             	    state._fsp--;
@@ -10725,18 +10993,18 @@
 
             	    }
 
-            	    // InternalSignalDSL.g:3840:4: (otherlv_2= ';' )?
-            	    int alt64=2;
-            	    int LA64_0 = input.LA(1);
+            	    // InternalSignalDSL.g:3939:4: (otherlv_2= ';' )?
+            	    int alt66=2;
+            	    int LA66_0 = input.LA(1);
 
-            	    if ( (LA64_0==25) ) {
-            	        alt64=1;
+            	    if ( (LA66_0==27) ) {
+            	        alt66=1;
             	    }
-            	    switch (alt64) {
+            	    switch (alt66) {
             	        case 1 :
-            	            // InternalSignalDSL.g:3841:5: otherlv_2= ';'
+            	            // InternalSignalDSL.g:3940:5: otherlv_2= ';'
             	            {
-            	            otherlv_2=(Token)match(input,25,FOLLOW_60); if (state.failed) return current;
+            	            otherlv_2=(Token)match(input,27,FOLLOW_63); if (state.failed) return current;
             	            if ( state.backtracking==0 ) {
 
             	              					newLeafNode(otherlv_2, grammarAccess.getXExpressionInClosureAccess().getSemicolonKeyword_1_1());
@@ -10753,7 +11021,7 @@
             	    break;
 
             	default :
-            	    break loop65;
+            	    break loop67;
                 }
             } while (true);
 
@@ -10782,7 +11050,7 @@
 
 
     // $ANTLR start "entryRuleXShortClosure"
-    // InternalSignalDSL.g:3851:1: entryRuleXShortClosure returns [EObject current=null] : iv_ruleXShortClosure= ruleXShortClosure EOF ;
+    // InternalSignalDSL.g:3950:1: entryRuleXShortClosure returns [EObject current=null] : iv_ruleXShortClosure= ruleXShortClosure EOF ;
     public final EObject entryRuleXShortClosure() throws RecognitionException {
         EObject current = null;
 
@@ -10790,8 +11058,8 @@
 
 
         try {
-            // InternalSignalDSL.g:3851:54: (iv_ruleXShortClosure= ruleXShortClosure EOF )
-            // InternalSignalDSL.g:3852:2: iv_ruleXShortClosure= ruleXShortClosure EOF
+            // InternalSignalDSL.g:3950:54: (iv_ruleXShortClosure= ruleXShortClosure EOF )
+            // InternalSignalDSL.g:3951:2: iv_ruleXShortClosure= ruleXShortClosure EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXShortClosureRule()); 
@@ -10822,7 +11090,7 @@
 
 
     // $ANTLR start "ruleXShortClosure"
-    // InternalSignalDSL.g:3858: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:3957: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;
 
@@ -10839,20 +11107,20 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:3864: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:3865: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:3963: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:3964: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:3865: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:3866: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:3964: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:3965: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:3866:3: ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( () ( ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) ) (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_4_0= '|' ) ) ) )
-            // InternalSignalDSL.g:3867:4: ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( () ( ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) ) (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_4_0= '|' ) ) )
+            // InternalSignalDSL.g:3965:3: ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( () ( ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) ) (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_4_0= '|' ) ) ) )
+            // InternalSignalDSL.g:3966:4: ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( () ( ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) ) (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_4_0= '|' ) ) )
             {
-            // InternalSignalDSL.g:3892:4: ( () ( ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) ) (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_4_0= '|' ) ) )
-            // InternalSignalDSL.g:3893:5: () ( ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) ) (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_4_0= '|' ) )
+            // InternalSignalDSL.g:3991:4: ( () ( ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) ) (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_4_0= '|' ) ) )
+            // InternalSignalDSL.g:3992:5: () ( ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) ) (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_4_0= '|' ) )
             {
-            // InternalSignalDSL.g:3893:5: ()
-            // InternalSignalDSL.g:3894:6: 
+            // InternalSignalDSL.g:3992:5: ()
+            // InternalSignalDSL.g:3993:6: 
             {
             if ( state.backtracking==0 ) {
 
@@ -10864,29 +11132,29 @@
 
             }
 
-            // InternalSignalDSL.g:3900:5: ( ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) ) (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )* )?
-            int alt67=2;
-            int LA67_0 = input.LA(1);
+            // InternalSignalDSL.g:3999:5: ( ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) ) (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )* )?
+            int alt69=2;
+            int LA69_0 = input.LA(1);
 
-            if ( (LA67_0==RULE_ID||LA67_0==27||LA67_0==52) ) {
-                alt67=1;
+            if ( (LA69_0==RULE_ID||LA69_0==29||LA69_0==54) ) {
+                alt69=1;
             }
-            switch (alt67) {
+            switch (alt69) {
                 case 1 :
-                    // InternalSignalDSL.g:3901:6: ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) ) (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )*
+                    // InternalSignalDSL.g:4000:6: ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) ) (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )*
                     {
-                    // InternalSignalDSL.g:3901:6: ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) )
-                    // InternalSignalDSL.g:3902:7: (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter )
+                    // InternalSignalDSL.g:4000:6: ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) )
+                    // InternalSignalDSL.g:4001:7: (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter )
                     {
-                    // InternalSignalDSL.g:3902:7: (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter )
-                    // InternalSignalDSL.g:3903:8: lv_declaredFormalParameters_1_0= ruleJvmFormalParameter
+                    // InternalSignalDSL.g:4001:7: (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter )
+                    // InternalSignalDSL.g:4002:8: lv_declaredFormalParameters_1_0= ruleJvmFormalParameter
                     {
                     if ( state.backtracking==0 ) {
 
                       								newCompositeNode(grammarAccess.getXShortClosureAccess().getDeclaredFormalParametersJvmFormalParameterParserRuleCall_0_0_1_0_0());
                       							
                     }
-                    pushFollow(FOLLOW_56);
+                    pushFollow(FOLLOW_59);
                     lv_declaredFormalParameters_1_0=ruleJvmFormalParameter();
 
                     state._fsp--;
@@ -10910,39 +11178,39 @@
 
                     }
 
-                    // InternalSignalDSL.g:3920:6: (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )*
-                    loop66:
+                    // InternalSignalDSL.g:4019:6: (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )*
+                    loop68:
                     do {
-                        int alt66=2;
-                        int LA66_0 = input.LA(1);
+                        int alt68=2;
+                        int LA68_0 = input.LA(1);
 
-                        if ( (LA66_0==28) ) {
-                            alt66=1;
+                        if ( (LA68_0==30) ) {
+                            alt68=1;
                         }
 
 
-                        switch (alt66) {
+                        switch (alt68) {
                     	case 1 :
-                    	    // InternalSignalDSL.g:3921:7: otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) )
+                    	    // InternalSignalDSL.g:4020:7: otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) )
                     	    {
-                    	    otherlv_2=(Token)match(input,28,FOLLOW_36); if (state.failed) return current;
+                    	    otherlv_2=(Token)match(input,30,FOLLOW_39); if (state.failed) return current;
                     	    if ( state.backtracking==0 ) {
 
                     	      							newLeafNode(otherlv_2, grammarAccess.getXShortClosureAccess().getCommaKeyword_0_0_1_1_0());
                     	      						
                     	    }
-                    	    // InternalSignalDSL.g:3925:7: ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) )
-                    	    // InternalSignalDSL.g:3926:8: (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter )
+                    	    // InternalSignalDSL.g:4024:7: ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) )
+                    	    // InternalSignalDSL.g:4025:8: (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter )
                     	    {
-                    	    // InternalSignalDSL.g:3926:8: (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter )
-                    	    // InternalSignalDSL.g:3927:9: lv_declaredFormalParameters_3_0= ruleJvmFormalParameter
+                    	    // InternalSignalDSL.g:4025:8: (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter )
+                    	    // InternalSignalDSL.g:4026:9: lv_declaredFormalParameters_3_0= ruleJvmFormalParameter
                     	    {
                     	    if ( state.backtracking==0 ) {
 
                     	      									newCompositeNode(grammarAccess.getXShortClosureAccess().getDeclaredFormalParametersJvmFormalParameterParserRuleCall_0_0_1_1_1_0());
                     	      								
                     	    }
-                    	    pushFollow(FOLLOW_56);
+                    	    pushFollow(FOLLOW_59);
                     	    lv_declaredFormalParameters_3_0=ruleJvmFormalParameter();
 
                     	    state._fsp--;
@@ -10971,7 +11239,7 @@
                     	    break;
 
                     	default :
-                    	    break loop66;
+                    	    break loop68;
                         }
                     } while (true);
 
@@ -10981,13 +11249,13 @@
 
             }
 
-            // InternalSignalDSL.g:3946:5: ( (lv_explicitSyntax_4_0= '|' ) )
-            // InternalSignalDSL.g:3947:6: (lv_explicitSyntax_4_0= '|' )
+            // InternalSignalDSL.g:4045:5: ( (lv_explicitSyntax_4_0= '|' ) )
+            // InternalSignalDSL.g:4046:6: (lv_explicitSyntax_4_0= '|' )
             {
-            // InternalSignalDSL.g:3947:6: (lv_explicitSyntax_4_0= '|' )
-            // InternalSignalDSL.g:3948:7: lv_explicitSyntax_4_0= '|'
+            // InternalSignalDSL.g:4046:6: (lv_explicitSyntax_4_0= '|' )
+            // InternalSignalDSL.g:4047:7: lv_explicitSyntax_4_0= '|'
             {
-            lv_explicitSyntax_4_0=(Token)match(input,67,FOLLOW_23); if (state.failed) return current;
+            lv_explicitSyntax_4_0=(Token)match(input,69,FOLLOW_26); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               							newLeafNode(lv_explicitSyntax_4_0, grammarAccess.getXShortClosureAccess().getExplicitSyntaxVerticalLineKeyword_0_0_2_0());
@@ -11013,11 +11281,11 @@
 
             }
 
-            // InternalSignalDSL.g:3962:3: ( (lv_expression_5_0= ruleXExpression ) )
-            // InternalSignalDSL.g:3963:4: (lv_expression_5_0= ruleXExpression )
+            // InternalSignalDSL.g:4061:3: ( (lv_expression_5_0= ruleXExpression ) )
+            // InternalSignalDSL.g:4062:4: (lv_expression_5_0= ruleXExpression )
             {
-            // InternalSignalDSL.g:3963:4: (lv_expression_5_0= ruleXExpression )
-            // InternalSignalDSL.g:3964:5: lv_expression_5_0= ruleXExpression
+            // InternalSignalDSL.g:4062:4: (lv_expression_5_0= ruleXExpression )
+            // InternalSignalDSL.g:4063:5: lv_expression_5_0= ruleXExpression
             {
             if ( state.backtracking==0 ) {
 
@@ -11073,7 +11341,7 @@
 
 
     // $ANTLR start "entryRuleXParenthesizedExpression"
-    // InternalSignalDSL.g:3985:1: entryRuleXParenthesizedExpression returns [EObject current=null] : iv_ruleXParenthesizedExpression= ruleXParenthesizedExpression EOF ;
+    // InternalSignalDSL.g:4084:1: entryRuleXParenthesizedExpression returns [EObject current=null] : iv_ruleXParenthesizedExpression= ruleXParenthesizedExpression EOF ;
     public final EObject entryRuleXParenthesizedExpression() throws RecognitionException {
         EObject current = null;
 
@@ -11081,8 +11349,8 @@
 
 
         try {
-            // InternalSignalDSL.g:3985:65: (iv_ruleXParenthesizedExpression= ruleXParenthesizedExpression EOF )
-            // InternalSignalDSL.g:3986:2: iv_ruleXParenthesizedExpression= ruleXParenthesizedExpression EOF
+            // InternalSignalDSL.g:4084:65: (iv_ruleXParenthesizedExpression= ruleXParenthesizedExpression EOF )
+            // InternalSignalDSL.g:4085:2: iv_ruleXParenthesizedExpression= ruleXParenthesizedExpression EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXParenthesizedExpressionRule()); 
@@ -11113,7 +11381,7 @@
 
 
     // $ANTLR start "ruleXParenthesizedExpression"
-    // InternalSignalDSL.g:3992:1: ruleXParenthesizedExpression returns [EObject current=null] : (otherlv_0= '(' this_XExpression_1= ruleXExpression otherlv_2= ')' ) ;
+    // InternalSignalDSL.g:4091:1: ruleXParenthesizedExpression returns [EObject current=null] : (otherlv_0= '(' this_XExpression_1= ruleXExpression otherlv_2= ')' ) ;
     public final EObject ruleXParenthesizedExpression() throws RecognitionException {
         EObject current = null;
 
@@ -11126,13 +11394,13 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:3998:2: ( (otherlv_0= '(' this_XExpression_1= ruleXExpression otherlv_2= ')' ) )
-            // InternalSignalDSL.g:3999:2: (otherlv_0= '(' this_XExpression_1= ruleXExpression otherlv_2= ')' )
+            // InternalSignalDSL.g:4097:2: ( (otherlv_0= '(' this_XExpression_1= ruleXExpression otherlv_2= ')' ) )
+            // InternalSignalDSL.g:4098:2: (otherlv_0= '(' this_XExpression_1= ruleXExpression otherlv_2= ')' )
             {
-            // InternalSignalDSL.g:3999:2: (otherlv_0= '(' this_XExpression_1= ruleXExpression otherlv_2= ')' )
-            // InternalSignalDSL.g:4000:3: otherlv_0= '(' this_XExpression_1= ruleXExpression otherlv_2= ')'
+            // InternalSignalDSL.g:4098:2: (otherlv_0= '(' this_XExpression_1= ruleXExpression otherlv_2= ')' )
+            // InternalSignalDSL.g:4099:3: otherlv_0= '(' this_XExpression_1= ruleXExpression otherlv_2= ')'
             {
-            otherlv_0=(Token)match(input,27,FOLLOW_23); if (state.failed) return current;
+            otherlv_0=(Token)match(input,29,FOLLOW_26); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_0, grammarAccess.getXParenthesizedExpressionAccess().getLeftParenthesisKeyword_0());
@@ -11143,7 +11411,7 @@
               			newCompositeNode(grammarAccess.getXParenthesizedExpressionAccess().getXExpressionParserRuleCall_1());
               		
             }
-            pushFollow(FOLLOW_21);
+            pushFollow(FOLLOW_24);
             this_XExpression_1=ruleXExpression();
 
             state._fsp--;
@@ -11154,7 +11422,7 @@
               			afterParserOrEnumRuleCall();
               		
             }
-            otherlv_2=(Token)match(input,29,FOLLOW_2); if (state.failed) return current;
+            otherlv_2=(Token)match(input,31,FOLLOW_2); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_2, grammarAccess.getXParenthesizedExpressionAccess().getRightParenthesisKeyword_2());
@@ -11185,7 +11453,7 @@
 
 
     // $ANTLR start "entryRuleXIfExpression"
-    // InternalSignalDSL.g:4020:1: entryRuleXIfExpression returns [EObject current=null] : iv_ruleXIfExpression= ruleXIfExpression EOF ;
+    // InternalSignalDSL.g:4119:1: entryRuleXIfExpression returns [EObject current=null] : iv_ruleXIfExpression= ruleXIfExpression EOF ;
     public final EObject entryRuleXIfExpression() throws RecognitionException {
         EObject current = null;
 
@@ -11193,8 +11461,8 @@
 
 
         try {
-            // InternalSignalDSL.g:4020:54: (iv_ruleXIfExpression= ruleXIfExpression EOF )
-            // InternalSignalDSL.g:4021:2: iv_ruleXIfExpression= ruleXIfExpression EOF
+            // InternalSignalDSL.g:4119:54: (iv_ruleXIfExpression= ruleXIfExpression EOF )
+            // InternalSignalDSL.g:4120:2: iv_ruleXIfExpression= ruleXIfExpression EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXIfExpressionRule()); 
@@ -11225,7 +11493,7 @@
 
 
     // $ANTLR start "ruleXIfExpression"
-    // InternalSignalDSL.g:4027: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:4126: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;
 
@@ -11244,14 +11512,14 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:4033: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:4034: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:4132: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:4133: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:4034: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:4035: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:4133: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:4134: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:4035:3: ()
-            // InternalSignalDSL.g:4036:4: 
+            // InternalSignalDSL.g:4134:3: ()
+            // InternalSignalDSL.g:4135:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -11263,30 +11531,30 @@
 
             }
 
-            otherlv_1=(Token)match(input,68,FOLLOW_61); if (state.failed) return current;
+            otherlv_1=(Token)match(input,70,FOLLOW_64); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_1, grammarAccess.getXIfExpressionAccess().getIfKeyword_1());
               		
             }
-            otherlv_2=(Token)match(input,27,FOLLOW_23); if (state.failed) return current;
+            otherlv_2=(Token)match(input,29,FOLLOW_26); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_2, grammarAccess.getXIfExpressionAccess().getLeftParenthesisKeyword_2());
               		
             }
-            // InternalSignalDSL.g:4050:3: ( (lv_if_3_0= ruleXExpression ) )
-            // InternalSignalDSL.g:4051:4: (lv_if_3_0= ruleXExpression )
+            // InternalSignalDSL.g:4149:3: ( (lv_if_3_0= ruleXExpression ) )
+            // InternalSignalDSL.g:4150:4: (lv_if_3_0= ruleXExpression )
             {
-            // InternalSignalDSL.g:4051:4: (lv_if_3_0= ruleXExpression )
-            // InternalSignalDSL.g:4052:5: lv_if_3_0= ruleXExpression
+            // InternalSignalDSL.g:4150:4: (lv_if_3_0= ruleXExpression )
+            // InternalSignalDSL.g:4151:5: lv_if_3_0= ruleXExpression
             {
             if ( state.backtracking==0 ) {
 
               					newCompositeNode(grammarAccess.getXIfExpressionAccess().getIfXExpressionParserRuleCall_3_0());
               				
             }
-            pushFollow(FOLLOW_21);
+            pushFollow(FOLLOW_24);
             lv_if_3_0=ruleXExpression();
 
             state._fsp--;
@@ -11310,24 +11578,24 @@
 
             }
 
-            otherlv_4=(Token)match(input,29,FOLLOW_23); if (state.failed) return current;
+            otherlv_4=(Token)match(input,31,FOLLOW_26); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_4, grammarAccess.getXIfExpressionAccess().getRightParenthesisKeyword_4());
               		
             }
-            // InternalSignalDSL.g:4073:3: ( (lv_then_5_0= ruleXExpression ) )
-            // InternalSignalDSL.g:4074:4: (lv_then_5_0= ruleXExpression )
+            // InternalSignalDSL.g:4172:3: ( (lv_then_5_0= ruleXExpression ) )
+            // InternalSignalDSL.g:4173:4: (lv_then_5_0= ruleXExpression )
             {
-            // InternalSignalDSL.g:4074:4: (lv_then_5_0= ruleXExpression )
-            // InternalSignalDSL.g:4075:5: lv_then_5_0= ruleXExpression
+            // InternalSignalDSL.g:4173:4: (lv_then_5_0= ruleXExpression )
+            // InternalSignalDSL.g:4174:5: lv_then_5_0= ruleXExpression
             {
             if ( state.backtracking==0 ) {
 
               					newCompositeNode(grammarAccess.getXIfExpressionAccess().getThenXExpressionParserRuleCall_5_0());
               				
             }
-            pushFollow(FOLLOW_62);
+            pushFollow(FOLLOW_65);
             lv_then_5_0=ruleXExpression();
 
             state._fsp--;
@@ -11351,25 +11619,25 @@
 
             }
 
-            // InternalSignalDSL.g:4092:3: ( ( ( 'else' )=>otherlv_6= 'else' ) ( (lv_else_7_0= ruleXExpression ) ) )?
-            int alt68=2;
-            int LA68_0 = input.LA(1);
+            // InternalSignalDSL.g:4191:3: ( ( ( 'else' )=>otherlv_6= 'else' ) ( (lv_else_7_0= ruleXExpression ) ) )?
+            int alt70=2;
+            int LA70_0 = input.LA(1);
 
-            if ( (LA68_0==69) ) {
-                int LA68_1 = input.LA(2);
+            if ( (LA70_0==71) ) {
+                int LA70_1 = input.LA(2);
 
                 if ( (synpred31_InternalSignalDSL()) ) {
-                    alt68=1;
+                    alt70=1;
                 }
             }
-            switch (alt68) {
+            switch (alt70) {
                 case 1 :
-                    // InternalSignalDSL.g:4093:4: ( ( 'else' )=>otherlv_6= 'else' ) ( (lv_else_7_0= ruleXExpression ) )
+                    // InternalSignalDSL.g:4192:4: ( ( 'else' )=>otherlv_6= 'else' ) ( (lv_else_7_0= ruleXExpression ) )
                     {
-                    // InternalSignalDSL.g:4093:4: ( ( 'else' )=>otherlv_6= 'else' )
-                    // InternalSignalDSL.g:4094:5: ( 'else' )=>otherlv_6= 'else'
+                    // InternalSignalDSL.g:4192:4: ( ( 'else' )=>otherlv_6= 'else' )
+                    // InternalSignalDSL.g:4193:5: ( 'else' )=>otherlv_6= 'else'
                     {
-                    otherlv_6=(Token)match(input,69,FOLLOW_23); if (state.failed) return current;
+                    otherlv_6=(Token)match(input,71,FOLLOW_26); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       					newLeafNode(otherlv_6, grammarAccess.getXIfExpressionAccess().getElseKeyword_6_0());
@@ -11378,11 +11646,11 @@
 
                     }
 
-                    // InternalSignalDSL.g:4100:4: ( (lv_else_7_0= ruleXExpression ) )
-                    // InternalSignalDSL.g:4101:5: (lv_else_7_0= ruleXExpression )
+                    // InternalSignalDSL.g:4199:4: ( (lv_else_7_0= ruleXExpression ) )
+                    // InternalSignalDSL.g:4200:5: (lv_else_7_0= ruleXExpression )
                     {
-                    // InternalSignalDSL.g:4101:5: (lv_else_7_0= ruleXExpression )
-                    // InternalSignalDSL.g:4102:6: lv_else_7_0= ruleXExpression
+                    // InternalSignalDSL.g:4200:5: (lv_else_7_0= ruleXExpression )
+                    // InternalSignalDSL.g:4201:6: lv_else_7_0= ruleXExpression
                     {
                     if ( state.backtracking==0 ) {
 
@@ -11444,7 +11712,7 @@
 
 
     // $ANTLR start "entryRuleXSwitchExpression"
-    // InternalSignalDSL.g:4124:1: entryRuleXSwitchExpression returns [EObject current=null] : iv_ruleXSwitchExpression= ruleXSwitchExpression EOF ;
+    // InternalSignalDSL.g:4223:1: entryRuleXSwitchExpression returns [EObject current=null] : iv_ruleXSwitchExpression= ruleXSwitchExpression EOF ;
     public final EObject entryRuleXSwitchExpression() throws RecognitionException {
         EObject current = null;
 
@@ -11452,8 +11720,8 @@
 
 
         try {
-            // InternalSignalDSL.g:4124:58: (iv_ruleXSwitchExpression= ruleXSwitchExpression EOF )
-            // InternalSignalDSL.g:4125:2: iv_ruleXSwitchExpression= ruleXSwitchExpression EOF
+            // InternalSignalDSL.g:4223:58: (iv_ruleXSwitchExpression= ruleXSwitchExpression EOF )
+            // InternalSignalDSL.g:4224:2: iv_ruleXSwitchExpression= ruleXSwitchExpression EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXSwitchExpressionRule()); 
@@ -11484,7 +11752,7 @@
 
 
     // $ANTLR start "ruleXSwitchExpression"
-    // InternalSignalDSL.g:4131: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:4230: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;
 
@@ -11514,14 +11782,14 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:4137: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:4138: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:4236: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:4237: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:4138: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:4139: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:4237: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:4238: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:4139:3: ()
-            // InternalSignalDSL.g:4140:4: 
+            // InternalSignalDSL.g:4238:3: ()
+            // InternalSignalDSL.g:4239:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -11533,46 +11801,46 @@
 
             }
 
-            otherlv_1=(Token)match(input,70,FOLLOW_63); if (state.failed) return current;
+            otherlv_1=(Token)match(input,72,FOLLOW_66); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_1, grammarAccess.getXSwitchExpressionAccess().getSwitchKeyword_1());
               		
             }
-            // InternalSignalDSL.g:4150: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 alt70=2;
-            alt70 = dfa70.predict(input);
-            switch (alt70) {
+            // InternalSignalDSL.g:4249: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 alt72=2;
+            alt72 = dfa72.predict(input);
+            switch (alt72) {
                 case 1 :
-                    // InternalSignalDSL.g:4151:4: ( ( ( ( '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> (otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_switch_5_0= ruleXExpression ) ) otherlv_6= ')' )
+                    // InternalSignalDSL.g:4250:4: ( ( ( ( '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> (otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_switch_5_0= ruleXExpression ) ) otherlv_6= ')' )
                     {
-                    // InternalSignalDSL.g:4151:4: ( ( ( ( '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> (otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_switch_5_0= ruleXExpression ) ) otherlv_6= ')' )
-                    // InternalSignalDSL.g:4152:5: ( ( ( '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> (otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_switch_5_0= ruleXExpression ) ) otherlv_6= ')'
+                    // InternalSignalDSL.g:4250:4: ( ( ( ( '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> (otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_switch_5_0= ruleXExpression ) ) otherlv_6= ')' )
+                    // InternalSignalDSL.g:4251:5: ( ( ( '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> (otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_switch_5_0= ruleXExpression ) ) otherlv_6= ')'
                     {
-                    // InternalSignalDSL.g:4152:5: ( ( ( '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> (otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) )
-                    // InternalSignalDSL.g:4153:6: ( ( '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> (otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' )
+                    // InternalSignalDSL.g:4251:5: ( ( ( '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> (otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) )
+                    // InternalSignalDSL.g:4252:6: ( ( '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> (otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' )
                     {
-                    // InternalSignalDSL.g:4163:6: (otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' )
-                    // InternalSignalDSL.g:4164:7: otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':'
+                    // InternalSignalDSL.g:4262:6: (otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' )
+                    // InternalSignalDSL.g:4263:7: otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':'
                     {
-                    otherlv_2=(Token)match(input,27,FOLLOW_36); if (state.failed) return current;
+                    otherlv_2=(Token)match(input,29,FOLLOW_39); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       							newLeafNode(otherlv_2, grammarAccess.getXSwitchExpressionAccess().getLeftParenthesisKeyword_2_0_0_0_0());
                       						
                     }
-                    // InternalSignalDSL.g:4168:7: ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) )
-                    // InternalSignalDSL.g:4169:8: (lv_declaredParam_3_0= ruleJvmFormalParameter )
+                    // InternalSignalDSL.g:4267:7: ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) )
+                    // InternalSignalDSL.g:4268:8: (lv_declaredParam_3_0= ruleJvmFormalParameter )
                     {
-                    // InternalSignalDSL.g:4169:8: (lv_declaredParam_3_0= ruleJvmFormalParameter )
-                    // InternalSignalDSL.g:4170:9: lv_declaredParam_3_0= ruleJvmFormalParameter
+                    // InternalSignalDSL.g:4268:8: (lv_declaredParam_3_0= ruleJvmFormalParameter )
+                    // InternalSignalDSL.g:4269:9: lv_declaredParam_3_0= ruleJvmFormalParameter
                     {
                     if ( state.backtracking==0 ) {
 
                       									newCompositeNode(grammarAccess.getXSwitchExpressionAccess().getDeclaredParamJvmFormalParameterParserRuleCall_2_0_0_0_1_0());
                       								
                     }
-                    pushFollow(FOLLOW_64);
+                    pushFollow(FOLLOW_67);
                     lv_declaredParam_3_0=ruleJvmFormalParameter();
 
                     state._fsp--;
@@ -11596,7 +11864,7 @@
 
                     }
 
-                    otherlv_4=(Token)match(input,71,FOLLOW_23); if (state.failed) return current;
+                    otherlv_4=(Token)match(input,73,FOLLOW_26); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       							newLeafNode(otherlv_4, grammarAccess.getXSwitchExpressionAccess().getColonKeyword_2_0_0_0_2());
@@ -11608,18 +11876,18 @@
 
                     }
 
-                    // InternalSignalDSL.g:4193:5: ( (lv_switch_5_0= ruleXExpression ) )
-                    // InternalSignalDSL.g:4194:6: (lv_switch_5_0= ruleXExpression )
+                    // InternalSignalDSL.g:4292:5: ( (lv_switch_5_0= ruleXExpression ) )
+                    // InternalSignalDSL.g:4293:6: (lv_switch_5_0= ruleXExpression )
                     {
-                    // InternalSignalDSL.g:4194:6: (lv_switch_5_0= ruleXExpression )
-                    // InternalSignalDSL.g:4195:7: lv_switch_5_0= ruleXExpression
+                    // InternalSignalDSL.g:4293:6: (lv_switch_5_0= ruleXExpression )
+                    // InternalSignalDSL.g:4294:7: lv_switch_5_0= ruleXExpression
                     {
                     if ( state.backtracking==0 ) {
 
                       							newCompositeNode(grammarAccess.getXSwitchExpressionAccess().getSwitchXExpressionParserRuleCall_2_0_1_0());
                       						
                     }
-                    pushFollow(FOLLOW_21);
+                    pushFollow(FOLLOW_24);
                     lv_switch_5_0=ruleXExpression();
 
                     state._fsp--;
@@ -11643,7 +11911,7 @@
 
                     }
 
-                    otherlv_6=(Token)match(input,29,FOLLOW_5); if (state.failed) return current;
+                    otherlv_6=(Token)match(input,31,FOLLOW_5); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       					newLeafNode(otherlv_6, grammarAccess.getXSwitchExpressionAccess().getRightParenthesisKeyword_2_0_2());
@@ -11656,33 +11924,33 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:4218:4: ( ( ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' ) )? ( (lv_switch_9_0= ruleXExpression ) ) )
+                    // InternalSignalDSL.g:4317:4: ( ( ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' ) )? ( (lv_switch_9_0= ruleXExpression ) ) )
                     {
-                    // InternalSignalDSL.g:4218:4: ( ( ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' ) )? ( (lv_switch_9_0= ruleXExpression ) ) )
-                    // InternalSignalDSL.g:4219:5: ( ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' ) )? ( (lv_switch_9_0= ruleXExpression ) )
+                    // InternalSignalDSL.g:4317:4: ( ( ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' ) )? ( (lv_switch_9_0= ruleXExpression ) ) )
+                    // InternalSignalDSL.g:4318:5: ( ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' ) )? ( (lv_switch_9_0= ruleXExpression ) )
                     {
-                    // InternalSignalDSL.g:4219:5: ( ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' ) )?
-                    int alt69=2;
-                    alt69 = dfa69.predict(input);
-                    switch (alt69) {
+                    // InternalSignalDSL.g:4318:5: ( ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' ) )?
+                    int alt71=2;
+                    alt71 = dfa71.predict(input);
+                    switch (alt71) {
                         case 1 :
-                            // InternalSignalDSL.g:4220:6: ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' )
+                            // InternalSignalDSL.g:4319:6: ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' )
                             {
-                            // InternalSignalDSL.g:4229:6: ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' )
-                            // InternalSignalDSL.g:4230:7: ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':'
+                            // InternalSignalDSL.g:4328:6: ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' )
+                            // InternalSignalDSL.g:4329:7: ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':'
                             {
-                            // InternalSignalDSL.g:4230:7: ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) )
-                            // InternalSignalDSL.g:4231:8: (lv_declaredParam_7_0= ruleJvmFormalParameter )
+                            // InternalSignalDSL.g:4329:7: ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) )
+                            // InternalSignalDSL.g:4330:8: (lv_declaredParam_7_0= ruleJvmFormalParameter )
                             {
-                            // InternalSignalDSL.g:4231:8: (lv_declaredParam_7_0= ruleJvmFormalParameter )
-                            // InternalSignalDSL.g:4232:9: lv_declaredParam_7_0= ruleJvmFormalParameter
+                            // InternalSignalDSL.g:4330:8: (lv_declaredParam_7_0= ruleJvmFormalParameter )
+                            // InternalSignalDSL.g:4331:9: lv_declaredParam_7_0= ruleJvmFormalParameter
                             {
                             if ( state.backtracking==0 ) {
 
                               									newCompositeNode(grammarAccess.getXSwitchExpressionAccess().getDeclaredParamJvmFormalParameterParserRuleCall_2_1_0_0_0_0());
                               								
                             }
-                            pushFollow(FOLLOW_64);
+                            pushFollow(FOLLOW_67);
                             lv_declaredParam_7_0=ruleJvmFormalParameter();
 
                             state._fsp--;
@@ -11706,7 +11974,7 @@
 
                             }
 
-                            otherlv_8=(Token)match(input,71,FOLLOW_23); if (state.failed) return current;
+                            otherlv_8=(Token)match(input,73,FOLLOW_26); if (state.failed) return current;
                             if ( state.backtracking==0 ) {
 
                               							newLeafNode(otherlv_8, grammarAccess.getXSwitchExpressionAccess().getColonKeyword_2_1_0_0_1());
@@ -11721,11 +11989,11 @@
 
                     }
 
-                    // InternalSignalDSL.g:4255:5: ( (lv_switch_9_0= ruleXExpression ) )
-                    // InternalSignalDSL.g:4256:6: (lv_switch_9_0= ruleXExpression )
+                    // InternalSignalDSL.g:4354:5: ( (lv_switch_9_0= ruleXExpression ) )
+                    // InternalSignalDSL.g:4355:6: (lv_switch_9_0= ruleXExpression )
                     {
-                    // InternalSignalDSL.g:4256:6: (lv_switch_9_0= ruleXExpression )
-                    // InternalSignalDSL.g:4257:7: lv_switch_9_0= ruleXExpression
+                    // InternalSignalDSL.g:4355:6: (lv_switch_9_0= ruleXExpression )
+                    // InternalSignalDSL.g:4356:7: lv_switch_9_0= ruleXExpression
                     {
                     if ( state.backtracking==0 ) {
 
@@ -11765,36 +12033,36 @@
 
             }
 
-            otherlv_10=(Token)match(input,14,FOLLOW_65); if (state.failed) return current;
+            otherlv_10=(Token)match(input,14,FOLLOW_68); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_10, grammarAccess.getXSwitchExpressionAccess().getLeftCurlyBracketKeyword_3());
               		
             }
-            // InternalSignalDSL.g:4280:3: ( (lv_cases_11_0= ruleXCasePart ) )*
-            loop71:
+            // InternalSignalDSL.g:4379:3: ( (lv_cases_11_0= ruleXCasePart ) )*
+            loop73:
             do {
-                int alt71=2;
-                int LA71_0 = input.LA(1);
+                int alt73=2;
+                int LA73_0 = input.LA(1);
 
-                if ( (LA71_0==RULE_ID||(LA71_0>=27 && LA71_0<=28)||LA71_0==52||LA71_0==71||LA71_0==73) ) {
-                    alt71=1;
+                if ( (LA73_0==RULE_ID||(LA73_0>=29 && LA73_0<=30)||LA73_0==54||LA73_0==73||LA73_0==75) ) {
+                    alt73=1;
                 }
 
 
-                switch (alt71) {
+                switch (alt73) {
             	case 1 :
-            	    // InternalSignalDSL.g:4281:4: (lv_cases_11_0= ruleXCasePart )
+            	    // InternalSignalDSL.g:4380:4: (lv_cases_11_0= ruleXCasePart )
             	    {
-            	    // InternalSignalDSL.g:4281:4: (lv_cases_11_0= ruleXCasePart )
-            	    // InternalSignalDSL.g:4282:5: lv_cases_11_0= ruleXCasePart
+            	    // InternalSignalDSL.g:4380:4: (lv_cases_11_0= ruleXCasePart )
+            	    // InternalSignalDSL.g:4381:5: lv_cases_11_0= ruleXCasePart
             	    {
             	    if ( state.backtracking==0 ) {
 
             	      					newCompositeNode(grammarAccess.getXSwitchExpressionAccess().getCasesXCasePartParserRuleCall_4_0());
             	      				
             	    }
-            	    pushFollow(FOLLOW_65);
+            	    pushFollow(FOLLOW_68);
             	    lv_cases_11_0=ruleXCasePart();
 
             	    state._fsp--;
@@ -11820,45 +12088,45 @@
             	    break;
 
             	default :
-            	    break loop71;
+            	    break loop73;
                 }
             } while (true);
 
-            // InternalSignalDSL.g:4299:3: (otherlv_12= 'default' otherlv_13= ':' ( (lv_default_14_0= ruleXExpression ) ) )?
-            int alt72=2;
-            int LA72_0 = input.LA(1);
+            // InternalSignalDSL.g:4398:3: (otherlv_12= 'default' otherlv_13= ':' ( (lv_default_14_0= ruleXExpression ) ) )?
+            int alt74=2;
+            int LA74_0 = input.LA(1);
 
-            if ( (LA72_0==72) ) {
-                alt72=1;
+            if ( (LA74_0==74) ) {
+                alt74=1;
             }
-            switch (alt72) {
+            switch (alt74) {
                 case 1 :
-                    // InternalSignalDSL.g:4300:4: otherlv_12= 'default' otherlv_13= ':' ( (lv_default_14_0= ruleXExpression ) )
+                    // InternalSignalDSL.g:4399:4: otherlv_12= 'default' otherlv_13= ':' ( (lv_default_14_0= ruleXExpression ) )
                     {
-                    otherlv_12=(Token)match(input,72,FOLLOW_64); if (state.failed) return current;
+                    otherlv_12=(Token)match(input,74,FOLLOW_67); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				newLeafNode(otherlv_12, grammarAccess.getXSwitchExpressionAccess().getDefaultKeyword_5_0());
                       			
                     }
-                    otherlv_13=(Token)match(input,71,FOLLOW_23); if (state.failed) return current;
+                    otherlv_13=(Token)match(input,73,FOLLOW_26); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				newLeafNode(otherlv_13, grammarAccess.getXSwitchExpressionAccess().getColonKeyword_5_1());
                       			
                     }
-                    // InternalSignalDSL.g:4308:4: ( (lv_default_14_0= ruleXExpression ) )
-                    // InternalSignalDSL.g:4309:5: (lv_default_14_0= ruleXExpression )
+                    // InternalSignalDSL.g:4407:4: ( (lv_default_14_0= ruleXExpression ) )
+                    // InternalSignalDSL.g:4408:5: (lv_default_14_0= ruleXExpression )
                     {
-                    // InternalSignalDSL.g:4309:5: (lv_default_14_0= ruleXExpression )
-                    // InternalSignalDSL.g:4310:6: lv_default_14_0= ruleXExpression
+                    // InternalSignalDSL.g:4408:5: (lv_default_14_0= ruleXExpression )
+                    // InternalSignalDSL.g:4409:6: lv_default_14_0= ruleXExpression
                     {
                     if ( state.backtracking==0 ) {
 
                       						newCompositeNode(grammarAccess.getXSwitchExpressionAccess().getDefaultXExpressionParserRuleCall_5_2_0());
                       					
                     }
-                    pushFollow(FOLLOW_66);
+                    pushFollow(FOLLOW_69);
                     lv_default_14_0=ruleXExpression();
 
                     state._fsp--;
@@ -11919,7 +12187,7 @@
 
 
     // $ANTLR start "entryRuleXCasePart"
-    // InternalSignalDSL.g:4336:1: entryRuleXCasePart returns [EObject current=null] : iv_ruleXCasePart= ruleXCasePart EOF ;
+    // InternalSignalDSL.g:4435:1: entryRuleXCasePart returns [EObject current=null] : iv_ruleXCasePart= ruleXCasePart EOF ;
     public final EObject entryRuleXCasePart() throws RecognitionException {
         EObject current = null;
 
@@ -11927,8 +12195,8 @@
 
 
         try {
-            // InternalSignalDSL.g:4336:50: (iv_ruleXCasePart= ruleXCasePart EOF )
-            // InternalSignalDSL.g:4337:2: iv_ruleXCasePart= ruleXCasePart EOF
+            // InternalSignalDSL.g:4435:50: (iv_ruleXCasePart= ruleXCasePart EOF )
+            // InternalSignalDSL.g:4436:2: iv_ruleXCasePart= ruleXCasePart EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXCasePartRule()); 
@@ -11959,7 +12227,7 @@
 
 
     // $ANTLR start "ruleXCasePart"
-    // InternalSignalDSL.g:4343: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:4442: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;
 
@@ -11977,14 +12245,14 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:4349: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:4350: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:4448: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:4449: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:4350: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:4351: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:4449: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:4450: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:4351:3: ()
-            // InternalSignalDSL.g:4352:4: 
+            // InternalSignalDSL.g:4450:3: ()
+            // InternalSignalDSL.g:4451:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -11996,26 +12264,26 @@
 
             }
 
-            // InternalSignalDSL.g:4358:3: ( (lv_typeGuard_1_0= ruleJvmTypeReference ) )?
-            int alt73=2;
-            int LA73_0 = input.LA(1);
+            // InternalSignalDSL.g:4457:3: ( (lv_typeGuard_1_0= ruleJvmTypeReference ) )?
+            int alt75=2;
+            int LA75_0 = input.LA(1);
 
-            if ( (LA73_0==RULE_ID||LA73_0==27||LA73_0==52) ) {
-                alt73=1;
+            if ( (LA75_0==RULE_ID||LA75_0==29||LA75_0==54) ) {
+                alt75=1;
             }
-            switch (alt73) {
+            switch (alt75) {
                 case 1 :
-                    // InternalSignalDSL.g:4359:4: (lv_typeGuard_1_0= ruleJvmTypeReference )
+                    // InternalSignalDSL.g:4458:4: (lv_typeGuard_1_0= ruleJvmTypeReference )
                     {
-                    // InternalSignalDSL.g:4359:4: (lv_typeGuard_1_0= ruleJvmTypeReference )
-                    // InternalSignalDSL.g:4360:5: lv_typeGuard_1_0= ruleJvmTypeReference
+                    // InternalSignalDSL.g:4458:4: (lv_typeGuard_1_0= ruleJvmTypeReference )
+                    // InternalSignalDSL.g:4459:5: lv_typeGuard_1_0= ruleJvmTypeReference
                     {
                     if ( state.backtracking==0 ) {
 
                       					newCompositeNode(grammarAccess.getXCasePartAccess().getTypeGuardJvmTypeReferenceParserRuleCall_1_0());
                       				
                     }
-                    pushFollow(FOLLOW_67);
+                    pushFollow(FOLLOW_70);
                     lv_typeGuard_1_0=ruleJvmTypeReference();
 
                     state._fsp--;
@@ -12042,35 +12310,35 @@
 
             }
 
-            // InternalSignalDSL.g:4377:3: (otherlv_2= 'case' ( (lv_case_3_0= ruleXExpression ) ) )?
-            int alt74=2;
-            int LA74_0 = input.LA(1);
+            // InternalSignalDSL.g:4476:3: (otherlv_2= 'case' ( (lv_case_3_0= ruleXExpression ) ) )?
+            int alt76=2;
+            int LA76_0 = input.LA(1);
 
-            if ( (LA74_0==73) ) {
-                alt74=1;
+            if ( (LA76_0==75) ) {
+                alt76=1;
             }
-            switch (alt74) {
+            switch (alt76) {
                 case 1 :
-                    // InternalSignalDSL.g:4378:4: otherlv_2= 'case' ( (lv_case_3_0= ruleXExpression ) )
+                    // InternalSignalDSL.g:4477:4: otherlv_2= 'case' ( (lv_case_3_0= ruleXExpression ) )
                     {
-                    otherlv_2=(Token)match(input,73,FOLLOW_23); if (state.failed) return current;
+                    otherlv_2=(Token)match(input,75,FOLLOW_26); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				newLeafNode(otherlv_2, grammarAccess.getXCasePartAccess().getCaseKeyword_2_0());
                       			
                     }
-                    // InternalSignalDSL.g:4382:4: ( (lv_case_3_0= ruleXExpression ) )
-                    // InternalSignalDSL.g:4383:5: (lv_case_3_0= ruleXExpression )
+                    // InternalSignalDSL.g:4481:4: ( (lv_case_3_0= ruleXExpression ) )
+                    // InternalSignalDSL.g:4482:5: (lv_case_3_0= ruleXExpression )
                     {
-                    // InternalSignalDSL.g:4383:5: (lv_case_3_0= ruleXExpression )
-                    // InternalSignalDSL.g:4384:6: lv_case_3_0= ruleXExpression
+                    // InternalSignalDSL.g:4482:5: (lv_case_3_0= ruleXExpression )
+                    // InternalSignalDSL.g:4483:6: lv_case_3_0= ruleXExpression
                     {
                     if ( state.backtracking==0 ) {
 
                       						newCompositeNode(grammarAccess.getXCasePartAccess().getCaseXExpressionParserRuleCall_2_1_0());
                       					
                     }
-                    pushFollow(FOLLOW_68);
+                    pushFollow(FOLLOW_71);
                     lv_case_3_0=ruleXExpression();
 
                     state._fsp--;
@@ -12100,41 +12368,41 @@
 
             }
 
-            // InternalSignalDSL.g:4402:3: ( (otherlv_4= ':' ( (lv_then_5_0= ruleXExpression ) ) ) | ( (lv_fallThrough_6_0= ',' ) ) )
-            int alt75=2;
-            int LA75_0 = input.LA(1);
+            // InternalSignalDSL.g:4501:3: ( (otherlv_4= ':' ( (lv_then_5_0= ruleXExpression ) ) ) | ( (lv_fallThrough_6_0= ',' ) ) )
+            int alt77=2;
+            int LA77_0 = input.LA(1);
 
-            if ( (LA75_0==71) ) {
-                alt75=1;
+            if ( (LA77_0==73) ) {
+                alt77=1;
             }
-            else if ( (LA75_0==28) ) {
-                alt75=2;
+            else if ( (LA77_0==30) ) {
+                alt77=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 75, 0, input);
+                    new NoViableAltException("", 77, 0, input);
 
                 throw nvae;
             }
-            switch (alt75) {
+            switch (alt77) {
                 case 1 :
-                    // InternalSignalDSL.g:4403:4: (otherlv_4= ':' ( (lv_then_5_0= ruleXExpression ) ) )
+                    // InternalSignalDSL.g:4502:4: (otherlv_4= ':' ( (lv_then_5_0= ruleXExpression ) ) )
                     {
-                    // InternalSignalDSL.g:4403:4: (otherlv_4= ':' ( (lv_then_5_0= ruleXExpression ) ) )
-                    // InternalSignalDSL.g:4404:5: otherlv_4= ':' ( (lv_then_5_0= ruleXExpression ) )
+                    // InternalSignalDSL.g:4502:4: (otherlv_4= ':' ( (lv_then_5_0= ruleXExpression ) ) )
+                    // InternalSignalDSL.g:4503:5: otherlv_4= ':' ( (lv_then_5_0= ruleXExpression ) )
                     {
-                    otherlv_4=(Token)match(input,71,FOLLOW_23); if (state.failed) return current;
+                    otherlv_4=(Token)match(input,73,FOLLOW_26); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       					newLeafNode(otherlv_4, grammarAccess.getXCasePartAccess().getColonKeyword_3_0_0());
                       				
                     }
-                    // InternalSignalDSL.g:4408:5: ( (lv_then_5_0= ruleXExpression ) )
-                    // InternalSignalDSL.g:4409:6: (lv_then_5_0= ruleXExpression )
+                    // InternalSignalDSL.g:4507:5: ( (lv_then_5_0= ruleXExpression ) )
+                    // InternalSignalDSL.g:4508:6: (lv_then_5_0= ruleXExpression )
                     {
-                    // InternalSignalDSL.g:4409:6: (lv_then_5_0= ruleXExpression )
-                    // InternalSignalDSL.g:4410:7: lv_then_5_0= ruleXExpression
+                    // InternalSignalDSL.g:4508:6: (lv_then_5_0= ruleXExpression )
+                    // InternalSignalDSL.g:4509:7: lv_then_5_0= ruleXExpression
                     {
                     if ( state.backtracking==0 ) {
 
@@ -12172,15 +12440,15 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:4429:4: ( (lv_fallThrough_6_0= ',' ) )
+                    // InternalSignalDSL.g:4528:4: ( (lv_fallThrough_6_0= ',' ) )
                     {
-                    // InternalSignalDSL.g:4429:4: ( (lv_fallThrough_6_0= ',' ) )
-                    // InternalSignalDSL.g:4430:5: (lv_fallThrough_6_0= ',' )
+                    // InternalSignalDSL.g:4528:4: ( (lv_fallThrough_6_0= ',' ) )
+                    // InternalSignalDSL.g:4529:5: (lv_fallThrough_6_0= ',' )
                     {
-                    // InternalSignalDSL.g:4430:5: (lv_fallThrough_6_0= ',' )
-                    // InternalSignalDSL.g:4431:6: lv_fallThrough_6_0= ','
+                    // InternalSignalDSL.g:4529:5: (lv_fallThrough_6_0= ',' )
+                    // InternalSignalDSL.g:4530:6: lv_fallThrough_6_0= ','
                     {
-                    lv_fallThrough_6_0=(Token)match(input,28,FOLLOW_2); if (state.failed) return current;
+                    lv_fallThrough_6_0=(Token)match(input,30,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       						newLeafNode(lv_fallThrough_6_0, grammarAccess.getXCasePartAccess().getFallThroughCommaKeyword_3_1_0());
@@ -12231,7 +12499,7 @@
 
 
     // $ANTLR start "entryRuleXForLoopExpression"
-    // InternalSignalDSL.g:4448:1: entryRuleXForLoopExpression returns [EObject current=null] : iv_ruleXForLoopExpression= ruleXForLoopExpression EOF ;
+    // InternalSignalDSL.g:4547:1: entryRuleXForLoopExpression returns [EObject current=null] : iv_ruleXForLoopExpression= ruleXForLoopExpression EOF ;
     public final EObject entryRuleXForLoopExpression() throws RecognitionException {
         EObject current = null;
 
@@ -12239,8 +12507,8 @@
 
 
         try {
-            // InternalSignalDSL.g:4448:59: (iv_ruleXForLoopExpression= ruleXForLoopExpression EOF )
-            // InternalSignalDSL.g:4449:2: iv_ruleXForLoopExpression= ruleXForLoopExpression EOF
+            // InternalSignalDSL.g:4547:59: (iv_ruleXForLoopExpression= ruleXForLoopExpression EOF )
+            // InternalSignalDSL.g:4548:2: iv_ruleXForLoopExpression= ruleXForLoopExpression EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXForLoopExpressionRule()); 
@@ -12271,7 +12539,7 @@
 
 
     // $ANTLR start "ruleXForLoopExpression"
-    // InternalSignalDSL.g:4455: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:4554: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;
 
@@ -12290,20 +12558,20 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:4461: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:4462: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:4560: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:4561: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:4462: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:4463: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:4561: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:4562: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:4463:3: ( ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( () otherlv_1= 'for' otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) )
-            // InternalSignalDSL.g:4464:4: ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( () otherlv_1= 'for' otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' )
+            // InternalSignalDSL.g:4562:3: ( ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( () otherlv_1= 'for' otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) )
+            // InternalSignalDSL.g:4563:4: ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( () otherlv_1= 'for' otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' )
             {
-            // InternalSignalDSL.g:4477:4: ( () otherlv_1= 'for' otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' )
-            // InternalSignalDSL.g:4478:5: () otherlv_1= 'for' otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':'
+            // InternalSignalDSL.g:4576:4: ( () otherlv_1= 'for' otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' )
+            // InternalSignalDSL.g:4577:5: () otherlv_1= 'for' otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':'
             {
-            // InternalSignalDSL.g:4478:5: ()
-            // InternalSignalDSL.g:4479:6: 
+            // InternalSignalDSL.g:4577:5: ()
+            // InternalSignalDSL.g:4578:6: 
             {
             if ( state.backtracking==0 ) {
 
@@ -12315,30 +12583,30 @@
 
             }
 
-            otherlv_1=(Token)match(input,18,FOLLOW_61); if (state.failed) return current;
+            otherlv_1=(Token)match(input,18,FOLLOW_64); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               					newLeafNode(otherlv_1, grammarAccess.getXForLoopExpressionAccess().getForKeyword_0_0_1());
               				
             }
-            otherlv_2=(Token)match(input,27,FOLLOW_36); if (state.failed) return current;
+            otherlv_2=(Token)match(input,29,FOLLOW_39); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               					newLeafNode(otherlv_2, grammarAccess.getXForLoopExpressionAccess().getLeftParenthesisKeyword_0_0_2());
               				
             }
-            // InternalSignalDSL.g:4493:5: ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) )
-            // InternalSignalDSL.g:4494:6: (lv_declaredParam_3_0= ruleJvmFormalParameter )
+            // InternalSignalDSL.g:4592:5: ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) )
+            // InternalSignalDSL.g:4593:6: (lv_declaredParam_3_0= ruleJvmFormalParameter )
             {
-            // InternalSignalDSL.g:4494:6: (lv_declaredParam_3_0= ruleJvmFormalParameter )
-            // InternalSignalDSL.g:4495:7: lv_declaredParam_3_0= ruleJvmFormalParameter
+            // InternalSignalDSL.g:4593:6: (lv_declaredParam_3_0= ruleJvmFormalParameter )
+            // InternalSignalDSL.g:4594:7: lv_declaredParam_3_0= ruleJvmFormalParameter
             {
             if ( state.backtracking==0 ) {
 
               							newCompositeNode(grammarAccess.getXForLoopExpressionAccess().getDeclaredParamJvmFormalParameterParserRuleCall_0_0_3_0());
               						
             }
-            pushFollow(FOLLOW_64);
+            pushFollow(FOLLOW_67);
             lv_declaredParam_3_0=ruleJvmFormalParameter();
 
             state._fsp--;
@@ -12362,7 +12630,7 @@
 
             }
 
-            otherlv_4=(Token)match(input,71,FOLLOW_23); if (state.failed) return current;
+            otherlv_4=(Token)match(input,73,FOLLOW_26); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               					newLeafNode(otherlv_4, grammarAccess.getXForLoopExpressionAccess().getColonKeyword_0_0_4());
@@ -12374,18 +12642,18 @@
 
             }
 
-            // InternalSignalDSL.g:4518:3: ( (lv_forExpression_5_0= ruleXExpression ) )
-            // InternalSignalDSL.g:4519:4: (lv_forExpression_5_0= ruleXExpression )
+            // InternalSignalDSL.g:4617:3: ( (lv_forExpression_5_0= ruleXExpression ) )
+            // InternalSignalDSL.g:4618:4: (lv_forExpression_5_0= ruleXExpression )
             {
-            // InternalSignalDSL.g:4519:4: (lv_forExpression_5_0= ruleXExpression )
-            // InternalSignalDSL.g:4520:5: lv_forExpression_5_0= ruleXExpression
+            // InternalSignalDSL.g:4618:4: (lv_forExpression_5_0= ruleXExpression )
+            // InternalSignalDSL.g:4619:5: lv_forExpression_5_0= ruleXExpression
             {
             if ( state.backtracking==0 ) {
 
               					newCompositeNode(grammarAccess.getXForLoopExpressionAccess().getForExpressionXExpressionParserRuleCall_1_0());
               				
             }
-            pushFollow(FOLLOW_21);
+            pushFollow(FOLLOW_24);
             lv_forExpression_5_0=ruleXExpression();
 
             state._fsp--;
@@ -12409,17 +12677,17 @@
 
             }
 
-            otherlv_6=(Token)match(input,29,FOLLOW_23); if (state.failed) return current;
+            otherlv_6=(Token)match(input,31,FOLLOW_26); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_6, grammarAccess.getXForLoopExpressionAccess().getRightParenthesisKeyword_2());
               		
             }
-            // InternalSignalDSL.g:4541:3: ( (lv_eachExpression_7_0= ruleXExpression ) )
-            // InternalSignalDSL.g:4542:4: (lv_eachExpression_7_0= ruleXExpression )
+            // InternalSignalDSL.g:4640:3: ( (lv_eachExpression_7_0= ruleXExpression ) )
+            // InternalSignalDSL.g:4641:4: (lv_eachExpression_7_0= ruleXExpression )
             {
-            // InternalSignalDSL.g:4542:4: (lv_eachExpression_7_0= ruleXExpression )
-            // InternalSignalDSL.g:4543:5: lv_eachExpression_7_0= ruleXExpression
+            // InternalSignalDSL.g:4641:4: (lv_eachExpression_7_0= ruleXExpression )
+            // InternalSignalDSL.g:4642:5: lv_eachExpression_7_0= ruleXExpression
             {
             if ( state.backtracking==0 ) {
 
@@ -12475,7 +12743,7 @@
 
 
     // $ANTLR start "entryRuleXBasicForLoopExpression"
-    // InternalSignalDSL.g:4564:1: entryRuleXBasicForLoopExpression returns [EObject current=null] : iv_ruleXBasicForLoopExpression= ruleXBasicForLoopExpression EOF ;
+    // InternalSignalDSL.g:4663:1: entryRuleXBasicForLoopExpression returns [EObject current=null] : iv_ruleXBasicForLoopExpression= ruleXBasicForLoopExpression EOF ;
     public final EObject entryRuleXBasicForLoopExpression() throws RecognitionException {
         EObject current = null;
 
@@ -12483,8 +12751,8 @@
 
 
         try {
-            // InternalSignalDSL.g:4564:64: (iv_ruleXBasicForLoopExpression= ruleXBasicForLoopExpression EOF )
-            // InternalSignalDSL.g:4565:2: iv_ruleXBasicForLoopExpression= ruleXBasicForLoopExpression EOF
+            // InternalSignalDSL.g:4663:64: (iv_ruleXBasicForLoopExpression= ruleXBasicForLoopExpression EOF )
+            // InternalSignalDSL.g:4664:2: iv_ruleXBasicForLoopExpression= ruleXBasicForLoopExpression EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXBasicForLoopExpressionRule()); 
@@ -12515,7 +12783,7 @@
 
 
     // $ANTLR start "ruleXBasicForLoopExpression"
-    // InternalSignalDSL.g:4571: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:4670: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;
 
@@ -12543,14 +12811,14 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:4577: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:4578: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:4676: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:4677: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:4578: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:4579: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:4677: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:4678: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:4579:3: ()
-            // InternalSignalDSL.g:4580:4: 
+            // InternalSignalDSL.g:4678:3: ()
+            // InternalSignalDSL.g:4679:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -12562,41 +12830,41 @@
 
             }
 
-            otherlv_1=(Token)match(input,18,FOLLOW_61); if (state.failed) return current;
+            otherlv_1=(Token)match(input,18,FOLLOW_64); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_1, grammarAccess.getXBasicForLoopExpressionAccess().getForKeyword_1());
               		
             }
-            otherlv_2=(Token)match(input,27,FOLLOW_69); if (state.failed) return current;
+            otherlv_2=(Token)match(input,29,FOLLOW_72); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_2, grammarAccess.getXBasicForLoopExpressionAccess().getLeftParenthesisKeyword_2());
               		
             }
-            // InternalSignalDSL.g:4594:3: ( ( (lv_initExpressions_3_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_4= ',' ( (lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration ) ) )* )?
-            int alt77=2;
-            int LA77_0 = input.LA(1);
+            // InternalSignalDSL.g:4693:3: ( ( (lv_initExpressions_3_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_4= ',' ( (lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration ) ) )* )?
+            int alt79=2;
+            int LA79_0 = input.LA(1);
 
-            if ( ((LA77_0>=RULE_ID && LA77_0<=RULE_DECIMAL)||LA77_0==14||LA77_0==18||(LA77_0>=20 && LA77_0<=22)||LA77_0==27||(LA77_0>=31 && LA77_0<=32)||LA77_0==39||(LA77_0>=55 && LA77_0<=56)||LA77_0==60||LA77_0==68||LA77_0==70||(LA77_0>=74 && LA77_0<=87)||LA77_0==89) ) {
-                alt77=1;
+            if ( ((LA79_0>=RULE_ID && LA79_0<=RULE_DECIMAL)||LA79_0==14||LA79_0==18||(LA79_0>=22 && LA79_0<=24)||LA79_0==29||(LA79_0>=33 && LA79_0<=34)||LA79_0==41||(LA79_0>=57 && LA79_0<=58)||LA79_0==62||LA79_0==70||LA79_0==72||(LA79_0>=76 && LA79_0<=89)||LA79_0==91) ) {
+                alt79=1;
             }
-            switch (alt77) {
+            switch (alt79) {
                 case 1 :
-                    // InternalSignalDSL.g:4595:4: ( (lv_initExpressions_3_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_4= ',' ( (lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration ) ) )*
+                    // InternalSignalDSL.g:4694:4: ( (lv_initExpressions_3_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_4= ',' ( (lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration ) ) )*
                     {
-                    // InternalSignalDSL.g:4595:4: ( (lv_initExpressions_3_0= ruleXExpressionOrVarDeclaration ) )
-                    // InternalSignalDSL.g:4596:5: (lv_initExpressions_3_0= ruleXExpressionOrVarDeclaration )
+                    // InternalSignalDSL.g:4694:4: ( (lv_initExpressions_3_0= ruleXExpressionOrVarDeclaration ) )
+                    // InternalSignalDSL.g:4695:5: (lv_initExpressions_3_0= ruleXExpressionOrVarDeclaration )
                     {
-                    // InternalSignalDSL.g:4596:5: (lv_initExpressions_3_0= ruleXExpressionOrVarDeclaration )
-                    // InternalSignalDSL.g:4597:6: lv_initExpressions_3_0= ruleXExpressionOrVarDeclaration
+                    // InternalSignalDSL.g:4695:5: (lv_initExpressions_3_0= ruleXExpressionOrVarDeclaration )
+                    // InternalSignalDSL.g:4696:6: lv_initExpressions_3_0= ruleXExpressionOrVarDeclaration
                     {
                     if ( state.backtracking==0 ) {
 
                       						newCompositeNode(grammarAccess.getXBasicForLoopExpressionAccess().getInitExpressionsXExpressionOrVarDeclarationParserRuleCall_3_0_0());
                       					
                     }
-                    pushFollow(FOLLOW_70);
+                    pushFollow(FOLLOW_73);
                     lv_initExpressions_3_0=ruleXExpressionOrVarDeclaration();
 
                     state._fsp--;
@@ -12620,39 +12888,39 @@
 
                     }
 
-                    // InternalSignalDSL.g:4614:4: (otherlv_4= ',' ( (lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration ) ) )*
-                    loop76:
+                    // InternalSignalDSL.g:4713:4: (otherlv_4= ',' ( (lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration ) ) )*
+                    loop78:
                     do {
-                        int alt76=2;
-                        int LA76_0 = input.LA(1);
+                        int alt78=2;
+                        int LA78_0 = input.LA(1);
 
-                        if ( (LA76_0==28) ) {
-                            alt76=1;
+                        if ( (LA78_0==30) ) {
+                            alt78=1;
                         }
 
 
-                        switch (alt76) {
+                        switch (alt78) {
                     	case 1 :
-                    	    // InternalSignalDSL.g:4615:5: otherlv_4= ',' ( (lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration ) )
+                    	    // InternalSignalDSL.g:4714:5: otherlv_4= ',' ( (lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration ) )
                     	    {
-                    	    otherlv_4=(Token)match(input,28,FOLLOW_71); if (state.failed) return current;
+                    	    otherlv_4=(Token)match(input,30,FOLLOW_74); if (state.failed) return current;
                     	    if ( state.backtracking==0 ) {
 
                     	      					newLeafNode(otherlv_4, grammarAccess.getXBasicForLoopExpressionAccess().getCommaKeyword_3_1_0());
                     	      				
                     	    }
-                    	    // InternalSignalDSL.g:4619:5: ( (lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration ) )
-                    	    // InternalSignalDSL.g:4620:6: (lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration )
+                    	    // InternalSignalDSL.g:4718:5: ( (lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration ) )
+                    	    // InternalSignalDSL.g:4719:6: (lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration )
                     	    {
-                    	    // InternalSignalDSL.g:4620:6: (lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration )
-                    	    // InternalSignalDSL.g:4621:7: lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration
+                    	    // InternalSignalDSL.g:4719:6: (lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration )
+                    	    // InternalSignalDSL.g:4720:7: lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration
                     	    {
                     	    if ( state.backtracking==0 ) {
 
                     	      							newCompositeNode(grammarAccess.getXBasicForLoopExpressionAccess().getInitExpressionsXExpressionOrVarDeclarationParserRuleCall_3_1_1_0());
                     	      						
                     	    }
-                    	    pushFollow(FOLLOW_70);
+                    	    pushFollow(FOLLOW_73);
                     	    lv_initExpressions_5_0=ruleXExpressionOrVarDeclaration();
 
                     	    state._fsp--;
@@ -12681,7 +12949,7 @@
                     	    break;
 
                     	default :
-                    	    break loop76;
+                    	    break loop78;
                         }
                     } while (true);
 
@@ -12691,32 +12959,32 @@
 
             }
 
-            otherlv_6=(Token)match(input,25,FOLLOW_72); if (state.failed) return current;
+            otherlv_6=(Token)match(input,27,FOLLOW_75); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_6, grammarAccess.getXBasicForLoopExpressionAccess().getSemicolonKeyword_4());
               		
             }
-            // InternalSignalDSL.g:4644:3: ( (lv_expression_7_0= ruleXExpression ) )?
-            int alt78=2;
-            int LA78_0 = input.LA(1);
+            // InternalSignalDSL.g:4743:3: ( (lv_expression_7_0= ruleXExpression ) )?
+            int alt80=2;
+            int LA80_0 = input.LA(1);
 
-            if ( ((LA78_0>=RULE_ID && LA78_0<=RULE_DECIMAL)||LA78_0==14||LA78_0==18||(LA78_0>=20 && LA78_0<=22)||LA78_0==27||(LA78_0>=31 && LA78_0<=32)||LA78_0==39||(LA78_0>=55 && LA78_0<=56)||LA78_0==60||LA78_0==68||LA78_0==70||(LA78_0>=74 && LA78_0<=75)||(LA78_0>=78 && LA78_0<=87)||LA78_0==89) ) {
-                alt78=1;
+            if ( ((LA80_0>=RULE_ID && LA80_0<=RULE_DECIMAL)||LA80_0==14||LA80_0==18||(LA80_0>=22 && LA80_0<=24)||LA80_0==29||(LA80_0>=33 && LA80_0<=34)||LA80_0==41||(LA80_0>=57 && LA80_0<=58)||LA80_0==62||LA80_0==70||LA80_0==72||(LA80_0>=76 && LA80_0<=77)||(LA80_0>=80 && LA80_0<=89)||LA80_0==91) ) {
+                alt80=1;
             }
-            switch (alt78) {
+            switch (alt80) {
                 case 1 :
-                    // InternalSignalDSL.g:4645:4: (lv_expression_7_0= ruleXExpression )
+                    // InternalSignalDSL.g:4744:4: (lv_expression_7_0= ruleXExpression )
                     {
-                    // InternalSignalDSL.g:4645:4: (lv_expression_7_0= ruleXExpression )
-                    // InternalSignalDSL.g:4646:5: lv_expression_7_0= ruleXExpression
+                    // InternalSignalDSL.g:4744:4: (lv_expression_7_0= ruleXExpression )
+                    // InternalSignalDSL.g:4745:5: lv_expression_7_0= ruleXExpression
                     {
                     if ( state.backtracking==0 ) {
 
                       					newCompositeNode(grammarAccess.getXBasicForLoopExpressionAccess().getExpressionXExpressionParserRuleCall_5_0());
                       				
                     }
-                    pushFollow(FOLLOW_73);
+                    pushFollow(FOLLOW_76);
                     lv_expression_7_0=ruleXExpression();
 
                     state._fsp--;
@@ -12743,35 +13011,35 @@
 
             }
 
-            otherlv_8=(Token)match(input,25,FOLLOW_19); if (state.failed) return current;
+            otherlv_8=(Token)match(input,27,FOLLOW_22); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_8, grammarAccess.getXBasicForLoopExpressionAccess().getSemicolonKeyword_6());
               		
             }
-            // InternalSignalDSL.g:4667:3: ( ( (lv_updateExpressions_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_updateExpressions_11_0= ruleXExpression ) ) )* )?
-            int alt80=2;
-            int LA80_0 = input.LA(1);
+            // InternalSignalDSL.g:4766:3: ( ( (lv_updateExpressions_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_updateExpressions_11_0= ruleXExpression ) ) )* )?
+            int alt82=2;
+            int LA82_0 = input.LA(1);
 
-            if ( ((LA80_0>=RULE_ID && LA80_0<=RULE_DECIMAL)||LA80_0==14||LA80_0==18||(LA80_0>=20 && LA80_0<=22)||LA80_0==27||(LA80_0>=31 && LA80_0<=32)||LA80_0==39||(LA80_0>=55 && LA80_0<=56)||LA80_0==60||LA80_0==68||LA80_0==70||(LA80_0>=74 && LA80_0<=75)||(LA80_0>=78 && LA80_0<=87)||LA80_0==89) ) {
-                alt80=1;
+            if ( ((LA82_0>=RULE_ID && LA82_0<=RULE_DECIMAL)||LA82_0==14||LA82_0==18||(LA82_0>=22 && LA82_0<=24)||LA82_0==29||(LA82_0>=33 && LA82_0<=34)||LA82_0==41||(LA82_0>=57 && LA82_0<=58)||LA82_0==62||LA82_0==70||LA82_0==72||(LA82_0>=76 && LA82_0<=77)||(LA82_0>=80 && LA82_0<=89)||LA82_0==91) ) {
+                alt82=1;
             }
-            switch (alt80) {
+            switch (alt82) {
                 case 1 :
-                    // InternalSignalDSL.g:4668:4: ( (lv_updateExpressions_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_updateExpressions_11_0= ruleXExpression ) ) )*
+                    // InternalSignalDSL.g:4767:4: ( (lv_updateExpressions_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_updateExpressions_11_0= ruleXExpression ) ) )*
                     {
-                    // InternalSignalDSL.g:4668:4: ( (lv_updateExpressions_9_0= ruleXExpression ) )
-                    // InternalSignalDSL.g:4669:5: (lv_updateExpressions_9_0= ruleXExpression )
+                    // InternalSignalDSL.g:4767:4: ( (lv_updateExpressions_9_0= ruleXExpression ) )
+                    // InternalSignalDSL.g:4768:5: (lv_updateExpressions_9_0= ruleXExpression )
                     {
-                    // InternalSignalDSL.g:4669:5: (lv_updateExpressions_9_0= ruleXExpression )
-                    // InternalSignalDSL.g:4670:6: lv_updateExpressions_9_0= ruleXExpression
+                    // InternalSignalDSL.g:4768:5: (lv_updateExpressions_9_0= ruleXExpression )
+                    // InternalSignalDSL.g:4769:6: lv_updateExpressions_9_0= ruleXExpression
                     {
                     if ( state.backtracking==0 ) {
 
                       						newCompositeNode(grammarAccess.getXBasicForLoopExpressionAccess().getUpdateExpressionsXExpressionParserRuleCall_7_0_0());
                       					
                     }
-                    pushFollow(FOLLOW_20);
+                    pushFollow(FOLLOW_23);
                     lv_updateExpressions_9_0=ruleXExpression();
 
                     state._fsp--;
@@ -12795,39 +13063,39 @@
 
                     }
 
-                    // InternalSignalDSL.g:4687:4: (otherlv_10= ',' ( (lv_updateExpressions_11_0= ruleXExpression ) ) )*
-                    loop79:
+                    // InternalSignalDSL.g:4786:4: (otherlv_10= ',' ( (lv_updateExpressions_11_0= ruleXExpression ) ) )*
+                    loop81:
                     do {
-                        int alt79=2;
-                        int LA79_0 = input.LA(1);
+                        int alt81=2;
+                        int LA81_0 = input.LA(1);
 
-                        if ( (LA79_0==28) ) {
-                            alt79=1;
+                        if ( (LA81_0==30) ) {
+                            alt81=1;
                         }
 
 
-                        switch (alt79) {
+                        switch (alt81) {
                     	case 1 :
-                    	    // InternalSignalDSL.g:4688:5: otherlv_10= ',' ( (lv_updateExpressions_11_0= ruleXExpression ) )
+                    	    // InternalSignalDSL.g:4787:5: otherlv_10= ',' ( (lv_updateExpressions_11_0= ruleXExpression ) )
                     	    {
-                    	    otherlv_10=(Token)match(input,28,FOLLOW_23); if (state.failed) return current;
+                    	    otherlv_10=(Token)match(input,30,FOLLOW_26); if (state.failed) return current;
                     	    if ( state.backtracking==0 ) {
 
                     	      					newLeafNode(otherlv_10, grammarAccess.getXBasicForLoopExpressionAccess().getCommaKeyword_7_1_0());
                     	      				
                     	    }
-                    	    // InternalSignalDSL.g:4692:5: ( (lv_updateExpressions_11_0= ruleXExpression ) )
-                    	    // InternalSignalDSL.g:4693:6: (lv_updateExpressions_11_0= ruleXExpression )
+                    	    // InternalSignalDSL.g:4791:5: ( (lv_updateExpressions_11_0= ruleXExpression ) )
+                    	    // InternalSignalDSL.g:4792:6: (lv_updateExpressions_11_0= ruleXExpression )
                     	    {
-                    	    // InternalSignalDSL.g:4693:6: (lv_updateExpressions_11_0= ruleXExpression )
-                    	    // InternalSignalDSL.g:4694:7: lv_updateExpressions_11_0= ruleXExpression
+                    	    // InternalSignalDSL.g:4792:6: (lv_updateExpressions_11_0= ruleXExpression )
+                    	    // InternalSignalDSL.g:4793:7: lv_updateExpressions_11_0= ruleXExpression
                     	    {
                     	    if ( state.backtracking==0 ) {
 
                     	      							newCompositeNode(grammarAccess.getXBasicForLoopExpressionAccess().getUpdateExpressionsXExpressionParserRuleCall_7_1_1_0());
                     	      						
                     	    }
-                    	    pushFollow(FOLLOW_20);
+                    	    pushFollow(FOLLOW_23);
                     	    lv_updateExpressions_11_0=ruleXExpression();
 
                     	    state._fsp--;
@@ -12856,7 +13124,7 @@
                     	    break;
 
                     	default :
-                    	    break loop79;
+                    	    break loop81;
                         }
                     } while (true);
 
@@ -12866,17 +13134,17 @@
 
             }
 
-            otherlv_12=(Token)match(input,29,FOLLOW_23); if (state.failed) return current;
+            otherlv_12=(Token)match(input,31,FOLLOW_26); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_12, grammarAccess.getXBasicForLoopExpressionAccess().getRightParenthesisKeyword_8());
               		
             }
-            // InternalSignalDSL.g:4717:3: ( (lv_eachExpression_13_0= ruleXExpression ) )
-            // InternalSignalDSL.g:4718:4: (lv_eachExpression_13_0= ruleXExpression )
+            // InternalSignalDSL.g:4816:3: ( (lv_eachExpression_13_0= ruleXExpression ) )
+            // InternalSignalDSL.g:4817:4: (lv_eachExpression_13_0= ruleXExpression )
             {
-            // InternalSignalDSL.g:4718:4: (lv_eachExpression_13_0= ruleXExpression )
-            // InternalSignalDSL.g:4719:5: lv_eachExpression_13_0= ruleXExpression
+            // InternalSignalDSL.g:4817:4: (lv_eachExpression_13_0= ruleXExpression )
+            // InternalSignalDSL.g:4818:5: lv_eachExpression_13_0= ruleXExpression
             {
             if ( state.backtracking==0 ) {
 
@@ -12932,7 +13200,7 @@
 
 
     // $ANTLR start "entryRuleXWhileExpression"
-    // InternalSignalDSL.g:4740:1: entryRuleXWhileExpression returns [EObject current=null] : iv_ruleXWhileExpression= ruleXWhileExpression EOF ;
+    // InternalSignalDSL.g:4839:1: entryRuleXWhileExpression returns [EObject current=null] : iv_ruleXWhileExpression= ruleXWhileExpression EOF ;
     public final EObject entryRuleXWhileExpression() throws RecognitionException {
         EObject current = null;
 
@@ -12940,8 +13208,8 @@
 
 
         try {
-            // InternalSignalDSL.g:4740:57: (iv_ruleXWhileExpression= ruleXWhileExpression EOF )
-            // InternalSignalDSL.g:4741:2: iv_ruleXWhileExpression= ruleXWhileExpression EOF
+            // InternalSignalDSL.g:4839:57: (iv_ruleXWhileExpression= ruleXWhileExpression EOF )
+            // InternalSignalDSL.g:4840:2: iv_ruleXWhileExpression= ruleXWhileExpression EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXWhileExpressionRule()); 
@@ -12972,7 +13240,7 @@
 
 
     // $ANTLR start "ruleXWhileExpression"
-    // InternalSignalDSL.g:4747: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:4846: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;
 
@@ -12988,14 +13256,14 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:4753:2: ( ( () otherlv_1= 'while' otherlv_2= '(' ( (lv_predicate_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_body_5_0= ruleXExpression ) ) ) )
-            // InternalSignalDSL.g:4754:2: ( () otherlv_1= 'while' otherlv_2= '(' ( (lv_predicate_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_body_5_0= ruleXExpression ) ) )
+            // InternalSignalDSL.g:4852:2: ( ( () otherlv_1= 'while' otherlv_2= '(' ( (lv_predicate_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_body_5_0= ruleXExpression ) ) ) )
+            // InternalSignalDSL.g:4853:2: ( () otherlv_1= 'while' otherlv_2= '(' ( (lv_predicate_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_body_5_0= ruleXExpression ) ) )
             {
-            // InternalSignalDSL.g:4754:2: ( () otherlv_1= 'while' otherlv_2= '(' ( (lv_predicate_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_body_5_0= ruleXExpression ) ) )
-            // InternalSignalDSL.g:4755:3: () otherlv_1= 'while' otherlv_2= '(' ( (lv_predicate_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_body_5_0= ruleXExpression ) )
+            // InternalSignalDSL.g:4853:2: ( () otherlv_1= 'while' otherlv_2= '(' ( (lv_predicate_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_body_5_0= ruleXExpression ) ) )
+            // InternalSignalDSL.g:4854:3: () otherlv_1= 'while' otherlv_2= '(' ( (lv_predicate_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_body_5_0= ruleXExpression ) )
             {
-            // InternalSignalDSL.g:4755:3: ()
-            // InternalSignalDSL.g:4756:4: 
+            // InternalSignalDSL.g:4854:3: ()
+            // InternalSignalDSL.g:4855:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -13007,30 +13275,30 @@
 
             }
 
-            otherlv_1=(Token)match(input,74,FOLLOW_61); if (state.failed) return current;
+            otherlv_1=(Token)match(input,76,FOLLOW_64); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_1, grammarAccess.getXWhileExpressionAccess().getWhileKeyword_1());
               		
             }
-            otherlv_2=(Token)match(input,27,FOLLOW_23); if (state.failed) return current;
+            otherlv_2=(Token)match(input,29,FOLLOW_26); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_2, grammarAccess.getXWhileExpressionAccess().getLeftParenthesisKeyword_2());
               		
             }
-            // InternalSignalDSL.g:4770:3: ( (lv_predicate_3_0= ruleXExpression ) )
-            // InternalSignalDSL.g:4771:4: (lv_predicate_3_0= ruleXExpression )
+            // InternalSignalDSL.g:4869:3: ( (lv_predicate_3_0= ruleXExpression ) )
+            // InternalSignalDSL.g:4870:4: (lv_predicate_3_0= ruleXExpression )
             {
-            // InternalSignalDSL.g:4771:4: (lv_predicate_3_0= ruleXExpression )
-            // InternalSignalDSL.g:4772:5: lv_predicate_3_0= ruleXExpression
+            // InternalSignalDSL.g:4870:4: (lv_predicate_3_0= ruleXExpression )
+            // InternalSignalDSL.g:4871:5: lv_predicate_3_0= ruleXExpression
             {
             if ( state.backtracking==0 ) {
 
               					newCompositeNode(grammarAccess.getXWhileExpressionAccess().getPredicateXExpressionParserRuleCall_3_0());
               				
             }
-            pushFollow(FOLLOW_21);
+            pushFollow(FOLLOW_24);
             lv_predicate_3_0=ruleXExpression();
 
             state._fsp--;
@@ -13054,17 +13322,17 @@
 
             }
 
-            otherlv_4=(Token)match(input,29,FOLLOW_23); if (state.failed) return current;
+            otherlv_4=(Token)match(input,31,FOLLOW_26); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_4, grammarAccess.getXWhileExpressionAccess().getRightParenthesisKeyword_4());
               		
             }
-            // InternalSignalDSL.g:4793:3: ( (lv_body_5_0= ruleXExpression ) )
-            // InternalSignalDSL.g:4794:4: (lv_body_5_0= ruleXExpression )
+            // InternalSignalDSL.g:4892:3: ( (lv_body_5_0= ruleXExpression ) )
+            // InternalSignalDSL.g:4893:4: (lv_body_5_0= ruleXExpression )
             {
-            // InternalSignalDSL.g:4794:4: (lv_body_5_0= ruleXExpression )
-            // InternalSignalDSL.g:4795:5: lv_body_5_0= ruleXExpression
+            // InternalSignalDSL.g:4893:4: (lv_body_5_0= ruleXExpression )
+            // InternalSignalDSL.g:4894:5: lv_body_5_0= ruleXExpression
             {
             if ( state.backtracking==0 ) {
 
@@ -13120,7 +13388,7 @@
 
 
     // $ANTLR start "entryRuleXDoWhileExpression"
-    // InternalSignalDSL.g:4816:1: entryRuleXDoWhileExpression returns [EObject current=null] : iv_ruleXDoWhileExpression= ruleXDoWhileExpression EOF ;
+    // InternalSignalDSL.g:4915:1: entryRuleXDoWhileExpression returns [EObject current=null] : iv_ruleXDoWhileExpression= ruleXDoWhileExpression EOF ;
     public final EObject entryRuleXDoWhileExpression() throws RecognitionException {
         EObject current = null;
 
@@ -13128,8 +13396,8 @@
 
 
         try {
-            // InternalSignalDSL.g:4816:59: (iv_ruleXDoWhileExpression= ruleXDoWhileExpression EOF )
-            // InternalSignalDSL.g:4817:2: iv_ruleXDoWhileExpression= ruleXDoWhileExpression EOF
+            // InternalSignalDSL.g:4915:59: (iv_ruleXDoWhileExpression= ruleXDoWhileExpression EOF )
+            // InternalSignalDSL.g:4916:2: iv_ruleXDoWhileExpression= ruleXDoWhileExpression EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXDoWhileExpressionRule()); 
@@ -13160,7 +13428,7 @@
 
 
     // $ANTLR start "ruleXDoWhileExpression"
-    // InternalSignalDSL.g:4823: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:4922: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;
 
@@ -13177,14 +13445,14 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:4829:2: ( ( () otherlv_1= 'do' ( (lv_body_2_0= ruleXExpression ) ) otherlv_3= 'while' otherlv_4= '(' ( (lv_predicate_5_0= ruleXExpression ) ) otherlv_6= ')' ) )
-            // InternalSignalDSL.g:4830:2: ( () otherlv_1= 'do' ( (lv_body_2_0= ruleXExpression ) ) otherlv_3= 'while' otherlv_4= '(' ( (lv_predicate_5_0= ruleXExpression ) ) otherlv_6= ')' )
+            // InternalSignalDSL.g:4928:2: ( ( () otherlv_1= 'do' ( (lv_body_2_0= ruleXExpression ) ) otherlv_3= 'while' otherlv_4= '(' ( (lv_predicate_5_0= ruleXExpression ) ) otherlv_6= ')' ) )
+            // InternalSignalDSL.g:4929:2: ( () otherlv_1= 'do' ( (lv_body_2_0= ruleXExpression ) ) otherlv_3= 'while' otherlv_4= '(' ( (lv_predicate_5_0= ruleXExpression ) ) otherlv_6= ')' )
             {
-            // InternalSignalDSL.g:4830:2: ( () otherlv_1= 'do' ( (lv_body_2_0= ruleXExpression ) ) otherlv_3= 'while' otherlv_4= '(' ( (lv_predicate_5_0= ruleXExpression ) ) otherlv_6= ')' )
-            // InternalSignalDSL.g:4831:3: () otherlv_1= 'do' ( (lv_body_2_0= ruleXExpression ) ) otherlv_3= 'while' otherlv_4= '(' ( (lv_predicate_5_0= ruleXExpression ) ) otherlv_6= ')'
+            // InternalSignalDSL.g:4929:2: ( () otherlv_1= 'do' ( (lv_body_2_0= ruleXExpression ) ) otherlv_3= 'while' otherlv_4= '(' ( (lv_predicate_5_0= ruleXExpression ) ) otherlv_6= ')' )
+            // InternalSignalDSL.g:4930:3: () otherlv_1= 'do' ( (lv_body_2_0= ruleXExpression ) ) otherlv_3= 'while' otherlv_4= '(' ( (lv_predicate_5_0= ruleXExpression ) ) otherlv_6= ')'
             {
-            // InternalSignalDSL.g:4831:3: ()
-            // InternalSignalDSL.g:4832:4: 
+            // InternalSignalDSL.g:4930:3: ()
+            // InternalSignalDSL.g:4931:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -13196,24 +13464,24 @@
 
             }
 
-            otherlv_1=(Token)match(input,75,FOLLOW_23); if (state.failed) return current;
+            otherlv_1=(Token)match(input,77,FOLLOW_26); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_1, grammarAccess.getXDoWhileExpressionAccess().getDoKeyword_1());
               		
             }
-            // InternalSignalDSL.g:4842:3: ( (lv_body_2_0= ruleXExpression ) )
-            // InternalSignalDSL.g:4843:4: (lv_body_2_0= ruleXExpression )
+            // InternalSignalDSL.g:4941:3: ( (lv_body_2_0= ruleXExpression ) )
+            // InternalSignalDSL.g:4942:4: (lv_body_2_0= ruleXExpression )
             {
-            // InternalSignalDSL.g:4843:4: (lv_body_2_0= ruleXExpression )
-            // InternalSignalDSL.g:4844:5: lv_body_2_0= ruleXExpression
+            // InternalSignalDSL.g:4942:4: (lv_body_2_0= ruleXExpression )
+            // InternalSignalDSL.g:4943:5: lv_body_2_0= ruleXExpression
             {
             if ( state.backtracking==0 ) {
 
               					newCompositeNode(grammarAccess.getXDoWhileExpressionAccess().getBodyXExpressionParserRuleCall_2_0());
               				
             }
-            pushFollow(FOLLOW_74);
+            pushFollow(FOLLOW_77);
             lv_body_2_0=ruleXExpression();
 
             state._fsp--;
@@ -13237,30 +13505,30 @@
 
             }
 
-            otherlv_3=(Token)match(input,74,FOLLOW_61); if (state.failed) return current;
+            otherlv_3=(Token)match(input,76,FOLLOW_64); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_3, grammarAccess.getXDoWhileExpressionAccess().getWhileKeyword_3());
               		
             }
-            otherlv_4=(Token)match(input,27,FOLLOW_23); if (state.failed) return current;
+            otherlv_4=(Token)match(input,29,FOLLOW_26); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_4, grammarAccess.getXDoWhileExpressionAccess().getLeftParenthesisKeyword_4());
               		
             }
-            // InternalSignalDSL.g:4869:3: ( (lv_predicate_5_0= ruleXExpression ) )
-            // InternalSignalDSL.g:4870:4: (lv_predicate_5_0= ruleXExpression )
+            // InternalSignalDSL.g:4968:3: ( (lv_predicate_5_0= ruleXExpression ) )
+            // InternalSignalDSL.g:4969:4: (lv_predicate_5_0= ruleXExpression )
             {
-            // InternalSignalDSL.g:4870:4: (lv_predicate_5_0= ruleXExpression )
-            // InternalSignalDSL.g:4871:5: lv_predicate_5_0= ruleXExpression
+            // InternalSignalDSL.g:4969:4: (lv_predicate_5_0= ruleXExpression )
+            // InternalSignalDSL.g:4970:5: lv_predicate_5_0= ruleXExpression
             {
             if ( state.backtracking==0 ) {
 
               					newCompositeNode(grammarAccess.getXDoWhileExpressionAccess().getPredicateXExpressionParserRuleCall_5_0());
               				
             }
-            pushFollow(FOLLOW_21);
+            pushFollow(FOLLOW_24);
             lv_predicate_5_0=ruleXExpression();
 
             state._fsp--;
@@ -13284,7 +13552,7 @@
 
             }
 
-            otherlv_6=(Token)match(input,29,FOLLOW_2); if (state.failed) return current;
+            otherlv_6=(Token)match(input,31,FOLLOW_2); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_6, grammarAccess.getXDoWhileExpressionAccess().getRightParenthesisKeyword_6());
@@ -13315,7 +13583,7 @@
 
 
     // $ANTLR start "entryRuleXBlockExpression"
-    // InternalSignalDSL.g:4896:1: entryRuleXBlockExpression returns [EObject current=null] : iv_ruleXBlockExpression= ruleXBlockExpression EOF ;
+    // InternalSignalDSL.g:4995:1: entryRuleXBlockExpression returns [EObject current=null] : iv_ruleXBlockExpression= ruleXBlockExpression EOF ;
     public final EObject entryRuleXBlockExpression() throws RecognitionException {
         EObject current = null;
 
@@ -13323,8 +13591,8 @@
 
 
         try {
-            // InternalSignalDSL.g:4896:57: (iv_ruleXBlockExpression= ruleXBlockExpression EOF )
-            // InternalSignalDSL.g:4897:2: iv_ruleXBlockExpression= ruleXBlockExpression EOF
+            // InternalSignalDSL.g:4995:57: (iv_ruleXBlockExpression= ruleXBlockExpression EOF )
+            // InternalSignalDSL.g:4996:2: iv_ruleXBlockExpression= ruleXBlockExpression EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXBlockExpressionRule()); 
@@ -13355,7 +13623,7 @@
 
 
     // $ANTLR start "ruleXBlockExpression"
-    // InternalSignalDSL.g:4903:1: ruleXBlockExpression returns [EObject current=null] : ( () otherlv_1= '{' ( ( (lv_expressions_2_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_3= ';' )? )* otherlv_4= '}' ) ;
+    // InternalSignalDSL.g:5002: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;
 
@@ -13369,14 +13637,14 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:4909:2: ( ( () otherlv_1= '{' ( ( (lv_expressions_2_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_3= ';' )? )* otherlv_4= '}' ) )
-            // InternalSignalDSL.g:4910:2: ( () otherlv_1= '{' ( ( (lv_expressions_2_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_3= ';' )? )* otherlv_4= '}' )
+            // InternalSignalDSL.g:5008:2: ( ( () otherlv_1= '{' ( ( (lv_expressions_2_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_3= ';' )? )* otherlv_4= '}' ) )
+            // InternalSignalDSL.g:5009:2: ( () otherlv_1= '{' ( ( (lv_expressions_2_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_3= ';' )? )* otherlv_4= '}' )
             {
-            // InternalSignalDSL.g:4910:2: ( () otherlv_1= '{' ( ( (lv_expressions_2_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_3= ';' )? )* otherlv_4= '}' )
-            // InternalSignalDSL.g:4911:3: () otherlv_1= '{' ( ( (lv_expressions_2_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_3= ';' )? )* otherlv_4= '}'
+            // InternalSignalDSL.g:5009:2: ( () otherlv_1= '{' ( ( (lv_expressions_2_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_3= ';' )? )* otherlv_4= '}' )
+            // InternalSignalDSL.g:5010:3: () otherlv_1= '{' ( ( (lv_expressions_2_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_3= ';' )? )* otherlv_4= '}'
             {
-            // InternalSignalDSL.g:4911:3: ()
-            // InternalSignalDSL.g:4912:4: 
+            // InternalSignalDSL.g:5010:3: ()
+            // InternalSignalDSL.g:5011:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -13388,39 +13656,39 @@
 
             }
 
-            otherlv_1=(Token)match(input,14,FOLLOW_75); if (state.failed) return current;
+            otherlv_1=(Token)match(input,14,FOLLOW_78); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_1, grammarAccess.getXBlockExpressionAccess().getLeftCurlyBracketKeyword_1());
               		
             }
-            // InternalSignalDSL.g:4922:3: ( ( (lv_expressions_2_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_3= ';' )? )*
-            loop82:
+            // InternalSignalDSL.g:5021:3: ( ( (lv_expressions_2_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_3= ';' )? )*
+            loop84:
             do {
-                int alt82=2;
-                int LA82_0 = input.LA(1);
+                int alt84=2;
+                int LA84_0 = input.LA(1);
 
-                if ( ((LA82_0>=RULE_ID && LA82_0<=RULE_DECIMAL)||LA82_0==14||LA82_0==18||(LA82_0>=20 && LA82_0<=22)||LA82_0==27||(LA82_0>=31 && LA82_0<=32)||LA82_0==39||(LA82_0>=55 && LA82_0<=56)||LA82_0==60||LA82_0==68||LA82_0==70||(LA82_0>=74 && LA82_0<=87)||LA82_0==89) ) {
-                    alt82=1;
+                if ( ((LA84_0>=RULE_ID && LA84_0<=RULE_DECIMAL)||LA84_0==14||LA84_0==18||(LA84_0>=22 && LA84_0<=24)||LA84_0==29||(LA84_0>=33 && LA84_0<=34)||LA84_0==41||(LA84_0>=57 && LA84_0<=58)||LA84_0==62||LA84_0==70||LA84_0==72||(LA84_0>=76 && LA84_0<=89)||LA84_0==91) ) {
+                    alt84=1;
                 }
 
 
-                switch (alt82) {
+                switch (alt84) {
             	case 1 :
-            	    // InternalSignalDSL.g:4923:4: ( (lv_expressions_2_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_3= ';' )?
+            	    // InternalSignalDSL.g:5022:4: ( (lv_expressions_2_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_3= ';' )?
             	    {
-            	    // InternalSignalDSL.g:4923:4: ( (lv_expressions_2_0= ruleXExpressionOrVarDeclaration ) )
-            	    // InternalSignalDSL.g:4924:5: (lv_expressions_2_0= ruleXExpressionOrVarDeclaration )
+            	    // InternalSignalDSL.g:5022:4: ( (lv_expressions_2_0= ruleXExpressionOrVarDeclaration ) )
+            	    // InternalSignalDSL.g:5023:5: (lv_expressions_2_0= ruleXExpressionOrVarDeclaration )
             	    {
-            	    // InternalSignalDSL.g:4924:5: (lv_expressions_2_0= ruleXExpressionOrVarDeclaration )
-            	    // InternalSignalDSL.g:4925:6: lv_expressions_2_0= ruleXExpressionOrVarDeclaration
+            	    // InternalSignalDSL.g:5023:5: (lv_expressions_2_0= ruleXExpressionOrVarDeclaration )
+            	    // InternalSignalDSL.g:5024:6: lv_expressions_2_0= ruleXExpressionOrVarDeclaration
             	    {
             	    if ( state.backtracking==0 ) {
 
             	      						newCompositeNode(grammarAccess.getXBlockExpressionAccess().getExpressionsXExpressionOrVarDeclarationParserRuleCall_2_0_0());
             	      					
             	    }
-            	    pushFollow(FOLLOW_76);
+            	    pushFollow(FOLLOW_79);
             	    lv_expressions_2_0=ruleXExpressionOrVarDeclaration();
 
             	    state._fsp--;
@@ -13444,18 +13712,18 @@
 
             	    }
 
-            	    // InternalSignalDSL.g:4942:4: (otherlv_3= ';' )?
-            	    int alt81=2;
-            	    int LA81_0 = input.LA(1);
+            	    // InternalSignalDSL.g:5041:4: (otherlv_3= ';' )?
+            	    int alt83=2;
+            	    int LA83_0 = input.LA(1);
 
-            	    if ( (LA81_0==25) ) {
-            	        alt81=1;
+            	    if ( (LA83_0==27) ) {
+            	        alt83=1;
             	    }
-            	    switch (alt81) {
+            	    switch (alt83) {
             	        case 1 :
-            	            // InternalSignalDSL.g:4943:5: otherlv_3= ';'
+            	            // InternalSignalDSL.g:5042:5: otherlv_3= ';'
             	            {
-            	            otherlv_3=(Token)match(input,25,FOLLOW_75); if (state.failed) return current;
+            	            otherlv_3=(Token)match(input,27,FOLLOW_78); if (state.failed) return current;
             	            if ( state.backtracking==0 ) {
 
             	              					newLeafNode(otherlv_3, grammarAccess.getXBlockExpressionAccess().getSemicolonKeyword_2_1());
@@ -13472,7 +13740,7 @@
             	    break;
 
             	default :
-            	    break loop82;
+            	    break loop84;
                 }
             } while (true);
 
@@ -13507,7 +13775,7 @@
 
 
     // $ANTLR start "entryRuleXExpressionOrVarDeclaration"
-    // InternalSignalDSL.g:4957:1: entryRuleXExpressionOrVarDeclaration returns [EObject current=null] : iv_ruleXExpressionOrVarDeclaration= ruleXExpressionOrVarDeclaration EOF ;
+    // InternalSignalDSL.g:5056:1: entryRuleXExpressionOrVarDeclaration returns [EObject current=null] : iv_ruleXExpressionOrVarDeclaration= ruleXExpressionOrVarDeclaration EOF ;
     public final EObject entryRuleXExpressionOrVarDeclaration() throws RecognitionException {
         EObject current = null;
 
@@ -13515,8 +13783,8 @@
 
 
         try {
-            // InternalSignalDSL.g:4957:68: (iv_ruleXExpressionOrVarDeclaration= ruleXExpressionOrVarDeclaration EOF )
-            // InternalSignalDSL.g:4958:2: iv_ruleXExpressionOrVarDeclaration= ruleXExpressionOrVarDeclaration EOF
+            // InternalSignalDSL.g:5056:68: (iv_ruleXExpressionOrVarDeclaration= ruleXExpressionOrVarDeclaration EOF )
+            // InternalSignalDSL.g:5057:2: iv_ruleXExpressionOrVarDeclaration= ruleXExpressionOrVarDeclaration EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXExpressionOrVarDeclarationRule()); 
@@ -13547,7 +13815,7 @@
 
 
     // $ANTLR start "ruleXExpressionOrVarDeclaration"
-    // InternalSignalDSL.g:4964:1: ruleXExpressionOrVarDeclaration returns [EObject current=null] : (this_XVariableDeclaration_0= ruleXVariableDeclaration | this_XExpression_1= ruleXExpression ) ;
+    // InternalSignalDSL.g:5063:1: ruleXExpressionOrVarDeclaration returns [EObject current=null] : (this_XVariableDeclaration_0= ruleXVariableDeclaration | this_XExpression_1= ruleXExpression ) ;
     public final EObject ruleXExpressionOrVarDeclaration() throws RecognitionException {
         EObject current = null;
 
@@ -13560,29 +13828,29 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:4970:2: ( (this_XVariableDeclaration_0= ruleXVariableDeclaration | this_XExpression_1= ruleXExpression ) )
-            // InternalSignalDSL.g:4971:2: (this_XVariableDeclaration_0= ruleXVariableDeclaration | this_XExpression_1= ruleXExpression )
+            // InternalSignalDSL.g:5069:2: ( (this_XVariableDeclaration_0= ruleXVariableDeclaration | this_XExpression_1= ruleXExpression ) )
+            // InternalSignalDSL.g:5070:2: (this_XVariableDeclaration_0= ruleXVariableDeclaration | this_XExpression_1= ruleXExpression )
             {
-            // InternalSignalDSL.g:4971:2: (this_XVariableDeclaration_0= ruleXVariableDeclaration | this_XExpression_1= ruleXExpression )
-            int alt83=2;
-            int LA83_0 = input.LA(1);
+            // InternalSignalDSL.g:5070:2: (this_XVariableDeclaration_0= ruleXVariableDeclaration | this_XExpression_1= ruleXExpression )
+            int alt85=2;
+            int LA85_0 = input.LA(1);
 
-            if ( ((LA83_0>=76 && LA83_0<=77)) ) {
-                alt83=1;
+            if ( ((LA85_0>=78 && LA85_0<=79)) ) {
+                alt85=1;
             }
-            else if ( ((LA83_0>=RULE_ID && LA83_0<=RULE_DECIMAL)||LA83_0==14||LA83_0==18||(LA83_0>=20 && LA83_0<=22)||LA83_0==27||(LA83_0>=31 && LA83_0<=32)||LA83_0==39||(LA83_0>=55 && LA83_0<=56)||LA83_0==60||LA83_0==68||LA83_0==70||(LA83_0>=74 && LA83_0<=75)||(LA83_0>=78 && LA83_0<=87)||LA83_0==89) ) {
-                alt83=2;
+            else if ( ((LA85_0>=RULE_ID && LA85_0<=RULE_DECIMAL)||LA85_0==14||LA85_0==18||(LA85_0>=22 && LA85_0<=24)||LA85_0==29||(LA85_0>=33 && LA85_0<=34)||LA85_0==41||(LA85_0>=57 && LA85_0<=58)||LA85_0==62||LA85_0==70||LA85_0==72||(LA85_0>=76 && LA85_0<=77)||(LA85_0>=80 && LA85_0<=89)||LA85_0==91) ) {
+                alt85=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 83, 0, input);
+                    new NoViableAltException("", 85, 0, input);
 
                 throw nvae;
             }
-            switch (alt83) {
+            switch (alt85) {
                 case 1 :
-                    // InternalSignalDSL.g:4972:3: this_XVariableDeclaration_0= ruleXVariableDeclaration
+                    // InternalSignalDSL.g:5071:3: this_XVariableDeclaration_0= ruleXVariableDeclaration
                     {
                     if ( state.backtracking==0 ) {
 
@@ -13604,7 +13872,7 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:4981:3: this_XExpression_1= ruleXExpression
+                    // InternalSignalDSL.g:5080:3: this_XExpression_1= ruleXExpression
                     {
                     if ( state.backtracking==0 ) {
 
@@ -13650,7 +13918,7 @@
 
 
     // $ANTLR start "entryRuleXVariableDeclaration"
-    // InternalSignalDSL.g:4993:1: entryRuleXVariableDeclaration returns [EObject current=null] : iv_ruleXVariableDeclaration= ruleXVariableDeclaration EOF ;
+    // InternalSignalDSL.g:5092:1: entryRuleXVariableDeclaration returns [EObject current=null] : iv_ruleXVariableDeclaration= ruleXVariableDeclaration EOF ;
     public final EObject entryRuleXVariableDeclaration() throws RecognitionException {
         EObject current = null;
 
@@ -13658,8 +13926,8 @@
 
 
         try {
-            // InternalSignalDSL.g:4993:61: (iv_ruleXVariableDeclaration= ruleXVariableDeclaration EOF )
-            // InternalSignalDSL.g:4994:2: iv_ruleXVariableDeclaration= ruleXVariableDeclaration EOF
+            // InternalSignalDSL.g:5092:61: (iv_ruleXVariableDeclaration= ruleXVariableDeclaration EOF )
+            // InternalSignalDSL.g:5093:2: iv_ruleXVariableDeclaration= ruleXVariableDeclaration EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXVariableDeclarationRule()); 
@@ -13690,7 +13958,7 @@
 
 
     // $ANTLR start "ruleXVariableDeclaration"
-    // InternalSignalDSL.g:5000: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:5099: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;
 
@@ -13710,14 +13978,14 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:5006: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:5007: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:5105: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:5106: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:5007: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:5008: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:5106: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:5107: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:5008:3: ()
-            // InternalSignalDSL.g:5009:4: 
+            // InternalSignalDSL.g:5107:3: ()
+            // InternalSignalDSL.g:5108:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -13729,34 +13997,34 @@
 
             }
 
-            // InternalSignalDSL.g:5015:3: ( ( (lv_writeable_1_0= 'var' ) ) | otherlv_2= 'val' )
-            int alt84=2;
-            int LA84_0 = input.LA(1);
+            // InternalSignalDSL.g:5114:3: ( ( (lv_writeable_1_0= 'var' ) ) | otherlv_2= 'val' )
+            int alt86=2;
+            int LA86_0 = input.LA(1);
 
-            if ( (LA84_0==76) ) {
-                alt84=1;
+            if ( (LA86_0==78) ) {
+                alt86=1;
             }
-            else if ( (LA84_0==77) ) {
-                alt84=2;
+            else if ( (LA86_0==79) ) {
+                alt86=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 84, 0, input);
+                    new NoViableAltException("", 86, 0, input);
 
                 throw nvae;
             }
-            switch (alt84) {
+            switch (alt86) {
                 case 1 :
-                    // InternalSignalDSL.g:5016:4: ( (lv_writeable_1_0= 'var' ) )
+                    // InternalSignalDSL.g:5115:4: ( (lv_writeable_1_0= 'var' ) )
                     {
-                    // InternalSignalDSL.g:5016:4: ( (lv_writeable_1_0= 'var' ) )
-                    // InternalSignalDSL.g:5017:5: (lv_writeable_1_0= 'var' )
+                    // InternalSignalDSL.g:5115:4: ( (lv_writeable_1_0= 'var' ) )
+                    // InternalSignalDSL.g:5116:5: (lv_writeable_1_0= 'var' )
                     {
-                    // InternalSignalDSL.g:5017:5: (lv_writeable_1_0= 'var' )
-                    // InternalSignalDSL.g:5018:6: lv_writeable_1_0= 'var'
+                    // InternalSignalDSL.g:5116:5: (lv_writeable_1_0= 'var' )
+                    // InternalSignalDSL.g:5117:6: lv_writeable_1_0= 'var'
                     {
-                    lv_writeable_1_0=(Token)match(input,76,FOLLOW_36); if (state.failed) return current;
+                    lv_writeable_1_0=(Token)match(input,78,FOLLOW_39); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       						newLeafNode(lv_writeable_1_0, grammarAccess.getXVariableDeclarationAccess().getWriteableVarKeyword_1_0_0());
@@ -13780,9 +14048,9 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:5031:4: otherlv_2= 'val'
+                    // InternalSignalDSL.g:5130:4: otherlv_2= 'val'
                     {
-                    otherlv_2=(Token)match(input,77,FOLLOW_36); if (state.failed) return current;
+                    otherlv_2=(Token)match(input,79,FOLLOW_39); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				newLeafNode(otherlv_2, grammarAccess.getXVariableDeclarationAccess().getValKeyword_1_1());
@@ -13794,55 +14062,55 @@
 
             }
 
-            // InternalSignalDSL.g:5036:3: ( ( ( ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) ) )=> ( ( (lv_type_3_0= ruleJvmTypeReference ) ) ( (lv_name_4_0= ruleValidID ) ) ) ) | ( (lv_name_5_0= ruleValidID ) ) )
-            int alt85=2;
-            int LA85_0 = input.LA(1);
+            // InternalSignalDSL.g:5135:3: ( ( ( ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) ) )=> ( ( (lv_type_3_0= ruleJvmTypeReference ) ) ( (lv_name_4_0= ruleValidID ) ) ) ) | ( (lv_name_5_0= ruleValidID ) ) )
+            int alt87=2;
+            int LA87_0 = input.LA(1);
 
-            if ( (LA85_0==RULE_ID) ) {
-                int LA85_1 = input.LA(2);
+            if ( (LA87_0==RULE_ID) ) {
+                int LA87_1 = input.LA(2);
 
                 if ( (synpred35_InternalSignalDSL()) ) {
-                    alt85=1;
+                    alt87=1;
                 }
                 else if ( (true) ) {
-                    alt85=2;
+                    alt87=2;
                 }
                 else {
                     if (state.backtracking>0) {state.failed=true; return current;}
                     NoViableAltException nvae =
-                        new NoViableAltException("", 85, 1, input);
+                        new NoViableAltException("", 87, 1, input);
 
                     throw nvae;
                 }
             }
-            else if ( (LA85_0==27) && (synpred35_InternalSignalDSL())) {
-                alt85=1;
+            else if ( (LA87_0==29) && (synpred35_InternalSignalDSL())) {
+                alt87=1;
             }
-            else if ( (LA85_0==52) && (synpred35_InternalSignalDSL())) {
-                alt85=1;
+            else if ( (LA87_0==54) && (synpred35_InternalSignalDSL())) {
+                alt87=1;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 85, 0, input);
+                    new NoViableAltException("", 87, 0, input);
 
                 throw nvae;
             }
-            switch (alt85) {
+            switch (alt87) {
                 case 1 :
-                    // InternalSignalDSL.g:5037:4: ( ( ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) ) )=> ( ( (lv_type_3_0= ruleJvmTypeReference ) ) ( (lv_name_4_0= ruleValidID ) ) ) )
+                    // InternalSignalDSL.g:5136:4: ( ( ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) ) )=> ( ( (lv_type_3_0= ruleJvmTypeReference ) ) ( (lv_name_4_0= ruleValidID ) ) ) )
                     {
-                    // InternalSignalDSL.g:5037:4: ( ( ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) ) )=> ( ( (lv_type_3_0= ruleJvmTypeReference ) ) ( (lv_name_4_0= ruleValidID ) ) ) )
-                    // InternalSignalDSL.g:5038:5: ( ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) ) )=> ( ( (lv_type_3_0= ruleJvmTypeReference ) ) ( (lv_name_4_0= ruleValidID ) ) )
+                    // InternalSignalDSL.g:5136:4: ( ( ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) ) )=> ( ( (lv_type_3_0= ruleJvmTypeReference ) ) ( (lv_name_4_0= ruleValidID ) ) ) )
+                    // InternalSignalDSL.g:5137:5: ( ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) ) )=> ( ( (lv_type_3_0= ruleJvmTypeReference ) ) ( (lv_name_4_0= ruleValidID ) ) )
                     {
-                    // InternalSignalDSL.g:5051:5: ( ( (lv_type_3_0= ruleJvmTypeReference ) ) ( (lv_name_4_0= ruleValidID ) ) )
-                    // InternalSignalDSL.g:5052:6: ( (lv_type_3_0= ruleJvmTypeReference ) ) ( (lv_name_4_0= ruleValidID ) )
+                    // InternalSignalDSL.g:5150:5: ( ( (lv_type_3_0= ruleJvmTypeReference ) ) ( (lv_name_4_0= ruleValidID ) ) )
+                    // InternalSignalDSL.g:5151:6: ( (lv_type_3_0= ruleJvmTypeReference ) ) ( (lv_name_4_0= ruleValidID ) )
                     {
-                    // InternalSignalDSL.g:5052:6: ( (lv_type_3_0= ruleJvmTypeReference ) )
-                    // InternalSignalDSL.g:5053:7: (lv_type_3_0= ruleJvmTypeReference )
+                    // InternalSignalDSL.g:5151:6: ( (lv_type_3_0= ruleJvmTypeReference ) )
+                    // InternalSignalDSL.g:5152:7: (lv_type_3_0= ruleJvmTypeReference )
                     {
-                    // InternalSignalDSL.g:5053:7: (lv_type_3_0= ruleJvmTypeReference )
-                    // InternalSignalDSL.g:5054:8: lv_type_3_0= ruleJvmTypeReference
+                    // InternalSignalDSL.g:5152:7: (lv_type_3_0= ruleJvmTypeReference )
+                    // InternalSignalDSL.g:5153:8: lv_type_3_0= ruleJvmTypeReference
                     {
                     if ( state.backtracking==0 ) {
 
@@ -13873,18 +14141,18 @@
 
                     }
 
-                    // InternalSignalDSL.g:5071:6: ( (lv_name_4_0= ruleValidID ) )
-                    // InternalSignalDSL.g:5072:7: (lv_name_4_0= ruleValidID )
+                    // InternalSignalDSL.g:5170:6: ( (lv_name_4_0= ruleValidID ) )
+                    // InternalSignalDSL.g:5171:7: (lv_name_4_0= ruleValidID )
                     {
-                    // InternalSignalDSL.g:5072:7: (lv_name_4_0= ruleValidID )
-                    // InternalSignalDSL.g:5073:8: lv_name_4_0= ruleValidID
+                    // InternalSignalDSL.g:5171:7: (lv_name_4_0= ruleValidID )
+                    // InternalSignalDSL.g:5172:8: lv_name_4_0= ruleValidID
                     {
                     if ( state.backtracking==0 ) {
 
                       								newCompositeNode(grammarAccess.getXVariableDeclarationAccess().getNameValidIDParserRuleCall_2_0_0_1_0());
                       							
                     }
-                    pushFollow(FOLLOW_77);
+                    pushFollow(FOLLOW_80);
                     lv_name_4_0=ruleValidID();
 
                     state._fsp--;
@@ -13918,20 +14186,20 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:5093:4: ( (lv_name_5_0= ruleValidID ) )
+                    // InternalSignalDSL.g:5192:4: ( (lv_name_5_0= ruleValidID ) )
                     {
-                    // InternalSignalDSL.g:5093:4: ( (lv_name_5_0= ruleValidID ) )
-                    // InternalSignalDSL.g:5094:5: (lv_name_5_0= ruleValidID )
+                    // InternalSignalDSL.g:5192:4: ( (lv_name_5_0= ruleValidID ) )
+                    // InternalSignalDSL.g:5193:5: (lv_name_5_0= ruleValidID )
                     {
-                    // InternalSignalDSL.g:5094:5: (lv_name_5_0= ruleValidID )
-                    // InternalSignalDSL.g:5095:6: lv_name_5_0= ruleValidID
+                    // InternalSignalDSL.g:5193:5: (lv_name_5_0= ruleValidID )
+                    // InternalSignalDSL.g:5194:6: lv_name_5_0= ruleValidID
                     {
                     if ( state.backtracking==0 ) {
 
                       						newCompositeNode(grammarAccess.getXVariableDeclarationAccess().getNameValidIDParserRuleCall_2_1_0());
                       					
                     }
-                    pushFollow(FOLLOW_77);
+                    pushFollow(FOLLOW_80);
                     lv_name_5_0=ruleValidID();
 
                     state._fsp--;
@@ -13961,28 +14229,28 @@
 
             }
 
-            // InternalSignalDSL.g:5113:3: (otherlv_6= '=' ( (lv_right_7_0= ruleXExpression ) ) )?
-            int alt86=2;
-            int LA86_0 = input.LA(1);
+            // InternalSignalDSL.g:5212:3: (otherlv_6= '=' ( (lv_right_7_0= ruleXExpression ) ) )?
+            int alt88=2;
+            int LA88_0 = input.LA(1);
 
-            if ( (LA86_0==30) ) {
-                alt86=1;
+            if ( (LA88_0==32) ) {
+                alt88=1;
             }
-            switch (alt86) {
+            switch (alt88) {
                 case 1 :
-                    // InternalSignalDSL.g:5114:4: otherlv_6= '=' ( (lv_right_7_0= ruleXExpression ) )
+                    // InternalSignalDSL.g:5213:4: otherlv_6= '=' ( (lv_right_7_0= ruleXExpression ) )
                     {
-                    otherlv_6=(Token)match(input,30,FOLLOW_23); if (state.failed) return current;
+                    otherlv_6=(Token)match(input,32,FOLLOW_26); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				newLeafNode(otherlv_6, grammarAccess.getXVariableDeclarationAccess().getEqualsSignKeyword_3_0());
                       			
                     }
-                    // InternalSignalDSL.g:5118:4: ( (lv_right_7_0= ruleXExpression ) )
-                    // InternalSignalDSL.g:5119:5: (lv_right_7_0= ruleXExpression )
+                    // InternalSignalDSL.g:5217:4: ( (lv_right_7_0= ruleXExpression ) )
+                    // InternalSignalDSL.g:5218:5: (lv_right_7_0= ruleXExpression )
                     {
-                    // InternalSignalDSL.g:5119:5: (lv_right_7_0= ruleXExpression )
-                    // InternalSignalDSL.g:5120:6: lv_right_7_0= ruleXExpression
+                    // InternalSignalDSL.g:5218:5: (lv_right_7_0= ruleXExpression )
+                    // InternalSignalDSL.g:5219:6: lv_right_7_0= ruleXExpression
                     {
                     if ( state.backtracking==0 ) {
 
@@ -14044,7 +14312,7 @@
 
 
     // $ANTLR start "entryRuleJvmFormalParameter"
-    // InternalSignalDSL.g:5142:1: entryRuleJvmFormalParameter returns [EObject current=null] : iv_ruleJvmFormalParameter= ruleJvmFormalParameter EOF ;
+    // InternalSignalDSL.g:5241:1: entryRuleJvmFormalParameter returns [EObject current=null] : iv_ruleJvmFormalParameter= ruleJvmFormalParameter EOF ;
     public final EObject entryRuleJvmFormalParameter() throws RecognitionException {
         EObject current = null;
 
@@ -14052,8 +14320,8 @@
 
 
         try {
-            // InternalSignalDSL.g:5142:59: (iv_ruleJvmFormalParameter= ruleJvmFormalParameter EOF )
-            // InternalSignalDSL.g:5143:2: iv_ruleJvmFormalParameter= ruleJvmFormalParameter EOF
+            // InternalSignalDSL.g:5241:59: (iv_ruleJvmFormalParameter= ruleJvmFormalParameter EOF )
+            // InternalSignalDSL.g:5242:2: iv_ruleJvmFormalParameter= ruleJvmFormalParameter EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getJvmFormalParameterRule()); 
@@ -14084,7 +14352,7 @@
 
 
     // $ANTLR start "ruleJvmFormalParameter"
-    // InternalSignalDSL.g:5149:1: ruleJvmFormalParameter returns [EObject current=null] : ( ( (lv_parameterType_0_0= ruleJvmTypeReference ) )? ( (lv_name_1_0= ruleValidID ) ) ) ;
+    // InternalSignalDSL.g:5248: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;
 
@@ -14097,32 +14365,32 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:5155:2: ( ( ( (lv_parameterType_0_0= ruleJvmTypeReference ) )? ( (lv_name_1_0= ruleValidID ) ) ) )
-            // InternalSignalDSL.g:5156:2: ( ( (lv_parameterType_0_0= ruleJvmTypeReference ) )? ( (lv_name_1_0= ruleValidID ) ) )
+            // InternalSignalDSL.g:5254:2: ( ( ( (lv_parameterType_0_0= ruleJvmTypeReference ) )? ( (lv_name_1_0= ruleValidID ) ) ) )
+            // InternalSignalDSL.g:5255:2: ( ( (lv_parameterType_0_0= ruleJvmTypeReference ) )? ( (lv_name_1_0= ruleValidID ) ) )
             {
-            // InternalSignalDSL.g:5156:2: ( ( (lv_parameterType_0_0= ruleJvmTypeReference ) )? ( (lv_name_1_0= ruleValidID ) ) )
-            // InternalSignalDSL.g:5157:3: ( (lv_parameterType_0_0= ruleJvmTypeReference ) )? ( (lv_name_1_0= ruleValidID ) )
+            // InternalSignalDSL.g:5255:2: ( ( (lv_parameterType_0_0= ruleJvmTypeReference ) )? ( (lv_name_1_0= ruleValidID ) ) )
+            // InternalSignalDSL.g:5256:3: ( (lv_parameterType_0_0= ruleJvmTypeReference ) )? ( (lv_name_1_0= ruleValidID ) )
             {
-            // InternalSignalDSL.g:5157:3: ( (lv_parameterType_0_0= ruleJvmTypeReference ) )?
-            int alt87=2;
-            int LA87_0 = input.LA(1);
+            // InternalSignalDSL.g:5256:3: ( (lv_parameterType_0_0= ruleJvmTypeReference ) )?
+            int alt89=2;
+            int LA89_0 = input.LA(1);
 
-            if ( (LA87_0==RULE_ID) ) {
-                int LA87_1 = input.LA(2);
+            if ( (LA89_0==RULE_ID) ) {
+                int LA89_1 = input.LA(2);
 
-                if ( (LA87_1==RULE_ID||LA87_1==32||LA87_1==39||LA87_1==64) ) {
-                    alt87=1;
+                if ( (LA89_1==RULE_ID||LA89_1==34||LA89_1==41||LA89_1==66) ) {
+                    alt89=1;
                 }
             }
-            else if ( (LA87_0==27||LA87_0==52) ) {
-                alt87=1;
+            else if ( (LA89_0==29||LA89_0==54) ) {
+                alt89=1;
             }
-            switch (alt87) {
+            switch (alt89) {
                 case 1 :
-                    // InternalSignalDSL.g:5158:4: (lv_parameterType_0_0= ruleJvmTypeReference )
+                    // InternalSignalDSL.g:5257:4: (lv_parameterType_0_0= ruleJvmTypeReference )
                     {
-                    // InternalSignalDSL.g:5158:4: (lv_parameterType_0_0= ruleJvmTypeReference )
-                    // InternalSignalDSL.g:5159:5: lv_parameterType_0_0= ruleJvmTypeReference
+                    // InternalSignalDSL.g:5257:4: (lv_parameterType_0_0= ruleJvmTypeReference )
+                    // InternalSignalDSL.g:5258:5: lv_parameterType_0_0= ruleJvmTypeReference
                     {
                     if ( state.backtracking==0 ) {
 
@@ -14156,11 +14424,11 @@
 
             }
 
-            // InternalSignalDSL.g:5176:3: ( (lv_name_1_0= ruleValidID ) )
-            // InternalSignalDSL.g:5177:4: (lv_name_1_0= ruleValidID )
+            // InternalSignalDSL.g:5275:3: ( (lv_name_1_0= ruleValidID ) )
+            // InternalSignalDSL.g:5276:4: (lv_name_1_0= ruleValidID )
             {
-            // InternalSignalDSL.g:5177:4: (lv_name_1_0= ruleValidID )
-            // InternalSignalDSL.g:5178:5: lv_name_1_0= ruleValidID
+            // InternalSignalDSL.g:5276:4: (lv_name_1_0= ruleValidID )
+            // InternalSignalDSL.g:5277:5: lv_name_1_0= ruleValidID
             {
             if ( state.backtracking==0 ) {
 
@@ -14216,7 +14484,7 @@
 
 
     // $ANTLR start "entryRuleFullJvmFormalParameter"
-    // InternalSignalDSL.g:5199:1: entryRuleFullJvmFormalParameter returns [EObject current=null] : iv_ruleFullJvmFormalParameter= ruleFullJvmFormalParameter EOF ;
+    // InternalSignalDSL.g:5298:1: entryRuleFullJvmFormalParameter returns [EObject current=null] : iv_ruleFullJvmFormalParameter= ruleFullJvmFormalParameter EOF ;
     public final EObject entryRuleFullJvmFormalParameter() throws RecognitionException {
         EObject current = null;
 
@@ -14224,8 +14492,8 @@
 
 
         try {
-            // InternalSignalDSL.g:5199:63: (iv_ruleFullJvmFormalParameter= ruleFullJvmFormalParameter EOF )
-            // InternalSignalDSL.g:5200:2: iv_ruleFullJvmFormalParameter= ruleFullJvmFormalParameter EOF
+            // InternalSignalDSL.g:5298:63: (iv_ruleFullJvmFormalParameter= ruleFullJvmFormalParameter EOF )
+            // InternalSignalDSL.g:5299:2: iv_ruleFullJvmFormalParameter= ruleFullJvmFormalParameter EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getFullJvmFormalParameterRule()); 
@@ -14256,7 +14524,7 @@
 
 
     // $ANTLR start "ruleFullJvmFormalParameter"
-    // InternalSignalDSL.g:5206:1: ruleFullJvmFormalParameter returns [EObject current=null] : ( ( (lv_parameterType_0_0= ruleJvmTypeReference ) ) ( (lv_name_1_0= ruleValidID ) ) ) ;
+    // InternalSignalDSL.g:5305: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;
 
@@ -14269,17 +14537,17 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:5212:2: ( ( ( (lv_parameterType_0_0= ruleJvmTypeReference ) ) ( (lv_name_1_0= ruleValidID ) ) ) )
-            // InternalSignalDSL.g:5213:2: ( ( (lv_parameterType_0_0= ruleJvmTypeReference ) ) ( (lv_name_1_0= ruleValidID ) ) )
+            // InternalSignalDSL.g:5311:2: ( ( ( (lv_parameterType_0_0= ruleJvmTypeReference ) ) ( (lv_name_1_0= ruleValidID ) ) ) )
+            // InternalSignalDSL.g:5312:2: ( ( (lv_parameterType_0_0= ruleJvmTypeReference ) ) ( (lv_name_1_0= ruleValidID ) ) )
             {
-            // InternalSignalDSL.g:5213:2: ( ( (lv_parameterType_0_0= ruleJvmTypeReference ) ) ( (lv_name_1_0= ruleValidID ) ) )
-            // InternalSignalDSL.g:5214:3: ( (lv_parameterType_0_0= ruleJvmTypeReference ) ) ( (lv_name_1_0= ruleValidID ) )
+            // InternalSignalDSL.g:5312:2: ( ( (lv_parameterType_0_0= ruleJvmTypeReference ) ) ( (lv_name_1_0= ruleValidID ) ) )
+            // InternalSignalDSL.g:5313:3: ( (lv_parameterType_0_0= ruleJvmTypeReference ) ) ( (lv_name_1_0= ruleValidID ) )
             {
-            // InternalSignalDSL.g:5214:3: ( (lv_parameterType_0_0= ruleJvmTypeReference ) )
-            // InternalSignalDSL.g:5215:4: (lv_parameterType_0_0= ruleJvmTypeReference )
+            // InternalSignalDSL.g:5313:3: ( (lv_parameterType_0_0= ruleJvmTypeReference ) )
+            // InternalSignalDSL.g:5314:4: (lv_parameterType_0_0= ruleJvmTypeReference )
             {
-            // InternalSignalDSL.g:5215:4: (lv_parameterType_0_0= ruleJvmTypeReference )
-            // InternalSignalDSL.g:5216:5: lv_parameterType_0_0= ruleJvmTypeReference
+            // InternalSignalDSL.g:5314:4: (lv_parameterType_0_0= ruleJvmTypeReference )
+            // InternalSignalDSL.g:5315:5: lv_parameterType_0_0= ruleJvmTypeReference
             {
             if ( state.backtracking==0 ) {
 
@@ -14310,11 +14578,11 @@
 
             }
 
-            // InternalSignalDSL.g:5233:3: ( (lv_name_1_0= ruleValidID ) )
-            // InternalSignalDSL.g:5234:4: (lv_name_1_0= ruleValidID )
+            // InternalSignalDSL.g:5332:3: ( (lv_name_1_0= ruleValidID ) )
+            // InternalSignalDSL.g:5333:4: (lv_name_1_0= ruleValidID )
             {
-            // InternalSignalDSL.g:5234:4: (lv_name_1_0= ruleValidID )
-            // InternalSignalDSL.g:5235:5: lv_name_1_0= ruleValidID
+            // InternalSignalDSL.g:5333:4: (lv_name_1_0= ruleValidID )
+            // InternalSignalDSL.g:5334:5: lv_name_1_0= ruleValidID
             {
             if ( state.backtracking==0 ) {
 
@@ -14370,7 +14638,7 @@
 
 
     // $ANTLR start "entryRuleXFeatureCall"
-    // InternalSignalDSL.g:5256:1: entryRuleXFeatureCall returns [EObject current=null] : iv_ruleXFeatureCall= ruleXFeatureCall EOF ;
+    // InternalSignalDSL.g:5355:1: entryRuleXFeatureCall returns [EObject current=null] : iv_ruleXFeatureCall= ruleXFeatureCall EOF ;
     public final EObject entryRuleXFeatureCall() throws RecognitionException {
         EObject current = null;
 
@@ -14378,8 +14646,8 @@
 
 
         try {
-            // InternalSignalDSL.g:5256:53: (iv_ruleXFeatureCall= ruleXFeatureCall EOF )
-            // InternalSignalDSL.g:5257:2: iv_ruleXFeatureCall= ruleXFeatureCall EOF
+            // InternalSignalDSL.g:5355:53: (iv_ruleXFeatureCall= ruleXFeatureCall EOF )
+            // InternalSignalDSL.g:5356:2: iv_ruleXFeatureCall= ruleXFeatureCall EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXFeatureCallRule()); 
@@ -14410,7 +14678,7 @@
 
 
     // $ANTLR start "ruleXFeatureCall"
-    // InternalSignalDSL.g:5263: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:5362: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;
 
@@ -14437,14 +14705,14 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:5269: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:5270: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:5368: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:5369: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:5270: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:5271: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:5369: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:5370: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:5271:3: ()
-            // InternalSignalDSL.g:5272:4: 
+            // InternalSignalDSL.g:5370:3: ()
+            // InternalSignalDSL.g:5371:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -14456,35 +14724,35 @@
 
             }
 
-            // InternalSignalDSL.g:5278:3: (otherlv_1= '<' ( (lv_typeArguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' )?
-            int alt89=2;
-            int LA89_0 = input.LA(1);
+            // InternalSignalDSL.g:5377:3: (otherlv_1= '<' ( (lv_typeArguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' )?
+            int alt91=2;
+            int LA91_0 = input.LA(1);
 
-            if ( (LA89_0==39) ) {
-                alt89=1;
+            if ( (LA91_0==41) ) {
+                alt91=1;
             }
-            switch (alt89) {
+            switch (alt91) {
                 case 1 :
-                    // InternalSignalDSL.g:5279:4: otherlv_1= '<' ( (lv_typeArguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>'
+                    // InternalSignalDSL.g:5378:4: otherlv_1= '<' ( (lv_typeArguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>'
                     {
-                    otherlv_1=(Token)match(input,39,FOLLOW_48); if (state.failed) return current;
+                    otherlv_1=(Token)match(input,41,FOLLOW_51); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				newLeafNode(otherlv_1, grammarAccess.getXFeatureCallAccess().getLessThanSignKeyword_1_0());
                       			
                     }
-                    // InternalSignalDSL.g:5283:4: ( (lv_typeArguments_2_0= ruleJvmArgumentTypeReference ) )
-                    // InternalSignalDSL.g:5284:5: (lv_typeArguments_2_0= ruleJvmArgumentTypeReference )
+                    // InternalSignalDSL.g:5382:4: ( (lv_typeArguments_2_0= ruleJvmArgumentTypeReference ) )
+                    // InternalSignalDSL.g:5383:5: (lv_typeArguments_2_0= ruleJvmArgumentTypeReference )
                     {
-                    // InternalSignalDSL.g:5284:5: (lv_typeArguments_2_0= ruleJvmArgumentTypeReference )
-                    // InternalSignalDSL.g:5285:6: lv_typeArguments_2_0= ruleJvmArgumentTypeReference
+                    // InternalSignalDSL.g:5383:5: (lv_typeArguments_2_0= ruleJvmArgumentTypeReference )
+                    // InternalSignalDSL.g:5384:6: lv_typeArguments_2_0= ruleJvmArgumentTypeReference
                     {
                     if ( state.backtracking==0 ) {
 
                       						newCompositeNode(grammarAccess.getXFeatureCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_1_1_0());
                       					
                     }
-                    pushFollow(FOLLOW_49);
+                    pushFollow(FOLLOW_52);
                     lv_typeArguments_2_0=ruleJvmArgumentTypeReference();
 
                     state._fsp--;
@@ -14508,39 +14776,39 @@
 
                     }
 
-                    // InternalSignalDSL.g:5302:4: (otherlv_3= ',' ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) )*
-                    loop88:
+                    // InternalSignalDSL.g:5401:4: (otherlv_3= ',' ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) )*
+                    loop90:
                     do {
-                        int alt88=2;
-                        int LA88_0 = input.LA(1);
+                        int alt90=2;
+                        int LA90_0 = input.LA(1);
 
-                        if ( (LA88_0==28) ) {
-                            alt88=1;
+                        if ( (LA90_0==30) ) {
+                            alt90=1;
                         }
 
 
-                        switch (alt88) {
+                        switch (alt90) {
                     	case 1 :
-                    	    // InternalSignalDSL.g:5303:5: otherlv_3= ',' ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) )
+                    	    // InternalSignalDSL.g:5402:5: otherlv_3= ',' ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) )
                     	    {
-                    	    otherlv_3=(Token)match(input,28,FOLLOW_48); if (state.failed) return current;
+                    	    otherlv_3=(Token)match(input,30,FOLLOW_51); if (state.failed) return current;
                     	    if ( state.backtracking==0 ) {
 
                     	      					newLeafNode(otherlv_3, grammarAccess.getXFeatureCallAccess().getCommaKeyword_1_2_0());
                     	      				
                     	    }
-                    	    // InternalSignalDSL.g:5307:5: ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) )
-                    	    // InternalSignalDSL.g:5308:6: (lv_typeArguments_4_0= ruleJvmArgumentTypeReference )
+                    	    // InternalSignalDSL.g:5406:5: ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) )
+                    	    // InternalSignalDSL.g:5407:6: (lv_typeArguments_4_0= ruleJvmArgumentTypeReference )
                     	    {
-                    	    // InternalSignalDSL.g:5308:6: (lv_typeArguments_4_0= ruleJvmArgumentTypeReference )
-                    	    // InternalSignalDSL.g:5309:7: lv_typeArguments_4_0= ruleJvmArgumentTypeReference
+                    	    // InternalSignalDSL.g:5407:6: (lv_typeArguments_4_0= ruleJvmArgumentTypeReference )
+                    	    // InternalSignalDSL.g:5408:7: lv_typeArguments_4_0= ruleJvmArgumentTypeReference
                     	    {
                     	    if ( state.backtracking==0 ) {
 
                     	      							newCompositeNode(grammarAccess.getXFeatureCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_1_2_1_0());
                     	      						
                     	    }
-                    	    pushFollow(FOLLOW_49);
+                    	    pushFollow(FOLLOW_52);
                     	    lv_typeArguments_4_0=ruleJvmArgumentTypeReference();
 
                     	    state._fsp--;
@@ -14569,11 +14837,11 @@
                     	    break;
 
                     	default :
-                    	    break loop88;
+                    	    break loop90;
                         }
                     } while (true);
 
-                    otherlv_5=(Token)match(input,40,FOLLOW_47); if (state.failed) return current;
+                    otherlv_5=(Token)match(input,42,FOLLOW_50); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				newLeafNode(otherlv_5, grammarAccess.getXFeatureCallAccess().getGreaterThanSignKeyword_1_3());
@@ -14585,11 +14853,11 @@
 
             }
 
-            // InternalSignalDSL.g:5332:3: ( ( ruleIdOrSuper ) )
-            // InternalSignalDSL.g:5333:4: ( ruleIdOrSuper )
+            // InternalSignalDSL.g:5431:3: ( ( ruleIdOrSuper ) )
+            // InternalSignalDSL.g:5432:4: ( ruleIdOrSuper )
             {
-            // InternalSignalDSL.g:5333:4: ( ruleIdOrSuper )
-            // InternalSignalDSL.g:5334:5: ruleIdOrSuper
+            // InternalSignalDSL.g:5432:4: ( ruleIdOrSuper )
+            // InternalSignalDSL.g:5433:5: ruleIdOrSuper
             {
             if ( state.backtracking==0 ) {
 
@@ -14603,7 +14871,7 @@
               					newCompositeNode(grammarAccess.getXFeatureCallAccess().getFeatureJvmIdentifiableElementCrossReference_2_0());
               				
             }
-            pushFollow(FOLLOW_78);
+            pushFollow(FOLLOW_81);
             ruleIdOrSuper();
 
             state._fsp--;
@@ -14619,20 +14887,20 @@
 
             }
 
-            // InternalSignalDSL.g:5348: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 alt92=2;
-            alt92 = dfa92.predict(input);
-            switch (alt92) {
+            // InternalSignalDSL.g:5447: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 alt94=2;
+            alt94 = dfa94.predict(input);
+            switch (alt94) {
                 case 1 :
-                    // InternalSignalDSL.g:5349: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:5448: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:5349:4: ( ( ( '(' ) )=> (lv_explicitOperationCall_7_0= '(' ) )
-                    // InternalSignalDSL.g:5350:5: ( ( '(' ) )=> (lv_explicitOperationCall_7_0= '(' )
+                    // InternalSignalDSL.g:5448:4: ( ( ( '(' ) )=> (lv_explicitOperationCall_7_0= '(' ) )
+                    // InternalSignalDSL.g:5449:5: ( ( '(' ) )=> (lv_explicitOperationCall_7_0= '(' )
                     {
-                    // InternalSignalDSL.g:5354:5: (lv_explicitOperationCall_7_0= '(' )
-                    // InternalSignalDSL.g:5355:6: lv_explicitOperationCall_7_0= '('
+                    // InternalSignalDSL.g:5453:5: (lv_explicitOperationCall_7_0= '(' )
+                    // InternalSignalDSL.g:5454:6: lv_explicitOperationCall_7_0= '('
                     {
-                    lv_explicitOperationCall_7_0=(Token)match(input,27,FOLLOW_51); if (state.failed) return current;
+                    lv_explicitOperationCall_7_0=(Token)match(input,29,FOLLOW_54); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       						newLeafNode(lv_explicitOperationCall_7_0, grammarAccess.getXFeatureCallAccess().getExplicitOperationCallLeftParenthesisKeyword_3_0_0());
@@ -14652,25 +14920,25 @@
 
                     }
 
-                    // InternalSignalDSL.g:5367:4: ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure ) ) | ( ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )* ) )?
-                    int alt91=3;
-                    alt91 = dfa91.predict(input);
-                    switch (alt91) {
+                    // InternalSignalDSL.g:5466:4: ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure ) ) | ( ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )* ) )?
+                    int alt93=3;
+                    alt93 = dfa93.predict(input);
+                    switch (alt93) {
                         case 1 :
-                            // InternalSignalDSL.g:5368:5: ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure ) )
+                            // InternalSignalDSL.g:5467:5: ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure ) )
                             {
-                            // InternalSignalDSL.g:5368:5: ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure ) )
-                            // InternalSignalDSL.g:5369:6: ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure )
+                            // InternalSignalDSL.g:5467:5: ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure ) )
+                            // InternalSignalDSL.g:5468:6: ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure )
                             {
-                            // InternalSignalDSL.g:5394:6: (lv_featureCallArguments_8_0= ruleXShortClosure )
-                            // InternalSignalDSL.g:5395:7: lv_featureCallArguments_8_0= ruleXShortClosure
+                            // InternalSignalDSL.g:5493:6: (lv_featureCallArguments_8_0= ruleXShortClosure )
+                            // InternalSignalDSL.g:5494:7: lv_featureCallArguments_8_0= ruleXShortClosure
                             {
                             if ( state.backtracking==0 ) {
 
                               							newCompositeNode(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsXShortClosureParserRuleCall_3_1_0_0());
                               						
                             }
-                            pushFollow(FOLLOW_21);
+                            pushFollow(FOLLOW_24);
                             lv_featureCallArguments_8_0=ruleXShortClosure();
 
                             state._fsp--;
@@ -14698,23 +14966,23 @@
                             }
                             break;
                         case 2 :
-                            // InternalSignalDSL.g:5413:5: ( ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )* )
+                            // InternalSignalDSL.g:5512:5: ( ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )* )
                             {
-                            // InternalSignalDSL.g:5413:5: ( ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )* )
-                            // InternalSignalDSL.g:5414:6: ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )*
+                            // InternalSignalDSL.g:5512:5: ( ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )* )
+                            // InternalSignalDSL.g:5513:6: ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )*
                             {
-                            // InternalSignalDSL.g:5414:6: ( (lv_featureCallArguments_9_0= ruleXExpression ) )
-                            // InternalSignalDSL.g:5415:7: (lv_featureCallArguments_9_0= ruleXExpression )
+                            // InternalSignalDSL.g:5513:6: ( (lv_featureCallArguments_9_0= ruleXExpression ) )
+                            // InternalSignalDSL.g:5514:7: (lv_featureCallArguments_9_0= ruleXExpression )
                             {
-                            // InternalSignalDSL.g:5415:7: (lv_featureCallArguments_9_0= ruleXExpression )
-                            // InternalSignalDSL.g:5416:8: lv_featureCallArguments_9_0= ruleXExpression
+                            // InternalSignalDSL.g:5514:7: (lv_featureCallArguments_9_0= ruleXExpression )
+                            // InternalSignalDSL.g:5515:8: lv_featureCallArguments_9_0= ruleXExpression
                             {
                             if ( state.backtracking==0 ) {
 
                               								newCompositeNode(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsXExpressionParserRuleCall_3_1_1_0_0());
                               							
                             }
-                            pushFollow(FOLLOW_20);
+                            pushFollow(FOLLOW_23);
                             lv_featureCallArguments_9_0=ruleXExpression();
 
                             state._fsp--;
@@ -14738,39 +15006,39 @@
 
                             }
 
-                            // InternalSignalDSL.g:5433:6: (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )*
-                            loop90:
+                            // InternalSignalDSL.g:5532:6: (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )*
+                            loop92:
                             do {
-                                int alt90=2;
-                                int LA90_0 = input.LA(1);
+                                int alt92=2;
+                                int LA92_0 = input.LA(1);
 
-                                if ( (LA90_0==28) ) {
-                                    alt90=1;
+                                if ( (LA92_0==30) ) {
+                                    alt92=1;
                                 }
 
 
-                                switch (alt90) {
+                                switch (alt92) {
                             	case 1 :
-                            	    // InternalSignalDSL.g:5434:7: otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) )
+                            	    // InternalSignalDSL.g:5533:7: otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) )
                             	    {
-                            	    otherlv_10=(Token)match(input,28,FOLLOW_23); if (state.failed) return current;
+                            	    otherlv_10=(Token)match(input,30,FOLLOW_26); if (state.failed) return current;
                             	    if ( state.backtracking==0 ) {
 
                             	      							newLeafNode(otherlv_10, grammarAccess.getXFeatureCallAccess().getCommaKeyword_3_1_1_1_0());
                             	      						
                             	    }
-                            	    // InternalSignalDSL.g:5438:7: ( (lv_featureCallArguments_11_0= ruleXExpression ) )
-                            	    // InternalSignalDSL.g:5439:8: (lv_featureCallArguments_11_0= ruleXExpression )
+                            	    // InternalSignalDSL.g:5537:7: ( (lv_featureCallArguments_11_0= ruleXExpression ) )
+                            	    // InternalSignalDSL.g:5538:8: (lv_featureCallArguments_11_0= ruleXExpression )
                             	    {
-                            	    // InternalSignalDSL.g:5439:8: (lv_featureCallArguments_11_0= ruleXExpression )
-                            	    // InternalSignalDSL.g:5440:9: lv_featureCallArguments_11_0= ruleXExpression
+                            	    // InternalSignalDSL.g:5538:8: (lv_featureCallArguments_11_0= ruleXExpression )
+                            	    // InternalSignalDSL.g:5539:9: lv_featureCallArguments_11_0= ruleXExpression
                             	    {
                             	    if ( state.backtracking==0 ) {
 
                             	      									newCompositeNode(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsXExpressionParserRuleCall_3_1_1_1_1_0());
                             	      								
                             	    }
-                            	    pushFollow(FOLLOW_20);
+                            	    pushFollow(FOLLOW_23);
                             	    lv_featureCallArguments_11_0=ruleXExpression();
 
                             	    state._fsp--;
@@ -14799,7 +15067,7 @@
                             	    break;
 
                             	default :
-                            	    break loop90;
+                            	    break loop92;
                                 }
                             } while (true);
 
@@ -14812,7 +15080,7 @@
 
                     }
 
-                    otherlv_12=(Token)match(input,29,FOLLOW_79); if (state.failed) return current;
+                    otherlv_12=(Token)match(input,31,FOLLOW_82); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				newLeafNode(otherlv_12, grammarAccess.getXFeatureCallAccess().getRightParenthesisKeyword_3_2());
@@ -14824,15 +15092,15 @@
 
             }
 
-            // InternalSignalDSL.g:5465:3: ( ( ( () '[' ) )=> (lv_featureCallArguments_13_0= ruleXClosure ) )?
-            int alt93=2;
-            alt93 = dfa93.predict(input);
-            switch (alt93) {
+            // InternalSignalDSL.g:5564:3: ( ( ( () '[' ) )=> (lv_featureCallArguments_13_0= ruleXClosure ) )?
+            int alt95=2;
+            alt95 = dfa95.predict(input);
+            switch (alt95) {
                 case 1 :
-                    // InternalSignalDSL.g:5466:4: ( ( () '[' ) )=> (lv_featureCallArguments_13_0= ruleXClosure )
+                    // InternalSignalDSL.g:5565:4: ( ( () '[' ) )=> (lv_featureCallArguments_13_0= ruleXClosure )
                     {
-                    // InternalSignalDSL.g:5472:4: (lv_featureCallArguments_13_0= ruleXClosure )
-                    // InternalSignalDSL.g:5473:5: lv_featureCallArguments_13_0= ruleXClosure
+                    // InternalSignalDSL.g:5571:4: (lv_featureCallArguments_13_0= ruleXClosure )
+                    // InternalSignalDSL.g:5572:5: lv_featureCallArguments_13_0= ruleXClosure
                     {
                     if ( state.backtracking==0 ) {
 
@@ -14891,7 +15159,7 @@
 
 
     // $ANTLR start "entryRuleFeatureCallID"
-    // InternalSignalDSL.g:5494:1: entryRuleFeatureCallID returns [String current=null] : iv_ruleFeatureCallID= ruleFeatureCallID EOF ;
+    // InternalSignalDSL.g:5593:1: entryRuleFeatureCallID returns [String current=null] : iv_ruleFeatureCallID= ruleFeatureCallID EOF ;
     public final String entryRuleFeatureCallID() throws RecognitionException {
         String current = null;
 
@@ -14899,8 +15167,8 @@
 
 
         try {
-            // InternalSignalDSL.g:5494:53: (iv_ruleFeatureCallID= ruleFeatureCallID EOF )
-            // InternalSignalDSL.g:5495:2: iv_ruleFeatureCallID= ruleFeatureCallID EOF
+            // InternalSignalDSL.g:5593:53: (iv_ruleFeatureCallID= ruleFeatureCallID EOF )
+            // InternalSignalDSL.g:5594:2: iv_ruleFeatureCallID= ruleFeatureCallID EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getFeatureCallIDRule()); 
@@ -14931,7 +15199,7 @@
 
 
     // $ANTLR start "ruleFeatureCallID"
-    // InternalSignalDSL.g:5501:1: ruleFeatureCallID returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_ValidID_0= ruleValidID | kw= 'extends' | kw= 'static' | kw= 'import' | kw= 'extension' ) ;
+    // InternalSignalDSL.g:5600: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();
 
@@ -14943,48 +15211,48 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:5507:2: ( (this_ValidID_0= ruleValidID | kw= 'extends' | kw= 'static' | kw= 'import' | kw= 'extension' ) )
-            // InternalSignalDSL.g:5508:2: (this_ValidID_0= ruleValidID | kw= 'extends' | kw= 'static' | kw= 'import' | kw= 'extension' )
+            // InternalSignalDSL.g:5606:2: ( (this_ValidID_0= ruleValidID | kw= 'extends' | kw= 'static' | kw= 'import' | kw= 'extension' ) )
+            // InternalSignalDSL.g:5607:2: (this_ValidID_0= ruleValidID | kw= 'extends' | kw= 'static' | kw= 'import' | kw= 'extension' )
             {
-            // InternalSignalDSL.g:5508:2: (this_ValidID_0= ruleValidID | kw= 'extends' | kw= 'static' | kw= 'import' | kw= 'extension' )
-            int alt94=5;
+            // InternalSignalDSL.g:5607:2: (this_ValidID_0= ruleValidID | kw= 'extends' | kw= 'static' | kw= 'import' | kw= 'extension' )
+            int alt96=5;
             switch ( input.LA(1) ) {
             case RULE_ID:
                 {
-                alt94=1;
+                alt96=1;
                 }
                 break;
-            case 78:
+            case 80:
                 {
-                alt94=2;
+                alt96=2;
                 }
                 break;
-            case 21:
+            case 23:
                 {
-                alt94=3;
-                }
-                break;
-            case 20:
-                {
-                alt94=4;
+                alt96=3;
                 }
                 break;
             case 22:
                 {
-                alt94=5;
+                alt96=4;
+                }
+                break;
+            case 24:
+                {
+                alt96=5;
                 }
                 break;
             default:
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 94, 0, input);
+                    new NoViableAltException("", 96, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt94) {
+            switch (alt96) {
                 case 1 :
-                    // InternalSignalDSL.g:5509:3: this_ValidID_0= ruleValidID
+                    // InternalSignalDSL.g:5608:3: this_ValidID_0= ruleValidID
                     {
                     if ( state.backtracking==0 ) {
 
@@ -15010,9 +15278,9 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:5520:3: kw= 'extends'
+                    // InternalSignalDSL.g:5619:3: kw= 'extends'
                     {
-                    kw=(Token)match(input,78,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,80,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -15023,9 +15291,9 @@
                     }
                     break;
                 case 3 :
-                    // InternalSignalDSL.g:5526:3: kw= 'static'
+                    // InternalSignalDSL.g:5625:3: kw= 'static'
                     {
-                    kw=(Token)match(input,21,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,23,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -15036,9 +15304,9 @@
                     }
                     break;
                 case 4 :
-                    // InternalSignalDSL.g:5532:3: kw= 'import'
+                    // InternalSignalDSL.g:5631:3: kw= 'import'
                     {
-                    kw=(Token)match(input,20,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,22,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -15049,9 +15317,9 @@
                     }
                     break;
                 case 5 :
-                    // InternalSignalDSL.g:5538:3: kw= 'extension'
+                    // InternalSignalDSL.g:5637:3: kw= 'extension'
                     {
-                    kw=(Token)match(input,22,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,24,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -15086,7 +15354,7 @@
 
 
     // $ANTLR start "entryRuleIdOrSuper"
-    // InternalSignalDSL.g:5547:1: entryRuleIdOrSuper returns [String current=null] : iv_ruleIdOrSuper= ruleIdOrSuper EOF ;
+    // InternalSignalDSL.g:5646:1: entryRuleIdOrSuper returns [String current=null] : iv_ruleIdOrSuper= ruleIdOrSuper EOF ;
     public final String entryRuleIdOrSuper() throws RecognitionException {
         String current = null;
 
@@ -15094,8 +15362,8 @@
 
 
         try {
-            // InternalSignalDSL.g:5547:49: (iv_ruleIdOrSuper= ruleIdOrSuper EOF )
-            // InternalSignalDSL.g:5548:2: iv_ruleIdOrSuper= ruleIdOrSuper EOF
+            // InternalSignalDSL.g:5646:49: (iv_ruleIdOrSuper= ruleIdOrSuper EOF )
+            // InternalSignalDSL.g:5647:2: iv_ruleIdOrSuper= ruleIdOrSuper EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getIdOrSuperRule()); 
@@ -15126,7 +15394,7 @@
 
 
     // $ANTLR start "ruleIdOrSuper"
-    // InternalSignalDSL.g:5554:1: ruleIdOrSuper returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_FeatureCallID_0= ruleFeatureCallID | kw= 'super' ) ;
+    // InternalSignalDSL.g:5653:1: ruleIdOrSuper returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_FeatureCallID_0= ruleFeatureCallID | kw= 'super' ) ;
     public final AntlrDatatypeRuleToken ruleIdOrSuper() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
@@ -15138,29 +15406,29 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:5560:2: ( (this_FeatureCallID_0= ruleFeatureCallID | kw= 'super' ) )
-            // InternalSignalDSL.g:5561:2: (this_FeatureCallID_0= ruleFeatureCallID | kw= 'super' )
+            // InternalSignalDSL.g:5659:2: ( (this_FeatureCallID_0= ruleFeatureCallID | kw= 'super' ) )
+            // InternalSignalDSL.g:5660:2: (this_FeatureCallID_0= ruleFeatureCallID | kw= 'super' )
             {
-            // InternalSignalDSL.g:5561:2: (this_FeatureCallID_0= ruleFeatureCallID | kw= 'super' )
-            int alt95=2;
-            int LA95_0 = input.LA(1);
+            // InternalSignalDSL.g:5660:2: (this_FeatureCallID_0= ruleFeatureCallID | kw= 'super' )
+            int alt97=2;
+            int LA97_0 = input.LA(1);
 
-            if ( (LA95_0==RULE_ID||(LA95_0>=20 && LA95_0<=22)||LA95_0==78) ) {
-                alt95=1;
+            if ( (LA97_0==RULE_ID||(LA97_0>=22 && LA97_0<=24)||LA97_0==80) ) {
+                alt97=1;
             }
-            else if ( (LA95_0==79) ) {
-                alt95=2;
+            else if ( (LA97_0==81) ) {
+                alt97=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 95, 0, input);
+                    new NoViableAltException("", 97, 0, input);
 
                 throw nvae;
             }
-            switch (alt95) {
+            switch (alt97) {
                 case 1 :
-                    // InternalSignalDSL.g:5562:3: this_FeatureCallID_0= ruleFeatureCallID
+                    // InternalSignalDSL.g:5661:3: this_FeatureCallID_0= ruleFeatureCallID
                     {
                     if ( state.backtracking==0 ) {
 
@@ -15186,9 +15454,9 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:5573:3: kw= 'super'
+                    // InternalSignalDSL.g:5672:3: kw= 'super'
                     {
-                    kw=(Token)match(input,79,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,81,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -15223,7 +15491,7 @@
 
 
     // $ANTLR start "entryRuleXConstructorCall"
-    // InternalSignalDSL.g:5582:1: entryRuleXConstructorCall returns [EObject current=null] : iv_ruleXConstructorCall= ruleXConstructorCall EOF ;
+    // InternalSignalDSL.g:5681:1: entryRuleXConstructorCall returns [EObject current=null] : iv_ruleXConstructorCall= ruleXConstructorCall EOF ;
     public final EObject entryRuleXConstructorCall() throws RecognitionException {
         EObject current = null;
 
@@ -15231,8 +15499,8 @@
 
 
         try {
-            // InternalSignalDSL.g:5582:57: (iv_ruleXConstructorCall= ruleXConstructorCall EOF )
-            // InternalSignalDSL.g:5583:2: iv_ruleXConstructorCall= ruleXConstructorCall EOF
+            // InternalSignalDSL.g:5681:57: (iv_ruleXConstructorCall= ruleXConstructorCall EOF )
+            // InternalSignalDSL.g:5682:2: iv_ruleXConstructorCall= ruleXConstructorCall EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXConstructorCallRule()); 
@@ -15263,7 +15531,7 @@
 
 
     // $ANTLR start "ruleXConstructorCall"
-    // InternalSignalDSL.g:5589: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:5688: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;
 
@@ -15291,14 +15559,14 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:5595: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:5596: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:5694: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:5695: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:5596: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:5597: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:5695: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:5696: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:5597:3: ()
-            // InternalSignalDSL.g:5598:4: 
+            // InternalSignalDSL.g:5696:3: ()
+            // InternalSignalDSL.g:5697:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -15310,17 +15578,17 @@
 
             }
 
-            otherlv_1=(Token)match(input,80,FOLLOW_4); if (state.failed) return current;
+            otherlv_1=(Token)match(input,82,FOLLOW_4); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_1, grammarAccess.getXConstructorCallAccess().getNewKeyword_1());
               		
             }
-            // InternalSignalDSL.g:5608:3: ( ( ruleQualifiedName ) )
-            // InternalSignalDSL.g:5609:4: ( ruleQualifiedName )
+            // InternalSignalDSL.g:5707:3: ( ( ruleQualifiedName ) )
+            // InternalSignalDSL.g:5708:4: ( ruleQualifiedName )
             {
-            // InternalSignalDSL.g:5609:4: ( ruleQualifiedName )
-            // InternalSignalDSL.g:5610:5: ruleQualifiedName
+            // InternalSignalDSL.g:5708:4: ( ruleQualifiedName )
+            // InternalSignalDSL.g:5709:5: ruleQualifiedName
             {
             if ( state.backtracking==0 ) {
 
@@ -15334,7 +15602,7 @@
               					newCompositeNode(grammarAccess.getXConstructorCallAccess().getConstructorJvmConstructorCrossReference_2_0());
               				
             }
-            pushFollow(FOLLOW_80);
+            pushFollow(FOLLOW_83);
             ruleQualifiedName();
 
             state._fsp--;
@@ -15350,17 +15618,17 @@
 
             }
 
-            // InternalSignalDSL.g:5624:3: ( ( ( '<' )=>otherlv_3= '<' ) ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) (otherlv_5= ',' ( (lv_typeArguments_6_0= ruleJvmArgumentTypeReference ) ) )* otherlv_7= '>' )?
-            int alt97=2;
-            alt97 = dfa97.predict(input);
-            switch (alt97) {
+            // InternalSignalDSL.g:5723:3: ( ( ( '<' )=>otherlv_3= '<' ) ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) (otherlv_5= ',' ( (lv_typeArguments_6_0= ruleJvmArgumentTypeReference ) ) )* otherlv_7= '>' )?
+            int alt99=2;
+            alt99 = dfa99.predict(input);
+            switch (alt99) {
                 case 1 :
-                    // InternalSignalDSL.g:5625:4: ( ( '<' )=>otherlv_3= '<' ) ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) (otherlv_5= ',' ( (lv_typeArguments_6_0= ruleJvmArgumentTypeReference ) ) )* otherlv_7= '>'
+                    // InternalSignalDSL.g:5724:4: ( ( '<' )=>otherlv_3= '<' ) ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) (otherlv_5= ',' ( (lv_typeArguments_6_0= ruleJvmArgumentTypeReference ) ) )* otherlv_7= '>'
                     {
-                    // InternalSignalDSL.g:5625:4: ( ( '<' )=>otherlv_3= '<' )
-                    // InternalSignalDSL.g:5626:5: ( '<' )=>otherlv_3= '<'
+                    // InternalSignalDSL.g:5724:4: ( ( '<' )=>otherlv_3= '<' )
+                    // InternalSignalDSL.g:5725:5: ( '<' )=>otherlv_3= '<'
                     {
-                    otherlv_3=(Token)match(input,39,FOLLOW_48); if (state.failed) return current;
+                    otherlv_3=(Token)match(input,41,FOLLOW_51); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       					newLeafNode(otherlv_3, grammarAccess.getXConstructorCallAccess().getLessThanSignKeyword_3_0());
@@ -15369,18 +15637,18 @@
 
                     }
 
-                    // InternalSignalDSL.g:5632:4: ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) )
-                    // InternalSignalDSL.g:5633:5: (lv_typeArguments_4_0= ruleJvmArgumentTypeReference )
+                    // InternalSignalDSL.g:5731:4: ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) )
+                    // InternalSignalDSL.g:5732:5: (lv_typeArguments_4_0= ruleJvmArgumentTypeReference )
                     {
-                    // InternalSignalDSL.g:5633:5: (lv_typeArguments_4_0= ruleJvmArgumentTypeReference )
-                    // InternalSignalDSL.g:5634:6: lv_typeArguments_4_0= ruleJvmArgumentTypeReference
+                    // InternalSignalDSL.g:5732:5: (lv_typeArguments_4_0= ruleJvmArgumentTypeReference )
+                    // InternalSignalDSL.g:5733:6: lv_typeArguments_4_0= ruleJvmArgumentTypeReference
                     {
                     if ( state.backtracking==0 ) {
 
                       						newCompositeNode(grammarAccess.getXConstructorCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_3_1_0());
                       					
                     }
-                    pushFollow(FOLLOW_49);
+                    pushFollow(FOLLOW_52);
                     lv_typeArguments_4_0=ruleJvmArgumentTypeReference();
 
                     state._fsp--;
@@ -15404,39 +15672,39 @@
 
                     }
 
-                    // InternalSignalDSL.g:5651:4: (otherlv_5= ',' ( (lv_typeArguments_6_0= ruleJvmArgumentTypeReference ) ) )*
-                    loop96:
+                    // InternalSignalDSL.g:5750:4: (otherlv_5= ',' ( (lv_typeArguments_6_0= ruleJvmArgumentTypeReference ) ) )*
+                    loop98:
                     do {
-                        int alt96=2;
-                        int LA96_0 = input.LA(1);
+                        int alt98=2;
+                        int LA98_0 = input.LA(1);
 
-                        if ( (LA96_0==28) ) {
-                            alt96=1;
+                        if ( (LA98_0==30) ) {
+                            alt98=1;
                         }
 
 
-                        switch (alt96) {
+                        switch (alt98) {
                     	case 1 :
-                    	    // InternalSignalDSL.g:5652:5: otherlv_5= ',' ( (lv_typeArguments_6_0= ruleJvmArgumentTypeReference ) )
+                    	    // InternalSignalDSL.g:5751:5: otherlv_5= ',' ( (lv_typeArguments_6_0= ruleJvmArgumentTypeReference ) )
                     	    {
-                    	    otherlv_5=(Token)match(input,28,FOLLOW_48); if (state.failed) return current;
+                    	    otherlv_5=(Token)match(input,30,FOLLOW_51); if (state.failed) return current;
                     	    if ( state.backtracking==0 ) {
 
                     	      					newLeafNode(otherlv_5, grammarAccess.getXConstructorCallAccess().getCommaKeyword_3_2_0());
                     	      				
                     	    }
-                    	    // InternalSignalDSL.g:5656:5: ( (lv_typeArguments_6_0= ruleJvmArgumentTypeReference ) )
-                    	    // InternalSignalDSL.g:5657:6: (lv_typeArguments_6_0= ruleJvmArgumentTypeReference )
+                    	    // InternalSignalDSL.g:5755:5: ( (lv_typeArguments_6_0= ruleJvmArgumentTypeReference ) )
+                    	    // InternalSignalDSL.g:5756:6: (lv_typeArguments_6_0= ruleJvmArgumentTypeReference )
                     	    {
-                    	    // InternalSignalDSL.g:5657:6: (lv_typeArguments_6_0= ruleJvmArgumentTypeReference )
-                    	    // InternalSignalDSL.g:5658:7: lv_typeArguments_6_0= ruleJvmArgumentTypeReference
+                    	    // InternalSignalDSL.g:5756:6: (lv_typeArguments_6_0= ruleJvmArgumentTypeReference )
+                    	    // InternalSignalDSL.g:5757:7: lv_typeArguments_6_0= ruleJvmArgumentTypeReference
                     	    {
                     	    if ( state.backtracking==0 ) {
 
                     	      							newCompositeNode(grammarAccess.getXConstructorCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_3_2_1_0());
                     	      						
                     	    }
-                    	    pushFollow(FOLLOW_49);
+                    	    pushFollow(FOLLOW_52);
                     	    lv_typeArguments_6_0=ruleJvmArgumentTypeReference();
 
                     	    state._fsp--;
@@ -15465,11 +15733,11 @@
                     	    break;
 
                     	default :
-                    	    break loop96;
+                    	    break loop98;
                         }
                     } while (true);
 
-                    otherlv_7=(Token)match(input,40,FOLLOW_78); if (state.failed) return current;
+                    otherlv_7=(Token)match(input,42,FOLLOW_81); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				newLeafNode(otherlv_7, grammarAccess.getXConstructorCallAccess().getGreaterThanSignKeyword_3_3());
@@ -15481,20 +15749,20 @@
 
             }
 
-            // InternalSignalDSL.g:5681: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 alt100=2;
-            alt100 = dfa100.predict(input);
-            switch (alt100) {
+            // InternalSignalDSL.g:5780: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 alt102=2;
+            alt102 = dfa102.predict(input);
+            switch (alt102) {
                 case 1 :
-                    // InternalSignalDSL.g:5682: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:5781: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:5682:4: ( ( ( '(' ) )=> (lv_explicitConstructorCall_8_0= '(' ) )
-                    // InternalSignalDSL.g:5683:5: ( ( '(' ) )=> (lv_explicitConstructorCall_8_0= '(' )
+                    // InternalSignalDSL.g:5781:4: ( ( ( '(' ) )=> (lv_explicitConstructorCall_8_0= '(' ) )
+                    // InternalSignalDSL.g:5782:5: ( ( '(' ) )=> (lv_explicitConstructorCall_8_0= '(' )
                     {
-                    // InternalSignalDSL.g:5687:5: (lv_explicitConstructorCall_8_0= '(' )
-                    // InternalSignalDSL.g:5688:6: lv_explicitConstructorCall_8_0= '('
+                    // InternalSignalDSL.g:5786:5: (lv_explicitConstructorCall_8_0= '(' )
+                    // InternalSignalDSL.g:5787:6: lv_explicitConstructorCall_8_0= '('
                     {
-                    lv_explicitConstructorCall_8_0=(Token)match(input,27,FOLLOW_51); if (state.failed) return current;
+                    lv_explicitConstructorCall_8_0=(Token)match(input,29,FOLLOW_54); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       						newLeafNode(lv_explicitConstructorCall_8_0, grammarAccess.getXConstructorCallAccess().getExplicitConstructorCallLeftParenthesisKeyword_4_0_0());
@@ -15514,25 +15782,25 @@
 
                     }
 
-                    // InternalSignalDSL.g:5700:4: ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure ) ) | ( ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )* ) )?
-                    int alt99=3;
-                    alt99 = dfa99.predict(input);
-                    switch (alt99) {
+                    // InternalSignalDSL.g:5799:4: ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure ) ) | ( ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )* ) )?
+                    int alt101=3;
+                    alt101 = dfa101.predict(input);
+                    switch (alt101) {
                         case 1 :
-                            // InternalSignalDSL.g:5701:5: ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure ) )
+                            // InternalSignalDSL.g:5800:5: ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure ) )
                             {
-                            // InternalSignalDSL.g:5701:5: ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure ) )
-                            // InternalSignalDSL.g:5702:6: ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure )
+                            // InternalSignalDSL.g:5800:5: ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure ) )
+                            // InternalSignalDSL.g:5801:6: ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure )
                             {
-                            // InternalSignalDSL.g:5727:6: (lv_arguments_9_0= ruleXShortClosure )
-                            // InternalSignalDSL.g:5728:7: lv_arguments_9_0= ruleXShortClosure
+                            // InternalSignalDSL.g:5826:6: (lv_arguments_9_0= ruleXShortClosure )
+                            // InternalSignalDSL.g:5827:7: lv_arguments_9_0= ruleXShortClosure
                             {
                             if ( state.backtracking==0 ) {
 
                               							newCompositeNode(grammarAccess.getXConstructorCallAccess().getArgumentsXShortClosureParserRuleCall_4_1_0_0());
                               						
                             }
-                            pushFollow(FOLLOW_21);
+                            pushFollow(FOLLOW_24);
                             lv_arguments_9_0=ruleXShortClosure();
 
                             state._fsp--;
@@ -15560,23 +15828,23 @@
                             }
                             break;
                         case 2 :
-                            // InternalSignalDSL.g:5746:5: ( ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )* )
+                            // InternalSignalDSL.g:5845:5: ( ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )* )
                             {
-                            // InternalSignalDSL.g:5746:5: ( ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )* )
-                            // InternalSignalDSL.g:5747:6: ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )*
+                            // InternalSignalDSL.g:5845:5: ( ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )* )
+                            // InternalSignalDSL.g:5846:6: ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )*
                             {
-                            // InternalSignalDSL.g:5747:6: ( (lv_arguments_10_0= ruleXExpression ) )
-                            // InternalSignalDSL.g:5748:7: (lv_arguments_10_0= ruleXExpression )
+                            // InternalSignalDSL.g:5846:6: ( (lv_arguments_10_0= ruleXExpression ) )
+                            // InternalSignalDSL.g:5847:7: (lv_arguments_10_0= ruleXExpression )
                             {
-                            // InternalSignalDSL.g:5748:7: (lv_arguments_10_0= ruleXExpression )
-                            // InternalSignalDSL.g:5749:8: lv_arguments_10_0= ruleXExpression
+                            // InternalSignalDSL.g:5847:7: (lv_arguments_10_0= ruleXExpression )
+                            // InternalSignalDSL.g:5848:8: lv_arguments_10_0= ruleXExpression
                             {
                             if ( state.backtracking==0 ) {
 
                               								newCompositeNode(grammarAccess.getXConstructorCallAccess().getArgumentsXExpressionParserRuleCall_4_1_1_0_0());
                               							
                             }
-                            pushFollow(FOLLOW_20);
+                            pushFollow(FOLLOW_23);
                             lv_arguments_10_0=ruleXExpression();
 
                             state._fsp--;
@@ -15600,39 +15868,39 @@
 
                             }
 
-                            // InternalSignalDSL.g:5766:6: (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )*
-                            loop98:
+                            // InternalSignalDSL.g:5865:6: (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )*
+                            loop100:
                             do {
-                                int alt98=2;
-                                int LA98_0 = input.LA(1);
+                                int alt100=2;
+                                int LA100_0 = input.LA(1);
 
-                                if ( (LA98_0==28) ) {
-                                    alt98=1;
+                                if ( (LA100_0==30) ) {
+                                    alt100=1;
                                 }
 
 
-                                switch (alt98) {
+                                switch (alt100) {
                             	case 1 :
-                            	    // InternalSignalDSL.g:5767:7: otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) )
+                            	    // InternalSignalDSL.g:5866:7: otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) )
                             	    {
-                            	    otherlv_11=(Token)match(input,28,FOLLOW_23); if (state.failed) return current;
+                            	    otherlv_11=(Token)match(input,30,FOLLOW_26); if (state.failed) return current;
                             	    if ( state.backtracking==0 ) {
 
                             	      							newLeafNode(otherlv_11, grammarAccess.getXConstructorCallAccess().getCommaKeyword_4_1_1_1_0());
                             	      						
                             	    }
-                            	    // InternalSignalDSL.g:5771:7: ( (lv_arguments_12_0= ruleXExpression ) )
-                            	    // InternalSignalDSL.g:5772:8: (lv_arguments_12_0= ruleXExpression )
+                            	    // InternalSignalDSL.g:5870:7: ( (lv_arguments_12_0= ruleXExpression ) )
+                            	    // InternalSignalDSL.g:5871:8: (lv_arguments_12_0= ruleXExpression )
                             	    {
-                            	    // InternalSignalDSL.g:5772:8: (lv_arguments_12_0= ruleXExpression )
-                            	    // InternalSignalDSL.g:5773:9: lv_arguments_12_0= ruleXExpression
+                            	    // InternalSignalDSL.g:5871:8: (lv_arguments_12_0= ruleXExpression )
+                            	    // InternalSignalDSL.g:5872:9: lv_arguments_12_0= ruleXExpression
                             	    {
                             	    if ( state.backtracking==0 ) {
 
                             	      									newCompositeNode(grammarAccess.getXConstructorCallAccess().getArgumentsXExpressionParserRuleCall_4_1_1_1_1_0());
                             	      								
                             	    }
-                            	    pushFollow(FOLLOW_20);
+                            	    pushFollow(FOLLOW_23);
                             	    lv_arguments_12_0=ruleXExpression();
 
                             	    state._fsp--;
@@ -15661,7 +15929,7 @@
                             	    break;
 
                             	default :
-                            	    break loop98;
+                            	    break loop100;
                                 }
                             } while (true);
 
@@ -15674,7 +15942,7 @@
 
                     }
 
-                    otherlv_13=(Token)match(input,29,FOLLOW_79); if (state.failed) return current;
+                    otherlv_13=(Token)match(input,31,FOLLOW_82); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				newLeafNode(otherlv_13, grammarAccess.getXConstructorCallAccess().getRightParenthesisKeyword_4_2());
@@ -15686,15 +15954,15 @@
 
             }
 
-            // InternalSignalDSL.g:5798:3: ( ( ( () '[' ) )=> (lv_arguments_14_0= ruleXClosure ) )?
-            int alt101=2;
-            alt101 = dfa101.predict(input);
-            switch (alt101) {
+            // InternalSignalDSL.g:5897:3: ( ( ( () '[' ) )=> (lv_arguments_14_0= ruleXClosure ) )?
+            int alt103=2;
+            alt103 = dfa103.predict(input);
+            switch (alt103) {
                 case 1 :
-                    // InternalSignalDSL.g:5799:4: ( ( () '[' ) )=> (lv_arguments_14_0= ruleXClosure )
+                    // InternalSignalDSL.g:5898:4: ( ( () '[' ) )=> (lv_arguments_14_0= ruleXClosure )
                     {
-                    // InternalSignalDSL.g:5805:4: (lv_arguments_14_0= ruleXClosure )
-                    // InternalSignalDSL.g:5806:5: lv_arguments_14_0= ruleXClosure
+                    // InternalSignalDSL.g:5904:4: (lv_arguments_14_0= ruleXClosure )
+                    // InternalSignalDSL.g:5905:5: lv_arguments_14_0= ruleXClosure
                     {
                     if ( state.backtracking==0 ) {
 
@@ -15753,7 +16021,7 @@
 
 
     // $ANTLR start "entryRuleXBooleanLiteral"
-    // InternalSignalDSL.g:5827:1: entryRuleXBooleanLiteral returns [EObject current=null] : iv_ruleXBooleanLiteral= ruleXBooleanLiteral EOF ;
+    // InternalSignalDSL.g:5926:1: entryRuleXBooleanLiteral returns [EObject current=null] : iv_ruleXBooleanLiteral= ruleXBooleanLiteral EOF ;
     public final EObject entryRuleXBooleanLiteral() throws RecognitionException {
         EObject current = null;
 
@@ -15761,8 +16029,8 @@
 
 
         try {
-            // InternalSignalDSL.g:5827:56: (iv_ruleXBooleanLiteral= ruleXBooleanLiteral EOF )
-            // InternalSignalDSL.g:5828:2: iv_ruleXBooleanLiteral= ruleXBooleanLiteral EOF
+            // InternalSignalDSL.g:5926:56: (iv_ruleXBooleanLiteral= ruleXBooleanLiteral EOF )
+            // InternalSignalDSL.g:5927:2: iv_ruleXBooleanLiteral= ruleXBooleanLiteral EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXBooleanLiteralRule()); 
@@ -15793,7 +16061,7 @@
 
 
     // $ANTLR start "ruleXBooleanLiteral"
-    // InternalSignalDSL.g:5834:1: ruleXBooleanLiteral returns [EObject current=null] : ( () (otherlv_1= 'false' | ( (lv_isTrue_2_0= 'true' ) ) ) ) ;
+    // InternalSignalDSL.g:5933:1: ruleXBooleanLiteral returns [EObject current=null] : ( () (otherlv_1= 'false' | ( (lv_isTrue_2_0= 'true' ) ) ) ) ;
     public final EObject ruleXBooleanLiteral() throws RecognitionException {
         EObject current = null;
 
@@ -15804,14 +16072,14 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:5840:2: ( ( () (otherlv_1= 'false' | ( (lv_isTrue_2_0= 'true' ) ) ) ) )
-            // InternalSignalDSL.g:5841:2: ( () (otherlv_1= 'false' | ( (lv_isTrue_2_0= 'true' ) ) ) )
+            // InternalSignalDSL.g:5939:2: ( ( () (otherlv_1= 'false' | ( (lv_isTrue_2_0= 'true' ) ) ) ) )
+            // InternalSignalDSL.g:5940:2: ( () (otherlv_1= 'false' | ( (lv_isTrue_2_0= 'true' ) ) ) )
             {
-            // InternalSignalDSL.g:5841:2: ( () (otherlv_1= 'false' | ( (lv_isTrue_2_0= 'true' ) ) ) )
-            // InternalSignalDSL.g:5842:3: () (otherlv_1= 'false' | ( (lv_isTrue_2_0= 'true' ) ) )
+            // InternalSignalDSL.g:5940:2: ( () (otherlv_1= 'false' | ( (lv_isTrue_2_0= 'true' ) ) ) )
+            // InternalSignalDSL.g:5941:3: () (otherlv_1= 'false' | ( (lv_isTrue_2_0= 'true' ) ) )
             {
-            // InternalSignalDSL.g:5842:3: ()
-            // InternalSignalDSL.g:5843:4: 
+            // InternalSignalDSL.g:5941:3: ()
+            // InternalSignalDSL.g:5942:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -15823,28 +16091,28 @@
 
             }
 
-            // InternalSignalDSL.g:5849:3: (otherlv_1= 'false' | ( (lv_isTrue_2_0= 'true' ) ) )
-            int alt102=2;
-            int LA102_0 = input.LA(1);
+            // InternalSignalDSL.g:5948:3: (otherlv_1= 'false' | ( (lv_isTrue_2_0= 'true' ) ) )
+            int alt104=2;
+            int LA104_0 = input.LA(1);
 
-            if ( (LA102_0==81) ) {
-                alt102=1;
+            if ( (LA104_0==83) ) {
+                alt104=1;
             }
-            else if ( (LA102_0==82) ) {
-                alt102=2;
+            else if ( (LA104_0==84) ) {
+                alt104=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 102, 0, input);
+                    new NoViableAltException("", 104, 0, input);
 
                 throw nvae;
             }
-            switch (alt102) {
+            switch (alt104) {
                 case 1 :
-                    // InternalSignalDSL.g:5850:4: otherlv_1= 'false'
+                    // InternalSignalDSL.g:5949:4: otherlv_1= 'false'
                     {
-                    otherlv_1=(Token)match(input,81,FOLLOW_2); if (state.failed) return current;
+                    otherlv_1=(Token)match(input,83,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				newLeafNode(otherlv_1, grammarAccess.getXBooleanLiteralAccess().getFalseKeyword_1_0());
@@ -15854,15 +16122,15 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:5855:4: ( (lv_isTrue_2_0= 'true' ) )
+                    // InternalSignalDSL.g:5954:4: ( (lv_isTrue_2_0= 'true' ) )
                     {
-                    // InternalSignalDSL.g:5855:4: ( (lv_isTrue_2_0= 'true' ) )
-                    // InternalSignalDSL.g:5856:5: (lv_isTrue_2_0= 'true' )
+                    // InternalSignalDSL.g:5954:4: ( (lv_isTrue_2_0= 'true' ) )
+                    // InternalSignalDSL.g:5955:5: (lv_isTrue_2_0= 'true' )
                     {
-                    // InternalSignalDSL.g:5856:5: (lv_isTrue_2_0= 'true' )
-                    // InternalSignalDSL.g:5857:6: lv_isTrue_2_0= 'true'
+                    // InternalSignalDSL.g:5955:5: (lv_isTrue_2_0= 'true' )
+                    // InternalSignalDSL.g:5956:6: lv_isTrue_2_0= 'true'
                     {
-                    lv_isTrue_2_0=(Token)match(input,82,FOLLOW_2); if (state.failed) return current;
+                    lv_isTrue_2_0=(Token)match(input,84,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       						newLeafNode(lv_isTrue_2_0, grammarAccess.getXBooleanLiteralAccess().getIsTrueTrueKeyword_1_1_0());
@@ -15913,7 +16181,7 @@
 
 
     // $ANTLR start "entryRuleXNullLiteral"
-    // InternalSignalDSL.g:5874:1: entryRuleXNullLiteral returns [EObject current=null] : iv_ruleXNullLiteral= ruleXNullLiteral EOF ;
+    // InternalSignalDSL.g:5973:1: entryRuleXNullLiteral returns [EObject current=null] : iv_ruleXNullLiteral= ruleXNullLiteral EOF ;
     public final EObject entryRuleXNullLiteral() throws RecognitionException {
         EObject current = null;
 
@@ -15921,8 +16189,8 @@
 
 
         try {
-            // InternalSignalDSL.g:5874:53: (iv_ruleXNullLiteral= ruleXNullLiteral EOF )
-            // InternalSignalDSL.g:5875:2: iv_ruleXNullLiteral= ruleXNullLiteral EOF
+            // InternalSignalDSL.g:5973:53: (iv_ruleXNullLiteral= ruleXNullLiteral EOF )
+            // InternalSignalDSL.g:5974:2: iv_ruleXNullLiteral= ruleXNullLiteral EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXNullLiteralRule()); 
@@ -15953,7 +16221,7 @@
 
 
     // $ANTLR start "ruleXNullLiteral"
-    // InternalSignalDSL.g:5881:1: ruleXNullLiteral returns [EObject current=null] : ( () otherlv_1= 'null' ) ;
+    // InternalSignalDSL.g:5980:1: ruleXNullLiteral returns [EObject current=null] : ( () otherlv_1= 'null' ) ;
     public final EObject ruleXNullLiteral() throws RecognitionException {
         EObject current = null;
 
@@ -15963,14 +16231,14 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:5887:2: ( ( () otherlv_1= 'null' ) )
-            // InternalSignalDSL.g:5888:2: ( () otherlv_1= 'null' )
+            // InternalSignalDSL.g:5986:2: ( ( () otherlv_1= 'null' ) )
+            // InternalSignalDSL.g:5987:2: ( () otherlv_1= 'null' )
             {
-            // InternalSignalDSL.g:5888:2: ( () otherlv_1= 'null' )
-            // InternalSignalDSL.g:5889:3: () otherlv_1= 'null'
+            // InternalSignalDSL.g:5987:2: ( () otherlv_1= 'null' )
+            // InternalSignalDSL.g:5988:3: () otherlv_1= 'null'
             {
-            // InternalSignalDSL.g:5889:3: ()
-            // InternalSignalDSL.g:5890:4: 
+            // InternalSignalDSL.g:5988:3: ()
+            // InternalSignalDSL.g:5989:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -15982,7 +16250,7 @@
 
             }
 
-            otherlv_1=(Token)match(input,83,FOLLOW_2); if (state.failed) return current;
+            otherlv_1=(Token)match(input,85,FOLLOW_2); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_1, grammarAccess.getXNullLiteralAccess().getNullKeyword_1());
@@ -16013,7 +16281,7 @@
 
 
     // $ANTLR start "entryRuleXNumberLiteral"
-    // InternalSignalDSL.g:5904:1: entryRuleXNumberLiteral returns [EObject current=null] : iv_ruleXNumberLiteral= ruleXNumberLiteral EOF ;
+    // InternalSignalDSL.g:6003:1: entryRuleXNumberLiteral returns [EObject current=null] : iv_ruleXNumberLiteral= ruleXNumberLiteral EOF ;
     public final EObject entryRuleXNumberLiteral() throws RecognitionException {
         EObject current = null;
 
@@ -16021,8 +16289,8 @@
 
 
         try {
-            // InternalSignalDSL.g:5904:55: (iv_ruleXNumberLiteral= ruleXNumberLiteral EOF )
-            // InternalSignalDSL.g:5905:2: iv_ruleXNumberLiteral= ruleXNumberLiteral EOF
+            // InternalSignalDSL.g:6003:55: (iv_ruleXNumberLiteral= ruleXNumberLiteral EOF )
+            // InternalSignalDSL.g:6004:2: iv_ruleXNumberLiteral= ruleXNumberLiteral EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXNumberLiteralRule()); 
@@ -16053,7 +16321,7 @@
 
 
     // $ANTLR start "ruleXNumberLiteral"
-    // InternalSignalDSL.g:5911:1: ruleXNumberLiteral returns [EObject current=null] : ( () ( (lv_value_1_0= ruleNumber ) ) ) ;
+    // InternalSignalDSL.g:6010:1: ruleXNumberLiteral returns [EObject current=null] : ( () ( (lv_value_1_0= ruleNumber ) ) ) ;
     public final EObject ruleXNumberLiteral() throws RecognitionException {
         EObject current = null;
 
@@ -16064,14 +16332,14 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:5917:2: ( ( () ( (lv_value_1_0= ruleNumber ) ) ) )
-            // InternalSignalDSL.g:5918:2: ( () ( (lv_value_1_0= ruleNumber ) ) )
+            // InternalSignalDSL.g:6016:2: ( ( () ( (lv_value_1_0= ruleNumber ) ) ) )
+            // InternalSignalDSL.g:6017:2: ( () ( (lv_value_1_0= ruleNumber ) ) )
             {
-            // InternalSignalDSL.g:5918:2: ( () ( (lv_value_1_0= ruleNumber ) ) )
-            // InternalSignalDSL.g:5919:3: () ( (lv_value_1_0= ruleNumber ) )
+            // InternalSignalDSL.g:6017:2: ( () ( (lv_value_1_0= ruleNumber ) ) )
+            // InternalSignalDSL.g:6018:3: () ( (lv_value_1_0= ruleNumber ) )
             {
-            // InternalSignalDSL.g:5919:3: ()
-            // InternalSignalDSL.g:5920:4: 
+            // InternalSignalDSL.g:6018:3: ()
+            // InternalSignalDSL.g:6019:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -16083,11 +16351,11 @@
 
             }
 
-            // InternalSignalDSL.g:5926:3: ( (lv_value_1_0= ruleNumber ) )
-            // InternalSignalDSL.g:5927:4: (lv_value_1_0= ruleNumber )
+            // InternalSignalDSL.g:6025:3: ( (lv_value_1_0= ruleNumber ) )
+            // InternalSignalDSL.g:6026:4: (lv_value_1_0= ruleNumber )
             {
-            // InternalSignalDSL.g:5927:4: (lv_value_1_0= ruleNumber )
-            // InternalSignalDSL.g:5928:5: lv_value_1_0= ruleNumber
+            // InternalSignalDSL.g:6026:4: (lv_value_1_0= ruleNumber )
+            // InternalSignalDSL.g:6027:5: lv_value_1_0= ruleNumber
             {
             if ( state.backtracking==0 ) {
 
@@ -16143,7 +16411,7 @@
 
 
     // $ANTLR start "entryRuleXStringLiteral"
-    // InternalSignalDSL.g:5949:1: entryRuleXStringLiteral returns [EObject current=null] : iv_ruleXStringLiteral= ruleXStringLiteral EOF ;
+    // InternalSignalDSL.g:6048:1: entryRuleXStringLiteral returns [EObject current=null] : iv_ruleXStringLiteral= ruleXStringLiteral EOF ;
     public final EObject entryRuleXStringLiteral() throws RecognitionException {
         EObject current = null;
 
@@ -16151,8 +16419,8 @@
 
 
         try {
-            // InternalSignalDSL.g:5949:55: (iv_ruleXStringLiteral= ruleXStringLiteral EOF )
-            // InternalSignalDSL.g:5950:2: iv_ruleXStringLiteral= ruleXStringLiteral EOF
+            // InternalSignalDSL.g:6048:55: (iv_ruleXStringLiteral= ruleXStringLiteral EOF )
+            // InternalSignalDSL.g:6049:2: iv_ruleXStringLiteral= ruleXStringLiteral EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXStringLiteralRule()); 
@@ -16183,7 +16451,7 @@
 
 
     // $ANTLR start "ruleXStringLiteral"
-    // InternalSignalDSL.g:5956:1: ruleXStringLiteral returns [EObject current=null] : ( () ( (lv_value_1_0= RULE_STRING ) ) ) ;
+    // InternalSignalDSL.g:6055:1: ruleXStringLiteral returns [EObject current=null] : ( () ( (lv_value_1_0= RULE_STRING ) ) ) ;
     public final EObject ruleXStringLiteral() throws RecognitionException {
         EObject current = null;
 
@@ -16193,14 +16461,14 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:5962:2: ( ( () ( (lv_value_1_0= RULE_STRING ) ) ) )
-            // InternalSignalDSL.g:5963:2: ( () ( (lv_value_1_0= RULE_STRING ) ) )
+            // InternalSignalDSL.g:6061:2: ( ( () ( (lv_value_1_0= RULE_STRING ) ) ) )
+            // InternalSignalDSL.g:6062:2: ( () ( (lv_value_1_0= RULE_STRING ) ) )
             {
-            // InternalSignalDSL.g:5963:2: ( () ( (lv_value_1_0= RULE_STRING ) ) )
-            // InternalSignalDSL.g:5964:3: () ( (lv_value_1_0= RULE_STRING ) )
+            // InternalSignalDSL.g:6062:2: ( () ( (lv_value_1_0= RULE_STRING ) ) )
+            // InternalSignalDSL.g:6063:3: () ( (lv_value_1_0= RULE_STRING ) )
             {
-            // InternalSignalDSL.g:5964:3: ()
-            // InternalSignalDSL.g:5965:4: 
+            // InternalSignalDSL.g:6063:3: ()
+            // InternalSignalDSL.g:6064:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -16212,11 +16480,11 @@
 
             }
 
-            // InternalSignalDSL.g:5971:3: ( (lv_value_1_0= RULE_STRING ) )
-            // InternalSignalDSL.g:5972:4: (lv_value_1_0= RULE_STRING )
+            // InternalSignalDSL.g:6070:3: ( (lv_value_1_0= RULE_STRING ) )
+            // InternalSignalDSL.g:6071:4: (lv_value_1_0= RULE_STRING )
             {
-            // InternalSignalDSL.g:5972:4: (lv_value_1_0= RULE_STRING )
-            // InternalSignalDSL.g:5973:5: lv_value_1_0= RULE_STRING
+            // InternalSignalDSL.g:6071:4: (lv_value_1_0= RULE_STRING )
+            // InternalSignalDSL.g:6072: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 ) {
@@ -16267,7 +16535,7 @@
 
 
     // $ANTLR start "entryRuleXTypeLiteral"
-    // InternalSignalDSL.g:5993:1: entryRuleXTypeLiteral returns [EObject current=null] : iv_ruleXTypeLiteral= ruleXTypeLiteral EOF ;
+    // InternalSignalDSL.g:6092:1: entryRuleXTypeLiteral returns [EObject current=null] : iv_ruleXTypeLiteral= ruleXTypeLiteral EOF ;
     public final EObject entryRuleXTypeLiteral() throws RecognitionException {
         EObject current = null;
 
@@ -16275,8 +16543,8 @@
 
 
         try {
-            // InternalSignalDSL.g:5993:53: (iv_ruleXTypeLiteral= ruleXTypeLiteral EOF )
-            // InternalSignalDSL.g:5994:2: iv_ruleXTypeLiteral= ruleXTypeLiteral EOF
+            // InternalSignalDSL.g:6092:53: (iv_ruleXTypeLiteral= ruleXTypeLiteral EOF )
+            // InternalSignalDSL.g:6093:2: iv_ruleXTypeLiteral= ruleXTypeLiteral EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXTypeLiteralRule()); 
@@ -16307,7 +16575,7 @@
 
 
     // $ANTLR start "ruleXTypeLiteral"
-    // InternalSignalDSL.g:6000:1: ruleXTypeLiteral returns [EObject current=null] : ( () otherlv_1= 'typeof' otherlv_2= '(' ( ( ruleQualifiedName ) ) ( (lv_arrayDimensions_4_0= ruleArrayBrackets ) )* otherlv_5= ')' ) ;
+    // InternalSignalDSL.g:6099: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;
 
@@ -16321,14 +16589,14 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:6006:2: ( ( () otherlv_1= 'typeof' otherlv_2= '(' ( ( ruleQualifiedName ) ) ( (lv_arrayDimensions_4_0= ruleArrayBrackets ) )* otherlv_5= ')' ) )
-            // InternalSignalDSL.g:6007:2: ( () otherlv_1= 'typeof' otherlv_2= '(' ( ( ruleQualifiedName ) ) ( (lv_arrayDimensions_4_0= ruleArrayBrackets ) )* otherlv_5= ')' )
+            // InternalSignalDSL.g:6105:2: ( ( () otherlv_1= 'typeof' otherlv_2= '(' ( ( ruleQualifiedName ) ) ( (lv_arrayDimensions_4_0= ruleArrayBrackets ) )* otherlv_5= ')' ) )
+            // InternalSignalDSL.g:6106:2: ( () otherlv_1= 'typeof' otherlv_2= '(' ( ( ruleQualifiedName ) ) ( (lv_arrayDimensions_4_0= ruleArrayBrackets ) )* otherlv_5= ')' )
             {
-            // InternalSignalDSL.g:6007:2: ( () otherlv_1= 'typeof' otherlv_2= '(' ( ( ruleQualifiedName ) ) ( (lv_arrayDimensions_4_0= ruleArrayBrackets ) )* otherlv_5= ')' )
-            // InternalSignalDSL.g:6008:3: () otherlv_1= 'typeof' otherlv_2= '(' ( ( ruleQualifiedName ) ) ( (lv_arrayDimensions_4_0= ruleArrayBrackets ) )* otherlv_5= ')'
+            // InternalSignalDSL.g:6106:2: ( () otherlv_1= 'typeof' otherlv_2= '(' ( ( ruleQualifiedName ) ) ( (lv_arrayDimensions_4_0= ruleArrayBrackets ) )* otherlv_5= ')' )
+            // InternalSignalDSL.g:6107:3: () otherlv_1= 'typeof' otherlv_2= '(' ( ( ruleQualifiedName ) ) ( (lv_arrayDimensions_4_0= ruleArrayBrackets ) )* otherlv_5= ')'
             {
-            // InternalSignalDSL.g:6008:3: ()
-            // InternalSignalDSL.g:6009:4: 
+            // InternalSignalDSL.g:6107:3: ()
+            // InternalSignalDSL.g:6108:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -16340,23 +16608,23 @@
 
             }
 
-            otherlv_1=(Token)match(input,84,FOLLOW_61); if (state.failed) return current;
+            otherlv_1=(Token)match(input,86,FOLLOW_64); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_1, grammarAccess.getXTypeLiteralAccess().getTypeofKeyword_1());
               		
             }
-            otherlv_2=(Token)match(input,27,FOLLOW_4); if (state.failed) return current;
+            otherlv_2=(Token)match(input,29,FOLLOW_4); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_2, grammarAccess.getXTypeLiteralAccess().getLeftParenthesisKeyword_2());
               		
             }
-            // InternalSignalDSL.g:6023:3: ( ( ruleQualifiedName ) )
-            // InternalSignalDSL.g:6024:4: ( ruleQualifiedName )
+            // InternalSignalDSL.g:6122:3: ( ( ruleQualifiedName ) )
+            // InternalSignalDSL.g:6123:4: ( ruleQualifiedName )
             {
-            // InternalSignalDSL.g:6024:4: ( ruleQualifiedName )
-            // InternalSignalDSL.g:6025:5: ruleQualifiedName
+            // InternalSignalDSL.g:6123:4: ( ruleQualifiedName )
+            // InternalSignalDSL.g:6124:5: ruleQualifiedName
             {
             if ( state.backtracking==0 ) {
 
@@ -16370,7 +16638,7 @@
               					newCompositeNode(grammarAccess.getXTypeLiteralAccess().getTypeJvmTypeCrossReference_3_0());
               				
             }
-            pushFollow(FOLLOW_81);
+            pushFollow(FOLLOW_84);
             ruleQualifiedName();
 
             state._fsp--;
@@ -16386,30 +16654,30 @@
 
             }
 
-            // InternalSignalDSL.g:6039:3: ( (lv_arrayDimensions_4_0= ruleArrayBrackets ) )*
-            loop103:
+            // InternalSignalDSL.g:6138:3: ( (lv_arrayDimensions_4_0= ruleArrayBrackets ) )*
+            loop105:
             do {
-                int alt103=2;
-                int LA103_0 = input.LA(1);
+                int alt105=2;
+                int LA105_0 = input.LA(1);
 
-                if ( (LA103_0==32) ) {
-                    alt103=1;
+                if ( (LA105_0==34) ) {
+                    alt105=1;
                 }
 
 
-                switch (alt103) {
+                switch (alt105) {
             	case 1 :
-            	    // InternalSignalDSL.g:6040:4: (lv_arrayDimensions_4_0= ruleArrayBrackets )
+            	    // InternalSignalDSL.g:6139:4: (lv_arrayDimensions_4_0= ruleArrayBrackets )
             	    {
-            	    // InternalSignalDSL.g:6040:4: (lv_arrayDimensions_4_0= ruleArrayBrackets )
-            	    // InternalSignalDSL.g:6041:5: lv_arrayDimensions_4_0= ruleArrayBrackets
+            	    // InternalSignalDSL.g:6139:4: (lv_arrayDimensions_4_0= ruleArrayBrackets )
+            	    // InternalSignalDSL.g:6140:5: lv_arrayDimensions_4_0= ruleArrayBrackets
             	    {
             	    if ( state.backtracking==0 ) {
 
             	      					newCompositeNode(grammarAccess.getXTypeLiteralAccess().getArrayDimensionsArrayBracketsParserRuleCall_4_0());
             	      				
             	    }
-            	    pushFollow(FOLLOW_81);
+            	    pushFollow(FOLLOW_84);
             	    lv_arrayDimensions_4_0=ruleArrayBrackets();
 
             	    state._fsp--;
@@ -16435,11 +16703,11 @@
             	    break;
 
             	default :
-            	    break loop103;
+            	    break loop105;
                 }
             } while (true);
 
-            otherlv_5=(Token)match(input,29,FOLLOW_2); if (state.failed) return current;
+            otherlv_5=(Token)match(input,31,FOLLOW_2); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_5, grammarAccess.getXTypeLiteralAccess().getRightParenthesisKeyword_5());
@@ -16470,7 +16738,7 @@
 
 
     // $ANTLR start "entryRuleXThrowExpression"
-    // InternalSignalDSL.g:6066:1: entryRuleXThrowExpression returns [EObject current=null] : iv_ruleXThrowExpression= ruleXThrowExpression EOF ;
+    // InternalSignalDSL.g:6165:1: entryRuleXThrowExpression returns [EObject current=null] : iv_ruleXThrowExpression= ruleXThrowExpression EOF ;
     public final EObject entryRuleXThrowExpression() throws RecognitionException {
         EObject current = null;
 
@@ -16478,8 +16746,8 @@
 
 
         try {
-            // InternalSignalDSL.g:6066:57: (iv_ruleXThrowExpression= ruleXThrowExpression EOF )
-            // InternalSignalDSL.g:6067:2: iv_ruleXThrowExpression= ruleXThrowExpression EOF
+            // InternalSignalDSL.g:6165:57: (iv_ruleXThrowExpression= ruleXThrowExpression EOF )
+            // InternalSignalDSL.g:6166:2: iv_ruleXThrowExpression= ruleXThrowExpression EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXThrowExpressionRule()); 
@@ -16510,7 +16778,7 @@
 
 
     // $ANTLR start "ruleXThrowExpression"
-    // InternalSignalDSL.g:6073:1: ruleXThrowExpression returns [EObject current=null] : ( () otherlv_1= 'throw' ( (lv_expression_2_0= ruleXExpression ) ) ) ;
+    // InternalSignalDSL.g:6172:1: ruleXThrowExpression returns [EObject current=null] : ( () otherlv_1= 'throw' ( (lv_expression_2_0= ruleXExpression ) ) ) ;
     public final EObject ruleXThrowExpression() throws RecognitionException {
         EObject current = null;
 
@@ -16522,14 +16790,14 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:6079:2: ( ( () otherlv_1= 'throw' ( (lv_expression_2_0= ruleXExpression ) ) ) )
-            // InternalSignalDSL.g:6080:2: ( () otherlv_1= 'throw' ( (lv_expression_2_0= ruleXExpression ) ) )
+            // InternalSignalDSL.g:6178:2: ( ( () otherlv_1= 'throw' ( (lv_expression_2_0= ruleXExpression ) ) ) )
+            // InternalSignalDSL.g:6179:2: ( () otherlv_1= 'throw' ( (lv_expression_2_0= ruleXExpression ) ) )
             {
-            // InternalSignalDSL.g:6080:2: ( () otherlv_1= 'throw' ( (lv_expression_2_0= ruleXExpression ) ) )
-            // InternalSignalDSL.g:6081:3: () otherlv_1= 'throw' ( (lv_expression_2_0= ruleXExpression ) )
+            // InternalSignalDSL.g:6179:2: ( () otherlv_1= 'throw' ( (lv_expression_2_0= ruleXExpression ) ) )
+            // InternalSignalDSL.g:6180:3: () otherlv_1= 'throw' ( (lv_expression_2_0= ruleXExpression ) )
             {
-            // InternalSignalDSL.g:6081:3: ()
-            // InternalSignalDSL.g:6082:4: 
+            // InternalSignalDSL.g:6180:3: ()
+            // InternalSignalDSL.g:6181:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -16541,17 +16809,17 @@
 
             }
 
-            otherlv_1=(Token)match(input,85,FOLLOW_23); if (state.failed) return current;
+            otherlv_1=(Token)match(input,87,FOLLOW_26); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_1, grammarAccess.getXThrowExpressionAccess().getThrowKeyword_1());
               		
             }
-            // InternalSignalDSL.g:6092:3: ( (lv_expression_2_0= ruleXExpression ) )
-            // InternalSignalDSL.g:6093:4: (lv_expression_2_0= ruleXExpression )
+            // InternalSignalDSL.g:6191:3: ( (lv_expression_2_0= ruleXExpression ) )
+            // InternalSignalDSL.g:6192:4: (lv_expression_2_0= ruleXExpression )
             {
-            // InternalSignalDSL.g:6093:4: (lv_expression_2_0= ruleXExpression )
-            // InternalSignalDSL.g:6094:5: lv_expression_2_0= ruleXExpression
+            // InternalSignalDSL.g:6192:4: (lv_expression_2_0= ruleXExpression )
+            // InternalSignalDSL.g:6193:5: lv_expression_2_0= ruleXExpression
             {
             if ( state.backtracking==0 ) {
 
@@ -16607,7 +16875,7 @@
 
 
     // $ANTLR start "entryRuleXReturnExpression"
-    // InternalSignalDSL.g:6115:1: entryRuleXReturnExpression returns [EObject current=null] : iv_ruleXReturnExpression= ruleXReturnExpression EOF ;
+    // InternalSignalDSL.g:6214:1: entryRuleXReturnExpression returns [EObject current=null] : iv_ruleXReturnExpression= ruleXReturnExpression EOF ;
     public final EObject entryRuleXReturnExpression() throws RecognitionException {
         EObject current = null;
 
@@ -16615,8 +16883,8 @@
 
 
         try {
-            // InternalSignalDSL.g:6115:58: (iv_ruleXReturnExpression= ruleXReturnExpression EOF )
-            // InternalSignalDSL.g:6116:2: iv_ruleXReturnExpression= ruleXReturnExpression EOF
+            // InternalSignalDSL.g:6214:58: (iv_ruleXReturnExpression= ruleXReturnExpression EOF )
+            // InternalSignalDSL.g:6215:2: iv_ruleXReturnExpression= ruleXReturnExpression EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXReturnExpressionRule()); 
@@ -16647,7 +16915,7 @@
 
 
     // $ANTLR start "ruleXReturnExpression"
-    // InternalSignalDSL.g:6122: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:6221: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;
 
@@ -16659,14 +16927,14 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:6128: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:6129: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:6227: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:6228: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:6129: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:6130: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:6228: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:6229: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:6130:3: ()
-            // InternalSignalDSL.g:6131:4: 
+            // InternalSignalDSL.g:6229:3: ()
+            // InternalSignalDSL.g:6230:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -16678,21 +16946,21 @@
 
             }
 
-            otherlv_1=(Token)match(input,86,FOLLOW_82); if (state.failed) return current;
+            otherlv_1=(Token)match(input,88,FOLLOW_85); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_1, grammarAccess.getXReturnExpressionAccess().getReturnKeyword_1());
               		
             }
-            // InternalSignalDSL.g:6141: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 alt104=2;
-            alt104 = dfa104.predict(input);
-            switch (alt104) {
+            // InternalSignalDSL.g:6240: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 alt106=2;
+            alt106 = dfa106.predict(input);
+            switch (alt106) {
                 case 1 :
-                    // InternalSignalDSL.g:6142: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:6241: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:6143:4: (lv_expression_2_0= ruleXExpression )
-                    // InternalSignalDSL.g:6144:5: lv_expression_2_0= ruleXExpression
+                    // InternalSignalDSL.g:6242:4: (lv_expression_2_0= ruleXExpression )
+                    // InternalSignalDSL.g:6243:5: lv_expression_2_0= ruleXExpression
                     {
                     if ( state.backtracking==0 ) {
 
@@ -16751,7 +17019,7 @@
 
 
     // $ANTLR start "entryRuleXTryCatchFinallyExpression"
-    // InternalSignalDSL.g:6165:1: entryRuleXTryCatchFinallyExpression returns [EObject current=null] : iv_ruleXTryCatchFinallyExpression= ruleXTryCatchFinallyExpression EOF ;
+    // InternalSignalDSL.g:6264:1: entryRuleXTryCatchFinallyExpression returns [EObject current=null] : iv_ruleXTryCatchFinallyExpression= ruleXTryCatchFinallyExpression EOF ;
     public final EObject entryRuleXTryCatchFinallyExpression() throws RecognitionException {
         EObject current = null;
 
@@ -16759,8 +17027,8 @@
 
 
         try {
-            // InternalSignalDSL.g:6165:67: (iv_ruleXTryCatchFinallyExpression= ruleXTryCatchFinallyExpression EOF )
-            // InternalSignalDSL.g:6166:2: iv_ruleXTryCatchFinallyExpression= ruleXTryCatchFinallyExpression EOF
+            // InternalSignalDSL.g:6264:67: (iv_ruleXTryCatchFinallyExpression= ruleXTryCatchFinallyExpression EOF )
+            // InternalSignalDSL.g:6265:2: iv_ruleXTryCatchFinallyExpression= ruleXTryCatchFinallyExpression EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXTryCatchFinallyExpressionRule()); 
@@ -16791,7 +17059,7 @@
 
 
     // $ANTLR start "ruleXTryCatchFinallyExpression"
-    // InternalSignalDSL.g:6172: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:6271: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;
 
@@ -16811,14 +17079,14 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:6178: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:6179: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:6277: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:6278: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:6179: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:6180: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:6278: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:6279: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:6180:3: ()
-            // InternalSignalDSL.g:6181:4: 
+            // InternalSignalDSL.g:6279:3: ()
+            // InternalSignalDSL.g:6280:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -16830,24 +17098,24 @@
 
             }
 
-            otherlv_1=(Token)match(input,87,FOLLOW_23); if (state.failed) return current;
+            otherlv_1=(Token)match(input,89,FOLLOW_26); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_1, grammarAccess.getXTryCatchFinallyExpressionAccess().getTryKeyword_1());
               		
             }
-            // InternalSignalDSL.g:6191:3: ( (lv_expression_2_0= ruleXExpression ) )
-            // InternalSignalDSL.g:6192:4: (lv_expression_2_0= ruleXExpression )
+            // InternalSignalDSL.g:6290:3: ( (lv_expression_2_0= ruleXExpression ) )
+            // InternalSignalDSL.g:6291:4: (lv_expression_2_0= ruleXExpression )
             {
-            // InternalSignalDSL.g:6192:4: (lv_expression_2_0= ruleXExpression )
-            // InternalSignalDSL.g:6193:5: lv_expression_2_0= ruleXExpression
+            // InternalSignalDSL.g:6291:4: (lv_expression_2_0= ruleXExpression )
+            // InternalSignalDSL.g:6292:5: lv_expression_2_0= ruleXExpression
             {
             if ( state.backtracking==0 ) {
 
               					newCompositeNode(grammarAccess.getXTryCatchFinallyExpressionAccess().getExpressionXExpressionParserRuleCall_2_0());
               				
             }
-            pushFollow(FOLLOW_83);
+            pushFollow(FOLLOW_86);
             lv_expression_2_0=ruleXExpression();
 
             state._fsp--;
@@ -16871,61 +17139,61 @@
 
             }
 
-            // InternalSignalDSL.g:6210: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 alt107=2;
-            int LA107_0 = input.LA(1);
+            // InternalSignalDSL.g:6309: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 alt109=2;
+            int LA109_0 = input.LA(1);
 
-            if ( (LA107_0==90) ) {
-                alt107=1;
+            if ( (LA109_0==92) ) {
+                alt109=1;
             }
-            else if ( (LA107_0==88) ) {
-                alt107=2;
+            else if ( (LA109_0==90) ) {
+                alt109=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 107, 0, input);
+                    new NoViableAltException("", 109, 0, input);
 
                 throw nvae;
             }
-            switch (alt107) {
+            switch (alt109) {
                 case 1 :
-                    // InternalSignalDSL.g:6211:4: ( ( ( 'catch' )=> (lv_catchClauses_3_0= ruleXCatchClause ) )+ ( ( ( 'finally' )=>otherlv_4= 'finally' ) ( (lv_finallyExpression_5_0= ruleXExpression ) ) )? )
+                    // InternalSignalDSL.g:6310:4: ( ( ( 'catch' )=> (lv_catchClauses_3_0= ruleXCatchClause ) )+ ( ( ( 'finally' )=>otherlv_4= 'finally' ) ( (lv_finallyExpression_5_0= ruleXExpression ) ) )? )
                     {
-                    // InternalSignalDSL.g:6211:4: ( ( ( 'catch' )=> (lv_catchClauses_3_0= ruleXCatchClause ) )+ ( ( ( 'finally' )=>otherlv_4= 'finally' ) ( (lv_finallyExpression_5_0= ruleXExpression ) ) )? )
-                    // InternalSignalDSL.g:6212:5: ( ( 'catch' )=> (lv_catchClauses_3_0= ruleXCatchClause ) )+ ( ( ( 'finally' )=>otherlv_4= 'finally' ) ( (lv_finallyExpression_5_0= ruleXExpression ) ) )?
+                    // InternalSignalDSL.g:6310:4: ( ( ( 'catch' )=> (lv_catchClauses_3_0= ruleXCatchClause ) )+ ( ( ( 'finally' )=>otherlv_4= 'finally' ) ( (lv_finallyExpression_5_0= ruleXExpression ) ) )? )
+                    // InternalSignalDSL.g:6311:5: ( ( 'catch' )=> (lv_catchClauses_3_0= ruleXCatchClause ) )+ ( ( ( 'finally' )=>otherlv_4= 'finally' ) ( (lv_finallyExpression_5_0= ruleXExpression ) ) )?
                     {
-                    // InternalSignalDSL.g:6212:5: ( ( 'catch' )=> (lv_catchClauses_3_0= ruleXCatchClause ) )+
-                    int cnt105=0;
-                    loop105:
+                    // InternalSignalDSL.g:6311:5: ( ( 'catch' )=> (lv_catchClauses_3_0= ruleXCatchClause ) )+
+                    int cnt107=0;
+                    loop107:
                     do {
-                        int alt105=2;
-                        int LA105_0 = input.LA(1);
+                        int alt107=2;
+                        int LA107_0 = input.LA(1);
 
-                        if ( (LA105_0==90) ) {
-                            int LA105_2 = input.LA(2);
+                        if ( (LA107_0==92) ) {
+                            int LA107_2 = input.LA(2);
 
                             if ( (synpred44_InternalSignalDSL()) ) {
-                                alt105=1;
+                                alt107=1;
                             }
 
 
                         }
 
 
-                        switch (alt105) {
+                        switch (alt107) {
                     	case 1 :
-                    	    // InternalSignalDSL.g:6213:6: ( 'catch' )=> (lv_catchClauses_3_0= ruleXCatchClause )
+                    	    // InternalSignalDSL.g:6312:6: ( 'catch' )=> (lv_catchClauses_3_0= ruleXCatchClause )
                     	    {
-                    	    // InternalSignalDSL.g:6214:6: (lv_catchClauses_3_0= ruleXCatchClause )
-                    	    // InternalSignalDSL.g:6215:7: lv_catchClauses_3_0= ruleXCatchClause
+                    	    // InternalSignalDSL.g:6313:6: (lv_catchClauses_3_0= ruleXCatchClause )
+                    	    // InternalSignalDSL.g:6314:7: lv_catchClauses_3_0= ruleXCatchClause
                     	    {
                     	    if ( state.backtracking==0 ) {
 
                     	      							newCompositeNode(grammarAccess.getXTryCatchFinallyExpressionAccess().getCatchClausesXCatchClauseParserRuleCall_3_0_0_0());
                     	      						
                     	    }
-                    	    pushFollow(FOLLOW_84);
+                    	    pushFollow(FOLLOW_87);
                     	    lv_catchClauses_3_0=ruleXCatchClause();
 
                     	    state._fsp--;
@@ -16951,34 +17219,34 @@
                     	    break;
 
                     	default :
-                    	    if ( cnt105 >= 1 ) break loop105;
+                    	    if ( cnt107 >= 1 ) break loop107;
                     	    if (state.backtracking>0) {state.failed=true; return current;}
                                 EarlyExitException eee =
-                                    new EarlyExitException(105, input);
+                                    new EarlyExitException(107, input);
                                 throw eee;
                         }
-                        cnt105++;
+                        cnt107++;
                     } while (true);
 
-                    // InternalSignalDSL.g:6232:5: ( ( ( 'finally' )=>otherlv_4= 'finally' ) ( (lv_finallyExpression_5_0= ruleXExpression ) ) )?
-                    int alt106=2;
-                    int LA106_0 = input.LA(1);
+                    // InternalSignalDSL.g:6331:5: ( ( ( 'finally' )=>otherlv_4= 'finally' ) ( (lv_finallyExpression_5_0= ruleXExpression ) ) )?
+                    int alt108=2;
+                    int LA108_0 = input.LA(1);
 
-                    if ( (LA106_0==88) ) {
-                        int LA106_1 = input.LA(2);
+                    if ( (LA108_0==90) ) {
+                        int LA108_1 = input.LA(2);
 
                         if ( (synpred45_InternalSignalDSL()) ) {
-                            alt106=1;
+                            alt108=1;
                         }
                     }
-                    switch (alt106) {
+                    switch (alt108) {
                         case 1 :
-                            // InternalSignalDSL.g:6233:6: ( ( 'finally' )=>otherlv_4= 'finally' ) ( (lv_finallyExpression_5_0= ruleXExpression ) )
+                            // InternalSignalDSL.g:6332:6: ( ( 'finally' )=>otherlv_4= 'finally' ) ( (lv_finallyExpression_5_0= ruleXExpression ) )
                             {
-                            // InternalSignalDSL.g:6233:6: ( ( 'finally' )=>otherlv_4= 'finally' )
-                            // InternalSignalDSL.g:6234:7: ( 'finally' )=>otherlv_4= 'finally'
+                            // InternalSignalDSL.g:6332:6: ( ( 'finally' )=>otherlv_4= 'finally' )
+                            // InternalSignalDSL.g:6333:7: ( 'finally' )=>otherlv_4= 'finally'
                             {
-                            otherlv_4=(Token)match(input,88,FOLLOW_23); if (state.failed) return current;
+                            otherlv_4=(Token)match(input,90,FOLLOW_26); if (state.failed) return current;
                             if ( state.backtracking==0 ) {
 
                               							newLeafNode(otherlv_4, grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyKeyword_3_0_1_0());
@@ -16987,11 +17255,11 @@
 
                             }
 
-                            // InternalSignalDSL.g:6240:6: ( (lv_finallyExpression_5_0= ruleXExpression ) )
-                            // InternalSignalDSL.g:6241:7: (lv_finallyExpression_5_0= ruleXExpression )
+                            // InternalSignalDSL.g:6339:6: ( (lv_finallyExpression_5_0= ruleXExpression ) )
+                            // InternalSignalDSL.g:6340:7: (lv_finallyExpression_5_0= ruleXExpression )
                             {
-                            // InternalSignalDSL.g:6241:7: (lv_finallyExpression_5_0= ruleXExpression )
-                            // InternalSignalDSL.g:6242:8: lv_finallyExpression_5_0= ruleXExpression
+                            // InternalSignalDSL.g:6340:7: (lv_finallyExpression_5_0= ruleXExpression )
+                            // InternalSignalDSL.g:6341:8: lv_finallyExpression_5_0= ruleXExpression
                             {
                             if ( state.backtracking==0 ) {
 
@@ -17035,22 +17303,22 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:6262:4: (otherlv_6= 'finally' ( (lv_finallyExpression_7_0= ruleXExpression ) ) )
+                    // InternalSignalDSL.g:6361:4: (otherlv_6= 'finally' ( (lv_finallyExpression_7_0= ruleXExpression ) ) )
                     {
-                    // InternalSignalDSL.g:6262:4: (otherlv_6= 'finally' ( (lv_finallyExpression_7_0= ruleXExpression ) ) )
-                    // InternalSignalDSL.g:6263:5: otherlv_6= 'finally' ( (lv_finallyExpression_7_0= ruleXExpression ) )
+                    // InternalSignalDSL.g:6361:4: (otherlv_6= 'finally' ( (lv_finallyExpression_7_0= ruleXExpression ) ) )
+                    // InternalSignalDSL.g:6362:5: otherlv_6= 'finally' ( (lv_finallyExpression_7_0= ruleXExpression ) )
                     {
-                    otherlv_6=(Token)match(input,88,FOLLOW_23); if (state.failed) return current;
+                    otherlv_6=(Token)match(input,90,FOLLOW_26); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       					newLeafNode(otherlv_6, grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyKeyword_3_1_0());
                       				
                     }
-                    // InternalSignalDSL.g:6267:5: ( (lv_finallyExpression_7_0= ruleXExpression ) )
-                    // InternalSignalDSL.g:6268:6: (lv_finallyExpression_7_0= ruleXExpression )
+                    // InternalSignalDSL.g:6366:5: ( (lv_finallyExpression_7_0= ruleXExpression ) )
+                    // InternalSignalDSL.g:6367:6: (lv_finallyExpression_7_0= ruleXExpression )
                     {
-                    // InternalSignalDSL.g:6268:6: (lv_finallyExpression_7_0= ruleXExpression )
-                    // InternalSignalDSL.g:6269:7: lv_finallyExpression_7_0= ruleXExpression
+                    // InternalSignalDSL.g:6367:6: (lv_finallyExpression_7_0= ruleXExpression )
+                    // InternalSignalDSL.g:6368:7: lv_finallyExpression_7_0= ruleXExpression
                     {
                     if ( state.backtracking==0 ) {
 
@@ -17115,7 +17383,7 @@
 
 
     // $ANTLR start "entryRuleXSynchronizedExpression"
-    // InternalSignalDSL.g:6292:1: entryRuleXSynchronizedExpression returns [EObject current=null] : iv_ruleXSynchronizedExpression= ruleXSynchronizedExpression EOF ;
+    // InternalSignalDSL.g:6391:1: entryRuleXSynchronizedExpression returns [EObject current=null] : iv_ruleXSynchronizedExpression= ruleXSynchronizedExpression EOF ;
     public final EObject entryRuleXSynchronizedExpression() throws RecognitionException {
         EObject current = null;
 
@@ -17123,8 +17391,8 @@
 
 
         try {
-            // InternalSignalDSL.g:6292:64: (iv_ruleXSynchronizedExpression= ruleXSynchronizedExpression EOF )
-            // InternalSignalDSL.g:6293:2: iv_ruleXSynchronizedExpression= ruleXSynchronizedExpression EOF
+            // InternalSignalDSL.g:6391:64: (iv_ruleXSynchronizedExpression= ruleXSynchronizedExpression EOF )
+            // InternalSignalDSL.g:6392:2: iv_ruleXSynchronizedExpression= ruleXSynchronizedExpression EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXSynchronizedExpressionRule()); 
@@ -17155,7 +17423,7 @@
 
 
     // $ANTLR start "ruleXSynchronizedExpression"
-    // InternalSignalDSL.g:6299: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:6398: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;
 
@@ -17171,20 +17439,20 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:6305:2: ( ( ( ( ( () 'synchronized' '(' ) )=> ( () otherlv_1= 'synchronized' otherlv_2= '(' ) ) ( (lv_param_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_expression_5_0= ruleXExpression ) ) ) )
-            // InternalSignalDSL.g:6306:2: ( ( ( ( () 'synchronized' '(' ) )=> ( () otherlv_1= 'synchronized' otherlv_2= '(' ) ) ( (lv_param_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_expression_5_0= ruleXExpression ) ) )
+            // InternalSignalDSL.g:6404:2: ( ( ( ( ( () 'synchronized' '(' ) )=> ( () otherlv_1= 'synchronized' otherlv_2= '(' ) ) ( (lv_param_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_expression_5_0= ruleXExpression ) ) ) )
+            // InternalSignalDSL.g:6405:2: ( ( ( ( () 'synchronized' '(' ) )=> ( () otherlv_1= 'synchronized' otherlv_2= '(' ) ) ( (lv_param_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_expression_5_0= ruleXExpression ) ) )
             {
-            // InternalSignalDSL.g:6306:2: ( ( ( ( () 'synchronized' '(' ) )=> ( () otherlv_1= 'synchronized' otherlv_2= '(' ) ) ( (lv_param_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_expression_5_0= ruleXExpression ) ) )
-            // InternalSignalDSL.g:6307:3: ( ( ( () 'synchronized' '(' ) )=> ( () otherlv_1= 'synchronized' otherlv_2= '(' ) ) ( (lv_param_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_expression_5_0= ruleXExpression ) )
+            // InternalSignalDSL.g:6405:2: ( ( ( ( () 'synchronized' '(' ) )=> ( () otherlv_1= 'synchronized' otherlv_2= '(' ) ) ( (lv_param_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_expression_5_0= ruleXExpression ) ) )
+            // InternalSignalDSL.g:6406:3: ( ( ( () 'synchronized' '(' ) )=> ( () otherlv_1= 'synchronized' otherlv_2= '(' ) ) ( (lv_param_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_expression_5_0= ruleXExpression ) )
             {
-            // InternalSignalDSL.g:6307:3: ( ( ( () 'synchronized' '(' ) )=> ( () otherlv_1= 'synchronized' otherlv_2= '(' ) )
-            // InternalSignalDSL.g:6308:4: ( ( () 'synchronized' '(' ) )=> ( () otherlv_1= 'synchronized' otherlv_2= '(' )
+            // InternalSignalDSL.g:6406:3: ( ( ( () 'synchronized' '(' ) )=> ( () otherlv_1= 'synchronized' otherlv_2= '(' ) )
+            // InternalSignalDSL.g:6407:4: ( ( () 'synchronized' '(' ) )=> ( () otherlv_1= 'synchronized' otherlv_2= '(' )
             {
-            // InternalSignalDSL.g:6315:4: ( () otherlv_1= 'synchronized' otherlv_2= '(' )
-            // InternalSignalDSL.g:6316:5: () otherlv_1= 'synchronized' otherlv_2= '('
+            // InternalSignalDSL.g:6414:4: ( () otherlv_1= 'synchronized' otherlv_2= '(' )
+            // InternalSignalDSL.g:6415:5: () otherlv_1= 'synchronized' otherlv_2= '('
             {
-            // InternalSignalDSL.g:6316:5: ()
-            // InternalSignalDSL.g:6317:6: 
+            // InternalSignalDSL.g:6415:5: ()
+            // InternalSignalDSL.g:6416:6: 
             {
             if ( state.backtracking==0 ) {
 
@@ -17196,13 +17464,13 @@
 
             }
 
-            otherlv_1=(Token)match(input,89,FOLLOW_61); if (state.failed) return current;
+            otherlv_1=(Token)match(input,91,FOLLOW_64); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               					newLeafNode(otherlv_1, grammarAccess.getXSynchronizedExpressionAccess().getSynchronizedKeyword_0_0_1());
               				
             }
-            otherlv_2=(Token)match(input,27,FOLLOW_23); if (state.failed) return current;
+            otherlv_2=(Token)match(input,29,FOLLOW_26); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               					newLeafNode(otherlv_2, grammarAccess.getXSynchronizedExpressionAccess().getLeftParenthesisKeyword_0_0_2());
@@ -17214,18 +17482,18 @@
 
             }
 
-            // InternalSignalDSL.g:6333:3: ( (lv_param_3_0= ruleXExpression ) )
-            // InternalSignalDSL.g:6334:4: (lv_param_3_0= ruleXExpression )
+            // InternalSignalDSL.g:6432:3: ( (lv_param_3_0= ruleXExpression ) )
+            // InternalSignalDSL.g:6433:4: (lv_param_3_0= ruleXExpression )
             {
-            // InternalSignalDSL.g:6334:4: (lv_param_3_0= ruleXExpression )
-            // InternalSignalDSL.g:6335:5: lv_param_3_0= ruleXExpression
+            // InternalSignalDSL.g:6433:4: (lv_param_3_0= ruleXExpression )
+            // InternalSignalDSL.g:6434:5: lv_param_3_0= ruleXExpression
             {
             if ( state.backtracking==0 ) {
 
               					newCompositeNode(grammarAccess.getXSynchronizedExpressionAccess().getParamXExpressionParserRuleCall_1_0());
               				
             }
-            pushFollow(FOLLOW_21);
+            pushFollow(FOLLOW_24);
             lv_param_3_0=ruleXExpression();
 
             state._fsp--;
@@ -17249,17 +17517,17 @@
 
             }
 
-            otherlv_4=(Token)match(input,29,FOLLOW_23); if (state.failed) return current;
+            otherlv_4=(Token)match(input,31,FOLLOW_26); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_4, grammarAccess.getXSynchronizedExpressionAccess().getRightParenthesisKeyword_2());
               		
             }
-            // InternalSignalDSL.g:6356:3: ( (lv_expression_5_0= ruleXExpression ) )
-            // InternalSignalDSL.g:6357:4: (lv_expression_5_0= ruleXExpression )
+            // InternalSignalDSL.g:6455:3: ( (lv_expression_5_0= ruleXExpression ) )
+            // InternalSignalDSL.g:6456:4: (lv_expression_5_0= ruleXExpression )
             {
-            // InternalSignalDSL.g:6357:4: (lv_expression_5_0= ruleXExpression )
-            // InternalSignalDSL.g:6358:5: lv_expression_5_0= ruleXExpression
+            // InternalSignalDSL.g:6456:4: (lv_expression_5_0= ruleXExpression )
+            // InternalSignalDSL.g:6457:5: lv_expression_5_0= ruleXExpression
             {
             if ( state.backtracking==0 ) {
 
@@ -17315,7 +17583,7 @@
 
 
     // $ANTLR start "entryRuleXCatchClause"
-    // InternalSignalDSL.g:6379:1: entryRuleXCatchClause returns [EObject current=null] : iv_ruleXCatchClause= ruleXCatchClause EOF ;
+    // InternalSignalDSL.g:6478:1: entryRuleXCatchClause returns [EObject current=null] : iv_ruleXCatchClause= ruleXCatchClause EOF ;
     public final EObject entryRuleXCatchClause() throws RecognitionException {
         EObject current = null;
 
@@ -17323,8 +17591,8 @@
 
 
         try {
-            // InternalSignalDSL.g:6379:53: (iv_ruleXCatchClause= ruleXCatchClause EOF )
-            // InternalSignalDSL.g:6380:2: iv_ruleXCatchClause= ruleXCatchClause EOF
+            // InternalSignalDSL.g:6478:53: (iv_ruleXCatchClause= ruleXCatchClause EOF )
+            // InternalSignalDSL.g:6479:2: iv_ruleXCatchClause= ruleXCatchClause EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXCatchClauseRule()); 
@@ -17355,7 +17623,7 @@
 
 
     // $ANTLR start "ruleXCatchClause"
-    // InternalSignalDSL.g:6386: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:6485: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;
 
@@ -17371,16 +17639,16 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:6392:2: ( ( ( ( 'catch' )=>otherlv_0= 'catch' ) otherlv_1= '(' ( (lv_declaredParam_2_0= ruleFullJvmFormalParameter ) ) otherlv_3= ')' ( (lv_expression_4_0= ruleXExpression ) ) ) )
-            // InternalSignalDSL.g:6393:2: ( ( ( 'catch' )=>otherlv_0= 'catch' ) otherlv_1= '(' ( (lv_declaredParam_2_0= ruleFullJvmFormalParameter ) ) otherlv_3= ')' ( (lv_expression_4_0= ruleXExpression ) ) )
+            // InternalSignalDSL.g:6491:2: ( ( ( ( 'catch' )=>otherlv_0= 'catch' ) otherlv_1= '(' ( (lv_declaredParam_2_0= ruleFullJvmFormalParameter ) ) otherlv_3= ')' ( (lv_expression_4_0= ruleXExpression ) ) ) )
+            // InternalSignalDSL.g:6492:2: ( ( ( 'catch' )=>otherlv_0= 'catch' ) otherlv_1= '(' ( (lv_declaredParam_2_0= ruleFullJvmFormalParameter ) ) otherlv_3= ')' ( (lv_expression_4_0= ruleXExpression ) ) )
             {
-            // InternalSignalDSL.g:6393:2: ( ( ( 'catch' )=>otherlv_0= 'catch' ) otherlv_1= '(' ( (lv_declaredParam_2_0= ruleFullJvmFormalParameter ) ) otherlv_3= ')' ( (lv_expression_4_0= ruleXExpression ) ) )
-            // InternalSignalDSL.g:6394:3: ( ( 'catch' )=>otherlv_0= 'catch' ) otherlv_1= '(' ( (lv_declaredParam_2_0= ruleFullJvmFormalParameter ) ) otherlv_3= ')' ( (lv_expression_4_0= ruleXExpression ) )
+            // InternalSignalDSL.g:6492:2: ( ( ( 'catch' )=>otherlv_0= 'catch' ) otherlv_1= '(' ( (lv_declaredParam_2_0= ruleFullJvmFormalParameter ) ) otherlv_3= ')' ( (lv_expression_4_0= ruleXExpression ) ) )
+            // InternalSignalDSL.g:6493:3: ( ( 'catch' )=>otherlv_0= 'catch' ) otherlv_1= '(' ( (lv_declaredParam_2_0= ruleFullJvmFormalParameter ) ) otherlv_3= ')' ( (lv_expression_4_0= ruleXExpression ) )
             {
-            // InternalSignalDSL.g:6394:3: ( ( 'catch' )=>otherlv_0= 'catch' )
-            // InternalSignalDSL.g:6395:4: ( 'catch' )=>otherlv_0= 'catch'
+            // InternalSignalDSL.g:6493:3: ( ( 'catch' )=>otherlv_0= 'catch' )
+            // InternalSignalDSL.g:6494:4: ( 'catch' )=>otherlv_0= 'catch'
             {
-            otherlv_0=(Token)match(input,90,FOLLOW_61); if (state.failed) return current;
+            otherlv_0=(Token)match(input,92,FOLLOW_64); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               				newLeafNode(otherlv_0, grammarAccess.getXCatchClauseAccess().getCatchKeyword_0());
@@ -17389,24 +17657,24 @@
 
             }
 
-            otherlv_1=(Token)match(input,27,FOLLOW_36); if (state.failed) return current;
+            otherlv_1=(Token)match(input,29,FOLLOW_39); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_1, grammarAccess.getXCatchClauseAccess().getLeftParenthesisKeyword_1());
               		
             }
-            // InternalSignalDSL.g:6405:3: ( (lv_declaredParam_2_0= ruleFullJvmFormalParameter ) )
-            // InternalSignalDSL.g:6406:4: (lv_declaredParam_2_0= ruleFullJvmFormalParameter )
+            // InternalSignalDSL.g:6504:3: ( (lv_declaredParam_2_0= ruleFullJvmFormalParameter ) )
+            // InternalSignalDSL.g:6505:4: (lv_declaredParam_2_0= ruleFullJvmFormalParameter )
             {
-            // InternalSignalDSL.g:6406:4: (lv_declaredParam_2_0= ruleFullJvmFormalParameter )
-            // InternalSignalDSL.g:6407:5: lv_declaredParam_2_0= ruleFullJvmFormalParameter
+            // InternalSignalDSL.g:6505:4: (lv_declaredParam_2_0= ruleFullJvmFormalParameter )
+            // InternalSignalDSL.g:6506:5: lv_declaredParam_2_0= ruleFullJvmFormalParameter
             {
             if ( state.backtracking==0 ) {
 
               					newCompositeNode(grammarAccess.getXCatchClauseAccess().getDeclaredParamFullJvmFormalParameterParserRuleCall_2_0());
               				
             }
-            pushFollow(FOLLOW_21);
+            pushFollow(FOLLOW_24);
             lv_declaredParam_2_0=ruleFullJvmFormalParameter();
 
             state._fsp--;
@@ -17430,17 +17698,17 @@
 
             }
 
-            otherlv_3=(Token)match(input,29,FOLLOW_23); if (state.failed) return current;
+            otherlv_3=(Token)match(input,31,FOLLOW_26); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_3, grammarAccess.getXCatchClauseAccess().getRightParenthesisKeyword_3());
               		
             }
-            // InternalSignalDSL.g:6428:3: ( (lv_expression_4_0= ruleXExpression ) )
-            // InternalSignalDSL.g:6429:4: (lv_expression_4_0= ruleXExpression )
+            // InternalSignalDSL.g:6527:3: ( (lv_expression_4_0= ruleXExpression ) )
+            // InternalSignalDSL.g:6528:4: (lv_expression_4_0= ruleXExpression )
             {
-            // InternalSignalDSL.g:6429:4: (lv_expression_4_0= ruleXExpression )
-            // InternalSignalDSL.g:6430:5: lv_expression_4_0= ruleXExpression
+            // InternalSignalDSL.g:6528:4: (lv_expression_4_0= ruleXExpression )
+            // InternalSignalDSL.g:6529:5: lv_expression_4_0= ruleXExpression
             {
             if ( state.backtracking==0 ) {
 
@@ -17496,7 +17764,7 @@
 
 
     // $ANTLR start "entryRuleQualifiedName"
-    // InternalSignalDSL.g:6451:1: entryRuleQualifiedName returns [String current=null] : iv_ruleQualifiedName= ruleQualifiedName EOF ;
+    // InternalSignalDSL.g:6550:1: entryRuleQualifiedName returns [String current=null] : iv_ruleQualifiedName= ruleQualifiedName EOF ;
     public final String entryRuleQualifiedName() throws RecognitionException {
         String current = null;
 
@@ -17504,8 +17772,8 @@
 
 
         try {
-            // InternalSignalDSL.g:6451:53: (iv_ruleQualifiedName= ruleQualifiedName EOF )
-            // InternalSignalDSL.g:6452:2: iv_ruleQualifiedName= ruleQualifiedName EOF
+            // InternalSignalDSL.g:6550:53: (iv_ruleQualifiedName= ruleQualifiedName EOF )
+            // InternalSignalDSL.g:6551:2: iv_ruleQualifiedName= ruleQualifiedName EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getQualifiedNameRule()); 
@@ -17536,7 +17804,7 @@
 
 
     // $ANTLR start "ruleQualifiedName"
-    // InternalSignalDSL.g:6458:1: ruleQualifiedName returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_ValidID_0= ruleValidID ( ( ( '.' )=>kw= '.' ) this_ValidID_2= ruleValidID )* ) ;
+    // InternalSignalDSL.g:6557: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();
 
@@ -17550,18 +17818,18 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:6464:2: ( (this_ValidID_0= ruleValidID ( ( ( '.' )=>kw= '.' ) this_ValidID_2= ruleValidID )* ) )
-            // InternalSignalDSL.g:6465:2: (this_ValidID_0= ruleValidID ( ( ( '.' )=>kw= '.' ) this_ValidID_2= ruleValidID )* )
+            // InternalSignalDSL.g:6563:2: ( (this_ValidID_0= ruleValidID ( ( ( '.' )=>kw= '.' ) this_ValidID_2= ruleValidID )* ) )
+            // InternalSignalDSL.g:6564:2: (this_ValidID_0= ruleValidID ( ( ( '.' )=>kw= '.' ) this_ValidID_2= ruleValidID )* )
             {
-            // InternalSignalDSL.g:6465:2: (this_ValidID_0= ruleValidID ( ( ( '.' )=>kw= '.' ) this_ValidID_2= ruleValidID )* )
-            // InternalSignalDSL.g:6466:3: this_ValidID_0= ruleValidID ( ( ( '.' )=>kw= '.' ) this_ValidID_2= ruleValidID )*
+            // InternalSignalDSL.g:6564:2: (this_ValidID_0= ruleValidID ( ( ( '.' )=>kw= '.' ) this_ValidID_2= ruleValidID )* )
+            // InternalSignalDSL.g:6565:3: this_ValidID_0= ruleValidID ( ( ( '.' )=>kw= '.' ) this_ValidID_2= ruleValidID )*
             {
             if ( state.backtracking==0 ) {
 
               			newCompositeNode(grammarAccess.getQualifiedNameAccess().getValidIDParserRuleCall_0());
               		
             }
-            pushFollow(FOLLOW_85);
+            pushFollow(FOLLOW_88);
             this_ValidID_0=ruleValidID();
 
             state._fsp--;
@@ -17576,20 +17844,20 @@
               			afterParserOrEnumRuleCall();
               		
             }
-            // InternalSignalDSL.g:6476:3: ( ( ( '.' )=>kw= '.' ) this_ValidID_2= ruleValidID )*
-            loop108:
+            // InternalSignalDSL.g:6575:3: ( ( ( '.' )=>kw= '.' ) this_ValidID_2= ruleValidID )*
+            loop110:
             do {
-                int alt108=2;
-                int LA108_0 = input.LA(1);
+                int alt110=2;
+                int LA110_0 = input.LA(1);
 
-                if ( (LA108_0==64) ) {
-                    int LA108_2 = input.LA(2);
+                if ( (LA110_0==66) ) {
+                    int LA110_2 = input.LA(2);
 
-                    if ( (LA108_2==RULE_ID) ) {
-                        int LA108_3 = input.LA(3);
+                    if ( (LA110_2==RULE_ID) ) {
+                        int LA110_3 = input.LA(3);
 
                         if ( (synpred48_InternalSignalDSL()) ) {
-                            alt108=1;
+                            alt110=1;
                         }
 
 
@@ -17599,14 +17867,14 @@
                 }
 
 
-                switch (alt108) {
+                switch (alt110) {
             	case 1 :
-            	    // InternalSignalDSL.g:6477:4: ( ( '.' )=>kw= '.' ) this_ValidID_2= ruleValidID
+            	    // InternalSignalDSL.g:6576:4: ( ( '.' )=>kw= '.' ) this_ValidID_2= ruleValidID
             	    {
-            	    // InternalSignalDSL.g:6477:4: ( ( '.' )=>kw= '.' )
-            	    // InternalSignalDSL.g:6478:5: ( '.' )=>kw= '.'
+            	    // InternalSignalDSL.g:6576:4: ( ( '.' )=>kw= '.' )
+            	    // InternalSignalDSL.g:6577:5: ( '.' )=>kw= '.'
             	    {
-            	    kw=(Token)match(input,64,FOLLOW_4); if (state.failed) return current;
+            	    kw=(Token)match(input,66,FOLLOW_4); if (state.failed) return current;
             	    if ( state.backtracking==0 ) {
 
             	      					current.merge(kw);
@@ -17621,7 +17889,7 @@
             	      				newCompositeNode(grammarAccess.getQualifiedNameAccess().getValidIDParserRuleCall_1_1());
             	      			
             	    }
-            	    pushFollow(FOLLOW_85);
+            	    pushFollow(FOLLOW_88);
             	    this_ValidID_2=ruleValidID();
 
             	    state._fsp--;
@@ -17641,7 +17909,7 @@
             	    break;
 
             	default :
-            	    break loop108;
+            	    break loop110;
                 }
             } while (true);
 
@@ -17670,7 +17938,7 @@
 
 
     // $ANTLR start "entryRuleNumber"
-    // InternalSignalDSL.g:6500:1: entryRuleNumber returns [String current=null] : iv_ruleNumber= ruleNumber EOF ;
+    // InternalSignalDSL.g:6599:1: entryRuleNumber returns [String current=null] : iv_ruleNumber= ruleNumber EOF ;
     public final String entryRuleNumber() throws RecognitionException {
         String current = null;
 
@@ -17681,8 +17949,8 @@
         	HiddenTokens myHiddenTokenState = ((XtextTokenStream)input).setHiddenTokens();
 
         try {
-            // InternalSignalDSL.g:6502:2: (iv_ruleNumber= ruleNumber EOF )
-            // InternalSignalDSL.g:6503:2: iv_ruleNumber= ruleNumber EOF
+            // InternalSignalDSL.g:6601:2: (iv_ruleNumber= ruleNumber EOF )
+            // InternalSignalDSL.g:6602:2: iv_ruleNumber= ruleNumber EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getNumberRule()); 
@@ -17716,7 +17984,7 @@
 
 
     // $ANTLR start "ruleNumber"
-    // InternalSignalDSL.g:6512: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:6611: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();
 
@@ -17732,29 +18000,29 @@
         	HiddenTokens myHiddenTokenState = ((XtextTokenStream)input).setHiddenTokens();
 
         try {
-            // InternalSignalDSL.g:6519: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:6520: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:6618: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:6619: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:6520: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 alt112=2;
-            int LA112_0 = input.LA(1);
+            // InternalSignalDSL.g:6619: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 alt114=2;
+            int LA114_0 = input.LA(1);
 
-            if ( (LA112_0==RULE_HEX) ) {
-                alt112=1;
+            if ( (LA114_0==RULE_HEX) ) {
+                alt114=1;
             }
-            else if ( ((LA112_0>=RULE_INT && LA112_0<=RULE_DECIMAL)) ) {
-                alt112=2;
+            else if ( ((LA114_0>=RULE_INT && LA114_0<=RULE_DECIMAL)) ) {
+                alt114=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 112, 0, input);
+                    new NoViableAltException("", 114, 0, input);
 
                 throw nvae;
             }
-            switch (alt112) {
+            switch (alt114) {
                 case 1 :
-                    // InternalSignalDSL.g:6521:3: this_HEX_0= RULE_HEX
+                    // InternalSignalDSL.g:6620: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 ) {
@@ -17771,33 +18039,33 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:6529:3: ( (this_INT_1= RULE_INT | this_DECIMAL_2= RULE_DECIMAL ) (kw= '.' (this_INT_4= RULE_INT | this_DECIMAL_5= RULE_DECIMAL ) )? )
+                    // InternalSignalDSL.g:6628:3: ( (this_INT_1= RULE_INT | this_DECIMAL_2= RULE_DECIMAL ) (kw= '.' (this_INT_4= RULE_INT | this_DECIMAL_5= RULE_DECIMAL ) )? )
                     {
-                    // InternalSignalDSL.g:6529:3: ( (this_INT_1= RULE_INT | this_DECIMAL_2= RULE_DECIMAL ) (kw= '.' (this_INT_4= RULE_INT | this_DECIMAL_5= RULE_DECIMAL ) )? )
-                    // InternalSignalDSL.g:6530:4: (this_INT_1= RULE_INT | this_DECIMAL_2= RULE_DECIMAL ) (kw= '.' (this_INT_4= RULE_INT | this_DECIMAL_5= RULE_DECIMAL ) )?
+                    // InternalSignalDSL.g:6628:3: ( (this_INT_1= RULE_INT | this_DECIMAL_2= RULE_DECIMAL ) (kw= '.' (this_INT_4= RULE_INT | this_DECIMAL_5= RULE_DECIMAL ) )? )
+                    // InternalSignalDSL.g:6629:4: (this_INT_1= RULE_INT | this_DECIMAL_2= RULE_DECIMAL ) (kw= '.' (this_INT_4= RULE_INT | this_DECIMAL_5= RULE_DECIMAL ) )?
                     {
-                    // InternalSignalDSL.g:6530:4: (this_INT_1= RULE_INT | this_DECIMAL_2= RULE_DECIMAL )
-                    int alt109=2;
-                    int LA109_0 = input.LA(1);
+                    // InternalSignalDSL.g:6629:4: (this_INT_1= RULE_INT | this_DECIMAL_2= RULE_DECIMAL )
+                    int alt111=2;
+                    int LA111_0 = input.LA(1);
 
-                    if ( (LA109_0==RULE_INT) ) {
-                        alt109=1;
+                    if ( (LA111_0==RULE_INT) ) {
+                        alt111=1;
                     }
-                    else if ( (LA109_0==RULE_DECIMAL) ) {
-                        alt109=2;
+                    else if ( (LA111_0==RULE_DECIMAL) ) {
+                        alt111=2;
                     }
                     else {
                         if (state.backtracking>0) {state.failed=true; return current;}
                         NoViableAltException nvae =
-                            new NoViableAltException("", 109, 0, input);
+                            new NoViableAltException("", 111, 0, input);
 
                         throw nvae;
                     }
-                    switch (alt109) {
+                    switch (alt111) {
                         case 1 :
-                            // InternalSignalDSL.g:6531:5: this_INT_1= RULE_INT
+                            // InternalSignalDSL.g:6630:5: this_INT_1= RULE_INT
                             {
-                            this_INT_1=(Token)match(input,RULE_INT,FOLLOW_85); if (state.failed) return current;
+                            this_INT_1=(Token)match(input,RULE_INT,FOLLOW_88); if (state.failed) return current;
                             if ( state.backtracking==0 ) {
 
                               					current.merge(this_INT_1);
@@ -17812,9 +18080,9 @@
                             }
                             break;
                         case 2 :
-                            // InternalSignalDSL.g:6539:5: this_DECIMAL_2= RULE_DECIMAL
+                            // InternalSignalDSL.g:6638:5: this_DECIMAL_2= RULE_DECIMAL
                             {
-                            this_DECIMAL_2=(Token)match(input,RULE_DECIMAL,FOLLOW_85); if (state.failed) return current;
+                            this_DECIMAL_2=(Token)match(input,RULE_DECIMAL,FOLLOW_88); if (state.failed) return current;
                             if ( state.backtracking==0 ) {
 
                               					current.merge(this_DECIMAL_2);
@@ -17831,48 +18099,48 @@
 
                     }
 
-                    // InternalSignalDSL.g:6547:4: (kw= '.' (this_INT_4= RULE_INT | this_DECIMAL_5= RULE_DECIMAL ) )?
-                    int alt111=2;
-                    int LA111_0 = input.LA(1);
+                    // InternalSignalDSL.g:6646:4: (kw= '.' (this_INT_4= RULE_INT | this_DECIMAL_5= RULE_DECIMAL ) )?
+                    int alt113=2;
+                    int LA113_0 = input.LA(1);
 
-                    if ( (LA111_0==64) ) {
-                        int LA111_1 = input.LA(2);
+                    if ( (LA113_0==66) ) {
+                        int LA113_1 = input.LA(2);
 
-                        if ( ((LA111_1>=RULE_INT && LA111_1<=RULE_DECIMAL)) ) {
-                            alt111=1;
+                        if ( ((LA113_1>=RULE_INT && LA113_1<=RULE_DECIMAL)) ) {
+                            alt113=1;
                         }
                     }
-                    switch (alt111) {
+                    switch (alt113) {
                         case 1 :
-                            // InternalSignalDSL.g:6548:5: kw= '.' (this_INT_4= RULE_INT | this_DECIMAL_5= RULE_DECIMAL )
+                            // InternalSignalDSL.g:6647:5: kw= '.' (this_INT_4= RULE_INT | this_DECIMAL_5= RULE_DECIMAL )
                             {
-                            kw=(Token)match(input,64,FOLLOW_86); if (state.failed) return current;
+                            kw=(Token)match(input,66,FOLLOW_89); if (state.failed) return current;
                             if ( state.backtracking==0 ) {
 
                               					current.merge(kw);
                               					newLeafNode(kw, grammarAccess.getNumberAccess().getFullStopKeyword_1_1_0());
                               				
                             }
-                            // InternalSignalDSL.g:6553:5: (this_INT_4= RULE_INT | this_DECIMAL_5= RULE_DECIMAL )
-                            int alt110=2;
-                            int LA110_0 = input.LA(1);
+                            // InternalSignalDSL.g:6652:5: (this_INT_4= RULE_INT | this_DECIMAL_5= RULE_DECIMAL )
+                            int alt112=2;
+                            int LA112_0 = input.LA(1);
 
-                            if ( (LA110_0==RULE_INT) ) {
-                                alt110=1;
+                            if ( (LA112_0==RULE_INT) ) {
+                                alt112=1;
                             }
-                            else if ( (LA110_0==RULE_DECIMAL) ) {
-                                alt110=2;
+                            else if ( (LA112_0==RULE_DECIMAL) ) {
+                                alt112=2;
                             }
                             else {
                                 if (state.backtracking>0) {state.failed=true; return current;}
                                 NoViableAltException nvae =
-                                    new NoViableAltException("", 110, 0, input);
+                                    new NoViableAltException("", 112, 0, input);
 
                                 throw nvae;
                             }
-                            switch (alt110) {
+                            switch (alt112) {
                                 case 1 :
-                                    // InternalSignalDSL.g:6554:6: this_INT_4= RULE_INT
+                                    // InternalSignalDSL.g:6653: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 ) {
@@ -17889,7 +18157,7 @@
                                     }
                                     break;
                                 case 2 :
-                                    // InternalSignalDSL.g:6562:6: this_DECIMAL_5= RULE_DECIMAL
+                                    // InternalSignalDSL.g:6661: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 ) {
@@ -17948,7 +18216,7 @@
 
 
     // $ANTLR start "entryRuleJvmTypeReference"
-    // InternalSignalDSL.g:6579:1: entryRuleJvmTypeReference returns [EObject current=null] : iv_ruleJvmTypeReference= ruleJvmTypeReference EOF ;
+    // InternalSignalDSL.g:6678:1: entryRuleJvmTypeReference returns [EObject current=null] : iv_ruleJvmTypeReference= ruleJvmTypeReference EOF ;
     public final EObject entryRuleJvmTypeReference() throws RecognitionException {
         EObject current = null;
 
@@ -17956,8 +18224,8 @@
 
 
         try {
-            // InternalSignalDSL.g:6579:57: (iv_ruleJvmTypeReference= ruleJvmTypeReference EOF )
-            // InternalSignalDSL.g:6580:2: iv_ruleJvmTypeReference= ruleJvmTypeReference EOF
+            // InternalSignalDSL.g:6678:57: (iv_ruleJvmTypeReference= ruleJvmTypeReference EOF )
+            // InternalSignalDSL.g:6679:2: iv_ruleJvmTypeReference= ruleJvmTypeReference EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getJvmTypeReferenceRule()); 
@@ -17988,7 +18256,7 @@
 
 
     // $ANTLR start "ruleJvmTypeReference"
-    // InternalSignalDSL.g:6586:1: ruleJvmTypeReference returns [EObject current=null] : ( (this_JvmParameterizedTypeReference_0= ruleJvmParameterizedTypeReference ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )* ) | this_XFunctionTypeRef_3= ruleXFunctionTypeRef ) ;
+    // InternalSignalDSL.g:6685: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;
 
@@ -18001,39 +18269,39 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:6592:2: ( ( (this_JvmParameterizedTypeReference_0= ruleJvmParameterizedTypeReference ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )* ) | this_XFunctionTypeRef_3= ruleXFunctionTypeRef ) )
-            // InternalSignalDSL.g:6593:2: ( (this_JvmParameterizedTypeReference_0= ruleJvmParameterizedTypeReference ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )* ) | this_XFunctionTypeRef_3= ruleXFunctionTypeRef )
+            // InternalSignalDSL.g:6691:2: ( ( (this_JvmParameterizedTypeReference_0= ruleJvmParameterizedTypeReference ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )* ) | this_XFunctionTypeRef_3= ruleXFunctionTypeRef ) )
+            // InternalSignalDSL.g:6692:2: ( (this_JvmParameterizedTypeReference_0= ruleJvmParameterizedTypeReference ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )* ) | this_XFunctionTypeRef_3= ruleXFunctionTypeRef )
             {
-            // InternalSignalDSL.g:6593:2: ( (this_JvmParameterizedTypeReference_0= ruleJvmParameterizedTypeReference ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )* ) | this_XFunctionTypeRef_3= ruleXFunctionTypeRef )
-            int alt114=2;
-            int LA114_0 = input.LA(1);
+            // InternalSignalDSL.g:6692:2: ( (this_JvmParameterizedTypeReference_0= ruleJvmParameterizedTypeReference ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )* ) | this_XFunctionTypeRef_3= ruleXFunctionTypeRef )
+            int alt116=2;
+            int LA116_0 = input.LA(1);
 
-            if ( (LA114_0==RULE_ID) ) {
-                alt114=1;
+            if ( (LA116_0==RULE_ID) ) {
+                alt116=1;
             }
-            else if ( (LA114_0==27||LA114_0==52) ) {
-                alt114=2;
+            else if ( (LA116_0==29||LA116_0==54) ) {
+                alt116=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 114, 0, input);
+                    new NoViableAltException("", 116, 0, input);
 
                 throw nvae;
             }
-            switch (alt114) {
+            switch (alt116) {
                 case 1 :
-                    // InternalSignalDSL.g:6594:3: (this_JvmParameterizedTypeReference_0= ruleJvmParameterizedTypeReference ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )* )
+                    // InternalSignalDSL.g:6693:3: (this_JvmParameterizedTypeReference_0= ruleJvmParameterizedTypeReference ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )* )
                     {
-                    // InternalSignalDSL.g:6594:3: (this_JvmParameterizedTypeReference_0= ruleJvmParameterizedTypeReference ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )* )
-                    // InternalSignalDSL.g:6595:4: this_JvmParameterizedTypeReference_0= ruleJvmParameterizedTypeReference ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )*
+                    // InternalSignalDSL.g:6693:3: (this_JvmParameterizedTypeReference_0= ruleJvmParameterizedTypeReference ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )* )
+                    // InternalSignalDSL.g:6694:4: this_JvmParameterizedTypeReference_0= ruleJvmParameterizedTypeReference ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )*
                     {
                     if ( state.backtracking==0 ) {
 
                       				newCompositeNode(grammarAccess.getJvmTypeReferenceAccess().getJvmParameterizedTypeReferenceParserRuleCall_0_0());
                       			
                     }
-                    pushFollow(FOLLOW_79);
+                    pushFollow(FOLLOW_82);
                     this_JvmParameterizedTypeReference_0=ruleJvmParameterizedTypeReference();
 
                     state._fsp--;
@@ -18044,20 +18312,20 @@
                       				afterParserOrEnumRuleCall();
                       			
                     }
-                    // InternalSignalDSL.g:6603:4: ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )*
-                    loop113:
+                    // InternalSignalDSL.g:6702:4: ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )*
+                    loop115:
                     do {
-                        int alt113=2;
-                        int LA113_0 = input.LA(1);
+                        int alt115=2;
+                        int LA115_0 = input.LA(1);
 
-                        if ( (LA113_0==32) ) {
-                            int LA113_2 = input.LA(2);
+                        if ( (LA115_0==34) ) {
+                            int LA115_2 = input.LA(2);
 
-                            if ( (LA113_2==33) ) {
-                                int LA113_3 = input.LA(3);
+                            if ( (LA115_2==35) ) {
+                                int LA115_3 = input.LA(3);
 
                                 if ( (synpred49_InternalSignalDSL()) ) {
-                                    alt113=1;
+                                    alt115=1;
                                 }
 
 
@@ -18067,15 +18335,15 @@
                         }
 
 
-                        switch (alt113) {
+                        switch (alt115) {
                     	case 1 :
-                    	    // InternalSignalDSL.g:6604:5: ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets )
+                    	    // InternalSignalDSL.g:6703:5: ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets )
                     	    {
-                    	    // InternalSignalDSL.g:6610:5: ( () ruleArrayBrackets )
-                    	    // InternalSignalDSL.g:6611:6: () ruleArrayBrackets
+                    	    // InternalSignalDSL.g:6709:5: ( () ruleArrayBrackets )
+                    	    // InternalSignalDSL.g:6710:6: () ruleArrayBrackets
                     	    {
-                    	    // InternalSignalDSL.g:6611:6: ()
-                    	    // InternalSignalDSL.g:6612:7: 
+                    	    // InternalSignalDSL.g:6710:6: ()
+                    	    // InternalSignalDSL.g:6711:7: 
                     	    {
                     	    if ( state.backtracking==0 ) {
 
@@ -18092,7 +18360,7 @@
                     	      						newCompositeNode(grammarAccess.getJvmTypeReferenceAccess().getArrayBracketsParserRuleCall_0_1_0_1());
                     	      					
                     	    }
-                    	    pushFollow(FOLLOW_79);
+                    	    pushFollow(FOLLOW_82);
                     	    ruleArrayBrackets();
 
                     	    state._fsp--;
@@ -18110,7 +18378,7 @@
                     	    break;
 
                     	default :
-                    	    break loop113;
+                    	    break loop115;
                         }
                     } while (true);
 
@@ -18121,7 +18389,7 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:6629:3: this_XFunctionTypeRef_3= ruleXFunctionTypeRef
+                    // InternalSignalDSL.g:6728:3: this_XFunctionTypeRef_3= ruleXFunctionTypeRef
                     {
                     if ( state.backtracking==0 ) {
 
@@ -18167,7 +18435,7 @@
 
 
     // $ANTLR start "entryRuleArrayBrackets"
-    // InternalSignalDSL.g:6641:1: entryRuleArrayBrackets returns [String current=null] : iv_ruleArrayBrackets= ruleArrayBrackets EOF ;
+    // InternalSignalDSL.g:6740:1: entryRuleArrayBrackets returns [String current=null] : iv_ruleArrayBrackets= ruleArrayBrackets EOF ;
     public final String entryRuleArrayBrackets() throws RecognitionException {
         String current = null;
 
@@ -18175,8 +18443,8 @@
 
 
         try {
-            // InternalSignalDSL.g:6641:53: (iv_ruleArrayBrackets= ruleArrayBrackets EOF )
-            // InternalSignalDSL.g:6642:2: iv_ruleArrayBrackets= ruleArrayBrackets EOF
+            // InternalSignalDSL.g:6740:53: (iv_ruleArrayBrackets= ruleArrayBrackets EOF )
+            // InternalSignalDSL.g:6741:2: iv_ruleArrayBrackets= ruleArrayBrackets EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getArrayBracketsRule()); 
@@ -18207,7 +18475,7 @@
 
 
     // $ANTLR start "ruleArrayBrackets"
-    // InternalSignalDSL.g:6648:1: ruleArrayBrackets returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '[' kw= ']' ) ;
+    // InternalSignalDSL.g:6747:1: ruleArrayBrackets returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '[' kw= ']' ) ;
     public final AntlrDatatypeRuleToken ruleArrayBrackets() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
@@ -18217,20 +18485,20 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:6654:2: ( (kw= '[' kw= ']' ) )
-            // InternalSignalDSL.g:6655:2: (kw= '[' kw= ']' )
+            // InternalSignalDSL.g:6753:2: ( (kw= '[' kw= ']' ) )
+            // InternalSignalDSL.g:6754:2: (kw= '[' kw= ']' )
             {
-            // InternalSignalDSL.g:6655:2: (kw= '[' kw= ']' )
-            // InternalSignalDSL.g:6656:3: kw= '[' kw= ']'
+            // InternalSignalDSL.g:6754:2: (kw= '[' kw= ']' )
+            // InternalSignalDSL.g:6755:3: kw= '[' kw= ']'
             {
-            kw=(Token)match(input,32,FOLLOW_58); if (state.failed) return current;
+            kw=(Token)match(input,34,FOLLOW_61); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			current.merge(kw);
               			newLeafNode(kw, grammarAccess.getArrayBracketsAccess().getLeftSquareBracketKeyword_0());
               		
             }
-            kw=(Token)match(input,33,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);
@@ -18262,7 +18530,7 @@
 
 
     // $ANTLR start "entryRuleXFunctionTypeRef"
-    // InternalSignalDSL.g:6670:1: entryRuleXFunctionTypeRef returns [EObject current=null] : iv_ruleXFunctionTypeRef= ruleXFunctionTypeRef EOF ;
+    // InternalSignalDSL.g:6769:1: entryRuleXFunctionTypeRef returns [EObject current=null] : iv_ruleXFunctionTypeRef= ruleXFunctionTypeRef EOF ;
     public final EObject entryRuleXFunctionTypeRef() throws RecognitionException {
         EObject current = null;
 
@@ -18270,8 +18538,8 @@
 
 
         try {
-            // InternalSignalDSL.g:6670:57: (iv_ruleXFunctionTypeRef= ruleXFunctionTypeRef EOF )
-            // InternalSignalDSL.g:6671:2: iv_ruleXFunctionTypeRef= ruleXFunctionTypeRef EOF
+            // InternalSignalDSL.g:6769:57: (iv_ruleXFunctionTypeRef= ruleXFunctionTypeRef EOF )
+            // InternalSignalDSL.g:6770:2: iv_ruleXFunctionTypeRef= ruleXFunctionTypeRef EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXFunctionTypeRefRule()); 
@@ -18302,7 +18570,7 @@
 
 
     // $ANTLR start "ruleXFunctionTypeRef"
-    // InternalSignalDSL.g:6677: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:6776: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;
 
@@ -18321,52 +18589,52 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:6683: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:6684: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:6782: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:6783: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:6684: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:6685: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:6783: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:6784: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:6685:3: (otherlv_0= '(' ( ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* )? otherlv_4= ')' )?
-            int alt117=2;
-            int LA117_0 = input.LA(1);
+            // InternalSignalDSL.g:6784:3: (otherlv_0= '(' ( ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* )? otherlv_4= ')' )?
+            int alt119=2;
+            int LA119_0 = input.LA(1);
 
-            if ( (LA117_0==27) ) {
-                alt117=1;
+            if ( (LA119_0==29) ) {
+                alt119=1;
             }
-            switch (alt117) {
+            switch (alt119) {
                 case 1 :
-                    // InternalSignalDSL.g:6686:4: otherlv_0= '(' ( ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* )? otherlv_4= ')'
+                    // InternalSignalDSL.g:6785:4: otherlv_0= '(' ( ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* )? otherlv_4= ')'
                     {
-                    otherlv_0=(Token)match(input,27,FOLLOW_87); if (state.failed) return current;
+                    otherlv_0=(Token)match(input,29,FOLLOW_90); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				newLeafNode(otherlv_0, grammarAccess.getXFunctionTypeRefAccess().getLeftParenthesisKeyword_0_0());
                       			
                     }
-                    // InternalSignalDSL.g:6690:4: ( ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* )?
-                    int alt116=2;
-                    int LA116_0 = input.LA(1);
+                    // InternalSignalDSL.g:6789:4: ( ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* )?
+                    int alt118=2;
+                    int LA118_0 = input.LA(1);
 
-                    if ( (LA116_0==RULE_ID||LA116_0==27||LA116_0==52) ) {
-                        alt116=1;
+                    if ( (LA118_0==RULE_ID||LA118_0==29||LA118_0==54) ) {
+                        alt118=1;
                     }
-                    switch (alt116) {
+                    switch (alt118) {
                         case 1 :
-                            // InternalSignalDSL.g:6691:5: ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )*
+                            // InternalSignalDSL.g:6790:5: ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )*
                             {
-                            // InternalSignalDSL.g:6691:5: ( (lv_paramTypes_1_0= ruleJvmTypeReference ) )
-                            // InternalSignalDSL.g:6692:6: (lv_paramTypes_1_0= ruleJvmTypeReference )
+                            // InternalSignalDSL.g:6790:5: ( (lv_paramTypes_1_0= ruleJvmTypeReference ) )
+                            // InternalSignalDSL.g:6791:6: (lv_paramTypes_1_0= ruleJvmTypeReference )
                             {
-                            // InternalSignalDSL.g:6692:6: (lv_paramTypes_1_0= ruleJvmTypeReference )
-                            // InternalSignalDSL.g:6693:7: lv_paramTypes_1_0= ruleJvmTypeReference
+                            // InternalSignalDSL.g:6791:6: (lv_paramTypes_1_0= ruleJvmTypeReference )
+                            // InternalSignalDSL.g:6792:7: lv_paramTypes_1_0= ruleJvmTypeReference
                             {
                             if ( state.backtracking==0 ) {
 
                               							newCompositeNode(grammarAccess.getXFunctionTypeRefAccess().getParamTypesJvmTypeReferenceParserRuleCall_0_1_0_0());
                               						
                             }
-                            pushFollow(FOLLOW_20);
+                            pushFollow(FOLLOW_23);
                             lv_paramTypes_1_0=ruleJvmTypeReference();
 
                             state._fsp--;
@@ -18390,39 +18658,39 @@
 
                             }
 
-                            // InternalSignalDSL.g:6710:5: (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )*
-                            loop115:
+                            // InternalSignalDSL.g:6809:5: (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )*
+                            loop117:
                             do {
-                                int alt115=2;
-                                int LA115_0 = input.LA(1);
+                                int alt117=2;
+                                int LA117_0 = input.LA(1);
 
-                                if ( (LA115_0==28) ) {
-                                    alt115=1;
+                                if ( (LA117_0==30) ) {
+                                    alt117=1;
                                 }
 
 
-                                switch (alt115) {
+                                switch (alt117) {
                             	case 1 :
-                            	    // InternalSignalDSL.g:6711:6: otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) )
+                            	    // InternalSignalDSL.g:6810:6: otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) )
                             	    {
-                            	    otherlv_2=(Token)match(input,28,FOLLOW_36); if (state.failed) return current;
+                            	    otherlv_2=(Token)match(input,30,FOLLOW_39); if (state.failed) return current;
                             	    if ( state.backtracking==0 ) {
 
                             	      						newLeafNode(otherlv_2, grammarAccess.getXFunctionTypeRefAccess().getCommaKeyword_0_1_1_0());
                             	      					
                             	    }
-                            	    // InternalSignalDSL.g:6715:6: ( (lv_paramTypes_3_0= ruleJvmTypeReference ) )
-                            	    // InternalSignalDSL.g:6716:7: (lv_paramTypes_3_0= ruleJvmTypeReference )
+                            	    // InternalSignalDSL.g:6814:6: ( (lv_paramTypes_3_0= ruleJvmTypeReference ) )
+                            	    // InternalSignalDSL.g:6815:7: (lv_paramTypes_3_0= ruleJvmTypeReference )
                             	    {
-                            	    // InternalSignalDSL.g:6716:7: (lv_paramTypes_3_0= ruleJvmTypeReference )
-                            	    // InternalSignalDSL.g:6717:8: lv_paramTypes_3_0= ruleJvmTypeReference
+                            	    // InternalSignalDSL.g:6815:7: (lv_paramTypes_3_0= ruleJvmTypeReference )
+                            	    // InternalSignalDSL.g:6816:8: lv_paramTypes_3_0= ruleJvmTypeReference
                             	    {
                             	    if ( state.backtracking==0 ) {
 
                             	      								newCompositeNode(grammarAccess.getXFunctionTypeRefAccess().getParamTypesJvmTypeReferenceParserRuleCall_0_1_1_1_0());
                             	      							
                             	    }
-                            	    pushFollow(FOLLOW_20);
+                            	    pushFollow(FOLLOW_23);
                             	    lv_paramTypes_3_0=ruleJvmTypeReference();
 
                             	    state._fsp--;
@@ -18451,7 +18719,7 @@
                             	    break;
 
                             	default :
-                            	    break loop115;
+                            	    break loop117;
                                 }
                             } while (true);
 
@@ -18461,7 +18729,7 @@
 
                     }
 
-                    otherlv_4=(Token)match(input,29,FOLLOW_88); if (state.failed) return current;
+                    otherlv_4=(Token)match(input,31,FOLLOW_91); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				newLeafNode(otherlv_4, grammarAccess.getXFunctionTypeRefAccess().getRightParenthesisKeyword_0_2());
@@ -18473,17 +18741,17 @@
 
             }
 
-            otherlv_5=(Token)match(input,52,FOLLOW_36); if (state.failed) return current;
+            otherlv_5=(Token)match(input,54,FOLLOW_39); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_5, grammarAccess.getXFunctionTypeRefAccess().getEqualsSignGreaterThanSignKeyword_1());
               		
             }
-            // InternalSignalDSL.g:6745:3: ( (lv_returnType_6_0= ruleJvmTypeReference ) )
-            // InternalSignalDSL.g:6746:4: (lv_returnType_6_0= ruleJvmTypeReference )
+            // InternalSignalDSL.g:6844:3: ( (lv_returnType_6_0= ruleJvmTypeReference ) )
+            // InternalSignalDSL.g:6845:4: (lv_returnType_6_0= ruleJvmTypeReference )
             {
-            // InternalSignalDSL.g:6746:4: (lv_returnType_6_0= ruleJvmTypeReference )
-            // InternalSignalDSL.g:6747:5: lv_returnType_6_0= ruleJvmTypeReference
+            // InternalSignalDSL.g:6845:4: (lv_returnType_6_0= ruleJvmTypeReference )
+            // InternalSignalDSL.g:6846:5: lv_returnType_6_0= ruleJvmTypeReference
             {
             if ( state.backtracking==0 ) {
 
@@ -18539,7 +18807,7 @@
 
 
     // $ANTLR start "entryRuleJvmParameterizedTypeReference"
-    // InternalSignalDSL.g:6768:1: entryRuleJvmParameterizedTypeReference returns [EObject current=null] : iv_ruleJvmParameterizedTypeReference= ruleJvmParameterizedTypeReference EOF ;
+    // InternalSignalDSL.g:6867:1: entryRuleJvmParameterizedTypeReference returns [EObject current=null] : iv_ruleJvmParameterizedTypeReference= ruleJvmParameterizedTypeReference EOF ;
     public final EObject entryRuleJvmParameterizedTypeReference() throws RecognitionException {
         EObject current = null;
 
@@ -18547,8 +18815,8 @@
 
 
         try {
-            // InternalSignalDSL.g:6768:70: (iv_ruleJvmParameterizedTypeReference= ruleJvmParameterizedTypeReference EOF )
-            // InternalSignalDSL.g:6769:2: iv_ruleJvmParameterizedTypeReference= ruleJvmParameterizedTypeReference EOF
+            // InternalSignalDSL.g:6867:70: (iv_ruleJvmParameterizedTypeReference= ruleJvmParameterizedTypeReference EOF )
+            // InternalSignalDSL.g:6868:2: iv_ruleJvmParameterizedTypeReference= ruleJvmParameterizedTypeReference EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getJvmParameterizedTypeReferenceRule()); 
@@ -18579,7 +18847,7 @@
 
 
     // $ANTLR start "ruleJvmParameterizedTypeReference"
-    // InternalSignalDSL.g:6775: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:6874: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;
 
@@ -18603,17 +18871,17 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:6781: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:6782: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:6880: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:6881: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:6782: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:6783: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:6881: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:6882: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:6783:3: ( ( ruleQualifiedName ) )
-            // InternalSignalDSL.g:6784:4: ( ruleQualifiedName )
+            // InternalSignalDSL.g:6882:3: ( ( ruleQualifiedName ) )
+            // InternalSignalDSL.g:6883:4: ( ruleQualifiedName )
             {
-            // InternalSignalDSL.g:6784:4: ( ruleQualifiedName )
-            // InternalSignalDSL.g:6785:5: ruleQualifiedName
+            // InternalSignalDSL.g:6883:4: ( ruleQualifiedName )
+            // InternalSignalDSL.g:6884:5: ruleQualifiedName
             {
             if ( state.backtracking==0 ) {
 
@@ -18627,7 +18895,7 @@
               					newCompositeNode(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeJvmTypeCrossReference_0_0());
               				
             }
-            pushFollow(FOLLOW_89);
+            pushFollow(FOLLOW_92);
             ruleQualifiedName();
 
             state._fsp--;
@@ -18643,17 +18911,17 @@
 
             }
 
-            // InternalSignalDSL.g:6799: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 alt122=2;
-            alt122 = dfa122.predict(input);
-            switch (alt122) {
+            // InternalSignalDSL.g:6898: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 alt124=2;
+            alt124 = dfa124.predict(input);
+            switch (alt124) {
                 case 1 :
-                    // InternalSignalDSL.g:6800: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:6899: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:6800:4: ( ( '<' )=>otherlv_1= '<' )
-                    // InternalSignalDSL.g:6801:5: ( '<' )=>otherlv_1= '<'
+                    // InternalSignalDSL.g:6899:4: ( ( '<' )=>otherlv_1= '<' )
+                    // InternalSignalDSL.g:6900:5: ( '<' )=>otherlv_1= '<'
                     {
-                    otherlv_1=(Token)match(input,39,FOLLOW_48); if (state.failed) return current;
+                    otherlv_1=(Token)match(input,41,FOLLOW_51); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       					newLeafNode(otherlv_1, grammarAccess.getJvmParameterizedTypeReferenceAccess().getLessThanSignKeyword_1_0());
@@ -18662,18 +18930,18 @@
 
                     }
 
-                    // InternalSignalDSL.g:6807:4: ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) )
-                    // InternalSignalDSL.g:6808:5: (lv_arguments_2_0= ruleJvmArgumentTypeReference )
+                    // InternalSignalDSL.g:6906:4: ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) )
+                    // InternalSignalDSL.g:6907:5: (lv_arguments_2_0= ruleJvmArgumentTypeReference )
                     {
-                    // InternalSignalDSL.g:6808:5: (lv_arguments_2_0= ruleJvmArgumentTypeReference )
-                    // InternalSignalDSL.g:6809:6: lv_arguments_2_0= ruleJvmArgumentTypeReference
+                    // InternalSignalDSL.g:6907:5: (lv_arguments_2_0= ruleJvmArgumentTypeReference )
+                    // InternalSignalDSL.g:6908:6: lv_arguments_2_0= ruleJvmArgumentTypeReference
                     {
                     if ( state.backtracking==0 ) {
 
                       						newCompositeNode(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsJvmArgumentTypeReferenceParserRuleCall_1_1_0());
                       					
                     }
-                    pushFollow(FOLLOW_49);
+                    pushFollow(FOLLOW_52);
                     lv_arguments_2_0=ruleJvmArgumentTypeReference();
 
                     state._fsp--;
@@ -18697,39 +18965,39 @@
 
                     }
 
-                    // InternalSignalDSL.g:6826:4: (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )*
-                    loop118:
+                    // InternalSignalDSL.g:6925:4: (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )*
+                    loop120:
                     do {
-                        int alt118=2;
-                        int LA118_0 = input.LA(1);
+                        int alt120=2;
+                        int LA120_0 = input.LA(1);
 
-                        if ( (LA118_0==28) ) {
-                            alt118=1;
+                        if ( (LA120_0==30) ) {
+                            alt120=1;
                         }
 
 
-                        switch (alt118) {
+                        switch (alt120) {
                     	case 1 :
-                    	    // InternalSignalDSL.g:6827:5: otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) )
+                    	    // InternalSignalDSL.g:6926:5: otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) )
                     	    {
-                    	    otherlv_3=(Token)match(input,28,FOLLOW_48); if (state.failed) return current;
+                    	    otherlv_3=(Token)match(input,30,FOLLOW_51); if (state.failed) return current;
                     	    if ( state.backtracking==0 ) {
 
                     	      					newLeafNode(otherlv_3, grammarAccess.getJvmParameterizedTypeReferenceAccess().getCommaKeyword_1_2_0());
                     	      				
                     	    }
-                    	    // InternalSignalDSL.g:6831:5: ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) )
-                    	    // InternalSignalDSL.g:6832:6: (lv_arguments_4_0= ruleJvmArgumentTypeReference )
+                    	    // InternalSignalDSL.g:6930:5: ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) )
+                    	    // InternalSignalDSL.g:6931:6: (lv_arguments_4_0= ruleJvmArgumentTypeReference )
                     	    {
-                    	    // InternalSignalDSL.g:6832:6: (lv_arguments_4_0= ruleJvmArgumentTypeReference )
-                    	    // InternalSignalDSL.g:6833:7: lv_arguments_4_0= ruleJvmArgumentTypeReference
+                    	    // InternalSignalDSL.g:6931:6: (lv_arguments_4_0= ruleJvmArgumentTypeReference )
+                    	    // InternalSignalDSL.g:6932:7: lv_arguments_4_0= ruleJvmArgumentTypeReference
                     	    {
                     	    if ( state.backtracking==0 ) {
 
                     	      							newCompositeNode(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsJvmArgumentTypeReferenceParserRuleCall_1_2_1_0());
                     	      						
                     	    }
-                    	    pushFollow(FOLLOW_49);
+                    	    pushFollow(FOLLOW_52);
                     	    lv_arguments_4_0=ruleJvmArgumentTypeReference();
 
                     	    state._fsp--;
@@ -18758,30 +19026,30 @@
                     	    break;
 
                     	default :
-                    	    break loop118;
+                    	    break loop120;
                         }
                     } while (true);
 
-                    otherlv_5=(Token)match(input,40,FOLLOW_85); if (state.failed) return current;
+                    otherlv_5=(Token)match(input,42,FOLLOW_88); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				newLeafNode(otherlv_5, grammarAccess.getJvmParameterizedTypeReferenceAccess().getGreaterThanSignKeyword_1_3());
                       			
                     }
-                    // InternalSignalDSL.g:6855:4: ( ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? )*
-                    loop121:
+                    // InternalSignalDSL.g:6954:4: ( ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? )*
+                    loop123:
                     do {
-                        int alt121=2;
-                        int LA121_0 = input.LA(1);
+                        int alt123=2;
+                        int LA123_0 = input.LA(1);
 
-                        if ( (LA121_0==64) ) {
-                            int LA121_2 = input.LA(2);
+                        if ( (LA123_0==66) ) {
+                            int LA123_2 = input.LA(2);
 
-                            if ( (LA121_2==RULE_ID) ) {
-                                int LA121_3 = input.LA(3);
+                            if ( (LA123_2==RULE_ID) ) {
+                                int LA123_3 = input.LA(3);
 
                                 if ( (synpred51_InternalSignalDSL()) ) {
-                                    alt121=1;
+                                    alt123=1;
                                 }
 
 
@@ -18791,18 +19059,18 @@
                         }
 
 
-                        switch (alt121) {
+                        switch (alt123) {
                     	case 1 :
-                    	    // InternalSignalDSL.g:6856:5: ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )?
+                    	    // InternalSignalDSL.g:6955:5: ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )?
                     	    {
-                    	    // InternalSignalDSL.g:6856:5: ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) )
-                    	    // InternalSignalDSL.g:6857:6: ( ( () '.' ) )=> ( () otherlv_7= '.' )
+                    	    // InternalSignalDSL.g:6955:5: ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) )
+                    	    // InternalSignalDSL.g:6956:6: ( ( () '.' ) )=> ( () otherlv_7= '.' )
                     	    {
-                    	    // InternalSignalDSL.g:6863:6: ( () otherlv_7= '.' )
-                    	    // InternalSignalDSL.g:6864:7: () otherlv_7= '.'
+                    	    // InternalSignalDSL.g:6962:6: ( () otherlv_7= '.' )
+                    	    // InternalSignalDSL.g:6963:7: () otherlv_7= '.'
                     	    {
-                    	    // InternalSignalDSL.g:6864:7: ()
-                    	    // InternalSignalDSL.g:6865:8: 
+                    	    // InternalSignalDSL.g:6963:7: ()
+                    	    // InternalSignalDSL.g:6964:8: 
                     	    {
                     	    if ( state.backtracking==0 ) {
 
@@ -18814,7 +19082,7 @@
 
                     	    }
 
-                    	    otherlv_7=(Token)match(input,64,FOLLOW_4); if (state.failed) return current;
+                    	    otherlv_7=(Token)match(input,66,FOLLOW_4); if (state.failed) return current;
                     	    if ( state.backtracking==0 ) {
 
                     	      							newLeafNode(otherlv_7, grammarAccess.getJvmParameterizedTypeReferenceAccess().getFullStopKeyword_1_4_0_0_1());
@@ -18826,11 +19094,11 @@
 
                     	    }
 
-                    	    // InternalSignalDSL.g:6877:5: ( ( ruleValidID ) )
-                    	    // InternalSignalDSL.g:6878:6: ( ruleValidID )
+                    	    // InternalSignalDSL.g:6976:5: ( ( ruleValidID ) )
+                    	    // InternalSignalDSL.g:6977:6: ( ruleValidID )
                     	    {
-                    	    // InternalSignalDSL.g:6878:6: ( ruleValidID )
-                    	    // InternalSignalDSL.g:6879:7: ruleValidID
+                    	    // InternalSignalDSL.g:6977:6: ( ruleValidID )
+                    	    // InternalSignalDSL.g:6978:7: ruleValidID
                     	    {
                     	    if ( state.backtracking==0 ) {
 
@@ -18844,7 +19112,7 @@
                     	      							newCompositeNode(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeJvmTypeCrossReference_1_4_1_0());
                     	      						
                     	    }
-                    	    pushFollow(FOLLOW_90);
+                    	    pushFollow(FOLLOW_93);
                     	    ruleValidID();
 
                     	    state._fsp--;
@@ -18860,17 +19128,17 @@
 
                     	    }
 
-                    	    // InternalSignalDSL.g:6893:5: ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )?
-                    	    int alt120=2;
-                    	    alt120 = dfa120.predict(input);
-                    	    switch (alt120) {
+                    	    // InternalSignalDSL.g:6992:5: ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )?
+                    	    int alt122=2;
+                    	    alt122 = dfa122.predict(input);
+                    	    switch (alt122) {
                     	        case 1 :
-                    	            // InternalSignalDSL.g:6894:6: ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>'
+                    	            // InternalSignalDSL.g:6993:6: ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>'
                     	            {
-                    	            // InternalSignalDSL.g:6894:6: ( ( '<' )=>otherlv_9= '<' )
-                    	            // InternalSignalDSL.g:6895:7: ( '<' )=>otherlv_9= '<'
+                    	            // InternalSignalDSL.g:6993:6: ( ( '<' )=>otherlv_9= '<' )
+                    	            // InternalSignalDSL.g:6994:7: ( '<' )=>otherlv_9= '<'
                     	            {
-                    	            otherlv_9=(Token)match(input,39,FOLLOW_48); if (state.failed) return current;
+                    	            otherlv_9=(Token)match(input,41,FOLLOW_51); if (state.failed) return current;
                     	            if ( state.backtracking==0 ) {
 
                     	              							newLeafNode(otherlv_9, grammarAccess.getJvmParameterizedTypeReferenceAccess().getLessThanSignKeyword_1_4_2_0());
@@ -18879,18 +19147,18 @@
 
                     	            }
 
-                    	            // InternalSignalDSL.g:6901:6: ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) )
-                    	            // InternalSignalDSL.g:6902:7: (lv_arguments_10_0= ruleJvmArgumentTypeReference )
+                    	            // InternalSignalDSL.g:7000:6: ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) )
+                    	            // InternalSignalDSL.g:7001:7: (lv_arguments_10_0= ruleJvmArgumentTypeReference )
                     	            {
-                    	            // InternalSignalDSL.g:6902:7: (lv_arguments_10_0= ruleJvmArgumentTypeReference )
-                    	            // InternalSignalDSL.g:6903:8: lv_arguments_10_0= ruleJvmArgumentTypeReference
+                    	            // InternalSignalDSL.g:7001:7: (lv_arguments_10_0= ruleJvmArgumentTypeReference )
+                    	            // InternalSignalDSL.g:7002:8: lv_arguments_10_0= ruleJvmArgumentTypeReference
                     	            {
                     	            if ( state.backtracking==0 ) {
 
                     	              								newCompositeNode(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsJvmArgumentTypeReferenceParserRuleCall_1_4_2_1_0());
                     	              							
                     	            }
-                    	            pushFollow(FOLLOW_49);
+                    	            pushFollow(FOLLOW_52);
                     	            lv_arguments_10_0=ruleJvmArgumentTypeReference();
 
                     	            state._fsp--;
@@ -18914,39 +19182,39 @@
 
                     	            }
 
-                    	            // InternalSignalDSL.g:6920:6: (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )*
-                    	            loop119:
+                    	            // InternalSignalDSL.g:7019:6: (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )*
+                    	            loop121:
                     	            do {
-                    	                int alt119=2;
-                    	                int LA119_0 = input.LA(1);
+                    	                int alt121=2;
+                    	                int LA121_0 = input.LA(1);
 
-                    	                if ( (LA119_0==28) ) {
-                    	                    alt119=1;
+                    	                if ( (LA121_0==30) ) {
+                    	                    alt121=1;
                     	                }
 
 
-                    	                switch (alt119) {
+                    	                switch (alt121) {
                     	            	case 1 :
-                    	            	    // InternalSignalDSL.g:6921:7: otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) )
+                    	            	    // InternalSignalDSL.g:7020:7: otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) )
                     	            	    {
-                    	            	    otherlv_11=(Token)match(input,28,FOLLOW_48); if (state.failed) return current;
+                    	            	    otherlv_11=(Token)match(input,30,FOLLOW_51); if (state.failed) return current;
                     	            	    if ( state.backtracking==0 ) {
 
                     	            	      							newLeafNode(otherlv_11, grammarAccess.getJvmParameterizedTypeReferenceAccess().getCommaKeyword_1_4_2_2_0());
                     	            	      						
                     	            	    }
-                    	            	    // InternalSignalDSL.g:6925:7: ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) )
-                    	            	    // InternalSignalDSL.g:6926:8: (lv_arguments_12_0= ruleJvmArgumentTypeReference )
+                    	            	    // InternalSignalDSL.g:7024:7: ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) )
+                    	            	    // InternalSignalDSL.g:7025:8: (lv_arguments_12_0= ruleJvmArgumentTypeReference )
                     	            	    {
-                    	            	    // InternalSignalDSL.g:6926:8: (lv_arguments_12_0= ruleJvmArgumentTypeReference )
-                    	            	    // InternalSignalDSL.g:6927:9: lv_arguments_12_0= ruleJvmArgumentTypeReference
+                    	            	    // InternalSignalDSL.g:7025:8: (lv_arguments_12_0= ruleJvmArgumentTypeReference )
+                    	            	    // InternalSignalDSL.g:7026:9: lv_arguments_12_0= ruleJvmArgumentTypeReference
                     	            	    {
                     	            	    if ( state.backtracking==0 ) {
 
                     	            	      									newCompositeNode(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsJvmArgumentTypeReferenceParserRuleCall_1_4_2_2_1_0());
                     	            	      								
                     	            	    }
-                    	            	    pushFollow(FOLLOW_49);
+                    	            	    pushFollow(FOLLOW_52);
                     	            	    lv_arguments_12_0=ruleJvmArgumentTypeReference();
 
                     	            	    state._fsp--;
@@ -18975,11 +19243,11 @@
                     	            	    break;
 
                     	            	default :
-                    	            	    break loop119;
+                    	            	    break loop121;
                     	                }
                     	            } while (true);
 
-                    	            otherlv_13=(Token)match(input,40,FOLLOW_85); if (state.failed) return current;
+                    	            otherlv_13=(Token)match(input,42,FOLLOW_88); if (state.failed) return current;
                     	            if ( state.backtracking==0 ) {
 
                     	              						newLeafNode(otherlv_13, grammarAccess.getJvmParameterizedTypeReferenceAccess().getGreaterThanSignKeyword_1_4_2_3());
@@ -18996,7 +19264,7 @@
                     	    break;
 
                     	default :
-                    	    break loop121;
+                    	    break loop123;
                         }
                     } while (true);
 
@@ -19031,7 +19299,7 @@
 
 
     // $ANTLR start "entryRuleJvmArgumentTypeReference"
-    // InternalSignalDSL.g:6956:1: entryRuleJvmArgumentTypeReference returns [EObject current=null] : iv_ruleJvmArgumentTypeReference= ruleJvmArgumentTypeReference EOF ;
+    // InternalSignalDSL.g:7055:1: entryRuleJvmArgumentTypeReference returns [EObject current=null] : iv_ruleJvmArgumentTypeReference= ruleJvmArgumentTypeReference EOF ;
     public final EObject entryRuleJvmArgumentTypeReference() throws RecognitionException {
         EObject current = null;
 
@@ -19039,8 +19307,8 @@
 
 
         try {
-            // InternalSignalDSL.g:6956:65: (iv_ruleJvmArgumentTypeReference= ruleJvmArgumentTypeReference EOF )
-            // InternalSignalDSL.g:6957:2: iv_ruleJvmArgumentTypeReference= ruleJvmArgumentTypeReference EOF
+            // InternalSignalDSL.g:7055:65: (iv_ruleJvmArgumentTypeReference= ruleJvmArgumentTypeReference EOF )
+            // InternalSignalDSL.g:7056:2: iv_ruleJvmArgumentTypeReference= ruleJvmArgumentTypeReference EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getJvmArgumentTypeReferenceRule()); 
@@ -19071,7 +19339,7 @@
 
 
     // $ANTLR start "ruleJvmArgumentTypeReference"
-    // InternalSignalDSL.g:6963:1: ruleJvmArgumentTypeReference returns [EObject current=null] : (this_JvmTypeReference_0= ruleJvmTypeReference | this_JvmWildcardTypeReference_1= ruleJvmWildcardTypeReference ) ;
+    // InternalSignalDSL.g:7062:1: ruleJvmArgumentTypeReference returns [EObject current=null] : (this_JvmTypeReference_0= ruleJvmTypeReference | this_JvmWildcardTypeReference_1= ruleJvmWildcardTypeReference ) ;
     public final EObject ruleJvmArgumentTypeReference() throws RecognitionException {
         EObject current = null;
 
@@ -19084,29 +19352,29 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:6969:2: ( (this_JvmTypeReference_0= ruleJvmTypeReference | this_JvmWildcardTypeReference_1= ruleJvmWildcardTypeReference ) )
-            // InternalSignalDSL.g:6970:2: (this_JvmTypeReference_0= ruleJvmTypeReference | this_JvmWildcardTypeReference_1= ruleJvmWildcardTypeReference )
+            // InternalSignalDSL.g:7068:2: ( (this_JvmTypeReference_0= ruleJvmTypeReference | this_JvmWildcardTypeReference_1= ruleJvmWildcardTypeReference ) )
+            // InternalSignalDSL.g:7069:2: (this_JvmTypeReference_0= ruleJvmTypeReference | this_JvmWildcardTypeReference_1= ruleJvmWildcardTypeReference )
             {
-            // InternalSignalDSL.g:6970:2: (this_JvmTypeReference_0= ruleJvmTypeReference | this_JvmWildcardTypeReference_1= ruleJvmWildcardTypeReference )
-            int alt123=2;
-            int LA123_0 = input.LA(1);
+            // InternalSignalDSL.g:7069:2: (this_JvmTypeReference_0= ruleJvmTypeReference | this_JvmWildcardTypeReference_1= ruleJvmWildcardTypeReference )
+            int alt125=2;
+            int LA125_0 = input.LA(1);
 
-            if ( (LA123_0==RULE_ID||LA123_0==27||LA123_0==52) ) {
-                alt123=1;
+            if ( (LA125_0==RULE_ID||LA125_0==29||LA125_0==54) ) {
+                alt125=1;
             }
-            else if ( (LA123_0==91) ) {
-                alt123=2;
+            else if ( (LA125_0==93) ) {
+                alt125=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 123, 0, input);
+                    new NoViableAltException("", 125, 0, input);
 
                 throw nvae;
             }
-            switch (alt123) {
+            switch (alt125) {
                 case 1 :
-                    // InternalSignalDSL.g:6971:3: this_JvmTypeReference_0= ruleJvmTypeReference
+                    // InternalSignalDSL.g:7070:3: this_JvmTypeReference_0= ruleJvmTypeReference
                     {
                     if ( state.backtracking==0 ) {
 
@@ -19128,7 +19396,7 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:6980:3: this_JvmWildcardTypeReference_1= ruleJvmWildcardTypeReference
+                    // InternalSignalDSL.g:7079:3: this_JvmWildcardTypeReference_1= ruleJvmWildcardTypeReference
                     {
                     if ( state.backtracking==0 ) {
 
@@ -19174,7 +19442,7 @@
 
 
     // $ANTLR start "entryRuleJvmWildcardTypeReference"
-    // InternalSignalDSL.g:6992:1: entryRuleJvmWildcardTypeReference returns [EObject current=null] : iv_ruleJvmWildcardTypeReference= ruleJvmWildcardTypeReference EOF ;
+    // InternalSignalDSL.g:7091:1: entryRuleJvmWildcardTypeReference returns [EObject current=null] : iv_ruleJvmWildcardTypeReference= ruleJvmWildcardTypeReference EOF ;
     public final EObject entryRuleJvmWildcardTypeReference() throws RecognitionException {
         EObject current = null;
 
@@ -19182,8 +19450,8 @@
 
 
         try {
-            // InternalSignalDSL.g:6992:65: (iv_ruleJvmWildcardTypeReference= ruleJvmWildcardTypeReference EOF )
-            // InternalSignalDSL.g:6993:2: iv_ruleJvmWildcardTypeReference= ruleJvmWildcardTypeReference EOF
+            // InternalSignalDSL.g:7091:65: (iv_ruleJvmWildcardTypeReference= ruleJvmWildcardTypeReference EOF )
+            // InternalSignalDSL.g:7092:2: iv_ruleJvmWildcardTypeReference= ruleJvmWildcardTypeReference EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getJvmWildcardTypeReferenceRule()); 
@@ -19214,7 +19482,7 @@
 
 
     // $ANTLR start "ruleJvmWildcardTypeReference"
-    // InternalSignalDSL.g:6999: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:7098: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;
 
@@ -19232,14 +19500,14 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:7005: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:7006: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:7104: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:7105: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:7006: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:7007: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:7105: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:7106: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:7007:3: ()
-            // InternalSignalDSL.g:7008:4: 
+            // InternalSignalDSL.g:7106:3: ()
+            // InternalSignalDSL.g:7107:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -19251,41 +19519,41 @@
 
             }
 
-            otherlv_1=(Token)match(input,91,FOLLOW_91); if (state.failed) return current;
+            otherlv_1=(Token)match(input,93,FOLLOW_94); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_1, grammarAccess.getJvmWildcardTypeReferenceAccess().getQuestionMarkKeyword_1());
               		
             }
-            // InternalSignalDSL.g:7018:3: ( ( ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )* ) | ( ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )* ) )?
-            int alt126=3;
-            int LA126_0 = input.LA(1);
+            // InternalSignalDSL.g:7117:3: ( ( ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )* ) | ( ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )* ) )?
+            int alt128=3;
+            int LA128_0 = input.LA(1);
 
-            if ( (LA126_0==78) ) {
-                alt126=1;
+            if ( (LA128_0==80) ) {
+                alt128=1;
             }
-            else if ( (LA126_0==79) ) {
-                alt126=2;
+            else if ( (LA128_0==81) ) {
+                alt128=2;
             }
-            switch (alt126) {
+            switch (alt128) {
                 case 1 :
-                    // InternalSignalDSL.g:7019:4: ( ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )* )
+                    // InternalSignalDSL.g:7118:4: ( ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )* )
                     {
-                    // InternalSignalDSL.g:7019:4: ( ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )* )
-                    // InternalSignalDSL.g:7020:5: ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )*
+                    // InternalSignalDSL.g:7118:4: ( ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )* )
+                    // InternalSignalDSL.g:7119:5: ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )*
                     {
-                    // InternalSignalDSL.g:7020:5: ( (lv_constraints_2_0= ruleJvmUpperBound ) )
-                    // InternalSignalDSL.g:7021:6: (lv_constraints_2_0= ruleJvmUpperBound )
+                    // InternalSignalDSL.g:7119:5: ( (lv_constraints_2_0= ruleJvmUpperBound ) )
+                    // InternalSignalDSL.g:7120:6: (lv_constraints_2_0= ruleJvmUpperBound )
                     {
-                    // InternalSignalDSL.g:7021:6: (lv_constraints_2_0= ruleJvmUpperBound )
-                    // InternalSignalDSL.g:7022:7: lv_constraints_2_0= ruleJvmUpperBound
+                    // InternalSignalDSL.g:7120:6: (lv_constraints_2_0= ruleJvmUpperBound )
+                    // InternalSignalDSL.g:7121:7: lv_constraints_2_0= ruleJvmUpperBound
                     {
                     if ( state.backtracking==0 ) {
 
                       							newCompositeNode(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsJvmUpperBoundParserRuleCall_2_0_0_0());
                       						
                     }
-                    pushFollow(FOLLOW_92);
+                    pushFollow(FOLLOW_95);
                     lv_constraints_2_0=ruleJvmUpperBound();
 
                     state._fsp--;
@@ -19309,30 +19577,30 @@
 
                     }
 
-                    // InternalSignalDSL.g:7039:5: ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )*
-                    loop124:
+                    // InternalSignalDSL.g:7138:5: ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )*
+                    loop126:
                     do {
-                        int alt124=2;
-                        int LA124_0 = input.LA(1);
+                        int alt126=2;
+                        int LA126_0 = input.LA(1);
 
-                        if ( (LA124_0==92) ) {
-                            alt124=1;
+                        if ( (LA126_0==94) ) {
+                            alt126=1;
                         }
 
 
-                        switch (alt124) {
+                        switch (alt126) {
                     	case 1 :
-                    	    // InternalSignalDSL.g:7040:6: (lv_constraints_3_0= ruleJvmUpperBoundAnded )
+                    	    // InternalSignalDSL.g:7139:6: (lv_constraints_3_0= ruleJvmUpperBoundAnded )
                     	    {
-                    	    // InternalSignalDSL.g:7040:6: (lv_constraints_3_0= ruleJvmUpperBoundAnded )
-                    	    // InternalSignalDSL.g:7041:7: lv_constraints_3_0= ruleJvmUpperBoundAnded
+                    	    // InternalSignalDSL.g:7139:6: (lv_constraints_3_0= ruleJvmUpperBoundAnded )
+                    	    // InternalSignalDSL.g:7140:7: lv_constraints_3_0= ruleJvmUpperBoundAnded
                     	    {
                     	    if ( state.backtracking==0 ) {
 
                     	      							newCompositeNode(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsJvmUpperBoundAndedParserRuleCall_2_0_1_0());
                     	      						
                     	    }
-                    	    pushFollow(FOLLOW_92);
+                    	    pushFollow(FOLLOW_95);
                     	    lv_constraints_3_0=ruleJvmUpperBoundAnded();
 
                     	    state._fsp--;
@@ -19358,7 +19626,7 @@
                     	    break;
 
                     	default :
-                    	    break loop124;
+                    	    break loop126;
                         }
                     } while (true);
 
@@ -19369,23 +19637,23 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:7060:4: ( ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )* )
+                    // InternalSignalDSL.g:7159:4: ( ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )* )
                     {
-                    // InternalSignalDSL.g:7060:4: ( ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )* )
-                    // InternalSignalDSL.g:7061:5: ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )*
+                    // InternalSignalDSL.g:7159:4: ( ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )* )
+                    // InternalSignalDSL.g:7160:5: ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )*
                     {
-                    // InternalSignalDSL.g:7061:5: ( (lv_constraints_4_0= ruleJvmLowerBound ) )
-                    // InternalSignalDSL.g:7062:6: (lv_constraints_4_0= ruleJvmLowerBound )
+                    // InternalSignalDSL.g:7160:5: ( (lv_constraints_4_0= ruleJvmLowerBound ) )
+                    // InternalSignalDSL.g:7161:6: (lv_constraints_4_0= ruleJvmLowerBound )
                     {
-                    // InternalSignalDSL.g:7062:6: (lv_constraints_4_0= ruleJvmLowerBound )
-                    // InternalSignalDSL.g:7063:7: lv_constraints_4_0= ruleJvmLowerBound
+                    // InternalSignalDSL.g:7161:6: (lv_constraints_4_0= ruleJvmLowerBound )
+                    // InternalSignalDSL.g:7162:7: lv_constraints_4_0= ruleJvmLowerBound
                     {
                     if ( state.backtracking==0 ) {
 
                       							newCompositeNode(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsJvmLowerBoundParserRuleCall_2_1_0_0());
                       						
                     }
-                    pushFollow(FOLLOW_92);
+                    pushFollow(FOLLOW_95);
                     lv_constraints_4_0=ruleJvmLowerBound();
 
                     state._fsp--;
@@ -19409,30 +19677,30 @@
 
                     }
 
-                    // InternalSignalDSL.g:7080:5: ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )*
-                    loop125:
+                    // InternalSignalDSL.g:7179:5: ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )*
+                    loop127:
                     do {
-                        int alt125=2;
-                        int LA125_0 = input.LA(1);
+                        int alt127=2;
+                        int LA127_0 = input.LA(1);
 
-                        if ( (LA125_0==92) ) {
-                            alt125=1;
+                        if ( (LA127_0==94) ) {
+                            alt127=1;
                         }
 
 
-                        switch (alt125) {
+                        switch (alt127) {
                     	case 1 :
-                    	    // InternalSignalDSL.g:7081:6: (lv_constraints_5_0= ruleJvmLowerBoundAnded )
+                    	    // InternalSignalDSL.g:7180:6: (lv_constraints_5_0= ruleJvmLowerBoundAnded )
                     	    {
-                    	    // InternalSignalDSL.g:7081:6: (lv_constraints_5_0= ruleJvmLowerBoundAnded )
-                    	    // InternalSignalDSL.g:7082:7: lv_constraints_5_0= ruleJvmLowerBoundAnded
+                    	    // InternalSignalDSL.g:7180:6: (lv_constraints_5_0= ruleJvmLowerBoundAnded )
+                    	    // InternalSignalDSL.g:7181:7: lv_constraints_5_0= ruleJvmLowerBoundAnded
                     	    {
                     	    if ( state.backtracking==0 ) {
 
                     	      							newCompositeNode(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsJvmLowerBoundAndedParserRuleCall_2_1_1_0());
                     	      						
                     	    }
-                    	    pushFollow(FOLLOW_92);
+                    	    pushFollow(FOLLOW_95);
                     	    lv_constraints_5_0=ruleJvmLowerBoundAnded();
 
                     	    state._fsp--;
@@ -19458,7 +19726,7 @@
                     	    break;
 
                     	default :
-                    	    break loop125;
+                    	    break loop127;
                         }
                     } while (true);
 
@@ -19496,7 +19764,7 @@
 
 
     // $ANTLR start "entryRuleJvmUpperBound"
-    // InternalSignalDSL.g:7105:1: entryRuleJvmUpperBound returns [EObject current=null] : iv_ruleJvmUpperBound= ruleJvmUpperBound EOF ;
+    // InternalSignalDSL.g:7204:1: entryRuleJvmUpperBound returns [EObject current=null] : iv_ruleJvmUpperBound= ruleJvmUpperBound EOF ;
     public final EObject entryRuleJvmUpperBound() throws RecognitionException {
         EObject current = null;
 
@@ -19504,8 +19772,8 @@
 
 
         try {
-            // InternalSignalDSL.g:7105:54: (iv_ruleJvmUpperBound= ruleJvmUpperBound EOF )
-            // InternalSignalDSL.g:7106:2: iv_ruleJvmUpperBound= ruleJvmUpperBound EOF
+            // InternalSignalDSL.g:7204:54: (iv_ruleJvmUpperBound= ruleJvmUpperBound EOF )
+            // InternalSignalDSL.g:7205:2: iv_ruleJvmUpperBound= ruleJvmUpperBound EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getJvmUpperBoundRule()); 
@@ -19536,7 +19804,7 @@
 
 
     // $ANTLR start "ruleJvmUpperBound"
-    // InternalSignalDSL.g:7112:1: ruleJvmUpperBound returns [EObject current=null] : (otherlv_0= 'extends' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) ;
+    // InternalSignalDSL.g:7211:1: ruleJvmUpperBound returns [EObject current=null] : (otherlv_0= 'extends' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) ;
     public final EObject ruleJvmUpperBound() throws RecognitionException {
         EObject current = null;
 
@@ -19548,23 +19816,23 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:7118:2: ( (otherlv_0= 'extends' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) )
-            // InternalSignalDSL.g:7119:2: (otherlv_0= 'extends' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) )
+            // InternalSignalDSL.g:7217:2: ( (otherlv_0= 'extends' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) )
+            // InternalSignalDSL.g:7218:2: (otherlv_0= 'extends' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) )
             {
-            // InternalSignalDSL.g:7119:2: (otherlv_0= 'extends' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) )
-            // InternalSignalDSL.g:7120:3: otherlv_0= 'extends' ( (lv_typeReference_1_0= ruleJvmTypeReference ) )
+            // InternalSignalDSL.g:7218:2: (otherlv_0= 'extends' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) )
+            // InternalSignalDSL.g:7219:3: otherlv_0= 'extends' ( (lv_typeReference_1_0= ruleJvmTypeReference ) )
             {
-            otherlv_0=(Token)match(input,78,FOLLOW_36); if (state.failed) return current;
+            otherlv_0=(Token)match(input,80,FOLLOW_39); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_0, grammarAccess.getJvmUpperBoundAccess().getExtendsKeyword_0());
               		
             }
-            // InternalSignalDSL.g:7124:3: ( (lv_typeReference_1_0= ruleJvmTypeReference ) )
-            // InternalSignalDSL.g:7125:4: (lv_typeReference_1_0= ruleJvmTypeReference )
+            // InternalSignalDSL.g:7223:3: ( (lv_typeReference_1_0= ruleJvmTypeReference ) )
+            // InternalSignalDSL.g:7224:4: (lv_typeReference_1_0= ruleJvmTypeReference )
             {
-            // InternalSignalDSL.g:7125:4: (lv_typeReference_1_0= ruleJvmTypeReference )
-            // InternalSignalDSL.g:7126:5: lv_typeReference_1_0= ruleJvmTypeReference
+            // InternalSignalDSL.g:7224:4: (lv_typeReference_1_0= ruleJvmTypeReference )
+            // InternalSignalDSL.g:7225:5: lv_typeReference_1_0= ruleJvmTypeReference
             {
             if ( state.backtracking==0 ) {
 
@@ -19620,7 +19888,7 @@
 
 
     // $ANTLR start "entryRuleJvmUpperBoundAnded"
-    // InternalSignalDSL.g:7147:1: entryRuleJvmUpperBoundAnded returns [EObject current=null] : iv_ruleJvmUpperBoundAnded= ruleJvmUpperBoundAnded EOF ;
+    // InternalSignalDSL.g:7246:1: entryRuleJvmUpperBoundAnded returns [EObject current=null] : iv_ruleJvmUpperBoundAnded= ruleJvmUpperBoundAnded EOF ;
     public final EObject entryRuleJvmUpperBoundAnded() throws RecognitionException {
         EObject current = null;
 
@@ -19628,8 +19896,8 @@
 
 
         try {
-            // InternalSignalDSL.g:7147:59: (iv_ruleJvmUpperBoundAnded= ruleJvmUpperBoundAnded EOF )
-            // InternalSignalDSL.g:7148:2: iv_ruleJvmUpperBoundAnded= ruleJvmUpperBoundAnded EOF
+            // InternalSignalDSL.g:7246:59: (iv_ruleJvmUpperBoundAnded= ruleJvmUpperBoundAnded EOF )
+            // InternalSignalDSL.g:7247:2: iv_ruleJvmUpperBoundAnded= ruleJvmUpperBoundAnded EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getJvmUpperBoundAndedRule()); 
@@ -19660,7 +19928,7 @@
 
 
     // $ANTLR start "ruleJvmUpperBoundAnded"
-    // InternalSignalDSL.g:7154:1: ruleJvmUpperBoundAnded returns [EObject current=null] : (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) ;
+    // InternalSignalDSL.g:7253:1: ruleJvmUpperBoundAnded returns [EObject current=null] : (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) ;
     public final EObject ruleJvmUpperBoundAnded() throws RecognitionException {
         EObject current = null;
 
@@ -19672,23 +19940,23 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:7160:2: ( (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) )
-            // InternalSignalDSL.g:7161:2: (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) )
+            // InternalSignalDSL.g:7259:2: ( (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) )
+            // InternalSignalDSL.g:7260:2: (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) )
             {
-            // InternalSignalDSL.g:7161:2: (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) )
-            // InternalSignalDSL.g:7162:3: otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) )
+            // InternalSignalDSL.g:7260:2: (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) )
+            // InternalSignalDSL.g:7261:3: otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) )
             {
-            otherlv_0=(Token)match(input,92,FOLLOW_36); if (state.failed) return current;
+            otherlv_0=(Token)match(input,94,FOLLOW_39); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_0, grammarAccess.getJvmUpperBoundAndedAccess().getAmpersandKeyword_0());
               		
             }
-            // InternalSignalDSL.g:7166:3: ( (lv_typeReference_1_0= ruleJvmTypeReference ) )
-            // InternalSignalDSL.g:7167:4: (lv_typeReference_1_0= ruleJvmTypeReference )
+            // InternalSignalDSL.g:7265:3: ( (lv_typeReference_1_0= ruleJvmTypeReference ) )
+            // InternalSignalDSL.g:7266:4: (lv_typeReference_1_0= ruleJvmTypeReference )
             {
-            // InternalSignalDSL.g:7167:4: (lv_typeReference_1_0= ruleJvmTypeReference )
-            // InternalSignalDSL.g:7168:5: lv_typeReference_1_0= ruleJvmTypeReference
+            // InternalSignalDSL.g:7266:4: (lv_typeReference_1_0= ruleJvmTypeReference )
+            // InternalSignalDSL.g:7267:5: lv_typeReference_1_0= ruleJvmTypeReference
             {
             if ( state.backtracking==0 ) {
 
@@ -19744,7 +20012,7 @@
 
 
     // $ANTLR start "entryRuleJvmLowerBound"
-    // InternalSignalDSL.g:7189:1: entryRuleJvmLowerBound returns [EObject current=null] : iv_ruleJvmLowerBound= ruleJvmLowerBound EOF ;
+    // InternalSignalDSL.g:7288:1: entryRuleJvmLowerBound returns [EObject current=null] : iv_ruleJvmLowerBound= ruleJvmLowerBound EOF ;
     public final EObject entryRuleJvmLowerBound() throws RecognitionException {
         EObject current = null;
 
@@ -19752,8 +20020,8 @@
 
 
         try {
-            // InternalSignalDSL.g:7189:54: (iv_ruleJvmLowerBound= ruleJvmLowerBound EOF )
-            // InternalSignalDSL.g:7190:2: iv_ruleJvmLowerBound= ruleJvmLowerBound EOF
+            // InternalSignalDSL.g:7288:54: (iv_ruleJvmLowerBound= ruleJvmLowerBound EOF )
+            // InternalSignalDSL.g:7289:2: iv_ruleJvmLowerBound= ruleJvmLowerBound EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getJvmLowerBoundRule()); 
@@ -19784,7 +20052,7 @@
 
 
     // $ANTLR start "ruleJvmLowerBound"
-    // InternalSignalDSL.g:7196:1: ruleJvmLowerBound returns [EObject current=null] : (otherlv_0= 'super' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) ;
+    // InternalSignalDSL.g:7295:1: ruleJvmLowerBound returns [EObject current=null] : (otherlv_0= 'super' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) ;
     public final EObject ruleJvmLowerBound() throws RecognitionException {
         EObject current = null;
 
@@ -19796,23 +20064,23 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:7202:2: ( (otherlv_0= 'super' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) )
-            // InternalSignalDSL.g:7203:2: (otherlv_0= 'super' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) )
+            // InternalSignalDSL.g:7301:2: ( (otherlv_0= 'super' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) )
+            // InternalSignalDSL.g:7302:2: (otherlv_0= 'super' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) )
             {
-            // InternalSignalDSL.g:7203:2: (otherlv_0= 'super' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) )
-            // InternalSignalDSL.g:7204:3: otherlv_0= 'super' ( (lv_typeReference_1_0= ruleJvmTypeReference ) )
+            // InternalSignalDSL.g:7302:2: (otherlv_0= 'super' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) )
+            // InternalSignalDSL.g:7303:3: otherlv_0= 'super' ( (lv_typeReference_1_0= ruleJvmTypeReference ) )
             {
-            otherlv_0=(Token)match(input,79,FOLLOW_36); if (state.failed) return current;
+            otherlv_0=(Token)match(input,81,FOLLOW_39); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_0, grammarAccess.getJvmLowerBoundAccess().getSuperKeyword_0());
               		
             }
-            // InternalSignalDSL.g:7208:3: ( (lv_typeReference_1_0= ruleJvmTypeReference ) )
-            // InternalSignalDSL.g:7209:4: (lv_typeReference_1_0= ruleJvmTypeReference )
+            // InternalSignalDSL.g:7307:3: ( (lv_typeReference_1_0= ruleJvmTypeReference ) )
+            // InternalSignalDSL.g:7308:4: (lv_typeReference_1_0= ruleJvmTypeReference )
             {
-            // InternalSignalDSL.g:7209:4: (lv_typeReference_1_0= ruleJvmTypeReference )
-            // InternalSignalDSL.g:7210:5: lv_typeReference_1_0= ruleJvmTypeReference
+            // InternalSignalDSL.g:7308:4: (lv_typeReference_1_0= ruleJvmTypeReference )
+            // InternalSignalDSL.g:7309:5: lv_typeReference_1_0= ruleJvmTypeReference
             {
             if ( state.backtracking==0 ) {
 
@@ -19868,7 +20136,7 @@
 
 
     // $ANTLR start "entryRuleJvmLowerBoundAnded"
-    // InternalSignalDSL.g:7231:1: entryRuleJvmLowerBoundAnded returns [EObject current=null] : iv_ruleJvmLowerBoundAnded= ruleJvmLowerBoundAnded EOF ;
+    // InternalSignalDSL.g:7330:1: entryRuleJvmLowerBoundAnded returns [EObject current=null] : iv_ruleJvmLowerBoundAnded= ruleJvmLowerBoundAnded EOF ;
     public final EObject entryRuleJvmLowerBoundAnded() throws RecognitionException {
         EObject current = null;
 
@@ -19876,8 +20144,8 @@
 
 
         try {
-            // InternalSignalDSL.g:7231:59: (iv_ruleJvmLowerBoundAnded= ruleJvmLowerBoundAnded EOF )
-            // InternalSignalDSL.g:7232:2: iv_ruleJvmLowerBoundAnded= ruleJvmLowerBoundAnded EOF
+            // InternalSignalDSL.g:7330:59: (iv_ruleJvmLowerBoundAnded= ruleJvmLowerBoundAnded EOF )
+            // InternalSignalDSL.g:7331:2: iv_ruleJvmLowerBoundAnded= ruleJvmLowerBoundAnded EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getJvmLowerBoundAndedRule()); 
@@ -19908,7 +20176,7 @@
 
 
     // $ANTLR start "ruleJvmLowerBoundAnded"
-    // InternalSignalDSL.g:7238:1: ruleJvmLowerBoundAnded returns [EObject current=null] : (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) ;
+    // InternalSignalDSL.g:7337:1: ruleJvmLowerBoundAnded returns [EObject current=null] : (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) ;
     public final EObject ruleJvmLowerBoundAnded() throws RecognitionException {
         EObject current = null;
 
@@ -19920,23 +20188,23 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:7244:2: ( (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) )
-            // InternalSignalDSL.g:7245:2: (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) )
+            // InternalSignalDSL.g:7343:2: ( (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) )
+            // InternalSignalDSL.g:7344:2: (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) )
             {
-            // InternalSignalDSL.g:7245:2: (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) )
-            // InternalSignalDSL.g:7246:3: otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) )
+            // InternalSignalDSL.g:7344:2: (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) )
+            // InternalSignalDSL.g:7345:3: otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) )
             {
-            otherlv_0=(Token)match(input,92,FOLLOW_36); if (state.failed) return current;
+            otherlv_0=(Token)match(input,94,FOLLOW_39); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_0, grammarAccess.getJvmLowerBoundAndedAccess().getAmpersandKeyword_0());
               		
             }
-            // InternalSignalDSL.g:7250:3: ( (lv_typeReference_1_0= ruleJvmTypeReference ) )
-            // InternalSignalDSL.g:7251:4: (lv_typeReference_1_0= ruleJvmTypeReference )
+            // InternalSignalDSL.g:7349:3: ( (lv_typeReference_1_0= ruleJvmTypeReference ) )
+            // InternalSignalDSL.g:7350:4: (lv_typeReference_1_0= ruleJvmTypeReference )
             {
-            // InternalSignalDSL.g:7251:4: (lv_typeReference_1_0= ruleJvmTypeReference )
-            // InternalSignalDSL.g:7252:5: lv_typeReference_1_0= ruleJvmTypeReference
+            // InternalSignalDSL.g:7350:4: (lv_typeReference_1_0= ruleJvmTypeReference )
+            // InternalSignalDSL.g:7351:5: lv_typeReference_1_0= ruleJvmTypeReference
             {
             if ( state.backtracking==0 ) {
 
@@ -19992,7 +20260,7 @@
 
 
     // $ANTLR start "entryRuleQualifiedNameWithWildcard"
-    // InternalSignalDSL.g:7273:1: entryRuleQualifiedNameWithWildcard returns [String current=null] : iv_ruleQualifiedNameWithWildcard= ruleQualifiedNameWithWildcard EOF ;
+    // InternalSignalDSL.g:7372:1: entryRuleQualifiedNameWithWildcard returns [String current=null] : iv_ruleQualifiedNameWithWildcard= ruleQualifiedNameWithWildcard EOF ;
     public final String entryRuleQualifiedNameWithWildcard() throws RecognitionException {
         String current = null;
 
@@ -20000,8 +20268,8 @@
 
 
         try {
-            // InternalSignalDSL.g:7273:65: (iv_ruleQualifiedNameWithWildcard= ruleQualifiedNameWithWildcard EOF )
-            // InternalSignalDSL.g:7274:2: iv_ruleQualifiedNameWithWildcard= ruleQualifiedNameWithWildcard EOF
+            // InternalSignalDSL.g:7372:65: (iv_ruleQualifiedNameWithWildcard= ruleQualifiedNameWithWildcard EOF )
+            // InternalSignalDSL.g:7373:2: iv_ruleQualifiedNameWithWildcard= ruleQualifiedNameWithWildcard EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getQualifiedNameWithWildcardRule()); 
@@ -20032,7 +20300,7 @@
 
 
     // $ANTLR start "ruleQualifiedNameWithWildcard"
-    // InternalSignalDSL.g:7280:1: ruleQualifiedNameWithWildcard returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_QualifiedName_0= ruleQualifiedName kw= '.' kw= '*' ) ;
+    // InternalSignalDSL.g:7379:1: ruleQualifiedNameWithWildcard returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_QualifiedName_0= ruleQualifiedName kw= '.' kw= '*' ) ;
     public final AntlrDatatypeRuleToken ruleQualifiedNameWithWildcard() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
@@ -20044,18 +20312,18 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:7286:2: ( (this_QualifiedName_0= ruleQualifiedName kw= '.' kw= '*' ) )
-            // InternalSignalDSL.g:7287:2: (this_QualifiedName_0= ruleQualifiedName kw= '.' kw= '*' )
+            // InternalSignalDSL.g:7385:2: ( (this_QualifiedName_0= ruleQualifiedName kw= '.' kw= '*' ) )
+            // InternalSignalDSL.g:7386:2: (this_QualifiedName_0= ruleQualifiedName kw= '.' kw= '*' )
             {
-            // InternalSignalDSL.g:7287:2: (this_QualifiedName_0= ruleQualifiedName kw= '.' kw= '*' )
-            // InternalSignalDSL.g:7288:3: this_QualifiedName_0= ruleQualifiedName kw= '.' kw= '*'
+            // InternalSignalDSL.g:7386:2: (this_QualifiedName_0= ruleQualifiedName kw= '.' kw= '*' )
+            // InternalSignalDSL.g:7387:3: this_QualifiedName_0= ruleQualifiedName kw= '.' kw= '*'
             {
             if ( state.backtracking==0 ) {
 
               			newCompositeNode(grammarAccess.getQualifiedNameWithWildcardAccess().getQualifiedNameParserRuleCall_0());
               		
             }
-            pushFollow(FOLLOW_93);
+            pushFollow(FOLLOW_96);
             this_QualifiedName_0=ruleQualifiedName();
 
             state._fsp--;
@@ -20070,14 +20338,14 @@
               			afterParserOrEnumRuleCall();
               		
             }
-            kw=(Token)match(input,64,FOLLOW_94); if (state.failed) return current;
+            kw=(Token)match(input,66,FOLLOW_97); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			current.merge(kw);
               			newLeafNode(kw, grammarAccess.getQualifiedNameWithWildcardAccess().getFullStopKeyword_1());
               		
             }
-            kw=(Token)match(input,23,FOLLOW_2); if (state.failed) return current;
+            kw=(Token)match(input,25,FOLLOW_2); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			current.merge(kw);
@@ -20109,7 +20377,7 @@
 
 
     // $ANTLR start "entryRuleValidID"
-    // InternalSignalDSL.g:7312:1: entryRuleValidID returns [String current=null] : iv_ruleValidID= ruleValidID EOF ;
+    // InternalSignalDSL.g:7411:1: entryRuleValidID returns [String current=null] : iv_ruleValidID= ruleValidID EOF ;
     public final String entryRuleValidID() throws RecognitionException {
         String current = null;
 
@@ -20117,8 +20385,8 @@
 
 
         try {
-            // InternalSignalDSL.g:7312:47: (iv_ruleValidID= ruleValidID EOF )
-            // InternalSignalDSL.g:7313:2: iv_ruleValidID= ruleValidID EOF
+            // InternalSignalDSL.g:7411:47: (iv_ruleValidID= ruleValidID EOF )
+            // InternalSignalDSL.g:7412:2: iv_ruleValidID= ruleValidID EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getValidIDRule()); 
@@ -20149,7 +20417,7 @@
 
 
     // $ANTLR start "ruleValidID"
-    // InternalSignalDSL.g:7319:1: ruleValidID returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : this_ID_0= RULE_ID ;
+    // InternalSignalDSL.g:7418:1: ruleValidID returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : this_ID_0= RULE_ID ;
     public final AntlrDatatypeRuleToken ruleValidID() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
@@ -20159,8 +20427,8 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:7325:2: (this_ID_0= RULE_ID )
-            // InternalSignalDSL.g:7326:2: this_ID_0= RULE_ID
+            // InternalSignalDSL.g:7424:2: (this_ID_0= RULE_ID )
+            // InternalSignalDSL.g:7425: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 ) {
@@ -20195,7 +20463,7 @@
 
 
     // $ANTLR start "entryRuleXImportSection"
-    // InternalSignalDSL.g:7336:1: entryRuleXImportSection returns [EObject current=null] : iv_ruleXImportSection= ruleXImportSection EOF ;
+    // InternalSignalDSL.g:7435:1: entryRuleXImportSection returns [EObject current=null] : iv_ruleXImportSection= ruleXImportSection EOF ;
     public final EObject entryRuleXImportSection() throws RecognitionException {
         EObject current = null;
 
@@ -20203,8 +20471,8 @@
 
 
         try {
-            // InternalSignalDSL.g:7336:55: (iv_ruleXImportSection= ruleXImportSection EOF )
-            // InternalSignalDSL.g:7337:2: iv_ruleXImportSection= ruleXImportSection EOF
+            // InternalSignalDSL.g:7435:55: (iv_ruleXImportSection= ruleXImportSection EOF )
+            // InternalSignalDSL.g:7436:2: iv_ruleXImportSection= ruleXImportSection EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXImportSectionRule()); 
@@ -20235,7 +20503,7 @@
 
 
     // $ANTLR start "ruleXImportSection"
-    // InternalSignalDSL.g:7343:1: ruleXImportSection returns [EObject current=null] : ( (lv_importDeclarations_0_0= ruleXImportDeclaration ) )+ ;
+    // InternalSignalDSL.g:7442:1: ruleXImportSection returns [EObject current=null] : ( (lv_importDeclarations_0_0= ruleXImportDeclaration ) )+ ;
     public final EObject ruleXImportSection() throws RecognitionException {
         EObject current = null;
 
@@ -20246,34 +20514,34 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:7349:2: ( ( (lv_importDeclarations_0_0= ruleXImportDeclaration ) )+ )
-            // InternalSignalDSL.g:7350:2: ( (lv_importDeclarations_0_0= ruleXImportDeclaration ) )+
+            // InternalSignalDSL.g:7448:2: ( ( (lv_importDeclarations_0_0= ruleXImportDeclaration ) )+ )
+            // InternalSignalDSL.g:7449:2: ( (lv_importDeclarations_0_0= ruleXImportDeclaration ) )+
             {
-            // InternalSignalDSL.g:7350:2: ( (lv_importDeclarations_0_0= ruleXImportDeclaration ) )+
-            int cnt127=0;
-            loop127:
+            // InternalSignalDSL.g:7449:2: ( (lv_importDeclarations_0_0= ruleXImportDeclaration ) )+
+            int cnt129=0;
+            loop129:
             do {
-                int alt127=2;
-                int LA127_0 = input.LA(1);
+                int alt129=2;
+                int LA129_0 = input.LA(1);
 
-                if ( (LA127_0==20) ) {
-                    alt127=1;
+                if ( (LA129_0==22) ) {
+                    alt129=1;
                 }
 
 
-                switch (alt127) {
+                switch (alt129) {
             	case 1 :
-            	    // InternalSignalDSL.g:7351:3: (lv_importDeclarations_0_0= ruleXImportDeclaration )
+            	    // InternalSignalDSL.g:7450:3: (lv_importDeclarations_0_0= ruleXImportDeclaration )
             	    {
-            	    // InternalSignalDSL.g:7351:3: (lv_importDeclarations_0_0= ruleXImportDeclaration )
-            	    // InternalSignalDSL.g:7352:4: lv_importDeclarations_0_0= ruleXImportDeclaration
+            	    // InternalSignalDSL.g:7450:3: (lv_importDeclarations_0_0= ruleXImportDeclaration )
+            	    // InternalSignalDSL.g:7451:4: lv_importDeclarations_0_0= ruleXImportDeclaration
             	    {
             	    if ( state.backtracking==0 ) {
 
             	      				newCompositeNode(grammarAccess.getXImportSectionAccess().getImportDeclarationsXImportDeclarationParserRuleCall_0());
             	      			
             	    }
-            	    pushFollow(FOLLOW_95);
+            	    pushFollow(FOLLOW_98);
             	    lv_importDeclarations_0_0=ruleXImportDeclaration();
 
             	    state._fsp--;
@@ -20299,13 +20567,13 @@
             	    break;
 
             	default :
-            	    if ( cnt127 >= 1 ) break loop127;
+            	    if ( cnt129 >= 1 ) break loop129;
             	    if (state.backtracking>0) {state.failed=true; return current;}
                         EarlyExitException eee =
-                            new EarlyExitException(127, input);
+                            new EarlyExitException(129, input);
                         throw eee;
                 }
-                cnt127++;
+                cnt129++;
             } while (true);
 
 
@@ -20330,7 +20598,7 @@
 
 
     // $ANTLR start "entryRuleQualifiedNameInStaticImport"
-    // InternalSignalDSL.g:7372:1: entryRuleQualifiedNameInStaticImport returns [String current=null] : iv_ruleQualifiedNameInStaticImport= ruleQualifiedNameInStaticImport EOF ;
+    // InternalSignalDSL.g:7471:1: entryRuleQualifiedNameInStaticImport returns [String current=null] : iv_ruleQualifiedNameInStaticImport= ruleQualifiedNameInStaticImport EOF ;
     public final String entryRuleQualifiedNameInStaticImport() throws RecognitionException {
         String current = null;
 
@@ -20338,8 +20606,8 @@
 
 
         try {
-            // InternalSignalDSL.g:7372:67: (iv_ruleQualifiedNameInStaticImport= ruleQualifiedNameInStaticImport EOF )
-            // InternalSignalDSL.g:7373:2: iv_ruleQualifiedNameInStaticImport= ruleQualifiedNameInStaticImport EOF
+            // InternalSignalDSL.g:7471:67: (iv_ruleQualifiedNameInStaticImport= ruleQualifiedNameInStaticImport EOF )
+            // InternalSignalDSL.g:7472:2: iv_ruleQualifiedNameInStaticImport= ruleQualifiedNameInStaticImport EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getQualifiedNameInStaticImportRule()); 
@@ -20370,7 +20638,7 @@
 
 
     // $ANTLR start "ruleQualifiedNameInStaticImport"
-    // InternalSignalDSL.g:7379:1: ruleQualifiedNameInStaticImport returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_ValidID_0= ruleValidID kw= '.' )+ ;
+    // InternalSignalDSL.g:7478:1: ruleQualifiedNameInStaticImport returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_ValidID_0= ruleValidID kw= '.' )+ ;
     public final AntlrDatatypeRuleToken ruleQualifiedNameInStaticImport() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
@@ -20382,37 +20650,37 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:7385:2: ( (this_ValidID_0= ruleValidID kw= '.' )+ )
-            // InternalSignalDSL.g:7386:2: (this_ValidID_0= ruleValidID kw= '.' )+
+            // InternalSignalDSL.g:7484:2: ( (this_ValidID_0= ruleValidID kw= '.' )+ )
+            // InternalSignalDSL.g:7485:2: (this_ValidID_0= ruleValidID kw= '.' )+
             {
-            // InternalSignalDSL.g:7386:2: (this_ValidID_0= ruleValidID kw= '.' )+
-            int cnt128=0;
-            loop128:
+            // InternalSignalDSL.g:7485:2: (this_ValidID_0= ruleValidID kw= '.' )+
+            int cnt130=0;
+            loop130:
             do {
-                int alt128=2;
-                int LA128_0 = input.LA(1);
+                int alt130=2;
+                int LA130_0 = input.LA(1);
 
-                if ( (LA128_0==RULE_ID) ) {
-                    int LA128_2 = input.LA(2);
+                if ( (LA130_0==RULE_ID) ) {
+                    int LA130_2 = input.LA(2);
 
-                    if ( (LA128_2==64) ) {
-                        alt128=1;
+                    if ( (LA130_2==66) ) {
+                        alt130=1;
                     }
 
 
                 }
 
 
-                switch (alt128) {
+                switch (alt130) {
             	case 1 :
-            	    // InternalSignalDSL.g:7387:3: this_ValidID_0= ruleValidID kw= '.'
+            	    // InternalSignalDSL.g:7486:3: this_ValidID_0= ruleValidID kw= '.'
             	    {
             	    if ( state.backtracking==0 ) {
 
             	      			newCompositeNode(grammarAccess.getQualifiedNameInStaticImportAccess().getValidIDParserRuleCall_0());
             	      		
             	    }
-            	    pushFollow(FOLLOW_93);
+            	    pushFollow(FOLLOW_96);
             	    this_ValidID_0=ruleValidID();
 
             	    state._fsp--;
@@ -20427,7 +20695,7 @@
             	      			afterParserOrEnumRuleCall();
             	      		
             	    }
-            	    kw=(Token)match(input,64,FOLLOW_96); if (state.failed) return current;
+            	    kw=(Token)match(input,66,FOLLOW_99); if (state.failed) return current;
             	    if ( state.backtracking==0 ) {
 
             	      			current.merge(kw);
@@ -20439,13 +20707,13 @@
             	    break;
 
             	default :
-            	    if ( cnt128 >= 1 ) break loop128;
+            	    if ( cnt130 >= 1 ) break loop130;
             	    if (state.backtracking>0) {state.failed=true; return current;}
                         EarlyExitException eee =
-                            new EarlyExitException(128, input);
+                            new EarlyExitException(130, input);
                         throw eee;
                 }
-                cnt128++;
+                cnt130++;
             } while (true);
 
 
@@ -20469,8 +20737,103 @@
     // $ANTLR end "ruleQualifiedNameInStaticImport"
 
 
+    // $ANTLR start "ruleSignalActionEnum"
+    // InternalSignalDSL.g:7505:1: ruleSignalActionEnum returns [Enumerator current=null] : ( (enumLiteral_0= 'Import' ) | (enumLiteral_1= 'Export' ) ) ;
+    public final Enumerator ruleSignalActionEnum() throws RecognitionException {
+        Enumerator current = null;
+
+        Token enumLiteral_0=null;
+        Token enumLiteral_1=null;
+
+
+        	enterRule();
+
+        try {
+            // InternalSignalDSL.g:7511:2: ( ( (enumLiteral_0= 'Import' ) | (enumLiteral_1= 'Export' ) ) )
+            // InternalSignalDSL.g:7512:2: ( (enumLiteral_0= 'Import' ) | (enumLiteral_1= 'Export' ) )
+            {
+            // InternalSignalDSL.g:7512:2: ( (enumLiteral_0= 'Import' ) | (enumLiteral_1= 'Export' ) )
+            int alt131=2;
+            int LA131_0 = input.LA(1);
+
+            if ( (LA131_0==95) ) {
+                alt131=1;
+            }
+            else if ( (LA131_0==96) ) {
+                alt131=2;
+            }
+            else {
+                if (state.backtracking>0) {state.failed=true; return current;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 131, 0, input);
+
+                throw nvae;
+            }
+            switch (alt131) {
+                case 1 :
+                    // InternalSignalDSL.g:7513:3: (enumLiteral_0= 'Import' )
+                    {
+                    // InternalSignalDSL.g:7513:3: (enumLiteral_0= 'Import' )
+                    // InternalSignalDSL.g:7514:4: enumLiteral_0= 'Import'
+                    {
+                    enumLiteral_0=(Token)match(input,95,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());
+                      			
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalSignalDSL.g:7521:3: (enumLiteral_1= 'Export' )
+                    {
+                    // InternalSignalDSL.g:7521:3: (enumLiteral_1= 'Export' )
+                    // InternalSignalDSL.g:7522:4: enumLiteral_1= 'Export'
+                    {
+                    enumLiteral_1=(Token)match(input,96,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());
+                      			
+                    }
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleSignalActionEnum"
+
+
     // $ANTLR start "ruleSignalTypeEnum"
-    // InternalSignalDSL.g:7406:1: ruleSignalTypeEnum returns [Enumerator current=null] : ( (enumLiteral_0= 'all' ) | (enumLiteral_1= 'createSignals' ) | (enumLiteral_2= 'modifySignals' ) | (enumLiteral_3= 'deleteSignals' ) ) ;
+    // InternalSignalDSL.g:7532:1: ruleSignalTypeEnum returns [Enumerator current=null] : ( (enumLiteral_0= 'all' ) | (enumLiteral_1= 'createSignals' ) | (enumLiteral_2= 'modifySignals' ) | (enumLiteral_3= 'deleteSignals' ) ) ;
     public final Enumerator ruleSignalTypeEnum() throws RecognitionException {
         Enumerator current = null;
 
@@ -20483,48 +20846,48 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:7412:2: ( ( (enumLiteral_0= 'all' ) | (enumLiteral_1= 'createSignals' ) | (enumLiteral_2= 'modifySignals' ) | (enumLiteral_3= 'deleteSignals' ) ) )
-            // InternalSignalDSL.g:7413:2: ( (enumLiteral_0= 'all' ) | (enumLiteral_1= 'createSignals' ) | (enumLiteral_2= 'modifySignals' ) | (enumLiteral_3= 'deleteSignals' ) )
+            // InternalSignalDSL.g:7538:2: ( ( (enumLiteral_0= 'all' ) | (enumLiteral_1= 'createSignals' ) | (enumLiteral_2= 'modifySignals' ) | (enumLiteral_3= 'deleteSignals' ) ) )
+            // InternalSignalDSL.g:7539:2: ( (enumLiteral_0= 'all' ) | (enumLiteral_1= 'createSignals' ) | (enumLiteral_2= 'modifySignals' ) | (enumLiteral_3= 'deleteSignals' ) )
             {
-            // InternalSignalDSL.g:7413:2: ( (enumLiteral_0= 'all' ) | (enumLiteral_1= 'createSignals' ) | (enumLiteral_2= 'modifySignals' ) | (enumLiteral_3= 'deleteSignals' ) )
-            int alt129=4;
+            // InternalSignalDSL.g:7539:2: ( (enumLiteral_0= 'all' ) | (enumLiteral_1= 'createSignals' ) | (enumLiteral_2= 'modifySignals' ) | (enumLiteral_3= 'deleteSignals' ) )
+            int alt132=4;
             switch ( input.LA(1) ) {
-            case 93:
+            case 97:
                 {
-                alt129=1;
+                alt132=1;
                 }
                 break;
-            case 94:
+            case 98:
                 {
-                alt129=2;
+                alt132=2;
                 }
                 break;
-            case 95:
+            case 99:
                 {
-                alt129=3;
+                alt132=3;
                 }
                 break;
-            case 96:
+            case 100:
                 {
-                alt129=4;
+                alt132=4;
                 }
                 break;
             default:
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 129, 0, input);
+                    new NoViableAltException("", 132, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt129) {
+            switch (alt132) {
                 case 1 :
-                    // InternalSignalDSL.g:7414:3: (enumLiteral_0= 'all' )
+                    // InternalSignalDSL.g:7540:3: (enumLiteral_0= 'all' )
                     {
-                    // InternalSignalDSL.g:7414:3: (enumLiteral_0= 'all' )
-                    // InternalSignalDSL.g:7415:4: enumLiteral_0= 'all'
+                    // InternalSignalDSL.g:7540:3: (enumLiteral_0= 'all' )
+                    // InternalSignalDSL.g:7541:4: enumLiteral_0= 'all'
                     {
-                    enumLiteral_0=(Token)match(input,93,FOLLOW_2); if (state.failed) return current;
+                    enumLiteral_0=(Token)match(input,97,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current = grammarAccess.getSignalTypeEnumAccess().getAllEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
@@ -20538,12 +20901,12 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:7422:3: (enumLiteral_1= 'createSignals' )
+                    // InternalSignalDSL.g:7548:3: (enumLiteral_1= 'createSignals' )
                     {
-                    // InternalSignalDSL.g:7422:3: (enumLiteral_1= 'createSignals' )
-                    // InternalSignalDSL.g:7423:4: enumLiteral_1= 'createSignals'
+                    // InternalSignalDSL.g:7548:3: (enumLiteral_1= 'createSignals' )
+                    // InternalSignalDSL.g:7549:4: enumLiteral_1= 'createSignals'
                     {
-                    enumLiteral_1=(Token)match(input,94,FOLLOW_2); if (state.failed) return current;
+                    enumLiteral_1=(Token)match(input,98,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current = grammarAccess.getSignalTypeEnumAccess().getCreatesignalsEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
@@ -20557,12 +20920,12 @@
                     }
                     break;
                 case 3 :
-                    // InternalSignalDSL.g:7430:3: (enumLiteral_2= 'modifySignals' )
+                    // InternalSignalDSL.g:7556:3: (enumLiteral_2= 'modifySignals' )
                     {
-                    // InternalSignalDSL.g:7430:3: (enumLiteral_2= 'modifySignals' )
-                    // InternalSignalDSL.g:7431:4: enumLiteral_2= 'modifySignals'
+                    // InternalSignalDSL.g:7556:3: (enumLiteral_2= 'modifySignals' )
+                    // InternalSignalDSL.g:7557:4: enumLiteral_2= 'modifySignals'
                     {
-                    enumLiteral_2=(Token)match(input,95,FOLLOW_2); if (state.failed) return current;
+                    enumLiteral_2=(Token)match(input,99,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current = grammarAccess.getSignalTypeEnumAccess().getModifysignalsEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
@@ -20576,12 +20939,12 @@
                     }
                     break;
                 case 4 :
-                    // InternalSignalDSL.g:7438:3: (enumLiteral_3= 'deleteSignals' )
+                    // InternalSignalDSL.g:7564:3: (enumLiteral_3= 'deleteSignals' )
                     {
-                    // InternalSignalDSL.g:7438:3: (enumLiteral_3= 'deleteSignals' )
-                    // InternalSignalDSL.g:7439:4: enumLiteral_3= 'deleteSignals'
+                    // InternalSignalDSL.g:7564:3: (enumLiteral_3= 'deleteSignals' )
+                    // InternalSignalDSL.g:7565:4: enumLiteral_3= 'deleteSignals'
                     {
-                    enumLiteral_3=(Token)match(input,96,FOLLOW_2); if (state.failed) return current;
+                    enumLiteral_3=(Token)match(input,100,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current = grammarAccess.getSignalTypeEnumAccess().getDeletesignalsEnumLiteralDeclaration_3().getEnumLiteral().getInstance();
@@ -20618,157 +20981,8 @@
     // $ANTLR end "ruleSignalTypeEnum"
 
 
-    // $ANTLR start "ruleSignalNotificationEnum"
-    // InternalSignalDSL.g:7449:1: ruleSignalNotificationEnum returns [Enumerator current=null] : ( (enumLiteral_0= 'show' ) | (enumLiteral_1= 'showOnCreate' ) | (enumLiteral_2= 'showOnDelete' ) | (enumLiteral_3= 'showOnModify' ) ) ;
-    public final Enumerator ruleSignalNotificationEnum() throws RecognitionException {
-        Enumerator current = null;
-
-        Token enumLiteral_0=null;
-        Token enumLiteral_1=null;
-        Token enumLiteral_2=null;
-        Token enumLiteral_3=null;
-
-
-        	enterRule();
-
-        try {
-            // InternalSignalDSL.g:7455:2: ( ( (enumLiteral_0= 'show' ) | (enumLiteral_1= 'showOnCreate' ) | (enumLiteral_2= 'showOnDelete' ) | (enumLiteral_3= 'showOnModify' ) ) )
-            // InternalSignalDSL.g:7456:2: ( (enumLiteral_0= 'show' ) | (enumLiteral_1= 'showOnCreate' ) | (enumLiteral_2= 'showOnDelete' ) | (enumLiteral_3= 'showOnModify' ) )
-            {
-            // InternalSignalDSL.g:7456:2: ( (enumLiteral_0= 'show' ) | (enumLiteral_1= 'showOnCreate' ) | (enumLiteral_2= 'showOnDelete' ) | (enumLiteral_3= 'showOnModify' ) )
-            int alt130=4;
-            switch ( input.LA(1) ) {
-            case 97:
-                {
-                alt130=1;
-                }
-                break;
-            case 98:
-                {
-                alt130=2;
-                }
-                break;
-            case 99:
-                {
-                alt130=3;
-                }
-                break;
-            case 100:
-                {
-                alt130=4;
-                }
-                break;
-            default:
-                if (state.backtracking>0) {state.failed=true; return current;}
-                NoViableAltException nvae =
-                    new NoViableAltException("", 130, 0, input);
-
-                throw nvae;
-            }
-
-            switch (alt130) {
-                case 1 :
-                    // InternalSignalDSL.g:7457:3: (enumLiteral_0= 'show' )
-                    {
-                    // InternalSignalDSL.g:7457:3: (enumLiteral_0= 'show' )
-                    // InternalSignalDSL.g:7458:4: enumLiteral_0= 'show'
-                    {
-                    enumLiteral_0=(Token)match(input,97,FOLLOW_2); if (state.failed) return current;
-                    if ( state.backtracking==0 ) {
-
-                      				current = grammarAccess.getSignalNotificationEnumAccess().getShowOnAllEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
-                      				newLeafNode(enumLiteral_0, grammarAccess.getSignalNotificationEnumAccess().getShowOnAllEnumLiteralDeclaration_0());
-                      			
-                    }
-
-                    }
-
-
-                    }
-                    break;
-                case 2 :
-                    // InternalSignalDSL.g:7465:3: (enumLiteral_1= 'showOnCreate' )
-                    {
-                    // InternalSignalDSL.g:7465:3: (enumLiteral_1= 'showOnCreate' )
-                    // InternalSignalDSL.g:7466:4: enumLiteral_1= 'showOnCreate'
-                    {
-                    enumLiteral_1=(Token)match(input,98,FOLLOW_2); if (state.failed) return current;
-                    if ( state.backtracking==0 ) {
-
-                      				current = grammarAccess.getSignalNotificationEnumAccess().getShowOnCreateEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
-                      				newLeafNode(enumLiteral_1, grammarAccess.getSignalNotificationEnumAccess().getShowOnCreateEnumLiteralDeclaration_1());
-                      			
-                    }
-
-                    }
-
-
-                    }
-                    break;
-                case 3 :
-                    // InternalSignalDSL.g:7473:3: (enumLiteral_2= 'showOnDelete' )
-                    {
-                    // InternalSignalDSL.g:7473:3: (enumLiteral_2= 'showOnDelete' )
-                    // InternalSignalDSL.g:7474:4: enumLiteral_2= 'showOnDelete'
-                    {
-                    enumLiteral_2=(Token)match(input,99,FOLLOW_2); if (state.failed) return current;
-                    if ( state.backtracking==0 ) {
-
-                      				current = grammarAccess.getSignalNotificationEnumAccess().getShowOnDeleteEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
-                      				newLeafNode(enumLiteral_2, grammarAccess.getSignalNotificationEnumAccess().getShowOnDeleteEnumLiteralDeclaration_2());
-                      			
-                    }
-
-                    }
-
-
-                    }
-                    break;
-                case 4 :
-                    // InternalSignalDSL.g:7481:3: (enumLiteral_3= 'showOnModify' )
-                    {
-                    // InternalSignalDSL.g:7481:3: (enumLiteral_3= 'showOnModify' )
-                    // InternalSignalDSL.g:7482:4: enumLiteral_3= 'showOnModify'
-                    {
-                    enumLiteral_3=(Token)match(input,100,FOLLOW_2); if (state.failed) return current;
-                    if ( state.backtracking==0 ) {
-
-                      				current = grammarAccess.getSignalNotificationEnumAccess().getShowOnModifyEnumLiteralDeclaration_3().getEnumLiteral().getInstance();
-                      				newLeafNode(enumLiteral_3, grammarAccess.getSignalNotificationEnumAccess().getShowOnModifyEnumLiteralDeclaration_3());
-                      			
-                    }
-
-                    }
-
-
-                    }
-                    break;
-
-            }
-
-
-            }
-
-            if ( state.backtracking==0 ) {
-
-              	leaveRule();
-
-            }
-        }
-
-            catch (RecognitionException re) {
-                recover(input,re);
-                appendSkippedTokens();
-            }
-        finally {
-        }
-        return current;
-    }
-    // $ANTLR end "ruleSignalNotificationEnum"
-
-
     // $ANTLR start "ruleSignalHandlerTypeEnum"
-    // InternalSignalDSL.g:7492:1: ruleSignalHandlerTypeEnum returns [Enumerator current=null] : ( (enumLiteral_0= 'doAfter' ) | (enumLiteral_1= 'doAfterCreate' ) | (enumLiteral_2= 'doAfterDelete' ) | (enumLiteral_3= 'doAfterModify' ) | (enumLiteral_4= 'doBefore' ) | (enumLiteral_5= 'doBeforeCreate' ) | (enumLiteral_6= 'doBeforeModify' ) | (enumLiteral_7= 'doBeforedelete' ) ) ;
+    // InternalSignalDSL.g:7575:1: ruleSignalHandlerTypeEnum returns [Enumerator current=null] : ( (enumLiteral_0= 'doAfter' ) | (enumLiteral_1= 'doAfterModify' ) | (enumLiteral_2= 'doAfterCreate' ) | (enumLiteral_3= 'doAfterDelete' ) ) ;
     public final Enumerator ruleSignalHandlerTypeEnum() throws RecognitionException {
         Enumerator current = null;
 
@@ -20776,81 +20990,57 @@
         Token enumLiteral_1=null;
         Token enumLiteral_2=null;
         Token enumLiteral_3=null;
-        Token enumLiteral_4=null;
-        Token enumLiteral_5=null;
-        Token enumLiteral_6=null;
-        Token enumLiteral_7=null;
 
 
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:7498:2: ( ( (enumLiteral_0= 'doAfter' ) | (enumLiteral_1= 'doAfterCreate' ) | (enumLiteral_2= 'doAfterDelete' ) | (enumLiteral_3= 'doAfterModify' ) | (enumLiteral_4= 'doBefore' ) | (enumLiteral_5= 'doBeforeCreate' ) | (enumLiteral_6= 'doBeforeModify' ) | (enumLiteral_7= 'doBeforedelete' ) ) )
-            // InternalSignalDSL.g:7499:2: ( (enumLiteral_0= 'doAfter' ) | (enumLiteral_1= 'doAfterCreate' ) | (enumLiteral_2= 'doAfterDelete' ) | (enumLiteral_3= 'doAfterModify' ) | (enumLiteral_4= 'doBefore' ) | (enumLiteral_5= 'doBeforeCreate' ) | (enumLiteral_6= 'doBeforeModify' ) | (enumLiteral_7= 'doBeforedelete' ) )
+            // InternalSignalDSL.g:7581:2: ( ( (enumLiteral_0= 'doAfter' ) | (enumLiteral_1= 'doAfterModify' ) | (enumLiteral_2= 'doAfterCreate' ) | (enumLiteral_3= 'doAfterDelete' ) ) )
+            // InternalSignalDSL.g:7582:2: ( (enumLiteral_0= 'doAfter' ) | (enumLiteral_1= 'doAfterModify' ) | (enumLiteral_2= 'doAfterCreate' ) | (enumLiteral_3= 'doAfterDelete' ) )
             {
-            // InternalSignalDSL.g:7499:2: ( (enumLiteral_0= 'doAfter' ) | (enumLiteral_1= 'doAfterCreate' ) | (enumLiteral_2= 'doAfterDelete' ) | (enumLiteral_3= 'doAfterModify' ) | (enumLiteral_4= 'doBefore' ) | (enumLiteral_5= 'doBeforeCreate' ) | (enumLiteral_6= 'doBeforeModify' ) | (enumLiteral_7= 'doBeforedelete' ) )
-            int alt131=8;
+            // InternalSignalDSL.g:7582:2: ( (enumLiteral_0= 'doAfter' ) | (enumLiteral_1= 'doAfterModify' ) | (enumLiteral_2= 'doAfterCreate' ) | (enumLiteral_3= 'doAfterDelete' ) )
+            int alt133=4;
             switch ( input.LA(1) ) {
             case 101:
                 {
-                alt131=1;
+                alt133=1;
                 }
                 break;
             case 102:
                 {
-                alt131=2;
+                alt133=2;
                 }
                 break;
             case 103:
                 {
-                alt131=3;
+                alt133=3;
                 }
                 break;
             case 104:
                 {
-                alt131=4;
-                }
-                break;
-            case 105:
-                {
-                alt131=5;
-                }
-                break;
-            case 106:
-                {
-                alt131=6;
-                }
-                break;
-            case 107:
-                {
-                alt131=7;
-                }
-                break;
-            case 108:
-                {
-                alt131=8;
+                alt133=4;
                 }
                 break;
             default:
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 131, 0, input);
+                    new NoViableAltException("", 133, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt131) {
+            switch (alt133) {
                 case 1 :
-                    // InternalSignalDSL.g:7500:3: (enumLiteral_0= 'doAfter' )
+                    // InternalSignalDSL.g:7583:3: (enumLiteral_0= 'doAfter' )
                     {
-                    // InternalSignalDSL.g:7500:3: (enumLiteral_0= 'doAfter' )
-                    // InternalSignalDSL.g:7501:4: enumLiteral_0= 'doAfter'
+                    // InternalSignalDSL.g:7583:3: (enumLiteral_0= 'doAfter' )
+                    // InternalSignalDSL.g:7584:4: enumLiteral_0= 'doAfter'
                     {
                     enumLiteral_0=(Token)match(input,101,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
-                      				current = grammarAccess.getSignalHandlerTypeEnumAccess().getDoAfterEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
-                      				newLeafNode(enumLiteral_0, grammarAccess.getSignalHandlerTypeEnumAccess().getDoAfterEnumLiteralDeclaration_0());
+                      				current = grammarAccess.getSignalHandlerTypeEnumAccess().getDoafterEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
+                      				newLeafNode(enumLiteral_0, grammarAccess.getSignalHandlerTypeEnumAccess().getDoafterEnumLiteralDeclaration_0());
                       			
                     }
 
@@ -20860,16 +21050,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:7508:3: (enumLiteral_1= 'doAfterCreate' )
+                    // InternalSignalDSL.g:7591:3: (enumLiteral_1= 'doAfterModify' )
                     {
-                    // InternalSignalDSL.g:7508:3: (enumLiteral_1= 'doAfterCreate' )
-                    // InternalSignalDSL.g:7509:4: enumLiteral_1= 'doAfterCreate'
+                    // InternalSignalDSL.g:7591:3: (enumLiteral_1= 'doAfterModify' )
+                    // InternalSignalDSL.g:7592:4: enumLiteral_1= 'doAfterModify'
                     {
                     enumLiteral_1=(Token)match(input,102,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
-                      				current = grammarAccess.getSignalHandlerTypeEnumAccess().getDoAfterCreateEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
-                      				newLeafNode(enumLiteral_1, grammarAccess.getSignalHandlerTypeEnumAccess().getDoAfterCreateEnumLiteralDeclaration_1());
+                      				current = grammarAccess.getSignalHandlerTypeEnumAccess().getDoaftermodifyEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
+                      				newLeafNode(enumLiteral_1, grammarAccess.getSignalHandlerTypeEnumAccess().getDoaftermodifyEnumLiteralDeclaration_1());
                       			
                     }
 
@@ -20879,16 +21069,16 @@
                     }
                     break;
                 case 3 :
-                    // InternalSignalDSL.g:7516:3: (enumLiteral_2= 'doAfterDelete' )
+                    // InternalSignalDSL.g:7599:3: (enumLiteral_2= 'doAfterCreate' )
                     {
-                    // InternalSignalDSL.g:7516:3: (enumLiteral_2= 'doAfterDelete' )
-                    // InternalSignalDSL.g:7517:4: enumLiteral_2= 'doAfterDelete'
+                    // InternalSignalDSL.g:7599:3: (enumLiteral_2= 'doAfterCreate' )
+                    // InternalSignalDSL.g:7600:4: enumLiteral_2= 'doAfterCreate'
                     {
                     enumLiteral_2=(Token)match(input,103,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
-                      				current = grammarAccess.getSignalHandlerTypeEnumAccess().getDoAfterDeleteEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
-                      				newLeafNode(enumLiteral_2, grammarAccess.getSignalHandlerTypeEnumAccess().getDoAfterDeleteEnumLiteralDeclaration_2());
+                      				current = grammarAccess.getSignalHandlerTypeEnumAccess().getDoaftercreateEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
+                      				newLeafNode(enumLiteral_2, grammarAccess.getSignalHandlerTypeEnumAccess().getDoaftercreateEnumLiteralDeclaration_2());
                       			
                     }
 
@@ -20898,92 +21088,16 @@
                     }
                     break;
                 case 4 :
-                    // InternalSignalDSL.g:7524:3: (enumLiteral_3= 'doAfterModify' )
+                    // InternalSignalDSL.g:7607:3: (enumLiteral_3= 'doAfterDelete' )
                     {
-                    // InternalSignalDSL.g:7524:3: (enumLiteral_3= 'doAfterModify' )
-                    // InternalSignalDSL.g:7525:4: enumLiteral_3= 'doAfterModify'
+                    // InternalSignalDSL.g:7607:3: (enumLiteral_3= 'doAfterDelete' )
+                    // InternalSignalDSL.g:7608:4: enumLiteral_3= 'doAfterDelete'
                     {
                     enumLiteral_3=(Token)match(input,104,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
-                      				current = grammarAccess.getSignalHandlerTypeEnumAccess().getDoAfterModifyEnumLiteralDeclaration_3().getEnumLiteral().getInstance();
-                      				newLeafNode(enumLiteral_3, grammarAccess.getSignalHandlerTypeEnumAccess().getDoAfterModifyEnumLiteralDeclaration_3());
-                      			
-                    }
-
-                    }
-
-
-                    }
-                    break;
-                case 5 :
-                    // InternalSignalDSL.g:7532:3: (enumLiteral_4= 'doBefore' )
-                    {
-                    // InternalSignalDSL.g:7532:3: (enumLiteral_4= 'doBefore' )
-                    // InternalSignalDSL.g:7533:4: enumLiteral_4= 'doBefore'
-                    {
-                    enumLiteral_4=(Token)match(input,105,FOLLOW_2); if (state.failed) return current;
-                    if ( state.backtracking==0 ) {
-
-                      				current = grammarAccess.getSignalHandlerTypeEnumAccess().getDoBeforeEnumLiteralDeclaration_4().getEnumLiteral().getInstance();
-                      				newLeafNode(enumLiteral_4, grammarAccess.getSignalHandlerTypeEnumAccess().getDoBeforeEnumLiteralDeclaration_4());
-                      			
-                    }
-
-                    }
-
-
-                    }
-                    break;
-                case 6 :
-                    // InternalSignalDSL.g:7540:3: (enumLiteral_5= 'doBeforeCreate' )
-                    {
-                    // InternalSignalDSL.g:7540:3: (enumLiteral_5= 'doBeforeCreate' )
-                    // InternalSignalDSL.g:7541:4: enumLiteral_5= 'doBeforeCreate'
-                    {
-                    enumLiteral_5=(Token)match(input,106,FOLLOW_2); if (state.failed) return current;
-                    if ( state.backtracking==0 ) {
-
-                      				current = grammarAccess.getSignalHandlerTypeEnumAccess().getDoBeforeCreateEnumLiteralDeclaration_5().getEnumLiteral().getInstance();
-                      				newLeafNode(enumLiteral_5, grammarAccess.getSignalHandlerTypeEnumAccess().getDoBeforeCreateEnumLiteralDeclaration_5());
-                      			
-                    }
-
-                    }
-
-
-                    }
-                    break;
-                case 7 :
-                    // InternalSignalDSL.g:7548:3: (enumLiteral_6= 'doBeforeModify' )
-                    {
-                    // InternalSignalDSL.g:7548:3: (enumLiteral_6= 'doBeforeModify' )
-                    // InternalSignalDSL.g:7549:4: enumLiteral_6= 'doBeforeModify'
-                    {
-                    enumLiteral_6=(Token)match(input,107,FOLLOW_2); if (state.failed) return current;
-                    if ( state.backtracking==0 ) {
-
-                      				current = grammarAccess.getSignalHandlerTypeEnumAccess().getDoBeforeModifyEnumLiteralDeclaration_6().getEnumLiteral().getInstance();
-                      				newLeafNode(enumLiteral_6, grammarAccess.getSignalHandlerTypeEnumAccess().getDoBeforeModifyEnumLiteralDeclaration_6());
-                      			
-                    }
-
-                    }
-
-
-                    }
-                    break;
-                case 8 :
-                    // InternalSignalDSL.g:7556:3: (enumLiteral_7= 'doBeforedelete' )
-                    {
-                    // InternalSignalDSL.g:7556:3: (enumLiteral_7= 'doBeforedelete' )
-                    // InternalSignalDSL.g:7557:4: enumLiteral_7= 'doBeforedelete'
-                    {
-                    enumLiteral_7=(Token)match(input,108,FOLLOW_2); if (state.failed) return current;
-                    if ( state.backtracking==0 ) {
-
-                      				current = grammarAccess.getSignalHandlerTypeEnumAccess().getDoDeforeDeleteEnumLiteralDeclaration_7().getEnumLiteral().getInstance();
-                      				newLeafNode(enumLiteral_7, grammarAccess.getSignalHandlerTypeEnumAccess().getDoDeforeDeleteEnumLiteralDeclaration_7());
+                      				current = grammarAccess.getSignalHandlerTypeEnumAccess().getDoafterdeleteEnumLiteralDeclaration_3().getEnumLiteral().getInstance();
+                      				newLeafNode(enumLiteral_3, grammarAccess.getSignalHandlerTypeEnumAccess().getDoafterdeleteEnumLiteralDeclaration_3());
                       			
                     }
 
@@ -21015,12 +21129,107 @@
     }
     // $ANTLR end "ruleSignalHandlerTypeEnum"
 
+
+    // $ANTLR start "ruleSignalExecutionTypeEnum"
+    // InternalSignalDSL.g:7618:1: ruleSignalExecutionTypeEnum returns [Enumerator current=null] : ( (enumLiteral_0= 'synch' ) | (enumLiteral_1= 'asynch' ) ) ;
+    public final Enumerator ruleSignalExecutionTypeEnum() throws RecognitionException {
+        Enumerator current = null;
+
+        Token enumLiteral_0=null;
+        Token enumLiteral_1=null;
+
+
+        	enterRule();
+
+        try {
+            // InternalSignalDSL.g:7624:2: ( ( (enumLiteral_0= 'synch' ) | (enumLiteral_1= 'asynch' ) ) )
+            // InternalSignalDSL.g:7625:2: ( (enumLiteral_0= 'synch' ) | (enumLiteral_1= 'asynch' ) )
+            {
+            // InternalSignalDSL.g:7625:2: ( (enumLiteral_0= 'synch' ) | (enumLiteral_1= 'asynch' ) )
+            int alt134=2;
+            int LA134_0 = input.LA(1);
+
+            if ( (LA134_0==105) ) {
+                alt134=1;
+            }
+            else if ( (LA134_0==106) ) {
+                alt134=2;
+            }
+            else {
+                if (state.backtracking>0) {state.failed=true; return current;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 134, 0, input);
+
+                throw nvae;
+            }
+            switch (alt134) {
+                case 1 :
+                    // InternalSignalDSL.g:7626:3: (enumLiteral_0= 'synch' )
+                    {
+                    // InternalSignalDSL.g:7626:3: (enumLiteral_0= 'synch' )
+                    // InternalSignalDSL.g:7627:4: enumLiteral_0= 'synch'
+                    {
+                    enumLiteral_0=(Token)match(input,105,FOLLOW_2); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      				current = grammarAccess.getSignalExecutionTypeEnumAccess().getSYNCEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
+                      				newLeafNode(enumLiteral_0, grammarAccess.getSignalExecutionTypeEnumAccess().getSYNCEnumLiteralDeclaration_0());
+                      			
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalSignalDSL.g:7634:3: (enumLiteral_1= 'asynch' )
+                    {
+                    // InternalSignalDSL.g:7634:3: (enumLiteral_1= 'asynch' )
+                    // InternalSignalDSL.g:7635:4: enumLiteral_1= 'asynch'
+                    {
+                    enumLiteral_1=(Token)match(input,106,FOLLOW_2); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      				current = grammarAccess.getSignalExecutionTypeEnumAccess().getASYNCEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
+                      				newLeafNode(enumLiteral_1, grammarAccess.getSignalExecutionTypeEnumAccess().getASYNCEnumLiteralDeclaration_1());
+                      			
+                    }
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleSignalExecutionTypeEnum"
+
     // $ANTLR start synpred1_InternalSignalDSL
     public final void synpred1_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:782:5: ( '(' )
-        // InternalSignalDSL.g:782:6: '('
+        // InternalSignalDSL.g:881:5: ( '(' )
+        // InternalSignalDSL.g:881:6: '('
         {
-        match(input,27,FOLLOW_2); if (state.failed) return ;
+        match(input,29,FOLLOW_2); if (state.failed) return ;
 
         }
     }
@@ -21028,19 +21237,19 @@
 
     // $ANTLR start synpred2_InternalSignalDSL
     public final void synpred2_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:791:7: ( ( ( ( ruleValidID ) ) '=' ) )
-        // InternalSignalDSL.g:791:8: ( ( ( ruleValidID ) ) '=' )
+        // InternalSignalDSL.g:890:7: ( ( ( ( ruleValidID ) ) '=' ) )
+        // InternalSignalDSL.g:890:8: ( ( ( ruleValidID ) ) '=' )
         {
-        // InternalSignalDSL.g:791:8: ( ( ( ruleValidID ) ) '=' )
-        // InternalSignalDSL.g:792:8: ( ( ruleValidID ) ) '='
+        // InternalSignalDSL.g:890:8: ( ( ( ruleValidID ) ) '=' )
+        // InternalSignalDSL.g:891:8: ( ( ruleValidID ) ) '='
         {
-        // InternalSignalDSL.g:792:8: ( ( ruleValidID ) )
-        // InternalSignalDSL.g:793:9: ( ruleValidID )
+        // InternalSignalDSL.g:891:8: ( ( ruleValidID ) )
+        // InternalSignalDSL.g:892:9: ( ruleValidID )
         {
-        // InternalSignalDSL.g:793:9: ( ruleValidID )
-        // InternalSignalDSL.g:794:10: ruleValidID
+        // InternalSignalDSL.g:892:9: ( ruleValidID )
+        // InternalSignalDSL.g:893:10: ruleValidID
         {
-        pushFollow(FOLLOW_22);
+        pushFollow(FOLLOW_25);
         ruleValidID();
 
         state._fsp--;
@@ -21051,7 +21260,7 @@
 
         }
 
-        match(input,30,FOLLOW_2); if (state.failed) return ;
+        match(input,32,FOLLOW_2); if (state.failed) return ;
 
         }
 
@@ -21062,19 +21271,19 @@
 
     // $ANTLR start synpred5_InternalSignalDSL
     public final void synpred5_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:971:5: ( ( () '#' '[' ) )
-        // InternalSignalDSL.g:971:6: ( () '#' '[' )
+        // InternalSignalDSL.g:1070:5: ( ( () '#' '[' ) )
+        // InternalSignalDSL.g:1070:6: ( () '#' '[' )
         {
-        // InternalSignalDSL.g:971:6: ( () '#' '[' )
-        // InternalSignalDSL.g:972:6: () '#' '['
+        // InternalSignalDSL.g:1070:6: ( () '#' '[' )
+        // InternalSignalDSL.g:1071:6: () '#' '['
         {
-        // InternalSignalDSL.g:972:6: ()
-        // InternalSignalDSL.g:973:6: 
+        // InternalSignalDSL.g:1071:6: ()
+        // InternalSignalDSL.g:1072:6: 
         {
         }
 
-        match(input,31,FOLLOW_24); if (state.failed) return ;
-        match(input,32,FOLLOW_2); if (state.failed) return ;
+        match(input,33,FOLLOW_27); if (state.failed) return ;
+        match(input,34,FOLLOW_2); if (state.failed) return ;
 
         }
 
@@ -21085,19 +21294,19 @@
 
     // $ANTLR start synpred6_InternalSignalDSL
     public final void synpred6_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:1113:5: ( ( () '#' '[' ) )
-        // InternalSignalDSL.g:1113:6: ( () '#' '[' )
+        // InternalSignalDSL.g:1212:5: ( ( () '#' '[' ) )
+        // InternalSignalDSL.g:1212:6: ( () '#' '[' )
         {
-        // InternalSignalDSL.g:1113:6: ( () '#' '[' )
-        // InternalSignalDSL.g:1114:6: () '#' '['
+        // InternalSignalDSL.g:1212:6: ( () '#' '[' )
+        // InternalSignalDSL.g:1213:6: () '#' '['
         {
-        // InternalSignalDSL.g:1114:6: ()
-        // InternalSignalDSL.g:1115:6: 
+        // InternalSignalDSL.g:1213:6: ()
+        // InternalSignalDSL.g:1214:6: 
         {
         }
 
-        match(input,31,FOLLOW_24); if (state.failed) return ;
-        match(input,32,FOLLOW_2); if (state.failed) return ;
+        match(input,33,FOLLOW_27); if (state.failed) return ;
+        match(input,34,FOLLOW_2); if (state.failed) return ;
 
         }
 
@@ -21108,22 +21317,22 @@
 
     // $ANTLR start synpred7_InternalSignalDSL
     public final void synpred7_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:1341:6: ( ( () ( ( ruleOpMultiAssign ) ) ) )
-        // InternalSignalDSL.g:1341:7: ( () ( ( ruleOpMultiAssign ) ) )
+        // InternalSignalDSL.g:1440:6: ( ( () ( ( ruleOpMultiAssign ) ) ) )
+        // InternalSignalDSL.g:1440:7: ( () ( ( ruleOpMultiAssign ) ) )
         {
-        // InternalSignalDSL.g:1341:7: ( () ( ( ruleOpMultiAssign ) ) )
-        // InternalSignalDSL.g:1342:7: () ( ( ruleOpMultiAssign ) )
+        // InternalSignalDSL.g:1440:7: ( () ( ( ruleOpMultiAssign ) ) )
+        // InternalSignalDSL.g:1441:7: () ( ( ruleOpMultiAssign ) )
         {
-        // InternalSignalDSL.g:1342:7: ()
-        // InternalSignalDSL.g:1343:7: 
+        // InternalSignalDSL.g:1441:7: ()
+        // InternalSignalDSL.g:1442:7: 
         {
         }
 
-        // InternalSignalDSL.g:1344:7: ( ( ruleOpMultiAssign ) )
-        // InternalSignalDSL.g:1345:8: ( ruleOpMultiAssign )
+        // InternalSignalDSL.g:1443:7: ( ( ruleOpMultiAssign ) )
+        // InternalSignalDSL.g:1444:8: ( ruleOpMultiAssign )
         {
-        // InternalSignalDSL.g:1345:8: ( ruleOpMultiAssign )
-        // InternalSignalDSL.g:1346:9: ruleOpMultiAssign
+        // InternalSignalDSL.g:1444:8: ( ruleOpMultiAssign )
+        // InternalSignalDSL.g:1445:9: ruleOpMultiAssign
         {
         pushFollow(FOLLOW_2);
         ruleOpMultiAssign();
@@ -21146,22 +21355,22 @@
 
     // $ANTLR start synpred8_InternalSignalDSL
     public final void synpred8_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:1535:5: ( ( () ( ( ruleOpOr ) ) ) )
-        // InternalSignalDSL.g:1535:6: ( () ( ( ruleOpOr ) ) )
+        // InternalSignalDSL.g:1634:5: ( ( () ( ( ruleOpOr ) ) ) )
+        // InternalSignalDSL.g:1634:6: ( () ( ( ruleOpOr ) ) )
         {
-        // InternalSignalDSL.g:1535:6: ( () ( ( ruleOpOr ) ) )
-        // InternalSignalDSL.g:1536:6: () ( ( ruleOpOr ) )
+        // InternalSignalDSL.g:1634:6: ( () ( ( ruleOpOr ) ) )
+        // InternalSignalDSL.g:1635:6: () ( ( ruleOpOr ) )
         {
-        // InternalSignalDSL.g:1536:6: ()
-        // InternalSignalDSL.g:1537:6: 
+        // InternalSignalDSL.g:1635:6: ()
+        // InternalSignalDSL.g:1636:6: 
         {
         }
 
-        // InternalSignalDSL.g:1538:6: ( ( ruleOpOr ) )
-        // InternalSignalDSL.g:1539:7: ( ruleOpOr )
+        // InternalSignalDSL.g:1637:6: ( ( ruleOpOr ) )
+        // InternalSignalDSL.g:1638:7: ( ruleOpOr )
         {
-        // InternalSignalDSL.g:1539:7: ( ruleOpOr )
-        // InternalSignalDSL.g:1540:8: ruleOpOr
+        // InternalSignalDSL.g:1638:7: ( ruleOpOr )
+        // InternalSignalDSL.g:1639:8: ruleOpOr
         {
         pushFollow(FOLLOW_2);
         ruleOpOr();
@@ -21184,22 +21393,22 @@
 
     // $ANTLR start synpred9_InternalSignalDSL
     public final void synpred9_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:1642:5: ( ( () ( ( ruleOpAnd ) ) ) )
-        // InternalSignalDSL.g:1642:6: ( () ( ( ruleOpAnd ) ) )
+        // InternalSignalDSL.g:1741:5: ( ( () ( ( ruleOpAnd ) ) ) )
+        // InternalSignalDSL.g:1741:6: ( () ( ( ruleOpAnd ) ) )
         {
-        // InternalSignalDSL.g:1642:6: ( () ( ( ruleOpAnd ) ) )
-        // InternalSignalDSL.g:1643:6: () ( ( ruleOpAnd ) )
+        // InternalSignalDSL.g:1741:6: ( () ( ( ruleOpAnd ) ) )
+        // InternalSignalDSL.g:1742:6: () ( ( ruleOpAnd ) )
         {
-        // InternalSignalDSL.g:1643:6: ()
-        // InternalSignalDSL.g:1644:6: 
+        // InternalSignalDSL.g:1742:6: ()
+        // InternalSignalDSL.g:1743:6: 
         {
         }
 
-        // InternalSignalDSL.g:1645:6: ( ( ruleOpAnd ) )
-        // InternalSignalDSL.g:1646:7: ( ruleOpAnd )
+        // InternalSignalDSL.g:1744:6: ( ( ruleOpAnd ) )
+        // InternalSignalDSL.g:1745:7: ( ruleOpAnd )
         {
-        // InternalSignalDSL.g:1646:7: ( ruleOpAnd )
-        // InternalSignalDSL.g:1647:8: ruleOpAnd
+        // InternalSignalDSL.g:1745:7: ( ruleOpAnd )
+        // InternalSignalDSL.g:1746:8: ruleOpAnd
         {
         pushFollow(FOLLOW_2);
         ruleOpAnd();
@@ -21222,22 +21431,22 @@
 
     // $ANTLR start synpred10_InternalSignalDSL
     public final void synpred10_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:1749:5: ( ( () ( ( ruleOpEquality ) ) ) )
-        // InternalSignalDSL.g:1749:6: ( () ( ( ruleOpEquality ) ) )
+        // InternalSignalDSL.g:1848:5: ( ( () ( ( ruleOpEquality ) ) ) )
+        // InternalSignalDSL.g:1848:6: ( () ( ( ruleOpEquality ) ) )
         {
-        // InternalSignalDSL.g:1749:6: ( () ( ( ruleOpEquality ) ) )
-        // InternalSignalDSL.g:1750:6: () ( ( ruleOpEquality ) )
+        // InternalSignalDSL.g:1848:6: ( () ( ( ruleOpEquality ) ) )
+        // InternalSignalDSL.g:1849:6: () ( ( ruleOpEquality ) )
         {
-        // InternalSignalDSL.g:1750:6: ()
-        // InternalSignalDSL.g:1751:6: 
+        // InternalSignalDSL.g:1849:6: ()
+        // InternalSignalDSL.g:1850:6: 
         {
         }
 
-        // InternalSignalDSL.g:1752:6: ( ( ruleOpEquality ) )
-        // InternalSignalDSL.g:1753:7: ( ruleOpEquality )
+        // InternalSignalDSL.g:1851:6: ( ( ruleOpEquality ) )
+        // InternalSignalDSL.g:1852:7: ( ruleOpEquality )
         {
-        // InternalSignalDSL.g:1753:7: ( ruleOpEquality )
-        // InternalSignalDSL.g:1754:8: ruleOpEquality
+        // InternalSignalDSL.g:1852:7: ( ruleOpEquality )
+        // InternalSignalDSL.g:1853:8: ruleOpEquality
         {
         pushFollow(FOLLOW_2);
         ruleOpEquality();
@@ -21260,18 +21469,18 @@
 
     // $ANTLR start synpred11_InternalSignalDSL
     public final void synpred11_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:1877:6: ( ( () 'instanceof' ) )
-        // InternalSignalDSL.g:1877:7: ( () 'instanceof' )
+        // InternalSignalDSL.g:1976:6: ( ( () 'instanceof' ) )
+        // InternalSignalDSL.g:1976:7: ( () 'instanceof' )
         {
-        // InternalSignalDSL.g:1877:7: ( () 'instanceof' )
-        // InternalSignalDSL.g:1878:7: () 'instanceof'
+        // InternalSignalDSL.g:1976:7: ( () 'instanceof' )
+        // InternalSignalDSL.g:1977:7: () 'instanceof'
         {
-        // InternalSignalDSL.g:1878:7: ()
-        // InternalSignalDSL.g:1879:7: 
+        // InternalSignalDSL.g:1977:7: ()
+        // InternalSignalDSL.g:1978:7: 
         {
         }
 
-        match(input,48,FOLLOW_2); if (state.failed) return ;
+        match(input,50,FOLLOW_2); if (state.failed) return ;
 
         }
 
@@ -21282,22 +21491,22 @@
 
     // $ANTLR start synpred12_InternalSignalDSL
     public final void synpred12_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:1920:6: ( ( () ( ( ruleOpCompare ) ) ) )
-        // InternalSignalDSL.g:1920:7: ( () ( ( ruleOpCompare ) ) )
+        // InternalSignalDSL.g:2019:6: ( ( () ( ( ruleOpCompare ) ) ) )
+        // InternalSignalDSL.g:2019:7: ( () ( ( ruleOpCompare ) ) )
         {
-        // InternalSignalDSL.g:1920:7: ( () ( ( ruleOpCompare ) ) )
-        // InternalSignalDSL.g:1921:7: () ( ( ruleOpCompare ) )
+        // InternalSignalDSL.g:2019:7: ( () ( ( ruleOpCompare ) ) )
+        // InternalSignalDSL.g:2020:7: () ( ( ruleOpCompare ) )
         {
-        // InternalSignalDSL.g:1921:7: ()
-        // InternalSignalDSL.g:1922:7: 
+        // InternalSignalDSL.g:2020:7: ()
+        // InternalSignalDSL.g:2021:7: 
         {
         }
 
-        // InternalSignalDSL.g:1923:7: ( ( ruleOpCompare ) )
-        // InternalSignalDSL.g:1924:8: ( ruleOpCompare )
+        // InternalSignalDSL.g:2022:7: ( ( ruleOpCompare ) )
+        // InternalSignalDSL.g:2023:8: ( ruleOpCompare )
         {
-        // InternalSignalDSL.g:1924:8: ( ruleOpCompare )
-        // InternalSignalDSL.g:1925:9: ruleOpCompare
+        // InternalSignalDSL.g:2023:8: ( ruleOpCompare )
+        // InternalSignalDSL.g:2024:9: ruleOpCompare
         {
         pushFollow(FOLLOW_2);
         ruleOpCompare();
@@ -21320,22 +21529,22 @@
 
     // $ANTLR start synpred13_InternalSignalDSL
     public final void synpred13_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:2055:5: ( ( () ( ( ruleOpOther ) ) ) )
-        // InternalSignalDSL.g:2055:6: ( () ( ( ruleOpOther ) ) )
+        // InternalSignalDSL.g:2154:5: ( ( () ( ( ruleOpOther ) ) ) )
+        // InternalSignalDSL.g:2154:6: ( () ( ( ruleOpOther ) ) )
         {
-        // InternalSignalDSL.g:2055:6: ( () ( ( ruleOpOther ) ) )
-        // InternalSignalDSL.g:2056:6: () ( ( ruleOpOther ) )
+        // InternalSignalDSL.g:2154:6: ( () ( ( ruleOpOther ) ) )
+        // InternalSignalDSL.g:2155:6: () ( ( ruleOpOther ) )
         {
-        // InternalSignalDSL.g:2056:6: ()
-        // InternalSignalDSL.g:2057:6: 
+        // InternalSignalDSL.g:2155:6: ()
+        // InternalSignalDSL.g:2156:6: 
         {
         }
 
-        // InternalSignalDSL.g:2058:6: ( ( ruleOpOther ) )
-        // InternalSignalDSL.g:2059:7: ( ruleOpOther )
+        // InternalSignalDSL.g:2157:6: ( ( ruleOpOther ) )
+        // InternalSignalDSL.g:2158:7: ( ruleOpOther )
         {
-        // InternalSignalDSL.g:2059:7: ( ruleOpOther )
-        // InternalSignalDSL.g:2060:8: ruleOpOther
+        // InternalSignalDSL.g:2158:7: ( ruleOpOther )
+        // InternalSignalDSL.g:2159:8: ruleOpOther
         {
         pushFollow(FOLLOW_2);
         ruleOpOther();
@@ -21358,14 +21567,14 @@
 
     // $ANTLR start synpred14_InternalSignalDSL
     public final void synpred14_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:2175:6: ( ( '>' '>' ) )
-        // InternalSignalDSL.g:2175:7: ( '>' '>' )
+        // InternalSignalDSL.g:2274:6: ( ( '>' '>' ) )
+        // InternalSignalDSL.g:2274:7: ( '>' '>' )
         {
-        // InternalSignalDSL.g:2175:7: ( '>' '>' )
-        // InternalSignalDSL.g:2176:7: '>' '>'
+        // InternalSignalDSL.g:2274:7: ( '>' '>' )
+        // InternalSignalDSL.g:2275:7: '>' '>'
         {
-        match(input,40,FOLLOW_39); if (state.failed) return ;
-        match(input,40,FOLLOW_2); if (state.failed) return ;
+        match(input,42,FOLLOW_42); if (state.failed) return ;
+        match(input,42,FOLLOW_2); if (state.failed) return ;
 
         }
 
@@ -21376,14 +21585,14 @@
 
     // $ANTLR start synpred15_InternalSignalDSL
     public final void synpred15_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:2210:6: ( ( '<' '<' ) )
-        // InternalSignalDSL.g:2210:7: ( '<' '<' )
+        // InternalSignalDSL.g:2309:6: ( ( '<' '<' ) )
+        // InternalSignalDSL.g:2309:7: ( '<' '<' )
         {
-        // InternalSignalDSL.g:2210:7: ( '<' '<' )
-        // InternalSignalDSL.g:2211:7: '<' '<'
+        // InternalSignalDSL.g:2309:7: ( '<' '<' )
+        // InternalSignalDSL.g:2310:7: '<' '<'
         {
-        match(input,39,FOLLOW_29); if (state.failed) return ;
-        match(input,39,FOLLOW_2); if (state.failed) return ;
+        match(input,41,FOLLOW_32); if (state.failed) return ;
+        match(input,41,FOLLOW_2); if (state.failed) return ;
 
         }
 
@@ -21394,22 +21603,22 @@
 
     // $ANTLR start synpred16_InternalSignalDSL
     public final void synpred16_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:2283:5: ( ( () ( ( ruleOpAdd ) ) ) )
-        // InternalSignalDSL.g:2283:6: ( () ( ( ruleOpAdd ) ) )
+        // InternalSignalDSL.g:2382:5: ( ( () ( ( ruleOpAdd ) ) ) )
+        // InternalSignalDSL.g:2382:6: ( () ( ( ruleOpAdd ) ) )
         {
-        // InternalSignalDSL.g:2283:6: ( () ( ( ruleOpAdd ) ) )
-        // InternalSignalDSL.g:2284:6: () ( ( ruleOpAdd ) )
+        // InternalSignalDSL.g:2382:6: ( () ( ( ruleOpAdd ) ) )
+        // InternalSignalDSL.g:2383:6: () ( ( ruleOpAdd ) )
         {
-        // InternalSignalDSL.g:2284:6: ()
-        // InternalSignalDSL.g:2285:6: 
+        // InternalSignalDSL.g:2383:6: ()
+        // InternalSignalDSL.g:2384:6: 
         {
         }
 
-        // InternalSignalDSL.g:2286:6: ( ( ruleOpAdd ) )
-        // InternalSignalDSL.g:2287:7: ( ruleOpAdd )
+        // InternalSignalDSL.g:2385:6: ( ( ruleOpAdd ) )
+        // InternalSignalDSL.g:2386:7: ( ruleOpAdd )
         {
-        // InternalSignalDSL.g:2287:7: ( ruleOpAdd )
-        // InternalSignalDSL.g:2288:8: ruleOpAdd
+        // InternalSignalDSL.g:2386:7: ( ruleOpAdd )
+        // InternalSignalDSL.g:2387:8: ruleOpAdd
         {
         pushFollow(FOLLOW_2);
         ruleOpAdd();
@@ -21432,22 +21641,22 @@
 
     // $ANTLR start synpred17_InternalSignalDSL
     public final void synpred17_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:2398:5: ( ( () ( ( ruleOpMulti ) ) ) )
-        // InternalSignalDSL.g:2398:6: ( () ( ( ruleOpMulti ) ) )
+        // InternalSignalDSL.g:2497:5: ( ( () ( ( ruleOpMulti ) ) ) )
+        // InternalSignalDSL.g:2497:6: ( () ( ( ruleOpMulti ) ) )
         {
-        // InternalSignalDSL.g:2398:6: ( () ( ( ruleOpMulti ) ) )
-        // InternalSignalDSL.g:2399:6: () ( ( ruleOpMulti ) )
+        // InternalSignalDSL.g:2497:6: ( () ( ( ruleOpMulti ) ) )
+        // InternalSignalDSL.g:2498:6: () ( ( ruleOpMulti ) )
         {
-        // InternalSignalDSL.g:2399:6: ()
-        // InternalSignalDSL.g:2400:6: 
+        // InternalSignalDSL.g:2498:6: ()
+        // InternalSignalDSL.g:2499:6: 
         {
         }
 
-        // InternalSignalDSL.g:2401:6: ( ( ruleOpMulti ) )
-        // InternalSignalDSL.g:2402:7: ( ruleOpMulti )
+        // InternalSignalDSL.g:2500:6: ( ( ruleOpMulti ) )
+        // InternalSignalDSL.g:2501:7: ( ruleOpMulti )
         {
-        // InternalSignalDSL.g:2402:7: ( ruleOpMulti )
-        // InternalSignalDSL.g:2403:8: ruleOpMulti
+        // InternalSignalDSL.g:2501:7: ( ruleOpMulti )
+        // InternalSignalDSL.g:2502:8: ruleOpMulti
         {
         pushFollow(FOLLOW_2);
         ruleOpMulti();
@@ -21470,18 +21679,18 @@
 
     // $ANTLR start synpred18_InternalSignalDSL
     public final void synpred18_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:2633:5: ( ( () 'as' ) )
-        // InternalSignalDSL.g:2633:6: ( () 'as' )
+        // InternalSignalDSL.g:2732:5: ( ( () 'as' ) )
+        // InternalSignalDSL.g:2732:6: ( () 'as' )
         {
-        // InternalSignalDSL.g:2633:6: ( () 'as' )
-        // InternalSignalDSL.g:2634:6: () 'as'
+        // InternalSignalDSL.g:2732:6: ( () 'as' )
+        // InternalSignalDSL.g:2733:6: () 'as'
         {
-        // InternalSignalDSL.g:2634:6: ()
-        // InternalSignalDSL.g:2635:6: 
+        // InternalSignalDSL.g:2733:6: ()
+        // InternalSignalDSL.g:2734:6: 
         {
         }
 
-        match(input,61,FOLLOW_2); if (state.failed) return ;
+        match(input,63,FOLLOW_2); if (state.failed) return ;
 
         }
 
@@ -21492,22 +21701,22 @@
 
     // $ANTLR start synpred19_InternalSignalDSL
     public final void synpred19_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:2701:4: ( ( () ( ( ruleOpPostfix ) ) ) )
-        // InternalSignalDSL.g:2701:5: ( () ( ( ruleOpPostfix ) ) )
+        // InternalSignalDSL.g:2800:4: ( ( () ( ( ruleOpPostfix ) ) ) )
+        // InternalSignalDSL.g:2800:5: ( () ( ( ruleOpPostfix ) ) )
         {
-        // InternalSignalDSL.g:2701:5: ( () ( ( ruleOpPostfix ) ) )
-        // InternalSignalDSL.g:2702:5: () ( ( ruleOpPostfix ) )
+        // InternalSignalDSL.g:2800:5: ( () ( ( ruleOpPostfix ) ) )
+        // InternalSignalDSL.g:2801:5: () ( ( ruleOpPostfix ) )
         {
-        // InternalSignalDSL.g:2702:5: ()
-        // InternalSignalDSL.g:2703:5: 
+        // InternalSignalDSL.g:2801:5: ()
+        // InternalSignalDSL.g:2802:5: 
         {
         }
 
-        // InternalSignalDSL.g:2704:5: ( ( ruleOpPostfix ) )
-        // InternalSignalDSL.g:2705:6: ( ruleOpPostfix )
+        // InternalSignalDSL.g:2803:5: ( ( ruleOpPostfix ) )
+        // InternalSignalDSL.g:2804:6: ( ruleOpPostfix )
         {
-        // InternalSignalDSL.g:2705:6: ( ruleOpPostfix )
-        // InternalSignalDSL.g:2706:7: ruleOpPostfix
+        // InternalSignalDSL.g:2804:6: ( ruleOpPostfix )
+        // InternalSignalDSL.g:2805:7: ruleOpPostfix
         {
         pushFollow(FOLLOW_2);
         ruleOpPostfix();
@@ -21530,52 +21739,52 @@
 
     // $ANTLR start synpred20_InternalSignalDSL
     public final void synpred20_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:2797:6: ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )
-        // InternalSignalDSL.g:2797:7: ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign )
+        // InternalSignalDSL.g:2896:6: ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )
+        // InternalSignalDSL.g:2896:7: ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign )
         {
-        // InternalSignalDSL.g:2797:7: ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign )
-        // InternalSignalDSL.g:2798:7: () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign
+        // InternalSignalDSL.g:2896:7: ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign )
+        // InternalSignalDSL.g:2897:7: () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign
         {
-        // InternalSignalDSL.g:2798:7: ()
-        // InternalSignalDSL.g:2799:7: 
+        // InternalSignalDSL.g:2897:7: ()
+        // InternalSignalDSL.g:2898:7: 
         {
         }
 
-        // InternalSignalDSL.g:2800:7: ( '.' | ( ( '::' ) ) )
-        int alt132=2;
-        int LA132_0 = input.LA(1);
+        // InternalSignalDSL.g:2899:7: ( '.' | ( ( '::' ) ) )
+        int alt135=2;
+        int LA135_0 = input.LA(1);
 
-        if ( (LA132_0==64) ) {
-            alt132=1;
+        if ( (LA135_0==66) ) {
+            alt135=1;
         }
-        else if ( (LA132_0==65) ) {
-            alt132=2;
+        else if ( (LA135_0==67) ) {
+            alt135=2;
         }
         else {
             if (state.backtracking>0) {state.failed=true; return ;}
             NoViableAltException nvae =
-                new NoViableAltException("", 132, 0, input);
+                new NoViableAltException("", 135, 0, input);
 
             throw nvae;
         }
-        switch (alt132) {
+        switch (alt135) {
             case 1 :
-                // InternalSignalDSL.g:2801:8: '.'
+                // InternalSignalDSL.g:2900:8: '.'
                 {
-                match(input,64,FOLLOW_46); if (state.failed) return ;
+                match(input,66,FOLLOW_49); if (state.failed) return ;
 
                 }
                 break;
             case 2 :
-                // InternalSignalDSL.g:2803:8: ( ( '::' ) )
+                // InternalSignalDSL.g:2902:8: ( ( '::' ) )
                 {
-                // InternalSignalDSL.g:2803:8: ( ( '::' ) )
-                // InternalSignalDSL.g:2804:9: ( '::' )
+                // InternalSignalDSL.g:2902:8: ( ( '::' ) )
+                // InternalSignalDSL.g:2903:9: ( '::' )
                 {
-                // InternalSignalDSL.g:2804:9: ( '::' )
-                // InternalSignalDSL.g:2805:10: '::'
+                // InternalSignalDSL.g:2903:9: ( '::' )
+                // InternalSignalDSL.g:2904:10: '::'
                 {
-                match(input,65,FOLLOW_46); if (state.failed) return ;
+                match(input,67,FOLLOW_49); if (state.failed) return ;
 
                 }
 
@@ -21588,13 +21797,13 @@
 
         }
 
-        // InternalSignalDSL.g:2809:7: ( ( ruleFeatureCallID ) )
-        // InternalSignalDSL.g:2810:8: ( ruleFeatureCallID )
+        // InternalSignalDSL.g:2908:7: ( ( ruleFeatureCallID ) )
+        // InternalSignalDSL.g:2909:8: ( ruleFeatureCallID )
         {
-        // InternalSignalDSL.g:2810:8: ( ruleFeatureCallID )
-        // InternalSignalDSL.g:2811:9: ruleFeatureCallID
+        // InternalSignalDSL.g:2909:8: ( ruleFeatureCallID )
+        // InternalSignalDSL.g:2910:9: ruleFeatureCallID
         {
-        pushFollow(FOLLOW_22);
+        pushFollow(FOLLOW_25);
         ruleFeatureCallID();
 
         state._fsp--;
@@ -21620,61 +21829,61 @@
 
     // $ANTLR start synpred21_InternalSignalDSL
     public final void synpred21_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:2894:6: ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )
-        // InternalSignalDSL.g:2894:7: ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) )
+        // InternalSignalDSL.g:2993:6: ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )
+        // InternalSignalDSL.g:2993:7: ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) )
         {
-        // InternalSignalDSL.g:2894:7: ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) )
-        // InternalSignalDSL.g:2895:7: () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) )
+        // InternalSignalDSL.g:2993:7: ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) )
+        // InternalSignalDSL.g:2994:7: () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) )
         {
-        // InternalSignalDSL.g:2895:7: ()
-        // InternalSignalDSL.g:2896:7: 
+        // InternalSignalDSL.g:2994:7: ()
+        // InternalSignalDSL.g:2995:7: 
         {
         }
 
-        // InternalSignalDSL.g:2897:7: ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) )
-        int alt133=3;
+        // InternalSignalDSL.g:2996:7: ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) )
+        int alt136=3;
         switch ( input.LA(1) ) {
-        case 64:
-            {
-            alt133=1;
-            }
-            break;
         case 66:
             {
-            alt133=2;
+            alt136=1;
             }
             break;
-        case 65:
+        case 68:
             {
-            alt133=3;
+            alt136=2;
+            }
+            break;
+        case 67:
+            {
+            alt136=3;
             }
             break;
         default:
             if (state.backtracking>0) {state.failed=true; return ;}
             NoViableAltException nvae =
-                new NoViableAltException("", 133, 0, input);
+                new NoViableAltException("", 136, 0, input);
 
             throw nvae;
         }
 
-        switch (alt133) {
+        switch (alt136) {
             case 1 :
-                // InternalSignalDSL.g:2898:8: '.'
+                // InternalSignalDSL.g:2997:8: '.'
                 {
-                match(input,64,FOLLOW_2); if (state.failed) return ;
+                match(input,66,FOLLOW_2); if (state.failed) return ;
 
                 }
                 break;
             case 2 :
-                // InternalSignalDSL.g:2900:8: ( ( '?.' ) )
+                // InternalSignalDSL.g:2999:8: ( ( '?.' ) )
                 {
-                // InternalSignalDSL.g:2900:8: ( ( '?.' ) )
-                // InternalSignalDSL.g:2901:9: ( '?.' )
+                // InternalSignalDSL.g:2999:8: ( ( '?.' ) )
+                // InternalSignalDSL.g:3000:9: ( '?.' )
                 {
-                // InternalSignalDSL.g:2901:9: ( '?.' )
-                // InternalSignalDSL.g:2902:10: '?.'
+                // InternalSignalDSL.g:3000:9: ( '?.' )
+                // InternalSignalDSL.g:3001:10: '?.'
                 {
-                match(input,66,FOLLOW_2); if (state.failed) return ;
+                match(input,68,FOLLOW_2); if (state.failed) return ;
 
                 }
 
@@ -21685,15 +21894,15 @@
                 }
                 break;
             case 3 :
-                // InternalSignalDSL.g:2906:8: ( ( '::' ) )
+                // InternalSignalDSL.g:3005:8: ( ( '::' ) )
                 {
-                // InternalSignalDSL.g:2906:8: ( ( '::' ) )
-                // InternalSignalDSL.g:2907:9: ( '::' )
+                // InternalSignalDSL.g:3005:8: ( ( '::' ) )
+                // InternalSignalDSL.g:3006:9: ( '::' )
                 {
-                // InternalSignalDSL.g:2907:9: ( '::' )
-                // InternalSignalDSL.g:2908:10: '::'
+                // InternalSignalDSL.g:3006:9: ( '::' )
+                // InternalSignalDSL.g:3007:10: '::'
                 {
-                match(input,65,FOLLOW_2); if (state.failed) return ;
+                match(input,67,FOLLOW_2); if (state.failed) return ;
 
                 }
 
@@ -21716,13 +21925,13 @@
 
     // $ANTLR start synpred22_InternalSignalDSL
     public final void synpred22_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:3032:7: ( ( '(' ) )
-        // InternalSignalDSL.g:3032:8: ( '(' )
+        // InternalSignalDSL.g:3131:7: ( ( '(' ) )
+        // InternalSignalDSL.g:3131:8: ( '(' )
         {
-        // InternalSignalDSL.g:3032:8: ( '(' )
-        // InternalSignalDSL.g:3033:8: '('
+        // InternalSignalDSL.g:3131:8: ( '(' )
+        // InternalSignalDSL.g:3132:8: '('
         {
-        match(input,27,FOLLOW_2); if (state.failed) return ;
+        match(input,29,FOLLOW_2); if (state.failed) return ;
 
         }
 
@@ -21733,35 +21942,35 @@
 
     // $ANTLR start synpred23_InternalSignalDSL
     public final void synpred23_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:3051:8: ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )
-        // InternalSignalDSL.g:3051:9: ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) )
+        // InternalSignalDSL.g:3150:8: ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )
+        // InternalSignalDSL.g:3150:9: ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) )
         {
-        // InternalSignalDSL.g:3051:9: ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) )
-        // InternalSignalDSL.g:3052:9: () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) )
+        // InternalSignalDSL.g:3150:9: ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) )
+        // InternalSignalDSL.g:3151:9: () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) )
         {
-        // InternalSignalDSL.g:3052:9: ()
-        // InternalSignalDSL.g:3053:9: 
+        // InternalSignalDSL.g:3151:9: ()
+        // InternalSignalDSL.g:3152:9: 
         {
         }
 
-        // InternalSignalDSL.g:3054:9: ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )?
-        int alt135=2;
-        int LA135_0 = input.LA(1);
+        // InternalSignalDSL.g:3153:9: ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )?
+        int alt138=2;
+        int LA138_0 = input.LA(1);
 
-        if ( (LA135_0==RULE_ID||LA135_0==27||LA135_0==52) ) {
-            alt135=1;
+        if ( (LA138_0==RULE_ID||LA138_0==29||LA138_0==54) ) {
+            alt138=1;
         }
-        switch (alt135) {
+        switch (alt138) {
             case 1 :
-                // InternalSignalDSL.g:3055:10: ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )*
+                // InternalSignalDSL.g:3154:10: ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )*
                 {
-                // InternalSignalDSL.g:3055:10: ( ( ruleJvmFormalParameter ) )
-                // InternalSignalDSL.g:3056:11: ( ruleJvmFormalParameter )
+                // InternalSignalDSL.g:3154:10: ( ( ruleJvmFormalParameter ) )
+                // InternalSignalDSL.g:3155:11: ( ruleJvmFormalParameter )
                 {
-                // InternalSignalDSL.g:3056:11: ( ruleJvmFormalParameter )
-                // InternalSignalDSL.g:3057:12: ruleJvmFormalParameter
+                // InternalSignalDSL.g:3155:11: ( ruleJvmFormalParameter )
+                // InternalSignalDSL.g:3156:12: ruleJvmFormalParameter
                 {
-                pushFollow(FOLLOW_56);
+                pushFollow(FOLLOW_59);
                 ruleJvmFormalParameter();
 
                 state._fsp--;
@@ -21772,29 +21981,29 @@
 
                 }
 
-                // InternalSignalDSL.g:3060:10: ( ',' ( ( ruleJvmFormalParameter ) ) )*
-                loop134:
+                // InternalSignalDSL.g:3159:10: ( ',' ( ( ruleJvmFormalParameter ) ) )*
+                loop137:
                 do {
-                    int alt134=2;
-                    int LA134_0 = input.LA(1);
+                    int alt137=2;
+                    int LA137_0 = input.LA(1);
 
-                    if ( (LA134_0==28) ) {
-                        alt134=1;
+                    if ( (LA137_0==30) ) {
+                        alt137=1;
                     }
 
 
-                    switch (alt134) {
+                    switch (alt137) {
                 	case 1 :
-                	    // InternalSignalDSL.g:3061:11: ',' ( ( ruleJvmFormalParameter ) )
+                	    // InternalSignalDSL.g:3160:11: ',' ( ( ruleJvmFormalParameter ) )
                 	    {
-                	    match(input,28,FOLLOW_36); if (state.failed) return ;
-                	    // InternalSignalDSL.g:3062:11: ( ( ruleJvmFormalParameter ) )
-                	    // InternalSignalDSL.g:3063:12: ( ruleJvmFormalParameter )
+                	    match(input,30,FOLLOW_39); if (state.failed) return ;
+                	    // InternalSignalDSL.g:3161:11: ( ( ruleJvmFormalParameter ) )
+                	    // InternalSignalDSL.g:3162:12: ( ruleJvmFormalParameter )
                 	    {
-                	    // InternalSignalDSL.g:3063:12: ( ruleJvmFormalParameter )
-                	    // InternalSignalDSL.g:3064:13: ruleJvmFormalParameter
+                	    // InternalSignalDSL.g:3162:12: ( ruleJvmFormalParameter )
+                	    // InternalSignalDSL.g:3163:13: ruleJvmFormalParameter
                 	    {
-                	    pushFollow(FOLLOW_56);
+                	    pushFollow(FOLLOW_59);
                 	    ruleJvmFormalParameter();
 
                 	    state._fsp--;
@@ -21810,7 +22019,7 @@
                 	    break;
 
                 	default :
-                	    break loop134;
+                	    break loop137;
                     }
                 } while (true);
 
@@ -21820,13 +22029,13 @@
 
         }
 
-        // InternalSignalDSL.g:3069:9: ( ( '|' ) )
-        // InternalSignalDSL.g:3070:10: ( '|' )
+        // InternalSignalDSL.g:3168:9: ( ( '|' ) )
+        // InternalSignalDSL.g:3169:10: ( '|' )
         {
-        // InternalSignalDSL.g:3070:10: ( '|' )
-        // InternalSignalDSL.g:3071:11: '|'
+        // InternalSignalDSL.g:3169:10: ( '|' )
+        // InternalSignalDSL.g:3170:11: '|'
         {
-        match(input,67,FOLLOW_2); if (state.failed) return ;
+        match(input,69,FOLLOW_2); if (state.failed) return ;
 
         }
 
@@ -21843,18 +22052,18 @@
 
     // $ANTLR start synpred24_InternalSignalDSL
     public final void synpred24_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:3148:6: ( ( () '[' ) )
-        // InternalSignalDSL.g:3148:7: ( () '[' )
+        // InternalSignalDSL.g:3247:6: ( ( () '[' ) )
+        // InternalSignalDSL.g:3247:7: ( () '[' )
         {
-        // InternalSignalDSL.g:3148:7: ( () '[' )
-        // InternalSignalDSL.g:3149:7: () '['
+        // InternalSignalDSL.g:3247:7: ( () '[' )
+        // InternalSignalDSL.g:3248:7: () '['
         {
-        // InternalSignalDSL.g:3149:7: ()
-        // InternalSignalDSL.g:3150:7: 
+        // InternalSignalDSL.g:3248:7: ()
+        // InternalSignalDSL.g:3249:7: 
         {
         }
 
-        match(input,32,FOLLOW_2); if (state.failed) return ;
+        match(input,34,FOLLOW_2); if (state.failed) return ;
 
         }
 
@@ -21865,19 +22074,19 @@
 
     // $ANTLR start synpred25_InternalSignalDSL
     public final void synpred25_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:3221:4: ( ( () 'synchronized' '(' ) )
-        // InternalSignalDSL.g:3221:5: ( () 'synchronized' '(' )
+        // InternalSignalDSL.g:3320:4: ( ( () 'synchronized' '(' ) )
+        // InternalSignalDSL.g:3320:5: ( () 'synchronized' '(' )
         {
-        // InternalSignalDSL.g:3221:5: ( () 'synchronized' '(' )
-        // InternalSignalDSL.g:3222:5: () 'synchronized' '('
+        // InternalSignalDSL.g:3320:5: ( () 'synchronized' '(' )
+        // InternalSignalDSL.g:3321:5: () 'synchronized' '('
         {
-        // InternalSignalDSL.g:3222:5: ()
-        // InternalSignalDSL.g:3223:5: 
+        // InternalSignalDSL.g:3321:5: ()
+        // InternalSignalDSL.g:3322:5: 
         {
         }
 
-        match(input,89,FOLLOW_61); if (state.failed) return ;
-        match(input,27,FOLLOW_2); if (state.failed) return ;
+        match(input,91,FOLLOW_64); if (state.failed) return ;
+        match(input,29,FOLLOW_2); if (state.failed) return ;
 
         }
 
@@ -21888,26 +22097,26 @@
 
     // $ANTLR start synpred26_InternalSignalDSL
     public final void synpred26_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:3266:4: ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )
-        // InternalSignalDSL.g:3266:5: ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' )
+        // InternalSignalDSL.g:3365:4: ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )
+        // InternalSignalDSL.g:3365:5: ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' )
         {
-        // InternalSignalDSL.g:3266:5: ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' )
-        // InternalSignalDSL.g:3267:5: () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':'
+        // InternalSignalDSL.g:3365:5: ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' )
+        // InternalSignalDSL.g:3366:5: () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':'
         {
-        // InternalSignalDSL.g:3267:5: ()
-        // InternalSignalDSL.g:3268:5: 
+        // InternalSignalDSL.g:3366:5: ()
+        // InternalSignalDSL.g:3367:5: 
         {
         }
 
-        match(input,18,FOLLOW_61); if (state.failed) return ;
-        match(input,27,FOLLOW_36); if (state.failed) return ;
-        // InternalSignalDSL.g:3271:5: ( ( ruleJvmFormalParameter ) )
-        // InternalSignalDSL.g:3272:6: ( ruleJvmFormalParameter )
+        match(input,18,FOLLOW_64); if (state.failed) return ;
+        match(input,29,FOLLOW_39); if (state.failed) return ;
+        // InternalSignalDSL.g:3370:5: ( ( ruleJvmFormalParameter ) )
+        // InternalSignalDSL.g:3371:6: ( ruleJvmFormalParameter )
         {
-        // InternalSignalDSL.g:3272:6: ( ruleJvmFormalParameter )
-        // InternalSignalDSL.g:3273:7: ruleJvmFormalParameter
+        // InternalSignalDSL.g:3371:6: ( ruleJvmFormalParameter )
+        // InternalSignalDSL.g:3372:7: ruleJvmFormalParameter
         {
-        pushFollow(FOLLOW_64);
+        pushFollow(FOLLOW_67);
         ruleJvmFormalParameter();
 
         state._fsp--;
@@ -21918,7 +22127,7 @@
 
         }
 
-        match(input,71,FOLLOW_2); if (state.failed) return ;
+        match(input,73,FOLLOW_2); if (state.failed) return ;
 
         }
 
@@ -21929,18 +22138,18 @@
 
     // $ANTLR start synpred27_InternalSignalDSL
     public final void synpred27_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:3380:4: ( ( () '[' ) )
-        // InternalSignalDSL.g:3380:5: ( () '[' )
+        // InternalSignalDSL.g:3479:4: ( ( () '[' ) )
+        // InternalSignalDSL.g:3479:5: ( () '[' )
         {
-        // InternalSignalDSL.g:3380:5: ( () '[' )
-        // InternalSignalDSL.g:3381:5: () '['
+        // InternalSignalDSL.g:3479:5: ( () '[' )
+        // InternalSignalDSL.g:3480:5: () '['
         {
-        // InternalSignalDSL.g:3381:5: ()
-        // InternalSignalDSL.g:3382:5: 
+        // InternalSignalDSL.g:3480:5: ()
+        // InternalSignalDSL.g:3481:5: 
         {
         }
 
-        match(input,32,FOLLOW_2); if (state.failed) return ;
+        match(input,34,FOLLOW_2); if (state.failed) return ;
 
         }
 
@@ -21951,30 +22160,30 @@
 
     // $ANTLR start synpred29_InternalSignalDSL
     public final void synpred29_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:3685:4: ( ( ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )
-        // InternalSignalDSL.g:3685:5: ( ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) )
+        // InternalSignalDSL.g:3784:4: ( ( ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )
+        // InternalSignalDSL.g:3784:5: ( ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) )
         {
-        // InternalSignalDSL.g:3685:5: ( ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) )
-        // InternalSignalDSL.g:3686:5: ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) )
+        // InternalSignalDSL.g:3784:5: ( ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) )
+        // InternalSignalDSL.g:3785:5: ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) )
         {
-        // InternalSignalDSL.g:3686:5: ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )?
-        int alt137=2;
-        int LA137_0 = input.LA(1);
+        // InternalSignalDSL.g:3785:5: ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )?
+        int alt140=2;
+        int LA140_0 = input.LA(1);
 
-        if ( (LA137_0==RULE_ID||LA137_0==27||LA137_0==52) ) {
-            alt137=1;
+        if ( (LA140_0==RULE_ID||LA140_0==29||LA140_0==54) ) {
+            alt140=1;
         }
-        switch (alt137) {
+        switch (alt140) {
             case 1 :
-                // InternalSignalDSL.g:3687:6: ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )*
+                // InternalSignalDSL.g:3786:6: ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )*
                 {
-                // InternalSignalDSL.g:3687:6: ( ( ruleJvmFormalParameter ) )
-                // InternalSignalDSL.g:3688:7: ( ruleJvmFormalParameter )
+                // InternalSignalDSL.g:3786:6: ( ( ruleJvmFormalParameter ) )
+                // InternalSignalDSL.g:3787:7: ( ruleJvmFormalParameter )
                 {
-                // InternalSignalDSL.g:3688:7: ( ruleJvmFormalParameter )
-                // InternalSignalDSL.g:3689:8: ruleJvmFormalParameter
+                // InternalSignalDSL.g:3787:7: ( ruleJvmFormalParameter )
+                // InternalSignalDSL.g:3788:8: ruleJvmFormalParameter
                 {
-                pushFollow(FOLLOW_56);
+                pushFollow(FOLLOW_59);
                 ruleJvmFormalParameter();
 
                 state._fsp--;
@@ -21985,29 +22194,29 @@
 
                 }
 
-                // InternalSignalDSL.g:3692:6: ( ',' ( ( ruleJvmFormalParameter ) ) )*
-                loop136:
+                // InternalSignalDSL.g:3791:6: ( ',' ( ( ruleJvmFormalParameter ) ) )*
+                loop139:
                 do {
-                    int alt136=2;
-                    int LA136_0 = input.LA(1);
+                    int alt139=2;
+                    int LA139_0 = input.LA(1);
 
-                    if ( (LA136_0==28) ) {
-                        alt136=1;
+                    if ( (LA139_0==30) ) {
+                        alt139=1;
                     }
 
 
-                    switch (alt136) {
+                    switch (alt139) {
                 	case 1 :
-                	    // InternalSignalDSL.g:3693:7: ',' ( ( ruleJvmFormalParameter ) )
+                	    // InternalSignalDSL.g:3792:7: ',' ( ( ruleJvmFormalParameter ) )
                 	    {
-                	    match(input,28,FOLLOW_36); if (state.failed) return ;
-                	    // InternalSignalDSL.g:3694:7: ( ( ruleJvmFormalParameter ) )
-                	    // InternalSignalDSL.g:3695:8: ( ruleJvmFormalParameter )
+                	    match(input,30,FOLLOW_39); if (state.failed) return ;
+                	    // InternalSignalDSL.g:3793:7: ( ( ruleJvmFormalParameter ) )
+                	    // InternalSignalDSL.g:3794:8: ( ruleJvmFormalParameter )
                 	    {
-                	    // InternalSignalDSL.g:3695:8: ( ruleJvmFormalParameter )
-                	    // InternalSignalDSL.g:3696:9: ruleJvmFormalParameter
+                	    // InternalSignalDSL.g:3794:8: ( ruleJvmFormalParameter )
+                	    // InternalSignalDSL.g:3795:9: ruleJvmFormalParameter
                 	    {
-                	    pushFollow(FOLLOW_56);
+                	    pushFollow(FOLLOW_59);
                 	    ruleJvmFormalParameter();
 
                 	    state._fsp--;
@@ -22023,7 +22232,7 @@
                 	    break;
 
                 	default :
-                	    break loop136;
+                	    break loop139;
                     }
                 } while (true);
 
@@ -22033,13 +22242,13 @@
 
         }
 
-        // InternalSignalDSL.g:3701:5: ( ( '|' ) )
-        // InternalSignalDSL.g:3702:6: ( '|' )
+        // InternalSignalDSL.g:3800:5: ( ( '|' ) )
+        // InternalSignalDSL.g:3801:6: ( '|' )
         {
-        // InternalSignalDSL.g:3702:6: ( '|' )
-        // InternalSignalDSL.g:3703:7: '|'
+        // InternalSignalDSL.g:3801:6: ( '|' )
+        // InternalSignalDSL.g:3802:7: '|'
         {
-        match(input,67,FOLLOW_2); if (state.failed) return ;
+        match(input,69,FOLLOW_2); if (state.failed) return ;
 
         }
 
@@ -22056,10 +22265,10 @@
 
     // $ANTLR start synpred31_InternalSignalDSL
     public final void synpred31_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:4094:5: ( 'else' )
-        // InternalSignalDSL.g:4094:6: 'else'
+        // InternalSignalDSL.g:4193:5: ( 'else' )
+        // InternalSignalDSL.g:4193:6: 'else'
         {
-        match(input,69,FOLLOW_2); if (state.failed) return ;
+        match(input,71,FOLLOW_2); if (state.failed) return ;
 
         }
     }
@@ -22067,20 +22276,20 @@
 
     // $ANTLR start synpred32_InternalSignalDSL
     public final void synpred32_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:4153:6: ( ( '(' ( ( ruleJvmFormalParameter ) ) ':' ) )
-        // InternalSignalDSL.g:4153:7: ( '(' ( ( ruleJvmFormalParameter ) ) ':' )
+        // InternalSignalDSL.g:4252:6: ( ( '(' ( ( ruleJvmFormalParameter ) ) ':' ) )
+        // InternalSignalDSL.g:4252:7: ( '(' ( ( ruleJvmFormalParameter ) ) ':' )
         {
-        // InternalSignalDSL.g:4153:7: ( '(' ( ( ruleJvmFormalParameter ) ) ':' )
-        // InternalSignalDSL.g:4154:7: '(' ( ( ruleJvmFormalParameter ) ) ':'
+        // InternalSignalDSL.g:4252:7: ( '(' ( ( ruleJvmFormalParameter ) ) ':' )
+        // InternalSignalDSL.g:4253:7: '(' ( ( ruleJvmFormalParameter ) ) ':'
         {
-        match(input,27,FOLLOW_36); if (state.failed) return ;
-        // InternalSignalDSL.g:4155:7: ( ( ruleJvmFormalParameter ) )
-        // InternalSignalDSL.g:4156:8: ( ruleJvmFormalParameter )
+        match(input,29,FOLLOW_39); if (state.failed) return ;
+        // InternalSignalDSL.g:4254:7: ( ( ruleJvmFormalParameter ) )
+        // InternalSignalDSL.g:4255:8: ( ruleJvmFormalParameter )
         {
-        // InternalSignalDSL.g:4156:8: ( ruleJvmFormalParameter )
-        // InternalSignalDSL.g:4157:9: ruleJvmFormalParameter
+        // InternalSignalDSL.g:4255:8: ( ruleJvmFormalParameter )
+        // InternalSignalDSL.g:4256:9: ruleJvmFormalParameter
         {
-        pushFollow(FOLLOW_64);
+        pushFollow(FOLLOW_67);
         ruleJvmFormalParameter();
 
         state._fsp--;
@@ -22091,7 +22300,7 @@
 
         }
 
-        match(input,71,FOLLOW_2); if (state.failed) return ;
+        match(input,73,FOLLOW_2); if (state.failed) return ;
 
         }
 
@@ -22102,19 +22311,19 @@
 
     // $ANTLR start synpred33_InternalSignalDSL
     public final void synpred33_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:4220:6: ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )
-        // InternalSignalDSL.g:4220:7: ( ( ( ruleJvmFormalParameter ) ) ':' )
+        // InternalSignalDSL.g:4319:6: ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )
+        // InternalSignalDSL.g:4319:7: ( ( ( ruleJvmFormalParameter ) ) ':' )
         {
-        // InternalSignalDSL.g:4220:7: ( ( ( ruleJvmFormalParameter ) ) ':' )
-        // InternalSignalDSL.g:4221:7: ( ( ruleJvmFormalParameter ) ) ':'
+        // InternalSignalDSL.g:4319:7: ( ( ( ruleJvmFormalParameter ) ) ':' )
+        // InternalSignalDSL.g:4320:7: ( ( ruleJvmFormalParameter ) ) ':'
         {
-        // InternalSignalDSL.g:4221:7: ( ( ruleJvmFormalParameter ) )
-        // InternalSignalDSL.g:4222:8: ( ruleJvmFormalParameter )
+        // InternalSignalDSL.g:4320:7: ( ( ruleJvmFormalParameter ) )
+        // InternalSignalDSL.g:4321:8: ( ruleJvmFormalParameter )
         {
-        // InternalSignalDSL.g:4222:8: ( ruleJvmFormalParameter )
-        // InternalSignalDSL.g:4223:9: ruleJvmFormalParameter
+        // InternalSignalDSL.g:4321:8: ( ruleJvmFormalParameter )
+        // InternalSignalDSL.g:4322:9: ruleJvmFormalParameter
         {
-        pushFollow(FOLLOW_64);
+        pushFollow(FOLLOW_67);
         ruleJvmFormalParameter();
 
         state._fsp--;
@@ -22125,7 +22334,7 @@
 
         }
 
-        match(input,71,FOLLOW_2); if (state.failed) return ;
+        match(input,73,FOLLOW_2); if (state.failed) return ;
 
         }
 
@@ -22136,17 +22345,17 @@
 
     // $ANTLR start synpred35_InternalSignalDSL
     public final void synpred35_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:5038:5: ( ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) ) )
-        // InternalSignalDSL.g:5038:6: ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) )
+        // InternalSignalDSL.g:5137:5: ( ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) ) )
+        // InternalSignalDSL.g:5137:6: ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) )
         {
-        // InternalSignalDSL.g:5038:6: ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) )
-        // InternalSignalDSL.g:5039:6: ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) )
+        // InternalSignalDSL.g:5137:6: ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) )
+        // InternalSignalDSL.g:5138:6: ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) )
         {
-        // InternalSignalDSL.g:5039:6: ( ( ruleJvmTypeReference ) )
-        // InternalSignalDSL.g:5040:7: ( ruleJvmTypeReference )
+        // InternalSignalDSL.g:5138:6: ( ( ruleJvmTypeReference ) )
+        // InternalSignalDSL.g:5139:7: ( ruleJvmTypeReference )
         {
-        // InternalSignalDSL.g:5040:7: ( ruleJvmTypeReference )
-        // InternalSignalDSL.g:5041:8: ruleJvmTypeReference
+        // InternalSignalDSL.g:5139:7: ( ruleJvmTypeReference )
+        // InternalSignalDSL.g:5140:8: ruleJvmTypeReference
         {
         pushFollow(FOLLOW_4);
         ruleJvmTypeReference();
@@ -22159,11 +22368,11 @@
 
         }
 
-        // InternalSignalDSL.g:5044:6: ( ( ruleValidID ) )
-        // InternalSignalDSL.g:5045:7: ( ruleValidID )
+        // InternalSignalDSL.g:5143:6: ( ( ruleValidID ) )
+        // InternalSignalDSL.g:5144:7: ( ruleValidID )
         {
-        // InternalSignalDSL.g:5045:7: ( ruleValidID )
-        // InternalSignalDSL.g:5046:8: ruleValidID
+        // InternalSignalDSL.g:5144:7: ( ruleValidID )
+        // InternalSignalDSL.g:5145:8: ruleValidID
         {
         pushFollow(FOLLOW_2);
         ruleValidID();
@@ -22186,13 +22395,13 @@
 
     // $ANTLR start synpred36_InternalSignalDSL
     public final void synpred36_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:5350:5: ( ( '(' ) )
-        // InternalSignalDSL.g:5350:6: ( '(' )
+        // InternalSignalDSL.g:5449:5: ( ( '(' ) )
+        // InternalSignalDSL.g:5449:6: ( '(' )
         {
-        // InternalSignalDSL.g:5350:6: ( '(' )
-        // InternalSignalDSL.g:5351:6: '('
+        // InternalSignalDSL.g:5449:6: ( '(' )
+        // InternalSignalDSL.g:5450:6: '('
         {
-        match(input,27,FOLLOW_2); if (state.failed) return ;
+        match(input,29,FOLLOW_2); if (state.failed) return ;
 
         }
 
@@ -22203,35 +22412,35 @@
 
     // $ANTLR start synpred37_InternalSignalDSL
     public final void synpred37_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:5369:6: ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )
-        // InternalSignalDSL.g:5369:7: ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) )
+        // InternalSignalDSL.g:5468:6: ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )
+        // InternalSignalDSL.g:5468:7: ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) )
         {
-        // InternalSignalDSL.g:5369:7: ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) )
-        // InternalSignalDSL.g:5370:7: () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) )
+        // InternalSignalDSL.g:5468:7: ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) )
+        // InternalSignalDSL.g:5469:7: () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) )
         {
-        // InternalSignalDSL.g:5370:7: ()
-        // InternalSignalDSL.g:5371:7: 
+        // InternalSignalDSL.g:5469:7: ()
+        // InternalSignalDSL.g:5470:7: 
         {
         }
 
-        // InternalSignalDSL.g:5372:7: ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )?
-        int alt141=2;
-        int LA141_0 = input.LA(1);
+        // InternalSignalDSL.g:5471:7: ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )?
+        int alt144=2;
+        int LA144_0 = input.LA(1);
 
-        if ( (LA141_0==RULE_ID||LA141_0==27||LA141_0==52) ) {
-            alt141=1;
+        if ( (LA144_0==RULE_ID||LA144_0==29||LA144_0==54) ) {
+            alt144=1;
         }
-        switch (alt141) {
+        switch (alt144) {
             case 1 :
-                // InternalSignalDSL.g:5373:8: ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )*
+                // InternalSignalDSL.g:5472:8: ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )*
                 {
-                // InternalSignalDSL.g:5373:8: ( ( ruleJvmFormalParameter ) )
-                // InternalSignalDSL.g:5374:9: ( ruleJvmFormalParameter )
+                // InternalSignalDSL.g:5472:8: ( ( ruleJvmFormalParameter ) )
+                // InternalSignalDSL.g:5473:9: ( ruleJvmFormalParameter )
                 {
-                // InternalSignalDSL.g:5374:9: ( ruleJvmFormalParameter )
-                // InternalSignalDSL.g:5375:10: ruleJvmFormalParameter
+                // InternalSignalDSL.g:5473:9: ( ruleJvmFormalParameter )
+                // InternalSignalDSL.g:5474:10: ruleJvmFormalParameter
                 {
-                pushFollow(FOLLOW_56);
+                pushFollow(FOLLOW_59);
                 ruleJvmFormalParameter();
 
                 state._fsp--;
@@ -22242,29 +22451,29 @@
 
                 }
 
-                // InternalSignalDSL.g:5378:8: ( ',' ( ( ruleJvmFormalParameter ) ) )*
-                loop140:
+                // InternalSignalDSL.g:5477:8: ( ',' ( ( ruleJvmFormalParameter ) ) )*
+                loop143:
                 do {
-                    int alt140=2;
-                    int LA140_0 = input.LA(1);
+                    int alt143=2;
+                    int LA143_0 = input.LA(1);
 
-                    if ( (LA140_0==28) ) {
-                        alt140=1;
+                    if ( (LA143_0==30) ) {
+                        alt143=1;
                     }
 
 
-                    switch (alt140) {
+                    switch (alt143) {
                 	case 1 :
-                	    // InternalSignalDSL.g:5379:9: ',' ( ( ruleJvmFormalParameter ) )
+                	    // InternalSignalDSL.g:5478:9: ',' ( ( ruleJvmFormalParameter ) )
                 	    {
-                	    match(input,28,FOLLOW_36); if (state.failed) return ;
-                	    // InternalSignalDSL.g:5380:9: ( ( ruleJvmFormalParameter ) )
-                	    // InternalSignalDSL.g:5381:10: ( ruleJvmFormalParameter )
+                	    match(input,30,FOLLOW_39); if (state.failed) return ;
+                	    // InternalSignalDSL.g:5479:9: ( ( ruleJvmFormalParameter ) )
+                	    // InternalSignalDSL.g:5480:10: ( ruleJvmFormalParameter )
                 	    {
-                	    // InternalSignalDSL.g:5381:10: ( ruleJvmFormalParameter )
-                	    // InternalSignalDSL.g:5382:11: ruleJvmFormalParameter
+                	    // InternalSignalDSL.g:5480:10: ( ruleJvmFormalParameter )
+                	    // InternalSignalDSL.g:5481:11: ruleJvmFormalParameter
                 	    {
-                	    pushFollow(FOLLOW_56);
+                	    pushFollow(FOLLOW_59);
                 	    ruleJvmFormalParameter();
 
                 	    state._fsp--;
@@ -22280,7 +22489,7 @@
                 	    break;
 
                 	default :
-                	    break loop140;
+                	    break loop143;
                     }
                 } while (true);
 
@@ -22290,13 +22499,13 @@
 
         }
 
-        // InternalSignalDSL.g:5387:7: ( ( '|' ) )
-        // InternalSignalDSL.g:5388:8: ( '|' )
+        // InternalSignalDSL.g:5486:7: ( ( '|' ) )
+        // InternalSignalDSL.g:5487:8: ( '|' )
         {
-        // InternalSignalDSL.g:5388:8: ( '|' )
-        // InternalSignalDSL.g:5389:9: '|'
+        // InternalSignalDSL.g:5487:8: ( '|' )
+        // InternalSignalDSL.g:5488:9: '|'
         {
-        match(input,67,FOLLOW_2); if (state.failed) return ;
+        match(input,69,FOLLOW_2); if (state.failed) return ;
 
         }
 
@@ -22313,18 +22522,18 @@
 
     // $ANTLR start synpred38_InternalSignalDSL
     public final void synpred38_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:5466:4: ( ( () '[' ) )
-        // InternalSignalDSL.g:5466:5: ( () '[' )
+        // InternalSignalDSL.g:5565:4: ( ( () '[' ) )
+        // InternalSignalDSL.g:5565:5: ( () '[' )
         {
-        // InternalSignalDSL.g:5466:5: ( () '[' )
-        // InternalSignalDSL.g:5467:5: () '['
+        // InternalSignalDSL.g:5565:5: ( () '[' )
+        // InternalSignalDSL.g:5566:5: () '['
         {
-        // InternalSignalDSL.g:5467:5: ()
-        // InternalSignalDSL.g:5468:5: 
+        // InternalSignalDSL.g:5566:5: ()
+        // InternalSignalDSL.g:5567:5: 
         {
         }
 
-        match(input,32,FOLLOW_2); if (state.failed) return ;
+        match(input,34,FOLLOW_2); if (state.failed) return ;
 
         }
 
@@ -22335,10 +22544,10 @@
 
     // $ANTLR start synpred39_InternalSignalDSL
     public final void synpred39_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:5626:5: ( '<' )
-        // InternalSignalDSL.g:5626:6: '<'
+        // InternalSignalDSL.g:5725:5: ( '<' )
+        // InternalSignalDSL.g:5725:6: '<'
         {
-        match(input,39,FOLLOW_2); if (state.failed) return ;
+        match(input,41,FOLLOW_2); if (state.failed) return ;
 
         }
     }
@@ -22346,13 +22555,13 @@
 
     // $ANTLR start synpred40_InternalSignalDSL
     public final void synpred40_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:5683:5: ( ( '(' ) )
-        // InternalSignalDSL.g:5683:6: ( '(' )
+        // InternalSignalDSL.g:5782:5: ( ( '(' ) )
+        // InternalSignalDSL.g:5782:6: ( '(' )
         {
-        // InternalSignalDSL.g:5683:6: ( '(' )
-        // InternalSignalDSL.g:5684:6: '('
+        // InternalSignalDSL.g:5782:6: ( '(' )
+        // InternalSignalDSL.g:5783:6: '('
         {
-        match(input,27,FOLLOW_2); if (state.failed) return ;
+        match(input,29,FOLLOW_2); if (state.failed) return ;
 
         }
 
@@ -22363,35 +22572,35 @@
 
     // $ANTLR start synpred41_InternalSignalDSL
     public final void synpred41_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:5702:6: ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )
-        // InternalSignalDSL.g:5702:7: ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) )
+        // InternalSignalDSL.g:5801:6: ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )
+        // InternalSignalDSL.g:5801:7: ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) )
         {
-        // InternalSignalDSL.g:5702:7: ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) )
-        // InternalSignalDSL.g:5703:7: () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) )
+        // InternalSignalDSL.g:5801:7: ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) )
+        // InternalSignalDSL.g:5802:7: () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) )
         {
-        // InternalSignalDSL.g:5703:7: ()
-        // InternalSignalDSL.g:5704:7: 
+        // InternalSignalDSL.g:5802:7: ()
+        // InternalSignalDSL.g:5803:7: 
         {
         }
 
-        // InternalSignalDSL.g:5705:7: ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )?
-        int alt143=2;
-        int LA143_0 = input.LA(1);
+        // InternalSignalDSL.g:5804:7: ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )?
+        int alt146=2;
+        int LA146_0 = input.LA(1);
 
-        if ( (LA143_0==RULE_ID||LA143_0==27||LA143_0==52) ) {
-            alt143=1;
+        if ( (LA146_0==RULE_ID||LA146_0==29||LA146_0==54) ) {
+            alt146=1;
         }
-        switch (alt143) {
+        switch (alt146) {
             case 1 :
-                // InternalSignalDSL.g:5706:8: ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )*
+                // InternalSignalDSL.g:5805:8: ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )*
                 {
-                // InternalSignalDSL.g:5706:8: ( ( ruleJvmFormalParameter ) )
-                // InternalSignalDSL.g:5707:9: ( ruleJvmFormalParameter )
+                // InternalSignalDSL.g:5805:8: ( ( ruleJvmFormalParameter ) )
+                // InternalSignalDSL.g:5806:9: ( ruleJvmFormalParameter )
                 {
-                // InternalSignalDSL.g:5707:9: ( ruleJvmFormalParameter )
-                // InternalSignalDSL.g:5708:10: ruleJvmFormalParameter
+                // InternalSignalDSL.g:5806:9: ( ruleJvmFormalParameter )
+                // InternalSignalDSL.g:5807:10: ruleJvmFormalParameter
                 {
-                pushFollow(FOLLOW_56);
+                pushFollow(FOLLOW_59);
                 ruleJvmFormalParameter();
 
                 state._fsp--;
@@ -22402,29 +22611,29 @@
 
                 }
 
-                // InternalSignalDSL.g:5711:8: ( ',' ( ( ruleJvmFormalParameter ) ) )*
-                loop142:
+                // InternalSignalDSL.g:5810:8: ( ',' ( ( ruleJvmFormalParameter ) ) )*
+                loop145:
                 do {
-                    int alt142=2;
-                    int LA142_0 = input.LA(1);
+                    int alt145=2;
+                    int LA145_0 = input.LA(1);
 
-                    if ( (LA142_0==28) ) {
-                        alt142=1;
+                    if ( (LA145_0==30) ) {
+                        alt145=1;
                     }
 
 
-                    switch (alt142) {
+                    switch (alt145) {
                 	case 1 :
-                	    // InternalSignalDSL.g:5712:9: ',' ( ( ruleJvmFormalParameter ) )
+                	    // InternalSignalDSL.g:5811:9: ',' ( ( ruleJvmFormalParameter ) )
                 	    {
-                	    match(input,28,FOLLOW_36); if (state.failed) return ;
-                	    // InternalSignalDSL.g:5713:9: ( ( ruleJvmFormalParameter ) )
-                	    // InternalSignalDSL.g:5714:10: ( ruleJvmFormalParameter )
+                	    match(input,30,FOLLOW_39); if (state.failed) return ;
+                	    // InternalSignalDSL.g:5812:9: ( ( ruleJvmFormalParameter ) )
+                	    // InternalSignalDSL.g:5813:10: ( ruleJvmFormalParameter )
                 	    {
-                	    // InternalSignalDSL.g:5714:10: ( ruleJvmFormalParameter )
-                	    // InternalSignalDSL.g:5715:11: ruleJvmFormalParameter
+                	    // InternalSignalDSL.g:5813:10: ( ruleJvmFormalParameter )
+                	    // InternalSignalDSL.g:5814:11: ruleJvmFormalParameter
                 	    {
-                	    pushFollow(FOLLOW_56);
+                	    pushFollow(FOLLOW_59);
                 	    ruleJvmFormalParameter();
 
                 	    state._fsp--;
@@ -22440,7 +22649,7 @@
                 	    break;
 
                 	default :
-                	    break loop142;
+                	    break loop145;
                     }
                 } while (true);
 
@@ -22450,13 +22659,13 @@
 
         }
 
-        // InternalSignalDSL.g:5720:7: ( ( '|' ) )
-        // InternalSignalDSL.g:5721:8: ( '|' )
+        // InternalSignalDSL.g:5819:7: ( ( '|' ) )
+        // InternalSignalDSL.g:5820:8: ( '|' )
         {
-        // InternalSignalDSL.g:5721:8: ( '|' )
-        // InternalSignalDSL.g:5722:9: '|'
+        // InternalSignalDSL.g:5820:8: ( '|' )
+        // InternalSignalDSL.g:5821:9: '|'
         {
-        match(input,67,FOLLOW_2); if (state.failed) return ;
+        match(input,69,FOLLOW_2); if (state.failed) return ;
 
         }
 
@@ -22473,18 +22682,18 @@
 
     // $ANTLR start synpred42_InternalSignalDSL
     public final void synpred42_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:5799:4: ( ( () '[' ) )
-        // InternalSignalDSL.g:5799:5: ( () '[' )
+        // InternalSignalDSL.g:5898:4: ( ( () '[' ) )
+        // InternalSignalDSL.g:5898:5: ( () '[' )
         {
-        // InternalSignalDSL.g:5799:5: ( () '[' )
-        // InternalSignalDSL.g:5800:5: () '['
+        // InternalSignalDSL.g:5898:5: ( () '[' )
+        // InternalSignalDSL.g:5899:5: () '['
         {
-        // InternalSignalDSL.g:5800:5: ()
-        // InternalSignalDSL.g:5801:5: 
+        // InternalSignalDSL.g:5899:5: ()
+        // InternalSignalDSL.g:5900:5: 
         {
         }
 
-        match(input,32,FOLLOW_2); if (state.failed) return ;
+        match(input,34,FOLLOW_2); if (state.failed) return ;
 
         }
 
@@ -22495,10 +22704,10 @@
 
     // $ANTLR start synpred43_InternalSignalDSL
     public final void synpred43_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:6142: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:6241: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_ID && input.LA(1)<=RULE_DECIMAL)||input.LA(1)==14||input.LA(1)==18||(input.LA(1)>=20 && input.LA(1)<=22)||input.LA(1)==27||(input.LA(1)>=31 && input.LA(1)<=32)||input.LA(1)==39||(input.LA(1)>=55 && input.LA(1)<=56)||input.LA(1)==60||input.LA(1)==68||input.LA(1)==70||(input.LA(1)>=74 && input.LA(1)<=75)||(input.LA(1)>=78 && input.LA(1)<=87)||input.LA(1)==89 ) {
+        if ( (input.LA(1)>=RULE_ID && input.LA(1)<=RULE_DECIMAL)||input.LA(1)==14||input.LA(1)==18||(input.LA(1)>=22 && input.LA(1)<=24)||input.LA(1)==29||(input.LA(1)>=33 && input.LA(1)<=34)||input.LA(1)==41||(input.LA(1)>=57 && input.LA(1)<=58)||input.LA(1)==62||input.LA(1)==70||input.LA(1)==72||(input.LA(1)>=76 && input.LA(1)<=77)||(input.LA(1)>=80 && input.LA(1)<=89)||input.LA(1)==91 ) {
             input.consume();
             state.errorRecovery=false;state.failed=false;
         }
@@ -22515,10 +22724,10 @@
 
     // $ANTLR start synpred44_InternalSignalDSL
     public final void synpred44_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:6213:6: ( 'catch' )
-        // InternalSignalDSL.g:6213:7: 'catch'
+        // InternalSignalDSL.g:6312:6: ( 'catch' )
+        // InternalSignalDSL.g:6312:7: 'catch'
         {
-        match(input,90,FOLLOW_2); if (state.failed) return ;
+        match(input,92,FOLLOW_2); if (state.failed) return ;
 
         }
     }
@@ -22526,10 +22735,10 @@
 
     // $ANTLR start synpred45_InternalSignalDSL
     public final void synpred45_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:6234:7: ( 'finally' )
-        // InternalSignalDSL.g:6234:8: 'finally'
+        // InternalSignalDSL.g:6333:7: ( 'finally' )
+        // InternalSignalDSL.g:6333:8: 'finally'
         {
-        match(input,88,FOLLOW_2); if (state.failed) return ;
+        match(input,90,FOLLOW_2); if (state.failed) return ;
 
         }
     }
@@ -22537,10 +22746,10 @@
 
     // $ANTLR start synpred48_InternalSignalDSL
     public final void synpred48_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:6478:5: ( '.' )
-        // InternalSignalDSL.g:6478:6: '.'
+        // InternalSignalDSL.g:6577:5: ( '.' )
+        // InternalSignalDSL.g:6577:6: '.'
         {
-        match(input,64,FOLLOW_2); if (state.failed) return ;
+        match(input,66,FOLLOW_2); if (state.failed) return ;
 
         }
     }
@@ -22548,14 +22757,14 @@
 
     // $ANTLR start synpred49_InternalSignalDSL
     public final void synpred49_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:6604:5: ( ( () ruleArrayBrackets ) )
-        // InternalSignalDSL.g:6604:6: ( () ruleArrayBrackets )
+        // InternalSignalDSL.g:6703:5: ( ( () ruleArrayBrackets ) )
+        // InternalSignalDSL.g:6703:6: ( () ruleArrayBrackets )
         {
-        // InternalSignalDSL.g:6604:6: ( () ruleArrayBrackets )
-        // InternalSignalDSL.g:6605:6: () ruleArrayBrackets
+        // InternalSignalDSL.g:6703:6: ( () ruleArrayBrackets )
+        // InternalSignalDSL.g:6704:6: () ruleArrayBrackets
         {
-        // InternalSignalDSL.g:6605:6: ()
-        // InternalSignalDSL.g:6606:6: 
+        // InternalSignalDSL.g:6704:6: ()
+        // InternalSignalDSL.g:6705:6: 
         {
         }
 
@@ -22574,10 +22783,10 @@
 
     // $ANTLR start synpred50_InternalSignalDSL
     public final void synpred50_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:6801:5: ( '<' )
-        // InternalSignalDSL.g:6801:6: '<'
+        // InternalSignalDSL.g:6900:5: ( '<' )
+        // InternalSignalDSL.g:6900:6: '<'
         {
-        match(input,39,FOLLOW_2); if (state.failed) return ;
+        match(input,41,FOLLOW_2); if (state.failed) return ;
 
         }
     }
@@ -22585,18 +22794,18 @@
 
     // $ANTLR start synpred51_InternalSignalDSL
     public final void synpred51_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:6857:6: ( ( () '.' ) )
-        // InternalSignalDSL.g:6857:7: ( () '.' )
+        // InternalSignalDSL.g:6956:6: ( ( () '.' ) )
+        // InternalSignalDSL.g:6956:7: ( () '.' )
         {
-        // InternalSignalDSL.g:6857:7: ( () '.' )
-        // InternalSignalDSL.g:6858:7: () '.'
+        // InternalSignalDSL.g:6956:7: ( () '.' )
+        // InternalSignalDSL.g:6957:7: () '.'
         {
-        // InternalSignalDSL.g:6858:7: ()
-        // InternalSignalDSL.g:6859:7: 
+        // InternalSignalDSL.g:6957:7: ()
+        // InternalSignalDSL.g:6958:7: 
         {
         }
 
-        match(input,64,FOLLOW_2); if (state.failed) return ;
+        match(input,66,FOLLOW_2); if (state.failed) return ;
 
         }
 
@@ -22607,10 +22816,10 @@
 
     // $ANTLR start synpred52_InternalSignalDSL
     public final void synpred52_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:6895:7: ( '<' )
-        // InternalSignalDSL.g:6895:8: '<'
+        // InternalSignalDSL.g:6994:7: ( '<' )
+        // InternalSignalDSL.g:6994:8: '<'
         {
-        match(input,39,FOLLOW_2); if (state.failed) return ;
+        match(input,41,FOLLOW_2); if (state.failed) return ;
 
         }
     }
@@ -23250,45 +23459,45 @@
     }
 
 
-    protected DFA8 dfa8 = new DFA8(this);
-    protected DFA11 dfa11 = new DFA11(this);
-    protected DFA17 dfa17 = new DFA17(this);
-    protected DFA20 dfa20 = new DFA20(this);
+    protected DFA10 dfa10 = new DFA10(this);
+    protected DFA13 dfa13 = new DFA13(this);
+    protected DFA19 dfa19 = new DFA19(this);
     protected DFA22 dfa22 = new DFA22(this);
-    protected DFA32 dfa32 = new DFA32(this);
-    protected DFA35 dfa35 = new DFA35(this);
-    protected DFA51 dfa51 = new DFA51(this);
-    protected DFA50 dfa50 = new DFA50(this);
+    protected DFA24 dfa24 = new DFA24(this);
+    protected DFA34 dfa34 = new DFA34(this);
+    protected DFA37 dfa37 = new DFA37(this);
+    protected DFA53 dfa53 = new DFA53(this);
     protected DFA52 dfa52 = new DFA52(this);
     protected DFA54 dfa54 = new DFA54(this);
-    protected DFA63 dfa63 = new DFA63(this);
-    protected DFA70 dfa70 = new DFA70(this);
-    protected DFA69 dfa69 = new DFA69(this);
-    protected DFA92 dfa92 = new DFA92(this);
-    protected DFA91 dfa91 = new DFA91(this);
+    protected DFA56 dfa56 = new DFA56(this);
+    protected DFA65 dfa65 = new DFA65(this);
+    protected DFA72 dfa72 = new DFA72(this);
+    protected DFA71 dfa71 = new DFA71(this);
+    protected DFA94 dfa94 = new DFA94(this);
     protected DFA93 dfa93 = new DFA93(this);
-    protected DFA97 dfa97 = new DFA97(this);
-    protected DFA100 dfa100 = new DFA100(this);
+    protected DFA95 dfa95 = new DFA95(this);
     protected DFA99 dfa99 = new DFA99(this);
+    protected DFA102 dfa102 = new DFA102(this);
     protected DFA101 dfa101 = new DFA101(this);
-    protected DFA104 dfa104 = new DFA104(this);
+    protected DFA103 dfa103 = new DFA103(this);
+    protected DFA106 dfa106 = new DFA106(this);
+    protected DFA124 dfa124 = new DFA124(this);
     protected DFA122 dfa122 = new DFA122(this);
-    protected DFA120 dfa120 = new DFA120(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\4\1\uffff\1\15\1\uffff\1\4\2\uffff\1\15";
-    static final String dfa_4s = "\1\30\1\uffff\1\100\1\uffff\1\27\2\uffff\1\100";
+    static final String dfa_4s = "\1\32\1\uffff\1\102\1\uffff\1\31\2\uffff\1\102";
     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\20\uffff\1\1\2\uffff\1\3",
+            "\1\2\22\uffff\1\1\2\uffff\1\3",
             "",
-            "\1\5\6\uffff\1\5\4\uffff\1\5\46\uffff\1\4",
+            "\1\5\10\uffff\1\5\4\uffff\1\5\46\uffff\1\4",
             "",
-            "\1\7\22\uffff\1\6",
+            "\1\7\24\uffff\1\6",
             "",
             "",
-            "\1\5\6\uffff\1\5\4\uffff\1\5\46\uffff\1\4"
+            "\1\5\10\uffff\1\5\4\uffff\1\5\46\uffff\1\4"
     };
 
     static final short[] dfa_1 = DFA.unpackEncodedString(dfa_1s);
@@ -23299,11 +23508,11 @@
     static final short[] dfa_6 = DFA.unpackEncodedString(dfa_6s);
     static final short[][] dfa_7 = unpackEncodedStringArray(dfa_7s);
 
-    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_1;
             this.eof = dfa_2;
             this.min = dfa_3;
@@ -23313,16 +23522,16 @@
             this.transition = dfa_7;
         }
         public String getDescription() {
-            return "571: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 "670: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\131\1\0\42\uffff";
+    static final String dfa_10s = "\1\133\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\1\4\2\5\uffff\1\2\3\uffff\1\2\1\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\3\uffff\2\2\2\uffff\12\2\1\uffff\1\2",
+            "\1\1\4\2\5\uffff\1\2\3\uffff\1\2\3\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\3\uffff\2\2\2\uffff\12\2\1\uffff\1\2",
             "\1\uffff",
             "",
             "",
@@ -23367,11 +23576,11 @@
     static final short[] dfa_12 = DFA.unpackEncodedString(dfa_12s);
     static final short[][] dfa_13 = unpackEncodedStringArray(dfa_13s);
 
-    class DFA11 extends DFA {
+    class DFA13 extends DFA {
 
-        public DFA11(BaseRecognizer recognizer) {
+        public DFA13(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 11;
+            this.decisionNumber = 13;
             this.eot = dfa_8;
             this.eof = dfa_8;
             this.min = dfa_9;
@@ -23381,17 +23590,17 @@
             this.transition = dfa_13;
         }
         public String getDescription() {
-            return "788:4: ( ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* ) | ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) ) )?";
+            return "887: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 LA11_1 = input.LA(1);
+                        int LA13_1 = input.LA(1);
 
                          
-                        int index11_1 = input.index();
+                        int index13_1 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred2_InternalSignalDSL()) ) {s = 35;}
@@ -23399,24 +23608,24 @@
                         else if ( (true) ) {s = 2;}
 
                          
-                        input.seek(index11_1);
+                        input.seek(index13_1);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 11, _s, input);
+                new NoViableAltException(getDescription(), 13, _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\131\1\0\41\uffff";
+    static final String dfa_16s = "\1\133\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\3\uffff\1\2\1\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\3\uffff\2\2\2\uffff\12\2\1\uffff\1\2",
+            "\5\2\5\uffff\1\2\3\uffff\1\2\3\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\3\uffff\2\2\2\uffff\12\2\1\uffff\1\2",
             "\1\uffff",
             "",
             "",
@@ -23460,11 +23669,11 @@
     static final short[] dfa_18 = DFA.unpackEncodedString(dfa_18s);
     static final short[][] dfa_19 = unpackEncodedStringArray(dfa_19s);
 
-    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_14;
             this.eof = dfa_14;
             this.min = dfa_15;
@@ -23474,17 +23683,17 @@
             this.transition = dfa_19;
         }
         public String getDescription() {
-            return "968: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 ) ) )+ )? ) )";
+            return "1067: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 LA17_1 = input.LA(1);
+                        int LA19_1 = input.LA(1);
 
                          
-                        int index17_1 = input.index();
+                        int index19_1 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred5_InternalSignalDSL()) ) {s = 34;}
@@ -23492,23 +23701,23 @@
                         else if ( (true) ) {s = 2;}
 
                          
-                        input.seek(index17_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(), 17, _s, input);
+                new NoViableAltException(getDescription(), 19, _s, input);
             error(nvae);
             throw nvae;
         }
     }
 
-    class DFA20 extends DFA {
+    class DFA22 extends DFA {
 
-        public DFA20(BaseRecognizer recognizer) {
+        public DFA22(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 20;
+            this.decisionNumber = 22;
             this.eot = dfa_14;
             this.eof = dfa_14;
             this.min = dfa_15;
@@ -23518,17 +23727,17 @@
             this.transition = dfa_19;
         }
         public String getDescription() {
-            return "1110:2: ( ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' ) | this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression )";
+            return "1209: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 LA20_1 = input.LA(1);
+                        int LA22_1 = input.LA(1);
 
                          
-                        int index20_1 = input.index();
+                        int index22_1 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred6_InternalSignalDSL()) ) {s = 34;}
@@ -23536,13 +23745,13 @@
                         else if ( (true) ) {s = 2;}
 
                          
-                        input.seek(index20_1);
+                        input.seek(index22_1);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 20, _s, input);
+                new NoViableAltException(getDescription(), 22, _s, input);
             error(nvae);
             throw nvae;
         }
@@ -23550,11 +23759,11 @@
     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\132\7\0\2\uffff";
+    static final String dfa_23s = "\1\134\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\1\1\0\2\uffff}>";
     static final String[] dfa_26s = {
-            "\5\10\5\uffff\2\10\2\uffff\1\10\1\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\2\uffff\1\10\3\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",
@@ -23574,11 +23783,11 @@
     static final short[] dfa_25 = DFA.unpackEncodedString(dfa_25s);
     static final short[][] dfa_26 = unpackEncodedStringArray(dfa_26s);
 
-    class DFA22 extends DFA {
+    class DFA24 extends DFA {
 
-        public DFA22(BaseRecognizer recognizer) {
+        public DFA24(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 22;
+            this.decisionNumber = 24;
             this.eot = dfa_20;
             this.eof = dfa_21;
             this.min = dfa_22;
@@ -23588,17 +23797,17 @@
             this.transition = dfa_26;
         }
         public String getDescription() {
-            return "1339:4: ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )?";
+            return "1438: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 LA22_7 = input.LA(1);
+                        int LA24_7 = input.LA(1);
 
                          
-                        int index22_7 = input.index();
+                        int index24_7 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred7_InternalSignalDSL()) ) {s = 9;}
@@ -23606,14 +23815,14 @@
                         else if ( (true) ) {s = 8;}
 
                          
-                        input.seek(index22_7);
+                        input.seek(index24_7);
                         if ( s>=0 ) return s;
                         break;
                     case 1 : 
-                        int LA22_6 = input.LA(1);
+                        int LA24_6 = input.LA(1);
 
                          
-                        int index22_6 = input.index();
+                        int index24_6 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred7_InternalSignalDSL()) ) {s = 9;}
@@ -23621,14 +23830,14 @@
                         else if ( (true) ) {s = 8;}
 
                          
-                        input.seek(index22_6);
+                        input.seek(index24_6);
                         if ( s>=0 ) return s;
                         break;
                     case 2 : 
-                        int LA22_1 = input.LA(1);
+                        int LA24_1 = input.LA(1);
 
                          
-                        int index22_1 = input.index();
+                        int index24_1 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred7_InternalSignalDSL()) ) {s = 9;}
@@ -23636,14 +23845,14 @@
                         else if ( (true) ) {s = 8;}
 
                          
-                        input.seek(index22_1);
+                        input.seek(index24_1);
                         if ( s>=0 ) return s;
                         break;
                     case 3 : 
-                        int LA22_2 = input.LA(1);
+                        int LA24_2 = input.LA(1);
 
                          
-                        int index22_2 = input.index();
+                        int index24_2 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred7_InternalSignalDSL()) ) {s = 9;}
@@ -23651,14 +23860,14 @@
                         else if ( (true) ) {s = 8;}
 
                          
-                        input.seek(index22_2);
+                        input.seek(index24_2);
                         if ( s>=0 ) return s;
                         break;
                     case 4 : 
-                        int LA22_3 = input.LA(1);
+                        int LA24_3 = input.LA(1);
 
                          
-                        int index22_3 = input.index();
+                        int index24_3 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred7_InternalSignalDSL()) ) {s = 9;}
@@ -23666,14 +23875,14 @@
                         else if ( (true) ) {s = 8;}
 
                          
-                        input.seek(index22_3);
+                        input.seek(index24_3);
                         if ( s>=0 ) return s;
                         break;
                     case 5 : 
-                        int LA22_4 = input.LA(1);
+                        int LA24_4 = input.LA(1);
 
                          
-                        int index22_4 = input.index();
+                        int index24_4 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred7_InternalSignalDSL()) ) {s = 9;}
@@ -23681,14 +23890,14 @@
                         else if ( (true) ) {s = 8;}
 
                          
-                        input.seek(index22_4);
+                        input.seek(index24_4);
                         if ( s>=0 ) return s;
                         break;
                     case 6 : 
-                        int LA22_5 = input.LA(1);
+                        int LA24_5 = input.LA(1);
 
                          
-                        int index22_5 = input.index();
+                        int index24_5 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred7_InternalSignalDSL()) ) {s = 9;}
@@ -23696,13 +23905,13 @@
                         else if ( (true) ) {s = 8;}
 
                          
-                        input.seek(index22_5);
+                        input.seek(index24_5);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 22, _s, input);
+                new NoViableAltException(getDescription(), 24, _s, input);
             error(nvae);
             throw nvae;
         }
@@ -23710,11 +23919,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\132\1\uffff\10\0\1\uffff";
+    static final String dfa_30s = "\1\134\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\0\1\2\1\6\1\7\1\5\1\1\1\3\1\4\1\uffff}>";
+    static final String dfa_32s = "\2\uffff\1\4\1\7\1\2\1\3\1\0\1\1\1\5\1\6\1\uffff}>";
     static final String[] dfa_33s = {
-            "\5\1\5\uffff\2\1\2\uffff\1\1\1\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\2\uffff\1\1\3\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",
@@ -23735,11 +23944,11 @@
     static final short[] dfa_32 = DFA.unpackEncodedString(dfa_32s);
     static final short[][] dfa_33 = unpackEncodedStringArray(dfa_33s);
 
-    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_27;
             this.eof = dfa_28;
             this.min = dfa_29;
@@ -23749,17 +23958,17 @@
             this.transition = dfa_33;
         }
         public String getDescription() {
-            return "()* loopback of 2053:3: ( ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) ) ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) ) )*";
+            return "()* loopback of 2152: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 LA32_2 = input.LA(1);
+                        int LA34_6 = input.LA(1);
 
                          
-                        int index32_2 = input.index();
+                        int index34_6 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred13_InternalSignalDSL()) ) {s = 10;}
@@ -23767,14 +23976,14 @@
                         else if ( (true) ) {s = 1;}
 
                          
-                        input.seek(index32_2);
+                        input.seek(index34_6);
                         if ( s>=0 ) return s;
                         break;
                     case 1 : 
-                        int LA32_7 = input.LA(1);
+                        int LA34_7 = input.LA(1);
 
                          
-                        int index32_7 = input.index();
+                        int index34_7 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred13_InternalSignalDSL()) ) {s = 10;}
@@ -23782,14 +23991,14 @@
                         else if ( (true) ) {s = 1;}
 
                          
-                        input.seek(index32_7);
+                        input.seek(index34_7);
                         if ( s>=0 ) return s;
                         break;
                     case 2 : 
-                        int LA32_3 = input.LA(1);
+                        int LA34_4 = input.LA(1);
 
                          
-                        int index32_3 = input.index();
+                        int index34_4 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred13_InternalSignalDSL()) ) {s = 10;}
@@ -23797,14 +24006,14 @@
                         else if ( (true) ) {s = 1;}
 
                          
-                        input.seek(index32_3);
+                        input.seek(index34_4);
                         if ( s>=0 ) return s;
                         break;
                     case 3 : 
-                        int LA32_8 = input.LA(1);
+                        int LA34_5 = input.LA(1);
 
                          
-                        int index32_8 = input.index();
+                        int index34_5 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred13_InternalSignalDSL()) ) {s = 10;}
@@ -23812,14 +24021,14 @@
                         else if ( (true) ) {s = 1;}
 
                          
-                        input.seek(index32_8);
+                        input.seek(index34_5);
                         if ( s>=0 ) return s;
                         break;
                     case 4 : 
-                        int LA32_9 = input.LA(1);
+                        int LA34_2 = input.LA(1);
 
                          
-                        int index32_9 = input.index();
+                        int index34_2 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred13_InternalSignalDSL()) ) {s = 10;}
@@ -23827,14 +24036,14 @@
                         else if ( (true) ) {s = 1;}
 
                          
-                        input.seek(index32_9);
+                        input.seek(index34_2);
                         if ( s>=0 ) return s;
                         break;
                     case 5 : 
-                        int LA32_6 = input.LA(1);
+                        int LA34_8 = input.LA(1);
 
                          
-                        int index32_6 = input.index();
+                        int index34_8 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred13_InternalSignalDSL()) ) {s = 10;}
@@ -23842,14 +24051,14 @@
                         else if ( (true) ) {s = 1;}
 
                          
-                        input.seek(index32_6);
+                        input.seek(index34_8);
                         if ( s>=0 ) return s;
                         break;
                     case 6 : 
-                        int LA32_4 = input.LA(1);
+                        int LA34_9 = input.LA(1);
 
                          
-                        int index32_4 = input.index();
+                        int index34_9 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred13_InternalSignalDSL()) ) {s = 10;}
@@ -23857,14 +24066,14 @@
                         else if ( (true) ) {s = 1;}
 
                          
-                        input.seek(index32_4);
+                        input.seek(index34_9);
                         if ( s>=0 ) return s;
                         break;
                     case 7 : 
-                        int LA32_5 = input.LA(1);
+                        int LA34_3 = input.LA(1);
 
                          
-                        int index32_5 = input.index();
+                        int index34_3 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred13_InternalSignalDSL()) ) {s = 10;}
@@ -23872,26 +24081,26 @@
                         else if ( (true) ) {s = 1;}
 
                          
-                        input.seek(index32_5);
+                        input.seek(index34_3);
                         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;
         }
     }
-    static final String dfa_34s = "\1\47\2\uffff\1\50\7\uffff";
-    static final String dfa_35s = "\1\66\2\uffff\1\63\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_34s = "\1\51\2\uffff\1\52\7\uffff";
+    static final String dfa_35s = "\1\70\2\uffff\1\65\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\6\1\3";
     static final String dfa_37s = "\13\uffff}>";
     static final String[] dfa_38s = {
             "\1\6\1\3\10\uffff\1\1\1\2\1\4\1\5\1\7\1\10",
             "",
             "",
-            "\1\12\12\uffff\1\11",
+            "\1\11\12\uffff\1\12",
             "",
             "",
             "",
@@ -23906,11 +24115,11 @@
     static final short[] dfa_37 = DFA.unpackEncodedString(dfa_37s);
     static final short[][] dfa_38 = unpackEncodedStringArray(dfa_38s);
 
-    class DFA35 extends DFA {
+    class DFA37 extends DFA {
 
-        public DFA35(BaseRecognizer recognizer) {
+        public DFA37(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 35;
+            this.decisionNumber = 37;
             this.eot = dfa_27;
             this.eof = dfa_27;
             this.min = dfa_34;
@@ -23920,17 +24129,17 @@
             this.transition = dfa_38;
         }
         public String getDescription() {
-            return "2129:2: (kw= '->' | kw= '..<' | (kw= '>' kw= '..' ) | kw= '..' | kw= '=>' | (kw= '>' ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' ) ) | (kw= '<' ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' | kw= '=>' ) ) | kw= '<>' | kw= '?:' )";
+            return "2228: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\132\1\0\114\uffff";
+    static final String dfa_42s = "\1\134\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\2\uffff\1\2\1\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\2\uffff\1\2\3\uffff\4\2\1\uffff\1\2\1\uffff\1\1\2\2\1\uffff\44\2\1\uffff\27\2",
             "\1\uffff",
             "",
             "",
@@ -24018,11 +24227,11 @@
     static final short[] dfa_44 = DFA.unpackEncodedString(dfa_44s);
     static final short[][] dfa_45 = unpackEncodedStringArray(dfa_45s);
 
-    class DFA51 extends DFA {
+    class DFA53 extends DFA {
 
-        public DFA51(BaseRecognizer recognizer) {
+        public DFA53(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 51;
+            this.decisionNumber = 53;
             this.eot = dfa_39;
             this.eof = dfa_40;
             this.min = dfa_41;
@@ -24032,17 +24241,17 @@
             this.transition = dfa_45;
         }
         public String getDescription() {
-            return "3030: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 "3129: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 LA51_1 = input.LA(1);
+                        int LA53_1 = input.LA(1);
 
                          
-                        int index51_1 = input.index();
+                        int index53_1 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred22_InternalSignalDSL()) ) {s = 77;}
@@ -24050,23 +24259,23 @@
                         else if ( (true) ) {s = 2;}
 
                          
-                        input.seek(index51_1);
+                        input.seek(index53_1);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 51, _s, input);
+                new NoViableAltException(getDescription(), 53, _s, input);
             error(nvae);
             throw nvae;
         }
     }
     static final String dfa_46s = "\1\4\2\0\41\uffff";
-    static final String dfa_47s = "\1\131\2\0\41\uffff";
+    static final String dfa_47s = "\1\133\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\1\4\5\5\uffff\1\5\3\uffff\1\5\1\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\3\uffff\2\5\2\uffff\12\5\1\uffff\1\5",
+            "\1\1\4\5\5\uffff\1\5\3\uffff\1\5\3\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\3\uffff\2\5\2\uffff\12\5\1\uffff\1\5",
             "\1\uffff",
             "\1\uffff",
             "",
@@ -24109,11 +24318,11 @@
     static final short[] dfa_49 = DFA.unpackEncodedString(dfa_49s);
     static final short[][] dfa_50 = unpackEncodedStringArray(dfa_50s);
 
-    class DFA50 extends DFA {
+    class DFA52 extends DFA {
 
-        public DFA50(BaseRecognizer recognizer) {
+        public DFA52(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 50;
+            this.decisionNumber = 52;
             this.eot = dfa_8;
             this.eof = dfa_8;
             this.min = dfa_46;
@@ -24123,40 +24332,40 @@
             this.transition = dfa_50;
         }
         public String getDescription() {
-            return "3049:6: ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )?";
+            return "3148: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 LA50_0 = input.LA(1);
+                        int LA52_0 = input.LA(1);
 
                          
-                        int index50_0 = input.index();
+                        int index52_0 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA50_0==RULE_ID) ) {s = 1;}
+                        if ( (LA52_0==RULE_ID) ) {s = 1;}
 
-                        else if ( (LA50_0==27) ) {s = 2;}
+                        else if ( (LA52_0==29) ) {s = 2;}
 
-                        else if ( (LA50_0==52) && (synpred23_InternalSignalDSL())) {s = 3;}
+                        else if ( (LA52_0==54) && (synpred23_InternalSignalDSL())) {s = 3;}
 
-                        else if ( (LA50_0==67) && (synpred23_InternalSignalDSL())) {s = 4;}
+                        else if ( (LA52_0==69) && (synpred23_InternalSignalDSL())) {s = 4;}
 
-                        else if ( ((LA50_0>=RULE_STRING && LA50_0<=RULE_DECIMAL)||LA50_0==14||LA50_0==18||(LA50_0>=20 && LA50_0<=22)||(LA50_0>=31 && LA50_0<=32)||LA50_0==39||(LA50_0>=55 && LA50_0<=56)||LA50_0==60||LA50_0==68||LA50_0==70||(LA50_0>=74 && LA50_0<=75)||(LA50_0>=78 && LA50_0<=87)||LA50_0==89) ) {s = 5;}
+                        else if ( ((LA52_0>=RULE_STRING && LA52_0<=RULE_DECIMAL)||LA52_0==14||LA52_0==18||(LA52_0>=22 && LA52_0<=24)||(LA52_0>=33 && LA52_0<=34)||LA52_0==41||(LA52_0>=57 && LA52_0<=58)||LA52_0==62||LA52_0==70||LA52_0==72||(LA52_0>=76 && LA52_0<=77)||(LA52_0>=80 && LA52_0<=89)||LA52_0==91) ) {s = 5;}
 
-                        else if ( (LA50_0==29) ) {s = 35;}
+                        else if ( (LA52_0==31) ) {s = 35;}
 
                          
-                        input.seek(index50_0);
+                        input.seek(index52_0);
                         if ( s>=0 ) return s;
                         break;
                     case 1 : 
-                        int LA50_1 = input.LA(1);
+                        int LA52_1 = input.LA(1);
 
                          
-                        int index50_1 = input.index();
+                        int index52_1 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred23_InternalSignalDSL()) ) {s = 4;}
@@ -24164,14 +24373,14 @@
                         else if ( (true) ) {s = 5;}
 
                          
-                        input.seek(index50_1);
+                        input.seek(index52_1);
                         if ( s>=0 ) return s;
                         break;
                     case 2 : 
-                        int LA50_2 = input.LA(1);
+                        int LA52_2 = input.LA(1);
 
                          
-                        int index50_2 = input.index();
+                        int index52_2 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred23_InternalSignalDSL()) ) {s = 4;}
@@ -24179,19 +24388,19 @@
                         else if ( (true) ) {s = 5;}
 
                          
-                        input.seek(index50_2);
+                        input.seek(index52_2);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 50, _s, input);
+                new NoViableAltException(getDescription(), 52, _s, input);
             error(nvae);
             throw nvae;
         }
     }
     static final String[] dfa_51s = {
-            "\5\2\5\uffff\2\2\2\uffff\1\2\1\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\2\uffff\1\2\3\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",
             "",
             "",
@@ -24272,11 +24481,11 @@
     };
     static final short[][] dfa_51 = unpackEncodedStringArray(dfa_51s);
 
-    class DFA52 extends DFA {
+    class DFA54 extends DFA {
 
-        public DFA52(BaseRecognizer recognizer) {
+        public DFA54(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 52;
+            this.decisionNumber = 54;
             this.eot = dfa_39;
             this.eof = dfa_40;
             this.min = dfa_41;
@@ -24286,17 +24495,17 @@
             this.transition = dfa_51;
         }
         public String getDescription() {
-            return "3147:5: ( ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure ) )?";
+            return "3246: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 LA52_1 = input.LA(1);
+                        int LA54_1 = input.LA(1);
 
                          
-                        int index52_1 = input.index();
+                        int index54_1 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred24_InternalSignalDSL()) ) {s = 77;}
@@ -24304,24 +24513,24 @@
                         else if ( (true) ) {s = 2;}
 
                          
-                        input.seek(index52_1);
+                        input.seek(index54_1);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 52, _s, input);
+                new NoViableAltException(getDescription(), 54, _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\131\26\uffff\1\0\10\uffff";
+    static final String dfa_54s = "\1\133\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\5\4\14\5\uffff\1\2\3\uffff\1\27\1\uffff\3\5\4\uffff\1\35\3\uffff\2\14\6\uffff\1\5\34\uffff\1\26\1\uffff\1\3\3\uffff\1\30\1\31\2\uffff\2\5\1\1\4\14\1\32\1\33\1\34\1\uffff\1\4",
+            "\1\5\4\14\5\uffff\1\2\3\uffff\1\27\3\uffff\3\5\4\uffff\1\35\3\uffff\2\14\6\uffff\1\5\34\uffff\1\26\1\uffff\1\3\3\uffff\1\30\1\31\2\uffff\2\5\1\1\4\14\1\32\1\33\1\34\1\uffff\1\4",
             "",
             "",
             "",
@@ -24362,11 +24571,11 @@
     static final short[] dfa_56 = DFA.unpackEncodedString(dfa_56s);
     static final short[][] dfa_57 = unpackEncodedStringArray(dfa_57s);
 
-    class DFA54 extends DFA {
+    class DFA56 extends DFA {
 
-        public DFA54(BaseRecognizer recognizer) {
+        public DFA56(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 54;
+            this.decisionNumber = 56;
             this.eot = dfa_52;
             this.eof = dfa_52;
             this.min = dfa_53;
@@ -24376,56 +24585,56 @@
             this.transition = dfa_57;
         }
         public String getDescription() {
-            return "3192: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 "3291: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 LA54_0 = input.LA(1);
+                        int LA56_0 = input.LA(1);
 
                          
-                        int index54_0 = input.index();
+                        int index56_0 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA54_0==80) ) {s = 1;}
+                        if ( (LA56_0==82) ) {s = 1;}
 
-                        else if ( (LA54_0==14) ) {s = 2;}
+                        else if ( (LA56_0==14) ) {s = 2;}
 
-                        else if ( (LA54_0==70) ) {s = 3;}
+                        else if ( (LA56_0==72) ) {s = 3;}
 
-                        else if ( (LA54_0==89) && (synpred25_InternalSignalDSL())) {s = 4;}
+                        else if ( (LA56_0==91) && (synpred25_InternalSignalDSL())) {s = 4;}
 
-                        else if ( (LA54_0==RULE_ID||(LA54_0>=20 && LA54_0<=22)||LA54_0==39||(LA54_0>=78 && LA54_0<=79)) ) {s = 5;}
+                        else if ( (LA56_0==RULE_ID||(LA56_0>=22 && LA56_0<=24)||LA56_0==41||(LA56_0>=80 && LA56_0<=81)) ) {s = 5;}
 
-                        else if ( ((LA54_0>=RULE_STRING && LA54_0<=RULE_DECIMAL)||(LA54_0>=31 && LA54_0<=32)||(LA54_0>=81 && LA54_0<=84)) ) {s = 12;}
+                        else if ( ((LA56_0>=RULE_STRING && LA56_0<=RULE_DECIMAL)||(LA56_0>=33 && LA56_0<=34)||(LA56_0>=83 && LA56_0<=86)) ) {s = 12;}
 
-                        else if ( (LA54_0==68) ) {s = 22;}
+                        else if ( (LA56_0==70) ) {s = 22;}
 
-                        else if ( (LA54_0==18) ) {s = 23;}
+                        else if ( (LA56_0==18) ) {s = 23;}
 
-                        else if ( (LA54_0==74) ) {s = 24;}
+                        else if ( (LA56_0==76) ) {s = 24;}
 
-                        else if ( (LA54_0==75) ) {s = 25;}
+                        else if ( (LA56_0==77) ) {s = 25;}
 
-                        else if ( (LA54_0==85) ) {s = 26;}
+                        else if ( (LA56_0==87) ) {s = 26;}
 
-                        else if ( (LA54_0==86) ) {s = 27;}
+                        else if ( (LA56_0==88) ) {s = 27;}
 
-                        else if ( (LA54_0==87) ) {s = 28;}
+                        else if ( (LA56_0==89) ) {s = 28;}
 
-                        else if ( (LA54_0==27) ) {s = 29;}
+                        else if ( (LA56_0==29) ) {s = 29;}
 
                          
-                        input.seek(index54_0);
+                        input.seek(index56_0);
                         if ( s>=0 ) return s;
                         break;
                     case 1 : 
-                        int LA54_23 = input.LA(1);
+                        int LA56_23 = input.LA(1);
 
                          
-                        int index54_23 = input.index();
+                        int index56_23 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred26_InternalSignalDSL()) ) {s = 30;}
@@ -24433,24 +24642,24 @@
                         else if ( (true) ) {s = 31;}
 
                          
-                        input.seek(index54_23);
+                        input.seek(index56_23);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 54, _s, input);
+                new NoViableAltException(getDescription(), 56, _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\131\2\0\43\uffff";
+    static final String dfa_60s = "\1\133\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\1\4\5\5\uffff\1\5\3\uffff\1\5\1\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\3\uffff\16\5\1\uffff\1\5",
+            "\1\1\4\5\5\uffff\1\5\3\uffff\1\5\3\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\3\uffff\16\5\1\uffff\1\5",
             "\1\uffff",
             "\1\uffff",
             "",
@@ -24497,11 +24706,11 @@
     static final short[] dfa_62 = DFA.unpackEncodedString(dfa_62s);
     static final short[][] dfa_63 = unpackEncodedStringArray(dfa_63s);
 
-    class DFA63 extends DFA {
+    class DFA65 extends DFA {
 
-        public DFA63(BaseRecognizer recognizer) {
+        public DFA65(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 63;
+            this.decisionNumber = 65;
             this.eot = dfa_58;
             this.eof = dfa_58;
             this.min = dfa_59;
@@ -24511,38 +24720,38 @@
             this.transition = dfa_63;
         }
         public String getDescription() {
-            return "3684:3: ( ( ( ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( ( ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_5_0= '|' ) ) ) )?";
+            return "3783: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 LA63_0 = input.LA(1);
+                        int LA65_0 = input.LA(1);
 
                          
-                        int index63_0 = input.index();
+                        int index65_0 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA63_0==RULE_ID) ) {s = 1;}
+                        if ( (LA65_0==RULE_ID) ) {s = 1;}
 
-                        else if ( (LA63_0==27) ) {s = 2;}
+                        else if ( (LA65_0==29) ) {s = 2;}
 
-                        else if ( (LA63_0==52) && (synpred29_InternalSignalDSL())) {s = 3;}
+                        else if ( (LA65_0==54) && (synpred29_InternalSignalDSL())) {s = 3;}
 
-                        else if ( (LA63_0==67) && (synpred29_InternalSignalDSL())) {s = 4;}
+                        else if ( (LA65_0==69) && (synpred29_InternalSignalDSL())) {s = 4;}
 
-                        else if ( ((LA63_0>=RULE_STRING && LA63_0<=RULE_DECIMAL)||LA63_0==14||LA63_0==18||(LA63_0>=20 && LA63_0<=22)||(LA63_0>=31 && LA63_0<=33)||LA63_0==39||(LA63_0>=55 && LA63_0<=56)||LA63_0==60||LA63_0==68||LA63_0==70||(LA63_0>=74 && LA63_0<=87)||LA63_0==89) ) {s = 5;}
+                        else if ( ((LA65_0>=RULE_STRING && LA65_0<=RULE_DECIMAL)||LA65_0==14||LA65_0==18||(LA65_0>=22 && LA65_0<=24)||(LA65_0>=33 && LA65_0<=35)||LA65_0==41||(LA65_0>=57 && LA65_0<=58)||LA65_0==62||LA65_0==70||LA65_0==72||(LA65_0>=76 && LA65_0<=89)||LA65_0==91) ) {s = 5;}
 
                          
-                        input.seek(index63_0);
+                        input.seek(index65_0);
                         if ( s>=0 ) return s;
                         break;
                     case 1 : 
-                        int LA63_1 = input.LA(1);
+                        int LA65_1 = input.LA(1);
 
                          
-                        int index63_1 = input.index();
+                        int index65_1 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred29_InternalSignalDSL()) ) {s = 4;}
@@ -24550,14 +24759,14 @@
                         else if ( (true) ) {s = 5;}
 
                          
-                        input.seek(index63_1);
+                        input.seek(index65_1);
                         if ( s>=0 ) return s;
                         break;
                     case 2 : 
-                        int LA63_2 = input.LA(1);
+                        int LA65_2 = input.LA(1);
 
                          
-                        int index63_2 = input.index();
+                        int index65_2 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred29_InternalSignalDSL()) ) {s = 4;}
@@ -24565,19 +24774,19 @@
                         else if ( (true) ) {s = 5;}
 
                          
-                        input.seek(index63_2);
+                        input.seek(index65_2);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 63, _s, input);
+                new NoViableAltException(getDescription(), 65, _s, input);
             error(nvae);
             throw nvae;
         }
     }
     static final String[] dfa_64s = {
-            "\5\2\5\uffff\1\2\3\uffff\1\2\1\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\3\uffff\2\2\2\uffff\12\2\1\uffff\1\2",
+            "\5\2\5\uffff\1\2\3\uffff\1\2\3\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\3\uffff\2\2\2\uffff\12\2\1\uffff\1\2",
             "\1\uffff",
             "",
             "",
@@ -24615,11 +24824,11 @@
     };
     static final short[][] dfa_64 = unpackEncodedStringArray(dfa_64s);
 
-    class DFA70 extends DFA {
+    class DFA72 extends DFA {
 
-        public DFA70(BaseRecognizer recognizer) {
+        public DFA72(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 70;
+            this.decisionNumber = 72;
             this.eot = dfa_14;
             this.eof = dfa_14;
             this.min = dfa_15;
@@ -24629,17 +24838,17 @@
             this.transition = dfa_64;
         }
         public String getDescription() {
-            return "4150: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 "4249: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 LA70_1 = input.LA(1);
+                        int LA72_1 = input.LA(1);
 
                          
-                        int index70_1 = input.index();
+                        int index72_1 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred32_InternalSignalDSL()) ) {s = 34;}
@@ -24647,24 +24856,24 @@
                         else if ( (true) ) {s = 2;}
 
                          
-                        input.seek(index70_1);
+                        input.seek(index72_1);
                         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(), 72, _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\131\2\0\37\uffff";
+    static final String dfa_67s = "\1\133\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\1\4\4\5\uffff\1\4\3\uffff\1\4\1\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\3\uffff\2\4\2\uffff\12\4\1\uffff\1\4",
+            "\1\1\4\4\5\uffff\1\4\3\uffff\1\4\3\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\3\uffff\2\4\2\uffff\12\4\1\uffff\1\4",
             "\1\uffff",
             "\1\uffff",
             "",
@@ -24707,11 +24916,11 @@
     static final short[] dfa_69 = DFA.unpackEncodedString(dfa_69s);
     static final short[][] dfa_70 = unpackEncodedStringArray(dfa_70s);
 
-    class DFA69 extends DFA {
+    class DFA71 extends DFA {
 
-        public DFA69(BaseRecognizer recognizer) {
+        public DFA71(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 69;
+            this.decisionNumber = 71;
             this.eot = dfa_65;
             this.eof = dfa_65;
             this.min = dfa_66;
@@ -24721,36 +24930,36 @@
             this.transition = dfa_70;
         }
         public String getDescription() {
-            return "4219:5: ( ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' ) )?";
+            return "4318: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 LA69_0 = input.LA(1);
+                        int LA71_0 = input.LA(1);
 
                          
-                        int index69_0 = input.index();
+                        int index71_0 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA69_0==RULE_ID) ) {s = 1;}
+                        if ( (LA71_0==RULE_ID) ) {s = 1;}
 
-                        else if ( (LA69_0==27) ) {s = 2;}
+                        else if ( (LA71_0==29) ) {s = 2;}
 
-                        else if ( (LA69_0==52) && (synpred33_InternalSignalDSL())) {s = 3;}
+                        else if ( (LA71_0==54) && (synpred33_InternalSignalDSL())) {s = 3;}
 
-                        else if ( ((LA69_0>=RULE_STRING && LA69_0<=RULE_DECIMAL)||LA69_0==14||LA69_0==18||(LA69_0>=20 && LA69_0<=22)||(LA69_0>=31 && LA69_0<=32)||LA69_0==39||(LA69_0>=55 && LA69_0<=56)||LA69_0==60||LA69_0==68||LA69_0==70||(LA69_0>=74 && LA69_0<=75)||(LA69_0>=78 && LA69_0<=87)||LA69_0==89) ) {s = 4;}
+                        else if ( ((LA71_0>=RULE_STRING && LA71_0<=RULE_DECIMAL)||LA71_0==14||LA71_0==18||(LA71_0>=22 && LA71_0<=24)||(LA71_0>=33 && LA71_0<=34)||LA71_0==41||(LA71_0>=57 && LA71_0<=58)||LA71_0==62||LA71_0==70||LA71_0==72||(LA71_0>=76 && LA71_0<=77)||(LA71_0>=80 && LA71_0<=89)||LA71_0==91) ) {s = 4;}
 
                          
-                        input.seek(index69_0);
+                        input.seek(index71_0);
                         if ( s>=0 ) return s;
                         break;
                     case 1 : 
-                        int LA69_1 = input.LA(1);
+                        int LA71_1 = input.LA(1);
 
                          
-                        int index69_1 = input.index();
+                        int index71_1 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred33_InternalSignalDSL()) ) {s = 3;}
@@ -24758,14 +24967,14 @@
                         else if ( (true) ) {s = 4;}
 
                          
-                        input.seek(index69_1);
+                        input.seek(index71_1);
                         if ( s>=0 ) return s;
                         break;
                     case 2 : 
-                        int LA69_2 = input.LA(1);
+                        int LA71_2 = input.LA(1);
 
                          
-                        int index69_2 = input.index();
+                        int index71_2 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred33_InternalSignalDSL()) ) {s = 3;}
@@ -24773,23 +24982,23 @@
                         else if ( (true) ) {s = 4;}
 
                          
-                        input.seek(index69_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(), 69, _s, input);
+                new NoViableAltException(getDescription(), 71, _s, input);
             error(nvae);
             throw nvae;
         }
     }
 
-    class DFA92 extends DFA {
+    class DFA94 extends DFA {
 
-        public DFA92(BaseRecognizer recognizer) {
+        public DFA94(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 92;
+            this.decisionNumber = 94;
             this.eot = dfa_39;
             this.eof = dfa_40;
             this.min = dfa_41;
@@ -24799,17 +25008,17 @@
             this.transition = dfa_45;
         }
         public String getDescription() {
-            return "5348: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 "5447: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 LA92_1 = input.LA(1);
+                        int LA94_1 = input.LA(1);
 
                          
-                        int index92_1 = input.index();
+                        int index94_1 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred36_InternalSignalDSL()) ) {s = 77;}
@@ -24817,95 +25026,13 @@
                         else if ( (true) ) {s = 2;}
 
                          
-                        input.seek(index92_1);
+                        input.seek(index94_1);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 92, _s, input);
-            error(nvae);
-            throw nvae;
-        }
-    }
-
-    class DFA91 extends DFA {
-
-        public DFA91(BaseRecognizer recognizer) {
-            this.recognizer = recognizer;
-            this.decisionNumber = 91;
-            this.eot = dfa_8;
-            this.eof = dfa_8;
-            this.min = dfa_46;
-            this.max = dfa_47;
-            this.accept = dfa_48;
-            this.special = dfa_49;
-            this.transition = dfa_50;
-        }
-        public String getDescription() {
-            return "5367: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 LA91_0 = input.LA(1);
-
-                         
-                        int index91_0 = input.index();
-                        input.rewind();
-                        s = -1;
-                        if ( (LA91_0==RULE_ID) ) {s = 1;}
-
-                        else if ( (LA91_0==27) ) {s = 2;}
-
-                        else if ( (LA91_0==52) && (synpred37_InternalSignalDSL())) {s = 3;}
-
-                        else if ( (LA91_0==67) && (synpred37_InternalSignalDSL())) {s = 4;}
-
-                        else if ( ((LA91_0>=RULE_STRING && LA91_0<=RULE_DECIMAL)||LA91_0==14||LA91_0==18||(LA91_0>=20 && LA91_0<=22)||(LA91_0>=31 && LA91_0<=32)||LA91_0==39||(LA91_0>=55 && LA91_0<=56)||LA91_0==60||LA91_0==68||LA91_0==70||(LA91_0>=74 && LA91_0<=75)||(LA91_0>=78 && LA91_0<=87)||LA91_0==89) ) {s = 5;}
-
-                        else if ( (LA91_0==29) ) {s = 35;}
-
-                         
-                        input.seek(index91_0);
-                        if ( s>=0 ) return s;
-                        break;
-                    case 1 : 
-                        int LA91_1 = input.LA(1);
-
-                         
-                        int index91_1 = input.index();
-                        input.rewind();
-                        s = -1;
-                        if ( (synpred37_InternalSignalDSL()) ) {s = 4;}
-
-                        else if ( (true) ) {s = 5;}
-
-                         
-                        input.seek(index91_1);
-                        if ( s>=0 ) return s;
-                        break;
-                    case 2 : 
-                        int LA91_2 = input.LA(1);
-
-                         
-                        int index91_2 = input.index();
-                        input.rewind();
-                        s = -1;
-                        if ( (synpred37_InternalSignalDSL()) ) {s = 4;}
-
-                        else if ( (true) ) {s = 5;}
-
-                         
-                        input.seek(index91_2);
-                        if ( s>=0 ) return s;
-                        break;
-            }
-            if (state.backtracking>0) {state.failed=true; return -1;}
-            NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 91, _s, input);
+                new NoViableAltException(getDescription(), 94, _s, input);
             error(nvae);
             throw nvae;
         }
@@ -24916,36 +25043,74 @@
         public DFA93(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
             this.decisionNumber = 93;
-            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_51;
+            this.eot = dfa_8;
+            this.eof = dfa_8;
+            this.min = dfa_46;
+            this.max = dfa_47;
+            this.accept = dfa_48;
+            this.special = dfa_49;
+            this.transition = dfa_50;
         }
         public String getDescription() {
-            return "5465:3: ( ( ( () '[' ) )=> (lv_featureCallArguments_13_0= ruleXClosure ) )?";
+            return "5466: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 LA93_0 = input.LA(1);
+
+                         
+                        int index93_0 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (LA93_0==RULE_ID) ) {s = 1;}
+
+                        else if ( (LA93_0==29) ) {s = 2;}
+
+                        else if ( (LA93_0==54) && (synpred37_InternalSignalDSL())) {s = 3;}
+
+                        else if ( (LA93_0==69) && (synpred37_InternalSignalDSL())) {s = 4;}
+
+                        else if ( ((LA93_0>=RULE_STRING && LA93_0<=RULE_DECIMAL)||LA93_0==14||LA93_0==18||(LA93_0>=22 && LA93_0<=24)||(LA93_0>=33 && LA93_0<=34)||LA93_0==41||(LA93_0>=57 && LA93_0<=58)||LA93_0==62||LA93_0==70||LA93_0==72||(LA93_0>=76 && LA93_0<=77)||(LA93_0>=80 && LA93_0<=89)||LA93_0==91) ) {s = 5;}
+
+                        else if ( (LA93_0==31) ) {s = 35;}
+
+                         
+                        input.seek(index93_0);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 1 : 
                         int LA93_1 = input.LA(1);
 
                          
                         int index93_1 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred38_InternalSignalDSL()) ) {s = 77;}
+                        if ( (synpred37_InternalSignalDSL()) ) {s = 4;}
 
-                        else if ( (true) ) {s = 2;}
+                        else if ( (true) ) {s = 5;}
 
                          
                         input.seek(index93_1);
                         if ( s>=0 ) return s;
                         break;
+                    case 2 : 
+                        int LA93_2 = input.LA(1);
+
+                         
+                        int index93_2 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred37_InternalSignalDSL()) ) {s = 4;}
+
+                        else if ( (true) ) {s = 5;}
+
+                         
+                        input.seek(index93_2);
+                        if ( s>=0 ) return s;
+                        break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
@@ -24954,8 +25119,52 @@
             throw nvae;
         }
     }
+
+    class DFA95 extends DFA {
+
+        public DFA95(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 95;
+            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_51;
+        }
+        public String getDescription() {
+            return "5564: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 LA95_1 = input.LA(1);
+
+                         
+                        int index95_1 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred38_InternalSignalDSL()) ) {s = 77;}
+
+                        else if ( (true) ) {s = 2;}
+
+                         
+                        input.seek(index95_1);
+                        if ( s>=0 ) return s;
+                        break;
+            }
+            if (state.backtracking>0) {state.failed=true; return -1;}
+            NoViableAltException nvae =
+                new NoViableAltException(getDescription(), 95, _s, input);
+            error(nvae);
+            throw nvae;
+        }
+    }
     static final String[] dfa_71s = {
-            "\5\2\5\uffff\2\2\2\uffff\1\2\1\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\2\uffff\1\2\3\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",
             "",
             "",
@@ -25036,11 +25245,11 @@
     };
     static final short[][] dfa_71 = unpackEncodedStringArray(dfa_71s);
 
-    class DFA97 extends DFA {
+    class DFA99 extends DFA {
 
-        public DFA97(BaseRecognizer recognizer) {
+        public DFA99(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 97;
+            this.decisionNumber = 99;
             this.eot = dfa_39;
             this.eof = dfa_40;
             this.min = dfa_41;
@@ -25050,17 +25259,17 @@
             this.transition = dfa_71;
         }
         public String getDescription() {
-            return "5624:3: ( ( ( '<' )=>otherlv_3= '<' ) ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) (otherlv_5= ',' ( (lv_typeArguments_6_0= ruleJvmArgumentTypeReference ) ) )* otherlv_7= '>' )?";
+            return "5723: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 LA97_1 = input.LA(1);
+                        int LA99_1 = input.LA(1);
 
                          
-                        int index97_1 = input.index();
+                        int index99_1 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred39_InternalSignalDSL()) ) {s = 77;}
@@ -25068,135 +25277,9 @@
                         else if ( (true) ) {s = 2;}
 
                          
-                        input.seek(index97_1);
-                        if ( s>=0 ) return s;
-                        break;
-            }
-            if (state.backtracking>0) {state.failed=true; return -1;}
-            NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 97, _s, input);
-            error(nvae);
-            throw nvae;
-        }
-    }
-
-    class DFA100 extends DFA {
-
-        public DFA100(BaseRecognizer recognizer) {
-            this.recognizer = recognizer;
-            this.decisionNumber = 100;
-            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 "5681: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 LA100_1 = input.LA(1);
-
-                         
-                        int index100_1 = input.index();
-                        input.rewind();
-                        s = -1;
-                        if ( (synpred40_InternalSignalDSL()) ) {s = 77;}
-
-                        else if ( (true) ) {s = 2;}
-
-                         
-                        input.seek(index100_1);
-                        if ( s>=0 ) return s;
-                        break;
-            }
-            if (state.backtracking>0) {state.failed=true; return -1;}
-            NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 100, _s, input);
-            error(nvae);
-            throw nvae;
-        }
-    }
-
-    class DFA99 extends DFA {
-
-        public DFA99(BaseRecognizer recognizer) {
-            this.recognizer = recognizer;
-            this.decisionNumber = 99;
-            this.eot = dfa_8;
-            this.eof = dfa_8;
-            this.min = dfa_46;
-            this.max = dfa_47;
-            this.accept = dfa_48;
-            this.special = dfa_49;
-            this.transition = dfa_50;
-        }
-        public String getDescription() {
-            return "5700: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 LA99_0 = input.LA(1);
-
-                         
-                        int index99_0 = input.index();
-                        input.rewind();
-                        s = -1;
-                        if ( (LA99_0==RULE_ID) ) {s = 1;}
-
-                        else if ( (LA99_0==27) ) {s = 2;}
-
-                        else if ( (LA99_0==52) && (synpred41_InternalSignalDSL())) {s = 3;}
-
-                        else if ( (LA99_0==67) && (synpred41_InternalSignalDSL())) {s = 4;}
-
-                        else if ( ((LA99_0>=RULE_STRING && LA99_0<=RULE_DECIMAL)||LA99_0==14||LA99_0==18||(LA99_0>=20 && LA99_0<=22)||(LA99_0>=31 && LA99_0<=32)||LA99_0==39||(LA99_0>=55 && LA99_0<=56)||LA99_0==60||LA99_0==68||LA99_0==70||(LA99_0>=74 && LA99_0<=75)||(LA99_0>=78 && LA99_0<=87)||LA99_0==89) ) {s = 5;}
-
-                        else if ( (LA99_0==29) ) {s = 35;}
-
-                         
-                        input.seek(index99_0);
-                        if ( s>=0 ) return s;
-                        break;
-                    case 1 : 
-                        int LA99_1 = input.LA(1);
-
-                         
-                        int index99_1 = input.index();
-                        input.rewind();
-                        s = -1;
-                        if ( (synpred41_InternalSignalDSL()) ) {s = 4;}
-
-                        else if ( (true) ) {s = 5;}
-
-                         
                         input.seek(index99_1);
                         if ( s>=0 ) return s;
                         break;
-                    case 2 : 
-                        int LA99_2 = input.LA(1);
-
-                         
-                        int index99_2 = input.index();
-                        input.rewind();
-                        s = -1;
-                        if ( (synpred41_InternalSignalDSL()) ) {s = 4;}
-
-                        else if ( (true) ) {s = 5;}
-
-                         
-                        input.seek(index99_2);
-                        if ( s>=0 ) return s;
-                        break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
@@ -25206,41 +25289,123 @@
         }
     }
 
-    class DFA101 extends DFA {
+    class DFA102 extends DFA {
 
-        public DFA101(BaseRecognizer recognizer) {
+        public DFA102(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 101;
+            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_51;
+            this.transition = dfa_45;
         }
         public String getDescription() {
-            return "5798:3: ( ( ( () '[' ) )=> (lv_arguments_14_0= ruleXClosure ) )?";
+            return "5780: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 LA102_1 = input.LA(1);
+
+                         
+                        int index102_1 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred40_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 DFA101 extends DFA {
+
+        public DFA101(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 101;
+            this.eot = dfa_8;
+            this.eof = dfa_8;
+            this.min = dfa_46;
+            this.max = dfa_47;
+            this.accept = dfa_48;
+            this.special = dfa_49;
+            this.transition = dfa_50;
+        }
+        public String getDescription() {
+            return "5799: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 LA101_0 = input.LA(1);
+
+                         
+                        int index101_0 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (LA101_0==RULE_ID) ) {s = 1;}
+
+                        else if ( (LA101_0==29) ) {s = 2;}
+
+                        else if ( (LA101_0==54) && (synpred41_InternalSignalDSL())) {s = 3;}
+
+                        else if ( (LA101_0==69) && (synpred41_InternalSignalDSL())) {s = 4;}
+
+                        else if ( ((LA101_0>=RULE_STRING && LA101_0<=RULE_DECIMAL)||LA101_0==14||LA101_0==18||(LA101_0>=22 && LA101_0<=24)||(LA101_0>=33 && LA101_0<=34)||LA101_0==41||(LA101_0>=57 && LA101_0<=58)||LA101_0==62||LA101_0==70||LA101_0==72||(LA101_0>=76 && LA101_0<=77)||(LA101_0>=80 && LA101_0<=89)||LA101_0==91) ) {s = 5;}
+
+                        else if ( (LA101_0==31) ) {s = 35;}
+
+                         
+                        input.seek(index101_0);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 1 : 
                         int LA101_1 = input.LA(1);
 
                          
                         int index101_1 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred42_InternalSignalDSL()) ) {s = 77;}
+                        if ( (synpred41_InternalSignalDSL()) ) {s = 4;}
 
-                        else if ( (true) ) {s = 2;}
+                        else if ( (true) ) {s = 5;}
 
                          
                         input.seek(index101_1);
                         if ( s>=0 ) return s;
                         break;
+                    case 2 : 
+                        int LA101_2 = input.LA(1);
+
+                         
+                        int index101_2 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred41_InternalSignalDSL()) ) {s = 4;}
+
+                        else if ( (true) ) {s = 5;}
+
+                         
+                        input.seek(index101_2);
+                        if ( s>=0 ) return s;
+                        break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
@@ -25249,13 +25414,57 @@
             throw nvae;
         }
     }
+
+    class DFA103 extends DFA {
+
+        public DFA103(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 103;
+            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_51;
+        }
+        public String getDescription() {
+            return "5897: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 LA103_1 = input.LA(1);
+
+                         
+                        int index103_1 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred42_InternalSignalDSL()) ) {s = 77;}
+
+                        else if ( (true) ) {s = 2;}
+
+                         
+                        input.seek(index103_1);
+                        if ( s>=0 ) return s;
+                        break;
+            }
+            if (state.backtracking>0) {state.failed=true; return -1;}
+            NoViableAltException nvae =
+                new NoViableAltException(getDescription(), 103, _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\132\40\0\55\uffff";
+    static final String dfa_74s = "\1\134\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\1\1\27\1\23\1\24\1\25\5\uffff\1\12\1\41\2\uffff\1\32\1\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\3\41\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\1\1\27\1\23\1\24\1\25\5\uffff\1\12\1\41\2\uffff\1\32\3\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\3\41\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",
@@ -25341,11 +25550,11 @@
     static final short[] dfa_76 = DFA.unpackEncodedString(dfa_76s);
     static final short[][] dfa_77 = unpackEncodedStringArray(dfa_77s);
 
-    class DFA104 extends DFA {
+    class DFA106 extends DFA {
 
-        public DFA104(BaseRecognizer recognizer) {
+        public DFA106(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 104;
+            this.decisionNumber = 106;
             this.eot = dfa_39;
             this.eof = dfa_72;
             this.min = dfa_73;
@@ -25355,17 +25564,17 @@
             this.transition = dfa_77;
         }
         public String getDescription() {
-            return "6141: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 "6240: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 LA104_1 = input.LA(1);
+                        int LA106_1 = input.LA(1);
 
                          
-                        int index104_1 = input.index();
+                        int index106_1 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred43_InternalSignalDSL()) ) {s = 77;}
@@ -25373,14 +25582,14 @@
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index104_1);
+                        input.seek(index106_1);
                         if ( s>=0 ) return s;
                         break;
                     case 1 : 
-                        int LA104_2 = input.LA(1);
+                        int LA106_2 = input.LA(1);
 
                          
-                        int index104_2 = input.index();
+                        int index106_2 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred43_InternalSignalDSL()) ) {s = 77;}
@@ -25388,14 +25597,14 @@
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index104_2);
+                        input.seek(index106_2);
                         if ( s>=0 ) return s;
                         break;
                     case 2 : 
-                        int LA104_3 = input.LA(1);
+                        int LA106_3 = input.LA(1);
 
                          
-                        int index104_3 = input.index();
+                        int index106_3 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred43_InternalSignalDSL()) ) {s = 77;}
@@ -25403,14 +25612,14 @@
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index104_3);
+                        input.seek(index106_3);
                         if ( s>=0 ) return s;
                         break;
                     case 3 : 
-                        int LA104_4 = input.LA(1);
+                        int LA106_4 = input.LA(1);
 
                          
-                        int index104_4 = input.index();
+                        int index106_4 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred43_InternalSignalDSL()) ) {s = 77;}
@@ -25418,14 +25627,14 @@
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index104_4);
+                        input.seek(index106_4);
                         if ( s>=0 ) return s;
                         break;
                     case 4 : 
-                        int LA104_5 = input.LA(1);
+                        int LA106_5 = input.LA(1);
 
                          
-                        int index104_5 = input.index();
+                        int index106_5 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred43_InternalSignalDSL()) ) {s = 77;}
@@ -25433,14 +25642,14 @@
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index104_5);
+                        input.seek(index106_5);
                         if ( s>=0 ) return s;
                         break;
                     case 5 : 
-                        int LA104_6 = input.LA(1);
+                        int LA106_6 = input.LA(1);
 
                          
-                        int index104_6 = input.index();
+                        int index106_6 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred43_InternalSignalDSL()) ) {s = 77;}
@@ -25448,14 +25657,14 @@
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index104_6);
+                        input.seek(index106_6);
                         if ( s>=0 ) return s;
                         break;
                     case 6 : 
-                        int LA104_7 = input.LA(1);
+                        int LA106_7 = input.LA(1);
 
                          
-                        int index104_7 = input.index();
+                        int index106_7 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred43_InternalSignalDSL()) ) {s = 77;}
@@ -25463,14 +25672,14 @@
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index104_7);
+                        input.seek(index106_7);
                         if ( s>=0 ) return s;
                         break;
                     case 7 : 
-                        int LA104_8 = input.LA(1);
+                        int LA106_8 = input.LA(1);
 
                          
-                        int index104_8 = input.index();
+                        int index106_8 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred43_InternalSignalDSL()) ) {s = 77;}
@@ -25478,14 +25687,14 @@
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index104_8);
+                        input.seek(index106_8);
                         if ( s>=0 ) return s;
                         break;
                     case 8 : 
-                        int LA104_9 = input.LA(1);
+                        int LA106_9 = input.LA(1);
 
                          
-                        int index104_9 = input.index();
+                        int index106_9 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred43_InternalSignalDSL()) ) {s = 77;}
@@ -25493,14 +25702,14 @@
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index104_9);
+                        input.seek(index106_9);
                         if ( s>=0 ) return s;
                         break;
                     case 9 : 
-                        int LA104_10 = input.LA(1);
+                        int LA106_10 = input.LA(1);
 
                          
-                        int index104_10 = input.index();
+                        int index106_10 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred43_InternalSignalDSL()) ) {s = 77;}
@@ -25508,14 +25717,14 @@
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index104_10);
+                        input.seek(index106_10);
                         if ( s>=0 ) return s;
                         break;
                     case 10 : 
-                        int LA104_11 = input.LA(1);
+                        int LA106_11 = input.LA(1);
 
                          
-                        int index104_11 = input.index();
+                        int index106_11 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred43_InternalSignalDSL()) ) {s = 77;}
@@ -25523,14 +25732,14 @@
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index104_11);
+                        input.seek(index106_11);
                         if ( s>=0 ) return s;
                         break;
                     case 11 : 
-                        int LA104_12 = input.LA(1);
+                        int LA106_12 = input.LA(1);
 
                          
-                        int index104_12 = input.index();
+                        int index106_12 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred43_InternalSignalDSL()) ) {s = 77;}
@@ -25538,14 +25747,14 @@
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index104_12);
+                        input.seek(index106_12);
                         if ( s>=0 ) return s;
                         break;
                     case 12 : 
-                        int LA104_13 = input.LA(1);
+                        int LA106_13 = input.LA(1);
 
                          
-                        int index104_13 = input.index();
+                        int index106_13 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred43_InternalSignalDSL()) ) {s = 77;}
@@ -25553,14 +25762,14 @@
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index104_13);
+                        input.seek(index106_13);
                         if ( s>=0 ) return s;
                         break;
                     case 13 : 
-                        int LA104_14 = input.LA(1);
+                        int LA106_14 = input.LA(1);
 
                          
-                        int index104_14 = input.index();
+                        int index106_14 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred43_InternalSignalDSL()) ) {s = 77;}
@@ -25568,14 +25777,14 @@
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index104_14);
+                        input.seek(index106_14);
                         if ( s>=0 ) return s;
                         break;
                     case 14 : 
-                        int LA104_15 = input.LA(1);
+                        int LA106_15 = input.LA(1);
 
                          
-                        int index104_15 = input.index();
+                        int index106_15 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred43_InternalSignalDSL()) ) {s = 77;}
@@ -25583,14 +25792,14 @@
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index104_15);
+                        input.seek(index106_15);
                         if ( s>=0 ) return s;
                         break;
                     case 15 : 
-                        int LA104_16 = input.LA(1);
+                        int LA106_16 = input.LA(1);
 
                          
-                        int index104_16 = input.index();
+                        int index106_16 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred43_InternalSignalDSL()) ) {s = 77;}
@@ -25598,14 +25807,14 @@
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index104_16);
+                        input.seek(index106_16);
                         if ( s>=0 ) return s;
                         break;
                     case 16 : 
-                        int LA104_17 = input.LA(1);
+                        int LA106_17 = input.LA(1);
 
                          
-                        int index104_17 = input.index();
+                        int index106_17 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred43_InternalSignalDSL()) ) {s = 77;}
@@ -25613,14 +25822,14 @@
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index104_17);
+                        input.seek(index106_17);
                         if ( s>=0 ) return s;
                         break;
                     case 17 : 
-                        int LA104_18 = input.LA(1);
+                        int LA106_18 = input.LA(1);
 
                          
-                        int index104_18 = input.index();
+                        int index106_18 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred43_InternalSignalDSL()) ) {s = 77;}
@@ -25628,14 +25837,14 @@
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index104_18);
+                        input.seek(index106_18);
                         if ( s>=0 ) return s;
                         break;
                     case 18 : 
-                        int LA104_19 = input.LA(1);
+                        int LA106_19 = input.LA(1);
 
                          
-                        int index104_19 = input.index();
+                        int index106_19 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred43_InternalSignalDSL()) ) {s = 77;}
@@ -25643,14 +25852,14 @@
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index104_19);
+                        input.seek(index106_19);
                         if ( s>=0 ) return s;
                         break;
                     case 19 : 
-                        int LA104_20 = input.LA(1);
+                        int LA106_20 = input.LA(1);
 
                          
-                        int index104_20 = input.index();
+                        int index106_20 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred43_InternalSignalDSL()) ) {s = 77;}
@@ -25658,14 +25867,14 @@
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index104_20);
+                        input.seek(index106_20);
                         if ( s>=0 ) return s;
                         break;
                     case 20 : 
-                        int LA104_21 = input.LA(1);
+                        int LA106_21 = input.LA(1);
 
                          
-                        int index104_21 = input.index();
+                        int index106_21 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred43_InternalSignalDSL()) ) {s = 77;}
@@ -25673,14 +25882,14 @@
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index104_21);
+                        input.seek(index106_21);
                         if ( s>=0 ) return s;
                         break;
                     case 21 : 
-                        int LA104_22 = input.LA(1);
+                        int LA106_22 = input.LA(1);
 
                          
-                        int index104_22 = input.index();
+                        int index106_22 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred43_InternalSignalDSL()) ) {s = 77;}
@@ -25688,14 +25897,14 @@
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index104_22);
+                        input.seek(index106_22);
                         if ( s>=0 ) return s;
                         break;
                     case 22 : 
-                        int LA104_23 = input.LA(1);
+                        int LA106_23 = input.LA(1);
 
                          
-                        int index104_23 = input.index();
+                        int index106_23 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred43_InternalSignalDSL()) ) {s = 77;}
@@ -25703,14 +25912,14 @@
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index104_23);
+                        input.seek(index106_23);
                         if ( s>=0 ) return s;
                         break;
                     case 23 : 
-                        int LA104_24 = input.LA(1);
+                        int LA106_24 = input.LA(1);
 
                          
-                        int index104_24 = input.index();
+                        int index106_24 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred43_InternalSignalDSL()) ) {s = 77;}
@@ -25718,14 +25927,14 @@
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index104_24);
+                        input.seek(index106_24);
                         if ( s>=0 ) return s;
                         break;
                     case 24 : 
-                        int LA104_25 = input.LA(1);
+                        int LA106_25 = input.LA(1);
 
                          
-                        int index104_25 = input.index();
+                        int index106_25 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred43_InternalSignalDSL()) ) {s = 77;}
@@ -25733,14 +25942,14 @@
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index104_25);
+                        input.seek(index106_25);
                         if ( s>=0 ) return s;
                         break;
                     case 25 : 
-                        int LA104_26 = input.LA(1);
+                        int LA106_26 = input.LA(1);
 
                          
-                        int index104_26 = input.index();
+                        int index106_26 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred43_InternalSignalDSL()) ) {s = 77;}
@@ -25748,14 +25957,14 @@
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index104_26);
+                        input.seek(index106_26);
                         if ( s>=0 ) return s;
                         break;
                     case 26 : 
-                        int LA104_27 = input.LA(1);
+                        int LA106_27 = input.LA(1);
 
                          
-                        int index104_27 = input.index();
+                        int index106_27 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred43_InternalSignalDSL()) ) {s = 77;}
@@ -25763,14 +25972,14 @@
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index104_27);
+                        input.seek(index106_27);
                         if ( s>=0 ) return s;
                         break;
                     case 27 : 
-                        int LA104_28 = input.LA(1);
+                        int LA106_28 = input.LA(1);
 
                          
-                        int index104_28 = input.index();
+                        int index106_28 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred43_InternalSignalDSL()) ) {s = 77;}
@@ -25778,14 +25987,14 @@
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index104_28);
+                        input.seek(index106_28);
                         if ( s>=0 ) return s;
                         break;
                     case 28 : 
-                        int LA104_29 = input.LA(1);
+                        int LA106_29 = input.LA(1);
 
                          
-                        int index104_29 = input.index();
+                        int index106_29 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred43_InternalSignalDSL()) ) {s = 77;}
@@ -25793,14 +26002,14 @@
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index104_29);
+                        input.seek(index106_29);
                         if ( s>=0 ) return s;
                         break;
                     case 29 : 
-                        int LA104_30 = input.LA(1);
+                        int LA106_30 = input.LA(1);
 
                          
-                        int index104_30 = input.index();
+                        int index106_30 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred43_InternalSignalDSL()) ) {s = 77;}
@@ -25808,14 +26017,14 @@
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index104_30);
+                        input.seek(index106_30);
                         if ( s>=0 ) return s;
                         break;
                     case 30 : 
-                        int LA104_31 = input.LA(1);
+                        int LA106_31 = input.LA(1);
 
                          
-                        int index104_31 = input.index();
+                        int index106_31 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred43_InternalSignalDSL()) ) {s = 77;}
@@ -25823,14 +26032,14 @@
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index104_31);
+                        input.seek(index106_31);
                         if ( s>=0 ) return s;
                         break;
                     case 31 : 
-                        int LA104_32 = input.LA(1);
+                        int LA106_32 = input.LA(1);
 
                          
-                        int index104_32 = input.index();
+                        int index106_32 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred43_InternalSignalDSL()) ) {s = 77;}
@@ -25838,13 +26047,13 @@
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index104_32);
+                        input.seek(index106_32);
                         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(), 106, _s, input);
             error(nvae);
             throw nvae;
         }
@@ -25852,11 +26061,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\134\1\0\115\uffff";
+    static final String dfa_81s = "\1\136\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\2\uffff\1\2\1\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\2\uffff\1\2\3\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",
             "",
             "",
@@ -25945,6 +26154,50 @@
     static final short[] dfa_83 = DFA.unpackEncodedString(dfa_83s);
     static final short[][] dfa_84 = unpackEncodedStringArray(dfa_84s);
 
+    class DFA124 extends DFA {
+
+        public DFA124(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 124;
+            this.eot = dfa_78;
+            this.eof = dfa_79;
+            this.min = dfa_80;
+            this.max = dfa_81;
+            this.accept = dfa_82;
+            this.special = dfa_83;
+            this.transition = dfa_84;
+        }
+        public String getDescription() {
+            return "6898: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 LA124_1 = input.LA(1);
+
+                         
+                        int index124_1 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred50_InternalSignalDSL()) ) {s = 78;}
+
+                        else if ( (true) ) {s = 2;}
+
+                         
+                        input.seek(index124_1);
+                        if ( s>=0 ) return s;
+                        break;
+            }
+            if (state.backtracking>0) {state.failed=true; return -1;}
+            NoViableAltException nvae =
+                new NoViableAltException(getDescription(), 124, _s, input);
+            error(nvae);
+            throw nvae;
+        }
+    }
+
     class DFA122 extends DFA {
 
         public DFA122(BaseRecognizer recognizer) {
@@ -25959,7 +26212,7 @@
             this.transition = dfa_84;
         }
         public String getDescription() {
-            return "6799: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 "6992: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;
@@ -25972,7 +26225,7 @@
                         int index122_1 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred50_InternalSignalDSL()) ) {s = 78;}
+                        if ( (synpred52_InternalSignalDSL()) ) {s = 78;}
 
                         else if ( (true) ) {s = 2;}
 
@@ -25988,50 +26241,6 @@
             throw nvae;
         }
     }
-
-    class DFA120 extends DFA {
-
-        public DFA120(BaseRecognizer recognizer) {
-            this.recognizer = recognizer;
-            this.decisionNumber = 120;
-            this.eot = dfa_78;
-            this.eof = dfa_79;
-            this.min = dfa_80;
-            this.max = dfa_81;
-            this.accept = dfa_82;
-            this.special = dfa_83;
-            this.transition = dfa_84;
-        }
-        public String getDescription() {
-            return "6893: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 LA120_1 = input.LA(1);
-
-                         
-                        int index120_1 = input.index();
-                        input.rewind();
-                        s = -1;
-                        if ( (synpred52_InternalSignalDSL()) ) {s = 78;}
-
-                        else if ( (true) ) {s = 2;}
-
-                         
-                        input.seek(index120_1);
-                        if ( s>=0 ) return s;
-                        break;
-            }
-            if (state.backtracking>0) {state.failed=true; return -1;}
-            NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 120, _s, input);
-            error(nvae);
-            throw nvae;
-        }
-    }
  
 
     public static final BitSet FOLLOW_1 = new BitSet(new long[]{0x0000000000000000L});
@@ -26039,96 +26248,99 @@
     public static final BitSet FOLLOW_3 = new BitSet(new long[]{0x0000000000002002L});
     public static final BitSet FOLLOW_4 = new BitSet(new long[]{0x0000000000000010L});
     public static final BitSet FOLLOW_5 = new BitSet(new long[]{0x0000000000004000L});
-    public static final BitSet FOLLOW_6 = new BitSet(new long[]{0x0000000000098000L});
-    public static final BitSet FOLLOW_7 = new BitSet(new long[]{0x0000000000088000L});
-    public static final BitSet FOLLOW_8 = new BitSet(new long[]{0x0000000000020000L});
-    public static final BitSet FOLLOW_9 = new BitSet(new long[]{0x0000000000000020L});
-    public static final BitSet FOLLOW_10 = new BitSet(new long[]{0x0000000000040000L});
-    public static final BitSet FOLLOW_11 = new BitSet(new long[]{0x0000000000000000L,0x00000001E0000000L});
-    public static final BitSet FOLLOW_12 = new BitSet(new long[]{0x0000000000000000L,0x00001FE000000000L});
-    public static final BitSet FOLLOW_13 = new BitSet(new long[]{0x0000000000000002L,0x0000001E00000000L});
-    public static final BitSet FOLLOW_14 = new BitSet(new long[]{0x0000000001200010L});
-    public static final BitSet FOLLOW_15 = new BitSet(new long[]{0x0000000000400010L});
-    public static final BitSet FOLLOW_16 = new BitSet(new long[]{0x0000000000800010L});
-    public static final BitSet FOLLOW_17 = new BitSet(new long[]{0x0000000002000002L});
-    public static final BitSet FOLLOW_18 = new BitSet(new long[]{0x0000000008000002L});
-    public static final BitSet FOLLOW_19 = new BitSet(new long[]{0x11800081AC7441F0L,0x0000000002FFCC50L});
-    public static final BitSet FOLLOW_20 = new BitSet(new long[]{0x0000000030000000L});
-    public static final BitSet FOLLOW_21 = new BitSet(new long[]{0x0000000020000000L});
-    public static final BitSet FOLLOW_22 = new BitSet(new long[]{0x0000000040000000L});
-    public static final BitSet FOLLOW_23 = new BitSet(new long[]{0x118000818C7441F0L,0x0000000002FFCC50L});
-    public static final BitSet FOLLOW_24 = new BitSet(new long[]{0x0000000100000000L});
-    public static final BitSet FOLLOW_25 = new BitSet(new long[]{0x118000838C7441F0L,0x0000000002FFCC50L});
-    public static final BitSet FOLLOW_26 = new BitSet(new long[]{0x0000000210000000L});
-    public static final BitSet FOLLOW_27 = new BitSet(new long[]{0x0000000010000002L});
-    public static final BitSet FOLLOW_28 = new BitSet(new long[]{0x000001FC00000002L});
-    public static final BitSet FOLLOW_29 = new BitSet(new long[]{0x0000008000000000L});
-    public static final BitSet FOLLOW_30 = new BitSet(new long[]{0x0000030000000000L});
-    public static final BitSet FOLLOW_31 = new BitSet(new long[]{0x0000020000000000L});
-    public static final BitSet FOLLOW_32 = new BitSet(new long[]{0x0000040000000002L});
-    public static final BitSet FOLLOW_33 = new BitSet(new long[]{0x0000080000000002L});
-    public static final BitSet FOLLOW_34 = new BitSet(new long[]{0x0000F00000000002L});
-    public static final BitSet FOLLOW_35 = new BitSet(new long[]{0x0001038000000002L});
-    public static final BitSet FOLLOW_36 = new BitSet(new long[]{0x0010000008000010L});
-    public static final BitSet FOLLOW_37 = new BitSet(new long[]{0x007E018000000002L});
-    public static final BitSet FOLLOW_38 = new BitSet(new long[]{0x0008000000000000L});
-    public static final BitSet FOLLOW_39 = new BitSet(new long[]{0x0000010000000000L});
-    public static final BitSet FOLLOW_40 = new BitSet(new long[]{0x0010008000000000L});
-    public static final BitSet FOLLOW_41 = new BitSet(new long[]{0x0180000000000002L});
-    public static final BitSet FOLLOW_42 = new BitSet(new long[]{0x0E00000000800002L});
-    public static final BitSet FOLLOW_43 = new BitSet(new long[]{0x2000000000000002L});
-    public static final BitSet FOLLOW_44 = new BitSet(new long[]{0xC000000000000002L});
-    public static final BitSet FOLLOW_45 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000007L});
-    public static final BitSet FOLLOW_46 = new BitSet(new long[]{0x0000000000700010L,0x0000000000004000L});
-    public static final BitSet FOLLOW_47 = new BitSet(new long[]{0x0000008000700010L,0x000000000000C000L});
-    public static final BitSet FOLLOW_48 = new BitSet(new long[]{0x0010000008000010L,0x0000000008000000L});
-    public static final BitSet FOLLOW_49 = new BitSet(new long[]{0x0000010010000000L});
-    public static final BitSet FOLLOW_50 = new BitSet(new long[]{0x0000000108000002L,0x0000000000000007L});
-    public static final BitSet FOLLOW_51 = new BitSet(new long[]{0x11900081AC7441F0L,0x0000000002FFCC58L});
-    public static final BitSet FOLLOW_52 = new BitSet(new long[]{0x0000000100000002L,0x0000000000000007L});
-    public static final BitSet FOLLOW_53 = new BitSet(new long[]{0x118000818C74C1F0L,0x0000000002FFCC50L});
-    public static final BitSet FOLLOW_54 = new BitSet(new long[]{0x0000000010008000L});
-    public static final BitSet FOLLOW_55 = new BitSet(new long[]{0x119000838C7441F0L,0x0000000002FFFC58L});
-    public static final BitSet FOLLOW_56 = new BitSet(new long[]{0x0000000010000000L,0x0000000000000008L});
-    public static final BitSet FOLLOW_57 = new BitSet(new long[]{0x118000838C7441F0L,0x0000000002FFFC50L});
-    public static final BitSet FOLLOW_58 = new BitSet(new long[]{0x0000000200000000L});
-    public static final BitSet FOLLOW_59 = new BitSet(new long[]{0x118000818E7441F2L,0x0000000002FFFC50L});
-    public static final BitSet FOLLOW_60 = new BitSet(new long[]{0x118000818C7441F2L,0x0000000002FFFC50L});
-    public static final BitSet FOLLOW_61 = new BitSet(new long[]{0x0000000008000000L});
-    public static final BitSet FOLLOW_62 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000020L});
-    public static final BitSet FOLLOW_63 = new BitSet(new long[]{0x119000818C7441F0L,0x0000000002FFCC50L});
-    public static final BitSet FOLLOW_64 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000080L});
-    public static final BitSet FOLLOW_65 = new BitSet(new long[]{0x0010000018008010L,0x0000000000000380L});
-    public static final BitSet FOLLOW_66 = new BitSet(new long[]{0x0000000000008000L});
-    public static final BitSet FOLLOW_67 = new BitSet(new long[]{0x0000000010000000L,0x0000000000000280L});
-    public static final BitSet FOLLOW_68 = new BitSet(new long[]{0x0000000010000000L,0x0000000000000080L});
-    public static final BitSet FOLLOW_69 = new BitSet(new long[]{0x118000818E7441F0L,0x0000000002FFFC50L});
-    public static final BitSet FOLLOW_70 = new BitSet(new long[]{0x0000000012000000L});
-    public static final BitSet FOLLOW_71 = new BitSet(new long[]{0x118000818C7441F0L,0x0000000002FFFC50L});
-    public static final BitSet FOLLOW_72 = new BitSet(new long[]{0x118000818E7441F0L,0x0000000002FFCC50L});
-    public static final BitSet FOLLOW_73 = new BitSet(new long[]{0x0000000002000000L});
-    public static final BitSet FOLLOW_74 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000400L});
-    public static final BitSet FOLLOW_75 = new BitSet(new long[]{0x118000818C74C1F0L,0x0000000002FFFC50L});
-    public static final BitSet FOLLOW_76 = new BitSet(new long[]{0x118000818E74C1F0L,0x0000000002FFFC50L});
-    public static final BitSet FOLLOW_77 = new BitSet(new long[]{0x0000000040000002L});
-    public static final BitSet FOLLOW_78 = new BitSet(new long[]{0x0000000108000002L});
-    public static final BitSet FOLLOW_79 = new BitSet(new long[]{0x0000000100000002L});
-    public static final BitSet FOLLOW_80 = new BitSet(new long[]{0x0000008108000002L});
-    public static final BitSet FOLLOW_81 = new BitSet(new long[]{0x0000000120000000L});
-    public static final BitSet FOLLOW_82 = new BitSet(new long[]{0x118000818C7441F2L,0x0000000002FFCC50L});
-    public static final BitSet FOLLOW_83 = new BitSet(new long[]{0x0000000000000000L,0x0000000005000000L});
-    public static final BitSet FOLLOW_84 = new BitSet(new long[]{0x0000000000000002L,0x0000000005000000L});
-    public static final BitSet FOLLOW_85 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000001L});
-    public static final BitSet FOLLOW_86 = new BitSet(new long[]{0x0000000000000180L});
-    public static final BitSet FOLLOW_87 = new BitSet(new long[]{0x0010000028000010L});
-    public static final BitSet FOLLOW_88 = new BitSet(new long[]{0x0010000000000000L});
-    public static final BitSet FOLLOW_89 = new BitSet(new long[]{0x0000008000000002L});
-    public static final BitSet FOLLOW_90 = new BitSet(new long[]{0x0000008000000002L,0x0000000000000001L});
-    public static final BitSet FOLLOW_91 = new BitSet(new long[]{0x0000000000000002L,0x000000000000C000L});
-    public static final BitSet FOLLOW_92 = new BitSet(new long[]{0x0000000000000002L,0x0000000010000000L});
-    public static final BitSet FOLLOW_93 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000001L});
-    public static final BitSet FOLLOW_94 = new BitSet(new long[]{0x0000000000800000L});
-    public static final BitSet FOLLOW_95 = new BitSet(new long[]{0x0000000000100002L});
-    public static final BitSet FOLLOW_96 = new BitSet(new long[]{0x0000000000000012L});
+    public static final BitSet FOLLOW_6 = new BitSet(new long[]{0x0000000000018000L});
+    public static final BitSet FOLLOW_7 = new BitSet(new long[]{0x0000000000020000L});
+    public static final BitSet FOLLOW_8 = new BitSet(new long[]{0x0000000000000020L});
+    public static final BitSet FOLLOW_9 = new BitSet(new long[]{0x0000000000040000L});
+    public static final BitSet FOLLOW_10 = new BitSet(new long[]{0x0000000000000000L,0x0000001E00000000L});
+    public static final BitSet FOLLOW_11 = new BitSet(new long[]{0x0000000000088000L});
+    public static final BitSet FOLLOW_12 = new BitSet(new long[]{0x0000000000000000L,0x000001E000000000L});
+    public static final BitSet FOLLOW_13 = new BitSet(new long[]{0x0000000000200000L,0x0000000180000000L});
+    public static final BitSet FOLLOW_14 = new BitSet(new long[]{0x0000000000100000L});
+    public static final BitSet FOLLOW_15 = new BitSet(new long[]{0x0000000000004000L,0x0000060000000000L});
+    public static final BitSet FOLLOW_16 = new BitSet(new long[]{0x0000000000008000L,0x0000000180000000L});
+    public static final BitSet FOLLOW_17 = new BitSet(new long[]{0x0000000004800010L});
+    public static final BitSet FOLLOW_18 = new BitSet(new long[]{0x0000000001000010L});
+    public static final BitSet FOLLOW_19 = new BitSet(new long[]{0x0000000002000010L});
+    public static final BitSet FOLLOW_20 = new BitSet(new long[]{0x0000000008000002L});
+    public static final BitSet FOLLOW_21 = new BitSet(new long[]{0x0000000020000002L});
+    public static final BitSet FOLLOW_22 = new BitSet(new long[]{0x46000206B1C441F0L,0x000000000BFF3140L});
+    public static final BitSet FOLLOW_23 = new BitSet(new long[]{0x00000000C0000000L});
+    public static final BitSet FOLLOW_24 = new BitSet(new long[]{0x0000000080000000L});
+    public static final BitSet FOLLOW_25 = new BitSet(new long[]{0x0000000100000000L});
+    public static final BitSet FOLLOW_26 = new BitSet(new long[]{0x4600020631C441F0L,0x000000000BFF3140L});
+    public static final BitSet FOLLOW_27 = new BitSet(new long[]{0x0000000400000000L});
+    public static final BitSet FOLLOW_28 = new BitSet(new long[]{0x4600020E31C441F0L,0x000000000BFF3140L});
+    public static final BitSet FOLLOW_29 = new BitSet(new long[]{0x0000000840000000L});
+    public static final BitSet FOLLOW_30 = new BitSet(new long[]{0x0000000040000002L});
+    public static final BitSet FOLLOW_31 = new BitSet(new long[]{0x000007F000000002L});
+    public static final BitSet FOLLOW_32 = new BitSet(new long[]{0x0000020000000000L});
+    public static final BitSet FOLLOW_33 = new BitSet(new long[]{0x00000C0000000000L});
+    public static final BitSet FOLLOW_34 = new BitSet(new long[]{0x0000080000000000L});
+    public static final BitSet FOLLOW_35 = new BitSet(new long[]{0x0000100000000002L});
+    public static final BitSet FOLLOW_36 = new BitSet(new long[]{0x0000200000000002L});
+    public static final BitSet FOLLOW_37 = new BitSet(new long[]{0x0003C00000000002L});
+    public static final BitSet FOLLOW_38 = new BitSet(new long[]{0x00040E0000000002L});
+    public static final BitSet FOLLOW_39 = new BitSet(new long[]{0x0040000020000010L});
+    public static final BitSet FOLLOW_40 = new BitSet(new long[]{0x01F8060000000002L});
+    public static final BitSet FOLLOW_41 = new BitSet(new long[]{0x0020000000000000L});
+    public static final BitSet FOLLOW_42 = new BitSet(new long[]{0x0000040000000000L});
+    public static final BitSet FOLLOW_43 = new BitSet(new long[]{0x0040020000000000L});
+    public static final BitSet FOLLOW_44 = new BitSet(new long[]{0x0600000000000002L});
+    public static final BitSet FOLLOW_45 = new BitSet(new long[]{0x3800000002000002L});
+    public static final BitSet FOLLOW_46 = new BitSet(new long[]{0x8000000000000002L});
+    public static final BitSet FOLLOW_47 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000003L});
+    public static final BitSet FOLLOW_48 = new BitSet(new long[]{0x0000000000000002L,0x000000000000001CL});
+    public static final BitSet FOLLOW_49 = new BitSet(new long[]{0x0000000001C00010L,0x0000000000010000L});
+    public static final BitSet FOLLOW_50 = new BitSet(new long[]{0x0000020001C00010L,0x0000000000030000L});
+    public static final BitSet FOLLOW_51 = new BitSet(new long[]{0x0040000020000010L,0x0000000020000000L});
+    public static final BitSet FOLLOW_52 = new BitSet(new long[]{0x0000040040000000L});
+    public static final BitSet FOLLOW_53 = new BitSet(new long[]{0x0000000420000002L,0x000000000000001CL});
+    public static final BitSet FOLLOW_54 = new BitSet(new long[]{0x46400206B1C441F0L,0x000000000BFF3160L});
+    public static final BitSet FOLLOW_55 = new BitSet(new long[]{0x0000000400000002L,0x000000000000001CL});
+    public static final BitSet FOLLOW_56 = new BitSet(new long[]{0x4600020631C4C1F0L,0x000000000BFF3140L});
+    public static final BitSet FOLLOW_57 = new BitSet(new long[]{0x0000000040008000L});
+    public static final BitSet FOLLOW_58 = new BitSet(new long[]{0x4640020E31C441F0L,0x000000000BFFF160L});
+    public static final BitSet FOLLOW_59 = new BitSet(new long[]{0x0000000040000000L,0x0000000000000020L});
+    public static final BitSet FOLLOW_60 = new BitSet(new long[]{0x4600020E31C441F0L,0x000000000BFFF140L});
+    public static final BitSet FOLLOW_61 = new BitSet(new long[]{0x0000000800000000L});
+    public static final BitSet FOLLOW_62 = new BitSet(new long[]{0x4600020639C441F2L,0x000000000BFFF140L});
+    public static final BitSet FOLLOW_63 = new BitSet(new long[]{0x4600020631C441F2L,0x000000000BFFF140L});
+    public static final BitSet FOLLOW_64 = new BitSet(new long[]{0x0000000020000000L});
+    public static final BitSet FOLLOW_65 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000080L});
+    public static final BitSet FOLLOW_66 = new BitSet(new long[]{0x4640020631C441F0L,0x000000000BFF3140L});
+    public static final BitSet FOLLOW_67 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
+    public static final BitSet FOLLOW_68 = new BitSet(new long[]{0x0040000060008010L,0x0000000000000E00L});
+    public static final BitSet FOLLOW_69 = new BitSet(new long[]{0x0000000000008000L});
+    public static final BitSet FOLLOW_70 = new BitSet(new long[]{0x0000000040000000L,0x0000000000000A00L});
+    public static final BitSet FOLLOW_71 = new BitSet(new long[]{0x0000000040000000L,0x0000000000000200L});
+    public static final BitSet FOLLOW_72 = new BitSet(new long[]{0x4600020639C441F0L,0x000000000BFFF140L});
+    public static final BitSet FOLLOW_73 = new BitSet(new long[]{0x0000000048000000L});
+    public static final BitSet FOLLOW_74 = new BitSet(new long[]{0x4600020631C441F0L,0x000000000BFFF140L});
+    public static final BitSet FOLLOW_75 = new BitSet(new long[]{0x4600020639C441F0L,0x000000000BFF3140L});
+    public static final BitSet FOLLOW_76 = new BitSet(new long[]{0x0000000008000000L});
+    public static final BitSet FOLLOW_77 = new BitSet(new long[]{0x0000000000000000L,0x0000000000001000L});
+    public static final BitSet FOLLOW_78 = new BitSet(new long[]{0x4600020631C4C1F0L,0x000000000BFFF140L});
+    public static final BitSet FOLLOW_79 = new BitSet(new long[]{0x4600020639C4C1F0L,0x000000000BFFF140L});
+    public static final BitSet FOLLOW_80 = new BitSet(new long[]{0x0000000100000002L});
+    public static final BitSet FOLLOW_81 = new BitSet(new long[]{0x0000000420000002L});
+    public static final BitSet FOLLOW_82 = new BitSet(new long[]{0x0000000400000002L});
+    public static final BitSet FOLLOW_83 = new BitSet(new long[]{0x0000020420000002L});
+    public static final BitSet FOLLOW_84 = new BitSet(new long[]{0x0000000480000000L});
+    public static final BitSet FOLLOW_85 = new BitSet(new long[]{0x4600020631C441F2L,0x000000000BFF3140L});
+    public static final BitSet FOLLOW_86 = new BitSet(new long[]{0x0000000000000000L,0x0000000014000000L});
+    public static final BitSet FOLLOW_87 = new BitSet(new long[]{0x0000000000000002L,0x0000000014000000L});
+    public static final BitSet FOLLOW_88 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000004L});
+    public static final BitSet FOLLOW_89 = new BitSet(new long[]{0x0000000000000180L});
+    public static final BitSet FOLLOW_90 = new BitSet(new long[]{0x00400000A0000010L});
+    public static final BitSet FOLLOW_91 = new BitSet(new long[]{0x0040000000000000L});
+    public static final BitSet FOLLOW_92 = new BitSet(new long[]{0x0000020000000002L});
+    public static final BitSet FOLLOW_93 = new BitSet(new long[]{0x0000020000000002L,0x0000000000000004L});
+    public static final BitSet FOLLOW_94 = new BitSet(new long[]{0x0000000000000002L,0x0000000000030000L});
+    public static final BitSet FOLLOW_95 = new BitSet(new long[]{0x0000000000000002L,0x0000000040000000L});
+    public static final BitSet FOLLOW_96 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000004L});
+    public static final BitSet FOLLOW_97 = new BitSet(new long[]{0x0000000002000000L});
+    public static final BitSet FOLLOW_98 = new BitSet(new long[]{0x0000000000400002L});
+    public static final BitSet FOLLOW_99 = new BitSet(new long[]{0x0000000000000012L});
 
 }
\ 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 5ef487e..8b63099 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
@@ -23,14 +23,14 @@
 import org.eclipse.osbp.xtext.oxtype.oxtype.OXImportDeclaration;
 import org.eclipse.osbp.xtext.oxtype.oxtype.OXtypePackage;
 import org.eclipse.osbp.xtext.oxtype.serializer.OXtypeSemanticSequencer;
+import org.eclipse.osbp.xtext.signal.ListTransfer;
 import org.eclipse.osbp.xtext.signal.SignalDSLPackage;
 import org.eclipse.osbp.xtext.signal.SignalDatainterchange;
 import org.eclipse.osbp.xtext.signal.SignalHandler;
-import org.eclipse.osbp.xtext.signal.SignalHandling;
 import org.eclipse.osbp.xtext.signal.SignalModel;
-import org.eclipse.osbp.xtext.signal.SignalNotification;
 import org.eclipse.osbp.xtext.signal.SignalPackage;
 import org.eclipse.osbp.xtext.signal.SignalWatcher;
+import org.eclipse.osbp.xtext.signal.SingleTransfer;
 import org.eclipse.osbp.xtext.signal.services.SignalDSLGrammarAccess;
 import org.eclipse.xtext.Action;
 import org.eclipse.xtext.Parameter;
@@ -106,27 +106,27 @@
 			}
 		else if (epackage == SignalDSLPackage.eINSTANCE)
 			switch (semanticObject.eClass().getClassifierID()) {
+			case SignalDSLPackage.LIST_TRANSFER:
+				sequence_ListTransfer(context, (ListTransfer) semanticObject); 
+				return; 
 			case SignalDSLPackage.SIGNAL_DATAINTERCHANGE:
 				sequence_SignalDatainterchange(context, (SignalDatainterchange) semanticObject); 
 				return; 
 			case SignalDSLPackage.SIGNAL_HANDLER:
 				sequence_SignalHandler(context, (SignalHandler) semanticObject); 
 				return; 
-			case SignalDSLPackage.SIGNAL_HANDLING:
-				sequence_SignalHandling(context, (SignalHandling) semanticObject); 
-				return; 
 			case SignalDSLPackage.SIGNAL_MODEL:
 				sequence_SignalModel(context, (SignalModel) semanticObject); 
 				return; 
-			case SignalDSLPackage.SIGNAL_NOTIFICATION:
-				sequence_SignalNotification(context, (SignalNotification) semanticObject); 
-				return; 
 			case SignalDSLPackage.SIGNAL_PACKAGE:
 				sequence_SignalPackage(context, (SignalPackage) semanticObject); 
 				return; 
 			case SignalDSLPackage.SIGNAL_WATCHER:
 				sequence_SignalWatcher(context, (SignalWatcher) semanticObject); 
 				return; 
+			case SignalDSLPackage.SINGLE_TRANSFER:
+				sequence_SingleTransfer(context, (SingleTransfer) semanticObject); 
+				return; 
 			}
 		else if (epackage == TypesPackage.eINSTANCE)
 			switch (semanticObject.eClass().getClassifierID()) {
@@ -431,19 +431,35 @@
 	
 	/**
 	 * Contexts:
+	 *     DataTransfer returns ListTransfer
+	 *     ListTransfer returns ListTransfer
+	 *
+	 * Constraint:
+	 *     (executiontype=SignalExecutionTypeEnum? interchanges+=SignalDatainterchange*)
+	 */
+	protected void sequence_ListTransfer(ISerializationContext context, ListTransfer semanticObject) {
+		genericSequencer.createSequence(context, semanticObject);
+	}
+	
+	
+	/**
+	 * Contexts:
 	 *     SignalDatainterchange returns SignalDatainterchange
 	 *     SignalProcessor returns SignalDatainterchange
 	 *
 	 * Constraint:
-	 *     dataRef=[DataInterchange|ID]
+	 *     (dataAction=SignalActionEnum dataRef=[DataInterchange|ID])
 	 */
 	protected void sequence_SignalDatainterchange(ISerializationContext context, SignalDatainterchange semanticObject) {
 		if (errorAcceptor != null) {
+			if (transientValues.isValueTransient(semanticObject, SignalDSLPackage.Literals.SIGNAL_DATAINTERCHANGE__DATA_ACTION) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SignalDSLPackage.Literals.SIGNAL_DATAINTERCHANGE__DATA_ACTION));
 			if (transientValues.isValueTransient(semanticObject, SignalDSLPackage.Literals.SIGNAL_DATAINTERCHANGE__DATA_REF) == ValueTransient.YES)
 				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SignalDSLPackage.Literals.SIGNAL_DATAINTERCHANGE__DATA_REF));
 		}
 		SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
-		feeder.accept(grammarAccess.getSignalDatainterchangeAccess().getDataRefDataInterchangeIDTerminalRuleCall_0_1(), semanticObject.eGet(SignalDSLPackage.Literals.SIGNAL_DATAINTERCHANGE__DATA_REF, false));
+		feeder.accept(grammarAccess.getSignalDatainterchangeAccess().getDataActionSignalActionEnumEnumRuleCall_0_0(), semanticObject.getDataAction());
+		feeder.accept(grammarAccess.getSignalDatainterchangeAccess().getDataRefDataInterchangeIDTerminalRuleCall_1_0_1(), semanticObject.eGet(SignalDSLPackage.Literals.SIGNAL_DATAINTERCHANGE__DATA_REF, false));
 		feeder.finish();
 	}
 	
@@ -453,30 +469,24 @@
 	 *     SignalHandler returns SignalHandler
 	 *
 	 * Constraint:
-	 *     (watcher=[SignalWatcher|ID] handler=SignalHandling notification=SignalNotification?)
+	 *     (name=ID actionType=SignalHandlerTypeEnum data=DataTransfer filemask=STRING)
 	 */
 	protected void sequence_SignalHandler(ISerializationContext context, SignalHandler semanticObject) {
-		genericSequencer.createSequence(context, semanticObject);
-	}
-	
-	
-	/**
-	 * Contexts:
-	 *     SignalHandling returns SignalHandling
-	 *
-	 * Constraint:
-	 *     (actionType=SignalHandlerTypeEnum dataRef=[DataInterchange|ID])
-	 */
-	protected void sequence_SignalHandling(ISerializationContext context, SignalHandling semanticObject) {
 		if (errorAcceptor != null) {
-			if (transientValues.isValueTransient(semanticObject, SignalDSLPackage.Literals.SIGNAL_HANDLING__ACTION_TYPE) == ValueTransient.YES)
-				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SignalDSLPackage.Literals.SIGNAL_HANDLING__ACTION_TYPE));
-			if (transientValues.isValueTransient(semanticObject, SignalDSLPackage.Literals.SIGNAL_HANDLING__DATA_REF) == ValueTransient.YES)
-				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SignalDSLPackage.Literals.SIGNAL_HANDLING__DATA_REF));
+			if (transientValues.isValueTransient(semanticObject, SignalDSLPackage.Literals.SIGNAL_HANDLER__NAME) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SignalDSLPackage.Literals.SIGNAL_HANDLER__NAME));
+			if (transientValues.isValueTransient(semanticObject, SignalDSLPackage.Literals.SIGNAL_HANDLER__ACTION_TYPE) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SignalDSLPackage.Literals.SIGNAL_HANDLER__ACTION_TYPE));
+			if (transientValues.isValueTransient(semanticObject, SignalDSLPackage.Literals.SIGNAL_HANDLER__DATA) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SignalDSLPackage.Literals.SIGNAL_HANDLER__DATA));
+			if (transientValues.isValueTransient(semanticObject, SignalDSLPackage.Literals.SIGNAL_HANDLER__FILEMASK) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SignalDSLPackage.Literals.SIGNAL_HANDLER__FILEMASK));
 		}
 		SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
-		feeder.accept(grammarAccess.getSignalHandlingAccess().getActionTypeSignalHandlerTypeEnumEnumRuleCall_0_0(), semanticObject.getActionType());
-		feeder.accept(grammarAccess.getSignalHandlingAccess().getDataRefDataInterchangeIDTerminalRuleCall_1_0_1(), semanticObject.eGet(SignalDSLPackage.Literals.SIGNAL_HANDLING__DATA_REF, false));
+		feeder.accept(grammarAccess.getSignalHandlerAccess().getNameIDTerminalRuleCall_2_0(), semanticObject.getName());
+		feeder.accept(grammarAccess.getSignalHandlerAccess().getActionTypeSignalHandlerTypeEnumEnumRuleCall_3_0(), semanticObject.getActionType());
+		feeder.accept(grammarAccess.getSignalHandlerAccess().getDataDataTransferParserRuleCall_4_0(), semanticObject.getData());
+		feeder.accept(grammarAccess.getSignalHandlerAccess().getFilemaskSTRINGTerminalRuleCall_7_0(), semanticObject.getFilemask());
 		feeder.finish();
 	}
 	
@@ -495,31 +505,10 @@
 	
 	/**
 	 * Contexts:
-	 *     SignalNotification returns SignalNotification
-	 *
-	 * Constraint:
-	 *     (event=SignalNotificationEnum message=STRING)
-	 */
-	protected void sequence_SignalNotification(ISerializationContext context, SignalNotification semanticObject) {
-		if (errorAcceptor != null) {
-			if (transientValues.isValueTransient(semanticObject, SignalDSLPackage.Literals.SIGNAL_NOTIFICATION__EVENT) == ValueTransient.YES)
-				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SignalDSLPackage.Literals.SIGNAL_NOTIFICATION__EVENT));
-			if (transientValues.isValueTransient(semanticObject, SignalDSLPackage.Literals.SIGNAL_NOTIFICATION__MESSAGE) == ValueTransient.YES)
-				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SignalDSLPackage.Literals.SIGNAL_NOTIFICATION__MESSAGE));
-		}
-		SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
-		feeder.accept(grammarAccess.getSignalNotificationAccess().getEventSignalNotificationEnumEnumRuleCall_0_0(), semanticObject.getEvent());
-		feeder.accept(grammarAccess.getSignalNotificationAccess().getMessageSTRINGTerminalRuleCall_1_0(), semanticObject.getMessage());
-		feeder.finish();
-	}
-	
-	
-	/**
-	 * Contexts:
 	 *     SignalPackage returns SignalPackage
 	 *
 	 * Constraint:
-	 *     (name=QualifiedName watchers+=SignalWatcher* handlers+=SignalHandler*)
+	 *     (name=QualifiedName watchers+=SignalWatcher*)
 	 */
 	protected void sequence_SignalPackage(ISerializationContext context, SignalPackage semanticObject) {
 		genericSequencer.createSequence(context, semanticObject);
@@ -531,21 +520,28 @@
 	 *     SignalWatcher returns SignalWatcher
 	 *
 	 * Constraint:
-	 *     (name=ID directory=STRING signal=SignalTypeEnum)
+	 *     (name=ID directory=STRING signal=SignalTypeEnum handlers+=SignalHandler*)
 	 */
 	protected void sequence_SignalWatcher(ISerializationContext context, SignalWatcher semanticObject) {
+		genericSequencer.createSequence(context, semanticObject);
+	}
+	
+	
+	/**
+	 * Contexts:
+	 *     DataTransfer returns SingleTransfer
+	 *     SingleTransfer returns SingleTransfer
+	 *
+	 * Constraint:
+	 *     interchange=SignalDatainterchange
+	 */
+	protected void sequence_SingleTransfer(ISerializationContext context, SingleTransfer semanticObject) {
 		if (errorAcceptor != null) {
-			if (transientValues.isValueTransient(semanticObject, SignalDSLPackage.Literals.SIGNAL_BASE__NAME) == ValueTransient.YES)
-				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SignalDSLPackage.Literals.SIGNAL_BASE__NAME));
-			if (transientValues.isValueTransient(semanticObject, SignalDSLPackage.Literals.SIGNAL_WATCHER__DIRECTORY) == ValueTransient.YES)
-				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SignalDSLPackage.Literals.SIGNAL_WATCHER__DIRECTORY));
-			if (transientValues.isValueTransient(semanticObject, SignalDSLPackage.Literals.SIGNAL_WATCHER__SIGNAL) == ValueTransient.YES)
-				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SignalDSLPackage.Literals.SIGNAL_WATCHER__SIGNAL));
+			if (transientValues.isValueTransient(semanticObject, SignalDSLPackage.Literals.SINGLE_TRANSFER__INTERCHANGE) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SignalDSLPackage.Literals.SINGLE_TRANSFER__INTERCHANGE));
 		}
 		SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
-		feeder.accept(grammarAccess.getSignalWatcherAccess().getNameIDTerminalRuleCall_2_0(), semanticObject.getName());
-		feeder.accept(grammarAccess.getSignalWatcherAccess().getDirectorySTRINGTerminalRuleCall_4_0(), semanticObject.getDirectory());
-		feeder.accept(grammarAccess.getSignalWatcherAccess().getSignalSignalTypeEnumEnumRuleCall_6_0(), semanticObject.getSignal());
+		feeder.accept(grammarAccess.getSingleTransferAccess().getInterchangeSignalDatainterchangeParserRuleCall_0(), semanticObject.getInterchange());
 		feeder.finish();
 	}
 	
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 239eb54..1f10895 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
@@ -82,17 +82,13 @@
 		private final Keyword cLeftCurlyBracketKeyword_3_0 = (Keyword)cGroup_3.eContents().get(0);
 		private final Assignment cWatchersAssignment_3_1 = (Assignment)cGroup_3.eContents().get(1);
 		private final RuleCall cWatchersSignalWatcherParserRuleCall_3_1_0 = (RuleCall)cWatchersAssignment_3_1.eContents().get(0);
-		private final Assignment cHandlersAssignment_3_2 = (Assignment)cGroup_3.eContents().get(2);
-		private final RuleCall cHandlersSignalHandlerParserRuleCall_3_2_0 = (RuleCall)cHandlersAssignment_3_2.eContents().get(0);
-		private final Keyword cRightCurlyBracketKeyword_3_3 = (Keyword)cGroup_3.eContents().get(3);
+		private final Keyword cRightCurlyBracketKeyword_3_2 = (Keyword)cGroup_3.eContents().get(2);
 		
 		//SignalPackage:
-		//	{SignalPackage} 'package' name=QualifiedName ('{' watchers+=SignalWatcher*
-		//	handlers+=SignalHandler*
-		//	'}');
+		//	{SignalPackage} 'package' name=QualifiedName ('{' watchers+=SignalWatcher* '}');
 		@Override public ParserRule getRule() { return rule; }
 		
-		//{SignalPackage} 'package' name=QualifiedName ('{' watchers+=SignalWatcher* handlers+=SignalHandler* '}')
+		//{SignalPackage} 'package' name=QualifiedName ('{' watchers+=SignalWatcher* '}')
 		public Group getGroup() { return cGroup; }
 		
 		//{SignalPackage}
@@ -107,7 +103,7 @@
 		//QualifiedName
 		public RuleCall getNameQualifiedNameParserRuleCall_2_0() { return cNameQualifiedNameParserRuleCall_2_0; }
 		
-		//'{' watchers+=SignalWatcher* handlers+=SignalHandler* '}'
+		//'{' watchers+=SignalWatcher* '}'
 		public Group getGroup_3() { return cGroup_3; }
 		
 		//'{'
@@ -119,14 +115,8 @@
 		//SignalWatcher
 		public RuleCall getWatchersSignalWatcherParserRuleCall_3_1_0() { return cWatchersSignalWatcherParserRuleCall_3_1_0; }
 		
-		//handlers+=SignalHandler*
-		public Assignment getHandlersAssignment_3_2() { return cHandlersAssignment_3_2; }
-		
-		//SignalHandler
-		public RuleCall getHandlersSignalHandlerParserRuleCall_3_2_0() { return cHandlersSignalHandlerParserRuleCall_3_2_0; }
-		
 		//'}'
-		public Keyword getRightCurlyBracketKeyword_3_3() { return cRightCurlyBracketKeyword_3_3; }
+		public Keyword getRightCurlyBracketKeyword_3_2() { return cRightCurlyBracketKeyword_3_2; }
 	}
 	public class SignalWatcherElements extends AbstractParserRuleElementFinder {
 		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.osbp.xtext.signal.SignalDSL.SignalWatcher");
@@ -141,15 +131,21 @@
 		private final Keyword cForKeyword_5 = (Keyword)cGroup.eContents().get(5);
 		private final Assignment cSignalAssignment_6 = (Assignment)cGroup.eContents().get(6);
 		private final RuleCall cSignalSignalTypeEnumEnumRuleCall_6_0 = (RuleCall)cSignalAssignment_6.eContents().get(0);
+		private final Keyword cLeftCurlyBracketKeyword_7 = (Keyword)cGroup.eContents().get(7);
+		private final Assignment cHandlersAssignment_8 = (Assignment)cGroup.eContents().get(8);
+		private final RuleCall cHandlersSignalHandlerParserRuleCall_8_0 = (RuleCall)cHandlersAssignment_8.eContents().get(0);
+		private final Keyword cRightCurlyBracketKeyword_9 = (Keyword)cGroup.eContents().get(9);
 		
 		//SignalWatcher:
 		//	{SignalWatcher}
 		//	'watcher' name=ID
 		//	'directory' directory=STRING
-		//	'for' signal=SignalTypeEnum;
+		//	'for' signal=SignalTypeEnum
+		//	'{' handlers+=SignalHandler* '}';
 		@Override public ParserRule getRule() { return rule; }
 		
-		//{SignalWatcher} 'watcher' name=ID 'directory' directory=STRING 'for' signal=SignalTypeEnum
+		//{SignalWatcher} 'watcher' name=ID 'directory' directory=STRING 'for' signal=SignalTypeEnum '{' handlers+=SignalHandler*
+		//'}'
 		public Group getGroup() { return cGroup; }
 		
 		//{SignalWatcher}
@@ -181,106 +177,192 @@
 		
 		//SignalTypeEnum
 		public RuleCall getSignalSignalTypeEnumEnumRuleCall_6_0() { return cSignalSignalTypeEnumEnumRuleCall_6_0; }
+		
+		//'{'
+		public Keyword getLeftCurlyBracketKeyword_7() { return cLeftCurlyBracketKeyword_7; }
+		
+		//handlers+=SignalHandler*
+		public Assignment getHandlersAssignment_8() { return cHandlersAssignment_8; }
+		
+		//SignalHandler
+		public RuleCall getHandlersSignalHandlerParserRuleCall_8_0() { return cHandlersSignalHandlerParserRuleCall_8_0; }
+		
+		//'}'
+		public Keyword getRightCurlyBracketKeyword_9() { return cRightCurlyBracketKeyword_9; }
 	}
 	public class SignalHandlerElements extends AbstractParserRuleElementFinder {
 		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.osbp.xtext.signal.SignalDSL.SignalHandler");
 		private final Group cGroup = (Group)rule.eContents().get(1);
 		private final Action cSignalHandlerAction_0 = (Action)cGroup.eContents().get(0);
-		private final Keyword cHandlerOnKeyword_1 = (Keyword)cGroup.eContents().get(1);
-		private final Assignment cWatcherAssignment_2 = (Assignment)cGroup.eContents().get(2);
-		private final CrossReference cWatcherSignalWatcherCrossReference_2_0 = (CrossReference)cWatcherAssignment_2.eContents().get(0);
-		private final RuleCall cWatcherSignalWatcherIDTerminalRuleCall_2_0_1 = (RuleCall)cWatcherSignalWatcherCrossReference_2_0.eContents().get(1);
-		private final Group cGroup_3 = (Group)cGroup.eContents().get(3);
-		private final Assignment cHandlerAssignment_3_0 = (Assignment)cGroup_3.eContents().get(0);
-		private final RuleCall cHandlerSignalHandlingParserRuleCall_3_0_0 = (RuleCall)cHandlerAssignment_3_0.eContents().get(0);
-		private final Assignment cNotificationAssignment_3_1 = (Assignment)cGroup_3.eContents().get(1);
-		private final RuleCall cNotificationSignalNotificationParserRuleCall_3_1_0 = (RuleCall)cNotificationAssignment_3_1.eContents().get(0);
+		private final Keyword cHandlerKeyword_1 = (Keyword)cGroup.eContents().get(1);
+		private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2);
+		private final RuleCall cNameIDTerminalRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0);
+		private final Assignment cActionTypeAssignment_3 = (Assignment)cGroup.eContents().get(3);
+		private final RuleCall cActionTypeSignalHandlerTypeEnumEnumRuleCall_3_0 = (RuleCall)cActionTypeAssignment_3.eContents().get(0);
+		private final Assignment cDataAssignment_4 = (Assignment)cGroup.eContents().get(4);
+		private final RuleCall cDataDataTransferParserRuleCall_4_0 = (RuleCall)cDataAssignment_4.eContents().get(0);
+		private final Keyword cForKeyword_5 = (Keyword)cGroup.eContents().get(5);
+		private final Keyword cFileMaskKeyword_6 = (Keyword)cGroup.eContents().get(6);
+		private final Assignment cFilemaskAssignment_7 = (Assignment)cGroup.eContents().get(7);
+		private final RuleCall cFilemaskSTRINGTerminalRuleCall_7_0 = (RuleCall)cFilemaskAssignment_7.eContents().get(0);
 		
 		//SignalHandler:
 		//	{SignalHandler}
-		//	'handlerOn'
-		//	watcher=[SignalWatcher] (handler=SignalHandling notification=SignalNotification?);
+		//	'handler' name=ID
+		//	actionType=SignalHandlerTypeEnum
+		//	data=DataTransfer
+		//	'for' 'fileMask' filemask=STRING;
 		@Override public ParserRule getRule() { return rule; }
 		
-		//{SignalHandler} 'handlerOn' watcher=[SignalWatcher] (handler=SignalHandling notification=SignalNotification?)
+		//{SignalHandler} 'handler' name=ID actionType=SignalHandlerTypeEnum data=DataTransfer 'for' 'fileMask' filemask=STRING
 		public Group getGroup() { return cGroup; }
 		
 		//{SignalHandler}
 		public Action getSignalHandlerAction_0() { return cSignalHandlerAction_0; }
 		
-		//'handlerOn'
-		public Keyword getHandlerOnKeyword_1() { return cHandlerOnKeyword_1; }
+		//'handler'
+		public Keyword getHandlerKeyword_1() { return cHandlerKeyword_1; }
 		
-		//watcher=[SignalWatcher]
-		public Assignment getWatcherAssignment_2() { return cWatcherAssignment_2; }
-		
-		//[SignalWatcher]
-		public CrossReference getWatcherSignalWatcherCrossReference_2_0() { return cWatcherSignalWatcherCrossReference_2_0; }
+		//name=ID
+		public Assignment getNameAssignment_2() { return cNameAssignment_2; }
 		
 		//ID
-		public RuleCall getWatcherSignalWatcherIDTerminalRuleCall_2_0_1() { return cWatcherSignalWatcherIDTerminalRuleCall_2_0_1; }
+		public RuleCall getNameIDTerminalRuleCall_2_0() { return cNameIDTerminalRuleCall_2_0; }
 		
-		//handler=SignalHandling notification=SignalNotification?
-		public Group getGroup_3() { return cGroup_3; }
+		//actionType=SignalHandlerTypeEnum
+		public Assignment getActionTypeAssignment_3() { return cActionTypeAssignment_3; }
 		
-		//handler=SignalHandling
-		public Assignment getHandlerAssignment_3_0() { return cHandlerAssignment_3_0; }
+		//SignalHandlerTypeEnum
+		public RuleCall getActionTypeSignalHandlerTypeEnumEnumRuleCall_3_0() { return cActionTypeSignalHandlerTypeEnumEnumRuleCall_3_0; }
 		
-		//SignalHandling
-		public RuleCall getHandlerSignalHandlingParserRuleCall_3_0_0() { return cHandlerSignalHandlingParserRuleCall_3_0_0; }
+		//data=DataTransfer
+		public Assignment getDataAssignment_4() { return cDataAssignment_4; }
 		
-		//notification=SignalNotification?
-		public Assignment getNotificationAssignment_3_1() { return cNotificationAssignment_3_1; }
+		//DataTransfer
+		public RuleCall getDataDataTransferParserRuleCall_4_0() { return cDataDataTransferParserRuleCall_4_0; }
 		
-		//SignalNotification
-		public RuleCall getNotificationSignalNotificationParserRuleCall_3_1_0() { return cNotificationSignalNotificationParserRuleCall_3_1_0; }
-	}
-	public class SignalNotificationElements extends AbstractParserRuleElementFinder {
-		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.osbp.xtext.signal.SignalDSL.SignalNotification");
-		private final Group cGroup = (Group)rule.eContents().get(1);
-		private final Assignment cEventAssignment_0 = (Assignment)cGroup.eContents().get(0);
-		private final RuleCall cEventSignalNotificationEnumEnumRuleCall_0_0 = (RuleCall)cEventAssignment_0.eContents().get(0);
-		private final Assignment cMessageAssignment_1 = (Assignment)cGroup.eContents().get(1);
-		private final RuleCall cMessageSTRINGTerminalRuleCall_1_0 = (RuleCall)cMessageAssignment_1.eContents().get(0);
+		//'for'
+		public Keyword getForKeyword_5() { return cForKeyword_5; }
 		
-		//SignalNotification:
-		//	event=SignalNotificationEnum
-		//	message=STRING;
-		@Override public ParserRule getRule() { return rule; }
+		//'fileMask'
+		public Keyword getFileMaskKeyword_6() { return cFileMaskKeyword_6; }
 		
-		//event=SignalNotificationEnum message=STRING
-		public Group getGroup() { return cGroup; }
-		
-		//event=SignalNotificationEnum
-		public Assignment getEventAssignment_0() { return cEventAssignment_0; }
-		
-		//SignalNotificationEnum
-		public RuleCall getEventSignalNotificationEnumEnumRuleCall_0_0() { return cEventSignalNotificationEnumEnumRuleCall_0_0; }
-		
-		//message=STRING
-		public Assignment getMessageAssignment_1() { return cMessageAssignment_1; }
+		//filemask=STRING
+		public Assignment getFilemaskAssignment_7() { return cFilemaskAssignment_7; }
 		
 		//STRING
-		public RuleCall getMessageSTRINGTerminalRuleCall_1_0() { return cMessageSTRINGTerminalRuleCall_1_0; }
+		public RuleCall getFilemaskSTRINGTerminalRuleCall_7_0() { return cFilemaskSTRINGTerminalRuleCall_7_0; }
+	}
+	public class DataTransferElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.osbp.xtext.signal.SignalDSL.DataTransfer");
+		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+		private final RuleCall cSingleTransferParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
+		private final RuleCall cListTransferParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
+		
+		////	processor=SignalProcessor;
+		//DataTransfer:
+		//	SingleTransfer | ListTransfer;
+		@Override public ParserRule getRule() { return rule; }
+		
+		//SingleTransfer | ListTransfer
+		public Alternatives getAlternatives() { return cAlternatives; }
+		
+		//SingleTransfer
+		public RuleCall getSingleTransferParserRuleCall_0() { return cSingleTransferParserRuleCall_0; }
+		
+		//ListTransfer
+		public RuleCall getListTransferParserRuleCall_1() { return cListTransferParserRuleCall_1; }
+	}
+	public class ListTransferElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.osbp.xtext.signal.SignalDSL.ListTransfer");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Action cListTransferAction_0 = (Action)cGroup.eContents().get(0);
+		private final Keyword cDataTransferKeyword_1 = (Keyword)cGroup.eContents().get(1);
+		private final Assignment cExecutiontypeAssignment_2 = (Assignment)cGroup.eContents().get(2);
+		private final RuleCall cExecutiontypeSignalExecutionTypeEnumEnumRuleCall_2_0 = (RuleCall)cExecutiontypeAssignment_2.eContents().get(0);
+		private final Keyword cLeftCurlyBracketKeyword_3 = (Keyword)cGroup.eContents().get(3);
+		private final Assignment cInterchangesAssignment_4 = (Assignment)cGroup.eContents().get(4);
+		private final RuleCall cInterchangesSignalDatainterchangeParserRuleCall_4_0 = (RuleCall)cInterchangesAssignment_4.eContents().get(0);
+		private final Keyword cRightCurlyBracketKeyword_5 = (Keyword)cGroup.eContents().get(5);
+		
+		//ListTransfer:
+		//	{ListTransfer} 'DataTransfer' executiontype=SignalExecutionTypeEnum?
+		//	'{' interchanges+=SignalDatainterchange* '}';
+		@Override public ParserRule getRule() { return rule; }
+		
+		//{ListTransfer} 'DataTransfer' executiontype=SignalExecutionTypeEnum? '{' interchanges+=SignalDatainterchange* '}'
+		public Group getGroup() { return cGroup; }
+		
+		//{ListTransfer}
+		public Action getListTransferAction_0() { return cListTransferAction_0; }
+		
+		//'DataTransfer'
+		public Keyword getDataTransferKeyword_1() { return cDataTransferKeyword_1; }
+		
+		//executiontype=SignalExecutionTypeEnum?
+		public Assignment getExecutiontypeAssignment_2() { return cExecutiontypeAssignment_2; }
+		
+		//SignalExecutionTypeEnum
+		public RuleCall getExecutiontypeSignalExecutionTypeEnumEnumRuleCall_2_0() { return cExecutiontypeSignalExecutionTypeEnumEnumRuleCall_2_0; }
+		
+		//'{'
+		public Keyword getLeftCurlyBracketKeyword_3() { return cLeftCurlyBracketKeyword_3; }
+		
+		//interchanges+=SignalDatainterchange*
+		public Assignment getInterchangesAssignment_4() { return cInterchangesAssignment_4; }
+		
+		//SignalDatainterchange
+		public RuleCall getInterchangesSignalDatainterchangeParserRuleCall_4_0() { return cInterchangesSignalDatainterchangeParserRuleCall_4_0; }
+		
+		//'}'
+		public Keyword getRightCurlyBracketKeyword_5() { return cRightCurlyBracketKeyword_5; }
+	}
+	public class SingleTransferElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.osbp.xtext.signal.SignalDSL.SingleTransfer");
+		private final Assignment cInterchangeAssignment = (Assignment)rule.eContents().get(1);
+		private final RuleCall cInterchangeSignalDatainterchangeParserRuleCall_0 = (RuleCall)cInterchangeAssignment.eContents().get(0);
+		
+		//SingleTransfer:
+		//	interchange=SignalDatainterchange;
+		@Override public ParserRule getRule() { return rule; }
+		
+		//interchange=SignalDatainterchange
+		public Assignment getInterchangeAssignment() { return cInterchangeAssignment; }
+		
+		//SignalDatainterchange
+		public RuleCall getInterchangeSignalDatainterchangeParserRuleCall_0() { return cInterchangeSignalDatainterchangeParserRuleCall_0; }
 	}
 	public class SignalDatainterchangeElements extends AbstractParserRuleElementFinder {
 		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.osbp.xtext.signal.SignalDSL.SignalDatainterchange");
-		private final Assignment cDataRefAssignment = (Assignment)rule.eContents().get(1);
-		private final CrossReference cDataRefDataInterchangeCrossReference_0 = (CrossReference)cDataRefAssignment.eContents().get(0);
-		private final RuleCall cDataRefDataInterchangeIDTerminalRuleCall_0_1 = (RuleCall)cDataRefDataInterchangeCrossReference_0.eContents().get(1);
+		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 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);
 		
 		//SignalDatainterchange:
+		//	dataAction=SignalActionEnum
 		//	dataRef=[data::DataInterchange];
 		@Override public ParserRule getRule() { return rule; }
 		
+		//dataAction=SignalActionEnum dataRef=[data::DataInterchange]
+		public Group getGroup() { return cGroup; }
+		
+		//dataAction=SignalActionEnum
+		public Assignment getDataActionAssignment_0() { return cDataActionAssignment_0; }
+		
+		//SignalActionEnum
+		public RuleCall getDataActionSignalActionEnumEnumRuleCall_0_0() { return cDataActionSignalActionEnumEnumRuleCall_0_0; }
+		
 		//dataRef=[data::DataInterchange]
-		public Assignment getDataRefAssignment() { return cDataRefAssignment; }
+		public Assignment getDataRefAssignment_1() { return cDataRefAssignment_1; }
 		
 		//[data::DataInterchange]
-		public CrossReference getDataRefDataInterchangeCrossReference_0() { return cDataRefDataInterchangeCrossReference_0; }
+		public CrossReference getDataRefDataInterchangeCrossReference_1_0() { return cDataRefDataInterchangeCrossReference_1_0; }
 		
 		//ID
-		public RuleCall getDataRefDataInterchangeIDTerminalRuleCall_0_1() { return cDataRefDataInterchangeIDTerminalRuleCall_0_1; }
+		public RuleCall getDataRefDataInterchangeIDTerminalRuleCall_1_0_1() { return cDataRefDataInterchangeIDTerminalRuleCall_1_0_1; }
 	}
 	public class SignalProcessorElements extends AbstractParserRuleElementFinder {
 		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.osbp.xtext.signal.SignalDSL.SignalProcessor");
@@ -293,38 +375,6 @@
 		//SignalDatainterchange
 		public RuleCall getSignalDatainterchangeParserRuleCall() { return cSignalDatainterchangeParserRuleCall; }
 	}
-	public class SignalHandlingElements extends AbstractParserRuleElementFinder {
-		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.osbp.xtext.signal.SignalDSL.SignalHandling");
-		private final Group cGroup = (Group)rule.eContents().get(1);
-		private final Assignment cActionTypeAssignment_0 = (Assignment)cGroup.eContents().get(0);
-		private final RuleCall cActionTypeSignalHandlerTypeEnumEnumRuleCall_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);
-		
-		//SignalHandling:
-		//	actionType=SignalHandlerTypeEnum
-		//	dataRef=[data::DataInterchange];
-		@Override public ParserRule getRule() { return rule; }
-		
-		//actionType=SignalHandlerTypeEnum dataRef=[data::DataInterchange]
-		public Group getGroup() { return cGroup; }
-		
-		//actionType=SignalHandlerTypeEnum
-		public Assignment getActionTypeAssignment_0() { return cActionTypeAssignment_0; }
-		
-		//SignalHandlerTypeEnum
-		public RuleCall getActionTypeSignalHandlerTypeEnumEnumRuleCall_0_0() { return cActionTypeSignalHandlerTypeEnumEnumRuleCall_0_0; }
-		
-		//dataRef=[data::DataInterchange]
-		public Assignment getDataRefAssignment_1() { return cDataRefAssignment_1; }
-		
-		//[data::DataInterchange]
-		public CrossReference getDataRefDataInterchangeCrossReference_1_0() { return cDataRefDataInterchangeCrossReference_1_0; }
-		
-		//ID
-		public RuleCall getDataRefDataInterchangeIDTerminalRuleCall_1_0_1() { return cDataRefDataInterchangeIDTerminalRuleCall_1_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);
@@ -337,6 +387,33 @@
 		public RuleCall getIDTerminalRuleCall() { return cIDTerminalRuleCall; }
 	}
 	
+	public class SignalActionEnumElements extends AbstractEnumRuleElementFinder {
+		private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.osbp.xtext.signal.SignalDSL.SignalActionEnum");
+		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:
+		//	DATAIMPORT='Import' | DATAEXPORT='Export';
+		public EnumRule getRule() { return rule; }
+		
+		//DATAIMPORT='Import' | DATAEXPORT='Export'
+		public Alternatives getAlternatives() { return cAlternatives; }
+		
+		//DATAIMPORT='Import'
+		public EnumLiteralDeclaration getDATAIMPORTEnumLiteralDeclaration_0() { return cDATAIMPORTEnumLiteralDeclaration_0; }
+		
+		//'Import'
+		public Keyword getDATAIMPORTImportKeyword_0_0() { return cDATAIMPORTImportKeyword_0_0; }
+		
+		//DATAEXPORT='Export'
+		public EnumLiteralDeclaration getDATAEXPORTEnumLiteralDeclaration_1() { return cDATAEXPORTEnumLiteralDeclaration_1; }
+		
+		//'Export'
+		public Keyword getDATAEXPORTExportKeyword_1_0() { return cDATAEXPORTExportKeyword_1_0; }
+	}
 	public class SignalTypeEnumElements extends AbstractEnumRuleElementFinder {
 		private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.osbp.xtext.signal.SignalDSL.SignalTypeEnum");
 		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
@@ -383,138 +460,93 @@
 		//'deleteSignals'
 		public Keyword getDeletesignalsDeleteSignalsKeyword_3_0() { return cDeletesignalsDeleteSignalsKeyword_3_0; }
 	}
-	public class SignalNotificationEnumElements extends AbstractEnumRuleElementFinder {
-		private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.osbp.xtext.signal.SignalDSL.SignalNotificationEnum");
-		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
-		private final EnumLiteralDeclaration cShowOnAllEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0);
-		private final Keyword cShowOnAllShowKeyword_0_0 = (Keyword)cShowOnAllEnumLiteralDeclaration_0.eContents().get(0);
-		private final EnumLiteralDeclaration cShowOnCreateEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1);
-		private final Keyword cShowOnCreateShowOnCreateKeyword_1_0 = (Keyword)cShowOnCreateEnumLiteralDeclaration_1.eContents().get(0);
-		private final EnumLiteralDeclaration cShowOnDeleteEnumLiteralDeclaration_2 = (EnumLiteralDeclaration)cAlternatives.eContents().get(2);
-		private final Keyword cShowOnDeleteShowOnDeleteKeyword_2_0 = (Keyword)cShowOnDeleteEnumLiteralDeclaration_2.eContents().get(0);
-		private final EnumLiteralDeclaration cShowOnModifyEnumLiteralDeclaration_3 = (EnumLiteralDeclaration)cAlternatives.eContents().get(3);
-		private final Keyword cShowOnModifyShowOnModifyKeyword_3_0 = (Keyword)cShowOnModifyEnumLiteralDeclaration_3.eContents().get(0);
-		
-		//enum SignalNotificationEnum:
-		//	showOnAll="show" | showOnCreate | showOnDelete | showOnModify;
-		public EnumRule getRule() { return rule; }
-		
-		//showOnAll="show" | showOnCreate | showOnDelete | showOnModify
-		public Alternatives getAlternatives() { return cAlternatives; }
-		
-		//showOnAll="show"
-		public EnumLiteralDeclaration getShowOnAllEnumLiteralDeclaration_0() { return cShowOnAllEnumLiteralDeclaration_0; }
-		
-		//"show"
-		public Keyword getShowOnAllShowKeyword_0_0() { return cShowOnAllShowKeyword_0_0; }
-		
-		//showOnCreate
-		public EnumLiteralDeclaration getShowOnCreateEnumLiteralDeclaration_1() { return cShowOnCreateEnumLiteralDeclaration_1; }
-		
-		//"showOnCreate"
-		public Keyword getShowOnCreateShowOnCreateKeyword_1_0() { return cShowOnCreateShowOnCreateKeyword_1_0; }
-		
-		//showOnDelete
-		public EnumLiteralDeclaration getShowOnDeleteEnumLiteralDeclaration_2() { return cShowOnDeleteEnumLiteralDeclaration_2; }
-		
-		//"showOnDelete"
-		public Keyword getShowOnDeleteShowOnDeleteKeyword_2_0() { return cShowOnDeleteShowOnDeleteKeyword_2_0; }
-		
-		//showOnModify
-		public EnumLiteralDeclaration getShowOnModifyEnumLiteralDeclaration_3() { return cShowOnModifyEnumLiteralDeclaration_3; }
-		
-		//"showOnModify"
-		public Keyword getShowOnModifyShowOnModifyKeyword_3_0() { return cShowOnModifyShowOnModifyKeyword_3_0; }
-	}
 	public class SignalHandlerTypeEnumElements extends AbstractEnumRuleElementFinder {
 		private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.osbp.xtext.signal.SignalDSL.SignalHandlerTypeEnum");
 		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
-		private final EnumLiteralDeclaration cDoAfterEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0);
-		private final Keyword cDoAfterDoAfterKeyword_0_0 = (Keyword)cDoAfterEnumLiteralDeclaration_0.eContents().get(0);
-		private final EnumLiteralDeclaration cDoAfterCreateEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1);
-		private final Keyword cDoAfterCreateDoAfterCreateKeyword_1_0 = (Keyword)cDoAfterCreateEnumLiteralDeclaration_1.eContents().get(0);
-		private final EnumLiteralDeclaration cDoAfterDeleteEnumLiteralDeclaration_2 = (EnumLiteralDeclaration)cAlternatives.eContents().get(2);
-		private final Keyword cDoAfterDeleteDoAfterDeleteKeyword_2_0 = (Keyword)cDoAfterDeleteEnumLiteralDeclaration_2.eContents().get(0);
-		private final EnumLiteralDeclaration cDoAfterModifyEnumLiteralDeclaration_3 = (EnumLiteralDeclaration)cAlternatives.eContents().get(3);
-		private final Keyword cDoAfterModifyDoAfterModifyKeyword_3_0 = (Keyword)cDoAfterModifyEnumLiteralDeclaration_3.eContents().get(0);
-		private final EnumLiteralDeclaration cDoBeforeEnumLiteralDeclaration_4 = (EnumLiteralDeclaration)cAlternatives.eContents().get(4);
-		private final Keyword cDoBeforeDoBeforeKeyword_4_0 = (Keyword)cDoBeforeEnumLiteralDeclaration_4.eContents().get(0);
-		private final EnumLiteralDeclaration cDoBeforeCreateEnumLiteralDeclaration_5 = (EnumLiteralDeclaration)cAlternatives.eContents().get(5);
-		private final Keyword cDoBeforeCreateDoBeforeCreateKeyword_5_0 = (Keyword)cDoBeforeCreateEnumLiteralDeclaration_5.eContents().get(0);
-		private final EnumLiteralDeclaration cDoBeforeModifyEnumLiteralDeclaration_6 = (EnumLiteralDeclaration)cAlternatives.eContents().get(6);
-		private final Keyword cDoBeforeModifyDoBeforeModifyKeyword_6_0 = (Keyword)cDoBeforeModifyEnumLiteralDeclaration_6.eContents().get(0);
-		private final EnumLiteralDeclaration cDoDeforeDeleteEnumLiteralDeclaration_7 = (EnumLiteralDeclaration)cAlternatives.eContents().get(7);
-		private final Keyword cDoDeforeDeleteDoBeforedeleteKeyword_7_0 = (Keyword)cDoDeforeDeleteEnumLiteralDeclaration_7.eContents().get(0);
+		private final EnumLiteralDeclaration cDoafterEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0);
+		private final Keyword cDoafterDoAfterKeyword_0_0 = (Keyword)cDoafterEnumLiteralDeclaration_0.eContents().get(0);
+		private final EnumLiteralDeclaration cDoaftermodifyEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1);
+		private final Keyword cDoaftermodifyDoAfterModifyKeyword_1_0 = (Keyword)cDoaftermodifyEnumLiteralDeclaration_1.eContents().get(0);
+		private final EnumLiteralDeclaration cDoaftercreateEnumLiteralDeclaration_2 = (EnumLiteralDeclaration)cAlternatives.eContents().get(2);
+		private final Keyword cDoaftercreateDoAfterCreateKeyword_2_0 = (Keyword)cDoaftercreateEnumLiteralDeclaration_2.eContents().get(0);
+		private final EnumLiteralDeclaration cDoafterdeleteEnumLiteralDeclaration_3 = (EnumLiteralDeclaration)cAlternatives.eContents().get(3);
+		private final Keyword cDoafterdeleteDoAfterDeleteKeyword_3_0 = (Keyword)cDoafterdeleteEnumLiteralDeclaration_3.eContents().get(0);
 		
 		//enum SignalHandlerTypeEnum:
-		//	doAfter | doAfterCreate | doAfterDelete | doAfterModify |
-		//	doBefore | doBeforeCreate | doBeforeModify | doDeforeDelete="doBeforedelete";
+		//	doafter='doAfter' |
+		//	doaftermodify='doAfterModify' |
+		//	doaftercreate='doAfterCreate' |
+		//	doafterdelete='doAfterDelete';
 		public EnumRule getRule() { return rule; }
 		
-		//doAfter | doAfterCreate | doAfterDelete | doAfterModify | doBefore | doBeforeCreate | doBeforeModify |
-		//doDeforeDelete="doBeforedelete"
+		//doafter='doAfter' | doaftermodify='doAfterModify' | doaftercreate='doAfterCreate' | doafterdelete='doAfterDelete'
 		public Alternatives getAlternatives() { return cAlternatives; }
 		
-		//doAfter
-		public EnumLiteralDeclaration getDoAfterEnumLiteralDeclaration_0() { return cDoAfterEnumLiteralDeclaration_0; }
+		//doafter='doAfter'
+		public EnumLiteralDeclaration getDoafterEnumLiteralDeclaration_0() { return cDoafterEnumLiteralDeclaration_0; }
 		
-		//"doAfter"
-		public Keyword getDoAfterDoAfterKeyword_0_0() { return cDoAfterDoAfterKeyword_0_0; }
+		//'doAfter'
+		public Keyword getDoafterDoAfterKeyword_0_0() { return cDoafterDoAfterKeyword_0_0; }
 		
-		//doAfterCreate
-		public EnumLiteralDeclaration getDoAfterCreateEnumLiteralDeclaration_1() { return cDoAfterCreateEnumLiteralDeclaration_1; }
+		//doaftermodify='doAfterModify'
+		public EnumLiteralDeclaration getDoaftermodifyEnumLiteralDeclaration_1() { return cDoaftermodifyEnumLiteralDeclaration_1; }
 		
-		//"doAfterCreate"
-		public Keyword getDoAfterCreateDoAfterCreateKeyword_1_0() { return cDoAfterCreateDoAfterCreateKeyword_1_0; }
+		//'doAfterModify'
+		public Keyword getDoaftermodifyDoAfterModifyKeyword_1_0() { return cDoaftermodifyDoAfterModifyKeyword_1_0; }
 		
-		//doAfterDelete
-		public EnumLiteralDeclaration getDoAfterDeleteEnumLiteralDeclaration_2() { return cDoAfterDeleteEnumLiteralDeclaration_2; }
+		//doaftercreate='doAfterCreate'
+		public EnumLiteralDeclaration getDoaftercreateEnumLiteralDeclaration_2() { return cDoaftercreateEnumLiteralDeclaration_2; }
 		
-		//"doAfterDelete"
-		public Keyword getDoAfterDeleteDoAfterDeleteKeyword_2_0() { return cDoAfterDeleteDoAfterDeleteKeyword_2_0; }
+		//'doAfterCreate'
+		public Keyword getDoaftercreateDoAfterCreateKeyword_2_0() { return cDoaftercreateDoAfterCreateKeyword_2_0; }
 		
-		//doAfterModify
-		public EnumLiteralDeclaration getDoAfterModifyEnumLiteralDeclaration_3() { return cDoAfterModifyEnumLiteralDeclaration_3; }
+		//doafterdelete='doAfterDelete'
+		public EnumLiteralDeclaration getDoafterdeleteEnumLiteralDeclaration_3() { return cDoafterdeleteEnumLiteralDeclaration_3; }
 		
-		//"doAfterModify"
-		public Keyword getDoAfterModifyDoAfterModifyKeyword_3_0() { return cDoAfterModifyDoAfterModifyKeyword_3_0; }
+		//'doAfterDelete'
+		public Keyword getDoafterdeleteDoAfterDeleteKeyword_3_0() { return cDoafterdeleteDoAfterDeleteKeyword_3_0; }
+	}
+	public class SignalExecutionTypeEnumElements extends AbstractEnumRuleElementFinder {
+		private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.osbp.xtext.signal.SignalDSL.SignalExecutionTypeEnum");
+		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+		private final EnumLiteralDeclaration cSYNCEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0);
+		private final Keyword cSYNCSynchKeyword_0_0 = (Keyword)cSYNCEnumLiteralDeclaration_0.eContents().get(0);
+		private final EnumLiteralDeclaration cASYNCEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1);
+		private final Keyword cASYNCAsynchKeyword_1_0 = (Keyword)cASYNCEnumLiteralDeclaration_1.eContents().get(0);
 		
-		//doBefore
-		public EnumLiteralDeclaration getDoBeforeEnumLiteralDeclaration_4() { return cDoBeforeEnumLiteralDeclaration_4; }
+		//enum SignalExecutionTypeEnum:
+		//	SYNC='synch' | ASYNC='asynch';
+		public EnumRule getRule() { return rule; }
 		
-		//"doBefore"
-		public Keyword getDoBeforeDoBeforeKeyword_4_0() { return cDoBeforeDoBeforeKeyword_4_0; }
+		//SYNC='synch' | ASYNC='asynch'
+		public Alternatives getAlternatives() { return cAlternatives; }
 		
-		//doBeforeCreate
-		public EnumLiteralDeclaration getDoBeforeCreateEnumLiteralDeclaration_5() { return cDoBeforeCreateEnumLiteralDeclaration_5; }
+		//SYNC='synch'
+		public EnumLiteralDeclaration getSYNCEnumLiteralDeclaration_0() { return cSYNCEnumLiteralDeclaration_0; }
 		
-		//"doBeforeCreate"
-		public Keyword getDoBeforeCreateDoBeforeCreateKeyword_5_0() { return cDoBeforeCreateDoBeforeCreateKeyword_5_0; }
+		//'synch'
+		public Keyword getSYNCSynchKeyword_0_0() { return cSYNCSynchKeyword_0_0; }
 		
-		//doBeforeModify
-		public EnumLiteralDeclaration getDoBeforeModifyEnumLiteralDeclaration_6() { return cDoBeforeModifyEnumLiteralDeclaration_6; }
+		//ASYNC='asynch'
+		public EnumLiteralDeclaration getASYNCEnumLiteralDeclaration_1() { return cASYNCEnumLiteralDeclaration_1; }
 		
-		//"doBeforeModify"
-		public Keyword getDoBeforeModifyDoBeforeModifyKeyword_6_0() { return cDoBeforeModifyDoBeforeModifyKeyword_6_0; }
-		
-		//doDeforeDelete="doBeforedelete"
-		public EnumLiteralDeclaration getDoDeforeDeleteEnumLiteralDeclaration_7() { return cDoDeforeDeleteEnumLiteralDeclaration_7; }
-		
-		//"doBeforedelete"
-		public Keyword getDoDeforeDeleteDoBeforedeleteKeyword_7_0() { return cDoDeforeDeleteDoBeforedeleteKeyword_7_0; }
+		//'asynch'
+		public Keyword getASYNCAsynchKeyword_1_0() { return cASYNCAsynchKeyword_1_0; }
 	}
 	
 	private final SignalModelElements pSignalModel;
 	private final SignalPackageElements pSignalPackage;
 	private final SignalWatcherElements pSignalWatcher;
 	private final SignalHandlerElements pSignalHandler;
-	private final SignalNotificationElements pSignalNotification;
+	private final DataTransferElements pDataTransfer;
+	private final ListTransferElements pListTransfer;
+	private final SingleTransferElements pSingleTransfer;
 	private final SignalDatainterchangeElements pSignalDatainterchange;
 	private final SignalProcessorElements pSignalProcessor;
-	private final SignalHandlingElements pSignalHandling;
+	private final SignalActionEnumElements eSignalActionEnum;
 	private final SignalTypeEnumElements eSignalTypeEnum;
-	private final SignalNotificationEnumElements eSignalNotificationEnum;
 	private final SignalHandlerTypeEnumElements eSignalHandlerTypeEnum;
+	private final SignalExecutionTypeEnumElements eSignalExecutionTypeEnum;
 	private final TRANSLATABLEIDElements pTRANSLATABLEID;
 	
 	private final Grammar grammar;
@@ -542,13 +574,15 @@
 		this.pSignalPackage = new SignalPackageElements();
 		this.pSignalWatcher = new SignalWatcherElements();
 		this.pSignalHandler = new SignalHandlerElements();
-		this.pSignalNotification = new SignalNotificationElements();
+		this.pDataTransfer = new DataTransferElements();
+		this.pListTransfer = new ListTransferElements();
+		this.pSingleTransfer = new SingleTransferElements();
 		this.pSignalDatainterchange = new SignalDatainterchangeElements();
 		this.pSignalProcessor = new SignalProcessorElements();
-		this.pSignalHandling = new SignalHandlingElements();
+		this.eSignalActionEnum = new SignalActionEnumElements();
 		this.eSignalTypeEnum = new SignalTypeEnumElements();
-		this.eSignalNotificationEnum = new SignalNotificationEnumElements();
 		this.eSignalHandlerTypeEnum = new SignalHandlerTypeEnumElements();
+		this.eSignalExecutionTypeEnum = new SignalExecutionTypeEnumElements();
 		this.pTRANSLATABLEID = new TRANSLATABLEIDElements();
 	}
 	
@@ -603,9 +637,7 @@
 	}
 	
 	//SignalPackage:
-	//	{SignalPackage} 'package' name=QualifiedName ('{' watchers+=SignalWatcher*
-	//	handlers+=SignalHandler*
-	//	'}');
+	//	{SignalPackage} 'package' name=QualifiedName ('{' watchers+=SignalWatcher* '}');
 	public SignalPackageElements getSignalPackageAccess() {
 		return pSignalPackage;
 	}
@@ -618,7 +650,8 @@
 	//	{SignalWatcher}
 	//	'watcher' name=ID
 	//	'directory' directory=STRING
-	//	'for' signal=SignalTypeEnum;
+	//	'for' signal=SignalTypeEnum
+	//	'{' handlers+=SignalHandler* '}';
 	public SignalWatcherElements getSignalWatcherAccess() {
 		return pSignalWatcher;
 	}
@@ -629,8 +662,10 @@
 	
 	//SignalHandler:
 	//	{SignalHandler}
-	//	'handlerOn'
-	//	watcher=[SignalWatcher] (handler=SignalHandling notification=SignalNotification?);
+	//	'handler' name=ID
+	//	actionType=SignalHandlerTypeEnum
+	//	data=DataTransfer
+	//	'for' 'fileMask' filemask=STRING;
 	public SignalHandlerElements getSignalHandlerAccess() {
 		return pSignalHandler;
 	}
@@ -639,18 +674,40 @@
 		return getSignalHandlerAccess().getRule();
 	}
 	
-	//SignalNotification:
-	//	event=SignalNotificationEnum
-	//	message=STRING;
-	public SignalNotificationElements getSignalNotificationAccess() {
-		return pSignalNotification;
+	////	processor=SignalProcessor;
+	//DataTransfer:
+	//	SingleTransfer | ListTransfer;
+	public DataTransferElements getDataTransferAccess() {
+		return pDataTransfer;
 	}
 	
-	public ParserRule getSignalNotificationRule() {
-		return getSignalNotificationAccess().getRule();
+	public ParserRule getDataTransferRule() {
+		return getDataTransferAccess().getRule();
+	}
+	
+	//ListTransfer:
+	//	{ListTransfer} 'DataTransfer' executiontype=SignalExecutionTypeEnum?
+	//	'{' interchanges+=SignalDatainterchange* '}';
+	public ListTransferElements getListTransferAccess() {
+		return pListTransfer;
+	}
+	
+	public ParserRule getListTransferRule() {
+		return getListTransferAccess().getRule();
+	}
+	
+	//SingleTransfer:
+	//	interchange=SignalDatainterchange;
+	public SingleTransferElements getSingleTransferAccess() {
+		return pSingleTransfer;
+	}
+	
+	public ParserRule getSingleTransferRule() {
+		return getSingleTransferAccess().getRule();
 	}
 	
 	//SignalDatainterchange:
+	//	dataAction=SignalActionEnum
 	//	dataRef=[data::DataInterchange];
 	public SignalDatainterchangeElements getSignalDatainterchangeAccess() {
 		return pSignalDatainterchange;
@@ -670,15 +727,14 @@
 		return getSignalProcessorAccess().getRule();
 	}
 	
-	//SignalHandling:
-	//	actionType=SignalHandlerTypeEnum
-	//	dataRef=[data::DataInterchange];
-	public SignalHandlingElements getSignalHandlingAccess() {
-		return pSignalHandling;
+	//enum SignalActionEnum:
+	//	DATAIMPORT='Import' | DATAEXPORT='Export';
+	public SignalActionEnumElements getSignalActionEnumAccess() {
+		return eSignalActionEnum;
 	}
 	
-	public ParserRule getSignalHandlingRule() {
-		return getSignalHandlingAccess().getRule();
+	public EnumRule getSignalActionEnumRule() {
+		return getSignalActionEnumAccess().getRule();
 	}
 	
 	//enum SignalTypeEnum:
@@ -694,19 +750,11 @@
 		return getSignalTypeEnumAccess().getRule();
 	}
 	
-	//enum SignalNotificationEnum:
-	//	showOnAll="show" | showOnCreate | showOnDelete | showOnModify;
-	public SignalNotificationEnumElements getSignalNotificationEnumAccess() {
-		return eSignalNotificationEnum;
-	}
-	
-	public EnumRule getSignalNotificationEnumRule() {
-		return getSignalNotificationEnumAccess().getRule();
-	}
-	
 	//enum SignalHandlerTypeEnum:
-	//	doAfter | doAfterCreate | doAfterDelete | doAfterModify |
-	//	doBefore | doBeforeCreate | doBeforeModify | doDeforeDelete="doBeforedelete";
+	//	doafter='doAfter' |
+	//	doaftermodify='doAfterModify' |
+	//	doaftercreate='doAfterCreate' |
+	//	doafterdelete='doAfterDelete';
 	public SignalHandlerTypeEnumElements getSignalHandlerTypeEnumAccess() {
 		return eSignalHandlerTypeEnum;
 	}
@@ -715,6 +763,16 @@
 		return getSignalHandlerTypeEnumAccess().getRule();
 	}
 	
+	//enum SignalExecutionTypeEnum:
+	//	SYNC='synch' | ASYNC='asynch';
+	public SignalExecutionTypeEnumElements getSignalExecutionTypeEnumAccess() {
+		return eSignalExecutionTypeEnum;
+	}
+	
+	public EnumRule getSignalExecutionTypeEnumRule() {
+		return getSignalExecutionTypeEnumAccess().getRule();
+	}
+	
 	//TRANSLATABLEID:
 	//	ID;
 	public TRANSLATABLEIDElements getTRANSLATABLEIDAccess() {
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 a02060c..4f918af 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
@@ -26,9 +26,7 @@
 
 SignalPackage:
 	{SignalPackage} 'package' name=QualifiedName 
-	('{' (watchers+=SignalWatcher)* 
-		 (handlers+=SignalHandler)* 
-	'}') ;
+	('{' (watchers+=SignalWatcher)*  '}') ;
 
 
 SignalWatcher:
@@ -36,30 +34,40 @@
 	'watcher' name=ID
 	'directory' directory=STRING 
 	'for' signal=SignalTypeEnum
+	'{' (handlers+=SignalHandler)*	'}'
 ;
 
 
 SignalHandler:
 	{SignalHandler}
-	'handlerOn' 
-	watcher=[SignalWatcher] 
-	(handler=SignalHandling (notification=SignalNotification)?)
+	'handler' name=ID
+	actionType=SignalHandlerTypeEnum
+	data=DataTransfer
+	'for' 'fileMask' filemask=STRING;
+//	processor=SignalProcessor;
+
+DataTransfer:
+	SingleTransfer | ListTransfer
 ;
 
-SignalNotification:
-	event=SignalNotificationEnum
-	message=STRING; 
+ListTransfer:
+	{ListTransfer} 'DataTransfer'  (executiontype=SignalExecutionTypeEnum)? 
+	'{' interchanges+=SignalDatainterchange* '}'
+;
+
+SingleTransfer:
+	interchange=SignalDatainterchange 
+;
 	
 SignalDatainterchange:
-	dataRef=[data::DataInterchange];
+	dataAction=SignalActionEnum
+	dataRef = ([data::DataInterchange]);
 	
 SignalProcessor:
 	SignalDatainterchange;
-	
-SignalHandling:
-	actionType=SignalHandlerTypeEnum
-	dataRef=[data::DataInterchange];
-//	processor=SignalProcessor;
+
+enum SignalActionEnum:
+	DATAIMPORT='Import' | DATAEXPORT='Export';
 
 enum SignalTypeEnum:
 	all	= 'all' |
@@ -67,12 +75,14 @@
 	modifysignals = 'modifySignals' |
 	deletesignals = 'deleteSignals';
 	
-enum SignalNotificationEnum:
-	showOnAll | showOnCreate | showOnDelete |showOnModify;
-
 enum SignalHandlerTypeEnum:
-	doAfter | doAfterCreate | doAfterDelete| doAfterModify| 
-	doBefore | doBeforeCreate | doBeforeModify | doDeforeDelete;
+	doafter = 'doAfter' |	
+	doaftermodify = 'doAfterModify' |
+	doaftercreate = 'doAfterCreate'|
+	doafterdelete = 'doAfterDelete';
 
+enum SignalExecutionTypeEnum:
+	SYNC = 'synch' | ASYNC = 'asynch';
+	
 TRANSLATABLEID:
 	ID;
\ No newline at end of file
diff --git a/org.eclipse.osbp.xtext.signal/src/org/eclipse/osbp/xtext/signal/common/IOSBPSignalWatcher.java b/org.eclipse.osbp.xtext.signal/src/org/eclipse/osbp/xtext/signal/common/IOSBPSignalWatcher.java
index c6eee2d..e862796 100644
--- a/org.eclipse.osbp.xtext.signal/src/org/eclipse/osbp/xtext/signal/common/IOSBPSignalWatcher.java
+++ b/org.eclipse.osbp.xtext.signal/src/org/eclipse/osbp/xtext/signal/common/IOSBPSignalWatcher.java
@@ -2,9 +2,7 @@
 
 import java.io.IOException;
 import java.nio.file.Path;
-import java.nio.file.StandardWatchEventKinds;
 import java.nio.file.WatchEvent;
-import java.nio.file.WatchKey;
 
 public interface IOSBPSignalWatcher {
 
@@ -23,19 +21,15 @@
     /**
      * Register the given directory with the WatchService
      * @param directory
-     * @param signals {@link StandardWatchEventKinds#ENTRY_CREATE} {@link StandardWatchEventKinds#ENTRY_DELETE} 
-     * or {@link StandardWatchEventKinds#ENTRY_MODIFY} as string.
-     * @param combined	true, if only one {@link WatchKey} for all f
      * @throws IOException
      */
-    public void registerPathToWatcher(Path directory, String signals) throws IOException;
+    public void registerPathToWatcher(Path directory) throws IOException;
     
     /**
      * Register the given directory, and all its sub-directories,  with the WatchService.
      * @param rootpath	{@link Path} the root path.
-     * @param signals 
      * @throws IOException
      */
-    public void registerAll(Path rootpath, String signals) throws IOException;    
+    public void registerAll(Path rootpath) throws IOException;    
     
 }
diff --git a/org.eclipse.osbp.xtext.signal/src/org/eclipse/osbp/xtext/signal/common/OSBPSignalWatcher.java b/org.eclipse.osbp.xtext.signal/src/org/eclipse/osbp/xtext/signal/common/OSBPSignalWatcher.java
index 4daa562..ffd3029 100644
--- a/org.eclipse.osbp.xtext.signal/src/org/eclipse/osbp/xtext/signal/common/OSBPSignalWatcher.java
+++ b/org.eclipse.osbp.xtext.signal/src/org/eclipse/osbp/xtext/signal/common/OSBPSignalWatcher.java
@@ -9,7 +9,6 @@
 import java.nio.file.FileVisitResult;
 import java.nio.file.Files;
 import java.nio.file.Path;
-import java.nio.file.Paths;
 import java.nio.file.SimpleFileVisitor;
 import java.nio.file.StandardWatchEventKinds;
 import java.nio.file.WatchEvent;
@@ -19,40 +18,44 @@
 import java.nio.file.attribute.BasicFileAttributes;
 import java.util.Collection;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
-import org.eclipse.osbp.xtext.signal.SignalActionEnum;
+import org.eclipse.osbp.xtext.signal.SignalHandlerTypeEnum;
 import org.eclipse.osbp.xtext.signal.SignalTypeEnum;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public class OSBPSignalWatcher {
 
+	private Logger log = LoggerFactory.getLogger("watcher");
 	/** the watcher service */
 	private WatchService watcher;
 	/** list of all created keys and paths */
 	private Map<WatchKey, Path> keys = null;
-	/** determines if the all tree of a directory has to be watched for changes*/
-	private boolean recursive = false;
+	/** list of all signal type to watch */
+	private List<SignalTypeEnum> signals = null;
 
+	/**
+	 * determines if the all tree of a directory has to be watched for changes
+	 */
+	private boolean recursive = false;
 	// private static final long TIMEOUT = 10L;
 	// private static final TimeUnit TIMEUNIT = TimeUnit.SECONDS;
-	// for data-import
-	public static final String IMPORT_SUFFIX = "_imp";
-	// normal print to local
-	public static final String PRINT_SUFFIX = "_prt";
-	// pdf print in target directory
-	public static final String PDF_SUFFIX = "_pdf";
-	// send mail
-	public static final String MAIL_SUFFIX = "_sd";
-	// create notification
-	public static final String MESSAGE_SUFFIX = "_shw";
 
-	
+	/** the list of filemasks and the corresponding actions to execute */
+	private Map<String, SignalHandlerTypeEnum> masksAndactions = new HashMap<>();
+
 	public OSBPSignalWatcher() throws IOException {
 		this.watcher = FileSystems.getDefault().newWatchService();
 		this.keys = new HashMap<WatchKey, Path>();
 	}
-	
+
+	public void setSignals(List<SignalTypeEnum> signals) {
+		this.signals = signals;
+	}
+
 	/**
 	 * Process all events for keys queued to the watcher
 	 */
@@ -68,7 +71,7 @@
 
 			Path dir = keys.get(key);
 			if (dir == null) {
-				System.err.println("WatchKey not recognized!!");
+				log.error("WatchKey not recognized!!");
 				continue;
 			}
 
@@ -80,54 +83,77 @@
 					continue;
 				}
 
-				// Context for directory entry event is the file name of entry
-				WatchEvent<Path> ev = cast(event);
-				Path name = ev.context();
-				Path child = dir.resolve(name);
-				System.out.format("%s: %s\n", event.kind().name(), child);
+				if (isHandlingAllowed(kind)) {
+					// Context for directory entry event is the file name of
+					// entry
+					WatchEvent<Path> ev = cast(event);
+					Path child = dir.resolve(ev.context());
+					log.debug(String.format("%s: %s\n", event.kind().name(), child));
 
-				// depending on what the user decide to do before ending
-				// before reseting the event
-				handleEvent(ev);
+					// only allowed event can be handle
+					handleEvent(ev, child);
 
-				// if directory is created, and watching recursively, then
-				// register it and its sub-directories
-				if (recursive && (kind == ENTRY_CREATE)) {
-					try {
-						if (Files.isDirectory(child, NOFOLLOW_LINKS)) {
-							// TODO OSBP: this needs to be adjust here
-							// for now a single key for all kind of changes will
-							// be created
-							registerAll(child, null);
+					// if directory is created, and watching recursively, then
+					// register it and its sub-directories
+					if (recursive && (kind == ENTRY_CREATE)) {
+						try {
+							if (Files.isDirectory(child, NOFOLLOW_LINKS)) {
+								registerAll(child);
+							}
+						} catch (IOException x) {
+							// ignore to keep sample readbale
 						}
-					} catch (IOException x) {
-						// ignore to keep sample readbale
 					}
 				}
 
-			}
+				// reset key and remove from set if directory no longer
+				// accessible
+				boolean valid = key.reset();
+				if (!valid) {
+					keys.remove(key);
 
-			// reset key and remove from set if directory no longer accessible
-			boolean valid = key.reset();
-			if (!valid) {
-				keys.remove(key);
-
-				// all directories are inaccessible
-				if (keys.isEmpty()) {
-					break;
+					// all directories are inaccessible
+					if (keys.isEmpty()) {
+						break;
+					}
 				}
 			}
+
 		}
 	}
 
 	/**
+	 * Checks if an event type has to be handle or not.
+	 * 
+	 * @param event
+	 *            {@link WatchEvent<Path>} the event
+	 * @return true if yes, false if not
+	 */
+	public boolean isHandlingAllowed(Kind<?> event) {
+		if (signals.contains(SignalTypeEnum.ALL)) {
+			return true;
+		}
+
+		switch (event.name()) {
+		case "ENTRY_CREATE":
+			return signals.contains(SignalTypeEnum.CREATESIGNALS);
+		case "ENTRY_DELETE":
+			return signals.contains(SignalTypeEnum.DELETESIGNALS);
+		case "ENTRY_MODIFY":
+			return signals.contains(SignalTypeEnum.MODIFYSIGNALS);
+		default:
+			return false;
+		}
+
+	}
+
+	/**
 	 * Handling method for the user to extend
 	 * 
 	 * @param event
 	 *            the {@link WatchEvent}
 	 */
-	public void handleEvent(WatchEvent<Path> event) {
-		// put your logic here
+	public void handleEvent(WatchEvent<Path> event, Path file) {
 	}
 
 	@SuppressWarnings("unchecked")
@@ -144,12 +170,12 @@
 	 * @param signals
 	 * @throws IOException
 	 */
-	public void registerAll(Path rootpath, String signals) throws IOException {
+	public void registerAll(Path rootpath) throws IOException {
 		// register directory and sub-directories
 		Files.walkFileTree(rootpath, new SimpleFileVisitor<Path>() {
 			@Override
 			public FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes attrs) throws IOException {
-				registerPathToWatcher(dir, signals);
+				registerPathToWatcher(dir);
 				return FileVisitResult.CONTINUE;
 			}
 		});
@@ -165,40 +191,46 @@
 	 *            false to create separate key for each event type.
 	 * @throws IOException
 	 */
-	public void registerPathToWatcher(Path directory, String signals) throws IOException {
-		//TODO enter the register logic here
-		// registerPathToWatcher(directory, signals);
-		// watcher = FileSystems.getDefault().newWatchService();
-		// this.keys = new HashMap<WatchKey, Path>();
-		// if (signals != null && !signals.isEmpty()) {
-		// boolean iscreate =
-		// signals.contains(StandardWatchEventKinds.ENTRY_CREATE.toString());
-		// boolean isdelete =
-		// signals.contains(StandardWatchEventKinds.ENTRY_DELETE.toString());
-		// boolean ismodify =
-		// signals.contains(StandardWatchEventKinds.ENTRY_MODIFY.toString());
-		// // create one key for all kind of changes
-		// // and save the key for later use
-		// // TODO only applicable with xtext generation
-		// // keys.put(directory.register(watcher, iscreate ?
-		// StandardWatchEventKinds.ENTRY_CREATE :
-		// // null,
-		// // isdelete ? StandardWatchEventKinds.ENTRY_DELETE : null, ismodify ?
-		// StandardWatchEventKinds.ENTRY_MODIFY : null),
-		// // directory);
-		// keys.put(directory.register(watcher,
-		// StandardWatchEventKinds.ENTRY_CREATE,
-		// StandardWatchEventKinds.ENTRY_DELETE,
-		// StandardWatchEventKinds.ENTRY_MODIFY), directory);
-		// } else {
-		// // if none signals have been given by the user,
-		// // create a default key for all kind of changes
-		// // and save the key for later use
-		// keys.put(directory.register(watcher,
-		// StandardWatchEventKinds.ENTRY_CREATE,
-		// StandardWatchEventKinds.ENTRY_DELETE,
-		// StandardWatchEventKinds.ENTRY_MODIFY), directory);
-		// }
+	public void registerPathToWatcher(Path directory) throws IOException {
+		if (signals != null && !signals.isEmpty() && directory != null) {
+			if (signals.contains(SignalTypeEnum.ALL)) {
+				// create a default key for all kind of changes
+				// and save the key for later use
+				getRegisteredKeysAndPaths().put(directory.register(getWatcher(), StandardWatchEventKinds.ENTRY_CREATE,
+						StandardWatchEventKinds.ENTRY_DELETE, StandardWatchEventKinds.ENTRY_MODIFY), directory);
+			} else {
+				for (SignalTypeEnum signal : signals) {
+					switch (signal) {
+					case CREATESIGNALS: {
+						// create a default key for all kind of changes
+						// and save the key for later use
+						getRegisteredKeysAndPaths()
+								.put(directory.register(getWatcher(), StandardWatchEventKinds.ENTRY_CREATE), directory);
+						break;
+					}
+					case MODIFYSIGNALS: {
+						// create a default key for all kind of changes
+						// and save the key for later use
+						getRegisteredKeysAndPaths()
+								.put(directory.register(getWatcher(), StandardWatchEventKinds.ENTRY_MODIFY), directory);
+						break;
+					}
+					case DELETESIGNALS: {
+						// create a default key for all kind of changes
+						// and save the key for later use
+						getRegisteredKeysAndPaths()
+								.put(directory.register(getWatcher(), StandardWatchEventKinds.ENTRY_DELETE), directory);
+						break;
+					}
+					default:
+						// create no keys
+						break;
+					}
+				}
+			}
+		} else {
+			log.debug("directory or signal type missing");
+		}
 	}
 
 	/**
@@ -272,65 +304,66 @@
 	}
 
 	/**
-	 * Register the path and trigger the processing event operation to poll key
-	 * event.
-	 * 
-	 * @throws IOException
-	 */
-	public void startWatcher(String path, SignalTypeEnum signal) throws IOException {
-		registerPathToWatcher(Paths.get(path), getAppropriateKey(signal));
-		processEvents();
-	}
-
-	/**
-	 * Convenience operation gives the apporpriate key set for
-	 * 
-	 * @param type
-	 * @return
-	 */
-	public String getAppropriateKey(SignalTypeEnum type) {
-		switch (type) {
-		case CREATESIGNALS:
-			return StandardWatchEventKinds.ENTRY_CREATE.toString();
-		case DELETESIGNALS:
-			return StandardWatchEventKinds.ENTRY_DELETE.toString();
-		case MODIFYSIGNALS:
-			return StandardWatchEventKinds.ENTRY_MODIFY.toString();
-		case ALL:
-			return StandardWatchEventKinds.ENTRY_CREATE.toString() + StandardWatchEventKinds.ENTRY_DELETE.toString()
-					+ StandardWatchEventKinds.ENTRY_MODIFY.toString();
-		default:
-			return StandardWatchEventKinds.OVERFLOW.toString();
-		}
-	}
-
-	/**
-	 * Provides an action based on the filename.
+	 * Provides the appropriate action to execute based on the filename/filemask
+	 * check.
 	 * 
 	 * @param filename
 	 *            filename
 	 * @return
 	 */
-	public SignalActionEnum checkFileMask(String filename) {
+	public SignalHandlerTypeEnum checkFileMask(String filename) {
 		if (filename != null && !filename.isEmpty()) {
-			if (filename.toLowerCase().contains(IMPORT_SUFFIX)) {
-				// persist data into a db
-				return SignalActionEnum.DATAIMPORT;
-			} else if (filename.toLowerCase().contains(PRINT_SUFFIX)) {
-				// print a report from a printer
-				return SignalActionEnum.PRINT;
-			} else if (filename.toLowerCase().contains(PDF_SUFFIX)) {
-				// create a pdf or report of a bpm task
-				return SignalActionEnum.PDFPRINT;
-			} else if (filename.toLowerCase().contains(MAIL_SUFFIX)) {
-				// send a mail
-				return SignalActionEnum.MAIL;
-			} else if (filename.toLowerCase().contains(MESSAGE_SUFFIX)) {
-				// show notification
-				return SignalActionEnum.MESSAGEPROMPT;
+			for (String mask : masksAndactions.keySet()) {
+				String filemask = mask.substring(mask.indexOf("|") + 1);
+				// checks if a file matches
+				if (filename.toLowerCase().equals(filemask.toLowerCase())
+						|| filename.toLowerCase().contains(filemask.toLowerCase())
+						|| filename.toLowerCase().matches(filemask.toLowerCase())) {
+					return masksAndactions.get(mask);
+				}
 			}
 		}
-		return SignalActionEnum.NONE; // do nothing
+		// in the case of no filename matches
+		return SignalHandlerTypeEnum.DOAFTER;
+	}
+
+	public String isFileMaskValid(String filename, Kind<?> event) {
+		if (filename != null && !filename.isEmpty()) {
+			// checks if a filemask exist with the corresponding action
+			// filemask + create | filemask + modify | filemask + delete
+			for (String mask : masksAndactions.keySet()) {
+				String filemask = mask.substring(mask.indexOf("|") + 1);
+				// check if filename matches the mask
+				if (filename.toLowerCase().equals(filemask.toLowerCase())
+						|| filename.toLowerCase().contains(filemask.toLowerCase())
+						|| filename.toLowerCase().matches(filemask.toLowerCase())) {
+
+					// then if the action is also allowed
+					if (masksAndactions.get(mask).equals(getAcionTypeOnEvent(event))) {
+						return mask;
+					}
+				}
+			}
+		}
+		// in the case of no filename matches
+		return null;
+	}
+
+	private SignalHandlerTypeEnum getAcionTypeOnEvent(Kind<?> event) {
+		switch (event.name()) {
+		case "ENTRY_CREATE":
+			return SignalHandlerTypeEnum.DOAFTERCREATE;
+		case "ENTRY_DELETE":
+			return SignalHandlerTypeEnum.DOAFTERDELETE;
+		case "ENTRY_MODIFY":
+			return SignalHandlerTypeEnum.DOAFTERMODIFY;
+		default:
+			return SignalHandlerTypeEnum.DOAFTER;
+		}
+	}
+
+	public void addFilemaskAndAction(String filemask, SignalHandlerTypeEnum action) {
+		this.masksAndactions.put(filemask, action);
 	}
 
 }
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 59413a0..b8f03ee 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
@@ -11,35 +11,33 @@
  * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
  * 
  * generated by Xtext 2.11.0
- *
+ * 
  */
 
 package org.eclipse.osbp.xtext.signal.jvmmodel
 
 import java.io.IOException
 import java.nio.file.Path
-import java.nio.file.WatchEvent
+import java.util.HashSet
 import javax.inject.Inject
-import org.eclipse.e4.core.contexts.IEclipseContext
 import org.eclipse.osbp.core.api.persistence.IPersistenceService
 import org.eclipse.osbp.datainterchange.api.IDataInterchange
 import org.eclipse.osbp.dsl.common.xtext.extensions.AnnotationExtension
-import org.eclipse.osbp.runtime.common.event.IEventDispatcher
 import org.eclipse.osbp.ui.api.customfields.IBlobService
-import org.eclipse.osbp.ui.api.metadata.IDSLMetadataService
-import org.eclipse.osbp.ui.api.user.IUser
 import org.eclipse.osbp.ui.api.useraccess.IUserAccessService
 import org.eclipse.osbp.xtext.datainterchange.DataInterchange
 import org.eclipse.osbp.xtext.datainterchange.DataInterchangeFileCSV
 import org.eclipse.osbp.xtext.datainterchange.DataInterchangeFileEDI
 import org.eclipse.osbp.xtext.datainterchange.DataInterchangeFileXML
-import org.eclipse.osbp.xtext.datainterchange.DataInterchangePackage
+import org.eclipse.osbp.xtext.datainterchange.common.WorkerThreadRunnable.Direction
+import org.eclipse.osbp.xtext.signal.ListTransfer
+import org.eclipse.osbp.xtext.signal.SignalActionEnum
 import org.eclipse.osbp.xtext.signal.SignalDSLPackage
-import org.eclipse.osbp.xtext.signal.SignalHandling
+import org.eclipse.osbp.xtext.signal.SignalDatainterchange
+import org.eclipse.osbp.xtext.signal.SignalExecutionTypeEnum
 import org.eclipse.osbp.xtext.signal.SignalPackage
-import org.eclipse.osbp.xtext.signal.SignalTypeEnum
 import org.eclipse.osbp.xtext.signal.SignalWatcher
-import org.eclipse.osbp.xtext.signal.common.IOSBPSignalWatcher
+import org.eclipse.osbp.xtext.signal.SingleTransfer
 import org.eclipse.osbp.xtext.signal.common.OSBPSignalWatcher
 import org.eclipse.xtext.common.types.JvmField
 import org.eclipse.xtext.common.types.JvmGenericType
@@ -48,15 +46,18 @@
 import org.eclipse.xtext.xbase.jvmmodel.AbstractModelInferrer
 import org.eclipse.xtext.xbase.jvmmodel.IJvmDeclaredTypeAcceptor
 import org.eclipse.xtext.xbase.jvmmodel.JvmTypesBuilder
+import org.osgi.service.component.annotations.Activate
 import org.osgi.service.component.annotations.Component
+import org.osgi.service.component.annotations.Deactivate
 import org.osgi.service.component.annotations.Reference
 import org.osgi.service.component.annotations.ReferenceCardinality
 import org.osgi.service.component.annotations.ReferencePolicy
 import org.slf4j.Logger
+import java.util.concurrent.ExecutorService
 
 /**
  * <p>Infers a JVM model from the source model.</p> 
- *
+ * 
  * <p>The JVM model should contain all elements that would appear in the Java code 
  * which is generated from the source model. Other models link against the JVM model rather than the source model.</p>     
  */
@@ -69,10 +70,10 @@
 	@Inject extension IQualifiedNameProvider
 	@Inject extension SignalModelGenerator sg
 	@Inject extension AnnotationExtension
-	
+
 	var public static String pckgName = null
-	var String binderClassName = ""
-	
+	var HashSet<String> operationlist
+
 	/**
 	 * infer model on package base. Will be called for every defined package.
 	 * 
@@ -83,521 +84,478 @@
 	 * @param isPreIndexingPhase
 	 *            true if in preindexing phase
 	 */
-	def dispatch void infer(SignalPackage signalPackage, IJvmDeclaredTypeAcceptor acceptor, boolean isPreIndexingPhase) {
+	def dispatch void infer(SignalPackage signalPackage, IJvmDeclaredTypeAcceptor acceptor,
+		boolean isPreIndexingPhase) {
 		pckgName = signalPackage.name;
-		binderClassName = signalPackage.fullyQualifiedName.lastSegment.toFirstUpper+"ServiceBinder"
-		
+
 		var cls = signalPackage.toClass(pckgName)
 		cls.simpleName = cls.simpleName.toFirstUpper
-		
-		//create watchers
-		for(watcher : signalPackage.watchers){
-			var watcherClass = watcher.fullyQualifiedName
-			
-			acceptor.accept(watcher.toClass(watcherClass), [
-				superTypes +=  _typeReferenceBuilder.typeRef(OSBPSignalWatcher)
+
+		// create watchers
+		for (watcher : signalPackage.watchers) {
+			var watcherClass = watcher.toClass(watcher.fullyQualifiedName)
+			watcherClass.simpleName = watcher.name.toFirstUpper
+			watcherClass.packageName = pckgName
+
+			acceptor.accept(watcherClass, [
+				superTypes += _typeReferenceBuilder.typeRef(OSBPSignalWatcher)
 				var annotationRef = _annotationTypesBuilder.annotationRef(typeof(Component))
-//				annotationRef.addAnnAttr(signalPackage, "service", _typeReferenceBuilder.typeRef(IOSBPSignalWatcher))
+				annotationRef.addAnnAttr(signalPackage, "immediate", Boolean.TRUE)
 				annotations += annotationRef
-				
+
+				it.fileHeader = signalPackage.documentation
 				it.toWatcherFields(watcher)
 				it.toWatcherConstructor(watcher)
 				it.toWatcherOperations(watcher)
-				it.fileHeader = signalPackage.documentation
-				
-				//create all handlers
-				for(signalhandler : signalPackage.handlers){
-					if(watcher == signalhandler.watcher){
-						it.toHandlerOperations(watcher, signalhandler.handler)
-					}
-				}
+				it.toBinderOperations(watcher)
 			])
 		}
-		
-		//create the service binder class
-		cls = signalPackage.toClass(pckgName.concat("ServiceBinder"))
-		cls.simpleName = cls.simpleName.toFirstUpper
-		
-		acceptor.accept(cls,[
-				annotations += _annotationTypesBuilder.annotationRef(SuppressWarnings, "serial")
-				annotations += _annotationTypesBuilder.annotationRef(typeof(Component))
-				
-				it.fileHeader = signalPackage.documentation
-			 	it.toBinderFields(signalPackage)
-				it.toBinderOperations(signalPackage)
-		])
 	}
 	
-	def void toBinderFields(JvmGenericType type, SignalPackage signal){
-		var JvmField field = null
-		//creat logger
-		field = signal.toField("log", _typeReferenceBuilder.typeRef(Logger))[setInitializer([append('''org.slf4j.LoggerFactory.getLogger("servicebinder")''')])]
-   		field.static = true
-   		field.visibility = JvmVisibility::PRIVATE
-		type.members += field
-//		// create eventdispatcher service field
-//		field = signal.toField("eventDispatcher", _typeReferenceBuilder.typeRef(IEventDispatcher))
-//   		field.static = true
-//   		field.visibility = JvmVisibility::PRIVATE
-//		type.members += field
-		// create persistence service field
-		field = signal.toField("persistenceService", _typeReferenceBuilder.typeRef(IPersistenceService))
-   		field.static = true
-   		field.visibility = JvmVisibility::PRIVATE
-		type.members += field
-		// create datainterchange service field
-		field = signal.toField("dataInterchange", _typeReferenceBuilder.typeRef(IDataInterchange))
-   		field.static = true
-   		field.visibility = JvmVisibility::PRIVATE
-		type.members += field
-		// create user service field
-		field = signal.toField("userAccessService", _typeReferenceBuilder.typeRef(IUserAccessService))
-		field.static = true
-   		field.visibility = JvmVisibility::PRIVATE
-		type.members += field
-//		// create dsl metadata service field		
-//		field = signal.toField("dslMetadataService", _typeReferenceBuilder.typeRef(IDSLMetadataService))
-//		field.static = true
-//   		field.visibility = JvmVisibility::PRIVATE
-//		type.members += field
-		// create blob service field		
-		field = signal.toField("blobService", _typeReferenceBuilder.typeRef(IBlobService))
-		field.static = true
-   		field.visibility = JvmVisibility::PRIVATE
-		type.members += field
-	}
-	
-	def void toBinderOperations(JvmGenericType type, SignalPackage signal){
-		type.members += signal.toMethod("getDataInterchange", _typeReferenceBuilder.typeRef(IDataInterchange), [
-			visibility = JvmVisibility.PUBLIC
-			static = true
-			body = [append('''return dataInterchange;''')]
-		])
-		type.members += signal.toMethod("getBlobService", _typeReferenceBuilder.typeRef(IBlobService), [
-			visibility = JvmVisibility.PUBLIC
-			static = true
-			body = [append('''return blobService;''')]
-		])
-		type.members += signal.toMethod("getPersistenceService", _typeReferenceBuilder.typeRef(IPersistenceService), [
-			visibility = JvmVisibility.PUBLIC
-			static = true
-			body = [append('''return persistenceService;''')]
-		])
-		type.members += signal.toMethod("getUserAccessService", _typeReferenceBuilder.typeRef(IUserAccessService), [
-			visibility = JvmVisibility.PUBLIC
-			static = true
-			body = [append('''return userAccessService;''')]
-		])
-//		type.members += signal.toMethod("getDSLMetadataService", _typeReferenceBuilder.typeRef(IDSLMetadataService), [
+	def void toBinderOperations(JvmGenericType type, SignalWatcher watcher) {
+//		// getter sor services		
+//		type.members += watcher.toMethod("getDataInterchange", _typeReferenceBuilder.typeRef(IDataInterchange), [
 //			visibility = JvmVisibility.PUBLIC
 //			static = true
-//			body = [append('''return dslMetadataService;''')]
+//			body = [append('''return dataInterchange;''')]
+//		])
+//		type.members += watcher.toMethod("getBlobService", _typeReferenceBuilder.typeRef(IBlobService), [
+//			visibility = JvmVisibility.PUBLIC
+//			static = true
+//			body = [append('''return blobService;''')]
+//		])
+//		type.members += watcher.toMethod("getPersistenceService", _typeReferenceBuilder.typeRef(IPersistenceService), [
+//			visibility = JvmVisibility.PUBLIC
+//			static = true
+//			body = [append('''return persistenceService;''')]
+//		])
+//		type.members += watcher.toMethod("getUserAccessService", _typeReferenceBuilder.typeRef(IUserAccessService), [
+//			visibility = JvmVisibility.PUBLIC
+//			static = true
+//			body = [append('''return userAccessService;''')]
 //		])
 		// bind datainterchange service
-		type.members += signal.toMethod("bindDataInterchangeMethod", _typeReferenceBuilder.typeRef(Void::TYPE), [
+		type.members += watcher.toMethod("bindDataInterchangeMethod", _typeReferenceBuilder.typeRef(Void::TYPE), [
 			var annotationRef = _annotationTypesBuilder.annotationRef(typeof(Reference))
-			annotationRef.addAnnAttr(signal, "cardinality", ReferenceCardinality.MANDATORY)
-			annotationRef.addAnnAttr(signal, "policy", ReferencePolicy.STATIC)
+			annotationRef.addAnnAttr(watcher, "cardinality", ReferenceCardinality.MANDATORY)
+			annotationRef.addAnnAttr(watcher, "policy", ReferencePolicy.STATIC)
 			annotations += annotationRef
 			visibility = JvmVisibility.PUBLIC
 			synchronized = true
-   			parameters += signal.toParameter("dataInterchange", _typeReferenceBuilder.typeRef(IDataInterchange))
-			body = [append(
-			'''
-			«signal.fullyQualifiedName.lastSegment.toFirstUpper+"ServiceBinder"».dataInterchange = dataInterchange;
-			log.debug("Signal DataInterchange bound");
-			''')]
+			parameters += watcher.toParameter("dataInterchange", _typeReferenceBuilder.typeRef(IDataInterchange))
+			body = [append('''
+			this.dataInterchange = dataInterchange;
+			log.debug("Signal DataInterchange bound");''')]
 		])
 		// unbind datainterchange service
-		type.members += signal.toMethod("unbindDataInterchangeMethod", _typeReferenceBuilder.typeRef(Void::TYPE), [
+		type.members += watcher.toMethod("unbindDataInterchangeMethod", _typeReferenceBuilder.typeRef(Void::TYPE), [
 			visibility = JvmVisibility.PUBLIC
 			synchronized = true
-   			parameters += signal.toParameter("dataInterchange", _typeReferenceBuilder.typeRef(IDataInterchange))
-			body = [append(
-			'''
-			«signal.fullyQualifiedName.lastSegment.toFirstUpper+"ServiceBinder"».dataInterchange = null;
-			log.debug("Signal DataInterchange unbound");
-			''')]
+			parameters += watcher.toParameter("dataInterchange", _typeReferenceBuilder.typeRef(IDataInterchange))
+			body = [
+				append('''
+				this.dataInterchange = null;
+				log.debug("Signal DataInterchange unbound");
+				''')
+			]
 		])
 		// bind blob service
-		type.members += signal.toMethod("bindBlobMethod", _typeReferenceBuilder.typeRef(Void::TYPE), [
+		type.members += watcher.toMethod("bindBlobMethod", _typeReferenceBuilder.typeRef(Void::TYPE), [
 			var annotationRef = _annotationTypesBuilder.annotationRef(typeof(Reference))
-			annotationRef.addAnnAttr(signal, "cardinality", ReferenceCardinality.MANDATORY)
-			annotationRef.addAnnAttr(signal, "policy", ReferencePolicy.STATIC)
+			annotationRef.addAnnAttr(watcher, "cardinality", ReferenceCardinality.MANDATORY)
+			annotationRef.addAnnAttr(watcher, "policy", ReferencePolicy.STATIC)
 			annotations += annotationRef
 			visibility = JvmVisibility.PUBLIC
 			synchronized = true
-   			parameters += signal.toParameter("blobService", _typeReferenceBuilder.typeRef(IBlobService))
-			body = [append(
+			parameters += watcher.toParameter("blobService", _typeReferenceBuilder.typeRef(IBlobService))
+			body = [
+				append(
 			'''
-			«signal.fullyQualifiedName.lastSegment.toFirstUpper+"ServiceBinder"».blobService = blobService;
-			log.debug("Signal BlobService bound");
-			''')]
+					this.blobService = blobService;
+					log.debug("Signal BlobService bound");
+				''')
+			]
 		])
 		// unbind blob service
-		type.members += signal.toMethod("unbindBlobMethod", _typeReferenceBuilder.typeRef(Void::TYPE), [
+		type.members += watcher.toMethod("unbindBlobMethod", _typeReferenceBuilder.typeRef(Void::TYPE), [
 			visibility = JvmVisibility.PUBLIC
 			synchronized = true
-   			parameters += signal.toParameter("blobService", _typeReferenceBuilder.typeRef(IBlobService))
-			body = [append(
+			parameters += watcher.toParameter("blobService", _typeReferenceBuilder.typeRef(IBlobService))
+			body = [
+				append(
 			'''
-			«signal.fullyQualifiedName.lastSegment.toFirstUpper+"ServiceBinder"».blobService = null;
-			log.debug("Signal BlobService unbound");
-			''')]
+					this.blobService = null;
+					log.debug("Signal BlobService unbound");
+				''')
+			]
 		])
 		// bind persistence service
-		type.members += signal.toMethod("bindPersistenceMethod", _typeReferenceBuilder.typeRef(Void::TYPE), [
+		type.members += watcher.toMethod("bindPersistenceMethod", _typeReferenceBuilder.typeRef(Void::TYPE), [
 			var annotationRef = _annotationTypesBuilder.annotationRef(typeof(Reference))
-			annotationRef.addAnnAttr(signal, "cardinality", ReferenceCardinality.MANDATORY)
-			annotationRef.addAnnAttr(signal, "policy", ReferencePolicy.STATIC)
+			annotationRef.addAnnAttr(watcher, "cardinality", ReferenceCardinality.MANDATORY)
+			annotationRef.addAnnAttr(watcher, "policy", ReferencePolicy.STATIC)
 			annotations += annotationRef
 			visibility = JvmVisibility.PUBLIC
 			synchronized = true
-   			parameters += signal.toParameter("persistenceService", _typeReferenceBuilder.typeRef(IPersistenceService))
-			body = [append(
+			parameters += watcher.toParameter("persistenceService", _typeReferenceBuilder.typeRef(IPersistenceService))
+			body = [
+				append(
 			'''
-			«signal.fullyQualifiedName.lastSegment.toFirstUpper+"ServiceBinder"».persistenceService = persistenceService;
-			log.debug("Signal PersistenceService bound");
-			''')]
+					this.persistenceService = persistenceService;
+					log.debug("Signal PersistenceService bound");
+				''')
+			]
 		])
 		// unbind persistence service
-		type.members += signal.toMethod("unbindPersistenceMethod", _typeReferenceBuilder.typeRef(Void::TYPE), [
+		type.members += watcher.toMethod("unbindPersistenceMethod", _typeReferenceBuilder.typeRef(Void::TYPE), [
 			visibility = JvmVisibility.PUBLIC
 			synchronized = true
-   			parameters += signal.toParameter("persistenceService", _typeReferenceBuilder.typeRef(IPersistenceService))
-			body = [append(
+			parameters += watcher.toParameter("persistenceService", _typeReferenceBuilder.typeRef(IPersistenceService))
+			body = [
+				append(
 			'''
-			«signal.fullyQualifiedName.lastSegment.toFirstUpper+"ServiceBinder"».persistenceService = null;
-			log.debug("Signal PersistenceService unbound");
-			''')]
+					this.persistenceService = null;
+					log.debug("Signal PersistenceService unbound");
+				''')
+			]
 		])
 		// bind userAccessService
-		type.members += signal.toMethod("bindUserAccessMethod", _typeReferenceBuilder.typeRef(Void::TYPE), [
+		type.members += watcher.toMethod("bindUserAccessMethod", _typeReferenceBuilder.typeRef(Void::TYPE), [
 			var annotationRef = _annotationTypesBuilder.annotationRef(typeof(Reference))
-			annotationRef.addAnnAttr(signal, "cardinality", ReferenceCardinality.MANDATORY)
-			annotationRef.addAnnAttr(signal, "policy", ReferencePolicy.STATIC)
+			annotationRef.addAnnAttr(watcher, "cardinality", ReferenceCardinality.MANDATORY)
+			annotationRef.addAnnAttr(watcher, "policy", ReferencePolicy.STATIC)
 			annotations += annotationRef
 			visibility = JvmVisibility.PUBLIC
 			synchronized = true
-   			parameters += signal.toParameter("userAccessService", _typeReferenceBuilder.typeRef(IUserAccessService))
-			body = [append(
+			parameters += watcher.toParameter("userAccessService", _typeReferenceBuilder.typeRef(IUserAccessService))
+			body = [
+				append(
 			'''
-			«signal.fullyQualifiedName.lastSegment.toFirstUpper+"ServiceBinder"».userAccessService = userAccessService;
-			log.debug("Signal UserAccessService bound");
-			''')]
+					this.userAccessService = userAccessService;
+					log.debug("Signal UserAccessService bound");
+				''')
+			]
 		])
 		// unbind userAccessService
-		type.members += signal.toMethod("unbindUserAccessMethod", _typeReferenceBuilder.typeRef(Void::TYPE), [
+		type.members += watcher.toMethod("unbindUserAccessMethod", _typeReferenceBuilder.typeRef(Void::TYPE), [
 			visibility = JvmVisibility.PUBLIC
 			synchronized = true
-   			parameters += signal.toParameter("userAccessService", _typeReferenceBuilder.typeRef(IUserAccessService))
-			body = [append(
+			parameters += watcher.toParameter("userAccessService", _typeReferenceBuilder.typeRef(IUserAccessService))
+			body = [
+				append(
 			'''
-			«signal.fullyQualifiedName.lastSegment.toFirstUpper+"ServiceBinder"».userAccessService = null;
-			log.debug("Signal UserAccessService unbound");''')]
-		])
-//		// bind dslMetadataService
-//		type.members += signal.toMethod("bindDSLMetadataService", _typeReferenceBuilder.typeRef(Void::TYPE), [
-//			var annotationRef = _annotationTypesBuilder.annotationRef(typeof(Reference))
-//			annotationRef.addAnnAttr(signal, "cardinality", ReferenceCardinality.MANDATORY)
-//			annotationRef.addAnnAttr(signal, "policy", ReferencePolicy.STATIC)
-//			annotations += annotationRef
-//			visibility = JvmVisibility.PUBLIC
-//			synchronized = true
-//   			parameters += signal.toParameter("dslMetadataService", _typeReferenceBuilder.typeRef(IDSLMetadataService))
-//			body = [append(
-//			'''
-//			«signal.fullyQualifiedName.lastSegment.toFirstUpper+"ServiceBinder"».dslMetadataService = dslMetadataService;
-//			log.debug("Signal DSLMetadataService bound");''')]
-//		])
-//		// unbind dslMetadataService
-//		type.members += signal.toMethod("unbindDSLMetadataService", _typeReferenceBuilder.typeRef(Void::TYPE), [
-//			visibility = JvmVisibility.PUBLIC
-//			synchronized = true
-//   			parameters += signal.toParameter("dslMetadataService", _typeReferenceBuilder.typeRef(IDSLMetadataService))
-//			body = [append(
-//			'''
-//			«signal.fullyQualifiedName.lastSegment.toFirstUpper+"ServiceBinder"».dslMetadataService = null;
-//			log.debug("Signal DSLMetadataService unbound");''')]
-//		])
-	}
-	
-	def void toHandlerOperations(JvmGenericType type, SignalWatcher watcher, SignalHandling handling){
-		//create handler operation based on the handling type
-		type.members += watcher.toMethod("executeImport", _typeReferenceBuilder.typeRef(Void::TYPE), [
-			val ref = handling.dataRef as DataInterchange
-			body = [append('''«ref.executeImport»''')]
+				this.userAccessService = null;
+				log.debug("Signal UserAccessService unbound");''')
+			]
 		])
 	}
-	
-	def String executeImport(DataInterchange dataInterchange){
-		return
-		'''
-		«getBasicRunConfiguration(dataInterchange, true, getFileURL(dataInterchange), "IMPORT")»
-		«dataInterchange.getDefaultVariableName()».setDirection(WorkerThreadRunnable.Direction.IMPORT);
-		
-		// later for notification in the dialog
-		//Notification.show(dslMetadataService.translate(user.getLocale().toLanguageTag(), "datainterchangeStarted"),Notification.Type.HUMANIZED_MESSAGE);
-		
-		//execution of code now		
-		«dataInterchange.getDefaultVariableName()».run();
-		'''
-	}
-	
+
 	def String getFileURL(DataInterchange dataInterchange) {
-		switch(dataInterchange.fileEndpoint) {
-			DataInterchangeFileXML: return (dataInterchange.fileEndpoint as DataInterchangeFileXML).fileURL 
-			DataInterchangeFileCSV: return (dataInterchange.fileEndpoint as DataInterchangeFileCSV).fileURL 
-			DataInterchangeFileEDI: return (dataInterchange.fileEndpoint as DataInterchangeFileEDI).fileURL 
+		switch (dataInterchange.fileEndpoint) {
+			DataInterchangeFileXML: return (dataInterchange.fileEndpoint as DataInterchangeFileXML).fileURL
+			DataInterchangeFileCSV: return (dataInterchange.fileEndpoint as DataInterchangeFileCSV).fileURL
+			DataInterchangeFileEDI: return (dataInterchange.fileEndpoint as DataInterchangeFileEDI).fileURL
 		}
 		return ""
 	}
-	
-	def String getDefaultVariableName(DataInterchange dataInterchange) {
-        return dataInterchange.name.toFirstLower
-    }
 
-	def String getBasicRunConfiguration(DataInterchange dataInterchange, boolean fqClass, String fileURL, String direction) {
-    	var className = ""
-    	if	(fqClass) {
-    		className = dataInterchange.fullyQualifiedName.toString
-    	}
-    	else {
-    		className = dataInterchange.name
-    	} 
-        return 
-        '''
+	def String getDefaultVariableName(DataInterchange dataInterchange) {
+		return dataInterchange.name.toFirstLower
+	}
+
+	def String getBasicRunConfiguration(DataInterchange dataInterchange, boolean fqClass, String fileURL,
+		Direction direction, boolean asynch) {
+		var className = ""
+		if (fqClass) {
+			className = dataInterchange.fullyQualifiedName.toString
+		} else {
+			className = dataInterchange.name
+		}
+		return '''
 			«className» «dataInterchange.getDefaultVariableName» = new «className»();
-			String url = ""; //ProductConfiguration.getDatainterchangeConfiguration();
-			//if(url.isEmpty()) {
-			//	url = System.getProperty("user.home")+"/.osbee/"+"«(dataInterchange.eContainer as DataInterchangePackage).title»Config.xml";
-			//}
-			File file = new File(url);
-			if(file.exists()) {
-				FileInputStream fileInput;
-				try {
-					fileInput = new FileInputStream(file);
-					Properties properties = new Properties();
-					properties.loadFromXML(fileInput);
-					fileInput.close();
-					if(properties.getProperty("«dataInterchange.name»-«direction.toLowerCase()»") == null) {
-						«dataInterchange.getDefaultVariableName».setFileURL("«fileURL»");
-					} else {
-						«dataInterchange.getDefaultVariableName».setFileURL(properties.getProperty("«dataInterchange.name»-«direction.toLowerCase()»"));
-					}
-				} catch (IOException e) {
-					StringWriter sw = new StringWriter();
-					e.printStackTrace(new PrintWriter(sw));
-					log.error("{}", sw.toString());
-					return;
-				}
-			} else {
-				«dataInterchange.getDefaultVariableName».setFileURL("«fileURL»");
-			}
+			«dataInterchange.getDefaultVariableName».setFileURL("«fileURL»");
 			«dataInterchange.getDefaultVariableName».setPersistenceService(persistenceService);
 			«dataInterchange.getDefaultVariableName».setDataInterchange(dataInterchange);
-			«dataInterchange.getDefaultVariableName».setEventDispatcher(eventDispatcher);
 			«dataInterchange.getDefaultVariableName».setBlobService(blobService);
-        '''
-    }
+			«dataInterchange.getDefaultVariableName()».setDirection(WorkerThreadRunnable.Direction.«direction.name.toUpperCase»);
+			return «dataInterchange.getDefaultVariableName»;'''
+	}
 
-	def void toWatcherOperations(JvmGenericType type, SignalWatcher watcher){
-		// create watcher registerPathtoWacher
-   		type.members += watcher.toMethod("registerPathToWatcher", _typeReferenceBuilder.typeRef(Void::TYPE), [
-   			annotations += _annotationTypesBuilder.annotationRef(Override)
-   			parameters += watcher.toParameter("directory", _typeReferenceBuilder.typeRef(Path))
-   			parameters += watcher.toParameter("signals", _typeReferenceBuilder.typeRef(String))
-   			exceptions += _typeReferenceBuilder.typeRef(IOException)
-   			body = [ append('''«watcher.registerPathToWatcher»''')]
-   		])
-		// create watcher registerAll
-   		type.members += watcher.toMethod("registerAll", _typeReferenceBuilder.typeRef(Void::TYPE), [
-   			annotations += _annotationTypesBuilder.annotationRef(Override)
-   			parameters += watcher.toParameter("rootpath", _typeReferenceBuilder.typeRef(Path))
-   			parameters += watcher.toParameter("signals", _typeReferenceBuilder.typeRef(String))
-   			exceptions += _typeReferenceBuilder.typeRef(IOException)
-   			body = [ append('''«watcher.registerAll»''')]
-   		])
-		// create watcher handleEvent
-   		type.members += watcher.toMethod("handleEvent", _typeReferenceBuilder.typeRef(Void::TYPE), [
-   			annotations += _annotationTypesBuilder.annotationRef(Override)
-   			parameters += watcher.toParameter("event", _typeReferenceBuilder.typeRef(WatchEvent))
-   			body = [ append('''«watcher.handleEvent»''')]
-   		])
-		// create watcher processEvents
-   		type.members += watcher.toMethod("processEvents", _typeReferenceBuilder.typeRef(Void::TYPE), [
-   			annotations += _annotationTypesBuilder.annotationRef(Override)
-   			body = [ append('''«watcher.processEvents»''')]
-   		])
-		// create watcher start operation
-   		type.members += watcher.toMethod("start", _typeReferenceBuilder.typeRef(Void::TYPE), [
-   			exceptions += _typeReferenceBuilder.typeRef(IOException)
-   			body = [ append('''«watcher.start»''')]
-   		])   		
-		// create watcher stop operation
-   		type.members += watcher.toMethod("stop", _typeReferenceBuilder.typeRef(Void::TYPE), [
-   			exceptions += _typeReferenceBuilder.typeRef(IOException)
-   			body = [ append('''«watcher.stop»''')]
-   		])   		
-	}
-	
-	def void toWatcherFields(JvmGenericType type, SignalWatcher watcher){
-		var JvmField field = null
-		// create Service injectatbles eventDispatcher
-		field = watcher.toField("eventDispatcher", _typeReferenceBuilder.typeRef(IEventDispatcher))[
-			visibility = JvmVisibility::PRIVATE
-//			static = true
-		]
-		type.members += field		
-		// create Service injectatbles eventDispatcher
-		field = watcher.toField("persistenceService", _typeReferenceBuilder.typeRef(IPersistenceService))[
-			visibility = JvmVisibility::PRIVATE
-//			static = true
-		]
-		type.members += field		
-		// create Service injectatbles eventDispatcher
-		field = watcher.toField("dataInterchange", _typeReferenceBuilder.typeRef(IDataInterchange))[
-			visibility = JvmVisibility::PRIVATE
-//			static = true
-		]
-		type.members += field		
-		// create Service injectatbles eventDispatcher
-		field = watcher.toField("dslMetadataService", _typeReferenceBuilder.typeRef(IDSLMetadataService))[
-			visibility = JvmVisibility::PRIVATE
-//			static = true
-		]
-		type.members += field		
-		// create Service injectatbles eventDispatcher
-		field = watcher.toField("blobService", _typeReferenceBuilder.typeRef(IBlobService))[
-			visibility = JvmVisibility::PRIVATE
-//			static = true
-		]
-		type.members += field		
-		// create Service injectatbles user
-		field = watcher.toField("user", _typeReferenceBuilder.typeRef(IUser))[
-			visibility = JvmVisibility::PRIVATE
-//			static = true
-		]
-		type.members += field				
-		// create Service injectatbles eclipseContext
-		field = watcher.toField("eclipseContext", _typeReferenceBuilder.typeRef(IEclipseContext))[
-			visibility = JvmVisibility::PRIVATE
-//			static = true
-		]
-		type.members += field		
-		// create logger
-		field = watcher.toField("log", _typeReferenceBuilder.typeRef(Logger)) [
-			setInitializer([append('''LoggerFactory.getLogger("watcher")''')])
-			visibility = JvmVisibility::PRIVATE
-//			static = true
-		]
-		type.members += field		
-		// create directory field
-		field = watcher.toField("path", _typeReferenceBuilder.typeRef(String))[
-			setInitializer([append('''"«watcher.directory»"''')])
-			visibility = JvmVisibility::PRIVATE
-		]
-		type.members += field
-		// create target signal
-		field = watcher.toField("signal", _typeReferenceBuilder.typeRef(SignalTypeEnum))[
-			setInitializer([append('''SignalTypeEnum.«watcher.signal.literal.toUpperCase»''')])
-			visibility = JvmVisibility::PRIVATE
-		]
-		type.members += field
-	}
-	
-	def void toWatcherConstructor(JvmGenericType type, SignalWatcher watcher){
-		type.members += watcher.toConstructor[
-			exceptions += _typeReferenceBuilder.typeRef(IOException)
-			body = [append('''super();''')]
-		]
-	}
-	
-	def String registerAll(SignalWatcher watcher){
-		return 
-		'''
-		//TODO enter the register logic here
-		super.registerAll(rootpath, signals);
-		'''
-	}
-	
-	def String registerPathToWatcher(SignalWatcher watcher){
-		return 
-		'''
-		if (signals != null && !signals.isEmpty()) {
-			boolean iscreate = signals.contains(StandardWatchEventKinds.ENTRY_CREATE.toString());
-			boolean isdelete = signals.contains(StandardWatchEventKinds.ENTRY_DELETE.toString());
-			boolean ismodify = signals.contains(StandardWatchEventKinds.ENTRY_MODIFY.toString());
-			// create one key for all kind of changes
-			// and save the key for later use
-			// TODO only applicable with xtext generation
-			// keys.put(directory.register(watcher, iscreate ? StandardWatchEventKinds.ENTRY_CREATE :
-			// null,
-			// isdelete ? StandardWatchEventKinds.ENTRY_DELETE : null, ismodify ? StandardWatchEventKinds.ENTRY_MODIFY : null),
-			// directory);
-			getRegisteredKeysAndPaths().put(directory.register(getWatcher(), StandardWatchEventKinds.ENTRY_CREATE, StandardWatchEventKinds.ENTRY_DELETE, StandardWatchEventKinds.ENTRY_MODIFY), directory);
-		} else {
-			// if none signals have been given by the user,
-			// create a default key for all kind of changes
-			// and save the key for later use
-			getRegisteredKeysAndPaths().put(directory.register(getWatcher(), StandardWatchEventKinds.ENTRY_CREATE, StandardWatchEventKinds.ENTRY_DELETE, StandardWatchEventKinds.ENTRY_MODIFY), directory);
-		}
-		'''
-	}
-	
-	def String getHandleEvent(SignalWatcher watcher){
-		return
-		'''
-		//super.handleEvent(event);
-		
-		Path filename = ((WatchEvent<Path>) event).context().getFileName();
-		
-		// get what to do based on the filename
-		SignalActionEnum action = super.checkFileMask(filename.toString());
+	def void toWatcherOperations(JvmGenericType type, SignalWatcher watcher) {
+		// creating the handleEvent operation, detailing the order 
+		// of execution of each operation after a signal is caught
+		type.members += watcher.toMethod("handleEvent", _typeReferenceBuilder.typeRef(Void::TYPE), [
+			annotations += _annotationTypesBuilder.annotationRef(Override)
+			parameters += watcher.toParameter("event", _typeReferenceBuilder.typeRef("WatchEvent<Path>"))
+			parameters += watcher.toParameter("file", _typeReferenceBuilder.typeRef(Path))
+			body = [append('''«watcher.handleEvent»''')]
+		])
 
-		if (event.kind() == StandardWatchEventKinds.ENTRY_CREATE && !action.equals(SignalActionEnum.NONE)) {
-			switch (action) {
-			case DATAIMPORT:
-				executeImport();
-				break;
-«««			case PRINT:
-«««				printFile();
-«««				break;
-«««			case PDFPRINT:
-«««				printPdfFile();
-«««				break;
-«««			case MAIL:
-«««				sendEmail();
-«««				break;
-«««			case MESSAGEPROMPT:
-«««				showNotification();
-«««				break;
-			default: // do nothing
-				break;
+		// creating executetask operation
+		type.members += watcher.toMethod("executeTasks", _typeReferenceBuilder.typeRef(Void::TYPE), [
+			parameters += watcher.toParameter("interchanges", _typeReferenceBuilder.typeRef("ArrayList<WorkerThreadRunnable>"))
+			parameters += watcher.toParameter("synchronous", _typeReferenceBuilder.typeRef(boolean))
+			body = [append('''«watcher.executeTasks»''')]
+		])
+
+		// create all handlers operations
+		operationlist = new HashSet()
+		if (watcher !== null && watcher.handlers !== null && !watcher.handlers.empty) {
+			for (handler : watcher.handlers) {
+				if (handler.data instanceof SingleTransfer) {
+					// only one interchange is available 
+					val transferdata = handler.data as SingleTransfer
+					createAppropriateInterchangeOperations(type, watcher, transferdata.interchange)
+				} else {
+					// a list of interchange is available 
+					val transferdata = handler.data as ListTransfer
+					for (interchange : transferdata.interchanges) {
+						createAppropriateInterchangeOperations(type, watcher, interchange)
+					}
+				}
 			}
 		}
-		'''
+		
+		// create watcher initTasksLists
+		type.members += watcher.toMethod("initTasksLists", _typeReferenceBuilder.typeRef(Void::TYPE), [
+			body = [append('''«watcher.initTasksLists»''')]
+		])
+		
+		// create watcher stopthread
+		type.members += watcher.toMethod("stopThread", _typeReferenceBuilder.typeRef(Void::TYPE), [
+			body = [append('''active = false;''')]
+		])
+		// create watcher activate
+		type.members += watcher.toMethod("activate", _typeReferenceBuilder.typeRef(Void::TYPE), [
+			annotations += _annotationTypesBuilder.annotationRef(Activate)
+			body = [append('''«watcher.activate»''')]
+		])
+		// create watcher deactivate
+		type.members += watcher.toMethod("deactivate", _typeReferenceBuilder.typeRef(Void::TYPE), [
+			annotations += _annotationTypesBuilder.annotationRef(Deactivate)
+			body = [append('''«watcher.deactivate»''')]
+		])
+		
 	}
 	
-	def String getStart(SignalWatcher watcher){
-		return
-		'''
-		super.startWatcher(path, signal);
-		'''
-	}
-	
-	def String getStop(SignalWatcher watcher){
-		return
-		'''
-	  	// stop the service
-	  	super.getWatcher().close();
-		'''
+	def String executeTasks(SignalWatcher watcher){
+		return '''
+		for (WorkerThreadRunnable interchange : interchanges) {
+			if(synchronous){
+				//Making sure that the current task is done before continuing 
+				try {
+					log.debug("Watcher: Start "+interchange.getDirection()+" for interchange "+interchange.getName()+"!");
+					executorService.submit(interchange).get();
+					log.debug("Watcher: "+interchange.getDirection()+" for "+ interchange.getName() + " successfully ended!");
+				} catch (Exception e) {
+					log.debug("Watcher: "+interchange.getDirection()+" for "+ interchange.getName() + " interupted ended!\n"+e.getMessage());
+				}
+			}
+			else{
+				// Just executre the task and move onto the next one
+				executorService.execute(interchange);
+			}
+		}'''
 	}
 
-	def String getProcessEvents(SignalWatcher watcher){
-		return
+	def String handleEvent(SignalWatcher watcher) {
+		var result = '''
+			// get what to do based on the filename
+			String filemask = isFileMaskValid(file.getFileName().toString(), event.kind());
+			if(filemask != null){
+				switch (filemask) {
 		'''
-		super.processEvents();
+		
+		for(handler : watcher.handlers){
+			if(handler.data instanceof SingleTransfer){
+				var handlerdata = handler.data as SingleTransfer
+				result = result.concat(
+				'''
+						case "«handler.name+"|"+handler.filemask»":
+							executorService.execute(«handlerdata.interchange.getAppropriateInterchangeOperationName»()); break;
+				''')
+			}else{
+				var handlerdata = handler.data as ListTransfer
+				var is_synch = (handlerdata.executiontype ?: SignalExecutionTypeEnum.SYNC).equals(SignalExecutionTypeEnum.SYNC)
+				result = result.concat(
+				'''
+						case "«handler.name+"|"+handler.filemask»":
+						executeTasks(listOfTasks.get("«handler.name+"|"+handler.filemask»"), «is_synch»); break;
+				''')
+			}
+		}
+
+		result = result.concat(
 		'''
-	}	
+				default: break;
+			}
+		}
+	   	else{
+	    	log.debug("No action executed for file ["+file+"] on event ["+event.kind().name()+"].");
+	    }''')
+		
+		return result
+	}
+
+	def void toWatcherConstructor(JvmGenericType type, SignalWatcher watcher) {
+		type.members += watcher.toConstructor [
+			exceptions += _typeReferenceBuilder.typeRef(IOException)
+			body = [append(
+			'''
+			super();
+			executorService = Executors.newFixedThreadPool(10);''')]
+		]
+	}
+	
+	def String initTasksLists(SignalWatcher watcher){
+		var result = '''
+		ArrayList<WorkerThreadRunnable> data = null;
+		listOfTasks = new HashMap<>();
+		'''
+
+		for(handler : watcher.handlers){
+			if(handler.data instanceof ListTransfer){
+				var handlerdata = handler.data as ListTransfer
+				
+				result = result.concat('''data = new ArrayList<WorkerThreadRunnable>();
+				''')
+				
+				for (interchange : handlerdata.interchanges) {
+					result = result.concat('''data.add(«interchange.appropriateInterchangeOperationName»());
+					''')
+				}
+				result = result.concat('''listOfTasks.put("«handler.name+"|"+handler.filemask»", data);
+				''');
+			}
+			result = result.concat('''
+			addFilemaskAndAction("«handler.name+"|"+handler.filemask»", SignalHandlerTypeEnum.«handler.actionType.literal.toUpperCase»);
+			''')
+		}
+		return result
+	}
+
+	def String getAppropriateInterchangeOperationName(SignalDatainterchange interchange) {
+		var operation_name = ""
+		if (interchange.dataAction == SignalActionEnum.DATAIMPORT && interchange.dataRef !== null) {
+			operation_name = "import" + interchange.dataRef.name.toFirstUpper
+			
+		} else if (interchange.dataRef !== null) {
+			operation_name = "export" + interchange.dataRef.name.toFirstUpper
+		}
+		return operation_name
+	}
+	
+	def createAppropriateInterchangeOperations(JvmGenericType type, SignalWatcher watcher, SignalDatainterchange interchange) {
+		var operationname = interchange.appropriateInterchangeOperationName
+		
+		//create the operation only if it has not already been created
+		if(!operationlist.contains(operationname)){
+			if(interchange.dataAction == SignalActionEnum.DATAIMPORT){
+				type.members +=
+				watcher.toMethod(operationname, _typeReferenceBuilder.typeRef("WorkerThreadRunnable"), 
+				[
+					body = [append('''«interchange.dataRef.getBasicRunConfiguration(true, getFileURL(interchange.dataRef), Direction.IMPORT, false)»''')]
+				])
+			}
+			else{
+				type.members +=
+				watcher.toMethod(operationname, _typeReferenceBuilder.typeRef("WorkerThreadRunnable"), 
+				[
+					body = [append('''«interchange.dataRef.getBasicRunConfiguration(true, getFileURL(interchange.dataRef), Direction.EXPORT, false)»''')]
+				])
+			} 
+			operationlist.add(operationname)
+		}
+	}
+
+	def void toWatcherFields(JvmGenericType type, SignalWatcher watcher) {
+		var JvmField field = null
+		// create logger field
+		field = watcher.toField("log", _typeReferenceBuilder.typeRef(Logger)) [
+			visibility = JvmVisibility::PRIVATE
+			setInitializer([append('''LoggerFactory.getLogger("watcher")''')])
+		]
+		type.members += field
+		// create thread field
+		field = watcher.toField("thread", _typeReferenceBuilder.typeRef(Thread)) [
+			visibility = JvmVisibility::PRIVATE
+		]
+		type.members += field
+		// create active field
+		field = watcher.toField("active", _typeReferenceBuilder.typeRef(boolean)) [
+			setInitializer([append('''true''')])
+			visibility = JvmVisibility::PRIVATE
+		]
+		type.members += field
+		// create active field
+		field = watcher.toField("executorService", _typeReferenceBuilder.typeRef(ExecutorService)) [
+			visibility = JvmVisibility::PRIVATE
+			static = true
+		]
+		type.members += field
+		// create listOftasks field
+		field = watcher.toField("listOfTasks",
+			_typeReferenceBuilder.typeRef("Map<String, ArrayList<WorkerThreadRunnable>>")) [
+			visibility = JvmVisibility::PRIVATE
+		]
+		type.members += field
+		// create persistence service field
+		field = watcher.toField("persistenceService", _typeReferenceBuilder.typeRef(IPersistenceService))
+		field.static = true
+		field.visibility = JvmVisibility::PRIVATE
+		type.members += field
+		// create datainterchange service field
+		field = watcher.toField("dataInterchange", _typeReferenceBuilder.typeRef(IDataInterchange))
+		field.static = true
+		field.visibility = JvmVisibility::PRIVATE
+		type.members += field
+		// create user service field
+		field = watcher.toField("userAccessService", _typeReferenceBuilder.typeRef(IUserAccessService))
+		field.static = true
+		field.visibility = JvmVisibility::PRIVATE
+		type.members += field
+		// create blob service field		
+		field = watcher.toField("blobService", _typeReferenceBuilder.typeRef(IBlobService))
+		field.static = true
+		field.visibility = JvmVisibility::PRIVATE
+		type.members += field
+	}
+
+	def String getActivate(SignalWatcher watcher) {
+		return '''
+			thread = new Thread() {
+				@Override
+					public void run() {
+						//«watcher.name.toFirstUpper» watcherservice = null;
+							try {
+								//watcherservice = new «watcher.name.toFirstUpper»();
+								//watcherservice.setSignals(Arrays.asList(SignalTypeEnum.«watcher.signal.literal.toUpperCase»));
+								//watcherservice.registerPathToWatcher(Paths.get("«watcher.directory»"));
+								setSignals(Arrays.asList(SignalTypeEnum.«watcher.signal.literal.toUpperCase»));
+								registerPathToWatcher(Paths.get("«watcher.directory»"));
+								while (active) {
+									log.debug("Start watcher Service «watcher.name.toFirstUpper»");
+									//watcherservice.processEvents();
+									initTasksLists();
+									processEvents();
+								}
+							} catch (Exception e) {
+								log.debug("Thread interrupted " + e.getMessage());
+								//watcherservice.closeWatcher();
+								closeWatcher();
+							}
+					}
+			};
+			thread.start();'''
+	}
+
+	def String getDeactivate(SignalWatcher watcher) {
+		return '''
+			try {
+				stopThread();
+				thread.join();
+			} catch (InterruptedException e) {
+				e.printStackTrace();
+			}'''
+	}
 }
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 247032f..8c839f2 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
@@ -17,37 +17,30 @@
  
 package org.eclipse.osbp.xtext.signal.jvmmodel
 
-import com.vaadin.ui.Notification
-import java.io.File
-import java.io.FileInputStream
-import java.io.PrintWriter
-import java.io.StringWriter
 import java.nio.file.FileSystems
 import java.nio.file.Path
 import java.nio.file.Paths
-import java.nio.file.StandardWatchEventKinds
 import java.nio.file.WatchEvent
-import java.nio.file.WatchKey
+import java.util.ArrayList
+import java.util.Arrays
 import java.util.HashMap
-import java.util.Properties
+import java.util.Map
+import java.util.concurrent.Executors
 import javax.inject.Inject
 import org.eclipse.emf.ecore.EObject
 import org.eclipse.emf.ecore.resource.Resource
 import org.eclipse.osbp.core.api.persistence.IPersistenceService
 import org.eclipse.osbp.datainterchange.api.IDataInterchange
-import org.eclipse.osbp.preferences.ProductConfiguration
-import org.eclipse.osbp.runtime.common.event.EventDispatcherEvent
-import org.eclipse.osbp.runtime.common.event.EventDispatcherEvent.EventDispatcherCommand
-import org.eclipse.osbp.runtime.common.event.EventDispatcherEvent.EventDispatcherDataTag
 import org.eclipse.osbp.xtext.basic.generator.BasicDslGeneratorUtils
 import org.eclipse.osbp.xtext.datainterchange.common.WorkerThreadRunnable
 import org.eclipse.osbp.xtext.i18n.I18NModelGenerator
-import org.eclipse.osbp.xtext.signal.SignalActionEnum
+import org.eclipse.osbp.xtext.signal.SignalHandlerTypeEnum
 import org.eclipse.osbp.xtext.signal.SignalTypeEnum
 import org.eclipse.osbp.xtext.signal.common.OSBPSignalWatcher
 import org.eclipse.xtext.generator.IFileSystemAccess
 import org.eclipse.xtext.xbase.compiler.GeneratorConfig
 import org.eclipse.xtext.xbase.compiler.ImportManager
+import org.slf4j.Logger
 import org.slf4j.LoggerFactory
 
 class SignalModelGenerator extends I18NModelGenerator {
@@ -62,30 +55,22 @@
 		// ---------
 		addImportFor(importManager, _typeReferenceBuilder,
 			SignalTypeEnum,
-			LoggerFactory,
+			SignalHandlerTypeEnum,
 			OSBPSignalWatcher,
-			StandardWatchEventKinds,
-			WatchKey,
-			WatchEvent,
-			WatchEvent.Kind,
-			Path,
 			Paths,
-			ProductConfiguration,
-			File,
-			FileInputStream,
-			StringWriter,
-			PrintWriter,
-			Properties,
-			Notification,
 			WorkerThreadRunnable,
-			EventDispatcherCommand,
-			EventDispatcherDataTag,
-			EventDispatcherEvent,
 			IPersistenceService,
 			IDataInterchange,
-			SignalActionEnum,
 			FileSystems,
-			HashMap			
+			Logger,
+			LoggerFactory,
+			HashMap,
+			Arrays,
+			WatchEvent,
+			Path,
+			Executors,
+			Map,
+			ArrayList
 		)
 		super.createAppendable(context, importManager, config)
 	}
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 21a98e0..f3453d7 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
@@ -16,23 +16,126 @@
 
 package org.eclipse.osbp.xtext.signal.validation
 
+import java.util.HashSet
+import org.eclipse.osbp.xtext.signal.SignalDSLPackage
+import org.eclipse.osbp.xtext.signal.SignalHandler
+import org.eclipse.osbp.xtext.signal.SignalHandlerTypeEnum
+import org.eclipse.osbp.xtext.signal.SignalPackage
+import org.eclipse.osbp.xtext.signal.SignalTypeEnum
+import org.eclipse.osbp.xtext.signal.SignalWatcher
+import org.eclipse.xtext.validation.Check
 
 /**
  * This class contains custom validation rules. 
  *
  * See https://www.eclipse.org/Xtext/documentation/303_runtime_concepts.html#validation
  */
-class SignalDSLValidator extends org.eclipse.osbp.xtext.signal.validation.AbstractSignalDSLValidator {
+class SignalDSLValidator extends AbstractSignalDSLValidator {
 	
-//	public static val INVALID_NAME = 'invalidName'
-//
-//	@Check
-//	def checkGreetingStartsWithCapital(Greeting greeting) {
-//		if (!Character.isUpperCase(greeting.name.charAt(0))) {
-//			warning('Name should start with a capital', 
-//					SignalDSLPackage.Literals.GREETING__NAME,
-//					INVALID_NAME)
-//		}
-//	}
+	@Check
+	def checkSignalHandling(SignalWatcher watcher) {
+		for(handler : watcher.handlers){
+			if(handler !== null){
+				// check handler action type
+				if(watcher !== null && handler.actionType !== null){
+					checkHandlerActionType(handler)
+					var signal = watcher.signal 
+					if(signal !== null && signal.equals(SignalTypeEnum.ALL)){
+						// no problem						
+					}
+					else if ( signal !== null && signal.equals(SignalTypeEnum.CREATESIGNALS)){
+						if (!SignalHandlerTypeEnum.DOAFTERCREATE.equals(handler.actionType)){
+							error("Only the handler type doAfterCreate is allowed here.", handler, SignalDSLPackage.Literals.SIGNAL_HANDLER__ACTION_TYPE)
+						}
+					}
+					else if (signal !== null && signal.equals(SignalTypeEnum.DELETESIGNALS)) {
+						if(!SignalHandlerTypeEnum.DOAFTERDELETE.equals(handler.actionType)){
+							error("Only the handler type doAfterDelete is allowed here.", handler, SignalDSLPackage.Literals.SIGNAL_HANDLER__ACTION_TYPE)
+						}						
+					}
+					else if (signal !== null && signal.equals(SignalTypeEnum.MODIFYSIGNALS)){
+						if (!SignalHandlerTypeEnum.DOAFTERMODIFY.equals(handler.actionType)){
+							error("Only the handler type doAföterModify is allowed here.", handler, SignalDSLPackage.Literals.SIGNAL_HANDLER__ACTION_TYPE)
+						}
+					}
+				}
+			}
+		}
+	}
+	
+	def checkHandlerActionType(SignalHandler handler){
+		var signal = (handler.eContainer as SignalWatcher).signal 
+		if(signal !== null && signal.equals(SignalTypeEnum.ALL)){
+			// no problem						
+		}
+		else if ( signal !== null && signal.equals(SignalTypeEnum.CREATESIGNALS)){
+			if (!SignalHandlerTypeEnum.DOAFTERCREATE.equals(handler.actionType)){
+				error("Only the handler type doAfterCreate is allowed here.", handler, SignalDSLPackage.Literals.SIGNAL_HANDLER__ACTION_TYPE)
+			}
+		}
+		else if (signal !== null && signal.equals(SignalTypeEnum.DELETESIGNALS)) {
+			if(!SignalHandlerTypeEnum.DOAFTERDELETE.equals(handler.actionType)){
+				error("Only the handler type doAfterDelete is allowed here.", handler, SignalDSLPackage.Literals.SIGNAL_HANDLER__ACTION_TYPE)
+			}						
+		}
+		else if (signal !== null && signal.equals(SignalTypeEnum.MODIFYSIGNALS)){
+			if (!SignalHandlerTypeEnum.DOAFTERMODIFY.equals(handler.actionType)){
+				error("Only the handler type doAfterModify is allowed here.", handler, SignalDSLPackage.Literals.SIGNAL_HANDLER__ACTION_TYPE)
+			}
+		}
+	}
+	
+	@Check
+	def checkDuplicateWatcherNames(SignalPackage pkg){
+		var watchers = new HashSet<String>()
+		for(watcher : pkg.watchers){
+			if(!watchers.contains(watcher.name)){
+				watchers.add(watcher.name)
+			}
+			else{
+				error("The watcher id has to be unique.", watcher, SignalDSLPackage.Literals.SIGNAL_WATCHER__NAME)
+			}
+		}
+	}
+	
+	@Check
+	def checkDuplicateHandlerNames(SignalWatcher watcher){
+		var handlers = new HashSet<String>()
+		for(handler : watcher.handlers){
+			if(!handlers.contains(handler.name)){
+				handlers.add(handler.name)
+			}
+			else{
+				error("The handler id has to be unique.", handler, SignalDSLPackage.Literals.SIGNAL_HANDLER__NAME)
+			}
+		}
+	}
+
+	@Check
+	def checkDuplicateDirectoryNames(SignalPackage pkg){
+		var watcherdir = new HashSet<String>()
+		for(watcher : pkg.watchers){
+			if(!watcherdir.contains(watcher.directory)){
+				watcherdir.add(watcher.directory)
+			}
+			else{
+				error("The watcher directory '"+watcher.directory+"' is already in use. Please choose another directory.", watcher, SignalDSLPackage.Literals.SIGNAL_WATCHER__DIRECTORY)
+			}
+		}
+	}
+	
+	def boolean checkDuplicateFileMasks(SignalWatcher watcher){
+		var filemasks = new HashSet<String>()
+		for(handler : watcher.handlers){
+			if(!filemasks.contains(handler.name+"."+handler.filemask)){
+				filemasks.add(handler.name+"."+handler.filemask)
+			}
+			else{
+				error("The handler file mask can't be the same as another one, inside a watcher on the same directory.", handler, SignalDSLPackage.Literals.SIGNAL_HANDLER__FILEMASK)
+				return true
+			}
+		}
+		return false
+	}
 	
 }
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 c81b213..86b5d93 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
@@ -16,32 +16,33 @@
 import com.google.common.base.Objects;
 import java.io.IOException;
 import java.nio.file.Path;
-import java.nio.file.WatchEvent;
 import java.util.Arrays;
+import java.util.HashSet;
+import java.util.concurrent.ExecutorService;
 import javax.inject.Inject;
-import org.eclipse.e4.core.contexts.IEclipseContext;
 import org.eclipse.emf.common.util.EList;
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.osbp.core.api.persistence.IPersistenceService;
 import org.eclipse.osbp.datainterchange.api.IDataInterchange;
 import org.eclipse.osbp.dsl.common.xtext.extensions.AnnotationExtension;
-import org.eclipse.osbp.runtime.common.event.IEventDispatcher;
 import org.eclipse.osbp.ui.api.customfields.IBlobService;
-import org.eclipse.osbp.ui.api.metadata.IDSLMetadataService;
-import org.eclipse.osbp.ui.api.user.IUser;
 import org.eclipse.osbp.ui.api.useraccess.IUserAccessService;
 import org.eclipse.osbp.xtext.datainterchange.DataInterchange;
 import org.eclipse.osbp.xtext.datainterchange.DataInterchangeFile;
 import org.eclipse.osbp.xtext.datainterchange.DataInterchangeFileCSV;
 import org.eclipse.osbp.xtext.datainterchange.DataInterchangeFileEDI;
 import org.eclipse.osbp.xtext.datainterchange.DataInterchangeFileXML;
-import org.eclipse.osbp.xtext.datainterchange.DataInterchangePackage;
+import org.eclipse.osbp.xtext.datainterchange.common.WorkerThreadRunnable;
+import org.eclipse.osbp.xtext.signal.DataTransfer;
+import org.eclipse.osbp.xtext.signal.ListTransfer;
+import org.eclipse.osbp.xtext.signal.SignalActionEnum;
 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.SignalHandler;
-import org.eclipse.osbp.xtext.signal.SignalHandling;
 import org.eclipse.osbp.xtext.signal.SignalPackage;
-import org.eclipse.osbp.xtext.signal.SignalTypeEnum;
 import org.eclipse.osbp.xtext.signal.SignalWatcher;
+import org.eclipse.osbp.xtext.signal.SingleTransfer;
 import org.eclipse.osbp.xtext.signal.common.OSBPSignalWatcher;
 import org.eclipse.osbp.xtext.signal.jvmmodel.SignalModelGenerator;
 import org.eclipse.xtend2.lib.StringConcatenation;
@@ -55,7 +56,6 @@
 import org.eclipse.xtext.common.types.JvmTypeReference;
 import org.eclipse.xtext.common.types.JvmVisibility;
 import org.eclipse.xtext.naming.IQualifiedNameProvider;
-import org.eclipse.xtext.naming.QualifiedName;
 import org.eclipse.xtext.xbase.compiler.output.ITreeAppendable;
 import org.eclipse.xtext.xbase.jvmmodel.AbstractModelInferrer;
 import org.eclipse.xtext.xbase.jvmmodel.IJvmDeclaredTypeAcceptor;
@@ -63,7 +63,9 @@
 import org.eclipse.xtext.xbase.lib.Extension;
 import org.eclipse.xtext.xbase.lib.Procedures.Procedure1;
 import org.eclipse.xtext.xbase.lib.StringExtensions;
+import org.osgi.service.component.annotations.Activate;
 import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Deactivate;
 import org.osgi.service.component.annotations.Reference;
 import org.osgi.service.component.annotations.ReferenceCardinality;
 import org.osgi.service.component.annotations.ReferencePolicy;
@@ -98,7 +100,7 @@
   
   public static String pckgName = null;
   
-  private String binderClassName = "";
+  private HashSet<String> operationlist;
   
   /**
    * infer model on package base. Will be called for every defined package.
@@ -112,380 +114,204 @@
    */
   protected void _infer(final SignalPackage signalPackage, final IJvmDeclaredTypeAcceptor acceptor, final boolean isPreIndexingPhase) {
     SignalDSLJvmModelInferrer.pckgName = signalPackage.getName();
-    String _firstUpper = StringExtensions.toFirstUpper(this._iQualifiedNameProvider.getFullyQualifiedName(signalPackage).getLastSegment());
-    String _plus = (_firstUpper + "ServiceBinder");
-    this.binderClassName = _plus;
     JvmGenericType cls = this._jvmTypesBuilder.toClass(signalPackage, SignalDSLJvmModelInferrer.pckgName);
     cls.setSimpleName(StringExtensions.toFirstUpper(cls.getSimpleName()));
     EList<SignalWatcher> _watchers = signalPackage.getWatchers();
     for (final SignalWatcher watcher : _watchers) {
       {
-        QualifiedName watcherClass = this._iQualifiedNameProvider.getFullyQualifiedName(watcher);
+        JvmGenericType watcherClass = this._jvmTypesBuilder.toClass(watcher, this._iQualifiedNameProvider.getFullyQualifiedName(watcher));
+        watcherClass.setSimpleName(StringExtensions.toFirstUpper(watcher.getName()));
+        watcherClass.setPackageName(SignalDSLJvmModelInferrer.pckgName);
         final Procedure1<JvmGenericType> _function = (JvmGenericType it) -> {
           EList<JvmTypeReference> _superTypes = it.getSuperTypes();
           JvmTypeReference _typeRef = this._typeReferenceBuilder.typeRef(OSBPSignalWatcher.class);
           this._jvmTypesBuilder.<JvmTypeReference>operator_add(_superTypes, _typeRef);
           JvmAnnotationReference annotationRef = this._annotationTypesBuilder.annotationRef(Component.class);
+          this._annotationExtension.addAnnAttr(annotationRef, signalPackage, "immediate", Boolean.TRUE);
           EList<JvmAnnotationReference> _annotations = it.getAnnotations();
           this._jvmTypesBuilder.<JvmAnnotationReference>operator_add(_annotations, annotationRef);
+          this._jvmTypesBuilder.setFileHeader(it, this._jvmTypesBuilder.getDocumentation(signalPackage));
           this.toWatcherFields(it, watcher);
           this.toWatcherConstructor(it, watcher);
           this.toWatcherOperations(it, watcher);
-          this._jvmTypesBuilder.setFileHeader(it, this._jvmTypesBuilder.getDocumentation(signalPackage));
-          EList<SignalHandler> _handlers = signalPackage.getHandlers();
-          for (final SignalHandler signalhandler : _handlers) {
-            SignalWatcher _watcher = signalhandler.getWatcher();
-            boolean _equals = Objects.equal(watcher, _watcher);
-            if (_equals) {
-              this.toHandlerOperations(it, watcher, signalhandler.getHandler());
-            }
-          }
+          this.toBinderOperations(it, watcher);
         };
-        acceptor.<JvmGenericType>accept(this._jvmTypesBuilder.toClass(watcher, watcherClass), _function);
+        acceptor.<JvmGenericType>accept(watcherClass, _function);
       }
     }
-    cls = this._jvmTypesBuilder.toClass(signalPackage, SignalDSLJvmModelInferrer.pckgName.concat("ServiceBinder"));
-    cls.setSimpleName(StringExtensions.toFirstUpper(cls.getSimpleName()));
-    final Procedure1<JvmGenericType> _function = (JvmGenericType it) -> {
-      EList<JvmAnnotationReference> _annotations = it.getAnnotations();
-      JvmAnnotationReference _annotationRef = this._annotationTypesBuilder.annotationRef(SuppressWarnings.class, "serial");
-      this._jvmTypesBuilder.<JvmAnnotationReference>operator_add(_annotations, _annotationRef);
-      EList<JvmAnnotationReference> _annotations_1 = it.getAnnotations();
-      JvmAnnotationReference _annotationRef_1 = this._annotationTypesBuilder.annotationRef(Component.class);
-      this._jvmTypesBuilder.<JvmAnnotationReference>operator_add(_annotations_1, _annotationRef_1);
-      this._jvmTypesBuilder.setFileHeader(it, this._jvmTypesBuilder.getDocumentation(signalPackage));
-      this.toBinderFields(it, signalPackage);
-      this.toBinderOperations(it, signalPackage);
-    };
-    acceptor.<JvmGenericType>accept(cls, _function);
   }
   
-  public void toBinderFields(final JvmGenericType type, final SignalPackage signal) {
-    JvmField field = null;
-    final Procedure1<JvmField> _function = (JvmField it) -> {
-      final Procedure1<ITreeAppendable> _function_1 = (ITreeAppendable it_1) -> {
-        StringConcatenation _builder = new StringConcatenation();
-        _builder.append("org.slf4j.LoggerFactory.getLogger(\"servicebinder\")");
-        it_1.append(_builder);
-      };
-      this._jvmTypesBuilder.setInitializer(it, _function_1);
-    };
-    field = this._jvmTypesBuilder.toField(signal, "log", this._typeReferenceBuilder.typeRef(Logger.class), _function);
-    field.setStatic(true);
-    field.setVisibility(JvmVisibility.PRIVATE);
-    EList<JvmMember> _members = type.getMembers();
-    this._jvmTypesBuilder.<JvmField>operator_add(_members, field);
-    field = this._jvmTypesBuilder.toField(signal, "persistenceService", this._typeReferenceBuilder.typeRef(IPersistenceService.class));
-    field.setStatic(true);
-    field.setVisibility(JvmVisibility.PRIVATE);
-    EList<JvmMember> _members_1 = type.getMembers();
-    this._jvmTypesBuilder.<JvmField>operator_add(_members_1, field);
-    field = this._jvmTypesBuilder.toField(signal, "dataInterchange", this._typeReferenceBuilder.typeRef(IDataInterchange.class));
-    field.setStatic(true);
-    field.setVisibility(JvmVisibility.PRIVATE);
-    EList<JvmMember> _members_2 = type.getMembers();
-    this._jvmTypesBuilder.<JvmField>operator_add(_members_2, field);
-    field = this._jvmTypesBuilder.toField(signal, "userAccessService", this._typeReferenceBuilder.typeRef(IUserAccessService.class));
-    field.setStatic(true);
-    field.setVisibility(JvmVisibility.PRIVATE);
-    EList<JvmMember> _members_3 = type.getMembers();
-    this._jvmTypesBuilder.<JvmField>operator_add(_members_3, field);
-    field = this._jvmTypesBuilder.toField(signal, "blobService", this._typeReferenceBuilder.typeRef(IBlobService.class));
-    field.setStatic(true);
-    field.setVisibility(JvmVisibility.PRIVATE);
-    EList<JvmMember> _members_4 = type.getMembers();
-    this._jvmTypesBuilder.<JvmField>operator_add(_members_4, field);
-  }
-  
-  public void toBinderOperations(final JvmGenericType type, final SignalPackage signal) {
+  public void toBinderOperations(final JvmGenericType type, final SignalWatcher watcher) {
     EList<JvmMember> _members = type.getMembers();
     final Procedure1<JvmOperation> _function = (JvmOperation it) -> {
-      it.setVisibility(JvmVisibility.PUBLIC);
-      it.setStatic(true);
-      final Procedure1<ITreeAppendable> _function_1 = (ITreeAppendable it_1) -> {
-        StringConcatenation _builder = new StringConcatenation();
-        _builder.append("return dataInterchange;");
-        it_1.append(_builder);
-      };
-      this._jvmTypesBuilder.setBody(it, _function_1);
-    };
-    JvmOperation _method = this._jvmTypesBuilder.toMethod(signal, "getDataInterchange", this._typeReferenceBuilder.typeRef(IDataInterchange.class), _function);
-    this._jvmTypesBuilder.<JvmOperation>operator_add(_members, _method);
-    EList<JvmMember> _members_1 = type.getMembers();
-    final Procedure1<JvmOperation> _function_1 = (JvmOperation it) -> {
-      it.setVisibility(JvmVisibility.PUBLIC);
-      it.setStatic(true);
-      final Procedure1<ITreeAppendable> _function_2 = (ITreeAppendable it_1) -> {
-        StringConcatenation _builder = new StringConcatenation();
-        _builder.append("return blobService;");
-        it_1.append(_builder);
-      };
-      this._jvmTypesBuilder.setBody(it, _function_2);
-    };
-    JvmOperation _method_1 = this._jvmTypesBuilder.toMethod(signal, "getBlobService", this._typeReferenceBuilder.typeRef(IBlobService.class), _function_1);
-    this._jvmTypesBuilder.<JvmOperation>operator_add(_members_1, _method_1);
-    EList<JvmMember> _members_2 = type.getMembers();
-    final Procedure1<JvmOperation> _function_2 = (JvmOperation it) -> {
-      it.setVisibility(JvmVisibility.PUBLIC);
-      it.setStatic(true);
-      final Procedure1<ITreeAppendable> _function_3 = (ITreeAppendable it_1) -> {
-        StringConcatenation _builder = new StringConcatenation();
-        _builder.append("return persistenceService;");
-        it_1.append(_builder);
-      };
-      this._jvmTypesBuilder.setBody(it, _function_3);
-    };
-    JvmOperation _method_2 = this._jvmTypesBuilder.toMethod(signal, "getPersistenceService", this._typeReferenceBuilder.typeRef(IPersistenceService.class), _function_2);
-    this._jvmTypesBuilder.<JvmOperation>operator_add(_members_2, _method_2);
-    EList<JvmMember> _members_3 = type.getMembers();
-    final Procedure1<JvmOperation> _function_3 = (JvmOperation it) -> {
-      it.setVisibility(JvmVisibility.PUBLIC);
-      it.setStatic(true);
-      final Procedure1<ITreeAppendable> _function_4 = (ITreeAppendable it_1) -> {
-        StringConcatenation _builder = new StringConcatenation();
-        _builder.append("return userAccessService;");
-        it_1.append(_builder);
-      };
-      this._jvmTypesBuilder.setBody(it, _function_4);
-    };
-    JvmOperation _method_3 = this._jvmTypesBuilder.toMethod(signal, "getUserAccessService", this._typeReferenceBuilder.typeRef(IUserAccessService.class), _function_3);
-    this._jvmTypesBuilder.<JvmOperation>operator_add(_members_3, _method_3);
-    EList<JvmMember> _members_4 = type.getMembers();
-    final Procedure1<JvmOperation> _function_4 = (JvmOperation it) -> {
       JvmAnnotationReference annotationRef = this._annotationTypesBuilder.annotationRef(Reference.class);
-      this._annotationExtension.addAnnAttr(annotationRef, signal, "cardinality", ReferenceCardinality.MANDATORY);
-      this._annotationExtension.addAnnAttr(annotationRef, signal, "policy", ReferencePolicy.STATIC);
+      this._annotationExtension.addAnnAttr(annotationRef, watcher, "cardinality", ReferenceCardinality.MANDATORY);
+      this._annotationExtension.addAnnAttr(annotationRef, watcher, "policy", ReferencePolicy.STATIC);
       EList<JvmAnnotationReference> _annotations = it.getAnnotations();
       this._jvmTypesBuilder.<JvmAnnotationReference>operator_add(_annotations, annotationRef);
       it.setVisibility(JvmVisibility.PUBLIC);
       it.setSynchronized(true);
       EList<JvmFormalParameter> _parameters = it.getParameters();
-      JvmFormalParameter _parameter = this._jvmTypesBuilder.toParameter(signal, "dataInterchange", this._typeReferenceBuilder.typeRef(IDataInterchange.class));
+      JvmFormalParameter _parameter = this._jvmTypesBuilder.toParameter(watcher, "dataInterchange", this._typeReferenceBuilder.typeRef(IDataInterchange.class));
+      this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters, _parameter);
+      final Procedure1<ITreeAppendable> _function_1 = (ITreeAppendable it_1) -> {
+        StringConcatenation _builder = new StringConcatenation();
+        _builder.append("this.dataInterchange = dataInterchange;");
+        _builder.newLine();
+        _builder.append("log.debug(\"Signal DataInterchange bound\");");
+        it_1.append(_builder);
+      };
+      this._jvmTypesBuilder.setBody(it, _function_1);
+    };
+    JvmOperation _method = this._jvmTypesBuilder.toMethod(watcher, "bindDataInterchangeMethod", this._typeReferenceBuilder.typeRef(Void.TYPE), _function);
+    this._jvmTypesBuilder.<JvmOperation>operator_add(_members, _method);
+    EList<JvmMember> _members_1 = type.getMembers();
+    final Procedure1<JvmOperation> _function_1 = (JvmOperation it) -> {
+      it.setVisibility(JvmVisibility.PUBLIC);
+      it.setSynchronized(true);
+      EList<JvmFormalParameter> _parameters = it.getParameters();
+      JvmFormalParameter _parameter = this._jvmTypesBuilder.toParameter(watcher, "dataInterchange", this._typeReferenceBuilder.typeRef(IDataInterchange.class));
+      this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters, _parameter);
+      final Procedure1<ITreeAppendable> _function_2 = (ITreeAppendable it_1) -> {
+        StringConcatenation _builder = new StringConcatenation();
+        _builder.append("this.dataInterchange = null;");
+        _builder.newLine();
+        _builder.append("log.debug(\"Signal DataInterchange unbound\");");
+        _builder.newLine();
+        it_1.append(_builder);
+      };
+      this._jvmTypesBuilder.setBody(it, _function_2);
+    };
+    JvmOperation _method_1 = this._jvmTypesBuilder.toMethod(watcher, "unbindDataInterchangeMethod", this._typeReferenceBuilder.typeRef(Void.TYPE), _function_1);
+    this._jvmTypesBuilder.<JvmOperation>operator_add(_members_1, _method_1);
+    EList<JvmMember> _members_2 = type.getMembers();
+    final Procedure1<JvmOperation> _function_2 = (JvmOperation it) -> {
+      JvmAnnotationReference annotationRef = this._annotationTypesBuilder.annotationRef(Reference.class);
+      this._annotationExtension.addAnnAttr(annotationRef, watcher, "cardinality", ReferenceCardinality.MANDATORY);
+      this._annotationExtension.addAnnAttr(annotationRef, watcher, "policy", ReferencePolicy.STATIC);
+      EList<JvmAnnotationReference> _annotations = it.getAnnotations();
+      this._jvmTypesBuilder.<JvmAnnotationReference>operator_add(_annotations, annotationRef);
+      it.setVisibility(JvmVisibility.PUBLIC);
+      it.setSynchronized(true);
+      EList<JvmFormalParameter> _parameters = it.getParameters();
+      JvmFormalParameter _parameter = this._jvmTypesBuilder.toParameter(watcher, "blobService", this._typeReferenceBuilder.typeRef(IBlobService.class));
+      this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters, _parameter);
+      final Procedure1<ITreeAppendable> _function_3 = (ITreeAppendable it_1) -> {
+        StringConcatenation _builder = new StringConcatenation();
+        _builder.append("this.blobService = blobService;");
+        _builder.newLine();
+        _builder.append("log.debug(\"Signal BlobService bound\");");
+        _builder.newLine();
+        it_1.append(_builder);
+      };
+      this._jvmTypesBuilder.setBody(it, _function_3);
+    };
+    JvmOperation _method_2 = this._jvmTypesBuilder.toMethod(watcher, "bindBlobMethod", this._typeReferenceBuilder.typeRef(Void.TYPE), _function_2);
+    this._jvmTypesBuilder.<JvmOperation>operator_add(_members_2, _method_2);
+    EList<JvmMember> _members_3 = type.getMembers();
+    final Procedure1<JvmOperation> _function_3 = (JvmOperation it) -> {
+      it.setVisibility(JvmVisibility.PUBLIC);
+      it.setSynchronized(true);
+      EList<JvmFormalParameter> _parameters = it.getParameters();
+      JvmFormalParameter _parameter = this._jvmTypesBuilder.toParameter(watcher, "blobService", this._typeReferenceBuilder.typeRef(IBlobService.class));
+      this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters, _parameter);
+      final Procedure1<ITreeAppendable> _function_4 = (ITreeAppendable it_1) -> {
+        StringConcatenation _builder = new StringConcatenation();
+        _builder.append("this.blobService = null;");
+        _builder.newLine();
+        _builder.append("log.debug(\"Signal BlobService unbound\");");
+        _builder.newLine();
+        it_1.append(_builder);
+      };
+      this._jvmTypesBuilder.setBody(it, _function_4);
+    };
+    JvmOperation _method_3 = this._jvmTypesBuilder.toMethod(watcher, "unbindBlobMethod", this._typeReferenceBuilder.typeRef(Void.TYPE), _function_3);
+    this._jvmTypesBuilder.<JvmOperation>operator_add(_members_3, _method_3);
+    EList<JvmMember> _members_4 = type.getMembers();
+    final Procedure1<JvmOperation> _function_4 = (JvmOperation it) -> {
+      JvmAnnotationReference annotationRef = this._annotationTypesBuilder.annotationRef(Reference.class);
+      this._annotationExtension.addAnnAttr(annotationRef, watcher, "cardinality", ReferenceCardinality.MANDATORY);
+      this._annotationExtension.addAnnAttr(annotationRef, watcher, "policy", ReferencePolicy.STATIC);
+      EList<JvmAnnotationReference> _annotations = it.getAnnotations();
+      this._jvmTypesBuilder.<JvmAnnotationReference>operator_add(_annotations, annotationRef);
+      it.setVisibility(JvmVisibility.PUBLIC);
+      it.setSynchronized(true);
+      EList<JvmFormalParameter> _parameters = it.getParameters();
+      JvmFormalParameter _parameter = this._jvmTypesBuilder.toParameter(watcher, "persistenceService", this._typeReferenceBuilder.typeRef(IPersistenceService.class));
       this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters, _parameter);
       final Procedure1<ITreeAppendable> _function_5 = (ITreeAppendable it_1) -> {
         StringConcatenation _builder = new StringConcatenation();
-        String _firstUpper = StringExtensions.toFirstUpper(this._iQualifiedNameProvider.getFullyQualifiedName(signal).getLastSegment());
-        String _plus = (_firstUpper + "ServiceBinder");
-        _builder.append(_plus);
-        _builder.append(".dataInterchange = dataInterchange;");
-        _builder.newLineIfNotEmpty();
-        _builder.append("log.debug(\"Signal DataInterchange bound\");");
+        _builder.append("this.persistenceService = persistenceService;");
+        _builder.newLine();
+        _builder.append("log.debug(\"Signal PersistenceService bound\");");
         _builder.newLine();
         it_1.append(_builder);
       };
       this._jvmTypesBuilder.setBody(it, _function_5);
     };
-    JvmOperation _method_4 = this._jvmTypesBuilder.toMethod(signal, "bindDataInterchangeMethod", this._typeReferenceBuilder.typeRef(Void.TYPE), _function_4);
+    JvmOperation _method_4 = this._jvmTypesBuilder.toMethod(watcher, "bindPersistenceMethod", this._typeReferenceBuilder.typeRef(Void.TYPE), _function_4);
     this._jvmTypesBuilder.<JvmOperation>operator_add(_members_4, _method_4);
     EList<JvmMember> _members_5 = type.getMembers();
     final Procedure1<JvmOperation> _function_5 = (JvmOperation it) -> {
       it.setVisibility(JvmVisibility.PUBLIC);
       it.setSynchronized(true);
       EList<JvmFormalParameter> _parameters = it.getParameters();
-      JvmFormalParameter _parameter = this._jvmTypesBuilder.toParameter(signal, "dataInterchange", this._typeReferenceBuilder.typeRef(IDataInterchange.class));
+      JvmFormalParameter _parameter = this._jvmTypesBuilder.toParameter(watcher, "persistenceService", this._typeReferenceBuilder.typeRef(IPersistenceService.class));
       this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters, _parameter);
       final Procedure1<ITreeAppendable> _function_6 = (ITreeAppendable it_1) -> {
         StringConcatenation _builder = new StringConcatenation();
-        String _firstUpper = StringExtensions.toFirstUpper(this._iQualifiedNameProvider.getFullyQualifiedName(signal).getLastSegment());
-        String _plus = (_firstUpper + "ServiceBinder");
-        _builder.append(_plus);
-        _builder.append(".dataInterchange = null;");
-        _builder.newLineIfNotEmpty();
-        _builder.append("log.debug(\"Signal DataInterchange unbound\");");
+        _builder.append("this.persistenceService = null;");
+        _builder.newLine();
+        _builder.append("log.debug(\"Signal PersistenceService unbound\");");
         _builder.newLine();
         it_1.append(_builder);
       };
       this._jvmTypesBuilder.setBody(it, _function_6);
     };
-    JvmOperation _method_5 = this._jvmTypesBuilder.toMethod(signal, "unbindDataInterchangeMethod", this._typeReferenceBuilder.typeRef(Void.TYPE), _function_5);
+    JvmOperation _method_5 = this._jvmTypesBuilder.toMethod(watcher, "unbindPersistenceMethod", this._typeReferenceBuilder.typeRef(Void.TYPE), _function_5);
     this._jvmTypesBuilder.<JvmOperation>operator_add(_members_5, _method_5);
     EList<JvmMember> _members_6 = type.getMembers();
     final Procedure1<JvmOperation> _function_6 = (JvmOperation it) -> {
       JvmAnnotationReference annotationRef = this._annotationTypesBuilder.annotationRef(Reference.class);
-      this._annotationExtension.addAnnAttr(annotationRef, signal, "cardinality", ReferenceCardinality.MANDATORY);
-      this._annotationExtension.addAnnAttr(annotationRef, signal, "policy", ReferencePolicy.STATIC);
+      this._annotationExtension.addAnnAttr(annotationRef, watcher, "cardinality", ReferenceCardinality.MANDATORY);
+      this._annotationExtension.addAnnAttr(annotationRef, watcher, "policy", ReferencePolicy.STATIC);
       EList<JvmAnnotationReference> _annotations = it.getAnnotations();
       this._jvmTypesBuilder.<JvmAnnotationReference>operator_add(_annotations, annotationRef);
       it.setVisibility(JvmVisibility.PUBLIC);
       it.setSynchronized(true);
       EList<JvmFormalParameter> _parameters = it.getParameters();
-      JvmFormalParameter _parameter = this._jvmTypesBuilder.toParameter(signal, "blobService", this._typeReferenceBuilder.typeRef(IBlobService.class));
+      JvmFormalParameter _parameter = this._jvmTypesBuilder.toParameter(watcher, "userAccessService", this._typeReferenceBuilder.typeRef(IUserAccessService.class));
       this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters, _parameter);
       final Procedure1<ITreeAppendable> _function_7 = (ITreeAppendable it_1) -> {
         StringConcatenation _builder = new StringConcatenation();
-        String _firstUpper = StringExtensions.toFirstUpper(this._iQualifiedNameProvider.getFullyQualifiedName(signal).getLastSegment());
-        String _plus = (_firstUpper + "ServiceBinder");
-        _builder.append(_plus);
-        _builder.append(".blobService = blobService;");
-        _builder.newLineIfNotEmpty();
-        _builder.append("log.debug(\"Signal BlobService bound\");");
+        _builder.append("this.userAccessService = userAccessService;");
+        _builder.newLine();
+        _builder.append("log.debug(\"Signal UserAccessService bound\");");
         _builder.newLine();
         it_1.append(_builder);
       };
       this._jvmTypesBuilder.setBody(it, _function_7);
     };
-    JvmOperation _method_6 = this._jvmTypesBuilder.toMethod(signal, "bindBlobMethod", this._typeReferenceBuilder.typeRef(Void.TYPE), _function_6);
+    JvmOperation _method_6 = this._jvmTypesBuilder.toMethod(watcher, "bindUserAccessMethod", this._typeReferenceBuilder.typeRef(Void.TYPE), _function_6);
     this._jvmTypesBuilder.<JvmOperation>operator_add(_members_6, _method_6);
     EList<JvmMember> _members_7 = type.getMembers();
     final Procedure1<JvmOperation> _function_7 = (JvmOperation it) -> {
       it.setVisibility(JvmVisibility.PUBLIC);
       it.setSynchronized(true);
       EList<JvmFormalParameter> _parameters = it.getParameters();
-      JvmFormalParameter _parameter = this._jvmTypesBuilder.toParameter(signal, "blobService", this._typeReferenceBuilder.typeRef(IBlobService.class));
+      JvmFormalParameter _parameter = this._jvmTypesBuilder.toParameter(watcher, "userAccessService", this._typeReferenceBuilder.typeRef(IUserAccessService.class));
       this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters, _parameter);
       final Procedure1<ITreeAppendable> _function_8 = (ITreeAppendable it_1) -> {
         StringConcatenation _builder = new StringConcatenation();
-        String _firstUpper = StringExtensions.toFirstUpper(this._iQualifiedNameProvider.getFullyQualifiedName(signal).getLastSegment());
-        String _plus = (_firstUpper + "ServiceBinder");
-        _builder.append(_plus);
-        _builder.append(".blobService = null;");
-        _builder.newLineIfNotEmpty();
-        _builder.append("log.debug(\"Signal BlobService unbound\");");
+        _builder.append("this.userAccessService = null;");
         _builder.newLine();
+        _builder.append("log.debug(\"Signal UserAccessService unbound\");");
         it_1.append(_builder);
       };
       this._jvmTypesBuilder.setBody(it, _function_8);
     };
-    JvmOperation _method_7 = this._jvmTypesBuilder.toMethod(signal, "unbindBlobMethod", this._typeReferenceBuilder.typeRef(Void.TYPE), _function_7);
+    JvmOperation _method_7 = this._jvmTypesBuilder.toMethod(watcher, "unbindUserAccessMethod", this._typeReferenceBuilder.typeRef(Void.TYPE), _function_7);
     this._jvmTypesBuilder.<JvmOperation>operator_add(_members_7, _method_7);
-    EList<JvmMember> _members_8 = type.getMembers();
-    final Procedure1<JvmOperation> _function_8 = (JvmOperation it) -> {
-      JvmAnnotationReference annotationRef = this._annotationTypesBuilder.annotationRef(Reference.class);
-      this._annotationExtension.addAnnAttr(annotationRef, signal, "cardinality", ReferenceCardinality.MANDATORY);
-      this._annotationExtension.addAnnAttr(annotationRef, signal, "policy", ReferencePolicy.STATIC);
-      EList<JvmAnnotationReference> _annotations = it.getAnnotations();
-      this._jvmTypesBuilder.<JvmAnnotationReference>operator_add(_annotations, annotationRef);
-      it.setVisibility(JvmVisibility.PUBLIC);
-      it.setSynchronized(true);
-      EList<JvmFormalParameter> _parameters = it.getParameters();
-      JvmFormalParameter _parameter = this._jvmTypesBuilder.toParameter(signal, "persistenceService", this._typeReferenceBuilder.typeRef(IPersistenceService.class));
-      this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters, _parameter);
-      final Procedure1<ITreeAppendable> _function_9 = (ITreeAppendable it_1) -> {
-        StringConcatenation _builder = new StringConcatenation();
-        String _firstUpper = StringExtensions.toFirstUpper(this._iQualifiedNameProvider.getFullyQualifiedName(signal).getLastSegment());
-        String _plus = (_firstUpper + "ServiceBinder");
-        _builder.append(_plus);
-        _builder.append(".persistenceService = persistenceService;");
-        _builder.newLineIfNotEmpty();
-        _builder.append("log.debug(\"Signal PersistenceService bound\");");
-        _builder.newLine();
-        it_1.append(_builder);
-      };
-      this._jvmTypesBuilder.setBody(it, _function_9);
-    };
-    JvmOperation _method_8 = this._jvmTypesBuilder.toMethod(signal, "bindPersistenceMethod", this._typeReferenceBuilder.typeRef(Void.TYPE), _function_8);
-    this._jvmTypesBuilder.<JvmOperation>operator_add(_members_8, _method_8);
-    EList<JvmMember> _members_9 = type.getMembers();
-    final Procedure1<JvmOperation> _function_9 = (JvmOperation it) -> {
-      it.setVisibility(JvmVisibility.PUBLIC);
-      it.setSynchronized(true);
-      EList<JvmFormalParameter> _parameters = it.getParameters();
-      JvmFormalParameter _parameter = this._jvmTypesBuilder.toParameter(signal, "persistenceService", this._typeReferenceBuilder.typeRef(IPersistenceService.class));
-      this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters, _parameter);
-      final Procedure1<ITreeAppendable> _function_10 = (ITreeAppendable it_1) -> {
-        StringConcatenation _builder = new StringConcatenation();
-        String _firstUpper = StringExtensions.toFirstUpper(this._iQualifiedNameProvider.getFullyQualifiedName(signal).getLastSegment());
-        String _plus = (_firstUpper + "ServiceBinder");
-        _builder.append(_plus);
-        _builder.append(".persistenceService = null;");
-        _builder.newLineIfNotEmpty();
-        _builder.append("log.debug(\"Signal PersistenceService unbound\");");
-        _builder.newLine();
-        it_1.append(_builder);
-      };
-      this._jvmTypesBuilder.setBody(it, _function_10);
-    };
-    JvmOperation _method_9 = this._jvmTypesBuilder.toMethod(signal, "unbindPersistenceMethod", this._typeReferenceBuilder.typeRef(Void.TYPE), _function_9);
-    this._jvmTypesBuilder.<JvmOperation>operator_add(_members_9, _method_9);
-    EList<JvmMember> _members_10 = type.getMembers();
-    final Procedure1<JvmOperation> _function_10 = (JvmOperation it) -> {
-      JvmAnnotationReference annotationRef = this._annotationTypesBuilder.annotationRef(Reference.class);
-      this._annotationExtension.addAnnAttr(annotationRef, signal, "cardinality", ReferenceCardinality.MANDATORY);
-      this._annotationExtension.addAnnAttr(annotationRef, signal, "policy", ReferencePolicy.STATIC);
-      EList<JvmAnnotationReference> _annotations = it.getAnnotations();
-      this._jvmTypesBuilder.<JvmAnnotationReference>operator_add(_annotations, annotationRef);
-      it.setVisibility(JvmVisibility.PUBLIC);
-      it.setSynchronized(true);
-      EList<JvmFormalParameter> _parameters = it.getParameters();
-      JvmFormalParameter _parameter = this._jvmTypesBuilder.toParameter(signal, "userAccessService", this._typeReferenceBuilder.typeRef(IUserAccessService.class));
-      this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters, _parameter);
-      final Procedure1<ITreeAppendable> _function_11 = (ITreeAppendable it_1) -> {
-        StringConcatenation _builder = new StringConcatenation();
-        String _firstUpper = StringExtensions.toFirstUpper(this._iQualifiedNameProvider.getFullyQualifiedName(signal).getLastSegment());
-        String _plus = (_firstUpper + "ServiceBinder");
-        _builder.append(_plus);
-        _builder.append(".userAccessService = userAccessService;");
-        _builder.newLineIfNotEmpty();
-        _builder.append("log.debug(\"Signal UserAccessService bound\");");
-        _builder.newLine();
-        it_1.append(_builder);
-      };
-      this._jvmTypesBuilder.setBody(it, _function_11);
-    };
-    JvmOperation _method_10 = this._jvmTypesBuilder.toMethod(signal, "bindUserAccessMethod", this._typeReferenceBuilder.typeRef(Void.TYPE), _function_10);
-    this._jvmTypesBuilder.<JvmOperation>operator_add(_members_10, _method_10);
-    EList<JvmMember> _members_11 = type.getMembers();
-    final Procedure1<JvmOperation> _function_11 = (JvmOperation it) -> {
-      it.setVisibility(JvmVisibility.PUBLIC);
-      it.setSynchronized(true);
-      EList<JvmFormalParameter> _parameters = it.getParameters();
-      JvmFormalParameter _parameter = this._jvmTypesBuilder.toParameter(signal, "userAccessService", this._typeReferenceBuilder.typeRef(IUserAccessService.class));
-      this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters, _parameter);
-      final Procedure1<ITreeAppendable> _function_12 = (ITreeAppendable it_1) -> {
-        StringConcatenation _builder = new StringConcatenation();
-        String _firstUpper = StringExtensions.toFirstUpper(this._iQualifiedNameProvider.getFullyQualifiedName(signal).getLastSegment());
-        String _plus = (_firstUpper + "ServiceBinder");
-        _builder.append(_plus);
-        _builder.append(".userAccessService = null;");
-        _builder.newLineIfNotEmpty();
-        _builder.append("log.debug(\"Signal UserAccessService unbound\");");
-        it_1.append(_builder);
-      };
-      this._jvmTypesBuilder.setBody(it, _function_12);
-    };
-    JvmOperation _method_11 = this._jvmTypesBuilder.toMethod(signal, "unbindUserAccessMethod", this._typeReferenceBuilder.typeRef(Void.TYPE), _function_11);
-    this._jvmTypesBuilder.<JvmOperation>operator_add(_members_11, _method_11);
-  }
-  
-  public void toHandlerOperations(final JvmGenericType type, final SignalWatcher watcher, final SignalHandling handling) {
-    EList<JvmMember> _members = type.getMembers();
-    final Procedure1<JvmOperation> _function = (JvmOperation it) -> {
-      DataInterchange _dataRef = handling.getDataRef();
-      final DataInterchange ref = ((DataInterchange) _dataRef);
-      final Procedure1<ITreeAppendable> _function_1 = (ITreeAppendable it_1) -> {
-        StringConcatenation _builder = new StringConcatenation();
-        String _executeImport = this.executeImport(ref);
-        _builder.append(_executeImport);
-        it_1.append(_builder);
-      };
-      this._jvmTypesBuilder.setBody(it, _function_1);
-    };
-    JvmOperation _method = this._jvmTypesBuilder.toMethod(watcher, "executeImport", this._typeReferenceBuilder.typeRef(Void.TYPE), _function);
-    this._jvmTypesBuilder.<JvmOperation>operator_add(_members, _method);
-  }
-  
-  public String executeImport(final DataInterchange dataInterchange) {
-    StringConcatenation _builder = new StringConcatenation();
-    String _basicRunConfiguration = this.getBasicRunConfiguration(dataInterchange, true, this.getFileURL(dataInterchange), "IMPORT");
-    _builder.append(_basicRunConfiguration);
-    _builder.newLineIfNotEmpty();
-    String _defaultVariableName = this.getDefaultVariableName(dataInterchange);
-    _builder.append(_defaultVariableName);
-    _builder.append(".setDirection(WorkerThreadRunnable.Direction.IMPORT);");
-    _builder.newLineIfNotEmpty();
-    _builder.newLine();
-    _builder.append("// later for notification in the dialog");
-    _builder.newLine();
-    _builder.append("//Notification.show(dslMetadataService.translate(user.getLocale().toLanguageTag(), \"datainterchangeStarted\"),Notification.Type.HUMANIZED_MESSAGE);");
-    _builder.newLine();
-    _builder.newLine();
-    _builder.append("//execution of code now\t\t");
-    _builder.newLine();
-    String _defaultVariableName_1 = this.getDefaultVariableName(dataInterchange);
-    _builder.append(_defaultVariableName_1);
-    _builder.append(".run();");
-    _builder.newLineIfNotEmpty();
-    return _builder.toString();
   }
   
   public String getFileURL(final DataInterchange dataInterchange) {
@@ -517,7 +343,7 @@
     return StringExtensions.toFirstLower(dataInterchange.getName());
   }
   
-  public String getBasicRunConfiguration(final DataInterchange dataInterchange, final boolean fqClass, final String fileURL, final String direction) {
+  public String getBasicRunConfiguration(final DataInterchange dataInterchange, final boolean fqClass, final String fileURL, final WorkerThreadRunnable.Direction direction, final boolean asynch) {
     String className = "";
     if (fqClass) {
       className = this._iQualifiedNameProvider.getFullyQualifiedName(dataInterchange).toString();
@@ -533,118 +359,35 @@
     _builder.append(className);
     _builder.append("();");
     _builder.newLineIfNotEmpty();
-    _builder.append("String url = \"\"; //ProductConfiguration.getDatainterchangeConfiguration();");
-    _builder.newLine();
-    _builder.append("//if(url.isEmpty()) {");
-    _builder.newLine();
-    _builder.append("//\turl = System.getProperty(\"user.home\")+\"/.osbee/\"+\"");
-    EObject _eContainer = dataInterchange.eContainer();
-    String _title = ((DataInterchangePackage) _eContainer).getTitle();
-    _builder.append(_title);
-    _builder.append("Config.xml\";");
-    _builder.newLineIfNotEmpty();
-    _builder.append("//}");
-    _builder.newLine();
-    _builder.append("File file = new File(url);");
-    _builder.newLine();
-    _builder.append("if(file.exists()) {");
-    _builder.newLine();
-    _builder.append("\t");
-    _builder.append("FileInputStream fileInput;");
-    _builder.newLine();
-    _builder.append("\t");
-    _builder.append("try {");
-    _builder.newLine();
-    _builder.append("\t\t");
-    _builder.append("fileInput = new FileInputStream(file);");
-    _builder.newLine();
-    _builder.append("\t\t");
-    _builder.append("Properties properties = new Properties();");
-    _builder.newLine();
-    _builder.append("\t\t");
-    _builder.append("properties.loadFromXML(fileInput);");
-    _builder.newLine();
-    _builder.append("\t\t");
-    _builder.append("fileInput.close();");
-    _builder.newLine();
-    _builder.append("\t\t");
-    _builder.append("if(properties.getProperty(\"");
-    String _name = dataInterchange.getName();
-    _builder.append(_name, "\t\t");
-    _builder.append("-");
-    String _lowerCase = direction.toLowerCase();
-    _builder.append(_lowerCase, "\t\t");
-    _builder.append("\") == null) {");
-    _builder.newLineIfNotEmpty();
-    _builder.append("\t\t\t");
     String _defaultVariableName_1 = this.getDefaultVariableName(dataInterchange);
-    _builder.append(_defaultVariableName_1, "\t\t\t");
+    _builder.append(_defaultVariableName_1);
     _builder.append(".setFileURL(\"");
-    _builder.append(fileURL, "\t\t\t");
+    _builder.append(fileURL);
     _builder.append("\");");
     _builder.newLineIfNotEmpty();
-    _builder.append("\t\t");
-    _builder.append("} else {");
-    _builder.newLine();
-    _builder.append("\t\t\t");
     String _defaultVariableName_2 = this.getDefaultVariableName(dataInterchange);
-    _builder.append(_defaultVariableName_2, "\t\t\t");
-    _builder.append(".setFileURL(properties.getProperty(\"");
-    String _name_1 = dataInterchange.getName();
-    _builder.append(_name_1, "\t\t\t");
-    _builder.append("-");
-    String _lowerCase_1 = direction.toLowerCase();
-    _builder.append(_lowerCase_1, "\t\t\t");
-    _builder.append("\"));");
+    _builder.append(_defaultVariableName_2);
+    _builder.append(".setPersistenceService(persistenceService);");
     _builder.newLineIfNotEmpty();
-    _builder.append("\t\t");
-    _builder.append("}");
-    _builder.newLine();
-    _builder.append("\t");
-    _builder.append("} catch (IOException e) {");
-    _builder.newLine();
-    _builder.append("\t\t");
-    _builder.append("StringWriter sw = new StringWriter();");
-    _builder.newLine();
-    _builder.append("\t\t");
-    _builder.append("e.printStackTrace(new PrintWriter(sw));");
-    _builder.newLine();
-    _builder.append("\t\t");
-    _builder.append("log.error(\"{}\", sw.toString());");
-    _builder.newLine();
-    _builder.append("\t\t");
-    _builder.append("return;");
-    _builder.newLine();
-    _builder.append("\t");
-    _builder.append("}");
-    _builder.newLine();
-    _builder.append("} else {");
-    _builder.newLine();
-    _builder.append("\t");
     String _defaultVariableName_3 = this.getDefaultVariableName(dataInterchange);
-    _builder.append(_defaultVariableName_3, "\t");
-    _builder.append(".setFileURL(\"");
-    _builder.append(fileURL, "\t");
-    _builder.append("\");");
+    _builder.append(_defaultVariableName_3);
+    _builder.append(".setDataInterchange(dataInterchange);");
     _builder.newLineIfNotEmpty();
-    _builder.append("}");
-    _builder.newLine();
     String _defaultVariableName_4 = this.getDefaultVariableName(dataInterchange);
     _builder.append(_defaultVariableName_4);
-    _builder.append(".setPersistenceService(persistenceService);");
+    _builder.append(".setBlobService(blobService);");
     _builder.newLineIfNotEmpty();
     String _defaultVariableName_5 = this.getDefaultVariableName(dataInterchange);
     _builder.append(_defaultVariableName_5);
-    _builder.append(".setDataInterchange(dataInterchange);");
+    _builder.append(".setDirection(WorkerThreadRunnable.Direction.");
+    String _upperCase = direction.name().toUpperCase();
+    _builder.append(_upperCase);
+    _builder.append(");");
     _builder.newLineIfNotEmpty();
+    _builder.append("return ");
     String _defaultVariableName_6 = this.getDefaultVariableName(dataInterchange);
     _builder.append(_defaultVariableName_6);
-    _builder.append(".setEventDispatcher(eventDispatcher);");
-    _builder.newLineIfNotEmpty();
-    String _defaultVariableName_7 = this.getDefaultVariableName(dataInterchange);
-    _builder.append(_defaultVariableName_7);
-    _builder.append(".setBlobService(blobService);");
-    _builder.newLineIfNotEmpty();
+    _builder.append(";");
     return _builder.toString();
   }
   
@@ -655,198 +398,250 @@
       JvmAnnotationReference _annotationRef = this._annotationTypesBuilder.annotationRef(Override.class);
       this._jvmTypesBuilder.<JvmAnnotationReference>operator_add(_annotations, _annotationRef);
       EList<JvmFormalParameter> _parameters = it.getParameters();
-      JvmFormalParameter _parameter = this._jvmTypesBuilder.toParameter(watcher, "directory", this._typeReferenceBuilder.typeRef(Path.class));
+      JvmFormalParameter _parameter = this._jvmTypesBuilder.toParameter(watcher, "event", this._typeReferenceBuilder.typeRef("WatchEvent<Path>"));
       this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters, _parameter);
       EList<JvmFormalParameter> _parameters_1 = it.getParameters();
-      JvmFormalParameter _parameter_1 = this._jvmTypesBuilder.toParameter(watcher, "signals", this._typeReferenceBuilder.typeRef(String.class));
+      JvmFormalParameter _parameter_1 = this._jvmTypesBuilder.toParameter(watcher, "file", this._typeReferenceBuilder.typeRef(Path.class));
       this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters_1, _parameter_1);
-      EList<JvmTypeReference> _exceptions = it.getExceptions();
-      JvmTypeReference _typeRef = this._typeReferenceBuilder.typeRef(IOException.class);
-      this._jvmTypesBuilder.<JvmTypeReference>operator_add(_exceptions, _typeRef);
       final Procedure1<ITreeAppendable> _function_1 = (ITreeAppendable it_1) -> {
         StringConcatenation _builder = new StringConcatenation();
-        String _registerPathToWatcher = this.registerPathToWatcher(watcher);
-        _builder.append(_registerPathToWatcher);
+        String _handleEvent = this.handleEvent(watcher);
+        _builder.append(_handleEvent);
         it_1.append(_builder);
       };
       this._jvmTypesBuilder.setBody(it, _function_1);
     };
-    JvmOperation _method = this._jvmTypesBuilder.toMethod(watcher, "registerPathToWatcher", this._typeReferenceBuilder.typeRef(Void.TYPE), _function);
+    JvmOperation _method = this._jvmTypesBuilder.toMethod(watcher, "handleEvent", this._typeReferenceBuilder.typeRef(Void.TYPE), _function);
     this._jvmTypesBuilder.<JvmOperation>operator_add(_members, _method);
     EList<JvmMember> _members_1 = type.getMembers();
     final Procedure1<JvmOperation> _function_1 = (JvmOperation it) -> {
-      EList<JvmAnnotationReference> _annotations = it.getAnnotations();
-      JvmAnnotationReference _annotationRef = this._annotationTypesBuilder.annotationRef(Override.class);
-      this._jvmTypesBuilder.<JvmAnnotationReference>operator_add(_annotations, _annotationRef);
       EList<JvmFormalParameter> _parameters = it.getParameters();
-      JvmFormalParameter _parameter = this._jvmTypesBuilder.toParameter(watcher, "rootpath", this._typeReferenceBuilder.typeRef(Path.class));
+      JvmFormalParameter _parameter = this._jvmTypesBuilder.toParameter(watcher, "interchanges", this._typeReferenceBuilder.typeRef("ArrayList<WorkerThreadRunnable>"));
       this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters, _parameter);
       EList<JvmFormalParameter> _parameters_1 = it.getParameters();
-      JvmFormalParameter _parameter_1 = this._jvmTypesBuilder.toParameter(watcher, "signals", this._typeReferenceBuilder.typeRef(String.class));
+      JvmFormalParameter _parameter_1 = this._jvmTypesBuilder.toParameter(watcher, "synchronous", this._typeReferenceBuilder.typeRef(boolean.class));
       this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters_1, _parameter_1);
-      EList<JvmTypeReference> _exceptions = it.getExceptions();
-      JvmTypeReference _typeRef = this._typeReferenceBuilder.typeRef(IOException.class);
-      this._jvmTypesBuilder.<JvmTypeReference>operator_add(_exceptions, _typeRef);
       final Procedure1<ITreeAppendable> _function_2 = (ITreeAppendable it_1) -> {
         StringConcatenation _builder = new StringConcatenation();
-        String _registerAll = this.registerAll(watcher);
-        _builder.append(_registerAll);
+        String _executeTasks = this.executeTasks(watcher);
+        _builder.append(_executeTasks);
         it_1.append(_builder);
       };
       this._jvmTypesBuilder.setBody(it, _function_2);
     };
-    JvmOperation _method_1 = this._jvmTypesBuilder.toMethod(watcher, "registerAll", this._typeReferenceBuilder.typeRef(Void.TYPE), _function_1);
+    JvmOperation _method_1 = this._jvmTypesBuilder.toMethod(watcher, "executeTasks", this._typeReferenceBuilder.typeRef(Void.TYPE), _function_1);
     this._jvmTypesBuilder.<JvmOperation>operator_add(_members_1, _method_1);
+    HashSet<String> _hashSet = new HashSet<String>();
+    this.operationlist = _hashSet;
+    if ((((watcher != null) && (watcher.getHandlers() != null)) && (!watcher.getHandlers().isEmpty()))) {
+      EList<SignalHandler> _handlers = watcher.getHandlers();
+      for (final SignalHandler handler : _handlers) {
+        DataTransfer _data = handler.getData();
+        if ((_data instanceof SingleTransfer)) {
+          DataTransfer _data_1 = handler.getData();
+          final SingleTransfer transferdata = ((SingleTransfer) _data_1);
+          this.createAppropriateInterchangeOperations(type, watcher, transferdata.getInterchange());
+        } else {
+          DataTransfer _data_2 = handler.getData();
+          final ListTransfer transferdata_1 = ((ListTransfer) _data_2);
+          EList<SignalDatainterchange> _interchanges = transferdata_1.getInterchanges();
+          for (final SignalDatainterchange interchange : _interchanges) {
+            this.createAppropriateInterchangeOperations(type, watcher, interchange);
+          }
+        }
+      }
+    }
     EList<JvmMember> _members_2 = type.getMembers();
     final Procedure1<JvmOperation> _function_2 = (JvmOperation it) -> {
-      EList<JvmAnnotationReference> _annotations = it.getAnnotations();
-      JvmAnnotationReference _annotationRef = this._annotationTypesBuilder.annotationRef(Override.class);
-      this._jvmTypesBuilder.<JvmAnnotationReference>operator_add(_annotations, _annotationRef);
-      EList<JvmFormalParameter> _parameters = it.getParameters();
-      JvmFormalParameter _parameter = this._jvmTypesBuilder.toParameter(watcher, "event", this._typeReferenceBuilder.typeRef(WatchEvent.class));
-      this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters, _parameter);
       final Procedure1<ITreeAppendable> _function_3 = (ITreeAppendable it_1) -> {
         StringConcatenation _builder = new StringConcatenation();
-        String _handleEvent = this.getHandleEvent(watcher);
-        _builder.append(_handleEvent);
+        String _initTasksLists = this.initTasksLists(watcher);
+        _builder.append(_initTasksLists);
         it_1.append(_builder);
       };
       this._jvmTypesBuilder.setBody(it, _function_3);
     };
-    JvmOperation _method_2 = this._jvmTypesBuilder.toMethod(watcher, "handleEvent", this._typeReferenceBuilder.typeRef(Void.TYPE), _function_2);
+    JvmOperation _method_2 = this._jvmTypesBuilder.toMethod(watcher, "initTasksLists", this._typeReferenceBuilder.typeRef(Void.TYPE), _function_2);
     this._jvmTypesBuilder.<JvmOperation>operator_add(_members_2, _method_2);
     EList<JvmMember> _members_3 = type.getMembers();
     final Procedure1<JvmOperation> _function_3 = (JvmOperation it) -> {
-      EList<JvmAnnotationReference> _annotations = it.getAnnotations();
-      JvmAnnotationReference _annotationRef = this._annotationTypesBuilder.annotationRef(Override.class);
-      this._jvmTypesBuilder.<JvmAnnotationReference>operator_add(_annotations, _annotationRef);
       final Procedure1<ITreeAppendable> _function_4 = (ITreeAppendable it_1) -> {
         StringConcatenation _builder = new StringConcatenation();
-        String _processEvents = this.getProcessEvents(watcher);
-        _builder.append(_processEvents);
+        _builder.append("active = false;");
         it_1.append(_builder);
       };
       this._jvmTypesBuilder.setBody(it, _function_4);
     };
-    JvmOperation _method_3 = this._jvmTypesBuilder.toMethod(watcher, "processEvents", this._typeReferenceBuilder.typeRef(Void.TYPE), _function_3);
+    JvmOperation _method_3 = this._jvmTypesBuilder.toMethod(watcher, "stopThread", this._typeReferenceBuilder.typeRef(Void.TYPE), _function_3);
     this._jvmTypesBuilder.<JvmOperation>operator_add(_members_3, _method_3);
     EList<JvmMember> _members_4 = type.getMembers();
     final Procedure1<JvmOperation> _function_4 = (JvmOperation it) -> {
-      EList<JvmTypeReference> _exceptions = it.getExceptions();
-      JvmTypeReference _typeRef = this._typeReferenceBuilder.typeRef(IOException.class);
-      this._jvmTypesBuilder.<JvmTypeReference>operator_add(_exceptions, _typeRef);
+      EList<JvmAnnotationReference> _annotations = it.getAnnotations();
+      JvmAnnotationReference _annotationRef = this._annotationTypesBuilder.annotationRef(Activate.class);
+      this._jvmTypesBuilder.<JvmAnnotationReference>operator_add(_annotations, _annotationRef);
       final Procedure1<ITreeAppendable> _function_5 = (ITreeAppendable it_1) -> {
         StringConcatenation _builder = new StringConcatenation();
-        String _start = this.getStart(watcher);
-        _builder.append(_start);
+        String _activate = this.getActivate(watcher);
+        _builder.append(_activate);
         it_1.append(_builder);
       };
       this._jvmTypesBuilder.setBody(it, _function_5);
     };
-    JvmOperation _method_4 = this._jvmTypesBuilder.toMethod(watcher, "start", this._typeReferenceBuilder.typeRef(Void.TYPE), _function_4);
+    JvmOperation _method_4 = this._jvmTypesBuilder.toMethod(watcher, "activate", this._typeReferenceBuilder.typeRef(Void.TYPE), _function_4);
     this._jvmTypesBuilder.<JvmOperation>operator_add(_members_4, _method_4);
     EList<JvmMember> _members_5 = type.getMembers();
     final Procedure1<JvmOperation> _function_5 = (JvmOperation it) -> {
-      EList<JvmTypeReference> _exceptions = it.getExceptions();
-      JvmTypeReference _typeRef = this._typeReferenceBuilder.typeRef(IOException.class);
-      this._jvmTypesBuilder.<JvmTypeReference>operator_add(_exceptions, _typeRef);
+      EList<JvmAnnotationReference> _annotations = it.getAnnotations();
+      JvmAnnotationReference _annotationRef = this._annotationTypesBuilder.annotationRef(Deactivate.class);
+      this._jvmTypesBuilder.<JvmAnnotationReference>operator_add(_annotations, _annotationRef);
       final Procedure1<ITreeAppendable> _function_6 = (ITreeAppendable it_1) -> {
         StringConcatenation _builder = new StringConcatenation();
-        String _stop = this.getStop(watcher);
-        _builder.append(_stop);
+        String _deactivate = this.getDeactivate(watcher);
+        _builder.append(_deactivate);
         it_1.append(_builder);
       };
       this._jvmTypesBuilder.setBody(it, _function_6);
     };
-    JvmOperation _method_5 = this._jvmTypesBuilder.toMethod(watcher, "stop", this._typeReferenceBuilder.typeRef(Void.TYPE), _function_5);
+    JvmOperation _method_5 = this._jvmTypesBuilder.toMethod(watcher, "deactivate", this._typeReferenceBuilder.typeRef(Void.TYPE), _function_5);
     this._jvmTypesBuilder.<JvmOperation>operator_add(_members_5, _method_5);
   }
   
-  public void toWatcherFields(final JvmGenericType type, final SignalWatcher watcher) {
-    JvmField field = null;
-    final Procedure1<JvmField> _function = (JvmField it) -> {
-      it.setVisibility(JvmVisibility.PRIVATE);
-    };
-    field = this._jvmTypesBuilder.toField(watcher, "eventDispatcher", this._typeReferenceBuilder.typeRef(IEventDispatcher.class), _function);
-    EList<JvmMember> _members = type.getMembers();
-    this._jvmTypesBuilder.<JvmField>operator_add(_members, field);
-    final Procedure1<JvmField> _function_1 = (JvmField it) -> {
-      it.setVisibility(JvmVisibility.PRIVATE);
-    };
-    field = this._jvmTypesBuilder.toField(watcher, "persistenceService", this._typeReferenceBuilder.typeRef(IPersistenceService.class), _function_1);
-    EList<JvmMember> _members_1 = type.getMembers();
-    this._jvmTypesBuilder.<JvmField>operator_add(_members_1, field);
-    final Procedure1<JvmField> _function_2 = (JvmField it) -> {
-      it.setVisibility(JvmVisibility.PRIVATE);
-    };
-    field = this._jvmTypesBuilder.toField(watcher, "dataInterchange", this._typeReferenceBuilder.typeRef(IDataInterchange.class), _function_2);
-    EList<JvmMember> _members_2 = type.getMembers();
-    this._jvmTypesBuilder.<JvmField>operator_add(_members_2, field);
-    final Procedure1<JvmField> _function_3 = (JvmField it) -> {
-      it.setVisibility(JvmVisibility.PRIVATE);
-    };
-    field = this._jvmTypesBuilder.toField(watcher, "dslMetadataService", this._typeReferenceBuilder.typeRef(IDSLMetadataService.class), _function_3);
-    EList<JvmMember> _members_3 = type.getMembers();
-    this._jvmTypesBuilder.<JvmField>operator_add(_members_3, field);
-    final Procedure1<JvmField> _function_4 = (JvmField it) -> {
-      it.setVisibility(JvmVisibility.PRIVATE);
-    };
-    field = this._jvmTypesBuilder.toField(watcher, "blobService", this._typeReferenceBuilder.typeRef(IBlobService.class), _function_4);
-    EList<JvmMember> _members_4 = type.getMembers();
-    this._jvmTypesBuilder.<JvmField>operator_add(_members_4, field);
-    final Procedure1<JvmField> _function_5 = (JvmField it) -> {
-      it.setVisibility(JvmVisibility.PRIVATE);
-    };
-    field = this._jvmTypesBuilder.toField(watcher, "user", this._typeReferenceBuilder.typeRef(IUser.class), _function_5);
-    EList<JvmMember> _members_5 = type.getMembers();
-    this._jvmTypesBuilder.<JvmField>operator_add(_members_5, field);
-    final Procedure1<JvmField> _function_6 = (JvmField it) -> {
-      it.setVisibility(JvmVisibility.PRIVATE);
-    };
-    field = this._jvmTypesBuilder.toField(watcher, "eclipseContext", this._typeReferenceBuilder.typeRef(IEclipseContext.class), _function_6);
-    EList<JvmMember> _members_6 = type.getMembers();
-    this._jvmTypesBuilder.<JvmField>operator_add(_members_6, field);
-    final Procedure1<JvmField> _function_7 = (JvmField it) -> {
-      final Procedure1<ITreeAppendable> _function_8 = (ITreeAppendable it_1) -> {
-        StringConcatenation _builder = new StringConcatenation();
-        _builder.append("LoggerFactory.getLogger(\"watcher\")");
-        it_1.append(_builder);
-      };
-      this._jvmTypesBuilder.setInitializer(it, _function_8);
-      it.setVisibility(JvmVisibility.PRIVATE);
-    };
-    field = this._jvmTypesBuilder.toField(watcher, "log", this._typeReferenceBuilder.typeRef(Logger.class), _function_7);
-    EList<JvmMember> _members_7 = type.getMembers();
-    this._jvmTypesBuilder.<JvmField>operator_add(_members_7, field);
-    final Procedure1<JvmField> _function_8 = (JvmField it) -> {
-      final Procedure1<ITreeAppendable> _function_9 = (ITreeAppendable it_1) -> {
-        StringConcatenation _builder = new StringConcatenation();
-        _builder.append("\"");
-        String _directory = watcher.getDirectory();
-        _builder.append(_directory);
-        _builder.append("\"");
-        it_1.append(_builder);
-      };
-      this._jvmTypesBuilder.setInitializer(it, _function_9);
-      it.setVisibility(JvmVisibility.PRIVATE);
-    };
-    field = this._jvmTypesBuilder.toField(watcher, "path", this._typeReferenceBuilder.typeRef(String.class), _function_8);
-    EList<JvmMember> _members_8 = type.getMembers();
-    this._jvmTypesBuilder.<JvmField>operator_add(_members_8, field);
-    final Procedure1<JvmField> _function_9 = (JvmField it) -> {
-      final Procedure1<ITreeAppendable> _function_10 = (ITreeAppendable it_1) -> {
-        StringConcatenation _builder = new StringConcatenation();
-        _builder.append("SignalTypeEnum.");
-        String _upperCase = watcher.getSignal().getLiteral().toUpperCase();
-        _builder.append(_upperCase);
-        it_1.append(_builder);
-      };
-      this._jvmTypesBuilder.setInitializer(it, _function_10);
-      it.setVisibility(JvmVisibility.PRIVATE);
-    };
-    field = this._jvmTypesBuilder.toField(watcher, "signal", this._typeReferenceBuilder.typeRef(SignalTypeEnum.class), _function_9);
-    EList<JvmMember> _members_9 = type.getMembers();
-    this._jvmTypesBuilder.<JvmField>operator_add(_members_9, field);
+  public String executeTasks(final SignalWatcher watcher) {
+    StringConcatenation _builder = new StringConcatenation();
+    _builder.append("for (WorkerThreadRunnable interchange : interchanges) {");
+    _builder.newLine();
+    _builder.append("\t");
+    _builder.append("if(synchronous){");
+    _builder.newLine();
+    _builder.append("\t\t");
+    _builder.append("//Making sure that the current task is done before continuing ");
+    _builder.newLine();
+    _builder.append("\t\t");
+    _builder.append("try {");
+    _builder.newLine();
+    _builder.append("\t\t\t");
+    _builder.append("log.debug(\"Watcher: Start \"+interchange.getDirection()+\" for interchange \"+interchange.getName()+\"!\");");
+    _builder.newLine();
+    _builder.append("\t\t\t");
+    _builder.append("executorService.submit(interchange).get();");
+    _builder.newLine();
+    _builder.append("\t\t\t");
+    _builder.append("log.debug(\"Watcher: \"+interchange.getDirection()+\" for \"+ interchange.getName() + \" successfully ended!\");");
+    _builder.newLine();
+    _builder.append("\t\t");
+    _builder.append("} catch (Exception e) {");
+    _builder.newLine();
+    _builder.append("\t\t\t");
+    _builder.append("log.debug(\"Watcher: \"+interchange.getDirection()+\" for \"+ interchange.getName() + \" interupted ended!\\n\"+e.getMessage());");
+    _builder.newLine();
+    _builder.append("\t\t");
+    _builder.append("}");
+    _builder.newLine();
+    _builder.append("\t");
+    _builder.append("}");
+    _builder.newLine();
+    _builder.append("\t");
+    _builder.append("else{");
+    _builder.newLine();
+    _builder.append("\t\t");
+    _builder.append("// Just executre the task and move onto the next one");
+    _builder.newLine();
+    _builder.append("\t\t");
+    _builder.append("executorService.execute(interchange);");
+    _builder.newLine();
+    _builder.append("\t");
+    _builder.append("}");
+    _builder.newLine();
+    _builder.append("}");
+    return _builder.toString();
+  }
+  
+  public String handleEvent(final SignalWatcher watcher) {
+    StringConcatenation _builder = new StringConcatenation();
+    _builder.append("// get what to do based on the filename");
+    _builder.newLine();
+    _builder.append("String filemask = isFileMaskValid(file.getFileName().toString(), event.kind());");
+    _builder.newLine();
+    _builder.append("if(filemask != null){");
+    _builder.newLine();
+    _builder.append("\t");
+    _builder.append("switch (filemask) {");
+    _builder.newLine();
+    String result = _builder.toString();
+    EList<SignalHandler> _handlers = watcher.getHandlers();
+    for (final SignalHandler handler : _handlers) {
+      DataTransfer _data = handler.getData();
+      if ((_data instanceof SingleTransfer)) {
+        DataTransfer _data_1 = handler.getData();
+        SingleTransfer handlerdata = ((SingleTransfer) _data_1);
+        StringConcatenation _builder_1 = new StringConcatenation();
+        _builder_1.append("case \"");
+        String _name = handler.getName();
+        String _plus = (_name + "|");
+        String _filemask = handler.getFilemask();
+        String _plus_1 = (_plus + _filemask);
+        _builder_1.append(_plus_1);
+        _builder_1.append("\":");
+        _builder_1.newLineIfNotEmpty();
+        _builder_1.append("\t");
+        _builder_1.append("executorService.execute(");
+        String _appropriateInterchangeOperationName = this.getAppropriateInterchangeOperationName(handlerdata.getInterchange());
+        _builder_1.append(_appropriateInterchangeOperationName, "\t");
+        _builder_1.append("()); break;");
+        _builder_1.newLineIfNotEmpty();
+        result = result.concat(_builder_1.toString());
+      } else {
+        DataTransfer _data_2 = handler.getData();
+        ListTransfer handlerdata_1 = ((ListTransfer) _data_2);
+        SignalExecutionTypeEnum _elvis = null;
+        SignalExecutionTypeEnum _executiontype = handlerdata_1.getExecutiontype();
+        if (_executiontype != null) {
+          _elvis = _executiontype;
+        } else {
+          _elvis = SignalExecutionTypeEnum.SYNC;
+        }
+        boolean is_synch = _elvis.equals(SignalExecutionTypeEnum.SYNC);
+        StringConcatenation _builder_2 = new StringConcatenation();
+        _builder_2.append("case \"");
+        String _name_1 = handler.getName();
+        String _plus_2 = (_name_1 + "|");
+        String _filemask_1 = handler.getFilemask();
+        String _plus_3 = (_plus_2 + _filemask_1);
+        _builder_2.append(_plus_3);
+        _builder_2.append("\":");
+        _builder_2.newLineIfNotEmpty();
+        _builder_2.append("executeTasks(listOfTasks.get(\"");
+        String _name_2 = handler.getName();
+        String _plus_4 = (_name_2 + "|");
+        String _filemask_2 = handler.getFilemask();
+        String _plus_5 = (_plus_4 + _filemask_2);
+        _builder_2.append(_plus_5);
+        _builder_2.append("\"), ");
+        _builder_2.append(is_synch);
+        _builder_2.append("); break;");
+        _builder_2.newLineIfNotEmpty();
+        result = result.concat(_builder_2.toString());
+      }
+    }
+    StringConcatenation _builder_3 = new StringConcatenation();
+    _builder_3.append("\t\t");
+    _builder_3.append("default: break;");
+    _builder_3.newLine();
+    _builder_3.append("\t");
+    _builder_3.append("}");
+    _builder_3.newLine();
+    _builder_3.append("}");
+    _builder_3.newLine();
+    _builder_3.append("\t   \t");
+    _builder_3.append("else{");
+    _builder_3.newLine();
+    _builder_3.append("\t    \t");
+    _builder_3.append("log.debug(\"No action executed for file [\"+file+\"] on event [\"+event.kind().name()+\"].\");");
+    _builder_3.newLine();
+    _builder_3.append("\t    ");
+    _builder_3.append("}");
+    result = result.concat(_builder_3.toString());
+    return result;
   }
   
   public void toWatcherConstructor(final JvmGenericType type, final SignalWatcher watcher) {
@@ -858,6 +653,8 @@
       final Procedure1<ITreeAppendable> _function_1 = (ITreeAppendable it_1) -> {
         StringConcatenation _builder = new StringConcatenation();
         _builder.append("super();");
+        _builder.newLine();
+        _builder.append("executorService = Executors.newFixedThreadPool(10);");
         it_1.append(_builder);
       };
       this._jvmTypesBuilder.setBody(it, _function_1);
@@ -866,132 +663,307 @@
     this._jvmTypesBuilder.<JvmConstructor>operator_add(_members, _constructor);
   }
   
-  public String registerAll(final SignalWatcher watcher) {
+  public String initTasksLists(final SignalWatcher watcher) {
     StringConcatenation _builder = new StringConcatenation();
-    _builder.append("//TODO enter the register logic here");
+    _builder.append("ArrayList<WorkerThreadRunnable> data = null;");
     _builder.newLine();
-    _builder.append("super.registerAll(rootpath, signals);");
+    _builder.append("listOfTasks = new HashMap<>();");
     _builder.newLine();
-    return _builder.toString();
+    String result = _builder.toString();
+    EList<SignalHandler> _handlers = watcher.getHandlers();
+    for (final SignalHandler handler : _handlers) {
+      {
+        DataTransfer _data = handler.getData();
+        if ((_data instanceof ListTransfer)) {
+          DataTransfer _data_1 = handler.getData();
+          ListTransfer handlerdata = ((ListTransfer) _data_1);
+          StringConcatenation _builder_1 = new StringConcatenation();
+          _builder_1.append("data = new ArrayList<WorkerThreadRunnable>();");
+          _builder_1.newLine();
+          result = result.concat(_builder_1.toString());
+          EList<SignalDatainterchange> _interchanges = handlerdata.getInterchanges();
+          for (final SignalDatainterchange interchange : _interchanges) {
+            StringConcatenation _builder_2 = new StringConcatenation();
+            _builder_2.append("data.add(");
+            String _appropriateInterchangeOperationName = this.getAppropriateInterchangeOperationName(interchange);
+            _builder_2.append(_appropriateInterchangeOperationName);
+            _builder_2.append("());");
+            _builder_2.newLineIfNotEmpty();
+            result = result.concat(_builder_2.toString());
+          }
+          StringConcatenation _builder_3 = new StringConcatenation();
+          _builder_3.append("listOfTasks.put(\"");
+          String _name = handler.getName();
+          String _plus = (_name + "|");
+          String _filemask = handler.getFilemask();
+          String _plus_1 = (_plus + _filemask);
+          _builder_3.append(_plus_1);
+          _builder_3.append("\", data);");
+          _builder_3.newLineIfNotEmpty();
+          result = result.concat(_builder_3.toString());
+        }
+        StringConcatenation _builder_4 = new StringConcatenation();
+        _builder_4.append("addFilemaskAndAction(\"");
+        String _name_1 = handler.getName();
+        String _plus_2 = (_name_1 + "|");
+        String _filemask_1 = handler.getFilemask();
+        String _plus_3 = (_plus_2 + _filemask_1);
+        _builder_4.append(_plus_3);
+        _builder_4.append("\", SignalHandlerTypeEnum.");
+        String _upperCase = handler.getActionType().getLiteral().toUpperCase();
+        _builder_4.append(_upperCase);
+        _builder_4.append(");");
+        _builder_4.newLineIfNotEmpty();
+        result = result.concat(_builder_4.toString());
+      }
+    }
+    return result;
   }
   
-  public String registerPathToWatcher(final SignalWatcher watcher) {
-    StringConcatenation _builder = new StringConcatenation();
-    _builder.append("if (signals != null && !signals.isEmpty()) {");
-    _builder.newLine();
-    _builder.append("\t");
-    _builder.append("boolean iscreate = signals.contains(StandardWatchEventKinds.ENTRY_CREATE.toString());");
-    _builder.newLine();
-    _builder.append("\t");
-    _builder.append("boolean isdelete = signals.contains(StandardWatchEventKinds.ENTRY_DELETE.toString());");
-    _builder.newLine();
-    _builder.append("\t");
-    _builder.append("boolean ismodify = signals.contains(StandardWatchEventKinds.ENTRY_MODIFY.toString());");
-    _builder.newLine();
-    _builder.append("\t");
-    _builder.append("// create one key for all kind of changes");
-    _builder.newLine();
-    _builder.append("\t");
-    _builder.append("// and save the key for later use");
-    _builder.newLine();
-    _builder.append("\t");
-    _builder.append("// TODO only applicable with xtext generation");
-    _builder.newLine();
-    _builder.append("\t");
-    _builder.append("// keys.put(directory.register(watcher, iscreate ? StandardWatchEventKinds.ENTRY_CREATE :");
-    _builder.newLine();
-    _builder.append("\t");
-    _builder.append("// null,");
-    _builder.newLine();
-    _builder.append("\t");
-    _builder.append("// isdelete ? StandardWatchEventKinds.ENTRY_DELETE : null, ismodify ? StandardWatchEventKinds.ENTRY_MODIFY : null),");
-    _builder.newLine();
-    _builder.append("\t");
-    _builder.append("// directory);");
-    _builder.newLine();
-    _builder.append("\t");
-    _builder.append("getRegisteredKeysAndPaths().put(directory.register(getWatcher(), StandardWatchEventKinds.ENTRY_CREATE, StandardWatchEventKinds.ENTRY_DELETE, StandardWatchEventKinds.ENTRY_MODIFY), directory);");
-    _builder.newLine();
-    _builder.append("} else {");
-    _builder.newLine();
-    _builder.append("\t");
-    _builder.append("// if none signals have been given by the user,");
-    _builder.newLine();
-    _builder.append("\t");
-    _builder.append("// create a default key for all kind of changes");
-    _builder.newLine();
-    _builder.append("\t");
-    _builder.append("// and save the key for later use");
-    _builder.newLine();
-    _builder.append("\t");
-    _builder.append("getRegisteredKeysAndPaths().put(directory.register(getWatcher(), StandardWatchEventKinds.ENTRY_CREATE, StandardWatchEventKinds.ENTRY_DELETE, StandardWatchEventKinds.ENTRY_MODIFY), directory);");
-    _builder.newLine();
-    _builder.append("}");
-    _builder.newLine();
-    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;
+    } 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;
+      }
+    }
+    return operation_name;
   }
   
-  public String getHandleEvent(final SignalWatcher watcher) {
+  public boolean createAppropriateInterchangeOperations(final JvmGenericType type, final SignalWatcher watcher, 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) -> {
+              final Procedure1<ITreeAppendable> _function_1 = (ITreeAppendable it_1) -> {
+                StringConcatenation _builder = new StringConcatenation();
+                String _basicRunConfiguration = this.getBasicRunConfiguration(interchange.getDataRef(), true, this.getFileURL(interchange.getDataRef()), WorkerThreadRunnable.Direction.IMPORT, false);
+                _builder.append(_basicRunConfiguration);
+                it_1.append(_builder);
+              };
+              this._jvmTypesBuilder.setBody(it, _function_1);
+            };
+            JvmOperation _method = this._jvmTypesBuilder.toMethod(watcher, operationname, this._typeReferenceBuilder.typeRef("WorkerThreadRunnable"), _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 _basicRunConfiguration = this.getBasicRunConfiguration(interchange.getDataRef(), true, this.getFileURL(interchange.getDataRef()), WorkerThreadRunnable.Direction.EXPORT, false);
+                _builder.append(_basicRunConfiguration);
+                it_1.append(_builder);
+              };
+              this._jvmTypesBuilder.setBody(it, _function_2);
+            };
+            JvmOperation _method_1 = this._jvmTypesBuilder.toMethod(watcher, operationname, this._typeReferenceBuilder.typeRef("WorkerThreadRunnable"), _function_1);
+            this._jvmTypesBuilder.<JvmOperation>operator_add(_members_1, _method_1);
+          }
+          _xblockexpression_1 = this.operationlist.add(operationname);
+        }
+        _xifexpression = _xblockexpression_1;
+      }
+      _xblockexpression = _xifexpression;
+    }
+    return _xblockexpression;
+  }
+  
+  public void toWatcherFields(final JvmGenericType type, final SignalWatcher watcher) {
+    JvmField field = null;
+    final Procedure1<JvmField> _function = (JvmField it) -> {
+      it.setVisibility(JvmVisibility.PRIVATE);
+      final Procedure1<ITreeAppendable> _function_1 = (ITreeAppendable it_1) -> {
+        StringConcatenation _builder = new StringConcatenation();
+        _builder.append("LoggerFactory.getLogger(\"watcher\")");
+        it_1.append(_builder);
+      };
+      this._jvmTypesBuilder.setInitializer(it, _function_1);
+    };
+    field = this._jvmTypesBuilder.toField(watcher, "log", this._typeReferenceBuilder.typeRef(Logger.class), _function);
+    EList<JvmMember> _members = type.getMembers();
+    this._jvmTypesBuilder.<JvmField>operator_add(_members, field);
+    final Procedure1<JvmField> _function_1 = (JvmField it) -> {
+      it.setVisibility(JvmVisibility.PRIVATE);
+    };
+    field = this._jvmTypesBuilder.toField(watcher, "thread", this._typeReferenceBuilder.typeRef(Thread.class), _function_1);
+    EList<JvmMember> _members_1 = type.getMembers();
+    this._jvmTypesBuilder.<JvmField>operator_add(_members_1, field);
+    final Procedure1<JvmField> _function_2 = (JvmField it) -> {
+      final Procedure1<ITreeAppendable> _function_3 = (ITreeAppendable it_1) -> {
+        StringConcatenation _builder = new StringConcatenation();
+        _builder.append("true");
+        it_1.append(_builder);
+      };
+      this._jvmTypesBuilder.setInitializer(it, _function_3);
+      it.setVisibility(JvmVisibility.PRIVATE);
+    };
+    field = this._jvmTypesBuilder.toField(watcher, "active", this._typeReferenceBuilder.typeRef(boolean.class), _function_2);
+    EList<JvmMember> _members_2 = type.getMembers();
+    this._jvmTypesBuilder.<JvmField>operator_add(_members_2, field);
+    final Procedure1<JvmField> _function_3 = (JvmField it) -> {
+      it.setVisibility(JvmVisibility.PRIVATE);
+      it.setStatic(true);
+    };
+    field = this._jvmTypesBuilder.toField(watcher, "executorService", this._typeReferenceBuilder.typeRef(ExecutorService.class), _function_3);
+    EList<JvmMember> _members_3 = type.getMembers();
+    this._jvmTypesBuilder.<JvmField>operator_add(_members_3, field);
+    final Procedure1<JvmField> _function_4 = (JvmField it) -> {
+      it.setVisibility(JvmVisibility.PRIVATE);
+    };
+    field = this._jvmTypesBuilder.toField(watcher, "listOfTasks", 
+      this._typeReferenceBuilder.typeRef("Map<String, ArrayList<WorkerThreadRunnable>>"), _function_4);
+    EList<JvmMember> _members_4 = type.getMembers();
+    this._jvmTypesBuilder.<JvmField>operator_add(_members_4, field);
+    field = this._jvmTypesBuilder.toField(watcher, "persistenceService", this._typeReferenceBuilder.typeRef(IPersistenceService.class));
+    field.setStatic(true);
+    field.setVisibility(JvmVisibility.PRIVATE);
+    EList<JvmMember> _members_5 = type.getMembers();
+    this._jvmTypesBuilder.<JvmField>operator_add(_members_5, field);
+    field = this._jvmTypesBuilder.toField(watcher, "dataInterchange", this._typeReferenceBuilder.typeRef(IDataInterchange.class));
+    field.setStatic(true);
+    field.setVisibility(JvmVisibility.PRIVATE);
+    EList<JvmMember> _members_6 = type.getMembers();
+    this._jvmTypesBuilder.<JvmField>operator_add(_members_6, field);
+    field = this._jvmTypesBuilder.toField(watcher, "userAccessService", this._typeReferenceBuilder.typeRef(IUserAccessService.class));
+    field.setStatic(true);
+    field.setVisibility(JvmVisibility.PRIVATE);
+    EList<JvmMember> _members_7 = type.getMembers();
+    this._jvmTypesBuilder.<JvmField>operator_add(_members_7, field);
+    field = this._jvmTypesBuilder.toField(watcher, "blobService", this._typeReferenceBuilder.typeRef(IBlobService.class));
+    field.setStatic(true);
+    field.setVisibility(JvmVisibility.PRIVATE);
+    EList<JvmMember> _members_8 = type.getMembers();
+    this._jvmTypesBuilder.<JvmField>operator_add(_members_8, field);
+  }
+  
+  public String getActivate(final SignalWatcher watcher) {
     StringConcatenation _builder = new StringConcatenation();
-    _builder.append("//super.handleEvent(event);");
-    _builder.newLine();
-    _builder.newLine();
-    _builder.append("Path filename = ((WatchEvent<Path>) event).context().getFileName();");
-    _builder.newLine();
-    _builder.newLine();
-    _builder.append("// get what to do based on the filename");
-    _builder.newLine();
-    _builder.append("SignalActionEnum action = super.checkFileMask(filename.toString());");
-    _builder.newLine();
-    _builder.newLine();
-    _builder.append("if (event.kind() == StandardWatchEventKinds.ENTRY_CREATE && !action.equals(SignalActionEnum.NONE)) {");
+    _builder.append("thread = new Thread() {");
     _builder.newLine();
     _builder.append("\t");
-    _builder.append("switch (action) {");
-    _builder.newLine();
-    _builder.append("\t");
-    _builder.append("case DATAIMPORT:");
+    _builder.append("@Override");
     _builder.newLine();
     _builder.append("\t\t");
-    _builder.append("executeImport();");
+    _builder.append("public void run() {");
     _builder.newLine();
-    _builder.append("\t\t");
-    _builder.append("break;");
+    _builder.append("\t\t\t");
+    _builder.append("//");
+    String _firstUpper = StringExtensions.toFirstUpper(watcher.getName());
+    _builder.append(_firstUpper, "\t\t\t");
+    _builder.append(" watcherservice = null;");
+    _builder.newLineIfNotEmpty();
+    _builder.append("\t\t\t\t");
+    _builder.append("try {");
     _builder.newLine();
-    _builder.append("\t");
-    _builder.append("default: // do nothing");
+    _builder.append("\t\t\t\t\t");
+    _builder.append("//watcherservice = new ");
+    String _firstUpper_1 = StringExtensions.toFirstUpper(watcher.getName());
+    _builder.append(_firstUpper_1, "\t\t\t\t\t");
+    _builder.append("();");
+    _builder.newLineIfNotEmpty();
+    _builder.append("\t\t\t\t\t");
+    _builder.append("//watcherservice.setSignals(Arrays.asList(SignalTypeEnum.");
+    String _upperCase = watcher.getSignal().getLiteral().toUpperCase();
+    _builder.append(_upperCase, "\t\t\t\t\t");
+    _builder.append("));");
+    _builder.newLineIfNotEmpty();
+    _builder.append("\t\t\t\t\t");
+    _builder.append("//watcherservice.registerPathToWatcher(Paths.get(\"");
+    String _directory = watcher.getDirectory();
+    _builder.append(_directory, "\t\t\t\t\t");
+    _builder.append("\"));");
+    _builder.newLineIfNotEmpty();
+    _builder.append("\t\t\t\t\t");
+    _builder.append("setSignals(Arrays.asList(SignalTypeEnum.");
+    String _upperCase_1 = watcher.getSignal().getLiteral().toUpperCase();
+    _builder.append(_upperCase_1, "\t\t\t\t\t");
+    _builder.append("));");
+    _builder.newLineIfNotEmpty();
+    _builder.append("\t\t\t\t\t");
+    _builder.append("registerPathToWatcher(Paths.get(\"");
+    String _directory_1 = watcher.getDirectory();
+    _builder.append(_directory_1, "\t\t\t\t\t");
+    _builder.append("\"));");
+    _builder.newLineIfNotEmpty();
+    _builder.append("\t\t\t\t\t");
+    _builder.append("while (active) {");
     _builder.newLine();
-    _builder.append("\t\t");
-    _builder.append("break;");
+    _builder.append("\t\t\t\t\t\t");
+    _builder.append("log.debug(\"Start watcher Service ");
+    String _firstUpper_2 = StringExtensions.toFirstUpper(watcher.getName());
+    _builder.append(_firstUpper_2, "\t\t\t\t\t\t");
+    _builder.append("\");");
+    _builder.newLineIfNotEmpty();
+    _builder.append("\t\t\t\t\t\t");
+    _builder.append("//watcherservice.processEvents();");
     _builder.newLine();
-    _builder.append("\t");
+    _builder.append("\t\t\t\t\t\t");
+    _builder.append("initTasksLists();");
+    _builder.newLine();
+    _builder.append("\t\t\t\t\t\t");
+    _builder.append("processEvents();");
+    _builder.newLine();
+    _builder.append("\t\t\t\t\t");
     _builder.append("}");
     _builder.newLine();
+    _builder.append("\t\t\t\t");
+    _builder.append("} catch (Exception e) {");
+    _builder.newLine();
+    _builder.append("\t\t\t\t\t");
+    _builder.append("log.debug(\"Thread interrupted \" + e.getMessage());");
+    _builder.newLine();
+    _builder.append("\t\t\t\t\t");
+    _builder.append("//watcherservice.closeWatcher();");
+    _builder.newLine();
+    _builder.append("\t\t\t\t\t");
+    _builder.append("closeWatcher();");
+    _builder.newLine();
+    _builder.append("\t\t\t\t");
     _builder.append("}");
     _builder.newLine();
+    _builder.append("\t\t");
+    _builder.append("}");
+    _builder.newLine();
+    _builder.append("};");
+    _builder.newLine();
+    _builder.append("thread.start();");
     return _builder.toString();
   }
   
-  public String getStart(final SignalWatcher watcher) {
+  public String getDeactivate(final SignalWatcher watcher) {
     StringConcatenation _builder = new StringConcatenation();
-    _builder.append("super.startWatcher(path, signal);");
+    _builder.append("try {");
     _builder.newLine();
-    return _builder.toString();
-  }
-  
-  public String getStop(final SignalWatcher watcher) {
-    StringConcatenation _builder = new StringConcatenation();
-    _builder.append("// stop the service");
+    _builder.append("\t");
+    _builder.append("stopThread();");
     _builder.newLine();
-    _builder.append("super.getWatcher().close();");
+    _builder.append("\t");
+    _builder.append("thread.join();");
     _builder.newLine();
-    return _builder.toString();
-  }
-  
-  public String getProcessEvents(final SignalWatcher watcher) {
-    StringConcatenation _builder = new StringConcatenation();
-    _builder.append("super.processEvents();");
+    _builder.append("} catch (InterruptedException e) {");
     _builder.newLine();
+    _builder.append("\t");
+    _builder.append("e.printStackTrace();");
+    _builder.newLine();
+    _builder.append("}");
     return _builder.toString();
   }
   
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 54defed..62b52a1 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
@@ -14,30 +14,24 @@
  */
 package org.eclipse.osbp.xtext.signal.jvmmodel;
 
-import com.vaadin.ui.Notification;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.PrintWriter;
-import java.io.StringWriter;
 import java.nio.file.FileSystems;
 import java.nio.file.Path;
 import java.nio.file.Paths;
-import java.nio.file.StandardWatchEventKinds;
 import java.nio.file.WatchEvent;
-import java.nio.file.WatchKey;
+import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.HashMap;
-import java.util.Properties;
+import java.util.Map;
+import java.util.concurrent.Executors;
 import javax.inject.Inject;
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.resource.Resource;
 import org.eclipse.osbp.core.api.persistence.IPersistenceService;
 import org.eclipse.osbp.datainterchange.api.IDataInterchange;
-import org.eclipse.osbp.preferences.ProductConfiguration;
-import org.eclipse.osbp.runtime.common.event.EventDispatcherEvent;
 import org.eclipse.osbp.xtext.basic.generator.BasicDslGeneratorUtils;
 import org.eclipse.osbp.xtext.datainterchange.common.WorkerThreadRunnable;
 import org.eclipse.osbp.xtext.i18n.I18NModelGenerator;
-import org.eclipse.osbp.xtext.signal.SignalActionEnum;
+import org.eclipse.osbp.xtext.signal.SignalHandlerTypeEnum;
 import org.eclipse.osbp.xtext.signal.SignalTypeEnum;
 import org.eclipse.osbp.xtext.signal.common.OSBPSignalWatcher;
 import org.eclipse.xtext.generator.IFileSystemAccess;
@@ -45,6 +39,7 @@
 import org.eclipse.xtext.xbase.compiler.ImportManager;
 import org.eclipse.xtext.xbase.compiler.output.TreeAppendable;
 import org.eclipse.xtext.xbase.lib.Extension;
+import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings("all")
@@ -62,30 +57,22 @@
       this.setBuilder(context.eResource());
       this._basicDslGeneratorUtils.addImportFor(this, importManager, this._typeReferenceBuilder, 
         SignalTypeEnum.class, 
-        LoggerFactory.class, 
+        SignalHandlerTypeEnum.class, 
         OSBPSignalWatcher.class, 
-        StandardWatchEventKinds.class, 
-        WatchKey.class, 
-        WatchEvent.class, 
-        WatchEvent.Kind.class, 
-        Path.class, 
         Paths.class, 
-        ProductConfiguration.class, 
-        File.class, 
-        FileInputStream.class, 
-        StringWriter.class, 
-        PrintWriter.class, 
-        Properties.class, 
-        Notification.class, 
         WorkerThreadRunnable.class, 
-        EventDispatcherEvent.EventDispatcherCommand.class, 
-        EventDispatcherEvent.EventDispatcherDataTag.class, 
-        EventDispatcherEvent.class, 
         IPersistenceService.class, 
         IDataInterchange.class, 
-        SignalActionEnum.class, 
         FileSystems.class, 
-        HashMap.class);
+        Logger.class, 
+        LoggerFactory.class, 
+        HashMap.class, 
+        Arrays.class, 
+        WatchEvent.class, 
+        Path.class, 
+        Executors.class, 
+        Map.class, 
+        ArrayList.class);
       _xblockexpression = super.createAppendable(context, importManager, config);
     }
     return _xblockexpression;
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 a9f8cc9..a76064f 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
@@ -13,7 +13,17 @@
  */
 package org.eclipse.osbp.xtext.signal.validation;
 
+import java.util.HashSet;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.osbp.xtext.signal.SignalDSLPackage;
+import org.eclipse.osbp.xtext.signal.SignalHandler;
+import org.eclipse.osbp.xtext.signal.SignalHandlerTypeEnum;
+import org.eclipse.osbp.xtext.signal.SignalPackage;
+import org.eclipse.osbp.xtext.signal.SignalTypeEnum;
+import org.eclipse.osbp.xtext.signal.SignalWatcher;
 import org.eclipse.osbp.xtext.signal.validation.AbstractSignalDSLValidator;
+import org.eclipse.xtext.validation.Check;
 
 /**
  * This class contains custom validation rules.
@@ -22,4 +32,152 @@
  */
 @SuppressWarnings("all")
 public class SignalDSLValidator extends AbstractSignalDSLValidator {
+  @Check
+  public void checkSignalHandling(final SignalWatcher watcher) {
+    EList<SignalHandler> _handlers = watcher.getHandlers();
+    for (final SignalHandler handler : _handlers) {
+      if ((handler != null)) {
+        if (((watcher != null) && (handler.getActionType() != null))) {
+          this.checkHandlerActionType(handler);
+          SignalTypeEnum signal = watcher.getSignal();
+          if (((signal != null) && signal.equals(SignalTypeEnum.ALL))) {
+          } else {
+            if (((signal != null) && signal.equals(SignalTypeEnum.CREATESIGNALS))) {
+              boolean _equals = SignalHandlerTypeEnum.DOAFTERCREATE.equals(handler.getActionType());
+              boolean _not = (!_equals);
+              if (_not) {
+                this.error("Only the handler type doAfterCreate is allowed here.", handler, SignalDSLPackage.Literals.SIGNAL_HANDLER__ACTION_TYPE);
+              }
+            } else {
+              if (((signal != null) && signal.equals(SignalTypeEnum.DELETESIGNALS))) {
+                boolean _equals_1 = SignalHandlerTypeEnum.DOAFTERDELETE.equals(handler.getActionType());
+                boolean _not_1 = (!_equals_1);
+                if (_not_1) {
+                  this.error("Only the handler type doAfterDelete is allowed here.", handler, SignalDSLPackage.Literals.SIGNAL_HANDLER__ACTION_TYPE);
+                }
+              } else {
+                if (((signal != null) && signal.equals(SignalTypeEnum.MODIFYSIGNALS))) {
+                  boolean _equals_2 = SignalHandlerTypeEnum.DOAFTERMODIFY.equals(handler.getActionType());
+                  boolean _not_2 = (!_equals_2);
+                  if (_not_2) {
+                    this.error("Only the handler type doAföterModify is allowed here.", handler, SignalDSLPackage.Literals.SIGNAL_HANDLER__ACTION_TYPE);
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+  public Object checkHandlerActionType(final SignalHandler handler) {
+    Object _xblockexpression = null;
+    {
+      EObject _eContainer = handler.eContainer();
+      SignalTypeEnum signal = ((SignalWatcher) _eContainer).getSignal();
+      Object _xifexpression = null;
+      if (((signal != null) && signal.equals(SignalTypeEnum.ALL))) {
+        _xifexpression = null;
+      } else {
+        if (((signal != null) && signal.equals(SignalTypeEnum.CREATESIGNALS))) {
+          boolean _equals = SignalHandlerTypeEnum.DOAFTERCREATE.equals(handler.getActionType());
+          boolean _not = (!_equals);
+          if (_not) {
+            this.error("Only the handler type doAfterCreate is allowed here.", handler, SignalDSLPackage.Literals.SIGNAL_HANDLER__ACTION_TYPE);
+          }
+        } else {
+          if (((signal != null) && signal.equals(SignalTypeEnum.DELETESIGNALS))) {
+            boolean _equals_1 = SignalHandlerTypeEnum.DOAFTERDELETE.equals(handler.getActionType());
+            boolean _not_1 = (!_equals_1);
+            if (_not_1) {
+              this.error("Only the handler type doAfterDelete is allowed here.", handler, SignalDSLPackage.Literals.SIGNAL_HANDLER__ACTION_TYPE);
+            }
+          } else {
+            if (((signal != null) && signal.equals(SignalTypeEnum.MODIFYSIGNALS))) {
+              boolean _equals_2 = SignalHandlerTypeEnum.DOAFTERMODIFY.equals(handler.getActionType());
+              boolean _not_2 = (!_equals_2);
+              if (_not_2) {
+                this.error("Only the handler type doAfterModify is allowed here.", handler, SignalDSLPackage.Literals.SIGNAL_HANDLER__ACTION_TYPE);
+              }
+            }
+          }
+        }
+      }
+      _xblockexpression = _xifexpression;
+    }
+    return _xblockexpression;
+  }
+  
+  @Check
+  public void checkDuplicateWatcherNames(final SignalPackage pkg) {
+    HashSet<String> watchers = new HashSet<String>();
+    EList<SignalWatcher> _watchers = pkg.getWatchers();
+    for (final SignalWatcher watcher : _watchers) {
+      boolean _contains = watchers.contains(watcher.getName());
+      boolean _not = (!_contains);
+      if (_not) {
+        watchers.add(watcher.getName());
+      } else {
+        this.error("The watcher id has to be unique.", watcher, SignalDSLPackage.Literals.SIGNAL_WATCHER__NAME);
+      }
+    }
+  }
+  
+  @Check
+  public void checkDuplicateHandlerNames(final SignalWatcher watcher) {
+    HashSet<String> handlers = new HashSet<String>();
+    EList<SignalHandler> _handlers = watcher.getHandlers();
+    for (final SignalHandler handler : _handlers) {
+      boolean _contains = handlers.contains(handler.getName());
+      boolean _not = (!_contains);
+      if (_not) {
+        handlers.add(handler.getName());
+      } else {
+        this.error("The handler id has to be unique.", handler, SignalDSLPackage.Literals.SIGNAL_HANDLER__NAME);
+      }
+    }
+  }
+  
+  @Check
+  public void checkDuplicateDirectoryNames(final SignalPackage pkg) {
+    HashSet<String> watcherdir = new HashSet<String>();
+    EList<SignalWatcher> _watchers = pkg.getWatchers();
+    for (final SignalWatcher watcher : _watchers) {
+      boolean _contains = watcherdir.contains(watcher.getDirectory());
+      boolean _not = (!_contains);
+      if (_not) {
+        watcherdir.add(watcher.getDirectory());
+      } else {
+        String _directory = watcher.getDirectory();
+        String _plus = ("The watcher directory \'" + _directory);
+        String _plus_1 = (_plus + "\' is already in use. Please choose another directory.");
+        this.error(_plus_1, watcher, SignalDSLPackage.Literals.SIGNAL_WATCHER__DIRECTORY);
+      }
+    }
+  }
+  
+  public boolean checkDuplicateFileMasks(final SignalWatcher watcher) {
+    HashSet<String> filemasks = new HashSet<String>();
+    EList<SignalHandler> _handlers = watcher.getHandlers();
+    for (final SignalHandler handler : _handlers) {
+      String _name = handler.getName();
+      String _plus = (_name + ".");
+      String _filemask = handler.getFilemask();
+      String _plus_1 = (_plus + _filemask);
+      boolean _contains = filemasks.contains(_plus_1);
+      boolean _not = (!_contains);
+      if (_not) {
+        String _name_1 = handler.getName();
+        String _plus_2 = (_name_1 + ".");
+        String _filemask_1 = handler.getFilemask();
+        String _plus_3 = (_plus_2 + _filemask_1);
+        filemasks.add(_plus_3);
+      } else {
+        this.error("The handler file mask can\'t be the same as another one, inside a watcher on the same directory.", handler, SignalDSLPackage.Literals.SIGNAL_HANDLER__FILEMASK);
+        return true;
+      }
+    }
+    return false;
+  }
 }