Base.module



-- Copyright (C) International Computer Science Institute, 1994.  COPYRIGHT  --
-- NOTICE: This code is provided "AS IS" WITHOUT ANY WARRANTY and is subject --
-- to the terms of the SATHER LIBRARY GENERAL PUBLIC LICENSE contained in    --
-- the file "Doc/License" of the Sather distribution.  The license is also   --
-- available from ICSI, 1947 Center St., Suite 600, Berkeley CA 94704, USA.  --
--------> Please email comments to "sather-bugs@icsi.berkeley.edu". <----------

(* 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 $REHASH
	COMPARABLE COMPARE
    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

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

    char_test.sa -has char_test.sa TEST_CHAR
    bool_test.sa -has bool_test.sa TEST_BOOL
    fltd_test.sa -has fltd_test.sa TEST_FLTD_OUTPUT
    int_test.sa -has int_test.sa TEST_INT
    aref_test.sa -has aref_test.sa TEST_AREF
    math_test.sa -has math_test.sa TEST_MATH TEST_FLT TEST_FLTD
 
	-- 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