Partager via


Grammaire

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

Espace blanc

Les caractères suivants sont reconnus en tant qu’espaces blancs.

  • SPACE
  • Tab
  • EOL
  • Commentaires de style C (/* */)
  • Commentaires de style C++ (//)

Nombres à virgule flottante

Les nombres à virgule flottante sont représentés dans HLSL comme suit :

  • fractionnaire-constant exposant-part(opt) floating-suffix(opt)

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

  • fractionnaire-constante :

    digit-sequence(opt) . digit-sequence

    séquence numérique .

  • exponent-part :

    e sign(opt) digit-sequence

    E sign(opt) digit-sequence

  • sign : un des éléments suivants

    + -

  • séquence numérique :

    digit

    digit-sequence digit

  • floating-suffix : un des éléments suivants

    h H f F l L

    Utilisez le suffixe « L » pour spécifier un littéral à virgule flottante de précision 64 bits complet. Un littéral float 32 bits est la valeur par défaut.

    Par exemple, le compilateur reconnaît la valeur littérale suivante en tant que 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 en tant que littéral à virgule flottante de précision 64 bits :

    double x = -0.6473313946860445L;
    

Nombres entiers

Les nombres entiers sont représentés dans HLSL comme suit :

  • entier-constante entier-suffixe(opt)

  • entier-constante : l’un des

    # (nombre décimal)

    0# (nombre octal)

    0x# (nombre hexadécimal)

  • entier-suffixe peut être l’un des éléments suivants :

    u U l l L

Caractères

Les caractères sont représentés dans HLSL comme suit :

Caractère Description
« c » (caractère)
'\a' '\b' '\f' '\b' '\r' '\t''\v' (échappements)
'\###' (échappement octal, chaque # est un chiffre octal)
'\x#' (échappement hexadécimal, # est un nombre hexadécimal, n’importe quel nombre de chiffres)
'\c' (c est un autre caractère, y compris la barre oblique inverse et les guillemets)

 

Les échappements ne sont pas pris en charge dans les expressions de préprocesseur.

Chaînes

Les chaînes sont représentées dans HLSL comme suit :

« s » (s est n’importe quelle chaîne avec des échappements).

Identificateurs

Les identificateurs sont représentés dans 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)