sys.sa
Generated by gen_html_sa_files from ICSI. Contact gomes@icsi.berkeley.edu for details
-------------------------> GNU Sather - sourcefile <-------------------------
-- Copyright (C) 1994 by International Computer Science Institute --
-- This file is part of the GNU Sather library. It is free software; you may --
-- redistribute and/or modify it under the terms of the GNU Library General --
-- Public License (LGPL) as published by the Free Software Foundation; --
-- either version 2 of the license, or (at your option) any later version. --
-- This library 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/LGPL 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 <bug-sather@gnu.org> <--------------
-- sys.sa: System related information.
class SYS
class SYS is
-- System related information.
const char_size:=8; -- Number of bits in a CHAR.
destroy(o:$OB) is
builtin SYS_DESTROY;
end;
is_eq(ob1,ob2:$OB): BOOL is
return ob_eq(ob1,ob2);
end;
is_lt(ob1,ob2: $OB): BOOL is
return id(ob1) < id(ob2);
end;
hash(ob1: $OB): INT is
return id(ob1).hash;
end;
id(o:$OB):INT is builtin SYS_ID; end;
tp(o:$OB):INT is builtin SYS_TP; end;
str_for_tp(i:INT):STR is builtin SYS_STR_FOR_TP; end;
ob_eq(o1,o2:$OB):BOOL is builtin SYS_OB_EQ; end;
ext_ob_for(o:$OB):EXT_OB is builtin SYS_EXT_OB_FOR; end;
-- Generate some inline C. The argument has to be a STR literal. The
-- '#' character followed by an identifier substitutes the C variable
-- corresponding to the Sather argument or local. When there is more
-- than one variable with the given name, one will be chosen randomly.
-- This routine is not intended for general use, and is most
-- emphatically NOT in the Sather language spec. You have been
-- warned!
inlined_C(s:STR) is
raise "SYS::inlined_C undefined";
end;
-- These indicate if any of the IEEE exceptions transpired.
-- They may be set/cleared by the programmer. These are broken.
ieee_invalid_operation(v:BOOL) is raise "undefined IEEE op"; end;
ieee_division_by_zero(v:BOOL) is raise "undefined IEEE op"; end;
ieee_overflow(v:BOOL) is raise "undefined IEEE op"; end;
ieee_underflow(v:BOOL) is raise "undefined IEEE op"; end;
ieee_inexact(v:BOOL) is raise "undefined IEEE op"; end;
ieee_invalid_operation:BOOL is raise "undefined IEEE op"; end;
ieee_division_by_zero:BOOL is raise "undefined IEEE op"; end;
ieee_overflow:BOOL is raise "undefined IEEE op"; end;
ieee_underflow:BOOL is raise "undefined IEEE op"; end;
ieee_inexact:BOOL is raise "undefined IEEE op"; end;
-- If an IEEE exception occurs while the corresponding ieee_trap_on
-- BOOL is set, then an exception will be generated. These are broken.
ieee_trap_on_invalid_operation(v:BOOL) is raise "undefined IEEE op"; end;
ieee_trap_on_division_by_zero(v:BOOL) is raise "undefined IEEE op"; end;
ieee_trap_on_overflow(v:BOOL) is raise "undefined IEEE op"; end;
ieee_trap_on_underflow(v:BOOL) is raise "undefined IEEE op"; end;
ieee_trap_on_inexact(v:BOOL) is raise "undefined IEEE op"; end;
ieee_trap_on_invalid_operation:BOOL is raise "undefined IEEE op"; end;
ieee_trap_on_division_by_zero:BOOL is raise "undefined IEEE op"; end;
ieee_trap_on_trap_on_overflow:BOOL is raise "undefined IEEE op"; end;
ieee_trap_on_underflow:BOOL is raise "undefined IEEE op"; end;
ieee_trap_on_inexact:BOOL is raise "undefined IEEE op"; end;
-- JN: added the following for use by the 80x86 compilers internals
-- the floating point number's bit representation as an integer
flt_rep(f:FLT,out bits:INT) is builtin SYS_FLT_REP; end;
-- fltd bits as two integer
fltd_rep(f:FLTD,out msbits,out lsbits:INT) is builtin SYS_FLTD_REP; end;
-- These are used by psather.
defer is builtin SYS_DEFER; end;
import is builtin SYS_IMPORT; end;
export is builtin SYS_EXPORT; end;
builtin_clusters!:INT is
-- calls to clusters! will be translated to this.
loop yield clusters.times! end;
end;
psather_statistics(b:BOOL) is builtin SYS_PSATHER_STATISTICS; end;
psather_trace(b:BOOL) is builtin SYS_PSATHER_TRACE; end;
end; -- class SYS