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;