Gramática
Las instrucciones HLSL se construyen con las reglas siguientes para la gramática.
- Espacio en blanco
- Números de punto flotante
- Números enteros
- Caracteres
- Cadenas
- Identificadores
- Operadores
- Temas relacionados
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.
Temas relacionados