Flags

Flags stehen in einer Regeldeklaration vor dem Schlüsselwort Rule. In einer Regeldeklaration können auch mehrere Flags kombiniert werden. Die Reihenfolge der Flags ist nicht von Bedeutung. Flags sind keine Schlüsselwörter.

Bei Flags handelt es sich vielmehr immer um Anforderungen für die nicht vorgabegemäße Behandlung einer Regel. Sie sind ein integrierter Teil des Intent-Kernels, d. h., es besteht keine Möglichkeit, neue Flags in der Sprache Intent zu definieren.

Für alle Flags gelten grundlegende Regeln. Einige Flags werden weitaus häufiger verwendet als andere.

Flag Häufigkeit der Verwendung
<none> Häufig
Parameter Häufig
Lookup Gelegentlich
Canonical Gelegentlich/selten in benutzerdefinierten Designs. Häufig in Systemdesigns. Verwendet in Verbindung mit Passive
Passive Gelegentlich/selten in benutzerdefinierten Designs. Häufig in Systemdesigns. Verwendet in Verbindung mit Canonical
Fixed Selten in benutzerdefinierten Designs
Uncached Selten in benutzerdefinierten Designs
External Neu. Gelegentlich/selten in benutzerdefinierten Designs
Shared Neu. Gelegentlich in benutzerdefinierten Designs

Nachfolgend eine kurze Beschreibung der Flags

Parameter

Gibt an, dass die Regel vor jeglicher anderen Auswertung versucht, einen Wert aus der Parameterliste des Bauteils abzurufen. Wenn der Wert nicht als Parameter bereitgestellt wurde, wird die Auswertung der Regel fortgesetzt.

Lookup

Gibt an, dass die Regel vor Verwendung eines Vorgabewerts versucht, einen Wert aus der übergeordneten Regel abzurufen. Während der Auswertung erstellt das Laufzeitsystem eine Referenz (Nachfrage nach einem Wert) zur gleichnamigen Regel im übergeordneten Element. Wenn diese Referenzierung fehlschlägt, wird die Auswertung der ursprünglichen Regel fortgesetzt.

Fixed

Gibt an, dass die Regel durch keine dynamische Regel überschrieben werden darf. Beim Versuch, eine gleichnamige dynamische Regel hinzuzufügen, wird ein Fehler generiert. In benutzerdefinierten Designs kommt das Flag Fixed nur selten vor.

Uncached

Gibt an, dass der Wert der Regel nicht im Cache gespeichert wird. Die Regel wird bei jeder Referenzierung durch eine andere Regel neu ausgewertet. Dies ist sinnvoll, wenn die Auswertung der Regel aus Effektgründen erfolgt, anstatt oder zusätzlich zur Absicht, einen Wert abzurufen.

Die Flags Canonical und Passive sind insbesondere für Gruppenregeln vorgesehen. In Systemdesigns kommen sie häufig vor, in benutzerdefinierten Designs eher selten.

Canonical

In Gruppenregeln verwendet in Verbindung mit dem Flag Passive.

Passive

In Gruppenregeln verwendet in Verbindung mit dem Flag Canonical.

External

Diese Regel löst, wenn sie ungebunden ist, ein UnbindNotifyEvent aus. Anwendungen können diese Ereignisse zur Bereinigung extern verwalteter Ressourcen abfangen. Weitere Informationen finden Sie unter Externe Flags.

Shared

Speichert den Wert der Regel im Design (nicht im Bauteilexemplar). Das bedeutet, dass diese Regel von allen Bauteilexemplaren gemeinsam verwendet wird. Verwendet für Regeln, die innerhalb der einzelnen Bauteilexemplare gleich bleiben (z. B. designName). Dies spart Arbeitsspeicher.