文法 (DirectX HLSL)
HLSL ステートメントは、次の文法規則を使用して構築されています。
- 空白文字
- 浮動小数点数
- 整数値
- 文字
- 文字列
- 識別子
- 演算子
空白文字
次の文字は空白と見なされます。
SPACE |
TAB |
EOL |
C 形式のコメント (/* */) |
C++ 形式のコメント (//) |
asm ブロック (;) 内のアセンブリ形式のコメント |
浮動小数点数
浮動小数点数は、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 (符号): 次のいずれか 1 つ
+ -
digit-sequence (数字列):
digit
digit-sequence digit
floating-suffix (浮動小数点サフィックス): 次のいずれか 1 つ
h H f F
整数値
整数は、HLSL で次のように表されます。
integer-constant integer-suffix(opt)
integer-constant (整数定数): 次のいずれか 1 つ
# (10 進数)
0# (8 進数)
0x# (16 進数)
integer-suffix (整数サフィックス): 次のいずれか 1 つ
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 文字。