ALF 1.0b2 FTF Avatar
  1. OMG Issue

ALF — [ALF] Issue with Section 8.3.6 - Invocation Expressions

  • Key: ALF-1
  • Legacy Issue Number: 16028
  • Status: closed  
  • Source: RPC Software ( Ted Stockwell)
  • Summary:

    The abstract syntax defined in Section 8.3.7 (Invocation Expressions) and
    Section 8.3.9 (Behavior Invocation Expressions) will not match this
    expression...

    this.monitor.getActiveSensor().getReading()

    (NOTE: the above expression is used as an example in Section 8.5.6 - Isolation
    Expressions)

    The issue seems to be that the definition of InvocationExpression does not
    repeat.

    Here is the current definition for InvocationExpression...

    InvocationExpression= InvocationTarget Tuple
    InvocationTarget= BehaviorInvocationTarget

    FeatureInvocationTarget
    SuperInvocationTarget

    Maybe the definition for InvocationTarget should be something like this?...

    InvocationExpression= InvocationTarget Tuple

    { "." InvocationTarget Tuple }
  • Reported: ALF 1.0b1 — Tue, 15 Feb 2011 05:00 GMT
  • Disposition: Resolved — ALF 1.0b2
  • Disposition Summary:

    The expression “this.monitor.getActiveSensor().getReading()” is not a behavior invocation expression, it is a feature invocation expression. The production needed is the one for FeatureInvocationTarget in Subclause 8.3.10:

    FeatureInvocationTarget(e: FeatureInvocationExpression)
    = FeatureReference(e.target) | "this"

    The expression given in the issues parses in full as follows:

    FeatureInvocationExpression
    FeatureInvocationTarget
    FeatureReference
    FeatureTargetExpression
    NonNamePrimaryExpression
    InvocationExpression [ <- Note recursion on InvocationExpression here ]
    FeatureInvocationExpression
    FeatureInvocationTarget
    FeatureReference
    FeatureTargetExpression
    NonNamePrimaryExpression
    PropertyAccessExpression
    FeatureReference
    FeatureTargetExpression
    NonNamePrimaryExpression
    ThisExpression
    NameBinding
    Name
    “monitor”
    NameBinding
    Name
    “getActiveSensor”
    Tuple
    NameBinding
    Name
    “getReading”
    Tuple

  • Updated: Fri, 6 Mar 2015 20:57 GMT