% declare.s
%
% Purpose: declarations
% Copyright: R.A. van Engelen, Leiden University, 1997
% External predicates of module decl.pl:
retrieve(_G2509, _G2510) is intrinsic(module = declare, result = {3}).
store(_G2509, _G2510) is intrinsic(module = declare, result = nil).
topsort(_G2509) is intrinsic(module = declare, result = {2}).
expand(_G2509, _G2510, _G2511) is intrinsic(module = declare, result = {4}).
expand(_G2509, _G2510) is external(module = declare, result = nil).
unexpand(_G2509) is external(module = declare, result = nil).
convert(_G2509, _G2510) is intrinsic(module = declare, result = {3}).
dice(_G2509) is intrinsic(module = dice, result = [{2}, {3}]).
domains_and_ranges(_G2509) is intrinsic(module = declare, result = {2}).
domains(_G2509) is intrinsic(module = declare, result = {2}).
domain_loops(_G2509) is intrinsic(module = declare, result = {2}).
get_declaration(_G2509) is intrinsic(module = declare, result = {2}).
no_trans isa switch.
no_const isa switch.
save(_G2509, _G2510) is intrinsic(module = declare, result = nil).
(subroutine(_G2509, _G2510, _G2511) is
intrinsic(module = declare, result = nil))
.
prefix space is external(module = declare, result = nil).
% Syntax: space ListOfCoordinates time Time.
% Example: space [x, y, z] time t.
infix (::) is external(module = declare, result = nil).
% Syntax: Name :: Type(Range) ~ Unit field (Coordinate(Grid), ...) := Value on Domain
% Head :: Type(Range) ~ Unit field (Coordinate(Grid), ...) := Body
% Example: u :: real(0..n) ~ "m/s" field (x(grid), y(grid)) on i=1..n by j=1..m.
infix = is external(module = equation, result = nil).
% Syntax: LHS = RHS
% Example: [u, v] = grad p.