c.sa
Generated by gen_html_sa_files from ICSI. Contact gomes@icsi.berkeley.edu for details
---------------------------> Sather 1.1 source file <--------------------------
-- Copyright (C) International Computer Science Institute, 1995. 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. <----------
-- c.sa: ANSI C interface classes
-- author: Boris Vaysman
immutable class C_CHAR
immutable class C_CHAR is
-- ANSI C ``char'' (built in type)
include COMPARABLE;
create(x:CHAR):C_CHAR is
builtin C_CHAR_CREATE_CHAR;
end;
char:CHAR is
-- A Sather CHAR version of self
builtin C_CHAR_CHAR;
end;
str:STR is
return char.str;
end;
zero:SAME is builtin C_CHAR_ZERO; end;
plus(i:SAME):SAME is builtin C_CHAR_PLUS; end;
minus(i:SAME):SAME is builtin C_CHAR_MINUS; end;
times(i:SAME):SAME is builtin C_CHAR_TIMES; end;
div(i:SAME):SAME is builtin C_CHAR_DIV; end;
is_eq(i:SAME):BOOL is builtin C_CHAR_IS_EQ; end;
is_lt(i:SAME):BOOL is builtin C_CHAR_IS_LT; end;
end;
immutable class C_UNSIGNED_CHAR
immutable class C_UNSIGNED_CHAR is
-- ANSI C ``unsigned char'' (built in type)
include COMPARABLE;
create(x:CHAR):C_UNSIGNED_CHAR is
builtin C_UNSIGNED_CHAR_CREATE_CHAR;
end;
char:CHAR is
-- A Sather CHAR version of self
builtin C_UNSIGNED_CHAR_CHAR;
end;
str:STR is
return char.str;
end;
zero:SAME is builtin C_UNSIGNED_CHAR_ZERO; end;
plus(i:SAME):SAME is builtin C_UNSIGNED_CHAR_PLUS; end;
minus(i:SAME):SAME is builtin C_UNSIGNED_CHAR_MINUS; end;
times(i:SAME):SAME is builtin C_UNSIGNED_CHAR_TIMES; end;
div(i:SAME):SAME is builtin C_UNSIGNED_CHAR_DIV; end;
is_eq(i:SAME):BOOL is builtin C_UNSIGNED_CHAR_IS_EQ; end;
is_lt(i:SAME):BOOL is builtin C_UNSIGNED_CHAR_IS_LT; end;
end;
immutable class C_SIGNED_CHAR
immutable class C_SIGNED_CHAR is
-- ANSI C ``signed char'' (built in type)
include COMPARABLE;
create(x:CHAR):C_SIGNED_CHAR is
builtin C_SIGNED_CHAR_CREATE_CHAR;
end;
char:CHAR is
-- A Sather CHAR version of self
builtin C_SIGNED_CHAR_CHAR;
end;
str:STR is
return char.str;
end;
zero:SAME is builtin C_SIGNED_CHAR_ZERO; end;
plus(i:SAME):SAME is builtin C_SIGNED_CHAR_PLUS; end;
minus(i:SAME):SAME is builtin C_SIGNED_CHAR_MINUS; end;
times(i:SAME):SAME is builtin C_SIGNED_CHAR_TIMES; end;
div(i:SAME):SAME is builtin C_SIGNED_CHAR_DIV; end;
is_eq(i:SAME):BOOL is builtin C_SIGNED_CHAR_IS_EQ; end;
is_lt(i:SAME):BOOL is builtin C_SIGNED_CHAR_IS_LT; end;
end;
immutable class C_SHORT
immutable class C_SHORT is
-- ANSI C ``short'' (built in type)
include COMPARABLE;
create(x:INT):C_SHORT is
builtin C_SHORT_CREATE_INT;
end;
int:INT is
-- A Sather integer version of self
builtin C_SHORT_INT;
end;
str:STR is
return int.str;
end;
zero:SAME is builtin C_SHORT_ZERO; end;
plus(i:SAME):SAME is builtin C_SHORT_PLUS; end;
minus(i:SAME):SAME is builtin C_SHORT_MINUS; end;
times(i:SAME):SAME is builtin C_SHORT_TIMES; end;
div(i:SAME):SAME is builtin C_SHORT_DIV; end;
is_eq(i:SAME):BOOL is builtin C_SHORT_IS_EQ; end;
is_lt(i:SAME):BOOL is builtin C_SHORT_IS_LT; end;
nil:SAME is
-- let Sather handle this (we are confused by the philosophical
-- impilations of nil vs void vs unitialized vs zero
return #(INT::nil);
end;
is_nil:BOOL is
return int.is_nil;
end;
end;
immutable class C_INT
immutable class C_INT is
-- ANSI C ``int'' (built in type)
include COMPARABLE;
create(x:INT):C_INT is
builtin C_INT_CREATE_INT;
end;
int:INT is
-- A Sather integer version of self
builtin C_INT_INT;
end;
str:STR is
return int.str;
end;
zero:SAME is builtin C_INT_ZERO; end;
plus(i:SAME):SAME is builtin C_INT_PLUS; end;
minus(i:SAME):SAME is builtin C_INT_MINUS; end;
times(i:SAME):SAME is builtin C_INT_TIMES; end;
div(i:SAME):SAME is builtin C_INT_DIV; end;
is_eq(i:SAME):BOOL is builtin C_INT_IS_EQ; end;
is_lt(i:SAME):BOOL is builtin C_INT_IS_LT; end;
nil:SAME is
-- let Sather handle this (we are confused by the philosophical
-- impilations of nil vs void vs unitialized vs zero
return #(INT::nil);
end;
is_nil:BOOL is
return int.is_nil;
end;
end;
immutable class C_LONG
immutable class C_LONG is
-- ANSI C ``long'' (built in type)
include COMPARABLE;
create(x:INT):C_LONG is
builtin C_LONG_CREATE_INT;
end;
int:INT is
-- A Sather integer version of self
builtin C_LONG_INT;
end;
str:STR is
return int.str;
end;
zero:SAME is builtin C_LONG_ZERO; end;
plus(i:SAME):SAME is builtin C_LONG_PLUS; end;
minus(i:SAME):SAME is builtin C_LONG_MINUS; end;
times(i:SAME):SAME is builtin C_LONG_TIMES; end;
div(i:SAME):SAME is builtin C_LONG_DIV; end;
is_eq(i:SAME):BOOL is builtin C_LONG_IS_EQ; end;
is_lt(i:SAME):BOOL is builtin C_LONG_IS_LT; end;
nil:SAME is
-- let Sather handle this (we are confused by the philosophical
-- impilations of nil vs void vs unitialized vs zero
return #(INT::nil);
end;
is_nil:BOOL is
return int.is_nil;
end;
end;
immutable class C_UNSIGNED_SHORT
immutable class C_UNSIGNED_SHORT is
-- ANSI C ``unsigned short'' (built in type)
include COMPARABLE;
create(x:INT):C_UNSIGNED_SHORT is
builtin C_UNSIGNED_SHORT_CREATE_INT;
end;
int:INT is
-- A Sather integer version of self
builtin C_UNSIGNED_SHORT_INT;
end;
str:STR is
return int.str;
end;
zero:SAME is builtin C_UNSIGNED_SHORT_ZERO; end;
plus(i:SAME):SAME is builtin C_UNSIGNED_SHORT_PLUS; end;
minus(i:SAME):SAME is builtin C_UNSIGNED_SHORT_MINUS; end;
times(i:SAME):SAME is builtin C_UNSIGNED_SHORT_TIMES; end;
div(i:SAME):SAME is builtin C_UNSIGNED_SHORT_DIV; end;
is_eq(i:SAME):BOOL is builtin C_UNSIGNED_SHORT_IS_EQ; end;
is_lt(i:SAME):BOOL is builtin C_UNSIGNED_SHORT_IS_LT; end;
nil:SAME is
-- let Sather handle this (we are confused by the philosophical
-- impilations of nil vs void vs unitialized vs zero
return #(INT::nil);
end;
is_nil:BOOL is
return int.is_nil;
end;
end;
immutable class C_UNSIGNED_INT
immutable class C_UNSIGNED_INT is
-- ANSI C ``unsigned int'' (built in type)
include COMPARABLE;
create(x:INT):C_UNSIGNED_INT is
builtin C_UNSIGNED_INT_CREATE_INT;
end;
int:INT is
-- A Sather integer version of self
builtin C_UNSIGNED_INT_INT;
end;
str:STR is
return int.str;
end;
zero:SAME is builtin C_UNSIGNED_INT_ZERO; end;
plus(i:SAME):SAME is builtin C_UNSIGNED_INT_PLUS; end;
minus(i:SAME):SAME is builtin C_UNSIGNED_INT_MINUS; end;
times(i:SAME):SAME is builtin C_UNSIGNED_INT_TIMES; end;
div(i:SAME):SAME is builtin C_UNSIGNED_INT_DIV; end;
is_eq(i:SAME):BOOL is builtin C_UNSIGNED_INT_IS_EQ; end;
is_lt(i:SAME):BOOL is builtin C_UNSIGNED_INT_IS_LT; end;
nil:SAME is
-- let Sather handle this (we are confused by the philosophical
-- impilations of nil vs void vs unitialized vs zero
return #(INT::nil);
end;
is_nil:BOOL is
return int.is_nil;
end;
end;
immutable class C_UNSIGNED_LONG
immutable class C_UNSIGNED_LONG is
-- ANSI C ``unsigned long'' (built in type)
include COMPARABLE;
create(x:INT):C_UNSIGNED_LONG is
builtin C_UNSIGNED_LONG_CREATE_INT;
end;
int:INT is
-- A Sather integer version of self
builtin C_UNSIGNED_LONG_INT;
end;
str:STR is
return int.str;
end;
zero:SAME is builtin C_UNSIGNED_LONG_ZERO; end;
plus(i:SAME):SAME is builtin C_UNSIGNED_LONG_PLUS; end;
minus(i:SAME):SAME is builtin C_UNSIGNED_LONG_MINUS; end;
times(i:SAME):SAME is builtin C_UNSIGNED_LONG_TIMES; end;
div(i:SAME):SAME is builtin C_UNSIGNED_LONG_DIV; end;
is_eq(i:SAME):BOOL is builtin C_UNSIGNED_LONG_IS_EQ; end;
is_lt(i:SAME):BOOL is builtin C_UNSIGNED_LONG_IS_LT; end;
nil:SAME is
-- let Sather handle this (we are confused by the philosophical
-- impilations of nil vs void vs unitialized vs zero
return #(INT::nil);
end;
is_nil:BOOL is
return int.is_nil;
end;
end;
immutable class C_FLOAT
immutable class C_FLOAT is
-- ANSI C ``float'' type (built in type)
include COMPARABLE;
create(x:FLT):C_FLOAT is
builtin C_FLOAT_CREATE_FLT;
end;
flt:FLT is
-- A Sather FLT version of self
builtin C_FLOAT_FLT;
end;
str:STR is
return flt.str;
end;
zero:SAME is builtin C_FLOAT_ZERO; end;
plus(i:SAME):SAME is builtin C_FLOAT_PLUS; end;
minus(i:SAME):SAME is builtin C_FLOAT_MINUS; end;
times(i:SAME):SAME is builtin C_FLOAT_TIMES; end;
div(i:SAME):SAME is builtin C_FLOAT_DIV; end;
is_eq(i:SAME):BOOL is builtin C_FLOAT_IS_EQ; end;
is_lt(i:SAME):BOOL is builtin C_FLOAT_IS_LT; end;
nil:SAME is
-- let Sather handle this (we are confused by the philosophical
-- impilations of nil vs void vs unitialized vs zero
return #(FLT::nil);
end;
is_nil:BOOL is
return flt.is_nil;
end;
end;
immutable class C_DOUBLE
immutable class C_DOUBLE is
-- ANSI C ``double'' type (built in type)
include COMPARABLE;
create(x:FLTD):C_DOUBLE is
builtin C_DOUBLE_CREATE_FLTD;
end;
fltd:FLTD is
-- A Sather FLT version of self
builtin C_DOUBLE_FLTD;
end;
str:STR is
return fltd.str;
end;
zero:SAME is builtin C_DOUBLE_ZERO; end;
plus(i:SAME):SAME is builtin C_DOUBLE_PLUS; end;
minus(i:SAME):SAME is builtin C_DOUBLE_MINUS; end;
times(i:SAME):SAME is builtin C_DOUBLE_TIMES; end;
div(i:SAME):SAME is builtin C_DOUBLE_DIV; end;
is_eq(i:SAME):BOOL is builtin C_DOUBLE_IS_EQ; end;
is_lt(i:SAME):BOOL is builtin C_DOUBLE_IS_LT; end;
nil:SAME is
-- let Sather handle this (we are confused by the philosophical
-- impilations of nil vs void vs unitialized vs zero
return #(FLTD::nil);
end;
is_nil:BOOL is
return fltd.is_nil;
end;
end;
immutable class C_LONG_DOUBLE
immutable class C_LONG_DOUBLE is
-- ANSI C ``long double'' type (built in type)
include COMPARABLE;
create(x:FLT):C_LONG_DOUBLE is
builtin C_LONG_DOUBLE_CREATE_FLT;
end;
fltd:FLTD is
-- A Sather FLT version of self
builtin C_LONG_DOUBLE_FLT;
end;
str:STR is
return fltd.str;
end;
zero:SAME is builtin C_LONG_DOUBLE_ZERO; end;
plus(i:SAME):SAME is builtin C_LONG_DOUBLE_PLUS; end;
minus(i:SAME):SAME is builtin C_LONG_DOUBLE_MINUS; end;
times(i:SAME):SAME is builtin C_LONG_DOUBLE_TIMES; end;
div(i:SAME):SAME is builtin C_LONG_DOUBLE_DIV; end;
is_eq(i:SAME):BOOL is builtin C_LONG_DOUBLE_IS_EQ; end;
is_lt(i:SAME):BOOL is builtin C_LONG_DOUBLE_IS_LT; end;
nil:SAME is
-- let Sather handle this (we are confused by the philosophical
-- impilations of nil vs void vs unitialized vs zero
return #(FLTD::nil);
end;
is_nil:BOOL is
return fltd.is_nil;
end;
end;
immutable class C_SIZE_T
immutable class C_SIZE_T is
end;
immutable class C_PTRDIFF_T
immutable class C_PTRDIFF_T is
end;