Base.module



--------------------------->  GNU Sather - module  <---------------------------
-- Copyright (C) 1994 by International Computer Science Institute            --
-- This file is part of the GNU Sather package. It is free software; you may --
-- redistribute  and/or modify it under the terms of the  GNU General Public --
-- License (GPL)  as  published  by the  Free  Software  Foundation;  either --
-- version 2 of the license, or (at your option) any later version.          --
-- This  program  is distributed  in the  hope that it will  be  useful, but --
-- WITHOUT ANY WARRANTY without even the implied warranty of MERCHANTABILITY --
-- or FITNESS FOR A PARTICULAR PURPOSE. See Doc/GPL for more details.        --
-- The license text is also available from:  Free Software Foundation, Inc., --
-- 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA                     --
-------------->  Please email comments to   <--------------

(* BASE CLASSES

The base classes are the primitives out of which all Sather
classes may be built.  Most are given special treatment by
the compiler.

Some examples of literals for built-in Sather types:

    ARRAY - | a, b, c |
    BOOL  - true
    CHAR  - 'a'
    FLT   - 1.0
    FLTD  - 1.0d
    INT   - 56
    STR   - "abc"

AREF provides an array portion to classes which include it.
If you want more functionality such as sorting, the ARRAY class
(in Containers) is what you want.  AVAL is the equivalent of
AREF for value classes.

EXT_OB is used to carry values foreign to Sather, such as C pointers.

The 1.0 language spec defines FLT, FLTD, FLTX and FLTDX which
correspond the IEEE single, double, extended and double extended
respectively.  The current compiler only implements FLT and FLTD
however.  FLTI is an infinite precision floating point class; it
isn't implemented either.  However, take a look at RAT in Math.

Both signed and unsigned operations are provided on Sather INT;
there are not special types for these.

A complete description of the built-in Sather types can be found
in the language specification, which is in the Doc directory of
the Sather installation.

*)





-- This is a list of library files that can automatically
-- be loaded by a reference in users' SATHER_COMMANDS env variable

    abstract.sa -has abstract.sa 
	$IS_EQ $IS_LT $HASH $NIL $COPY $STR $ELT ELT_ALG
    compare.sa -has compare.sa COMPARE ELT_EQ ELT_LT ELT_NIL ELT_HASH COMPARABLE
    aref.sa -has aref.sa AREF 
    aval.sa -has aval.sa AVAL
    bool.sa -has bool.sa BOOL 
    char.sa -has char.sa CHAR 
    flt.sa -has flt.sa FLT C_FLT
    fltd.sa -has fltd.sa FLTD C_FLTD 
	
    succ_stream.sa -has succ_stream.sa $SUCC_STREAM INT_STREAM 

    int.sa -has int.sa INT 
    misc.sa -has misc.sa $OB EXT_OB CAST CAST_EXC
    elt_alg.sa -has elt_alg.sa ELT_ALG

    number.sa -has number.sa $NFE $NUMBER $REAL_NUMBER $CPX_NUMBER

    char_test.sa -has char_test.sa CHAR_TEST
    bool_test.sa -has bool_test.sa BOOL_TEST
    fltd_test.sa -has fltd_test.sa FLTD_OUTPUT_TEST
    int_test.sa -has int_test.sa INT_TEST
    aref_test.sa -has aref_test.sa AREF_TEST
    math_test.sa -has math_test.sa MATH_TEST FLT_TEST FLTD_TEST
 
	-- Dummy versions of non-existant FLT classes
    flt_dummy.sa -has flt_dummy.sa  FLTX FLTDX FLTI
	
   -- Non existant junk (for now). Unimplememented part of spec.
   --    flt_other.sa -has flt_other.sa FLT_UNDEF FLTX FLTDX FLTI