next up previous
Next: Method names Up: Applied occurrences of names Previous: Type names

Expression names

Expression names[23]:
RULE: Expression ::= Name $pExpressionName COMPUTE
END;

TREE SYMBOL sExprIdUse    INHERITS VarIdUseEnv,  FldIdUseEnv,  IdentOcc END;
TREE SYMBOL qExprIdUse    INHERITS               FldQualIdUse, IdentOcc END;
TREE SYMBOL pExpressionName COMPUTE
  SYNT.Sym=FullyQualifiedName(THIS.Ids);
END;

RULE: pExpressionName ::= COMPUTE
  pExpressionName.Ids=SingleintList(NoStrIndex);
  pExpressionName.Key=NoKey;
END;

RULE: pExpressionName ::= sExprIdUse COMPUTE
  pExpressionName.Ids=SingleintList(sExprIdUse.Sym);
  pExpressionName.Key=
    IF(NE(sExprIdUse.VarKey,NoKey),sExprIdUse.VarKey,
    IF(NE(sExprIdUse.FldKey,NoKey),sExprIdUse.FldKey,
    NoKey));
END;

RULE: pExpressionName ::= pAmbiguousName qExprIdUse COMPUTE
  pExpressionName.Ids=ConsintList(qExprIdUse.Sym,pAmbiguousName.Ids);
  pExpressionName.Key=qExprIdUse.FldKey;
  qExprIdUse.FldScopeKey=pAmbiguousName.TypScopeKey;
END;
This macro is defined in definitions 23.
This macro is invoked in definition 21.



2008-09-11