-- 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 "email@example.com". <----------
(* BASE CLASSES
The base classes are the primitives out of which all Sather
classes may be built. Most are given special treatment by
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
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