Gramática

Las instrucciones HLSL se construyen con las reglas siguientes para la gramática.

Espacio en blanco

Los caracteres siguientes se reconocen como espacios en blanco.

  • SPACE
  • TAB
  • EOL
  • Comentarios de estilo C (/* */)
  • Comentarios de estilo de C++ (//)

Números de punto flotante

Los números de punto flotante se representan en HLSL de la siguiente manera:

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

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

  • fractional-constant :

    digit-sequence(opt) . secuencia de dígitos

    secuencia de dígitos .

  • exponent-part :

    e sign(opt) digit-sequence

    Secuencia de dígitos de E sign(opt)

  • sign : one of

    + -

  • secuencia de dígitos :

    digit

    digit-sequence digit

  • floating-suffix : one of

    h H f F L

    Use el sufijo "L" para especificar un literal de punto flotante de precisión de 64 bits completo. Un literal float de 32 bits es el valor predeterminado.

    Por ejemplo, el compilador reconoce el siguiente valor literal como literal de punto flotante de precisión de 32 bits y omite los bits inferiores:

    double x = -0.6473313946860445;
    

    El compilador reconoce el siguiente valor literal como literal de punto flotante de precisión de 64 bits:

    double x = -0.6473313946860445L;
    

Números enteros

Los números enteros se representan en HLSL de la siguiente manera:

  • integer-constant integer-suffix(opt)

  • integer-constant: uno de

    # (número decimal)

    0# (número octal)

    0x# (número hexadecimal)

  • integer-sufijo puede ser cualquiera de estos:

    u U l L

Characters

Los caracteres se representan en HLSL de la siguiente manera:

Carácter Descripción
"c" (carácter)
'\a' '\b' '\f' '\b' '\r' '\t' '\v' (escapes)
'\###' (escape octal, cada número es un dígito octal)
'\x#' (escape hexadecimal, número hexadecimal, cualquier número de dígitos)
'\c' (c es otro carácter, incluidas las barras diagonales inversas y las comillas)

 

Los escapes no se admiten en expresiones de preprocesador.

Cadenas

Las cadenas se representan en HLSL de la siguiente manera:

"s" (s es cualquier cadena con escapes).

Identificadores

Los identificadores se representan en HLSL de la siguiente manera:

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

Operadores

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

También cualquier otro carácter único que no coincida con otra regla.

Apéndice (DirectX HLSL)