Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
VOL-2(7)		      AFNIX Users Manual		      VOL-2(7)

NAME
       vol-2 - afnix reference manual

RESERVED KEYWORDS
       Reserved	keyword	are, with symbols and literals,	the basic constituents
       of the writing system. With couple of exception,	reserved keywords  are
       in fact special forms. During the execution, a special

       assert
       The  assertspecial  form	 check for equality between two	operands. Both
       objects must be of the same type. If the	equality test fails, the  spe-
       cial  form print	a message and abort the	execution. By default, the as-
       sertion checking	is turned off. The interpreter option -f assertenables
       the assertion checking. When the	interpreter is compiled	in debug mode,
       the assertion checking is turned	on by default.

       Syntax

	      assert "form 1" "form 2"

       Example

	      assert true (== 1	1) assert 3    (+  2 1)

       block
       The blockspecial	form defines a new nameset for sequential execution of
       regular	form  or  implicit form. When the block	form is	evaluated, the
       block nameset is	linked to its parent nameset. When all forms have been
       executed,  the  block  nameset  is destroyed and	the result of the last
       evaluation in the block is considered to	be the	result	of  the	 block
       evaluation.

       Syntax

	      block "regular form" block "block	form"

       Example

	      trans a 1	block {
		assert	  a 1
		trans	  a (+ 1 1)
		assert	  a 2
		assert ..:a 1 }	assert 1 a

       class
       The  classspecial form creates a	new class object. Without argument, an
       instance	of that	class is created without data members.

       Syntax

	      class

       Example

	      const Color (class) trans	Color:preset (red green	blue) {
		const this:red	 red
		const this:green green
		const this:blue	 blue }	const red   (Color 255	 0   0)	 const
	      green (Color   0 255   0)	const blue  (Color   0	 0 255)

       const
       The  constspecial  form binds a symbol with an object and marks it as a
       constant	symbol.	When used with three or	four argument, a gamma expres-
       sion  is	 automatically created.	constcan also be used to bind class or
       instance	members.

       Syntax

	      const symbol "object" const symbol "argument" "body" const  sym-
	      bol "argument" "closed variables"	"body"

       Example

	      const number 123 const max (x y) (if (> x	y) x y)

       delay
       The  delayspecial  form	delays	the evaluation of the form argument by
       creating	a Promiseobject. The promise evaluate to itself	until  a  call
       to  force  the  evaluation  has	been  made.  When the promise has been
       forced, the evaluation result is	stored.	Further	 call  to  force  will
       produce	the  same  result. Without argument, the delayed evaluation is
       nil. With one argument, a Promiseobject is created directly. With  sev-
       eral  argument, a cons cell is created with the first argument left un-
       evaluated and the other evaluated. This permit to delay	a  form	 while
       evaluatin the calling arguments.

       Syntax

	      delay "form"

       Example

	      trans   y	3 const	 l ((lambda (x)	(+ x y)) 1) assert 4 (force l)
	      trans  y 0 assert	4 (force l) trans  y 1 trans  d	(delay (lambda
	      (x) (+ x 1)) y) assert 2 (force d)

       do
       The  dospecial  form  is	used to	build loop with	forward	condition. The
       loop construct accepts either 2 or 3 arguments. With  2	argument,  the
       first  argument	is  the	 loop body and the second argument is the loop
       condition which must evaluates to a boolean object. With	 3  arguments,
       the first argument is the initial condition that	is executed only once.

       Syntax

	      do "body"	"condition" do "initial" "body"	"condition"

       Example

	      const number-of-digits (s) {
		const len (s:length)
		trans index 0
		trans count 0
		do {
		  trans	c (s:get index)
		  if (c:digit-p) (count:++)
		} (< (index:++)	len)
		eval count }

       enum
       The enumspecial form creates an enumeration from	a list of literal. The
       result object is	an Enumobject that holds the enumerated	items. An item
       evaluation  results with	an Itemobject that is bound to the enumeration
       object.

       Syntax

	      enum "literal" ...

       Example

	      const e (enum E1 E2 E3)

       errorln
       The errorlnspecial form prints on the interpreter error stream a	set of
       arguments. Each arguments have to be a literal which are	converted to a
       string. When all	arguments have been printed a new  line	 character  is
       printed.	 The  errorspecial form	behaves	like errorlnexcepts that a new
       line character is not printed at	the end	of the arguments.

       Syntax

	      errorln errorln "nil" errorln "literal list"

       Example

	      errorln errorln "hello millennium" ' ' 2000

       eval
       The evalspecial form simply evaluates the object	argument. The form  is
       useful when returning an	argument from a	lambda or gamma	expression us-
       ing an implicit form.

       Syntax

	      eval "object"

       Example

	      const ret	(x) (eval x) eval (protect (+ 1	2))

       for
       The forspecial form provides a facility to iterate on iterable objects.
       The  Cons, Listand Vectorobjects	are typical iterable objects. For each
       iterable	objects, a symbol is set after	each  iteration.  Each	object
       symbol  value  can be used for further computation. The iteration stops
       when one	of the objects iterator	is at the end position.

       Syntax

	      for "symbol list"	"iterable object list" "body"

       Example

	      #	compute	the scalar product of two vectors const	scalar-product
	      (u v) {
		trans result 0
		for (x y) (u v)	(result:+= (* x	y))
		eval result }

       force
       The forcespecial	form forces the	evaluation of its argument. If the ar-
       gument evaluates	to a promise object, the promise evaluation is forced.
       If  the argument	is not a promise, forcekeyword behaves like eval. When
       a promise has been forced, further call to force	will  not  change  the
       evaluation result.

       Syntax

	      force "object"

       Example

	      trans   y	3 const	 l ((lambda (x)	(+ x y)) 1) assert 4 (force l)
	      trans  y 0 assert	4 (force l)

       if
       The ifspecial form executes a form based	on the evaluation of a boolean
       expression.  In its first representation, ifexecutes a form if the con-
       dition is evaluated to true. An alternate form can be specified and  is
       executed	 if  the boolean expression evaluates to false.	It is an error
       to use a	conditional form which does not	evaluate to a boolean object.

       Syntax

	      if "condition" "true form"  if  "condition"  "true  form"	 "else
	      form"

       Example

	      const max	(x y) (if (> x y) x y)

       lambda
       The  lambdaspecial  form	creates	a new closure object with eventually a
       set of arguments	and a set of closed variables. In its first form,  the
       closure is declared with	a set of arguments or nil to indicate no argu-
       ment. In	its second form, the closure is	declared with a	set  of	 argu-
       ments and a set of closed variables. The	closed variables are evaluated
       at the construction of the closure and become part of the  closure  ob-
       ject.  When  the	closure	is called, a new nameset is created and	linked
       with the	parent nameset.	The set	of calling arguments  are  bounded  in
       that  nameset  with the formal argument list to become the actual argu-
       ments. The set of closed	variables is linked at runtime to the  closure
       nameset.	A lambda or gamma expression can have its argument declared as
       constargument.

       Syntax

	      lambda "nil" "body" lambda "argument list" "body"	lambda	"argu-
	      ment list" "closed variables list" "body"

       Example

	      const no-args (lambda nil	(+ 1 1)) const add     (lambda ((const
	      x) (const	y)) (+ x y)) const closed  (lambda (x) (y) (+ x	y))

       launch
       The launchspecial form creates a	new thread by executing	the form argu-
       ment  in	 a  normal  thread.  The created thread	is added in the	normal
       thread list by creating a clone of the interpreter and starting immedi-
       ately  the  execution of	the form with the cloned interpreter. The com-
       mand returns the	thread object in the calling thread. When  the	thread
       terminates,  the	 thread	 object	 holds the result of the last executed
       form. The main thread is	suspended until	all normal threads  have  com-
       pleted their execution.

       Syntax

	      launch "form" launch "thread" "form"

       Example

	      launch (println "hello world")

       loop
       The  loopspecial	form executes a	loop based on an initial condition, an
       exit condition and a step form. The initial condition is	only  executed
       one  time.  The	exit  condition	 is tested at each loop	iteration. The
       loopspecial form	creates	its own	nameset	since  the  initial  condition
       generally binds symbol locally for the loop.

       Syntax

	      loop "init form" "exit form" "step" "form"

       Example

	      loop (trans i 0) (< i 10)	(i:++) (println	i)

       nameset
       The  namesetspecial form	creates	a new nameset. With no argument, a new
       nameset is created and no parent	is binded to this  nameset.  With  one
       argument,  the  argument	must evaluate to a nameset and that nameset is
       used as the parent one. If a nameset has	to be created with the	global
       nameset	as  the	parent,	the symbol ...can be used to reference the top
       level nameset. The symbol .references the current nameset.  The	symbol
       ..references the	parent nameset of the current nameset.

       Syntax

	      nameset nameset "parent nameset"

       Example

	      const  local-nameset-not-bound  (nameset)	 const	local-nameset-
	      bounded	(nameset ...)  const ...:global-nameset	     (nameset)

       println
       The printlnspecial form prints on the interpreter output	stream	a  set
       of arguments. Each arguments have to be a literal which is converted to
       a string. When all arguments have been printed a	new line character  is
       printed.	 The  printspecial form	behaves	like printlnexcepts that a new
       line character is not printed at	the end	of the arguments.

       Syntax

	      println println "nil" println "literal list"

       Example

	      println println "hello millennium" ' ' 2000

       protect
       The protectspecial form take a single argument and returns  it  without
       evaluation. Protect is mainly use to get	a symbol or form object.

       Syntax

	      protect "object"

       Example

	      const cons (protect (+ 1 2))

       return
       The returnspecial form causes the current expression to stop its	evalu-
       ation and returns the argument or nil. The returnkeyword	 is  primarily
       used  in	lambda or gamma	expressions. If	used in	a top level block, the
       block execution is stopped and the control is transferred  to  the  top
       level.

       Syntax

	      return "object"

       Example

	      return (+	1 2)

       sync
       The  syncspecial	 form  is a form synchronizer. Within a	multi-threaded
       environment, the	engine guarantees that only one	 thread	 will  execute
       the  form. The other threads are	suspended until	the form has been com-
       pleted.

       Syntax

	      sync "form"

       Example

	      const print-message (code	mesg) (
		sync {
		  errorln "error  : " code
		  errorln "message: " mesg
		} )

       switch
       The switchspecial form is a form	selector. The first  argument  is  the
       object to switch. The second argument is	a list of forms	with an	object
       matcher and an execution	form. The elsespecial form can be used as  de-
       fault matcher.

       Syntax

	      switch "selector"	"list of conditions"

       Example

	      const get-primary-color (color value) (
		switch color (
		  ("red"   (return (value:substr 0 2))
		    ("green" (return (value:substr 2 4))
		      ("blue"  (return (value:substr 4 6))
		      )
		    )

       throw
       The  throwspecial form throws an	exception. Without argument, an	excep-
       tion of type user-exception is thrown. With one argument, the exception
       id  is  set.  With two arguments, the exception id and exception	reason
       are set.	With three arguments, the exception id,	exception  reason  and
       exception object	are set. An exception object represented by the	symbol
       whatcan also be thrown. This is the method used to re-throw  an	excep-
       tion.

       Syntax

	      throw throw what throw "id" throw	"id" "reason" throw "id" "rea-
	      son" "object"

       Example

	      throw throw "type-error" throw "type-error" "invalid argument"

       trans
       The transspecial	 form  creates	or  sets  a  symbol  with  an  object.
       transsearches  in the current nameset only. If a	symbol is found, it is
       set with	the object. If the symbol is not found,	it is created  in  the
       current	nameset.  The  transkeyword  can  also	be used	with qualified
       names. With 3 or	4 arguments, transcreates automatically	a  lambda  ex-
       pression.

       Syntax

	      trans  symbol "object" trans symbol "argument" "body" trans sym-
	      bol "argument" "closed variables"	"body"

       Example

	      trans a 1	trans fact (n) (if (< n	1) 1 (*	n (fact	(- n 1))))

       try
       The tryspecial form catch an exception in the current  execution	 name-
       set. The	first argument is a form to execute. The optional second argu-
       ment is the exception handler to	be called in  case  of	exception.  If
       there is	no exception handler, all exceptions are caught. The result of
       execution is either the result of the form execution, or	the  exception
       object  in  case	of exception, or nil if	the exception is a native one.
       If there	is an exception	handler, the handler is	executed  with	a  new
       nameset	and  the  special symbol whatis	bound to the exception.	If the
       exception is nil, the symbol whatis undefined.

       Syntax

	      try "form" try "form" " exception	handler"

       Example

	      try (+ 1 2) try (throw) try (throw "hello") try  (throw  "hello"
	      "world") try (throw "hello" "world" "folks")

       unref
       The unrefspecial	form unreference a symbol.

       Syntax

	      unref symbol

       Example

	      const number 123 unref number

       while
       The  whilespecial  form	is used	to build loop with backward condition.
       The loop	construct accepts either 2 or 3	arguments.  With  2  argument,
       the first argument is the loop condition	and the	second argument	is the
       loop body that must evaluate to a boolean. With 3 arguments, the	 first
       argument	is the initial condition that is executed only once.

       Syntax

	      while "condition"	"body" while "initial" "condition" "body"

       Example

	      const gcd	(u v) {
		while (!= v 0) {
		  trans	r (u:mod v)
		  u:= v
		  v:= r
		}
		eval u }

RESERVED OBJECTS
       This  chapter is	a reference of the reserved objects with their respec-
       tive builtin methods. The reserved objects are those objects defined in
       the  global interpreter nameset and bind	as reserved names. All literal
       have a string representation. The to-stringmethod is  always  available
       for these reserved objects. A literal object has	a default constructor.
       Generally, it can also be constructed by	a same type  object  or	 by  a
       string object.

       Literal
       The  Literalobject  is  a  base object for all literal object. The sole
       purpose of a literal object is to provide to methods named to-stringand
       to-literalthat return a string representation of	the literal object.

       Predicate

	      literal-p

       Inheritance

	      Serial

       Methods

	      to-string	-> String (none)
	      The  to-stringmethod returns a string representation of the lit-
	      eral. The	string is expected to represent	at best	the literal.

	      to-literal -> String (none)
	      The to-literalmethod returns a string representation of the lit-
	      eral.  The  string differs from the to-stringmethod in the sense
	      that the string is a literal  representation.  For  example  the
	      literal representation of	a string is the	quoted string.

       Nameable
       The  Nameableobject  is a base object that support name definition. The
       sole purpose of a literal object	is to provide  to  method  named  get-
       namethat	returns	the object name.

       Predicate

	      nameable-p

       Inheritance

	      Object

       Methods

	      get-name -> String (none)
	      The  get-namemethod  returns the associated object name. The ob-
	      ject name	defined	here is	a name that the	class wishes to	 asso-
	      ciate  with  the object. For example, the	InputFileis a nameable
	      class and	the name is the	file name.

       Item
       The Itemreserved	object is an enumeration item. The item	is bound to an
       enumeration  object. An item object is created during the evaluation of
       an enumeration object. An enumeration item cannot  be  constructed  di-
       rectly.

       Predicate

	      item-p

       Inheritance

	      Literal

       Operators

	      == -> Boolean (Boolean)
	      The  ==operator  returns	true if	the calling object is equal to
	      the boolean argument.

	      != -> Boolean (Boolean)
	      The ==operator returns true if the calling object	is  not	 equal
	      to the boolean argument.

       Methods

	      get-enum -> Enum (none)
	      The  get-enummethod  returns the enumeration object bound	to the
	      item. The	item must be a dynamic item or an exception is thrown.

       Boolean
       The Booleanreserved object implements the behavior of a native  boolean
       type.  Two builtin symbols, namely true and false are used to represent
       the value of a boolean instance.	The Booleantype	is primarily used  for
       test expression.

       Predicate

	      boolean-p

       Inheritance

	      Literal

       Constructors

	      Boolean (none)
	      The  Booleanconstructor  create  a  boolean object those default
	      value is false.

	      Boolean (Boolean)
	      The Booleanconstructor create a boolean object with the  boolean
	      object argument.

	      Boolean (String)
	      The  Booleanconstructor  create a	boolean	object with the	string
	      object argument. The string "true"denotes	the true  value	 while
	      the string "false"denotes	the false value.

       Operators

	      == -> Boolean (Boolean)
	      The  ==operator  returns	true if	the calling object is equal to
	      the boolean argument.

	      != -> Boolean (Boolean)
	      The ==operator returns true if the calling object	is  not	 equal
	      to the boolean argument.

       Number
       The  Numberreserved  objectis  a	base class for all number objects. The
       number base object is used by the Integer, Realand Relatifobjects.  The
       class provides essentially the methods needed to	format a number.

       Predicate

	      number-p

       Inheritance

	      Literal

       Methods

	      format ->	String (none|Integer)
	      The  formatmethod	format the calling number instance with	a cer-
	      tain number of digits after the decimal point. In	the first form
	      without  argument,  the default formating	representation is per-
	      formed with a null precision. In the second format, a number  is
	      represented  with	a certain precision given by the calling argu-
	      ment.

	      to-hexa -> String	(none)
	      The to-hexamethod	returns	a signed hexadecimal representation of
	      a	number.	This method works well with Integerand Relatifobjects.

	      to-hexa-string ->	String (none)
	      The to-hexa-stringmethod returns a hexadecimal representation of
	      a	number without a prefix. The number is always considered posi-
	      tive. This method	works well with	Integerand Relatifobjects.

       Integer
       The  Integerreserved object implements the behavior of a	native 64 bits
       signed integer type. Standard decimal notation is used to construct in-
       teger object from a literal. The	integer	object can also	be constructed
       from a string. Standard operators are provided for this class. The  In-
       tegerobject is a	literal	object derived from the	Numberobject.

       Predicate

	      integer-p

       Inheritance

	      Number

       Constructors

	      Integer (none)
	      The  Integerconstructor  create  an integer object those default
	      value is 0.

	      Integer (Real)
	      The Integerconstructor create an integer object  with  the  real
	      object argument those value is truncated to an integer value.

	      Integer (Integer)
	      The Integerconstructor create an integer object with the integer
	      object argument.

	      Integer (Character)
	      The Integerconstructor create an integer object with the charac-
	      ter object argument. The character encoding value	is used	as the
	      integer value.

       Operators

	      == -> Boolean (Integer|Real)
	      The ==operator returns true if the calling object	 is  equal  to
	      the integer or real argument.

	      != -> Boolean (Integer|Real)
	      The  !=operator  returns true if the calling object is not equal
	      to the integer or	real argument.

	      +	-> Integer (Integer|Real)
	      The +operator returns the	sum of the calling integer with	an in-
	      teger or a real object.

	      -	-> Integer (Integer|Real)
	      The  -operator  returns  the  subtraction	of the calling integer
	      with an integer or a real	object.

	      *	-> Integer (Integer|Real)
	      The *operator returns the	multiplication of the calling  integer
	      with an integer or a real	object.

	      /	-> Integer (Integer|Real)
	      The  /operator  returns the division of the calling integer with
	      an integer or a real object.

	      <	-> Boolean (Integer|Real)
	      The <operator returns true if the	calling	integer	is  less  than
	      the integer or real object.

	      <= -> Boolean (Integer|Real)
	      The <=operator returns true if the calling integer is less equal
	      than the integer or real object.

	      >	-> Boolean (Integer|Real)
	      The >operator returns true if the	 calling  integer  is  greater
	      than the integer or real object.

	      >= -> Boolean (Integer|Real)
	      The  >=operator  returns	true if	the calling integer is greater
	      equal than the integer or	real object.

	      ++ -> Integer (Integer|Real)
	      The ++operator increments	the calling integer by 1.

	      -- -> Integer (Integer|Real)
	      The --operator decrements	the calling integer by 1.

	      += -> Integer (Integer|Real)
	      The +=operator add and assign the	calling	integer	with an	 inte-
	      ger or real argument object.

	      -= -> Integer (Integer|Real)
	      The  -=operator subtracts	and assign the calling integer with an
	      integer or real argument object.

	      *= -> Integer (Integer|Real)
	      The *=operator multiply and assign the calling integer  with  an
	      integer or real argument object.

	      /= -> Integer (Integer|Real)
	      The /=operator divide and	assign the calling integer with	an in-
	      teger or real argument object.

       Methods

	      or -> Integer (Integer)
	      The ormethod returns the binary or between the integer  and  the
	      integer argument.

	      abs -> Integer (none)
	      The  absmethod returns the absolute value	of the calling integer
	      instance.

	      not -> Integer (none)
	      The notmethod returns the	binary negation	of the calling integer
	      instance.

	      shl -> Integer (Integer)
	      The shlmethod returns a new integer corresponding	to the calling
	      integer instance shifted left by the integer argument.

	      shr -> Integer (Integer)
	      The shrmethod returns a new integer corresponding	to the calling
	      integer instance shifted right by	the integer argument.

	      and -> Integer (Integer)
	      The  andmethod returns a new integer corresponding to the	binary
	      and between the calling integer instance and the	integer	 argu-
	      ment.

	      xor -> Integer (Integer)
	      The  xormethod returns a new integer corresponding to the	binary
	      xor between the calling integer instance and the	integer	 argu-
	      ment.

	      mod -> Integer (Integer)
	      The  modmethod  returns  the modulo between the integer instance
	      and the integer argument.	A type-errorexception is raised	if the
	      argument is not an argument.

	      odd-p -> Boolean (none)
	      The  odd-pmethod	returns	 true  if the integer instance is odd,
	      false otherwise.

	      even-p ->	Boolean	(none)
	      The even-pmethod returns true if the integer instance  is	 even,
	      false otherwise.

	      zero-p ->	Boolean	(none)
	      The  zero-pmethod	 returns true if the integer instance is null,
	      false otherwise.

       Relatif
       The Relatifreserved object implements  the  behavior  of	 an  unlimited
       signed  integer	type. Standard decimal notation	followed by the	'r' or
       'R' character is	used to	construct relatif object from a	 literal.  The
       relatif	object	can  also  be constructed from a string. This class is
       similar to the Integerclass. The	Relatifis  a  literal  object  derived
       from the	Numberobject.

       Predicate

	      relatif-p

       Inheritance

	      Number

       Constructors

	      Relatif (none)
	      The  Relatifconstructor  create  a  relatif object those default
	      value is 0.

	      Relatif (Real)
	      The Relatifconstructor create an relatif object  with  the  real
	      object argument those value is truncated to an integer value.

	      Relatif (Relatif)
	      The Relatifconstructor create an relatif object with the relatif
	      object argument.

	      Relatif (Integer)
	      The Relatifconstructor create an relatif object with the integer
	      object argument.

	      Relatif (Character)
	      The Relatifconstructor create an relatif object with the charac-
	      ter object argument. The character encoding value	is used	as the
	      relatif value.

       Operators

	      == -> Boolean (Relatif|Integer)
	      The  ==operator  returns	true if	the calling object is equal to
	      the relatif or integer argument.

	      != -> Boolean (Relatif|Integer)
	      The ==operator returns true if the calling object	is  not	 equal
	      to the relatif or	integer	argument.

	      +	-> Relatif (Relatif|Integer)
	      The +operator returns the	sum of the calling relatif with	an re-
	      latif or a integer object.

	      -	-> Relatif (Relatif|Integer)
	      The -operator returns the	subtraction  of	 the  calling  relatif
	      with an relatif or a integer object.

	      *	-> Relatif (Relatif|Integer)
	      The  *operator returns the multiplication	of the calling relatif
	      with an relatif or a integer object.

	      /	-> Relatif (Relatif|Integer)
	      The /operator returns the	division of the	calling	 relatif  with
	      an relatif or a integer object.

	      <	-> Boolean (Relatif|Integer)
	      The  <operator  returns true if the calling relatif is less than
	      the relatif or integer object.

	      <= -> Boolean (Relatif|Integer)
	      The <=operator returns true if the calling relatif is less equal
	      than the relatif or integer object.

	      >	-> Boolean (Relatif|Integer)
	      The  >operator  returns  true  if	the calling relatif is greater
	      than the relatif or integer object.

	      >= -> Boolean (Relatif|Integer)
	      The >=operator returns true if the calling  relatif  is  greater
	      equal than the relatif or	integer	object.

	      ++ -> Relatif (Relatif|Integer)
	      The ++operator increments	the calling relatif by 1.

	      -- -> Relatif (Relatif|Integer)
	      The --operator decrements	the calling relatif by 1.

	      += -> Relatif (Relatif|Integer)
	      The  +=operator  add  and	assign the calling relatif with	an re-
	      latif or integer argument	object.

	      -= -> Relatif (Relatif|Integer)
	      The -=operator subtracts and assign the calling relatif with  an
	      relatif or integer argument object.

	      *= -> Relatif (Relatif|Integer)
	      The  *=operator  multiply	and assign the calling relatif with an
	      relatif or integer argument object.

	      /= -> Relatif (Relatif|Integer)
	      The /=operator divide and	assign the calling relatif with	an re-
	      latif or integer argument	object.

       Methods

	      or -> Relatif (Relatif)
	      The  ormethod  returns the binary	or between the relatif and the
	      relatif argument.

	      abs -> Relatif (none)
	      The absmethod returns the	absolute value of the calling  relatif
	      instance.

	      not -> Relatif (none)
	      The notmethod returns the	binary negation	of the calling relatif
	      instance.

	      shl -> Relatif (Integer)
	      The shlmethod returns a new relatif corresponding	to the calling
	      relatif instance shifted left by the integer argument.

	      shr -> Relatif (Integer)
	      The shrmethod returns a new relatif corresponding	to the calling
	      relatif instance shifted right by	the integer argument.

	      pow -> Relatif (Integer|Relatif|Integer Integer|Relatif Relatif)
	      The powmethod returns a new relatif corresponding	to  the	 power
	      of  the calling relatif instance with the	integer	or relatif ar-
	      gument. With one argument, the power is computed directly.  With
	      two  arguments,  a fast modular exponentiation is	performed with
	      the second argument as the modulus.

	      mmi -> Relatif (Integer|Relatif)
	      The mmimethod returns the	multiplicative modular inverse of  the
	      calling  relatif.	The argument is	the modulus to use for the in-
	      verse calculation.

	      and -> Relatif (Relatif)
	      The andmethod returns a new relatif corresponding	to the	binary
	      and  between  the	calling	relatif	instance and the relatif argu-
	      ment.

	      xor -> Relatif (Relatif)
	      The xormethod returns a new relatif corresponding	to the	binary
	      xor  between  the	calling	relatif	instance and the relatif argu-
	      ment.

	      mod -> Relatif (Relatif|Integer)
	      The modmethod returns the	modulo between	the  relatif  instance
	      and  the	relatif	 or integer argument. A	type-errorexception is
	      raised if	the argument is	invalid.

	      odd-p -> Boolean (none)
	      The odd-pmethod returns true if the  relatif  instance  is  odd,
	      false otherwise.

	      even-p ->	Boolean	(none)
	      The  even-pmethod	 returns true if the relatif instance is even,
	      false otherwise.

	      zero-p ->	Boolean	(none)
	      The zero-pmethod returns true if the relatif instance  is	 null,
	      false otherwise.

	      get-msb -> Integer (none)
	      The  get-msbmethod  returns the most significnd bit position for
	      the calling relatif. If the number is null, 0 is	returned.  The
	      msb position is thus counted from	1.

       Real
       The  Realreserved  object  implements the behavior of a double floating
       point number type. Standard decimal dot notation	or scientific notation
       is  used	 to  construct real object from	a literal. The real object can
       also be constructed from	an integer, a character	or a string.  The  Re-
       alobject	is a literal object derived from the Numberobject.

       Predicate

	      real-p

       Inheritance

	      Number

       Constructors

	      Real (none)
	      The Realconstructor create an real object	those default value is
	      0.0.

	      Real (Real)
	      The Realconstructor create an real object	with the  real	object
	      argument.

	      Real (Integer)
	      The  Realconstructor  create an real object with the integer ob-
	      ject argument.

	      Real (Character)
	      The Realconstructor create an real object	with the character ob-
	      ject argument. The character encoding value is used as the inte-
	      ger value.

       Operators

	      == -> Boolean (Integer|Real)
	      The ==operator returns true if the calling object	 is  equal  to
	      the integer or real argument.

	      != -> Boolean (Integer|Real)
	      The  ==operator  returns true if the calling object is not equal
	      to the integer or	real argument.

	      +	-> Real	(Integer|Real)
	      The +operator returns the	sum of the calling real	with an	 inte-
	      ger or a real object.

	      -	-> Real	(Integer|Real)
	      The  -operator  returns the subtraction of the calling real with
	      an integer or a real object.

	      *	-> Real	(Integer|Real)
	      The *operator returns the	multiplication	of  the	 calling  real
	      with an integer or a real	object.

	      /	-> Real	(Integer|Real)
	      The  /operator  returns the division of the calling real with an
	      integer or a real	object.

	      <	-> Boolean (Integer|Real)
	      The <operator returns true if the	calling	real is	less than  the
	      integer or real object.

	      <= -> Boolean (Integer|Real)
	      The  <=operator  returns	true if	the calling real is less equal
	      than the integer or real object.

	      >	-> Boolean (Integer|Real)
	      The >operator returns true if the	calling	real is	 greater  than
	      the integer or real object.

	      >= -> Boolean (Integer|Real)
	      The >=operator returns true if the calling real is greater equal
	      than the integer or real object.

	      ++ -> Real (Integer|Real)
	      The ++operator increments	the calling real by 1.

	      -- -> Real (Integer|Real)
	      The --operator decrements	the calling real by 1.

	      += -> Real (Integer|Real)
	      The +=operator add and assign the	calling	real with  an  integer
	      or real argument object.

	      -= -> Real (Integer|Real)
	      The -=operator subtracts and assign the calling real with	an in-
	      teger or real argument object.

	      *= -> Real (Integer|Real)
	      The *=operator multiply and assign the calling real with an  in-
	      teger or real argument object.

	      /= -> Real (Integer|Real)
	      The  +=operator divide and assign	the calling real with an inte-
	      ger or real argument object.

       Methods

	      nan-p -> Boolean (none)
	      The nan-pmethod returns true if the calling real number instance
	      is not-a-number (nan).

	      ceiling -> Real (none)
	      The ceilingmethod	returns	the ceiling of the calling real	number
	      instance.

	      floor -> Real (none)
	      The floormethod returns the floor	of the calling real number in-
	      stance.

	      abs -> Real (none)
	      The  absmethod  returns  the  absolute value of the calling real
	      number instance.

	      pow -> Real (Real|Integer)
	      The powmethod returns the	power of the calling real with the ar-
	      gument. The exponent argument can	be either an integer or	a real
	      number.

	      sqrt -> Real (none)
	      The sqrtmethod returns the square	root of	the calling real  num-
	      ber instance.

	      ln -> Real (none)
	      The  lnmethod  returns the natural logarithm of the calling real
	      number instance.

	      exp -> Real (none)
	      The expmethod returns the	exponential of the calling real	number
	      instance.

	      sin -> Real (none)
	      The sinmethod returns the	sine of	the calling floating point in-
	      stance. The angle	is expressed in	radian.

	      cos -> Real (none)
	      The cosmethod returns the	cosine of the calling  floating	 point
	      instance.	The angle is expressed in radian.

	      tan -> Real (none)
	      The  tanmethod returns the tangent of the	calling	floating point
	      instance.	The angle is expressed in radian.

	      asin -> Real (none)
	      The asinmethod returns the arc  sine  of	the  calling  floating
	      point instance. The result is in radian.

	      acos -> Real (none)
	      The  acosmethod  returns	the arc	cosine of the calling floating
	      point instance. The result is in radian.

	      atan -> Real (none)
	      The atanmethod returns the arc tangent of	the  calling  floating
	      point instance. The result is in radian.

	      sinh -> Real (none)
	      The  sinhmethod  returns the hyperbolic sine of the calling real
	      number instance.

	      cosh -> Real (none)
	      The coshmethod returns the hyperbolic cosine of the calling real
	      number instance.

	      tanh -> Real (none)
	      The  atanmethod  returns	the  hyperbolic	tangent	of the calling
	      real number instance.

	      asinh -> Real (none)
	      The asinhmethod returns the hyperbolic arc sine of  the  calling
	      real number instance.

	      acosh -> Real (none)
	      The acoshmethod returns the hyperbolic arc cosine	of the calling
	      real number instance.

	      atanh -> Real (none)
	      The atanhmethod returns the hyperbolic arc tangent of the	 call-
	      ing real number instance.

	      zero-p ->	Boolean	(none)
	      The  zero-pmethod	 returns  true if the calling real instance is
	      null, false otherwise.

       Character
       The Characterreserved object implements	the  behavior  of  an  Unicode
       character  type.	 A  character can be constructed from a	literal	quoted
       notation, with a	string or with the U+hexadecimal notation. The charac-
       ter class is designed to	handle the full	range of the Unicode character
       space by	using an internal 32  bit  quad	 representation	 with  31  bit
       valid.  The  Characterclass  conform  also with the ISO 10646 character
       representation.

       Predicate

	      character-p

       Inheritance

	      Literal

       Constructors

	      Character	(none)
	      The Characterconstructor create a	character object those default
	      value is the null	character.

	      Character	(String)
	      The  Characterconstructor	 create	 a  character  object with the
	      string object argument.

	      Character	(Integer)
	      The Characterconstructor create a	character object with the  in-
	      teger object argument.

	      Character	(Character)
	      The  Characterconstructor	 create	 a  character  object with the
	      character	object argument.

       Operators

	      == -> Boolean (Character)
	      The ==operator returns true if the calling object	 is  equal  to
	      the character argument.

	      != -> Boolean (Character)
	      The  !=operator  returns true if the calling object is not equal
	      to the character argument.

	      <	-> Boolean (Character)
	      The <operator returns true if the	calling	character is less than
	      the character object.

	      <= -> Boolean (Character)
	      The  <=operator  returns	true  if the calling character is less
	      equal than the character object.

	      >	-> Boolean (Character)
	      The >operator returns true if the	calling	character  is  greater
	      than the character object.

	      >= -> Boolean (Character)
	      The  >=operator returns true if the calling character is greater
	      equal than the character object.

	      ++ -> Character (Character)
	      The ++operator increments	the calling character by the next  one
	      in lexicographic order.

	      -- -> Character (Character)
	      The  --operator decrements the calling character by the previous
	      one in lexicographic order.

	      += -> Character (Integer)
	      The +=operator add the integer argument to the  calling  charac-
	      ter.

	      -= -> Character (Integer)
	      The  -=operator  subtracts  the  integer argument	to the calling
	      character.

       Methods

	      letter-p -> Boolean (none)
	      The letter-ppredicate returns true if the	character is a	letter
	      character, falseotherwise.

	      digit-p -> Boolean (none)
	      The  digit-ppredicate  returns  true if the character is a digit
	      character, false otherwise.

	      alpha-p -> Boolean (none)
	      The alpha-ppredicate returns true	if the	character  is  an  al-
	      phanumeric character, falseotherwise.

	      blank-p -> Boolean (none)
	      The blank-ppredicate returns true	if the character is a blank or
	      tab character, false otherwise.

	      eol-p -> Boolean (none)
	      The eol-ppredicate returns true if the character is  an  end-of-
	      linecharacter, false otherwise.

	      eos-p -> Boolean (none)
	      The  eos-ppredicate  returns true	if the character is an end-of-
	      streamcharacter, false otherwise.

	      nil-p -> Boolean (none)
	      The nil-ppredicate returns true if  the  character  is  the  nil
	      character, false otherwise.

	      to-integer -> Integer (none)
	      The  to-integermethod  returns  an integer representation	of the
	      characters.

       Byte
       The Bytereserved	object implements the behavior of an 8	bit  character
       type.  A	 byte  can be constructed from a integer or from another byte.
       The Byteclass is	similar	to the Characterclass but is not a literal ob-
       ject  because  it  does	not have a literal representation. Most	of the
       time, a byte object is created by another object	like  a	 stream,  when
       using the readmethod for	example.

       Predicate

	      byte-p

       Inheritance

	      Serial

       Constructors

	      Byte (none)
	      The  Byteconstructor create a byte object	those default value is
	      the null byte.

	      Byte (Integer)
	      The Byteconstructor create a byte	object with the	integer	object
	      argument.	 The  integer  value  must  be in the range of 0x00 to
	      0xFF.

	      Byte (Byte)
	      The Byteconstructor create a byte	object with  the  byte	object
	      argument.

       Operators

	      == -> Boolean (Byte)
	      The  ==operator  returns	true if	the calling object is equal to
	      the byte argument.

	      != -> Boolean (Byte)
	      The !=operator returns true if the calling object	is  not	 equal
	      to the byte argument.

	      <	-> Boolean (Byte)
	      The  <operator returns true if the calling byte is less than the
	      byte object.

	      <= -> Boolean (Byte)
	      The <=operator returns true if the calling byte  is  less	 equal
	      than the byte object.

	      >	-> Boolean (Byte)
	      The  >operator  returns true if the calling byte is greater than
	      the byte object.

	      >= -> Boolean (Byte)
	      The >=operator returns true if the calling byte is greater equal
	      than the byte object.

	      ++ -> Byte (Byte)
	      The ++operator increments	the calling byte by one.

	      -- -> Byte (Byte)
	      The --operator decrements	the calling byte by one.

	      += -> Byte (Integer)
	      The +=operator adds the integer argument to the calling byte.

	      -= -> Byte (Integer)
	      The  -=operator  subtracts  the  integer argument	to the calling
	      byte.

       Methods

	      eos-p -> Boolean (none)
	      The eos-ppredicate returns true if the character is  an  end-of-
	      streamcharacter, false otherwise.

	      nil-p -> Boolean (none)
	      The  nil-ppredicate  returns  true  if the byte is the nil byte,
	      false otherwise.

	      to-integer -> Integer (none)
	      The to-integermethod returns an integer  representation  of  the
	      byte.

	      to-char -> Character (none)
	      The to-charmethod	returns	a character representing the byte.

       String
       The  Stringreserved object implements the behavior of an	internal char-
       acter array. The	double quote notation is the literal  notation	for  a
       string.	A  string  can	also be	constructed from the standard objects.
       Strings can be compared,	transformed or extracted with the help of  the
       methods listed below. Internally, the string is represented as an array
       of Unicode characters.

       Predicate

	      string-p

       Inheritance

	      Literal

       Constructors

	      String (none)
	      The Stringconstructor create a string object those default value
	      is the null string.

	      String (Literal)
	      The  Stringconstructor  create  a	string object with the literal
	      object argument.

       Operators

	      == -> Boolean (String)
	      The ==operator returns true if the calling object	 is  equal  to
	      the string argument.

	      != -> Boolean (String)
	      The  !=operator  returns true if the calling object is not equal
	      to the string argument.

	      <	-> Boolean (String)
	      The <operator returns true if the	calling	string	is  less  than
	      the string argument.

	      <= -> Boolean (String)
	      The  <=operator returns true if the calling string is less equal
	      than the string argument.

	      >	-> Boolean (String)
	      The >operator returns true if the	calling	string is greater than
	      the string argument.

	      >= -> Boolean (String)
	      The  >=operator  returns	true  if the calling string is greater
	      equal than the string argument.

	      +	-> String (String)
	      The +operator returns the	sum of	the  calling  string  with  an
	      string object.

	      += -> String (String)
	      The +=operator add and assign the	calling	string with the	string
	      argument.

       Methods

	      length ->	Integer	(none)
	      The lengthmethod returns the length of the string.

	      first -> Character (none)
	      The firstmethod returns the first	character in the string.

	      last -> Character	(none)
	      The lastmethod returns the last character	in the string.

	      strip-left -> String (none|String)
	      The strip-leftmethod removes the leading blanks and tabs and re-
	      turns  a	new  string. With a string argument, each character in
	      the string is taken as a	character  separator  that  should  be
	      stripped.

	      strip-right -> String (none|String)
	      The  strip-rightmethod  removes the trailing blanks and tabs and
	      returns a	new string.With	a string argument, each	 character  in
	      the  string  is  taken  as  a character separator	that should be
	      stripped.

	      strip -> String (none|String)
	      The stripmethod removes the leading, trailing  blanks  and  tabs
	      and returns a new	string.	With a string argument,	each character
	      in the string is taken as	a character separator that  should  be
	      stripped.

	      split -> Vector (none|String)
	      The splitmethod split the	string into one	or more	string accord-
	      ing to break sequence. If	no argument is passed to the call, the
	      break sequence is	assumed	to be a	blank, tab and eol characters.

	      extract -> Vector	(Character)
	      The extractmethod	extracts one or	more string which are enclosed
	      by a control character passed as an argument. The	method returns
	      a	vector of strings.

	      to-upper -> String (none)
	      The to-upperconverts all string characters to upper case and re-
	      turns a new string.

	      to-lower -> String (none)
	      The to-lowermethod converts all string characters	to lower  case
	      and returns a new	string.

	      get -> Character (Integer)
	      The  getmethod  returns  a  the string character at the position
	      given by the argument. If	the index is invalid, an exception  is
	      raised.

	      sub-left -> String (Integer)
	      The  sub-leftmethod  returns  the	left sub string	of the calling
	      string up-to the argument	index. If the index is out  of	range,
	      the string is returned.

	      sub-right	-> String (Integer)
	      The  sub-rightmethod returns the right sub string	of the calling
	      string starting at the argument index. If	the index  is  out  of
	      range, the string	is returned.

	      fill-left	-> String (Character Integer)
	      The fill-leftmethod returns a string filled on the left with the
	      character	argument. The second argument is the desired length of
	      the  resulting string. If	the calling is too long, the string is
	      returned.

	      fill-right -> String (Character Integer)
	      The fill-leftmethod returns a string filled on  the  right  with
	      the  character  argument.	 The  second  argument	is the desired
	      length of	the resulting string. If the calling is	too long,  the
	      string is	returned.

	      substr ->	String (Integer	Integer)
	      The substrmethod returns a string	starting at the	first argument
	      index and	ending at the second argument index.  If  the  indexes
	      are out of range,	an exception is	raised.

	      strcic ->	Boolean	(String)
	      The  strcicmethod	 compare  the calling string with the argument
	      string in	a case insensitive way.

       Regex
       The Regexobject is a special object which is automatically instantiated
       by the interpreter when using the delimiter character [and ]. The regex
       syntax involves the use of standard  characters,	 meta  characters  and
       control	characters. Additionally, a string can be use to specify a se-
       ries of characters. In its first	form, the [and ]characters are used as
       syntax  delimiters.  The	lexical	analyzer automatically recognizes this
       token as	a regex	and built the equivalent Regexobject. The second  form
       is  the	explicit  construction	of the Regexobject. Note also that the
       [and ]characters	are also used as regex block delimiters.  Any  charac-
       ter,  except  the  one  used  as	 operators can be used in a regex. The
       $character is used as a meta-character -- or control  character	--  to
       represent  a particular set of characters. For example, [hello world]is
       a regex which  match  only  the	"hello	world"string.  The  [$d+]regex
       matches	one  or	 more  digits.	The  following	control	characters are
       builtin in the regex engine.

       Character   Description
       $a	   matches any letter or digit
       $b	   matches any blank characters
       $c	   matches any combining characters
       $d	   matches any digit
       $e	   matches eol,	cr and eos
       $l	   matches any lower case letter
       $n	   matches eol or cr
       $s	   matches any letter
       $u	   matches any upper case letter
       $v	   matches any valid constituent
       $w	   matches any word constituent
       $x	   matches any hexadecimal characters

       The uppercase version is	the complement of the corresponding  lowercase
       character set. A	character which	follows	a $character and that is not a
       meta character is treated as a normal character.	For example  $[is  the
       [character.  A  quoted  string can be used to define character matching
       which could otherwise be	interpreted as control characters or operator.
       A quoted	string also interprets standard	escaped	sequences but not meta
       characters.

       Character   Description
       $A	   any character except	letter or digit
       $B	   any character except	blank characters
       $C	   any character except	combining characters
       $D	   any character except	digit
       $E	   any character except	eol, cr	and eos
       $L	   any character except	lower case letter
       $N	   any character except	eol or cr
       $S	   any character except	letter
       $U	   any character except	upper case letter
       $V	   any character except	constituent
       $W	   any character except	word constituent
       $X	   any character except	hex characters

       A character set is defined with	the  <and  >characters.	 Any  enclosed
       character  defines  a character set. Note that meta characters are also
       interpreted inside a character set. For example,	 <$d+->represents  any
       digit  or  a plus or minus. If the first	character is the ^character in
       the character set, the character	set is complemented  with  regards  to
       its  definition.	 The following unary operators can be used with	single
       character, control characters and sub-expressions.

       Operator	  Description
       *	  match	0 or more times
       +	  match	1 or more times
       ?	  match	0 or 1 time
       |	  alternation

       Alternation is an operator which	work with a secondary expression. Care
       should  be taken	when writing the right sub-expression. For example the
       following regex [$d|hello]is equivalent to [[$d|h]ello].	In other word,
       the minimal first sub-expression	is used	when compiling the regex.

       Predicate

	      regex-p

       Inheritance

	      Literal

       Constructors

	      Regex (none)
	      The  Regexconstructor  create a regex object those default value
	      is the null regex.

	      Regex (String)
	      The Regexconstructor create a regex object with the  string  ob-
	      ject argument. The string	argument is the	regex specification.

       Operators

	      == -> Boolean (String)
	      The  ==operator  returns	true if	the argument is	matched	by the
	      regex.

	      != -> Boolean (String)
	      The !=operator returns true if the argument is  not  matched  by
	      the regex.

	      <	-> Boolean (String)
	      The  <operator returns true if the argument is partially matched
	      by the regex.

       Methods

	      length ->	Integer	(none)
	      The lengthmethod returns the length of the group vector  when  a
	      regex match has been successful.

	      get -> String (Integer)
	      The getmethod returns by index the group sub-string when a regex
	      match has	been successful.

	      match -> String (String)
	      The matchmethod returns the first	matching string	of  the	 argu-
	      ment string.

	      replace -> String	(String	String)
	      The  replacemethod returns a string constructed by replacing all
	      matching sub-string -- from the first argument --	with the  sec-
	      ond argument string.

CONTAINER OBJECTS
       This  chapter  is  a  reference	of the reserved	container objects with
       their respective	builtin	methods. Some of these container  objects  are
       iterable	 objects.  When	an object is iterable, an iterator constructor
       constructor is provided.	The iterable-ppredicate	returns	 true  if  the
       container  is an	iterable object. The get-iteratormethod	can be used to
       construct an object iterator. For a given iterator, the predicates end-
       pand  valid-pcan	be used	to check for the end or	a valid	iterator posi-
       tion. The nextmethod move the iterator to its next position.  The  pre-
       vmethod	move  the iterator -- if possible -- to	its previous position.
       The get-objectmethod returns the	object at the current  iterator	 posi-
       tion.

       Cons
       A  Consinstance	or simply a cons cellis	a simple element used to build
       linked list. The	cons cell holds	an object and a	pointer	 to  the  next
       cons  cell. The cons cell object	is called carand the next cons cell is
       called the cdr.	Historically,  carmeans	 Current  Address  Registerand
       cdrmeans	Current	Data Register. This notation is	still present here for
       the sake	of tradition.

       Predicate

	      cons-p

       Inheritance

	      SerialIterable

       Constructors

	      Cons (none)
	      The Consconstructor create a default cons	cell with  the	carand
	      cdrset to	nil.

	      Cons (Objects...)
	      The  Consconstructor create a list of cons cells with the	object
	      arguments. Each argument object is assigned  to  the  carof  the
	      cons cell	while the cdris	used to	link the cell together.

       Methods

	      get-car -> Object	(none)
	      The get-carmethod	returns	the car	of the calling cons cell.

	      get-cdr -> Cons (none)
	      The get-cdrmethod	returns	the cdr	of the calling cons cell.

	      get-cadr -> Object (none)
	      The  get-cadrmethod  returns  the	 car of	the cdr	of the calling
	      cons cell	or nil if the cdr is nil.

	      get-caddr	-> Object (none)
	      The get-caddrmethod returns the car of the cdr of	the cdr	of the
	      calling cons cell	or nil if the cdr is nil.

	      get-cadddr -> Object (none)
	      The  get-cadddrmethod  returns  the car of the cdr of the	cdr of
	      the cdr of the calling cons cell or nil if the cdr is nil.

	      length ->	Integer	(none)
	      The lengthmethod returns the length of the cons cell. The	 mini-
	      mum length returned is always 1.

	      nil-p -> Boolean (none)
	      The  nil-ppredicate  returns true	if the car of the calling cons
	      cell is nil, false otherwise.

	      block-p -> Boolean (none)
	      The block-ppredicate returns true	if the cons cell  is  of  type
	      block, false otherwise.

	      get-iterator -> Iterator (none)
	      The  get-iteratorreturns	a forward iterator for this cons cell.
	      No backward methods are supported	for this object.

	      set-car -> Object	(Object)
	      The set-carset the car of	the calling cons cell. The object  ar-
	      gument is	returned by the	method.

	      set-cdr -> Cons (Cons)
	      The  set-cdrset  the cdr of the calling cons cell. The cons cell
	      argument is returned by the method.

	      add -> Object (Object)
	      The addmethod appends an object at the  end  of  the  cons  cell
	      chain  by	 creating a new	cons cell and linking it with the last
	      cdr. The object argument is returned by this method.

	      get -> Object (Integer)
	      The getmethod returns the	car of the cons	cell chain at  a  cer-
	      tain position specified by the integer index argument.

       Enum
       The  Enumbuiltin	 object	 is  an	enumeration object. The	enumeration is
       constructed with	the reserved keyword enumand a list of literals	or  by
       string name with	a constructor.

       Predicate

	      enum-p

       Inheritance

	      Object

       Constructors

	      Enum (none)
	      The Enumconstructor create an empty enumeration.

	      Enum (String...)
	      The  Enumconstructor create an enumeration from a	list of	string
	      arguments.

       Methods

	      reset -> none (none)
	      The resetmethod resets the enumeration and makes it empty.

	      length ->	Integer	(none)
	      The lengthmethod returns the number of items in the enumeration.

	      exists-p -> Boolean (String)
	      The exists-ppredicate returns true if the	name  argument	exists
	      as  an  item. The	name argument must be a	lexical	name or	an ex-
	      ception is thrown.

	      add -> none (String)
	      The addmethod adds a new item to the enumeration by  name.  This
	      method returns nil.

	      get -> String (Integer)
	      The  getmethod  returns  an item string representation by	index.
	      The integer argument is the item index.

       List
       The Listbuiltin object provides the facility of a double-link list. The
       Listobject  is  another example of iterable object. The Listobject pro-
       vides support for forward and backward iteration.

       Predicate

	      list-p

       Inheritance

	      Iterable

       Constructors

	      List (none)
	      The Listconstructor create an empty list.

	      List (Object...)
	      The Listconstructor create a list	from a list  of	 object	 argu-
	      ments.

       Methods

	      length ->	Integer	(none)
	      The  lengthmethod	 returns  the  length of the list. The minimum
	      length is	0 for an empty list.

	      get-iterator -> Iterator (none)
	      The get-iteratorreturns a	 forward/backward  iterator  for  this
	      list.

	      add -> Object (Object)
	      The  addmethod appends an	object at the end of the list. The ob-
	      ject argument is returned	by this	method.

	      insert ->	Object (Object)
	      The insertmethod inserts an object at the	beginning of the list.
	      The object argument is returned by this method.

	      get -> Object (Integer)
	      The  getmethod returns the object	in the list at a certain posi-
	      tion specified by	the integer index argument.

       Strvec
       The Strvecbuiltin object	provides the facility of  an  index  array  of
       strings.	 The  Strvecobject is serializable object that stores strings.
       The strings can be added	with  an  optional  preference	for  a	unique
       string value. The class is similar to the general purpose Vectorclass.

       Predicate

	      strvec-p

       Inheritance

	      Serial

       Constructors

	      Strvec (none)
	      The Strvecconstructor create an empty string vector.

	      Strvec (Integer|Boolean)
	      The  Strvecconstructor  create a string vector with a predefined
	      size or with a uniq flag.	In the first form, the preferred  vec-
	      tor size is given	as an argument.	In the second form, the	string
	      unicity flag is given as an argument.

	      Strvec (Integer Boolean)
	      The Strvecconstructor create a string vector with	 a  predefined
	      size and a uniq flag. The	first argument is the preferred	vector
	      size. The	second argument	is the string unicity flag.

       Methods

	      reset -> none (none)
	      The resetmethod resets the string	vector.	 When  the  method  is
	      complete,	the string vector is empty.

	      length ->	Integer	(none)
	      The  lengthmethod	 returns  the length of	the string vector. The
	      minimum length is	0 for an empty vector.

	      min-length -> Integer (none)
	      The min-lengthmethod returns the minimum string  length  of  the
	      string vector.

	      max-length -> Integer (none)
	      The  max-lengthmethod  returns  the maximum string length	of the
	      string vector.

	      empty-p -> Boolean (none)
	      The empty-ppredicate returns true	if the vector is empty.

	      active-p -> Boolean (none)
	      The active-ppredicate returns true if the	vector is  not	empty.
	      This predicate is	the negation of	the empty-ppredicate.

	      get -> String (Integer)
	      The  getmethod returns the string	in the vector at a certain po-
	      sition specified by the integer index argument.

	      set -> none (Integer String)
	      The setmethod set	a vector position with a string. The first ar-
	      gument is	the vector index. The second argument is the string to
	      set.

	      first -> String (none)
	      The firstmethod returns the first	string in the vector.

	      last -> String (none)
	      The lastmethod returns the last string in	the vector.

	      pop -> Object (none)
	      The popmethod removes the	first element in the string vector and
	      returns it.

	      pop-last -> String (none)
	      The pop-lastmethod removes the last element in the string	vector
	      and returns it.

	      find -> Integer (String)
	      The findmethod try to find a string in the vector. If the	string
	      is  found, the vector index is returned else the -1 value	is re-
	      turned.

	      lookup ->	Integer	(String)
	      The lookupmethod try to find a string  in	 the  vector.  If  the
	      string  is found,	the vector index is returned else an exception
	      is raised.

	      add -> none (String)
	      The addmethod adds an object at the end of the  vector.  If  the
	      uniq  flag is active, the	string argument	is not added if	it al-
	      ready exists.

	      exists-p -> Boolean (String)
	      The exists-pmethod returns true if the string argument exists in
	      the vector.

	      remove ->	none (Integer|String)
	      The  removemethod	 removes  a string from	the vector by index or
	      value. In	the first form,	the vector index is used as the	 place
	      to  remove. In the second	form, the string argument is used as a
	      key for removal. This method repacks the vector when the	string
	      has been removed.

	      set-unique -> none (Boolean)
	      The set-uniquemethod set the string vector unique	flag. When the
	      unique flag is set, there	is only	no  string  duplicate  in  the
	      vector.

	      get-unique -> Boolean
	      The  get-uniquemethod  returns  the  string  vector  unique flag
	      value.

	      concat ->	String (none | Character)
	      The concatmethod concatenates the	string vector elements with  a
	      character	separator. In the first	form, with a separator charac-
	      ter, the resulting string	is the	concatenation  of  the	string
	      vector elements. In the second form, the resulting string	is the
	      concatenation of the vector elements with	a character separator.
	      If the character separator is nilthen no separator is placed.

       Vector
       The Vectorbuiltin object	provides the facility of an index array	of ob-
       jects. The Vectorobject is another example of iterable object. The Vec-
       torobject provides support for forward and backward iteration.

       Predicate

	      vector-p

       Inheritance

	      SerialIterable

       Constructors

	      Vector (none)
	      The Vectorconstructor create an empty vector.

	      Vector (Object...)
	      The  Vectorconstructor create a vector from a list of object ar-
	      guments.

       Methods

	      reset -> none (none)
	      The resetmethod reset the	vector.	When the method	 is  complete,
	      the vector is empty.

	      length ->	Integer	(none)
	      The  lengthmethod	 returns the length of the vector. The minimum
	      length is	0 for an empty vector.

	      empty-p -> Boolean (none)
	      The empty-ppredicate returns true	if the vector is empty.

	      get -> Object (Integer)
	      The getmethod returns the	object in the vector at	a certain  po-
	      sition specified by the integer index argument.

	      set -> Object (Integer Object)
	      The  setmethod  set  a vector position with an object. The first
	      argument is the vector index. The	second argument	is the	object
	      to set. The method returns the object to set.

	      first -> Object (none)
	      The firstmethod returns the first	element	in the vector.

	      last -> Object (none)
	      The lastmethod returns the last element in the vector.

	      pop -> Object (none)
	      The  popmethod  removes  the first element in the	vector and re-
	      turns it.

	      pop-last -> Object (none)
	      The pop-lastmethod removes the last element in  the  vector  and
	      returns it.

	      find -> Integer (Object)
	      The  findmethod  try to find an object in	the vector. If the ob-
	      ject is found, the vector	index is returned as  an  Integer  ob-
	      ject, else nilp is returned.

	      add -> Object (Object|Integer Object)
	      The addmethod appends an object at the end of the	vector or at a
	      certain index. In	the first form,	the object argument  is	 added
	      at  the  end of the vector. In the second	form, the object argu-
	      ment is inserted in the vector at	the specified index.  In  both
	      cases, the object	argument is returned by	this method.

	      exists-p -> Boolean (Object)
	      The exists-pmethod returns true if the object argument exists in
	      the vector. This method is useful	to make	sure that only one oc-
	      currence of an object is added to	a vector.

	      clean -> none (Integer)
	      The  cleanmethod	removes	an object from the vector by index and
	      repack the vector.

	      remove ->	none (Object)
	      The removemethod removes an object from the  vector  and	repack
	      the  vector.  If	duplicate  exists in the file, only one	is re-
	      moved.

	      get-iterator -> Iterator (none)
	      The get-iteratorreturns a	 forward/backward  iterator  for  this
	      vector.

       HashTable
       The  HashTablebuiltin object is a container object which	maps an	object
       with a name. The	hash table is dynamic and  get	resized	 automatically
       when  needed.  The  lookup method throw an exception if the name	is not
       found. The get method returns nilp if the object	is not found. The  ta-
       ble can be configured to	operate	in a case insensitive way. If the case
       flag is changed,	the table is automatically reset.

       Predicate

	      hashtable-p

       Inheritance

	      Object

       Constructors

	      HashTable	(none)
	      The HashTableconstructor create an empty table.

	      HashTable	(Boolean)
	      The HashTableconstructor create  a  table	 by  case  insensitive
	      flag.

	      HashTable	(Integer)
	      The HashTableconstructor create a	table with a specific size.

	      HashTable	(Integer Boolean)
	      The  HashTableconstructor	create a table by size and case	insen-
	      sitive flag.

       Methods

	      reset -> none (none)
	      The resetmethod resets the table so that it becomes empty.

	      add -> none (String Object)
	      The addmethod adds a new object in the table by key.  The	 first
	      argument	is  the	key used to associate the object in the	table.
	      The second argument is the object	to add.

	      length ->	Object (none)
	      The lengthreturns	the number of objects in the table.

	      empty-p -> Boolean (none)
	      The empty-ppredicate returns true	if the table is	empty.

	      set-case-flag -> none (Boolean)
	      The set-case-flagmethod sets the case insensitive	flag. The  ta-
	      ble is automatically reset when is method	is called.

	      get-case-flag -> Boolean (none)
	      The get-case-flagmethod returns the case insensitive flag.

	      get -> Object (String)
	      The  getmethod  returns the object associated with a key.	If the
	      key is not found,	nil is returned.

	      lookup ->	Object (String)
	      The lookupmethod returns the object associated with  a  key.  If
	      the key is not found, an exception is raised.

	      get-key -> String	(Integer)
	      The  get-keymethod  returns  the key associated with an entry in
	      the table	by index. If the index is out of range,	 an  exception
	      is raised.

	      get-object -> Object (Integer)
	      The get-objectmethod returns the object associated with an entry
	      in the table by index. If	the index is out of range,  an	excep-
	      tion is raised.

       Set
       The  Setbuiltin	object	provides  the facility of a uniform set	of ob-
       jects. The Setobject is another example of iterable object. The	Setob-
       ject provides support for forward and backward iteration.

       Predicate

	      set-p

       Inheritance

	      SerialIterable

       Constructors

	      Set (none)
	      The Setconstructor create	an empty set.

	      Set (Object...)
	      The Setconstructor create	a set from a list of object arguments.

       Methods

	      reset -> none (none)
	      The  resetmethod reset the set. When the method is complete, the
	      set is empty.

	      length ->	Integer	(none)
	      The lengthmethod returns the number of elements in the set.  The
	      minimum length is	0 for an empty set.

	      add -> Object (Object)
	      The  addmethod  appends  an object in the	set. If	the object al-
	      ready exists in the set, it is not added twice. This is the main
	      difference  between  a  set and a	vector.	The object argument is
	      returned by this method.

	      get -> Object (Integer)
	      The getmethod return object by index.

	      empty-p -> Boolean (Object)
	      The empty-ppredicate returns true	if the set is empty.

	      exists-p -> Boolean (Object)
	      The existspredicate returns true if the object  argument	exists
	      in the set.

	      merge -> none (Set)
	      The mergemethod merges the set argument into the calling set. If
	      an element already exists	in the set, it is not added.

	      remix -> none (Integer)
	      The remixmethod mixes the	set by randomly	swapping all the  ele-
	      ments. This method is useful when	the set	has been filled	with a
	      certain order by the access must be done randomly.

	      remove ->	Boolean	(Object)
	      The removemethod removes the object argument from	 the  set.  if
	      the object is removed, the method	returns	true. If the object is
	      not in the set, the method returns false.

	      get-random-subset	-> Set (Integer)
	      The get-random-subsetmethod returns a subset those  cardinal  is
	      at  least	 the  size argument with a set of randomly chosen ele-
	      ments. The result	set might have a cardinal less	than  the  re-
	      quested  size  if	 the calling set cardinal is less than the re-
	      quested size.

	      get-iterator -> Iterator (none)
	      The get-iteratorreturns an iterator for this set.	 The  iterator
	      supports forward and backward iteration.

       Queue
       The  Queuebuiltin  object  is a container used to queue and dequeue ob-
       jects. The order	of entry in the	queue defines the order	of  exit  from
       the  queue.  The	queue is constructed either empty or with a set	of ob-
       jects.

       Predicate

	      queue-p

       Inheritance

	      Object

       Constructors

	      Queue (none)
	      The Queueconstructor create an empty queue.

	      Queue (Object...)
	      The Queueconstructor create a queue with a list of object	 argu-
	      ments

       Methods

	      enqueue -> Object	(Object)
	      The  enqueueadds	an  object in the queue	and returns the	queued
	      object.

	      dequeue -> Object	(none)
	      The dequeuedequeue an object in the order	it was queued.

	      length ->	Object (none)
	      The lengthreturns	the number of queued objects.

	      empty-p -> Boolean (none)
	      The empty-pmethod	returns	true if	the queue is empty.

	      flush -> none (none)
	      The flushmethod flushes the queue	so that	it is empty.

       Heap
       The Heapbuiltin object is an object based heap class that organizes ob-
       ject  with  respect  to	a  key.	The heap is organized as a binary tree
       those root element is either the	object with the	highest	or the	lowest
       key.  A flag controls whether the heap is operating in ascending	or de-
       scending	mode. By default, the heap operates in ascending  mode,	 which
       means that the root node	is the lowest one. The heap is self-resizable.
       The object insertion is also controlled by a minimum and	 maximum  key.
       if  the	key is below the minimum key or	above the maximum key, the ob-
       ject is not inserted.

       Predicate

	      heap-p

       Inheritance

	      Object

       Constructors

	      Heap (none)
	      The Heapconstructor create an empty heap.	By  default  the  heap
	      operates in ascending mode.

	      Heap (Integer)
	      The  Heapconstructor  create a heap with a specific size.	By de-
	      fault the	heap operates in ascending mode.

	      Heap (Boolean)
	      The Heapconstructor create a heap	with a specific	mode.  If  the
	      mode  is true, the heap operates in ascending order. If the mode
	      is false,	the heap operates in descending	 order.	 In  ascending
	      order, the first object is the object with the lowest key.

	      Heap (Integer Boolean)
	      The Heapconstructor create a heap	with a specific	size and mode.
	      The first	argument is the	heap size. The second argument is  the
	      heap  mode.  If the mode is true,	the heap operates in ascending
	      order. If	the mode is false, the heap operates in	descending or-
	      der. In ascending	order, the first object	is the object with the
	      lowest key.

       Methods

	      add -> none (Integer Object)
	      The addmethod adds a new object in the heap by  key.  The	 first
	      argument is the key used to set the object position in the heap.
	      The second argument is the object	to add.

	      pop -> Object (none)
	      The poppops the first available in the  heap.  If	 the  heap  is
	      empty, an	exception is raised.

	      length ->	Object (none)
	      The lengthreturns	the number of objects in the heap.

	      empty-p -> Boolean (none)
	      The empty-pmethod	returns	true if	the heap is empty.

	      reset -> none (none)
	      The resetmethod reset the	heap so	that it	becomes	empty.

	      get-key -> Integer (Integer)
	      The  get-keymethod  returns  the key associated with an entry in
	      the heap by index. If the	index is out of	range, an exception is
	      raised.

	      get-object -> Object (Integer)
	      The get-objectmethod returns the object associated with an entry
	      in the heap by index. If the index is out	of range, an exception
	      is raised.

	      get-mode -> Boolean (none)
	      The  get-modemethod returns the heap operating mode. If the mode
	      is true, the heap	operates in ascending order. If	 the  mode  is
	      false,  the  heap	operates in descending order. In ascending or-
	      der, the first object is the object with the lowest key.

	      min-key-p	-> Boolean (none)
	      The min-key-ppredicate returns true if a minimum	key  has  been
	      set.  The	 get-min-keymethod can be used to retrieve the minimum
	      key value.

	      max-key-p	-> Boolean (none)
	      The max-key-ppredicate returns true if a maximum	key  has  been
	      set.  The	 get-max-keymethod can be used to retrieve the maximum
	      key value.

	      reset-min-key -> none (none)
	      The reset-min-keymethod resets the minimum key flag and value.

	      reset-max-key -> none (none)
	      The reset-max-keymethod resets the maximum key flag and value.

	      set-min-key -> none (Integer)
	      The set-min-keymethod sets the minimum key value.

	      get-min-key -> Integer (none)
	      The get-min-keymethod returns the	minimum	key value.

	      set-max-key -> none (Integer)
	      The set-max-keymethod sets the maximum key value.

	      get-max-key -> Integer (none)
	      The get-max-keymethod returns the	maximum	key value.

	      resize ->	none (none)
	      The resizemethod resize the heap with a new size.	if the size is
	      lower than the number of elements, the procedure does nothing.

       Bitset
       The Bitsetbuiltin object	is a container for multi bit storage. The size
       of the bitset is	determined at construction. With the use of an	index,
       a particular bit	can be set, cleared and	tested.

       Predicate

	      bitset-p

       Inheritance

	      Object

       Constructors

	      Bitset (none)
	      The BitSetconstructor create an empty bitset.

	      Bitset (Integer)
	      The Bitsetconstructor create a bitset those size is given	by the
	      integer argument.

	      Bitset (String)
	      The Bitsetconstructor create a bitset by parsing the string  ar-
	      gument.  The string can be either	in the normal binary form with
	      or without the 0bprefix or in hexadecimal	form with  the	0xpre-
	      fix.

	      Bitset (Buffer Boolean)
	      The  Bitsetconstructor  create  a	 bitset	from a buffer content.
	      Each byte	in the buffer is to be placed in the bitset. The bool-
	      ean  argument  is	the ascending flag. When true the buffer bytes
	      are used in ascending index order, thus making the fist byte  in
	      the  buffer  to  be  used	as the first right byte	in the bitset.
	      When false, the buffer bytes are used in descending index	order,
	      thus  making the last byte in the	buffer to be used as the first
	      byte in the bitset.

       Methods

	      reset -> none (none)
	      The resetmethod reset the	bitset and force the initial  size  to
	      0.

	      marked-p -> Boolean (Integer)
	      The  marked-ppredicate returns true if the bit is	set at the in-
	      dex argument.

	      clear -> none (Integer)
	      The clearmethod clears a bit by the index	argument.

	      mark -> none (Integer)
	      The markmethod marks a bit by the	index argument.

	      mark -> none (Integer Boolean)
	      The markmethod set the bit value by the index argument with  the
	      boolean second argument.

	      add -> none (Integer Boolean)
	      The addmethod add	a bit in the bitset at the given position. The
	      first argument is	the bit	position and the  second  argument  is
	      the  bit	value. The add method is the only method that resize a
	      bitset.

	      set -> none (Integer|String)
	      The setmethod set	a bitset with an integer value.	In  the	 first
	      form with	an integer argument, the bitset	is completely reset to
	      a	64 bits	bitset and the value set as an	unsigned  integer.  In
	      the  second form with a string argument, the bitset is reset and
	      the string argument is parsed as a binary	string with or without
	      binary prefix or as a hexadecimal	string.

	      clamp -> none (Boolean)
	      The clampmethod clamp a bitset by	boolean	value. The bitset size
	      is determined by finding the upper  bit  index  that  match  the
	      boolean argument.

	      length ->	Integer	(none)
	      The lengthmethod returns the length of the bitset	in bits.

	      to-byte -> Integer (Byte)
	      The  to-bytemethod  maps	a portion of the bitset	to a byte at a
	      specific position. The integer argument is the bit position that
	      is mapped	to the byte lsb.

	      subset ->	Integer	(Bitset)
	      The subsetmethod returns a sub bitset by size.

	      subset ->	Integer	Integer	(Bitset)
	      The  subsetmethod	returns	a sub bitset by	size and position. The
	      first integer argument is	the sub	bitset size. The second	 argu-
	      ment is the bitset position where	the sub	bitset is extracted.

       Buffer
       The  Bufferbuiltin object is a byte buffer that is widely used with i/o
       operations. The buffer can be constructed with or without literal argu-
       ments.  The standard methods to add or push-back	byte or	characters are
       available. One attractive method	is the write method which can write  a
       complete	 buffer	 to  an	output stream specified	as an argument.	By de-
       fault, the buffer operates in resize mode. If the buffer	is  configured
       to  operate  in	non-resize mode, an exception is raised	when trying to
       add a character when the	buffer is full.

       Predicate

	      buffer-p

       Inheritance

	      Object

       Constructors

	      Buffer (none)
	      The Bufferconstructor create an empty buffer. The	buffer is con-
	      figured to operate in resize mode.

	      Buffer (Literal...)
	      The Bufferconstructor create a buffer with a list	of literal ob-
	      ject arguments. Each literal argument is used to produce a  byte
	      representation which is added into the buffer.

       Methods

	      add -> Integer (Byte|Literal|Buffer)
	      The  addmethod  adds a byte, a literal object or a buffer	to the
	      calling buffer. The object argument is  automatically  converted
	      to  a  sequence  of  bytes.  For a buffer, the entire content is
	      copied into the buffer. The method returns the number  of	 bytes
	      added into the buffer.

	      get -> Byte (none)
	      The  getmethod returns the next available	byte in	the buffer but
	      do not remove it.

	      read -> Byte (none)
	      The readmethod returns the next available	character  and	remove
	      it from the buffer.

	      reset -> none (none)
	      The  resetmethod	reset  the  entire buffer and destroy its con-
	      tents.

	      length ->	Integer	(none)
	      The lengthmethod returns the length of the buffer.

	      full-p ->	Boolean	(none)
	      The full-ppredicate return true if the buffer is	full.  If  the
	      buffer is	re-sizeable, the method	always return false.

	      empty-p -> Boolean (none)
	      The empty-ppredicate return true if the buffer is	empty.

	      resize-p -> Boolean (none)
	      The resize-ppredicate return true	if the buffer is re-sizeable.

	      to-string	-> String (none)
	      The  to-stringmethod returns a string representation of the buf-
	      fer.

	      format ->	String (none)
	      The formatmethod returns an octet	string representation  of  the
	      buffer.

	      pushback -> Integer (Byte|Literal|Buffer)
	      The  pushbackmethod push back a byte, a literal object or	a buf-
	      fer in the calling buffer. The object argument is	 automatically
	      converted	 to a sequence of bytes. For a buffer, the entire con-
	      tent is copied into the buffer. The method returns the number of
	      byte pushbacked.

	      get-host-word -> Integer (none)
	      The get-host-wordmethod reads a word from	the buffer and convert
	      it to an integer.	The word is assumed to be in network byte  or-
	      der and is converted into	the host byte order before becoming an
	      integer.

	      get-host-quad -> Integer (none)
	      The get-host-quadmethod reads a quad from	the buffer and convert
	      it  to an	integer. The quad is assumed to	be in network byte or-
	      der and is converted into	the host byte order before becoming an
	      integer.

	      get-host-octa -> Integer (none)
	      The  get-host-octamethod	reads an octa from the buffer and con-
	      vert it to an integer. The octa is assumed to be in network byte
	      order  and is converted into the host byte order before becoming
	      an integer.

	      set-resize -> none (Boolean)
	      The set-resizemethod set the resize flag for a  particular  buf-
	      fer. This	method can be used at any time.

	      shl -> none (Integer)
	      The shlmethod shift left the buffer by a certain number of char-
	      acters. The integer argument is  the  number  of	characters  to
	      shift.

       BlockBuffer
       The  BlockBufferbuiltin	object	is  a special buffer class designed to
       hold bytes in a bound or	unbound	way. In	the  bound  mode,  the	buffer
       size is know and	the buffer cannot be resized. In the unbound mode, the
       buffer size is unknown and the buffer can be  resized  as  needed.  The
       block buffer is designed	to be loaded by	various	means, including data,
       buffer or stream. Additionaly, the block	buffer can be  used  to	 write
       into another buffer or a	stream by block. By default the	read and write
       block size is the system	block size and the default mode	is  the	 bound
       mode, which can be changed by setting the buffer	resize flag.

       Predicate

	      block-buffer-p

       Inheritance

	      Buffer

       Constructors

	      BlockBuffer (none)
	      The  BlockBufferconstructor  create  a non-resizable empty block
	      buffer.

	      BlockBuffer (Integer)
	      The BlockBufferconstructor create	a non-resizable	block  buffer.
	      The integer argument is the block	buffer size.

       Methods

	      read-count -> Integer (none)
	      The  read-countmethod  returns  the number of characters read by
	      the buffer. The read counter is increased	during any read	opera-
	      tion that	might decrease the buffer length.

	      write-count -> Byte (none)
	      The  write-countmethod  returns  the number of characters	writen
	      into the buffer.

	      copy -> Integer (String|Buffer|InputStream|OutputStream)
	      The copymethod copies an object into or from the	block  buffer.
	      Inthe first form,	a string, a buffer or an input stream is isued
	      to fill the buffer. If the buffer	is resizable, the  whole  con-
	      tents  of	 the  objects are copied into the block	buffer.	If the
	      buffer is	not resizable, the copy	operation stops	when the  buf-
	      fer  is  full. The copy method consumes characters with a	buffer
	      or an input stream object. With an  output  stream  object,  the
	      block buffer characters are consumed while beeing	written	to the
	      output stream. The total number of characters copied is returned
	      by  this	method.	When using a multiple types object that	imple-
	      ments both the input and output stream model,  the  priority  is
	      given to the input stream	type.

	      copy-input-stream	-> Integer (InputStream)
	      The  copy-input-streammethod  copies  an	input  stream into the
	      block buffer. This method	is similar to  the  copymethod	except
	      that  it operates	only with an input stream. Such	method is use-
	      full when	using object that implements multiple stream types.

	      copy-output-stream -> Integer (OutputStream)
	      The copy-output-streammethod copies an output  stream  into  the
	      block  buffer.  This  method is similar to the copymethod	except
	      that it operates only with an output stream. Such	method is use-
	      full when	using object that implements multiple stream types.

       Property
       The  Propertybuiltin  object is container for a name/value pair.	Gener-
       ally, the property object is used within	a property list.  An  optional
       information field can be	inserted into the property.

       Predicate

	      property-p

       Inheritance

	      Serial

       Constructors

	      Property (none)
	      The Propertyconstructor create an	empty property.

	      Property (String)
	      The Propertyconstructor create a property	by name. The first ar-
	      gument is	the property name.

	      Property (String Literal)
	      The Propertyconstructor create a property	by name	and value. The
	      first  argument is the property name. The	second argument	is the
	      property value.

	      Property (String String Literal)
	      The Propertyconstructor create a	property  by  name,  info  and
	      value. The first argument	is the property	name. The second argu-
	      ment is the property info. The third argument  is	 the  property
	      value.

       Methods

	      set -> none (String Literal)
	      The  setmethod sets the property name and	value. The first argu-
	      ment is the property name. The second argument is	 the  property
	      value,  which  is	 a literal converted to	its string representa-
	      tion.

	      set-name -> none (String)
	      The set-namemethod sets the property name.

	      get-name -> String (none)
	      The get-namemethod returns the property name.

	      set-info -> none (String)
	      The set-infomethod sets the property information.

	      get-info -> String (none)
	      The get-infomethod returns the property information.

	      set-value	-> none	(Literal)
	      The set-valuemethod sets the property value. The	literal	 argu-
	      ment is converted	to its string representation.

	      get-value	-> String (none)
	      The get-valuemethod returns the property string value.

	      get-boolean-value	-> Boolean (none)
	      The get-boolean-valuemethod returns the property boolean value.

	      get-integer-value	-> Integer (none)
	      The get-integer-valuemethod returns the property integer value.

	      get-real-value ->	Real (none)
	      The get-real-valuemethod returns the property real value.

       Plist
       The  Plistbuiltin object	is a base container class used to manage prop-
       erty objects in an ordered way. The property list operates by maintain-
       ing a vector of property	object along with a hash table that permits to
       find the	object quickly.

       Predicate

	      plist-p

       Inheritance

	      SerialIterableNameable

       Constructors

	      Plist (none)
	      The Plistconstructor create an empty property list.

	      Plist (Boolean)
	      The Plistconstructor create a property list with a case flag.

	      Plist (String)
	      The Plistconstructor create a property list by name.

	      Plist (String String)
	      The Plistconstructor create a property list by name and info.

       Methods

	      set-name -> none (String)
	      The set-namemethod sets the property list	name.

	      set-info -> none (String)
	      The set-infomethod sets the property list	info.

	      get-info -> String (none)
	      The get-infomethod returns the property list info.

	      add -> none (Property | String Literal | String String Literal)
	      The addmethod add	a property by object or	name and value in  the
	      property	list.  In  its first form the object is	a property ob-
	      ject. In the second form,	the first  argument  is	 the  property
	      name  and	 the second argument is	the property value. In the the
	      third form the first argument is the property name,  the	second
	      argument is the property info and	the this argument is the prop-
	      erty value. if the  property  already  exists  an	 exception  is
	      raised.

	      set -> none (Property | String Literal | String String Literal)
	      The  setmethod  add  or  sets the	property by object or name and
	      value in the property list. In the first form, the  argument  is
	      the  property  itself. In	the second form, the first argument is
	      the property name	and the	second argument	is the property	value.
	      In  the third form, the property is set by name, info and	value.
	      If the property already exists, the property value is changed.

	      get -> Property (Integer)
	      The getmethod returns a property by index.

	      reset -> none (none)
	      The resetmethod resets the property lists

	      empty-p -> Boolean (none)
	      The emptyp-predicate returns true	if the property	list is	empty.

	      length ->	Integer	(none)
	      The lengthmethod returns the number of properties	in  the	 prop-
	      erty list.

	      exists-p -> Boolean (String)
	      The exists-pmethod returns true if a property exists. The	string
	      argument is the property name.

	      find -> Property (String)
	      The findmethod finds a property by name. The string argument  is
	      the  property  name. If the property does	not exists, nil	is re-
	      turned.

	      lookup ->	Property (String)
	      The lookupmethod finds a property	by name. The  string  argument
	      is the property name. If the property does not exists, an	excep-
	      tion is raised.

	      get-value	-> String (String)
	      The get-valuemethod returns the property value. The string argu-
	      ment  is	the  property name. If the property does not exist, an
	      exception	is raised.

	      to-print-table ->	PrintTable (none | Boolean | Boolean Boolean)
	      The to-print-tablemethod converts	the property list into a print
	      table.  The  print  table	can be formated	with the property info
	      and value. In the	first form, the	print table is formated	 with-
	      out  the	info  field  in	 normal	value. In the second form, the
	      boolean flag controls whther or not the info field is  added  in
	      the  table. In the third form, the second	boolean	value controls
	      whther or	not the	real property value are	 converted  in	scien-
	      tific notation.

SPECIAL	OBJECTS
       This  chapter is	a reference of the reserved special objects with their
       respective built-in methods. Special objects are	 those	objects	 which
       interact	with the interpreter.

       Object
       The  base object	Objectprovides several methods which are common	to all
       objects.

       Methods

	      repr -> String (none)
	      The reprmethod returns the object	name in	the form of a  string.
	      The result string	is called the representation string.

	      rdlock ->	none (none)
	      The rdlockmethod try to acquire the object in read-lock mode. If
	      the object is currently locked in	write mode by another  thread,
	      the calling thread is suspended until the	lock is	released.

	      wrlock ->	none (none)
	      The  wrlockmethod	 try to	acquire	the object in write-lock mode.
	      If the object is currently locked	by another thread, the calling
	      thread is	suspended until	the lock is released.

	      unlock ->	none (none)
	      The  unlockmethod	try to unlock an object. An object will	be un-
	      locked if	and only if the	calling	thread is the one who acquired
	      the lock.

	      clone -> Object (none)
	      The  clonemethod	returns	 a clone of the	calling	object.	If the
	      object cannot be cloned, an exception is raised.

       Interp
       The Interpis the	interpreter object which is automatically bounded  for
       each  executable	 program. There	is no constructor for this object. The
       current interpreter is bounded to the interpreserved symbol.

       Predicate

	      interp-p

       Inheritance

	      Runnable

       Constants

	      argv
	      The argvdata member holds	the interpreter	argument  vector.  The
	      vector  is initialized when the interpreter is created. Each ar-
	      gument is	stored as a string object.

	      os-name
	      The os-namedata member holds the operating system	name. The data
	      member evaluates as a string.

	      os-type
	      The os-typedata member holds the operating system	type. The data
	      member evaluates as a string.

	      version
	      The versiondata member holds the full engine version.  The  data
	      member evaluates as a string.

	      program-name
	      The  program-namedata member holds the interpreter program name.
	      The data member evaluates	as a string.

	      major-version
	      The major-versiondata member holds the interpreter  major	 revi-
	      sion number. The data member evaluates as	an integer.

	      minor-version
	      The  minor-versiondata  member holds the interpreter minor revi-
	      sion number. The data member evaluates as	an integer.

	      patch-version
	      The patch-versiondata member holds the interpreter  patch	 revi-
	      sion number. The data member evaluates as	an integer.

	      afnix-uri
	      The afnix-uridata	member holds the official uri. The data	member
	      evaluates	as a string.

	      machine-size
	      The machine-sizedata member holds	the interpreter	 machine  size
	      expressed	 in bits. Most of the time, the	machine	size is	either
	      32 or 64 bits. If	something else is returned, it	certainly  re-
	      flects an	exotic platform.

	      loader
	      The  loaderdata member holds the interpreter library loader. Un-
	      der normal circumstances,	the library loader should not be  used
	      and the standard interp:libraryform should be used.

	      resolver
	      The  resolverdata	member holds the interpreter resolver. The re-
	      solver can be used to add	dynamically a librarian	or a directory
	      to the interpreter module	resolver.

       Methods

	      load -> Boolean (String)
	      The  loadmethod  opens  a	file those name	is the method argument
	      and executes each	form in	the file by doing  a  read-eval	 loop.
	      When  all	 forms	have been executed, the	file is	closed and the
	      method returns true. In case of exception, the  file  is	closed
	      and the method returns false.

	      library -> Library (String)
	      The  librarymethod opens a shared	library	and a returns a	shared
	      library object.

	      launch ->	Thread (form|thread form)
	      The launchmethod executes	the form argument in a normal  thread.
	      The normal thread	is created by cloning the current interpreter.
	      In the first form, a thread object is created by the method  and
	      return  when  the	thread as been launched. In the	second form, a
	      thread is	started	by binding a form to the thread	object.

	      daemon ->	Boolean	(none)
	      The dameonmethod put the running interpreter in dameon  mode.  A
	      new  detached processed is spawned with the interpreter attached
	      to it. The boolean result	indicates whether or not the operation
	      was successful.

	      set-epsilon -> none (Real)
	      The  set-epsilonmethod sets the interpreter epsilon which	corre-
	      sponds to	the real precision. The	real precisionis used  by  the
	      ?=operator to compare real values.

	      get-epsilon -> Real (none)
	      The  get-real  precisionmethod  returns  the interpreter epsilon
	      which correspond to the  real  precision.	 The  real-precisionis
	      used by the ?=operator to	compare	real values.

	      dup -> Interp (none|Terminal)
	      The  dupmethod  returns  a  clone	 of the	current	interpreter by
	      binding the terminal steam argument.  Without  argument,	a  new
	      terminal	object is automatically	created	and bound to the newly
	      created interpreter.

	      loop -> Boolean (none)
	      The loopmethod executes the interpreter main loop	by reading the
	      interpreter  input stream. The loop is finished when the end-of-
	      stream is	reached	with the input stream. The  method  returns  a
	      boolean flag to indicate whether or not the loop was successful.

	      set-primary-prompt -> none (String)
	      The  set-primary-promptmethod sets the interpreter terminal pri-
	      mary prompt which	is used	during the interpreter main loop.

	      set-secondary-prompt -> none (String)
	      The set-secondary-promptmethod  sets  the	 interpreter  terminal
	      secondary	prompt which is	used during the	interpreter main loop.

	      get-primary-prompt -> String (none)
	      The  get-primary-promptmethod  returns  the interpreter terminal
	      primary prompt.

	      get-secondary-prompt -> String (none)
	      The get-secondary-promptmethod returns the interpreter  terminal
	      secondary	prompt.

	      read-line	-> String (none|Boolean)
	      The  read-linemethod reads a line	from the interpreter terminal.
	      If no terminal is	bound to the interpreter, the empty string  is
	      returned.	 In  the first form, a line is read after printing the
	      primary prompt. In the second form, a boolean flag controls  the
	      prompt disply, which can be primary or secondary.

	      read-passphrase -> String	(none|String)
	      The  read-passphrasemethod  reads	 a pass-phrase from the	inter-
	      preter terminal. If no terminal is bound to the interpreter, the
	      empty  string is returned. With a	string argument, the string is
	      displayed	as a prompt, before reading the	passphrase.

       Thread
       The Threadobject	is a special object which acts as a thread descriptor.
       Such object is created with the launchreserved keyword.

       Predicate

	      thread-p

       Inheritance

	      Object

       Constructors

	      Thread (none)
	      The Threadconstructor create a default thread object without any
	      form bound to it.	The object can be later	used with the  launch-
	      command.

       Methods

	      end-p -> none (none)
	      The  end-ppredicate returns true if the thread argument has fin-
	      ished. This predicate indicates that  the	 thread	 result	 is  a
	      valid one.

	      wait -> none (none)
	      The  waitmethod suspends the calling thread until	the thread ar-
	      gument as	completed. The waitmethod is the primary mechanism  to
	      detect a thread completion.

	      result ->	Object (none)
	      The resultmethod returns the thread result. If the thread	is not
	      completed, the nilvalue is returned. However, this method	should
	      not  be  used  to	 check if a thread has completed and the wait-
	      method must be used because a thread result might	be nil.

       Condvar
       The condition variable Condvarobject is a special object	which provides
       a  mean	of synchronization between one and several threads. The	condi-
       tion is said to be false	unless it has been marked. When	a condition is
       marked, all threads waiting for that condition to become	true are noti-
       fied and	one thread is activated	with that condition.

       Predicate

	      condvar-p

       Inheritance

	      Object

       Constructors

	      Condvar (none)
	      The Condvarconstructor creates a default condition variable.

       Methods

	      lock -> none (none)
	      The lockmethod locks the condition variable mutex. If the	 mutex
	      is  already  locked,  the	 calling thread	is suspended until the
	      lock is released.	When the method	returns,  the  resumed	thread
	      owns  the	condition variable lock. It is the thread responsibil-
	      ity to reset the condition variable and unlock it.

	      mark -> none (none)
	      The markmethod marks the condition variable and notify all pend-
	      ing threads of such change. The mark method is the basic notifi-
	      cation mechanism.

	      wait -> none (none)
	      The waitmethod waits for a condition variable to be marked. When
	      such  condition  occurs,	the  suspended thread is run. When the
	      method returns, the resumed thread owns the  condition  variable
	      lock.  It	 is  the  thread responsibility	to reset the condition
	      variable and unlock it.

	      reset -> none (none)
	      The resetmethod acquires the condition variable mutex, reset the
	      mark,  and  unlock  it.  If the lock has been taken, the calling
	      thread is	suspended.

	      unlock ->	none (none)
	      The unlockmethod	unlock	the  condition	variable  mutex.  This
	      method should be used after a call to lockor wait.

	      wait-unlock -> none (none)
	      The wait-unlockmethod wait until a condition variable is marked.
	      When such	condition occurs, the suspended	thread is run.	Before
	      the  method returns, the condition variable is reset and the mu-
	      tex unlocked. With two threads to	synchronize, this is the  pre-
	      ferred method compared to	wait.

       Lexical
       The  Lexicalobject  is  a special object	built by the reader. A lexical
       name is also a literal object. Although the best	way to create a	 lexi-
       cal  name  is  with  a form, the	lexical	object can also	be constructed
       with a string name. A lexical name can be mapped	to a symbol  by	 using
       the mapmethod.

       Predicate

	      lexical-p

       Inheritance

	      Literal

       Constructors

	      Lexical (none)
	      The  Lexicalconstructor  create  an  empty  lexical object which
	      evaluates	to nil.

	      Lexical (String)
	      The Lexicalconstructor create a lexical object using the	string
	      argument as the lexical name.

       Methods

	      map -> Object (none)
	      The  mapmethod  returns the object that is mapped	by the lexical
	      name. Most of the	time, a	symbol object is returned since	it  is
	      the  kind	 of object stored in a nameset.	Eventually the mapping
	      might returns an argument	object if used inside a	closure.

       Qualified
       The Qualifiedobject is a	special	object built by	the reader.  A	quali-
       fied  object  is	 similar to a lexical object. It is also a literal ob-
       ject. Like a lexical name, a qualified name can be created with a  form
       or  by  direct  construction with a name. Like a	lexical	name, the map-
       method can be used to retrieve the symbol associated with that name.

       Predicate

	      qualified-p

       Inheritance

	      Literal

       Constructors

	      Qualified	(none)
	      The Qualifedconstructor create an	empty  qualified  name	object
	      which evaluates to nil.

	      Qualified	(String)
	      The  Qualifiedconstructor	 create	 a qualified name object using
	      the string argument as the qualified name. The name is parse for
	      qualified	name syntax adherence.

       Methods

	      map -> Object (none)
	      The mapmethod returns the	object that is mapped by the qualified
	      name. Most of the	time, a	symbol object is returned since	it  is
	      the  kind	 of object stored in a nameset.	Eventually the mapping
	      might returns an argument	object if used inside a	closure.

       Symbol
       The Symbolobject	is a special object used by nameset to map a name with
       an object. Generally a symbol is	obtained by mapping a lexical or qual-
       ified name. As an object, the symbol holds a name, an object and	a con-
       stant  flag. The	symbol name cannot be changed since it might introduce
       inconsistencies in the containing nameset. On the other hand, the  con-
       stant  flagand the object can be	changed. A symbol is a literal object.
       A symbol	that is	not bounded to a nameset can  be  constructed  dynami-
       cally. Such symbol is said to be	not interned.

       Predicate

	      symbol-p

       Inheritance

	      Literal

       Constructors

	      Symbol (String)
	      The  Symbolconstructor  create  a	symbol by name.	The associated
	      object is	marked as nil.

	      Symbol (String Object)
	      The Symbolconstructor create a symbol by name and	bind  the  ob-
	      ject argument to the symbol.

       Methods

	      get-const	-> Boolean (none)
	      The  get-constmethod  returns the	symbol const flag. If the flag
	      is true, the symbol object cannot	be changed unless  that	 flags
	      is reset with the	set-constmethod.

	      set-const	-> none	(Boolean)
	      The  set-constmethod  set	 the symbol const flag.	This method is
	      useful to	mark a symbol as const or to make a const symbol muta-
	      ble.

	      get-object -> Object (none)
	      The get-objectmethod returns the symbol object.

	      set-object -> none (Object)
	      The  set-objectmethod  set  the symbol object. The object	can be
	      obtained by evaluating the symbol.

       Closure
       The Closureobject is a special object that represents a lambda or gamma
       expression.  A  closure	is represented by a set	of arguments, a	set of
       closed variables	and a form to execute. A boolean flag  determines  the
       type of closure.	The closure predicate lambda-preturns true if the clo-
       sure is a lambda	expression. Closed variables can be defines and	evalu-
       ated  with the use of the qualified name	mechanism. Closure mutation is
       achieved	with the add-argumentand set-formmethod. An empty closure  can
       be defined at construction as well.

       Predicate

	      closure-p

       Inheritance

	      Object

       Constructors

	      Closure (none)
	      The  Closureconstructor  create a	default	closure. When the clo-
	      sure is created, a local set of arguments	and  closed  variables
	      is  generated.  Note that	such local set is dynamic. There is no
	      restriction to reconfigure a particular lambda at	run-time.  The
	      difference  between  a  lambda and a gamma expression resides in
	      the nameset binding when the closure is called. With  a  lambda,
	      the  closure nameset parent is the calling nameset. With a gamma
	      expression, the parent nameset is	always	the  top-level	inter-
	      preter  nameset. Note also, that the symbol selfis automatically
	      bounded for this closure.

	      Closure (Boolean)
	      The Closureconstructor create a closure which acts as lambda ex-
	      pression	if  the	boolean	argument is true. If the boolean argu-
	      ment is false, the closure will behave like a gamma expression.

       Methods

	      gamma-p -> Boolean (none)
	      The gamma-ppredicate returns true	if the closure is a gamma  ex-
	      pression.	The predicate returns true for a lambda	expression.

	      lambda-p -> Boolean (none)
	      The  lambda-ppredicate  returns  true if the closure is a	lambda
	      expression. The predicate	returns	false for a gamma expression.

	      get-form -> Object (none)
	      The get-formmethod returns the closure form object.

	      set-form -> none (Object)
	      The set-formmethod sets the closure form object.

	      add-argument -> none (String|Lexical|form)
	      The add-argumentmethod adds an argument to the closure. The  ar-
	      gument object can	be either a string, a lexical object of	a sim-
	      ple form that defines a constant lexical name.

       Librarian
       The Librarianobject is a	special	object that read or write a librarian.
       Without	argument, a librarian is created for writing purpose. With one
       file name argument, the librarian is created for	reading.

       Predicate

	      librarian-p

       Inheritance

	      Nameable

       Constructors

	      Librarian	(none)
	      The Librarianconstructor creates a librarian for	writing.  Ini-
	      tially,  the librarian is	empty and files	must be	added with the
	      addmethod.

	      Librarian	(String)
	      The Librarianconstructor creates a librarian for	reading	 using
	      the name as the librarian	file name.

       Methods

	      add -> none (String)
	      The addmethod adds a file	into the librarian. The	librarian must
	      have been	opened in write	mode.

	      write -> none (String)
	      The writemethod writes a librarian to a file those name  is  the
	      argument.

	      length ->	Integer	(none)
	      The  lengthmethod	 returns  the number of	file in	the librarian.
	      This method work,	no matter how the librarian has	been opened.

	      exists-p -> Boolean (String)
	      The exists-ppredicate returns true if the	file  argument	exists
	      in the librarian.

	      extract -> InputMapped (String)
	      The  extractmethod  returns  an  input stream mapped to the file
	      name argument.

       Resolver
       The Resolverobject is a special object that gives the ability to	open a
       file  based  on	a file path resolver. The resolver maintains a list of
       valid path and returns an input stream for a file on demand.

       Predicate

	      resolver-p

       Inheritance

	      Object

       Constructors

	      Resolver (none)
	      The Resolverconstructor creates a	default	 resolver.  Once  cre-
	      ated, the	addmethod can be used to add path to the resolver.

       Methods

	      add -> none (String)
	      The addmethod adds a path	into the resolver. The path can	points
	      either to	a directory or a librarian.

	      lookup ->	InputStream (String)
	      The lookupmethod resolves	the file name argument and returns  an
	      input stream for that file.

	      to-string	-> String (String)
	      The  to-stringmethod resolves the	file name argument and returns
	      a	string respresentation for that	file.

	      valid-p -> Boolean (String)
	      The valid-ppredicate returns true	if the file name argument  can
	      be  resolved. If the file	name can be resolved, the lookupmethod
	      can be called to get an input stream.

       PrintTable
       The PrintTable class is a formatting class for  tables.	The  table  is
       constructed  with  the number of	columns	-- default to 1	-- and eventu-
       ally the	number of rows.	Once the table is created, element  are	 added
       to the table with the addmethod.	Specific table element can be set with
       the setmethod. The class	provide	a formatmethod	those  default	is  to
       print  the  table  on  the  interpreter standard	output.	With an	output
       stream argument or a buffer, the	table is formatted to  these  objects.
       The table formatting includes an	optional column	width, a filling char-
       acter and a filling direction flag. By default, the column width	is  0.
       This  means  that the column width is computed as the maximum length of
       all column elements. If the column width	is set	with  the  set-column-
       sizemethod,  the	string element might be	truncated to the left or right
       -- depending on the filling flag	-- to fit the column width. Each table
       element	can also be associated with a tag. The tag-pmethod can be used
       to test for the presence	of a tag, while	the set-tagand	get-tagmethods
       can be used to set or get the tag by row	and column coordinates.

       Predicate

	      print-table-p

       Inheritance

	      Object

       Constructors

	      PrintTable (none)
	      The  PrintTableconstructor creates a default table with one col-
	      umn.

	      PrintTable (Integer)
	      The PrintTableconstructor	creates	a  table  with	a  pre-defined
	      number of	columns	specified in the constructor argument.

	      PrintTable (Integer Integer)
	      The  PrintTableconstructor  creates  a  table with a pre-defined
	      number of	columns	and rows specified in  the  constructor	 argu-
	      ments.

       Methods

	      head-p ->	Boolean	(none)
	      The head-ppredicate returns true if the table header is defined.

	      add-head -> none ([String+])
	      The add-headmethod add to	the table header the string arguments.
	      The number of arguments must be equal to the number of columns.

	      get-head -> String (Integer)
	      The get-headmethod returns a table header	element	by column  in-
	      dex. The integer argument	is the header row index.

	      set-head -> none (Integer	String)
	      The  set-headmethod sets a table header element by column	index.
	      The first	argument is the	header column index and	the second  is
	      the header string	value to set.

	      add -> Integer (none|[Literal...])
	      The  addmethod  serves several purposes. Without argument, a new
	      row is added and the row index is	returned. The row index	can be
	      later used with the setmethod to set a particular	table element.
	      With one or several literal arguments, those length  must	 match
	      the  number of columns, a	new row	is created and those arguments
	      added to the table. The row number is also returned.

	      get -> String (Integer Integer)
	      The getmethod returns a particular table element by row and col-
	      umn. The first argument is the table row index and the second is
	      the table	column index.

	      set -> none (Integer Integer Literal)
	      The setmethod sets a particular table element by row and column.
	      The  first argument is the table row index and the second	is the
	      table column index. The last argument is a literal  object  that
	      is converted to a	string prior its insertion.

	      tag-p -> Boolean (Integer	Integer)
	      The tag-ppredicate returns true if a tag is present at a partic-
	      ular table element. The first argument is	the  table  row	 index
	      and the second is	the table column index.

	      set-tag -> none (Integer Integer String)
	      The set-tagmethod	sets a particular table	tag by row and column.
	      The first	argument is the	table row index	and the	second is  the
	      table column index. The last argument is the tag value.

	      get-tag -> String	(Integer Integer)
	      The get-tagmethod	returns	a particular table tag by row and col-
	      umn. The first argument is the table row index and the second is
	      the table	column index.

	      dump -> none|String (none|Integer|OutputStream|Buffer)
	      The  dumpmethod dumps the	table to an output stream or a buffer.
	      Without argument,	the default interpreter	output stream is used.
	      With an integer argument,	the specified row is used and a	string
	      is returned. With	a buffer or an output stream, the whole	 table
	      is written and nothing is	returned.

	      format ->	none|String (none|Integer|OutputStream|Buffer)
	      The  formatmethod	writes the formatted table to an output	stream
	      or a buffer. Without argument, the  default  interpreter	output
	      stream  is  used.	With an	integer	argument, the specified	row is
	      used and a string	is  returned.  With  a	buffer	or  an	output
	      stream, the whole	table is written and nothing is	returned.

	      get-rows -> Integer (none)
	      The get-rowsmethod returns the number of rows in the table.

	      add-columns -> Integer (none)
	      The  add-columnsmethod  adds 1 or	more columns at	the end	of the
	      table.

	      get-columns -> Integer (none)
	      The get-columnsmethod returns the	number of columns in  the  ta-
	      ble.

	      set-column-size -> none (Integer Integer)
	      The  set-column-sizemethod sets the desired width	for a particu-
	      lar column. The first argument is	the column index and the  sec-
	      ond argument is the column width.If 0 is given, the column width
	      is computed as the maximum of the	column elements.

	      get-column-size -> Integer (Integer)
	      The get-column-sizemethod	returns	the desired width for  a  par-
	      ticular column.

	      set-column-fill -> none (Integer Character)
	      The  set-column-fillmethod sets the filling character for	a par-
	      ticular column. The first	argument is the	column index  and  the
	      second  argument is a character to use when filling a particular
	      column element. The default filling character is the blank char-
	      acter.

	      get-column-fill -> Character (Integer)
	      The  get-column-fillmethod  returns  the filling character for a
	      particular column.

	      set-column-direction -> none (Integer Boolean)
	      The set-column-directionmethod sets the  direction  flag	for  a
	      particular  column.  The	first argument is the column index and
	      the second argument is a boolean.	 A  false  value  indicates  a
	      filling  by  the	left while a true value	indicates a filling by
	      the right. The column filling character is used for this	opera-
	      tion.

	      get-column-direction -> Boolean (Integer)
	      The  get-column-directionmethod returns the direction flag for a
	      particular column.

       Logger
       The Looger class	is a message logger that stores	messages in  a	buffer
       with a level. The default level is the level 0. A negative level	gener-
       ally indicates a	warning	or an error message but	this is	just a conven-
       tion  which  is not enforced by the class. A high level generally indi-
       cates a less important message. The messages are	stored in  a  circular
       buffer.	When the logger	is full, a new message replace the oldest one.
       By default, the logger is initialized with a 256	messages capacity that
       can be resized.

       Predicate

	      logger-p

       Inheritance

	      Object

       Constructors

	      Logger (none)
	      The Loggerconstructor creates a default logger.

	      Logger (Integer)
	      The  Loggerconstructor  creates  a  logger  with a specific size
	      specified	as the constructor argument.

	      Logger (String)
	      The Loggerconstructor creates a logger with an information argu-
	      ment.  The information string is later used to format the	logged
	      messages.

	      Logger (Integer String)
	      The Loggerconstructor creates a logger with a specific size  and
	      an  information argument.	The first argument is the logger size.
	      The second argument is the information string.  The  information
	      string is	later used to format the logged	messages.

       Methods

	      add -> none (String|String Integer)
	      The  addmethod  adds a message in	the logger. With one argument,
	      the method take a	single string message. with two	arguments, the
	      first  arguments	is  the	message	and the	second argument	is the
	      message level.

	      reset -> none (none)
	      The resetmethod reset the	logger class by	removing all messages.

	      length ->	Integer	(none)
	      The lengthmethod returns the number of messages  stored  in  the
	      logger object.

	      resize ->	none (Integer)
	      The  resizemethod	resize the logger class	by increasing the size
	      of the message buffer. The old messages are kept during the  re-
	      sizing operation.

	      set-info -> none (String)
	      The  set-infomethod  sets	the logger information string. The in-
	      formation	string is used by the derived classes when  a  message
	      is printed.

	      get-info -> String (none)
	      The  get-infomethod  returns  the	logger information string. The
	      information string is used by the	derived	classes	when a message
	      is printed.

	      set-default-level	-> none	(Integer)
	      The set-default-levelmethod sets the default level use for stor-
	      ing message. This	parameter is used with the addmethod  in  con-
	      junction	with  the  message argument. When the message level is
	      specified, the default message level is ignored.

	      get-default-level	-> Integer (none)
	      The get-default-levelmethod returns the  default	message	 level
	      used by the logger. The default message level is used by the ad-
	      dmethod when the message level is	not specified directly.

	      get-message -> String (Integer)
	      The get-messagemethod returns a logger message by	index. The in-
	      teger argument is	the message index.

	      get-full-message -> String (Integer)
	      The get-full-messagemethod returns a fully formatted logger mes-
	      sage by index. The integer argument is the  message  index.  The
	      message includes the time	and contents.

	      get-message-time -> Integer (Integer)
	      The  get-message-timemethod  returns  the	logger message time by
	      index. The integer argument is the message index.

	      get-message-level	-> Integer (Integer)
	      The get-message-levelmethod returns the logger message level  by
	      index. The integer argument is the message index.

	      set-output-stream	-> none	(OutputStream|String)
	      The  set-output-streammethod  set	 the logger output stream. The
	      output stream can	be either an output stream or an  output  file
	      name.

       Counter
       The  Counter class is a mechanism designed to count integer both	upward
       or downward. The	counter	is initialized with a  start  and  end	value.
       With a single value, the	start value is set to 0	and the	counter	direc-
       tion determined by the end value. The counter object is also a  literal
       object, meaning that it can be directly printed.	The object is also de-
       signed to be used directly in a loop.

       Predicate

	      counter-p

       Inheritance

	      Literal

       Constructors

	      Counter (none)
	      The Counterconstructor creates a default	counter.  Since,  both
	      start  and  end  values  are  initialized	to 0, this object will
	      never count.

	      Counter (Integer)
	      The Counterconstructor creates an	upward counter.	If  the	 argu-
	      ment  value, the initial counter value is	the argument value and
	      the counter will counter from the	value to 0.  If	 the  argument
	      value is positive, the final counter value is the	argument value
	      and the counter will count from 0	to this	value.

	      Counter (Integer Integer)
	      The Counterconstructor creates a counter with an initial and fi-
	      nal values. Depending on the initial and final value the counter
	      might be an upward or a downward counter.

       Methods

	      reset -> none (none)
	      The resetmethod reset the	counter	to its start value.

	      step-p ->	Boolean	(none)
	      The step-ppredicate checks if the	counter	can be	moved  by  one
	      position.	If the test is successful, the counter is moved	upward
	      or downward. the method returns the result of the	test.

	      valid-p -> Boolean (none)
	      The valid-ppredicate returns true	if the counter can be moved by
	      one position.

       Lexer
       The Lexerclass is the lexical analyzer for the writing system. The lex-
       ical analyzer consumes characters from an input stream and produces to-
       kens. From a token, it is possible to derive an object in the form of a
       constant	object which can be evaluated to a literal or to  another  ob-
       ject in the presence of a lexical or qualified object. The lexical ana-
       lyzer is	integrated inside the form reader. As an object	it is possible
       to use it when it becomes necesary to parse strings.

       Predicate

	      lexer-p

       Inheritance

	      Object

       Methods

	      get-token	-> Token (none)
	      The get-tokenmethod returns the next available token.

	      get-object -> Object (none)
	      The get-objectmethod returns the next available object.

	      get-line-number -> Integer (none)
	      The get-line-numbermethod	returns	the token line number which is
	      the current line number under processing.

       Former
       The Formerclass is an abstract class used to derive  form  reader.  The
       class defines only a method parsewhich returns a	form. The method getl-
       numreturns the form line	number.

       Predicate

	      former-p

       Inheritance

	      Object

       Methods

	      parse -> Form (none)
	      The parsemethod returns the next available form.

	      get-line-number -> Integer (none)
	      The get-line-numbermethod	returns	the form line number which  is
	      the current line number under processing.

       Reader
       The  Readerclass	 is the	general	purpose	form reader which supports the
       writing system syntax. The reader is primarily used to parse file or be
       run interactively. The reader consumes tokens until a complete form can
       be built. The form does not have	any particular	meaning	 and  must  be
       post processed by the application.

       Predicate

	      reader-p

       Inheritance

	      FormerNameable

       Constructors

	      Reader (none)
	      The Readerconstructor creates a default reader.

	      Reader (String|InputStream)
	      The  Readerconstructor  creates  a  reader  by  string  or input
	      stream. In the first form, a string  is  mapped  into  a	string
	      stream  which is used by the reader to parse form. In the	second
	      form, an input stream is bound to	the reader to parse forms.

       Loader
       The Loaderclass is a library loader. The	loader keep a list  of	loaded
       libraries.  This	 class	is bound to the	interpreter and	cannot be con-
       structed. Use the interp:loaderto access	the  interpreter  loader.  for
       safety  reason,	it  is not possible to add a libray to the loader. The
       interpreter method interp:libraryis the prefered	method to  access  the
       loader.

       Predicate

	      loader-p

       Inheritance

	      Object

       Methods

	      length ->	Integer	(none)
	      The lengthmethod returns the number of loaded libraries.

	      get -> Library (Integer)
	      The getmethod returns a library object by	index.

	      exists-p -> Boolean (String)
	      The  exists-ppredicate  returns  true  if	 a  library is already
	      loaded in	the interpreter.

AFNIX				  2017-04-29			      VOL-2(7)

NAME | RESERVED KEYWORDS | RESERVED OBJECTS | CONTAINER OBJECTS | SPECIAL OBJECTS

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=afnix::reference&sektion=7&manpath=FreeBSD+12.0-RELEASE+and+Ports>

home | help