Bagikan melalui


Tata bahasa

Pernyataan HLSL dibangun menggunakan aturan berikut untuk tata bahasa.

Whitespace

Karakter berikut dikenali sebagai spasi kosong.

  • SPACE
  • TAB
  • EOL
  • Komentar gaya C (/* */)
  • Komentar gaya C++ (//)

Angka titik mengambang

Angka floating point diwakili dalam HLSL sebagai berikut:

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

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

  • fractional-constant :

    digit-sequence(opt) . urutan digit

    digit-sequence .

  • bagian eksponen :

    e sign(opt) digit-sequence

    E sign(opt) digit-sequence

  • sign : salah satu dari

    + -

  • urutan digit :

    digit

    digit-sequence digit

  • floating-suffix : salah satu dari

    h H f F l L

    Gunakan akhiran "L" untuk menentukan literal floating-point presisi 64-bit penuh. Harfiah float 32-bit adalah default.

    Misalnya, kompilator mengenali nilai harfiah berikut sebagai harfiah floating-point presisi 32-bit dan mengabaikan bit yang lebih rendah:

    double x = -0.6473313946860445;
    

    Kompilator mengenali nilai harfiah berikut sebagai harfiah floating-point presisi 64-bit:

    double x = -0.6473313946860445L;
    

Angka bilangan bulat

Angka bilangan bulat diwakili dalam HLSL sebagai berikut:

  • integer-constant integer-suffix(opt)

  • integer-constant: salah satu dari

    # (angka desimal)

    0# (angka oktal)

    0x# (angka heksa)

  • akhiran bilangan bulat dapat berupa salah satu dari ini:

    u U l L

Karakter

Karakter diwakili dalam HLSL sebagai berikut:

Karakter Deskripsi
'c' (karakter)
'\a' '\b' '\f' '\b' '\r' '\t' '\v' (lolos)
'\###' (pelarian oktal, masing-masing # adalah digit oktal)
'\x#' (hex escape, # adalah hex number, any number of digits)
'\c' (c adalah karakter lain, termasuk garis miring terbalik dan tanda kutip)

 

Escape tidak didukung dalam ekspresi pra-prosesor.

String

String diwakili dalam HLSL sebagai berikut:

"s" (s adalah string apa pun dengan escape).

Pengidentifikasi

Pengidentifikasi diwakili dalam HLSL sebagai berikut:

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

Operator

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

Juga karakter tunggal lainnya yang tidak cocok dengan aturan lain.

Lampiran (DirectX HLSL)