Грамматика
Инструкции HLSL создаются с использованием следующих правил для грамматики.
- Пробелы
- Числа с плавающей запятой
- Целые числа
- Символы
- Строки
- Идентификаторы
- Операторы
- Связанные темы
Пробелы
Следующие символы распознаются как пробелы.
- SPACE
- TAB
- EOL
- Комментарии в стиле C (/* */)
- Комментарии стиля C++ (//)
Числа с плавающей запятой
Числа с плавающей запятой представлены в HLSL следующим образом:
fractional-constant exponent-part(opt) floating-suffix(opt)
digit-sequence exponent-part floating-suffix(opt)
фракционно-константная :
digit-sequence(opt) . последовательность цифр
digit-sequence .
экспонентная часть :
e sign(opt) digit-sequence
E sign(opt) digit-sequence
sign : один из указанных ниже знаков
+ -
digit-sequence:
цифровой-знак
последовательность-цифр цифра
floating-suffix : одно из указанных ниже значений
h H f F L L
Используйте суффикс "L", чтобы указать полный литерал с плавающей запятой 64-разрядной точности. По умолчанию используется 32-разрядный литерал с плавающей запятой.
Например, компилятор распознает следующее литеральное значение как литерал с плавающей запятой 32-разрядной точности и игнорирует нижние биты:
double x = -0.6473313946860445;
Компилятор распознает следующее литеральное значение как литерал с плавающей запятой 64-разрядной точности:
double x = -0.6473313946860445L;
Целые числа
Целочисленные числа представлены в HLSL следующим образом:
integer-constant integer-suffix(opt)
целочисленная константа: один из
# (десятичное число)
0# (восьмеричное число)
0x# (шестнадцатеричное число)
Integer-suffix может иметь любой из следующих значений:
u U l L
Characters
Символы представлены в HLSL следующим образом:
Знак | Описание |
---|---|
"c" | (символ) |
'\a' '\b' '\f' '\b' '\r' '\t' '\v' | (escape-файлы) |
'\###' | (восьмеричная escape-версия, каждый # является восьмеричной цифрой) |
'\x#' | (шестнадцатеричное экранирование, #— шестнадцатеричное число, любое число цифр) |
'\c' | (c — другой символ, включая обратную косую черту и кавычки) |
Escape-операции не поддерживаются в выражениях препроцессора.
строк
Строки представлены в HLSL следующим образом:
"s" (s — это любая строка с escape-символами).
Идентификаторы
Идентификаторы представлены в HLSL следующим образом:
[A-Za-z_][A-Za-z0-9_]*
Операторы
##, #@, ++, --, &, &, &, ||, ==, ::, <<, <<=, >>, >>=, ...,
<=, >=, !=, *=, /=, +=, -=, %=, &=, |=, ^=, ->
Кроме того, любой другой символ, не соответствующий другому правилу.
Связанные темы