Grammatik

HLSL-Anweisungen werden mithilfe der folgenden Regeln für die Grammatik erstellt.

Leerraum

Die folgenden Zeichen werden als Leerzeichen erkannt.

  • SPACE
  • TAB
  • EOL
  • Kommentare im C-Format (/* */)
  • Kommentare im C++-Format (//)

Gleitkommazahlen

Gleitkommazahlen werden in HLSL wie folgt dargestellt:

  • fractional-constant exponent-part(opt) floating-suffix(opt)

    digit-sequence exponent-part floating-suffix(opt)

  • Bruchkonstante:

    digit-sequence(opt) . Ziffernfolge

    digit-sequence .

  • exponent-part :

    e sign(opt) digit-sequence

    E sign(opt) digit-sequenz

  • sign : eins der folgenden Zeichen

    + -

  • digit-sequence :

    digit

    digit-sequence-Stelle

  • floating-suffix : eins der folgenden Zeichen

    h H f F l L

    Verwenden Sie das Suffix "L", um ein Gleitkommaliteral mit voller 64-Bit-Genauigkeit anzugeben. Ein 32-Bit-Floatliteral ist die Standardeinstellung.

    Der Compiler erkennt beispielsweise den folgenden Literalwert als Gleitkommaliteral mit 32-Bit-Genauigkeit und ignoriert die niedrigeren Bits:

    double x = -0.6473313946860445;
    

    Der Compiler erkennt den folgenden Literalwert als Gleitkommaliteral mit 64-Bit-Genauigkeit:

    double x = -0.6473313946860445L;
    

Ganze Zahlen

Ganzzahlige Zahlen werden in HLSL wie folgt dargestellt:

  • integer-constant integer-suffix(opt)

  • ganzzahlige Konstante: eine der

    # (Dezimalzahl)

    0# (oktale Zahl)

    0x# (Hexnummer)

  • Integer-Suffix kann eines der folgenden sein:

    u l L

Zeichen

Zeichen werden in HLSL wie folgt dargestellt:

Zeichen Beschreibung
„c“ (Zeichen)
'\a' '\b' '\f' '\b' '\r' '\t' '\v' (Escapes)
'\###' (oktales Escape, jedes # ist eine oktale Ziffer)
'\x#' (Hex-Escape, # ist Hexnummer, beliebige Anzahl von Ziffern)
"\c" (c ist ein anderes Zeichen, einschließlich umgekehrter Schrägstrich und Anführungszeichen)

 

Escapes werden in Präprozessorausdrücken nicht unterstützt.

Zeichenfolgen

Zeichenfolgen werden in HLSL wie folgt dargestellt:

"s" (s ist eine beliebige Zeichenfolge mit Escapezeichen).

Bezeichner

Bezeichner werden in HLSL wie folgt dargestellt:

    [A-Za-z_][A-Za-z0-9_]*

Operatoren

##, #@, ++, --, &, &, &, ||, ==, ::, <<, <<=, >>, >>=, ..., 
<=, >=, !=, *=, /=, +=, -=, %=, &=, |=, ^=, ->

Auch jedes andere einzelne Zeichen, das nicht mit einer anderen Regel übereinstimmte.

Anhang (DirectX HLSL)