Docs GODI Archive
Projects Blog Link DB

Search GODI:


More options
File man/man1/flx_op.1.html GODI Package apps-felix
 
   flx_op.1.html    Sources  

FELIX OPERATORS

NAME
assignment
let/in
tuple
logic
comparison
numeric
addressing
bitwise
application
coercion
component
qualified name
suffixed name
atomic
VERSION
SEE ALSO
WEB SITE
AUTHOR

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

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


This web site is published by Informatikbüro Gerd Stolpmann
Powered by Caml