next up previous
Next: Field access Up: Applied occurrences of names Previous: Qualified names

Determining the meaning of a name

Applied occurrences of names[32]:

ATTR Sym: int;

TREE SYMBOL QualInhName INHERITS PkgIdUseEnv, TypeDefUseId COMPUTE
  SYNT.Sym=FullyQualifiedName(THIS.Ids);
END;

TREE SYMBOL InhBaseId INHERITS TypIdUseEnv END;

RULE: QualInhName ::= InhBaseId COMPUTE
  QualInhName.Key=InhBaseId.TypKey;
  QualInhName.TypScopeKey=
    IF(NE(InhBaseId.TypKey,NoKey),TransDefer(InhBaseId.TypKey),
    QualInhName.PkgKey);
END;

TREE SYMBOL InhQualId INHERITS TypQualIdUse COMPUTE
  SYNT.TypBind=
    BindingInScope(THIS.TypScope,THIS.Sym)
    <- (INCLUDING TypAnyScope.TypGotVisibleKeysNest);
END;

RULE: QualInhName ::= QualInhName '.' InhQualId COMPUTE
  QualInhName[1].Key=InhQualId.TypKey;
  QualInhName[1].TypScopeKey=
    IF(NE(InhQualId.TypKey,NoKey),TransDefer(InhQualId.TypKey),
    QualInhName[1].PkgKey);
  InhQualId.TypScopeKey=QualInhName[2].TypScopeKey;
END;
This macro is defined in definitions 21, 31, 32, 33, and 34.
This macro is invoked in definition 2.



2008-09-11