public override bool SemanticAnalysis(INamable instance = null)
{
bool retVal = base.SemanticAnalysis(instance);
if (retVal)
{
// VariableIdentification
if (VariableIdentification != null)
{
VariableIdentification.SemanticAnalysis(instance, IsLeftSide.INSTANCE);
StaticUsage.AddUsages(VariableIdentification.StaticUsage, Usage.ModeEnum.Write);
}
else
{
AddError("Altered variable not specified", RuleChecksEnum.SemanticAnalysisError);
}
// Expression
Expression.SemanticAnalysis(instance, IsRightSide.INSTANCE);
StaticUsage.AddUsages(Expression.StaticUsage, Usage.ModeEnum.Read);
}
return retVal;
}