----------------------------------------------------------------------------- -- PACKAGE BODY: -- Abstract_Sets -- AUTHOR: -- Yoav Tzruya -- IMPLEMENTATION NOTES: -- - the to_string function turns an element into a string using -- the unbounded string type. ---------------------------------------------------------------------------- -- ** BODY IMPORTS ** with Ada.Strings.Unbounded; package body abstract_sets is function to_string ( set_arg : in set'class) return string is copied_set : set'class := set_arg; str : Ada.Strings.Unbounded.Unbounded_String := Ada.Strings.Unbounded.Null_Unbounded_String; elem : set_element; use Ada.Strings.Unbounded; -- to enable operator visibilty , in order -- to clarify program. begin -- to_string str := str & "{"; while true loop Take( from => copied_set, element => elem); str := str & to_string(elem); end loop; return ""; -- just to acoid warning about program error exception when set_is_empty_exception => str := str & "}"; return Ada.Strings.Unbounded.To_String(str); end to_string; end abstract_sets;