Grammaire

Les instructions HLSL sont construites à l’aide des règles suivantes pour la grammaire.

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.

Annexe (DirectX HLSL)