Commit fb639715 authored by Philip Makedonski's avatar Philip Makedonski
Browse files

* composition vs inheritance in EventOccurrence to enable prefix for time...

* composition vs inheritance in EventOccurrence to enable prefix for time labels and time constraints, updated syntax, #203
parent 1d1a99c6
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -61,6 +61,10 @@
        eType="ecore:EClass tdl.ecore#//TimeConstraint" containment="true"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="timeLabel" eType="ecore:EClass tdl.ecore#//TimeLabel"
        containment="true"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="occurrence" eType="#//EventOccurrenceSpecification"
        containment="true"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="template" eType="#//EventTemplateOccurrence"
        containment="true"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="ExpectedBehaviour" eSuperTypes="#//Element">
    <eStructuralFeatures xsi:type="ecore:EReference" name="whenClause" eType="#//EventSequence"
+14 −18
Original line number Diff line number Diff line
@@ -1608,11 +1608,17 @@ RepeatedEventSequence returns to::RepeatedEventSequence:
;

FirstEventOccurrence returns to::EventOccurrence:
    FirstEventOccurrenceSpecification | FirstEventTemplateOccurrence 
	EventOccurrenceFragment
;

EventOccurrence returns to::EventOccurrence:
    EventOccurrenceSpecification | EventTemplateOccurrence 
	ElementAndOrPrefix
	EventOccurrenceFragment
;

fragment EventOccurrenceFragment returns to::EventOccurrence:
	EventTimingPrefix?
    (occurrence=EventOccurrenceSpecification | template=EventTemplateOccurrence) 
;

fragment EventTimingPrefix returns to::EventOccurrence:
@@ -1620,7 +1626,7 @@ fragment EventTimingPrefix returns to::EventOccurrence:
        (
            (timeLabel=PrefixTimeLabel (',' timeConstraint+=PrefixTimeConstraint)?)
            |
            timeConstraint+=TimeConstraint
            timeConstraint+=PrefixTimeConstraint
        )
        ':'
    )    
@@ -1660,24 +1666,14 @@ PrefixTimeConstraint returns tdl::TimeConstraint:
;


FirstEventOccurrenceSpecification returns to::EventOccurrenceSpecification:
    EventOccurrenceSpecificationFragment
;

EventOccurrenceSpecification returns to::EventOccurrenceSpecification:
    ElementAndOrPrefix
    EventOccurrenceSpecificationFragment
;

fragment EventOccurrenceSpecificationFragment returns to::EventOccurrenceSpecification:
//    EventTimingPrefix?
    entityReference=EntityReference?
    eventReference=EventReference
    eventArgument=Argument?
    (oppositeEntityReference+=OppositeEntityReference 
        (',' oppositeEntityReference+=OppositeEntityReference)*
    )?
    EventTimingSuffix?
//    EventTimingSuffix?
    CommentFragment?
;

@@ -1890,7 +1886,7 @@ EventSpecificationTemplate returns to::EventSpecificationTemplate:
    AnnotationCommentFragment
    'Template' name=Identifier
    BEGIN
        eventSpecification=FirstEventOccurrenceSpecification
        eventSpecification=EventOccurrenceSpecification
    END
;

@@ -1899,7 +1895,7 @@ FirstEventTemplateOccurrence returns to::EventTemplateOccurrence:
;

EventTemplateOccurrence returns to::EventTemplateOccurrence:
    ElementAndOrPrefix
//    ElementAndOrPrefix
    EventTemplateOccurrenceFragment
;

@@ -1910,8 +1906,8 @@ fragment EventTemplateOccurrenceFragment returns to::EventTemplateOccurrence:
    'occurs'
    ('with' 
    BEGIN
        EventTimeLabelFragment?
        EventTimeConstraintFragment?
//        EventTimeLabelFragment?
//        EventTimeConstraintFragment?
        (entityBinding+=EntityBinding (',' entityBinding+=EntityBinding)*)?
        ('argument' 'replaced' 'by' occurrenceArgument=Argument)?
    END