Commit af7106b9 authored by Martti Käärik's avatar Martti Käärik
Browse files

MemberIdentifier

parent 6df7115e
Loading
Loading
Loading
Loading
+25 −6
Original line number Diff line number Diff line
@@ -230,7 +230,7 @@ Member returns tdl::Member:
    AnnotationCommentFragment
    (isOptional?='optional')?
    dataType=[tdl::DataType|Identifier]
    name=Identifier
    name=MemberIdentifier
    (LBrace constraint+=Constraint RBrace)*
;

@@ -244,7 +244,7 @@ StructuredDataInstance returns tdl::StructuredDataInstance:

MemberAssignment returns tdl::MemberAssignment:
    AnnotationCommentFragment
    member=[tdl::Member|Identifier]
    member=[tdl::Member|MemberIdentifier]
    '=' memberSpec=DataUse
;

@@ -477,7 +477,7 @@ fragment ParameterReductionFragment returns tdl::ParameterBinding:
;

MemberReference returns tdl::MemberReference:
    ('.' member=[tdl::Member|Identifier]) 
    ('.' member=[tdl::Member|MemberIdentifier])
    |
    ('.' 'get' LParen collectionIndex=DataUse RParen)
;
@@ -1235,6 +1235,25 @@ Identifier:
    | 'name' | 'type' | 'value' | 'attribute'//TODO: exclude other keywords to the extent possible?
;

// MemberIdentifier — extends Identifier with keywords commonly useful as
// structure member names. Used in Member name, MemberAssignment cross-ref,
// and MemberReference cross-ref positions only.
MemberIdentifier:
    Identifier
    | 'start' | 'stop'
    | 'from' | 'to'
    | 'before' | 'after'
    | 'time' | 'point'
    | 'default'
    | 'entity' | 'event'
    | 'size'
    | 'instance' | 'component' | 'gate' | 'variable'
    | 'parameter' | 'argument'
    | 'action' | 'behaviour' | 'timer'
    | 'verdict' | 'exception'
    | 'get'
;

AIdentifier:    
    Identifier 
    | InitialBlockName