9.3.38 AssociationClassCallExpCS

该产生式规则代表了一个到关联类的导航。

[A] AssociationClassCallExpCS ::= OclExpressionCS ‘.’ simpleNameCS (‘[‘ argumentsCS ‘]’)? isMarkedPreCS?
[B] AssociationClassCallExpCS ::= simpleNameCS (‘[‘ argumentsCS ‘]’)? isMarkedPreCS?

抽象语法映射

AssociationClassCallExpCS.ast : AssociationClassCallExp

合成的属性

[A] AssociationClassCallExpCS.ast.referredAssociationClass =
                OclExpressionCS.ast.type.lookupAssociationClass(simpleNameCS.ast)
AssociationClassCallExpCS.ast.source = if isMarkedPreCS->isEmpty()
                then OclExpressionCS.ast
                else OclExpressionCS.ast.isPre = true
                endif
[A] AssociationClassCallExpCS.ast.qualifiers = argumentsCS.ast
[B] AssociationClassCallExpCS.ast.referredAssociationClass =
                env.lookupImplicitAssociationClass(simpleNameCS.ast)
AssociationClassCallExpCS.ast.source =
                if isMarkedPreCS->isEmpty()
                then env.findImplicitSourceForAssociationClass(simpleNameCS.ast)
                else env.findImplicitSourceForAssociationClass(simpleNameCS.ast).isPre = true
                endif
[B] AssociationClassCallExpCS.ast.qualifiers = argumentsCS.ast

继承的属性

[A] OclExpressionCS.env = AssociationClassCallExpCS.env
[A, B] argumentsCS.env = AssociationClassCallExpCS.env

歧义消除规则

[1] ‘simpleName’是source类型的关联类的名称。

not AssociationClassCallExpCS.ast.referredAssociationClass.oclIsUndefined()

results matching ""

    No results matching ""