Grammatica
Le istruzioni HLSL vengono costruite usando le regole seguenti per la grammatica.
- Spazio vuoto
- Numeri a virgola mobile
- Numeri interi
- Caratteri
- Stringhe
- Identificatori
- Operatori
- Argomenti correlati
Spazio vuoto
I caratteri seguenti vengono riconosciuti come spazi vuoti.
- SPACE
- TAB
- EOL
- Commenti di stile C (/* */)
- Commenti di stile C++ (//)
Numeri a virgola mobile
I numeri a virgola mobile sono rappresentati in HLSL come indicato di seguito:
fractional-constant exponent-part(opt) floating-suffix(opt)
digit-sequence exponent-part floating-suffix(opt)
frazionaria-costante :
digit-sequence(opt) . digit-sequence
digit-sequence .
esponente-part :
e sign(opt) digit-sequence
Sequenza di cifre E sign(opt)
sign : uno tra
+ -
digit-sequence :
digit
digit-sequence digit
floating-suffix : uno tra
h H f F l L
Usare il suffisso "L" per specificare un valore letterale a virgola mobile a precisione a 64 bit completo. Un valore letterale float a 32 bit è l'impostazione predefinita.
Ad esempio, il compilatore riconosce il valore letterale seguente come valore letterale a virgola mobile a precisione a 32 bit e ignora i bit inferiori:
double x = -0.6473313946860445;
Il compilatore riconosce il valore letterale seguente come valore letterale a virgola mobile e precisione a 64 bit:
double x = -0.6473313946860445L;
Numeri interi
I numeri interi sono rappresentati in HLSL come indicato di seguito:
integer-constant integer-suffix(opt)
integer-constant: uno dei
# (numero decimale)
0# (numero ottale)
0x# (numero esadecimale)
Integer-suffisso può essere uno dei seguenti:
u U L
Caratteri
I caratteri sono rappresentati in HLSL come indicato di seguito:
Carattere | Descrizione |
---|---|
'c' | (carattere) |
'\a' '\b' '\f' '\b' '\r' '\t' '\v' | (escape) |
'\###' | (escape ottale, ogni # è una cifra ottale) |
'\x#' | (escape esadecimale, # è numero esadecimale, qualsiasi numero di cifre) |
'\c' | (c è un altro carattere, inclusa la barra rovesciata e le virgolette) |
Le escape non sono supportate nelle espressioni del preprocessore.
Stringhe
Le stringhe sono rappresentate in HLSL come indicato di seguito:
"s" (s è qualsiasi stringa con caratteri di escape).
Identificatori
Gli identificatori sono rappresentati in HLSL come indicato di seguito:
[A-Za-z_][A-Za-z0-9_]*
Operatori
##, #@, ++, --, &, &, &, ||, ==, ::, <<, <<=, >>, >>=, ...,
<=, >=, !=, *=, /=, +=, -=, %=, &=, |=, ^=, ->
Qualsiasi altro carattere singolo che non corrisponde a un'altra regola.
Argomenti correlati