man felix (Commandes) - Felix language
NAME
Felix language
SYNOPSIS
Felix is a modern statically typed, modular programming language which targets shared libraries rather than programs. It features automatic generation of event driven, cooperatively multitasked programs written in algorithmic style. It is hybrid functional, procedural and object oriented system
TECHNOLOGY
Felix
generates C++ which is then built into a shared library
and dynamically loaded by a client written architectural
framework, which is also responsible for feeding an appropriate
Felix coroutine messages.
Felix
provides no primitive types. Instead, it provides
powerful type combinators, and a facility for
binding C++ types to Felix ones. A set of basic
primitive types are provided in the standard library.
C++ bindings
Here is an example of a C++ binding.
type
int = "int";
incomplete type
int = "int";
ctypes
int, long;
incomplete ctypes
astruct, bstruct;
fun
add: int * int -> int = "$1+$2";
proc
print: int = 'printf("%d",$1);';
Exporting symbols
Symbols are exported by the export statement. Function, procedures, and types can be exported. Note that types must be enclosed in brackets, because unfortunately 'as' is a keyword used in recursive type expressions.
export fun
add of (int * int) as "add_int";
export proc
print of (int * int) as "add_int";
export type
(int) as "flx_int";
FILES
*.flx
are Felix input files
*.cpp
generated
C++ implementation files
*.hpp
generated
C++ header files
std.flx is the standard library.
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