arithmetic/src/basictypes/physicalunit/physicalvalue.tmpl
%
% Quake functions to instantiate operations on generic physical entities.
%
readonly proc PhysicalValue (nm, rfield) is
local basic = nm & "PhysicalValue"
build_generic_intf (basic, "PhysicalValue", [rfield], VISIBLE)
build_generic_impl (basic, "PhysicalValue", [rfield])
end
readonly proc UnitDatabase (nm, field, rimpl) is
local udb = nm & "UnitDatabase"
local uu = nm & "UsualUnit"
local uulist = uu & "List"
list(uu, uu)
local cu = nm & "CompositeUnit"
local culist = cu & "List"
list(cu, cu)
local rfield = field & rimpl
build_generic_intf (uu, "UsualUnit", [rfield], VISIBLE)
build_generic_impl (uu, "UsualUnit", [])
build_generic_intf (cu, "CompositeUnit", [uulist], VISIBLE)
build_generic_impl (cu, "CompositeUnit", [])
build_generic_intf (udb, "UnitDatabase", [rfield, uu, uulist, culist], VISIBLE)
build_generic_impl (udb, "UnitDatabase", [ uu, uulist, cu, culist])
end
readonly proc SIUnit (nm, field, rimpl) is
local siunit = nm & "SIUnit"
local rfield = field & rimpl
local rtrans = field & "Trans"
local ruu = field & "UsualUnit"
local ruulist = ruu & "List"
local rudb = field & "UnitDatabase"
build_generic_intf (siunit, "SIUnit", [rudb], VISIBLE)
build_generic_impl (siunit, "SIUnit", [rtrans, ruu, ruulist, rudb])
end
readonly proc PhysicalValueFmtLex (nm, field, rimpl, cimpl) is
local fmt = nm & "PhysicalValueFmtLex"
local rfield = field & rimpl
local rtrans = field & "Trans"
local cfield = nm & cimpl
local ctrans = nm & "Trans"
local cfmt = nm & "FmtLex"
local cpv = nm & "PhysicalValue"
local rcu = field & "CompositeUnit"
local rculist = rcu & "List"
local rudb = field & "UnitDatabase"
local siunit = field & "SIUnit"
build_generic_intf (fmt, "PhysicalValueFmtLex", [cfmt, cpv, rudb], VISIBLE)
build_generic_impl (fmt, "PhysicalValueFmtLex", [rfield, rtrans, cfield, ctrans, cfmt, rudb])
end