Grammaire
Les instructions HLSL sont construites à l’aide des règles suivantes pour la grammaire.
- Espace blanc
- Nombres à virgule flottante
- Nombres entiers
- Caractères
- Chaînes
- Identificateurs
- Opérateurs
- Rubriques connexes
Espace blanc
Les caractères suivants sont reconnus comme des espaces blancs.
- SPACE
- Tab
- ÉCHÉANCE
- Commentaires de style C (/ * * /)
- Commentaires de style C++ (//)
Nombres à virgule flottante
Les nombres à virgule flottante sont représentés en langage HLSL comme suit :
fraction-constante de l’exposant-partie (opt)-suffixe à virgule flottante (opt)
digit-Sequence-suffixe à virgule flottante de partie exposant (opt)
fraction-constante :
chiffre-séquence (opt). digit-sequence
chiffre-séquence.
partie exposant :
chiffre e (opt)-séquence
Chiffre E (opt)-séquence
sign : un des éléments suivants
+ -
chiffre-séquence :
digit
digit-sequence digit
floating-suffix : un des éléments suivants
h H f F l
Utilisez le suffixe « L » pour spécifier un littéral à virgule flottante de précision 64 bits complet. Un littéral de virgule flottante de 32 bits est la valeur par défaut.
Par exemple, le compilateur reconnaît la valeur littérale suivante comme un littéral à virgule flottante de précision 32 bits et ignore les bits inférieurs :
double x = -0.6473313946860445;Le compilateur reconnaît la valeur littérale suivante comme un littéral à virgule flottante de précision 64 bits :
double x = -0.6473313946860445L;
Nombres entiers
Les nombres entiers sont représentés en langage HLSL comme suit :
entier-constante entier-suffixe (opt)
Integer-constante : un des éléments suivants :
# (nombre décimal)
0 # (nombre octal)
0x # (nombre hexadécimal)
le suffixe entier peut être l’un des éléments suivants :
u U l L
Caractères
Les caractères sont représentés en langage HLSL comme suit :
| Caractère | Description |
|---|---|
| « c » | symbole |
| ' \ a' ' \ b' ' \ f' ' \ b' ' \ r' ' \ t' ' \ v' | d’échappement |
| '\###' | (échappement octal, chacun # est un chiffre octal) |
| ' \ x # ' | (caractère d’échappement hexadécimal, # est un nombre hexadécimal, un nombre quelconque de chiffres) |
| ' \ c' | (c est un autre caractère, y compris une barre oblique inverse et des guillemets) |
Les séquences d’échappement ne sont pas prises en charge dans les expressions de préprocesseur.
Chaînes
Les chaînes sont représentées en langage HLSL comme suit :
« s » (s est une chaîne avec échappements).
Identificateurs
Les identificateurs sont représentés en langage HLSL comme suit :
[A-Za-z_][A-Za-z0-9_]*
Opérateurs
##, #@, ++, --, &, &, &, ||, ==, ::, <<, <<=, >>, >>=, ...,
<=, >=, !=, *=, /=, +=, -=, %=, &=, |=, ^=, ->
Également tout autre caractère unique qui ne correspondait pas à une autre règle.