Constants

Integer constants are interpreted via the C library routine strtoll(). This means that constants beginning with "0" are interpreted as octal, and constants beginning with "0x" or "0X" are interpreted as hexadecimal.

Floating point constants are interpreted via the C library routine atof().

Complex constants are expressed as {4#4real5#5,4#4imag5#5}, where 4#4real5#5 and 4#4imag5#5 must be numerical constants. For example, {3,2} represents 3 + 2i; {0,1} represents 'i' itself. The curly braces are explicitly required here.

String constants consist of any sequence of characters enclosed either in single quotes or double quotes. The distinction between single and double quotes is important. See quotes (p. [*]).

Examples:

    1 -10 0xffaabb        # integer constants
    1.0 -10. 1e1 3.5e-1   # floating point constants
    {1.2, -3.4}           # complex constant
    "Line 1\nLine 2"      # string constant (\n is expanded to newline)
    '123\n456'            # string constant (\ and n are ordinary characters)