Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
HLSL statements are constructed using the following rules for grammar.
- Whitespace
- Floating point numbers
- Integer numbers
- Characters
- Strings
- Identifiers
- Operators
- Related topics
Whitespace
The following characters are recognized as white space.
- SPACE
- TAB
- EOL
- C style comments (/* */)
- C++ style comments (//)
Floating point numbers
Floating point numbers are represented in HLSL as follows:
fractional-constant exponent-part(opt) floating-suffix(opt)
digit-sequence exponent-part floating-suffix(opt)
fractional-constant :
digit-sequence(opt) . digit-sequence
digit-sequence .
exponent-part :
e sign(opt) digit-sequence
E sign(opt) digit-sequence
sign : one of
+ -
digit-sequence :
digit
digit-sequence digit
floating-suffix : one of
h H f F l L
Use the āLā suffix to specify a full 64-bit precision floating-point literal. A 32-bit float literal is the default.
For example, the compiler recognizes the following literal value as a 32-bit precision floating-point literal and ignores the lower bits:
double x = -0.6473313946860445;
The compiler recognizes the following literal value as a 64-bit precision floating-point literal:
double x = -0.6473313946860445L;
Integer numbers
Integer numbers are represented in HLSL as follows:
integer-constant integer-suffix(opt)
integer-constant: one of
# (decimal number)
0# (octal number)
0x# (hex number)
integer-suffix can be any one of these:
u U l L
Characters
Characters are represented in HLSL as follows:
Character | Description |
---|---|
'c' | (character) |
'\a' '\b' '\f' '\b' '\r' '\t' '\v' | (escapes) |
'\###' | (octal escape, each # is an octal digit) |
'\x#' | (hex escape, # is hex number, any number of digits) |
'\c' | (c is other character, including backslash and quotation marks) |
Escapes are not supported in preprocessor expressions.
Strings
Strings are represented in HLSL as follows:
"s" (s is any string with escapes).
Identifiers
Identifiers are represented in HLSL as follows:
[A-Za-z_][A-Za-z0-9_]*
Operators
##, #@, ++, --, &, &, &, ||, ==, ::, <<, <<=, >>, >>=, ...,
<=, >=, !=, *=, /=, +=, -=, %=, &=, |=, ^=, ->
Also any other single character that did not match another rule.
Related topics