claire v3.3.39 documentation
Documentation generated by XL CLAIRE v3.3.39 at Thu, 21 Dec 2006
- Author : Yves CASEAU
- Author : Sylvain BENILAN
Copyright
- Copyright (C) 1994-2006 Yves Caseau. All Rights Reserved.
- Copyright (C) 2000-2006 XL. All Rights Reserved.
Preamble
This documentation is mainly issued from the document by Yves Caseau
"Introduction to the CLAIRE Programming Language version 3.3". It has
been included in the source files of XL CLAIRE such to be used with the XL
code documentation generator.
In this documentation XL specific stuffs are denoted by an [XL] mark.
- Introduction
-
What is CLAIRE ?
-
Design
-
Features
-
Inspirations
- Primitives
-
Integers and Floats
-
Dates and Times [XL]
-
Chars
-
Strings
- Objects, Classes and Slots
-
Objects and Entities
-
Classes
-
Free-able objects [XL]
-
parametric class
-
Calls and Slot Access
-
Updates
- Lists, Sets and Instructions
-
Lists, Sets and Tuples
-
Blocks
-
Conditionals
-
Loops
-
Instantiation
-
Exception Handling
-
array
- Methods and Types
-
Methods
-
Types
-
Polymorphism
-
Escaping Types
-
Selectors, Properties and Operations
-
Iterations
- Tables, Rules and Hypothetical Reasoning
-
Tables
-
Rules
-
Hypothetical Reasoning
- I/O, Modules and System Interface
-
Communication ports [XL]
-
Printing
-
WCL syntax [XL]
-
Reading
-
Symbols
-
Modules
-
Global Variables and Constants
-
Command line handling [XL]
-
Serialization [XL]
- Platform
-
Miscellaneous
-
Environment variables [XL]
-
Process handling [XL]
-
File system [XL]
-
Signal Handling [XL]
- Using XL Claire
-
Debugging [XL]
- driving optimizations
- Command line help : {-h | -help} +[<m> | <option> | <index>]
- About box : -about
- Memory initialization : [-auto] -s <main> <world>
- Verbose : -v [<m>] <level>
- Exit now : -q [<exitcode>]
- Early termination : -qonerror | -errassegv
- Avoid banner : -nologo
- Avoid editline : -noel
- Terminal color : -color | -nocolor
- Trace file : -trace [a | append] <file>
- Sampling Cmemory : -sample <period>
- Change directory : -chdir <dir>
- Debugger : -debug
- Load file : {-f | -ef} +[<file>]
- Eval expression : {-princ | -print | -eval} <exp>
- Load script : {-x | -xe | -x<S>-<W> | -xe<S>-<W>} <file> [<args>]
- Goto definition : -gotodef [<dir>] [<s>]
- Generate documentation : [-doclink] [-onefile | -categories] {-apidoc | -codedoc} <m>
- No ffor construct : -noffor
- Compiler environment : -env <env>
- Link with module : -m <m>[/<version>] | -l <library>
- Output directory : -od <directory>
- Safety : -safe | -os <safety>
- Output name : -o <name>
- Optimization : -D | -O
- Profiler : -p
- C++ compiler : -cpp <cxxoption> | -link <linkeroption> | -make <makeroption>
- Compile module : {-cc | -cl | -cm} [<m>]
- Compile module library : [-both] {-cls | -call [-sm <m>] [-em <m>]}
- Module publication : [-sudo] [-ov] {-publish | -export [<i> | <directory>]}
- New module : -nm [<partof>/]<name> +[<m> | <f>{.cpp | .cl | .h}]
- Module info : -ml | {-mi <m>[/<version>]}
- Configuration file : -cx <test>
- No init : -n
- Fast dispatch : -fcall
- Console : -noConsole | -wclConsole
- *fs* : string := (if externC("\n#ifdef CLPC\nCTRUE\n#else\nCFALSE\n#endif\n", boolean) "\\" else "/")
- *ps* : string := (if externC("\n#ifdef CLPC\nCTRUE\n#else\nCFALSE\n#endif\n", boolean) ";" else ":")
- MAX_INTEGER :: 1073741822
- nil :: Id(nil)
- port! :: blob! [XL]
- stderr : port := Clib_stderr [XL]
- stdin : port := Clib_stdin [XL]
- stdout : port := Clib_stdout [XL]
- !=(x:any, y:any) -> boolean
- %(x:any, y:any) -> boolean
- *(x:integer, y:integer) => integer
- *(self:float, x:float) -> float
- +(self:integer, x:integer) -> type[abstract_type(+, self, x)]
- +(self:float, x:float) -> float
- +(self:char*, n:integer) -> char* [XL]
- -(x:integer) => integer
- -(x:float) -> float
- -(self:float, x:float) -> float
- -(self:integer, x:integer) -> type[Core/abstract_type(-, Core/self, Core/x)]
- ..(x:integer, y:integer) -> Interval
- /(s:string, s2:string) -> string
- /(x:integer, y:integer) => integer
- /(self:float, x:float) -> float
- /+(l1:list, l2:list) -> list
- /+(s1:string, s2:string) -> string
- /+(x:bag, y:bag) -> list
- /-(s1:string, s2:string) -> string [XL]
- <(x:float, y:float) => boolean
- <(x:integer, y:integer) -> boolean
- <(x:char, y:char) -> boolean
- <(x:string, y:string) -> boolean
- <<(x:integer, n:integer) -> integer
- <<(l:list, n:integer) -> list
- <=(x:type, y:type) -> boolean
- <=(x:string, y:string) -> boolean
- <=(x:float, y:float) => boolean
- <=(x:integer, y:integer) -> boolean
- <=(c1:char, c2:char) -> boolean
- =(x:any, y:any) -> boolean
- =type?(self:type, ens:type) -> boolean
- >(x:string, y:string) -> boolean
- >(x:char, y:char) -> boolean
- >(x:float, y:float) => boolean
- >(x:integer, y:integer) -> boolean
- >=(x:string, y:string) -> boolean
- >=(x:char, y:char) -> boolean
- >=(x:integer, y:integer) => boolean
- >=(x:float, y:float) => boolean
- >>(x:integer, n:integer) -> integer
- ^(s1:set, s2:set) -> set
- ^(self:float, x:float) -> float
- ^(x:integer, y:integer) => integer
- ^(l:list, y:integer) -> list
- ^2(x:integer) => void
- abstract(c:class) -> any
- acos(self:float) -> float
- add(l:list, x:any) -> list
- add(s:set, x:any) -> set
- add(self:property, x:object, y:any) -> void
- add*(l1:list, l2:list) -> list
- alpha?(c:char) -> boolean [XL]
- alpha?(s:string) -> boolean [XL]
- and(x:integer, y:integer) -> integer
- apply(p:property, l:list) -> any
- apply(self:lambda, %l:list) -> any
- apply(m:method, l:list) -> any
- apply(self:function, ls:list, l:list) -> any
- array!(x:bag, t:type) -> type[t[]]
- asin(self:float) -> float
- atan(self:float) -> float
- backtrack() -> void
- backtrack(n:integer) -> void
- begin(m:module) -> void
- bin!(i:integer) -> string [XL]
- blob!() -> blob [XL]
- blob!(n:integer) -> blob [XL]
- blob!(self:string) -> blob [XL]
- blob!(p:blob) -> blob [XL]
- blob!(p:port) -> blob [XL]
- bqexpand(s:string) -> string [XL]
- buffer!(self:port, bufsize:integer) -> buffer [XL]
- call(p:property, l:listargs) -> any
- car(self:list) -> any
- cast!(s:bag, t:type) -> bag
- cdr(l:list) -> type[l]
- char!(n:integer) -> char
- chmod(s:string, m:integer) -> void [XL]
- choice() -> void
- chroot(dir:string) -> void [XL]
- class!(x:type) -> class
- client!(addr:string) -> socket [XL]
- client!(addr:string, p:integer) -> socket [XL]
- close_target!(self:filter) -> type[self] [XL]
- color() -> integer [XL]
- color(c:integer) -> integer [XL]
- color_princ(s:string) -> void [XL]
- commit() -> void
- commit(n:integer) -> void
- cons(x:any, l:list) -> list
- contradiction!() -> void
- copy(a:array) -> array
- copy(s:string) -> string
- copy(x:object) -> object
- copy(s:bag) -> bag
- cos(self:float) -> float
- cosh(self:float) -> float
- date_add(d:float, c:char, i:integer) -> float [XL]
- decode64(pr:port, pw:port) -> void [XL]
- delete(s:bag, x:any) -> bag
- delete(self:property, x:object, y:any) -> any
- diff_time(d1:float, d2:float) -> float [XL]
- difference(self:set, x:set) -> set
- digit?(c:char) -> boolean [XL]
- digit?(s:string) -> boolean [XL]
- ding() -> void [XL]
- divide?(x:integer, y:integer) -> boolean
- elapsed(t:float) -> integer [XL]
- encode64(pr:port, pw:port, line_length:integer) -> void [XL]
- end(m:module) -> void
- end_of_string() -> string
- entries(s:string) -> list[string] [XL]
- entries(s:string, w:string) -> list[string] [XL]
- environ(i:integer) -> string [XL]
- eof?(self:port) -> boolean [XL]
- ephemeral(self:class) -> any
- erase(a:table) -> void
- erase(self:property, x:object) -> any
- escape(s:string) -> string [XL]
- exception!() -> exception
- exit(self:integer) -> void
- explode(t:float) -> tuple(integer, 1 .. 12, 1 .. 365, 1 .. 31, 1 .. 7, 0 .. 23, 0 .. 59, 0 .. 59, boolean) [XL]
- explode(s:string, sep:string) -> list[string] [XL]
- explode_wildcard(s:string, w:string) -> list[string] [XL]
- faccessed(s:string) -> float [XL]
- factor?(x:integer, y:integer) -> boolean
- fchanged(s:string) -> float [XL]
- fcopy(s1:string, s2:string) -> void [XL]
- filter!(self:filter, p:port) -> type[self] [XL]
- final(c:class) -> any
- final(c:class) -> void
- find(s:string, x:string) -> integer [XL]
- find(s:string, x:string, from:integer) -> integer [XL]
- finite?(self:type) -> boolean
- float!(x:integer) -> float
- float!(self:string) -> float
- flush(self:port) -> void
- flush(self:port, n:integer) -> void
- fmode(s:string) -> integer [XL]
- fmodified(s:string) -> float [XL]
- fopen(self:string, mode:OPEN_MODE) -> buffer [XL]
- fork() -> integer [XL]
- format(self:string, larg:list) -> void
- fread(self:port) -> string [XL]
- fread(self:port, s:string) -> integer [XL]
- fread(self:port, n:integer) -> string [XL]
- freadline(p:port) -> string [XL]
- freadline(p:port, seps:bag) -> tuple(string, string U char) [XL]
- freadline(p:port, sep:string) -> string [XL]
- freadline(p:port, seps:bag, sensitive?:boolean) -> tuple(string, string U char) [XL]
- freadline(p:port, sep:string, sensitive?:boolean, esc:char) -> string [XL]
- freadline(p:port, seps:bag, sensitive?:boolean, esc:char) -> tuple(string, string U char) [XL]
- freadwrite(src:port, trgt:port) -> integer [XL]
- freadwrite(src:port, trgt:port, len:integer) -> integer [XL]
- fsize(s:string) -> float [XL]
- fskip(self:port, len:integer) -> integer [XL]
- funcall(l:lambda, x:any) -> void
- funcall(m:method, x:any) -> void
- funcall(m:method, x:any, y:any) -> void
- funcall(l:lambda, x:any, y:any) -> void
- funcall(f:function, s1:class, x:any, s:class) -> void
- funcall(l:lambda, x:any, y:any, z:any) -> void
- funcall(m:method, x:any, y:any, z:any) -> void
- funcall(f:function, s1:class, x:any, s2:class, y:any, s:class) -> void
- funcall(f:function, s1:class, x:any, s2:class, y:any, s3:class, z:class, s:class) -> void
- fwrite(self:string, p:port) -> integer [XL]
- gc() -> void
- gensym(s:string) -> symbol
- gensym(self:void) -> symbol
- get(s:string, c:char) -> integer
- get(self:property, x:object) -> any
- get(s:slot, x:object) -> any
- get(a:array, x:any) -> integer
- get(l:list, x:any) -> integer
- get_index(self:blob) -> integer [XL]
- get_value(self:string) -> any
- get_value(self:module, s:string) -> any
- getc(self:port) -> char [XL]
- getenv(self:string) -> string
- gethostname() -> string [XL]
- getitimer(it:itimer) -> tuple(integer, integer) [XL]
- getlocale(cat:integer) -> string [XL]
- getpid() -> integer [XL]
- getppid() -> integer [XL]
- getuid() -> integer [XL]
- hash(l:list, x:any) -> integer
- hex!(i:integer) -> string [XL]
- Id(x:any) -> type[x]
- inherit?(self:class, ens:class) -> boolean
- integer!(s:set[integer]) -> integer
- integer!(s:symbol) -> integer
- integer!(c:char) -> integer
- integer!(s:string) -> integer
- integer!(f:float) -> integer
- interface(p:property) -> void
- interface(c:class U Union, pi:listargs) -> void
- inverse(r:relation) -> relation
- isdir?(s:string) -> boolean [XL]
- isenv?(v:string) -> boolean [XL]
- isfile?(s:string) -> boolean [XL]
- kill(self:class) -> any
- kill(p:integer) -> void [XL]
- kill(self:object) -> any
- kill(p:integer, sig:signal_handler) -> void [XL]
- kill!(self:any) -> any
- known?(self:any) -> boolean
- known?(self:property, x:object) -> boolean
- last(self:list) -> type[member(self)]
- left(s:string, i:integer) -> string [XL]
- length(self:blob) -> integer [XL]
- length(self:string) -> integer
- length(a:array) -> integer
- length(self:bag) -> integer
- line_buffer!(self:port) -> line_buffer [XL]
- linger(self:socket) -> void [XL]
- link(s1:string, s2:string) -> void [XL]
- list!(s:set) -> type[list[member(s)]]
- list!(a:array) -> type[list[member(a)]]
- log(x:float) -> float
- lower(s:string) -> string [XL]
- lower?(s:string) -> boolean [XL]
- lower?(c:char) -> boolean [XL]
- ltrim(s:string) -> void [XL]
- make_array(i:integer, t:type, v:any) -> type[(if unique?(t) the(t)[] else array)]
- make_date(s:string) -> float [XL]
- make_date(D:integer, M:integer, Y:integer, h:integer, m:integer, s:integer) -> float [XL]
- make_list(n:integer, x:any) -> type[list[list<any>(x),list({})]]
- make_list(t:type, n:integer) -> list [XL]
- make_set(x:integer) -> set
- make_string(self:symbol) -> string
- make_string(i:integer, c:char) -> string
- make_table(d:type, t:type, x:any) -> table
- make_time(s:string) -> float [XL]
- make_time(h:integer, m:integer, s:integer) -> float [XL]
- match_wildcard?(s:string, w:string) -> boolean [XL]
- max(f:method, self:bag) -> type[member(self)]
- max(x:integer, y:integer) -> integer
- max(x:float, y:float) -> float
- maxenv() -> integer [XL]
- member(x:type) -> type
- member_type(x:array) -> type
- mime_decode(s:string) -> string [XL]
- mime_encode(s:string) -> string [XL]
- min(f:method, self:bag) -> type[member(self)]
- min(x:integer, y:integer) -> integer
- min(x:float, y:float) -> float
- mkdir(s:string) -> void [XL]
- mkdir(s:string, m:integer) -> void [XL]
- mod(x:integer, y:integer) -> integer
- module!() -> module
- module!(r:restriction) -> module
- new(self:class) -> type[object glb member(self)]
- new(self:class, %nom:symbol) -> type[thing glb member(self)]
- not(self:any) -> boolean
- nth(s:string, i:integer) => any
- nth(t:table, x:any) -> any
- nth(self:char*, n:integer) -> char [XL]
- nth(n:integer, i:integer) => any
- nth(self:blob, n:integer) -> char [XL]
- nth(l:bag, i:integer) -> any
- nth(a:array, i:integer) => any
- nth(t:table, x:any, y:any) -> any
- nth+(l:list, i:integer, x:any) -> bag
- nth-(l:list, i:integer) -> bag
- nth=(self:char*, n:integer, c:char) -> void [XL]
- nth=(self:list, x:integer, y:any) -> any
- nth=(s:string, i:integer, c:char) => any
- nth=(t:table, x:any, y:any) -> any
- nth=(self:array, x:integer, y:any) -> void
- nth=(self:blob, n:integer, c:char) -> void [XL]
- nth=(t:table, x1:any, x2:any, y:any) -> any
- occurrence(s:string, z:string) -> integer [XL]
- or(x:integer, y:integer) -> integer
- owner(self:any) -> class
- pipe!() -> tuple(pipe, pipe) [XL]
- popen(file:string, mod:{"r", "w", "rw"}) -> popen_device [XL]
- prealloc_list(t:type, n:integer) -> list [XL]
- prealloc_set(t:type, n:integer) -> set [XL]
- princ(n:integer) -> void
- princ(s:bag) -> void
- princ(s:string) -> void
- princ(c:char) -> void
- princ(s:string, i:integer, j:integer) -> void [XL]
- print(x:any) -> void
- print_in_string() -> void
- put(s:symbol, x:any) -> any
- put(p:property U slot, x:object, y:any) -> any
- put(t:table, x:object, y:any) -> any
- put_store(self:property, x:object, y:any, b:boolean) -> void
- putc(self:char, p:port) -> void
- pwd() -> string [XL]
- raise(sig:signal_handler) -> void [XL]
- random(n:integer) -> integer
- random!() -> void [XL]
- random!(n:integer) -> void
- read(self:property, x:object) -> any
- read!(self:port) -> void [XL]
- readable?(self:port) -> boolean [XL]
- release() -> string
- reopen(self:port) -> port [XL]
- replace(src:string, s:string, rep:string) -> string [XL]
- rfind(s:string, x:string) -> integer [XL]
- rfind(s:string, x:string, from:integer) -> integer [XL]
- right(s:string, i:integer) -> string [XL]
- rmdir(s:string) -> void [XL]
- rmlast(self:list) -> list
- rtrim(s:string) -> void [XL]
- safe(x:any) -> any
- select?() -> boolean [XL]
- select?(ms:integer) -> boolean [XL]
- serialize(p:port, self:any) -> serialize_context [XL]
- serialize(p:port, top?:boolean, self:any) -> serialize_context [XL]
- server!(addr:string) -> listener [XL]
- server!(p:integer) -> listener [XL]
- server!(addr:string, p:integer, qlen:integer) -> listener [XL]
- set_index(self:blob, n:integer) -> void [XL]
- set_length(self:blob, n:integer) -> void [XL]
- setcwd(s:string) -> void [XL]
- setenv(s:string) -> void [XL]
- setitimer(it:itimer, interval:integer, value:integer) -> tuple(integer, integer) [XL]
- setlocale(cat:integer, s:string) -> string [XL]
- shell(self:string) -> integer
- shrink(s:string, n:integer) -> string
- shrink(l:list, n:integer) -> list
- sigblock(self:subtype[signal_handler]) -> set[signal_handler] [XL]
- signal(sig:signal_handler, p:property) -> property [XL]
- sigpending() -> set[signal_handler] [XL]
- sigprocmask() -> set[signal_handler] [XL]
- sigsetmask(self:subtype[signal_handler]) -> set[signal_handler] [XL]
- sigsuspend(self:subtype[signal_handler]) -> void [XL]
- sigunblock(self:subtype[signal_handler]) -> set[signal_handler] [XL]
- sin(self:float) -> float
- sinh(self:float) -> float
- sleep(t:integer) -> void [XL]
- socketpair() -> tuple(socket, socket) [XL]
- sort(f:method, self:list) -> list
- space?(c:char) -> boolean [XL]
- space?(s:string) -> boolean [XL]
- sqrt(self:float) -> float
- store(v:global_variable) -> void
- store(rels:listargs) -> void
- store(a:array, n:integer, v:any, b:boolean) -> void
- store(l:list, n:integer, v:any, b:boolean) -> void
- strftime(f:string, d:float) -> string [XL]
- string!(self:float) -> string
- string!(self:char) -> string [XL]
- string!(n:integer) -> string
- string!(s:symbol) -> string
- string!(self:blob) -> string [XL]
- string!(self:char*, len:integer) -> string [XL]
- substring(s:string, i:integer, j:integer) -> string
- substring(s1:string, s2:string, b:boolean) -> integer
- substring(self:blob, i:integer, j:integer) -> string [XL]
- symbol!(self:string) -> symbol
- symbol!(s:string, m:module) -> symbol
- symlink(s1:string, s2:string) -> void [XL]
- tan(self:float) -> float
- tanh(self:float) -> float
- time_get() -> integer
- time_set() -> void
- time_show() -> void
- timer!() -> float [XL]
- trim(s:string) -> void [XL]
- tuple!(x:list) -> tuple
- unescape(s:string) -> string [XL]
- unget(self:port, s:string) -> void [XL]
- unget(self:port, c:char) -> void [XL]
- unix?() -> boolean [XL]
- unknown?(self:any) -> boolean
- unknown?(self:property, x:object) -> boolean
- unlink(self:listener) -> void [XL]
- unlink(s:string) -> void [XL]
- unserialize(p:port) -> any [XL]
- upper(s:string) -> string [XL]
- upper?(s:string) -> boolean [XL]
- uptime(t:float) -> void [XL]
- url_decode(s:string) -> string [XL]
- url_encode(s:string) -> string [XL]
- use_as_output(p:port) -> port
- waitpid(p:integer) -> tuple(process_status, integer, any) [XL]
- waitpid(p:integer, block?:boolean) -> tuple(process_status, integer, any) [XL]
- world?() -> integer
- writable?(self:port) -> boolean [XL]
- write(self:property, x:object, y:any) -> void
- write!(self:port) -> void [XL]