文法
HLSL ステートメントは、文法に関する次の規則を使用して構築されます。
空白
次の文字は空白として認識されます。
- SPACE
- Tab
- Eol
- C スタイルのコメント (/* */)
- C++ スタイルのコメント (//)
浮動小数点数
浮動小数点数は HLSL で次のように表されます。
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 : 次のいずれか
+ -
digit-sequence :
digit
digit-sequence digit
floating-suffix: 次のいずれか
h H f F l L
完全な 64 ビット精度浮動小数点リテラルを指定するには、"L" サフィックスを使用します。 32 ビットの float リテラルが既定値です。
たとえば、コンパイラは次のリテラル値を 32 ビットの有効桁数浮動小数点リテラルとして認識し、下位ビットを無視します。
double x = -0.6473313946860445;
コンパイラは、次のリテラル値を 64 ビット精度浮動小数点リテラルとして認識します。
double x = -0.6473313946860445L;
整数
整数は HLSL で次のように表されます。
integer-constant integer-suffix(opt)
integer-constant: 次のいずれか
# (10 進数)
0# (8 進数)
0x# (16 進数)
integer-suffix には、次のいずれかを指定できます。
u U l L
文字
文字は HLSL で次のように表されます。
文字 | 説明 |
---|---|
'c' | (文字) |
'\a' '\b' '\f' '\b' '\r' '\t' '\v' | (エスケープ) |
'\###' | (8 進数エスケープ、各 # は 8 進数) |
'\x#' | (16 進エスケープ、# は 16 進数、任意の桁数) |
'\c' | (c は、円記号や引用符を含む他の文字です) |
プリプロセッサ式ではエスケープはサポートされていません。
文字列
文字列は HLSL で次のように表されます。
"s" (s はエスケープを含む任意の文字列です)。
識別子
識別子は HLSL で次のように表されます。
[A-Za-z_][A-Za-z0-9_]*
演算子
##, #@, ++, --, &, &, &, ||, ==, ::, <<, <<=, >>, >>=, ...,
<=, >=, !=, *=, /=, +=, -=, %=, &=, |=, ^=, ->
また、別のルールに一致しなかった他の 1 文字。
関連トピック