文法

HLSL 語句是使用下列文法規則來建構。

空白

下列字元會辨識為空白字元。

  • SPACE
  • TAB
  • Eol
  • (/* */) C 樣式批註
  • ) (C++ 樣式批註

浮點數

浮點數以 HLSL 表示,如下所示:

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

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

  • fractional-constant :

    數位序列 (選擇) 。 digit-sequence

    digit-sequence 。

  • exponent-part :

    e sign (opt) digit-sequence

    E sign (opt) digit-sequence

  • sign:下列其中一個

    + -

  • digit-sequence :

    digit

    digit-sequence digit

  • floating-suffix:下列其中一個

    h H f F l L

    使用 「L」 尾碼來指定完整的 64 位有效位數浮點常值。 32 位浮點常值是預設值。

    例如,編譯器會將下列常值辨識為 32 位有效位數浮點常值,並忽略較低的位:

    double x = -0.6473313946860445;
    

    編譯器會將下列常值辨識為 64 位有效位數浮點常值:

    double x = -0.6473313946860445L;
    

整數數字

整數數位以 HLSL 表示,如下所示:

  • integer-constant integer-suffix (opt)

  • integer-constant:其中一個

    # (十進位數)

    0# (八進位數位)

    0x# (十六進位數)

  • integer-suffix 可以是下列任一項:

    u U l L

Characters

字元以 HLSL 表示,如下所示:

字元 描述
'c' (字元)
'\a' '\b' '\f' '\b' '\r' '\t' '\v' (逸出)
'\###' (八進位逸出,每個 # 都是八進位數位)
'\x#' (十六進位逸出,# 是十六進位數位,)
'\c' (c 是其他字元,包括反斜線和引號)

 

預處理器運算式不支援逸出。

字串

字串以 HLSL 表示,如下所示:

「s」 (是具有逸出) 的任何字串。

識別碼

識別碼以 HLSL 表示,如下所示:

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

運算子

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

此外,任何其他不符合另一個規則的單一字元。

附錄 (DirectX HLSL)