summaryrefslogtreecommitdiffstats
path: root/rba.tool.editor/src/rba/tool/editor/RBAModel.xtext
diff options
context:
space:
mode:
Diffstat (limited to 'rba.tool.editor/src/rba/tool/editor/RBAModel.xtext')
-rw-r--r--rba.tool.editor/src/rba/tool/editor/RBAModel.xtext1196
1 files changed, 1196 insertions, 0 deletions
diff --git a/rba.tool.editor/src/rba/tool/editor/RBAModel.xtext b/rba.tool.editor/src/rba/tool/editor/RBAModel.xtext
new file mode 100644
index 0000000..a9022c1
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/RBAModel.xtext
@@ -0,0 +1,1196 @@
+grammar rba.tool.editor.RBAModel hidden(WS, ML_COMMENT, SL_COMMENT)
+
+import "http://www.eclipse.org/emf/2002/Ecore" as ecore
+import "http://www.denso.com/ict/rba/core" as rbacore
+import "http://www.denso.com/ict/rba/view" as rbaview
+import "http://www.denso.com/ict/rba/sound" as rbasound
+
+generate rbaEditorModel "http://www.denso.com/ict/rbatooleditor"
+
+/* Top Level */
+TopLevel:
+ {TopLevel} ('module' QualifiedName)?
+ (project+=Project)*
+ (imports+=Import)*
+ (packages+=Package)*;
+
+Import:
+ 'import' importedNamespace=QualifiedNameWithWildcard;
+
+/* Abstract Structured Data Type */
+
+PackagableElement returns rbacore::PackagableElement:
+ Package | Stereotype | RuleObject | Display | AbstractConstraint | Size;
+
+AbstractConstraint returns rbacore::AbstractConstraint:
+ Constraint;
+
+SizeIdentifier returns rbaview::SizeIdentifier:
+ SizeReference | Size;
+
+RuleObject returns rbacore::RuleObject:
+ AbstractContent | AbstractScene | AbstractAllocatable;
+
+AbstractAllocatable returns rbacore::AbstractAllocatable:
+ Allocatable | AllocatableSet;
+
+Allocatable returns rbacore::Allocatable:
+ Area | Zone;
+
+AllocatableSet returns rbacore::AllocatableSet:
+ AreaSet | ZoneSet;
+
+AbstractContent returns rbacore::AbstractContent:
+ Content | ContentSet;
+
+Content returns rbacore::Content:
+ ViewContent | SoundContent;
+
+ContentSet returns rbacore::ContentSet:
+ ViewContentSet | SoundContentSet;
+
+AbstractScene returns rbacore::AbstractScene:
+ Scene;
+
+AbstractProperty returns rbacore::AbstractProperty:
+ ({rbacore::IntegerProperty} 'int') name=ValidID (':' value=IntegerValue)?;
+
+LayoutManager returns rbaview::LayoutManager:
+ AlignedLayout | FixedPositionLayout;
+
+AlignedLayout returns rbaview::AlignedLayout:
+ VerticalLayout | HorizontalLayout;
+
+/* Structured Data Type */
+Tag returns rbacore::Tag:
+ =>(
+ ({rbacore::Tag} '<<' name=QualifiedName '>>') |
+ ({CTag} '«' name=QualifiedName '»')
+ ) ('{' (values+=EString (',' values+=EString)*)? '}')?;
+
+Package returns rbacore::Package:
+ {rbacore::Package}
+ 'Package'
+ name=QualifiedName
+ '{' (
+ ('description:' description=EString)? &
+ (packagableelement+=PackagableElement)*
+ ) '}';
+
+/* Structured Data Type */
+Stereotype returns rbacore::Stereotype:
+ {rbacore::Stereotype}
+ 'Stereotype' '<' targetModelName=StereotypableElementName '>'
+ name=QualifiedName
+ '(' (variables+=Variable (',' variables+=Variable)*)? ')'
+ (bodyText=RichString)?;
+
+StereotypableElementName:
+ 'Area' | 'Zone' | 'SoundContent' | 'ViewContent'
+;
+
+Display returns rbaview::Display:
+ {rbaview::Display}
+ 'Display'
+ name=QualifiedName
+ '{' (
+ ('description:' description=EString)? &
+ (size=SizeIdentifier)? &
+ (root=CompositeArea)?
+ ) '}';
+
+Constraint returns rbacore::Constraint:
+ {rbacore::Constraint}
+ 'Constraint'
+ name=QualifiedName
+ '{' (
+ ('description:' description=EString)? &
+ ('runtime:' runtime=EBoolean)? &
+ (expression=ComplexExpression)?
+ ) '}';
+
+ViewContent returns rbaview::ViewContent:
+ {rbaview::ViewContent}
+ 'ViewContent'
+ name=QualifiedName
+ '{' (
+ ('description:' description=EString)? &
+ ('loserType:' loserType=LoserType)? &
+ ('allocatable:' '[' (allocatable+=[rbacore::AbstractAllocatable|QualifiedName] ("," allocatable+=[rbacore::AbstractAllocatable|QualifiedName])*)? ']')? &
+ (states+=ViewContentState)* &
+ (size+=SizeIdentifier)* &
+ (tags+=Tag)*
+ ) '}';
+
+SoundContent returns rbasound::SoundContent:
+ {rbasound::SoundContent}
+ 'SoundContent'
+ name=QualifiedName
+ '{' (
+ ('description:' description=EString)? &
+ ('loserType:' loserType=LoserType)? &
+ ('allocatable:' '[' (allocatable+=[rbacore::AbstractAllocatable|QualifiedName] ("," allocatable+=[rbacore::AbstractAllocatable|QualifiedName])*)? ']')? &
+ (states+=SoundContentState)* &
+ (tags+=Tag)*
+ ) '}';
+
+Size returns rbaview::Size:
+ {rbaview::Size}
+ 'Size'
+ name=QualifiedName
+ '{' (
+ ('description:' description=EString)? &
+ ('width:' width=EInt)? &
+ ('height:' height=EInt)?
+ ) '}';
+
+SizeReference returns rbaview::SizeReference:
+ {rbaview::SizeReference}
+ 'sizeReference:' size=[rbaview::Size|QualifiedName];
+
+Offset returns rbaview::Offset:
+ {rbaview::Offset}
+ 'Offset'
+ '{' (
+ ('description:' description=EString)? &
+ ('x:' x=EInt)? &
+ ('y:' y=EInt)? &
+ (size=SizeReference)?
+ ) '}';
+
+AreaSet returns rbaview::AreaSet:
+ {rbaview::AreaSet}
+ 'AreaSet'
+ name=QualifiedName
+ '{' (
+ ('description:' description=EString)? &
+ ('target:' '[' (target+=[rbacore::AbstractAllocatable|QualifiedName] ("," target+=[rbacore::AbstractAllocatable|QualifiedName])*)? ']')?
+ ) '}';
+
+ZoneSet returns rbasound::ZoneSet:
+ {rbasound::ZoneSet}
+ 'ZoneSet'
+ name=QualifiedName
+ '{' (
+ ('description:' description=EString)? &
+ ('target:' '[' (target+=[rbacore::AbstractAllocatable|QualifiedName] ("," target+=[rbacore::AbstractAllocatable|QualifiedName])*)? ']')?
+ ) '}';
+
+CompositeArea returns rbaview::CompositeArea:
+ {rbaview::CompositeArea}
+ 'CompositeArea'
+ name=QualifiedName
+ '{' (
+ ('description:' description=EString)? &
+ ('layout:' layout=LayoutManager)?
+ ) '}';
+
+Area returns rbaview::Area:
+ {rbaview::Area}
+ 'Area'
+ name=QualifiedName
+ '{' (
+ ('description:' description=EString)? &
+ ('arbitrationPolicy:' arbitrationPolicy=ArbitrationPolicy)? &
+ (size+=SizeIdentifier)* &
+ (('visibility:' | 'priority:') visibility=VExpression)? &
+ ('zorder:' zorder=VExpression)? &
+ (tags+=Tag)*
+ ) '}';
+
+Zone returns rbasound::Zone:
+ {rbasound::Zone}
+ 'Zone'
+ name=QualifiedName
+ '{' (
+ ('description:' description=EString)? &
+ ('arbitrationPolicy:' arbitrationPolicy=ArbitrationPolicy)? &
+ (('visibility:' | 'priority:') visibility=VExpression)? &
+ ('attenuateValue:' attenuate=IntegerValue)? &
+ (tags+=Tag)*
+ ) '}';
+
+ViewContentState returns rbaview::ViewContentState:
+ {rbaview::ViewContentState}
+ 'State'
+ name=QualifiedName
+ '{' (
+ ('description:' description=EString)? &
+ (('priority:' | 'value:') value=VExpression)?
+ ) '}';
+
+SoundContentState returns rbasound::SoundContentState:
+ {rbasound::SoundContentState}
+ 'State'
+ name=QualifiedName
+ '{' (
+ ('description:' description=EString)? &
+ (('priority:' | 'value:') value=VExpression)?
+ ) '}';
+
+Project returns rbacore::Project:
+ {rbacore::Project}
+ 'Project'
+ (dummyName=QualifiedName)?
+ '{'
+ 'version:' version=EString
+ '}';
+
+/* #######################################
+ * Sort Value Expression(VExpression)
+ * ####################################### */
+VExpression returns rbacore::Expression:
+ VPlusOperator;
+
+VPlusOperator returns rbacore::Expression:
+ VComparisonAnd (=>({rbacore::PlusOperator.operand+=current} OpPlus) operand+=VComparisonAnd)*;
+
+OpPlus:
+ '+';
+
+VComparisonAnd returns rbacore::Expression:
+ VRelationalExpression (=>({rbacore::ComparisonAnd.operand+=current} OpAnd) operand+=VRelationalExpression)*;
+
+VRelationalExpression returns rbacore::Expression:
+ VPrimaryExpression |
+ ({rbacore::MuchGreaterThanOperator} OpMuchGreaterThan operand+=VPrimaryExpression) |
+ ({rbacore::EqualToOperator} OpEqualTo operand+=VPrimaryExpression) |
+ ({rbacore::GreaterThanOperator} OpGreaterThan operand+=VPrimaryExpression) |
+ ({rbacore::LowerThanOperator} OpLowerThan operand+=VPrimaryExpression);
+
+OpMuchGreaterThan:
+ '>>';
+OpEqualTo:
+ '=';
+OpGreaterThan:
+ '>';
+OpLowerThan:
+ '<';
+
+VPrimaryExpression returns rbacore::Expression:
+ ThatOfOperator |
+ VValueExpression |
+ '(' VExpression ')';
+
+VValueExpression returns rbacore::Expression:
+ IntegerValue |
+ StandardValue |
+ NoneValue |
+ MinValue |
+ MaxValue;
+
+ThatOfOperator returns rbacore::Expression:
+ ({rbacore::ThatOfOperator} 'That-of' operand+=VMemberFeatureReference?);
+
+VMemberFeatureReference returns rbacore::ObjectReference:
+ {rbacore::ObjectReference} refObject=[rbacore::RuleObject|ValidID]
+ ({MemberFeatureReference.operand+=current} '.' refObject=[rbacore::RuleObject|ValidID])*;
+
+IntegerValue returns rbacore::IntegerValue:
+ {rbacore::IntegerValue}
+ (value=EInt);
+StandardValue returns rbacore::StandardValue:
+ {rbacore::StandardValue}
+ 'STANDARD_VALUE';
+NoneValue returns rbacore::NoneValue:
+ {rbacore::NoneValue}
+ 'NONE_VALUE';
+MinValue returns rbacore::MinValue:
+ {rbacore::MinValue}
+ 'MIN_VALUE';
+MaxValue returns rbacore::MaxValue:
+ {rbacore::MaxValue}
+ 'MAX_VALUE';
+
+/* #######################################
+ * Constraint Expression(CExpression)
+ * ####################################### */
+CExpression returns rbacore::Expression:
+ CImpliesOperator;
+
+CImpliesOperator returns rbacore::Expression:
+ COrOperator (=>({rbacore::ImpliesOperator.operand+=current} OpImplies) operand+=COrOperator)*;
+
+OpImplies:
+ '->';
+
+COrOperator returns rbacore::Expression:
+ CAndOperator (=>({rbacore::OrOperator.operand+=current} OpOr) operand+=CAndOperator)*;
+
+OpOr:
+ 'OR';
+
+CAndOperator returns rbacore::Expression:
+ CEqualityExpression (=>({rbacore::AndOperator.operand+=current} OpAnd) operand+=CEqualityExpression)*;
+
+OpAnd:
+ 'AND';
+
+CEqualityExpression returns rbacore::Expression:
+ CRelationalExpression (
+ =>(
+ ({rbacore::ObjectCompare.operand+=current} OpObjectCompare) |
+ ({rbacore::ObjectCompareNot.operand+=current} OpObjectNotCompare) |
+ ({rbacore::IsEqualToOperator.operand+=current} OpEquality)
+ ) operand+=CRelationalExpression)*;
+
+OpObjectCompare:
+ '==';
+OpObjectNotCompare:
+ '!=';
+OpEquality:
+ '=';
+
+CRelationalExpression returns rbacore::Expression:
+ CUnaryOperation (
+ =>(
+ ({rbacore::IsGreaterThanEqualOperator.operand+=current} OpIsGreaterThanEqual) |
+ ({rbacore::IsLowerThanEqualOperator.operand+=current} OpIsLowerThanEqual) |
+ ({rbacore::IsGreaterThanOperator.operand+=current} OpIsGreaterThan) |
+ ({rbacore::IsLowerThanOperator.operand+=current} OpIsLowerThan)
+ ) operand+=CUnaryOperation)*;
+
+OpIsGreaterThanEqual:
+ '>=';
+OpIsLowerThanEqual:
+ '<=';
+OpIsGreaterThan:
+ '>';
+OpIsLowerThan:
+ '<';
+
+CUnaryOperation returns rbacore::Expression:
+ ({rbacore::NotOperator} OpNot operand+=CUnaryOperation)
+ | COperationFeatureCall;
+
+OpNot:
+ "!";
+
+COperationFeatureCall returns rbacore::Expression:
+ CPrimaryExpression
+ (=>(".")
+ (
+ ((
+ //({MemberFeatureReference.operand+=current} refObject=[rbacore::RuleObject|ValidID]) |
+ ({rbacore::GetProperty.operand+=current} OpGetProperty) |
+ ({rbacore::IsOn.operand+=current} OpIsOn) |
+ ({rbacore::GetContentsList.operand+=current} OpGetContentsList) |
+ ({rbacore::ContentValue.operand+=current} OpContentValue) |
+ ({rbacore::IsActive.operand+=current} OpIsActive) |
+ ({rbacore::GetAllocatables.operand+=current} OpGetAllocatables) |
+ ({rbacore::AllocatedContent.operand+=current} OpAllocatedContent) |
+ ({rbacore::HasComeEarlierThan.operand+=current} OpHasComeEarlierThan) |
+ ({rbacore::HasComeLaterThan.operand+=current} OpHasComeLaterThan) |
+ ({rbacore::StateValue.operand+=current} OpStateValue) |
+ ({rbacore::ActiveContents.operand+=current} OpActiveContents) |
+ ({rbacore::SizeOperator.operand+=current} OpSizeOperator) |
+ ({rbacore::HasBeenDisplayed.operand+=current} OpHasBeenDisplayed) |
+ ({rbacore::ActiveState.operand+=current} OpActiveState) |
+ ({rbaview::IsDisplayed.operand+=current} OpIsDisplayed) |
+ ({rbaview::IsHidden.operand+=current} OpIsHidden) |
+ ({rbaview::DisplayingContent.operand+=current} OpDisplayingContent) |
+ ({rbaview::IsVisible.operand+=current} OpIsVisible) |
+ ({rbasound::IsOutputted.operand+=current} OpIsOutputted) |
+ ({rbasound::IsMuted.operand+=current} OpIsMuted) |
+ ({rbasound::OutputtingSound.operand+=current} OpOutputtingSound) |
+ ({rbasound::IsSounding.operand+=current} OpIsSounding) |
+ ({rbacore::IsAllocatedTo.operand+=current} OpIsAllocatedTo) |
+ ({rbacore::IsChanged.operand+=current} OpIsChanged) |
+ ({rbacore::IsTranslatedTo.operand+=current} OpIsTranslatedTo) |
+ ({rbaview::IsDisplayedOn.operand+=current} OpIsDisplayedOn) |
+ ({rbaview::IsChangedDisplay.operand+=current} OpIsChangedDisplay) |
+ ({rbaview::IsTranslatedViewTo.operand+=current} OpIsTranslatedViewTo) |
+ ({rbasound::IsOutputtedOn.operand+=current} OpIsOutputtedOn) |
+ ({rbasound::IsChangedOutput.operand+=current} OpIsChangedOutput) |
+ ({rbasound::IsTranslatedSoundTo.operand+=current} OpIsTranslatedSoundTo) |
+ ({rbasound::IsAttenuated.operand+=current} OpIsAttenuated)
+ ) =>('(' (operand+=CExpression)? ')')
+ ) |
+ (
+ (
+ ({rbacore::IsTypeOf.operand+=current} OpIsTypeOf)
+ ) =>('(' (tagName=EString)? ')')?
+ ) |
+ (
+ (
+ ({rbacore::MaxOperator.operand+=current} OpMaxOperator lambda=LambdaExpression) |
+ ({rbacore::MinOperator.operand+=current} OpMinOperator lambda=LambdaExpression) |
+ ({rbacore::SelectOperator.operand+=current} OpSelectOperator lambda=LambdaExpression)
+ )
+ )
+ )
+ )*;
+
+OpGetProperty:
+ 'get';
+OpIsOn:
+ 'isOn';
+OpGetContentsList:
+ 'contentsList';
+OpContentValue:
+ 'contentValue';
+OpIsActive:
+ 'isActive';
+OpGetAllocatables:
+ 'allocatables';
+OpAllocatedContent:
+ 'allocatedContent';
+OpIsDisplayed:
+ 'isDisplayed';
+OpIsHidden:
+ 'isHidden';
+OpDisplayingContent:
+ 'displayingContent';
+OpIsVisible:
+ 'isVisible';
+OpIsOutputted:
+ 'isOutputted';
+OpIsMuted:
+ 'isMuted';
+OpOutputtingSound:
+ 'outputtingSound';
+OpIsSounding:
+ 'isSounding';
+OpIsAttenuated:
+ 'isAttenuated';
+OpHasComeEarlierThan:
+ 'hasComeEarlierThan';
+OpHasComeLaterThan:
+ 'hasComeLaterThan';
+OpStateValue:
+ 'stateValue';
+OpIsAllocatedTo:
+ 'isAllocatedTo';
+OpIsChanged:
+ 'isChanged';
+OpIsTranslatedTo:
+ 'isTranslatedTo';
+OpIsDisplayedOn:
+ 'isDisplayedOn';
+OpIsChangedDisplay:
+ 'isChangedDisplay';
+OpIsTranslatedViewTo:
+ 'isTranslatedViewTo';
+OpIsOutputtedOn:
+ 'isOutputtedOn';
+OpIsChangedOutput:
+ 'isChangedOutput';
+OpIsTranslatedSoundTo:
+ 'isTranslatedSoundTo';
+OpIsTypeOf:
+ 'isTypeOf';
+OpActiveContents:
+ 'activeContents';
+OpSizeOperator:
+ 'size';
+OpHasBeenDisplayed:
+ 'hasBeenDisplayed';
+OpActiveState:
+ 'activeState';
+OpGetState:
+ 'state';
+OpMaxOperator:
+ 'max';
+OpMinOperator:
+ 'min';
+OpSelectOperator:
+ 'select';
+OpStartOprator:
+ 'start';
+OpStopOprator:
+ 'stop';
+OpActivateOprator:
+ 'activate';
+
+CPrimaryExpression returns rbacore::Expression:
+ CMemberFeatureReference |
+ PreviousModifier |
+ AllInstanceOfExpression |
+ NullExpression |
+ IntegerValue |
+ MuteLowerPriority |
+ HideLowerPriority |
+ SetOfOperator |
+ IfStatement |
+ ForAllOperator |
+ ExistsOperator |
+ '(' CExpression ')';
+
+AllInstanceOfExpression returns rbacore::Expression:
+ =>(
+ ({rbaview::AllInstanceOfArea} 'ALL_AREAS') |
+ ({rbaview::AllInstanceOfViewContent} 'ALL_VIEWCONTENTS') |
+ ({rbasound::AllInstanceOfZone} 'ALL_ZONES') |
+ ({rbasound::AllInstanceOfSoundContent} 'ALL_SOUNDCONTENTS')
+ );
+
+NullExpression returns rbacore::Expression:
+ =>({rbacore::NullExpression} 'NULL');
+
+PreviousModifier returns rbacore::PreviousModifier:
+ {rbacore::PreviousModifier}
+ '(pre)' (objReference=CMemberFeatureReference);
+
+HideLowerPriority returns rbaview::HideLowerPriority:
+ {rbaview::HideLowerPriority}
+ 'HideLowerPriority' '(' (operand+=CExpression) ',' (operand+=CExpression) ')';
+
+MuteLowerPriority returns rbasound::MuteLowerPriority:
+ {rbasound::MuteLowerPriority}
+ 'MuteLowerPriority' '(' (operand+=CExpression) ',' (operand+=CExpression) ')';
+
+SetOfOperator returns rbacore::SetOfOperator:
+ {rbacore::SetOfOperator}
+ '{' (operand+=CExpression (',' operand+=CExpression)*)? '}';
+IfStatement returns rbacore::IfStatement:
+ {rbacore::IfStatement}
+ 'IF' '(' condition=CExpression? ')'
+ (=>'THEN' thenExpression=CExpression)?
+ (=>'ELSE' elseExpression=CExpression)?;
+ForAllOperator returns rbacore::ForAllOperator:
+ {rbacore::ForAllOperator}
+ 'For-All' (operand+=CExpression) (lambda=LambdaExpression);
+ExistsOperator returns rbacore::ExistsOperator:
+ {rbacore::ExistsOperator}
+ 'Exists' (operand+=CExpression) (lambda=LambdaExpression);
+
+// Other
+LambdaExpression returns rbacore::LambdaExpression:
+ =>({rbacore::LambdaExpression}
+ '{')
+ (x=Variable? '|')?
+ (letStatements+=LetStatement)*
+ bodyText=CExpression
+ '}';
+Variable returns rbacore::Variable:
+ {rbacore::Variable}
+ name=QualifiedName;
+
+CObjectReference returns rbacore::ObjectReference:
+ {rbacore::ObjectReference} refObject=[rbacore::RuleObject|IdOrThis];
+
+CMemberFeatureReference returns rbacore::ObjectReference:
+ {rbacore::ObjectReference} refObject=[rbacore::RuleObject|IdOrThis]
+ ({MemberFeatureReference.operand+=current} '.' refObject=[rbacore::RuleObject|ValidID])*;
+
+LetStatement returns rbacore::LetStatement:
+ {rbacore::LetStatement}
+ ('let') (=>variable=Variable) ('=' body=CExpression)?;
+
+ComplexExpression returns rbacore::ComplexExpression:
+ {rbacore::ComplexExpression}
+ (letStatements+=LetStatement)*
+ otherExpression=CExpression;
+
+EnumExpression returns rbacore::EnumExpression:
+ ('LoserType::' =>LoserTypeExpression) | ('ArbitrationPolicy::' =>ArbitrationPolicyExpression);
+
+LoserTypeExpression returns rbacore::LoserTypeExpression:
+ {rbacore::LoserTypeExpression}
+ value=LoserType;
+
+ArbitrationPolicyExpression returns rbacore::ArbitrationPolicyExpression:
+ {rbacore::ArbitrationPolicyExpression}
+ value=ArbitrationPolicy;
+
+// ################################################################################################ //
+
+ViewContentSet returns rbaview::ViewContentSet:
+ {rbaview::ViewContentSet}
+ 'ViewContentSet'
+ name=QualifiedName
+ '{' (
+ ('description:' description=EString)? &
+ ('target:' '[' (target+=[rbacore::AbstractContent|QualifiedName] ("," target+=[rbacore::AbstractContent|QualifiedName])*)? ']')? &
+ ('allocatable:' '[' (allocatable+=[rbacore::AbstractAllocatable|QualifiedName] ("," allocatable+=[rbacore::AbstractAllocatable|QualifiedName])*)? ']')?
+ ) '}';
+
+SoundContentSet returns rbasound::SoundContentSet:
+ {rbasound::SoundContentSet}
+ 'SoundContentSet'
+ name=QualifiedName
+ '{' (
+ ('description:' description=EString)? &
+ ('target:' '[' (target+=[rbacore::AbstractContent|QualifiedName] ("," target+=[rbacore::AbstractContent|QualifiedName])*)? ']')? &
+ ('allocatable:' '[' (allocatable+=[rbacore::AbstractAllocatable|QualifiedName] ("," allocatable+=[rbacore::AbstractAllocatable|QualifiedName])*)? ']')?
+ ) '}';
+
+Scene returns rbacore::Scene:
+ {rbacore::Scene}
+ 'Scene'
+ name=QualifiedName
+ '{' (
+ ('description:' description=EString)? &
+ ('global:' global=EBoolean)? &
+ (properties+=AbstractProperty)*
+ ) '}';
+
+VerticalLayout returns rbaview::VerticalLayout:
+ {rbaview::VerticalLayout}
+ 'VerticalLayout'
+ '{' (
+ ('basePoint:' basePoint=BasePoint)? &
+ ('subarea:' '[' (subarea+=[rbaview::Area|QualifiedName] ("," subarea+=[rbaview::Area|QualifiedName])*)? ']')?
+ ) '}';
+
+HorizontalLayout returns rbaview::HorizontalLayout:
+ {rbaview::HorizontalLayout}
+ 'HorizontalLayout'
+ '{' (
+ ('basePoint:' basePoint=BasePoint)? &
+ ('subarea:' '[' (subarea+=[rbaview::Area|QualifiedName] ("," subarea+=[rbaview::Area|QualifiedName])*)? ']')?
+ ) '}';
+
+FixedPositionLayout returns rbaview::FixedPositionLayout:
+ {rbaview::FixedPositionLayout}
+ 'FixedPositionLayout'
+ '{'
+ (subAreaPosition+=PositionContainer)*
+ '}';
+
+PositionContainer returns rbaview::PositionContainer:
+ {rbaview::PositionContainer}
+ 'PositionContainer'
+ '{' (
+ ('x:' x=EInt)? &
+ ('y:' y=EInt)? &
+ ('basePoint:' basePoint=BasePoint)? &
+ ('areaReference:' area=[rbaview::Area|QualifiedName])? &
+ (offset+=Offset)*
+ ) '}';
+
+/* Primitive Data Type */
+EBoolean returns ecore::EBoolean:
+ 'true' | 'false';
+
+EInt returns ecore::EInt:
+ '-'? INT;
+
+EString returns ecore::EString:
+ STRING;
+
+RichString returns ecore::EString:
+ RICH_STRING;
+
+QualifiedNameWithWildcard:
+ QualifiedName '.*'?;
+
+QualifiedName:
+ ID ('.' ID)*;
+
+IdOrThis:
+ ValidID | 'this';
+
+ValidID:
+ ID;
+
+/* Enum */
+enum ArbitrationPolicy returns rbacore::ArbitrationPolicy:
+ DEFAULT='DEFAULT' | FIRST_COME_FIRST='FIRST_COME_FIRST' | LAST_COME_FIRST='LAST_COME_FIRST' |
+ PRIORITY_FIRST_COME_FIRST='PRIORITY_FIRST_COME_FIRST' | PRIORITY_LAST_COME_FIRST='PRIORITY_LAST_COME_FIRST';
+
+enum BasePoint returns rbaview::BasePoint:
+ LEFT_TOP='LEFT_TOP' | LEFT_MIDDLE='LEFT_MIDDLE' | LEFT_BOTTOM='LEFT_BOTTOM' | RIGHT_TOP='RIGHT_TOP' |
+ RIGHT_MIDDLE='RIGHT_MIDDLE' | RIGHT_BOTTOM='RIGHT_BOTTOM' | CENTER_TOP='CENTER_TOP' | CENTER_MIDDLE='CENTER_MIDDLE' |
+ CENTER_BOTTOM='CENTER_BOTTOM';
+
+enum LoserType returns rbacore::LoserType:
+ NEVER_GIVEUP='NEVER_GIVEUP' | GOOD_LOSER='GOOD_LOSER' | DO_NOT_GIVEUP_UNTIL_WIN='DO_NOT_GIVEUP_UNTIL_WIN';
+
+/* Terminal */
+terminal ID:
+ (IDENTIFIER_START | UNICODE_ESCAPE) (IDENTIFIER_PART | UNICODE_ESCAPE)*;
+
+terminal fragment IDENTIFIER_START_IMPL:
+ '\u0024'
+ | '\u0041'..'\u005A'
+ | '\uff08'..'\uff09'
+ | '\u005F'
+ | '\u0061'..'\u007A'
+ | '\u00A2'..'\u00A5'
+ | '\u00AA'
+ | '\u00B5'
+ | '\u00BA'
+ | '\u00C0'..'\u00D6'
+ | '\u00D8'..'\u00F6'
+ | '\u00F8'..'\u0236'
+ | '\u0250'..'\u02C1'
+ | '\u02C6'..'\u02D1'
+ | '\u02E0'..'\u02E4'
+ | '\u02EE'
+ | '\u037A'
+ | '\u0386'
+ | '\u0388'..'\u038A'
+ | '\u038C'
+ | '\u038E'..'\u03A1'
+ | '\u03A3'..'\u03CE'
+ | '\u03D0'..'\u03F5'
+ | '\u03F7'..'\u03FB'
+ | '\u0400'..'\u0481'
+ | '\u048A'..'\u04CE'
+ | '\u04D0'..'\u04F5'
+ | '\u04F8'..'\u04F9'
+ | '\u0500'..'\u050F'
+ | '\u0531'..'\u0556'
+ | '\u0559'
+ | '\u0561'..'\u0587'
+ | '\u05D0'..'\u05EA'
+ | '\u05F0'..'\u05F2'
+ | '\u0621'..'\u063A'
+ | '\u0640'..'\u064A'
+ | '\u066E'..'\u066F'
+ | '\u0671'..'\u06D3'
+ | '\u06D5'
+ | '\u06E5'..'\u06E6'
+ | '\u06EE'..'\u06EF'
+ | '\u06FA'..'\u06FC'
+ | '\u06FF'
+ | '\u0710'
+ | '\u0712'..'\u072F'
+ | '\u074D'..'\u074F'
+ | '\u0780'..'\u07A5'
+ | '\u07B1'
+ | '\u0904'..'\u0939'
+ | '\u093D'
+ | '\u0950'
+ | '\u0958'..'\u0961'
+ | '\u0985'..'\u098C'
+ | '\u098F'..'\u0990'
+ | '\u0993'..'\u09A8'
+ | '\u09AA'..'\u09B0'
+ | '\u09B2'
+ | '\u09B6'..'\u09B9'
+ | '\u09BD'
+ | '\u09DC'..'\u09DD'
+ | '\u09DF'..'\u09E1'
+ | '\u09F0'..'\u09F3'
+ | '\u0A05'..'\u0A0A'
+ | '\u0A0F'..'\u0A10'
+ | '\u0A13'..'\u0A28'
+ | '\u0A2A'..'\u0A30'
+ | '\u0A32'..'\u0A33'
+ | '\u0A35'..'\u0A36'
+ | '\u0A38'..'\u0A39'
+ | '\u0A59'..'\u0A5C'
+ | '\u0A5E'
+ | '\u0A72'..'\u0A74'
+ | '\u0A85'..'\u0A8D'
+ | '\u0A8F'..'\u0A91'
+ | '\u0A93'..'\u0AA8'
+ | '\u0AAA'..'\u0AB0'
+ | '\u0AB2'..'\u0AB3'
+ | '\u0AB5'..'\u0AB9'
+ | '\u0ABD'
+ | '\u0AD0'
+ | '\u0AE0'..'\u0AE1'
+ | '\u0AF1'
+ | '\u0B05'..'\u0B0C'
+ | '\u0B0F'..'\u0B10'
+ | '\u0B13'..'\u0B28'
+ | '\u0B2A'..'\u0B30'
+ | '\u0B32'..'\u0B33'
+ | '\u0B35'..'\u0B39'
+ | '\u0B3D'
+ | '\u0B5C'..'\u0B5D'
+ | '\u0B5F'..'\u0B61'
+ | '\u0B71'
+ | '\u0B83'
+ | '\u0B85'..'\u0B8A'
+ | '\u0B8E'..'\u0B90'
+ | '\u0B92'..'\u0B95'
+ | '\u0B99'..'\u0B9A'
+ | '\u0B9C'
+ | '\u0B9E'..'\u0B9F'
+ | '\u0BA3'..'\u0BA4'
+ | '\u0BA8'..'\u0BAA'
+ | '\u0BAE'..'\u0BB5'
+ | '\u0BB7'..'\u0BB9'
+ | '\u0BF9'
+ | '\u0C05'..'\u0C0C'
+ | '\u0C0E'..'\u0C10'
+ | '\u0C12'..'\u0C28'
+ | '\u0C2A'..'\u0C33'
+ | '\u0C35'..'\u0C39'
+ | '\u0C60'..'\u0C61'
+ | '\u0C85'..'\u0C8C'
+ | '\u0C8E'..'\u0C90'
+ | '\u0C92'..'\u0CA8'
+ | '\u0CAA'..'\u0CB3'
+ | '\u0CB5'..'\u0CB9'
+ | '\u0CBD'
+ | '\u0CDE'
+ | '\u0CE0'..'\u0CE1'
+ | '\u0D05'..'\u0D0C'
+ | '\u0D0E'..'\u0D10'
+ | '\u0D12'..'\u0D28'
+ | '\u0D2A'..'\u0D39'
+ | '\u0D60'..'\u0D61'
+ | '\u0D85'..'\u0D96'
+ | '\u0D9A'..'\u0DB1'
+ | '\u0DB3'..'\u0DBB'
+ | '\u0DBD'
+ | '\u0DC0'..'\u0DC6'
+ | '\u0E01'..'\u0E30'
+ | '\u0E32'..'\u0E33'
+ | '\u0E3F'..'\u0E46'
+ | '\u0E81'..'\u0E82'
+ | '\u0E84'
+ | '\u0E87'..'\u0E88'
+ | '\u0E8A'
+ | '\u0E8D'
+ | '\u0E94'..'\u0E97'
+ | '\u0E99'..'\u0E9F'
+ | '\u0EA1'..'\u0EA3'
+ | '\u0EA5'
+ | '\u0EA7'
+ | '\u0EAA'..'\u0EAB'
+ | '\u0EAD'..'\u0EB0'
+ | '\u0EB2'..'\u0EB3'
+ | '\u0EBD'
+ | '\u0EC0'..'\u0EC4'
+ | '\u0EC6'
+ | '\u0EDC'..'\u0EDD'
+ | '\u0F00'
+ | '\u0F40'..'\u0F47'
+ | '\u0F49'..'\u0F6A'
+ | '\u0F88'..'\u0F8B'
+ | '\u1000'..'\u1021'
+ | '\u1023'..'\u1027'
+ | '\u1029'..'\u102A'
+ | '\u1050'..'\u1055'
+ | '\u10A0'..'\u10C5'
+ | '\u10D0'..'\u10F8'
+ | '\u1100'..'\u1159'
+ | '\u115F'..'\u11A2'
+ | '\u11A8'..'\u11F9'
+ | '\u1200'..'\u1206'
+ | '\u1208'..'\u1246'
+ | '\u1248'
+ | '\u124A'..'\u124D'
+ | '\u1250'..'\u1256'
+ | '\u1258'
+ | '\u125A'..'\u125D'
+ | '\u1260'..'\u1286'
+ | '\u1288'
+ | '\u128A'..'\u128D'
+ | '\u1290'..'\u12AE'
+ | '\u12B0'
+ | '\u12B2'..'\u12B5'
+ | '\u12B8'..'\u12BE'
+ | '\u12C0'
+ | '\u12C2'..'\u12C5'
+ | '\u12C8'..'\u12CE'
+ | '\u12D0'..'\u12D6'
+ | '\u12D8'..'\u12EE'
+ | '\u12F0'..'\u130E'
+ | '\u1310'
+ | '\u1312'..'\u1315'
+ | '\u1318'..'\u131E'
+ | '\u1320'..'\u1346'
+ | '\u1348'..'\u135A'
+ | '\u13A0'..'\u13F4'
+ | '\u1401'..'\u166C'
+ | '\u166F'..'\u1676'
+ | '\u1681'..'\u169A'
+ | '\u16A0'..'\u16EA'
+ | '\u16EE'..'\u16F0'
+ | '\u1700'..'\u170C'
+ | '\u170E'..'\u1711'
+ | '\u1720'..'\u1731'
+ | '\u1740'..'\u1751'
+ | '\u1760'..'\u176C'
+ | '\u176E'..'\u1770'
+ | '\u1780'..'\u17B3'
+ | '\u17D7'
+ | '\u17DB'..'\u17DC'
+ | '\u1820'..'\u1877'
+ | '\u1880'..'\u18A8'
+ | '\u1900'..'\u191C'
+ | '\u1950'..'\u196D'
+ | '\u1970'..'\u1974'
+ | '\u1D00'..'\u1D6B'
+ | '\u1E00'..'\u1E9B'
+ | '\u1EA0'..'\u1EF9'
+ | '\u1F00'..'\u1F15'
+ | '\u1F18'..'\u1F1D'
+ | '\u1F20'..'\u1F45'
+ | '\u1F48'..'\u1F4D'
+ | '\u1F50'..'\u1F57'
+ | '\u1F59'
+ | '\u1F5B'
+ | '\u1F5D'
+ | '\u1F5F'..'\u1F7D'
+ | '\u1F80'..'\u1FB4'
+ | '\u1FB6'..'\u1FBC'
+ | '\u1FBE'
+ | '\u1FC2'..'\u1FC4'
+ | '\u1FC6'..'\u1FCC'
+ | '\u1FD0'..'\u1FD3'
+ | '\u1FD6'..'\u1FDB'
+ | '\u1FE0'..'\u1FEC'
+ | '\u1FF2'..'\u1FF4'
+ | '\u1FF6'..'\u1FFC'
+ | '\u203F'..'\u2040'
+ | '\u2054'
+ | '\u2071'
+ | '\u207F'
+ | '\u20A0'..'\u20B1'
+ | '\u2102'
+ | '\u2107'
+ | '\u210A'..'\u2113'
+ | '\u2115'
+ | '\u2119'..'\u211D'
+ | '\u2124'
+ | '\u2126'
+ | '\u2128'
+ | '\u212A'..'\u212D'
+ | '\u212F'..'\u2131'
+ | '\u2133'..'\u2139'
+ | '\u213D'..'\u213F'
+ | '\u2145'..'\u2149'
+ | '\u2160'..'\u2183'
+ | '\u3005'..'\u3007'
+ | '\u3021'..'\u3029'
+ | '\u3031'..'\u3035'
+ | '\u3038'..'\u303C'
+ | '\u3041'..'\u3096'
+ | '\u309D'..'\u309F'
+ | '\u30A1'..'\u30FF'
+ | '\u3105'..'\u312C'
+ | '\u3131'..'\u318E'
+ | '\u31A0'..'\u31B7'
+ | '\u31F0'..'\u31FF'
+ | '\u3400'..'\u4DB5'
+ | '\u4E00'..'\u9FA5'
+ | '\uA000'..'\uA48C'
+ | '\uAC00'..'\uD7A3'
+ | '\uF900'..'\uFA2D'
+ | '\uFA30'..'\uFA6A'
+ | '\uFB00'..'\uFB06'
+ | '\uFB13'..'\uFB17'
+ | '\uFB1D'
+ | '\uFB1F'..'\uFB28'
+ | '\uFB2A'..'\uFB36'
+ | '\uFB38'..'\uFB3C'
+ | '\uFB3E'
+ | '\uFB40'..'\uFB41'
+ | '\uFB43'..'\uFB44'
+ | '\uFB46'..'\uFBB1'
+ | '\uFBD3'..'\uFD3D'
+ | '\uFD50'..'\uFD8F'
+ | '\uFD92'..'\uFDC7'
+ | '\uFDF0'..'\uFDFC'
+ | '\uFE33'..'\uFE34'
+ | '\uFE4D'..'\uFE4F'
+ | '\uFE69'
+ | '\uFE70'..'\uFE74'
+ | '\uFE76'..'\uFEFC'
+ | '\uFF04'
+ | '\uFF1A'
+ | '\uFF21'..'\uFF3A'
+ | '\uFF3F'
+ | '\uFF41'..'\uFF5A'
+ | '\uFF65'..'\uFFBE'
+ | '\uFFC2'..'\uFFC7'
+ | '\uFFCA'..'\uFFCF'
+ | '\uFFD2'..'\uFFD7'
+ | '\uFFDA'..'\uFFDC'
+ | '\uFFE0'..'\uFFE1'
+ | '\uFFE5'..'\uFFE6';
+
+terminal fragment IDENTIFIER_PART_IMPL:
+ '\u0000'..'\u0008'
+ | '\u000E'..'\u001B'
+ | '\u007F'..'\u009F'
+ | '\u00AD'
+ | '\u3001'..'\u3002'
+ | '\u0300'..'\u0357'
+ | '\u035D'..'\u036F'
+ | '\u0483'..'\u0486'
+ | '\u0591'..'\u05A1'
+ | '\u05A3'..'\u05B9'
+ | '\u05BB'..'\u05BD'
+ | '\u05BF'
+ | '\u05C1'..'\u05C2'
+ | '\u05C4'
+ | '\u0600'..'\u0603'
+ | '\u0610'..'\u0615'
+ | '\u064B'..'\u0658'
+ | '\u0660'..'\u0669'
+ | '\u0670'
+ | '\u06D6'..'\u06DD'
+ | '\u06DF'..'\u06E4'
+ | '\u06E7'..'\u06E8'
+ | '\u06EA'..'\u06ED'
+ | '\u06F0'..'\u06F9'
+ | '\u070F'
+ | '\u0711'
+ | '\u0730'..'\u074A'
+ | '\u07A6'..'\u07B0'
+ | '\u0901'..'\u0903'
+ | '\u093C'
+ | '\u093E'..'\u094D'
+ | '\u0951'..'\u0954'
+ | '\u0962'..'\u0963'
+ | '\u0966'..'\u096F'
+ | '\u0981'..'\u0983'
+ | '\u09BC'
+ | '\u09BE'..'\u09C4'
+ | '\u09C7'..'\u09C8'
+ | '\u09CB'..'\u09CD'
+ | '\u09D7'
+ | '\u09E2'..'\u09E3'
+ | '\u09E6'..'\u09EF'
+ | '\u0A01'..'\u0A03'
+ | '\u0A3C'
+ | '\u0A3E'..'\u0A42'
+ | '\u0A47'..'\u0A48'
+ | '\u0A4B'..'\u0A4D'
+ | '\u0A66'..'\u0A71'
+ | '\u0A81'..'\u0A83'
+ | '\u0ABC'
+ | '\u0ABE'..'\u0AC5'
+ | '\u0AC7'..'\u0AC9'
+ | '\u0ACB'..'\u0ACD'
+ | '\u0AE2'..'\u0AE3'
+ | '\u0AE6'..'\u0AEF'
+ | '\u0B01'..'\u0B03'
+ | '\u0B3C'
+ | '\u0B3E'..'\u0B43'
+ | '\u0B47'..'\u0B48'
+ | '\u0B4B'..'\u0B4D'
+ | '\u0B56'..'\u0B57'
+ | '\u0B66'..'\u0B6F'
+ | '\u0B82'
+ | '\u0BBE'..'\u0BC2'
+ | '\u0BC6'..'\u0BC8'
+ | '\u0BCA'..'\u0BCD'
+ | '\u0BD7'
+ | '\u0BE7'..'\u0BEF'
+ | '\u0C01'..'\u0C03'
+ | '\u0C3E'..'\u0C44'
+ | '\u0C46'..'\u0C48'
+ | '\u0C4A'..'\u0C4D'
+ | '\u0C55'..'\u0C56'
+ | '\u0C66'..'\u0C6F'
+ | '\u0C82'..'\u0C83'
+ | '\u0CBC'
+ | '\u0CBE'..'\u0CC4'
+ | '\u0CC6'..'\u0CC8'
+ | '\u0CCA'..'\u0CCD'
+ | '\u0CD5'..'\u0CD6'
+ | '\u0CE6'..'\u0CEF'
+ | '\u0D02'..'\u0D03'
+ | '\u0D3E'..'\u0D43'
+ | '\u0D46'..'\u0D48'
+ | '\u0D4A'..'\u0D4D'
+ | '\u0D57'
+ | '\u0D66'..'\u0D6F'
+ | '\u0D82'..'\u0D83'
+ | '\u0DCA'
+ | '\u0DCF'..'\u0DD4'
+ | '\u0DD6'
+ | '\u0DD8'..'\u0DDF'
+ | '\u0DF2'..'\u0DF3'
+ | '\u0E31'
+ | '\u0E34'..'\u0E3A'
+ | '\u0E47'..'\u0E4E'
+ | '\u0E50'..'\u0E59'
+ | '\u0EB1'
+ | '\u0EB4'..'\u0EB9'
+ | '\u0EBB'..'\u0EBC'
+ | '\u0EC8'..'\u0ECD'
+ | '\u0ED0'..'\u0ED9'
+ | '\u0F18'..'\u0F19'
+ | '\u0F20'..'\u0F29'
+ | '\u0F35'
+ | '\u0F37'
+ | '\u0F39'
+ | '\u0F3E'..'\u0F3F'
+ | '\u0F71'..'\u0F84'
+ | '\u0F86'..'\u0F87'
+ | '\u0F90'..'\u0F97'
+ | '\u0F99'..'\u0FBC'
+ | '\u0FC6'
+ | '\u102C'..'\u1032'
+ | '\u1036'..'\u1039'
+ | '\u1040'..'\u1049'
+ | '\u1056'..'\u1059'
+ | '\u1369'..'\u1371'
+ | '\u1712'..'\u1714'
+ | '\u1732'..'\u1734'
+ | '\u1752'..'\u1753'
+ | '\u1772'..'\u1773'
+ | '\u17B4'..'\u17D3'
+ | '\u17DD'
+ | '\u17E0'..'\u17E9'
+ | '\u180B'..'\u180D'
+ | '\u1810'..'\u1819'
+ | '\u18A9'
+ | '\u1920'..'\u192B'
+ | '\u1930'..'\u193B'
+ | '\u1946'..'\u194F'
+ | '\u200C'..'\u200F'
+ | '\u202A'..'\u202E'
+ | '\u2060'..'\u2063'
+ | '\u206A'..'\u206F'
+ | '\u20D0'..'\u20DC'
+ | '\u20E1'
+ | '\u20E5'..'\u20EA'
+ | '\u302A'..'\u302F'
+ | '\u3099'..'\u309A'
+ | '\uFB1E'
+ | '\uFE00'..'\uFE0F'
+ | '\uFE20'..'\uFE23'
+ | '\uFEFF'
+ | '\uFF10'..'\uFF19'
+ | '\uFFF9'..'\uFFFB';
+
+terminal fragment IDENTIFIER_DIGITS:
+ '\u0030'..'\u0039';
+
+terminal fragment HEX_DIGIT:
+ '0'..'9' | 'a'..'f' | 'A'..'F';
+
+terminal fragment UNICODE_ESCAPE:
+ '\\' 'u' ( HEX_DIGIT ( HEX_DIGIT ( HEX_DIGIT HEX_DIGIT? )? )? )?;
+
+terminal fragment IDENTIFIER_PART:
+ IDENTIFIER_START_IMPL | IDENTIFIER_DIGITS | IDENTIFIER_PART_IMPL;
+
+terminal fragment IDENTIFIER_START:
+ IDENTIFIER_START_IMPL | IDENTIFIER_PART_IMPL;
+
+terminal WS:
+ (' '|'\t'|'\r'|'\n')+;
+
+terminal INT returns ecore::EInt:
+ ('0'..'9')+;
+
+terminal STRING:
+ '"' ('\\' . /* 'b'|'t'|'n'|'f'|'r'|'u'|'"'|"'"|'\\' */ | !('\\' | '"' | "'" | '\n' | '\r'))* '"';
+
+terminal RICH_STRING:
+ '@BEGIN@' -> '@END@';
+
+terminal ML_COMMENT: '/*' -> '*/';
+
+terminal SL_COMMENT: '//' !('\n'|'\r')* ('\r'? '\n')?;
+
+
+ConfigurationParserRule_OperatorWithMultipleOperand: OpHasComeEarlierThan | OpHasComeLaterThan | OpIsAllocatedTo | OpIsTranslatedTo | OpIsDisplayedOn | OpIsTranslatedViewTo | OpIsOutputtedOn | OpIsTranslatedSoundTo | OpIsTypeOf;
+
+ConfigurationParserRule_AreaOperatorForConstraint: OpAllocatedContent | OpContentValue | OpGetContentsList | OpIsDisplayed | OpDisplayingContent | OpIsHidden | OpIsChanged | OpIsTranslatedTo | OpIsChangedDisplay | OpIsTranslatedViewTo;
+
+ContentOperatorsCommon: OpIsActive | OpGetAllocatables | OpIsVisible | OpHasComeEarlierThan | OpHasComeLaterThan | OpStateValue | OpIsAllocatedTo | OpIsDisplayedOn;
+ConfigurationParserRule_ContentOperatorForConstraint: ContentOperatorsCommon;
+
+ConfigurationParserRule_ZoneOperatorForConstraint: OpAllocatedContent | OpContentValue | OpGetContentsList | OpIsOutputted | OpOutputtingSound | OpIsMuted | OpIsAttenuated | OpIsChanged | OpIsTranslatedTo | OpIsChangedOutput | OpIsTranslatedSoundTo;
+
+SoundOperatorsCommon: OpIsActive | OpGetAllocatables | OpIsSounding | OpHasComeEarlierThan | OpHasComeLaterThan | OpStateValue | OpIsAllocatedTo | OpIsOutputtedOn;
+ConfigurationParserRule_SoundOperatorForConstraint: SoundOperatorsCommon;
+
+ConfigurationParserRule_SceneOperatorForConstraint: OpIsOn;
+
+ConfigurationParserRule_PropertyOperatorForConstraint: OpGetProperty;
+