FELIX LITERALS

Return to Main Contents
 

NAME

Felix literals.

 

Integers

Digits may be separated by an underscore. Prefix and suffix letters may be upper or lower case.

Prefix denotes radix, default decimal:
0b binary

0o octal

0d decimal

0x hexadecimal

Suffix denotes type, default int:

t tiny (C char)

s short (C short)

i int (C int)

l long (C long)

v vlong (C long long)

u unsigned, with one of above

i8 u8 8 bit (C99 int8_t)

i16 u16 16 bit (C99 int16_t)

i32 u32 32 bit (C99 int32_t)

i64 u64 64 bit (C99 int64_t)

Subexpressions involving the operators:

unary + identity

unary - negation

binary + addition

binary - suibtraction

binary * suibtraction

binary / quotient

binary % remainder

binary < <= == != => ? comparison

and integral literals of type int, are calculated at compile time (constant folding).

 

Strings

Python style strings may use single or double quotes, singly or tripled:

' .. '

''' .. ''' spans lines

dq .. dq

dqdqdq .. dqdqdq spans lines

Prefix:
r raw string, no escape processing

u UCS-4 (32 bit) string

c 8 bit C null terminated C string, of
type cptr[char] = 'char const*'

Escapes:

\n \r \b \t \v \f Newline, return, bell, tab, vertical tab, formfeed: as in C.

\uXXXX \UXXXXXXXX
ISO-10646/Unicode code point, given in hex. For 8 bit strings, replaced with UTF-8 encoding.
Note: no \999 or \xXX escapes are supported. ,br Note: there are no character literals.

Special concatenation forms.
Note these apply to string expressions, not just literals; if literals are used, concatenation is done at compile time (constant folding).

<string> <string> ...
concatenate strings.

<string> <integer> ...
append ISO-10646 code point, use UTF-8 encoding for 8 bit strings.

 

Floats

Floats consist of two digit strings separated by a decimal point, and possibly an exponent. The digit strings may be separated by single underscores. An exponent is the letter E or e followed by a decimal digit string, underscores are not allowed, however an underscore may separate the mantissa from exponent.
Suffix denotes type, default double:
f float

d double

l ldouble

Exponent kind:
e power of 10

p power of 2

Prefix denotes radix, default decimal:
x Hexadecimal

 

VERSION

1.1.1_rc1  

SEE ALSO

felix(1) for a language introduction and man page index
flx(1) for a list of the tools.
flxcc(1) for a description of the wrapper generator tool.
flx_lit(1) for a description of literals
flx_op(1) for a list of operators
flx_cop(1) for a list of C operator precedence names
flx_key(1) for a list of keywords
flx_grammar(1) for a grammar summary
flx_lib_typ(1) for a list of library types
flx_dir(1) for a list of directives
flx_exec(1) for a list of executable statements
flx_decl(1) for a list of declarative statements
flx_bind(1) for a list of binding statements
 

WEB SITE

See http://felix.sourceforge.net
 

AUTHOR

John Maxwell Skaller, mailto:skaller@users.sourceforge.net


 

Index

NAME
Integers
Strings
Floats
VERSION
SEE ALSO
WEB SITE
AUTHOR

This document was created by man2html, using the manual pages.
Time: 07:02:36 GMT, May 31, 2006