Information
The topic you requested is included in another documentation set. For convenience, it's displayed below. Choose Switch to see the topic in its original location.

Grammar

HLSL statements are constructed using the following rules for grammar.

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:

'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

Appendix (DirectX HLSL)

 

 

Community Additions

Show:
© 2014 Microsoft. All rights reserved.