man flx_op (Commandes) - Felix operators and operator names (these need to be checked!).
NAME
Felix operators and operator names (these need to be checked!).
A chainable binary operator such as + creates a list of subexpressions.
assignment
Assignment operators are sugar for statements, so only one is allowed.
= asgn
<- asgn
:= initialise new val
+= pluseq
-= minuseq
*= muleq
/= diveq
%= modeq
|= oreq
^= xoreq
&= andeq
let/in
let <expr> in <expr>
prefix
tuple
, chain
logic
Note that "shortcut" doesn't apply in Felix since expressions are purely functional.
|| lor
chain
&& land
chain
! lnot
prefix
comparison
== eq
binary
<= le
chain
< lt
chain
>= ge
chain
> gt
chain
<> ne
chain
!= ne
chain
-> arrow
left assoc
case <int> of <int>
unassoc
numeric
Note that + has a lower precedence than -, and * has a lower precedence than / which is unusual.
- sub
left assoc
+ add
chain
* mul
chain
/ div
left assoc
% mod
left assoc
- sub
prefix
+ sub
prefix
**
pow
right (special prec rules)
addressing
&
prefix
*
prefix
bitwise
| bor
chain
^ xor
chain
& band
chain
~ bnot
prefix
application
(juxtaposition) left assoc
coercion
: left assoc
component
.
left assoc
qualified name
::
left assoc
suffixed name
of left assoc
atomic
if/then/else/endif
match <expr> with
| <pattern> => <expr>
...
endmatch
regmatch <expr> with
| <regexp> => <expr>
...
endmatch
(fun (<arglist>):<type> = { <expr> })
(fun (<arglist>):<type> = { <statements> })
{ <expr> }
Lambda function. The return type is optional.
The third form is short for
(fun () = { <expr> })
(proc (<arglist>){ <statements> })
{ <statements> }
Lambda procedure.
The second form is short for
(proc () = { <statements> })
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