public override void CheckSemantics(TigerScope scope, Report report) { ContainingScope = scope; //Check children IdNode.CheckSemantics(scope, report); if (!IdNode.IsOK) { return; } //Check type name existence if (!scope.TypeNameAvailable(IdNode.Name)) { report.AddError(SemanticErrors.TypeNameAlreadyInUse(IdNode, IdNode.Name)); } else { RecordTigerType = new RecordType(IdNode.Name, ContainingScope.Name, null); scope.DefineIncompleteType(IdNode.Name, RecordTigerType); } IsOK = true; }