[31m-- Skywalker is another attempt of A. i. written with Ada.[m
[31m-- Skywalker is Copyright (C) 2024 Manuel De Girardi ; [m
[31m--[m
[31m--   This program is free software; you can redistribute it and/or modify[m
[31m--   it under the terms of the GNU General Public License as published by[m
[31m--   the Free Software Foundation; either version 2 of the License, or[m
[31m--   (at your option) any later version.[m
[31m--[m
[31m--   This program is distributed in the hope that it will be useful,[m
[31m--   but WITHOUT ANY WARRANTY; without even the implied warranty of[m
[31m--   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the[m
[31m--   GNU General Public License for more details.[m
[31m--[m
[31m--   You should have received a copy of the GNU General Public License[m
[31m--   along with this program; if not, write to the Free Software[m
[31m--   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA[m
[31m--[m
[31m-- Date := 2024-11-19 17:59:10 ; [m
[31m-- Version := 0.7.0r ; [m
[01;34mwith[m Ada[31m.[mContainers[31m.[mVectors[31m;[m
[01;34muse[m Ada[31m.[mContainers[31m;[m
[01;34mwith[m Sky[31m.[mAnsi[31m.[mWindows[31m;[m
[01;34mwith[m Ada[31m.[mCalendar[31m;[m
[01;34muse[m Ada[31m.[mCalendar[31m;[m
[01;34mwith[m Sky[31m.[mStrings[31m;[m
[01;34muse[m Sky[31m.[mStrings[31m;[m
[01;34mwith[m Ada[31m.[mWide_Text_Io[31m;[m
[01;34mwith[m Sky[31m.[mAttributes[31m;[m
[01;34muse[m Sky[31m.[mAttributes[31m;[m
[01;34mgeneric[m
   [01;34mwith[m [01;34mpackage[m My_Windows [01;34mis[m [01;34mnew[m Sky[31m.[mAnsi[31m.[m[01;30mWindows[m [31m(<>);[m
[01;34mpackage[m Sky[31m.[mClasses [01;34mis[m
   [01;34muse[m My_Windows[31m;[m
   [01;34mpackage[m W_Io [01;34mrenames[m Ada[31m.[mWide_Text_Io[31m;[m
   
   [01;34mtype[m Abstract_Index [01;34mis[m [01;34mnew[m Positive[31m;[m
   
   [01;34mtype[m [01;30mAbstract_Class[m[31m([mTag [31m:[m Class_Enum[31m);[m
   
   [01;34mtype[m Abstract_Access [01;34mis[m [01;34maccess[m [01;34mall[m Abstract_Class'Class[31m;[m
   
   [01;34mprocedure[m [01;30mObj_Free[m[31m([mO [31m:[m [01;34min[m [01;34mout[m Abstract_Access[31m);[m
   
   
   [01;34mfunction[m [01;30mSame[m [31m([mLeft[31m,[m Right [31m:[m [01;34min[m Abstract_Access[31m)[m [01;34mreturn[m [32mBoolean[m[31m;[m
   [01;34mpackage[m Abstract_Vectors [01;34mis[m [01;34mnew[m [01;30mVectors[m [31m([mAbstract_Index[31m,[m Abstract_Access[31m,[m Same[31m);[m
   
   [01;34mtype[m [01;30mAbstract_Info[m[31m([mTag [31m:[m Class_Enum[31m)[m [01;34mis[m
      [01;34mrecord[m
	 Index   [31m:[m Abstract_Index [31m:=[m [35m1[m[31m;[m
	 Name    [31m:[m Wide_String_Access[31m;[m
	 Created [31m:[m Time [31m:=[m [01;30mTime_Of[m[31m([m[35m1970[m[31m,[m [35m1[m[31m,[m [35m1[m[31m,[m [35m0.0[m[31m);[m
	 Childs_Num [31m:[m Natural [31m:=[m [35m0[m[31m;[m
      [01;34mend[m [01;34mrecord[m[31m;[m
   
   [01;34mtype[m [01;30mAbstract_Class[m[31m([mTag [31m:[m Class_Enum[31m)[m [01;34mis[m [01;34mabstract[m [01;34mtagged[m
      [01;34mrecord[m
	 
	 Info [31m:[m [01;30mAbstract_Info[m[31m([mTag[31m);[m
	 
	 Childs  [31m:[m Abstract_Vectors[31m.[mVector[31m;[m
	 
	 Definition [31m:[m [01;30mAttributs[m[31m([m[35m10[m[31m);[m
	 [01;34mcase[m Tag [01;34mis[m
	    [01;34mwhen[m Event [31m..[m Rendezvous [31m=>[m
	       Date          [31m:[m Time [31m:=[m [01;30mTime_Of[m[31m([m[35m1970[m[31m,[m [35m1[m[31m,[m [35m1[m[31m,[m [35m0.0[m[31m);[m
	       Period        [31m:[m [32mDuration[m [31m:=[m [35m0.0[m[31m;[m
	       Locality      [31m:[m Wide_String_Access[31m;[m
	       Define        [31m:[m Wide_String_Access[31m;[m
	    [01;34mwhen[m Book[31m..[mDVD [31m=>[m
	       Author [31m:[m Wide_String_Access[31m;[m
	       Editor [31m:[m Wide_String_Access[31m;[m
	    [01;34mwhen[m [01;34mothers[m [31m=>[m
	       [01;34mnull[m[31m;[m
	 [01;34mend[m [01;34mcase[m[31m;[m
      [01;34mend[m [01;34mrecord[m[31m;[m
   
   
   
   [01;34mprocedure[m [01;30mPrint[m [31m([mObj    [31m:[m [01;34min[m abstract_Class[31m;[m
		    Header [31m:[m [01;34min[m Window_Type[31m;[m
		    Main [31m:[m [01;34min[m Window_Type[31m)[m [01;34mis[m [01;34mabstract[m[31m;[m
   
   [01;34mprocedure[m [01;30mWrite[m [31m([mO [31m:[m [01;34min[m Abstract_Class[31m;[mFile [31m:[m [01;34min[m W_Io[31m.[mFile_Type[31m)[m [01;34mis[m [01;34mabstract[m[31m;[m
   [01;34mprocedure[m [01;30mRead[m [31m([mO [31m:[m [01;34mout[m Abstract_Class[31m;[mFile [31m:[m [01;34min[m W_Io[31m.[mFile_Type[31m)[m [01;34mis[m [01;34mabstract[m[31m;[m

   
   [01;34mtype[m None_Class [01;34mis[m [01;34mnew[m [01;30mAbstract_Class[m[31m([mNone[31m)[m [01;34mwith[m [01;34mnull[m [01;34mrecord[m[31m;[m
   
   [01;34mprocedure[m [01;30mPrint[m [31m([mAttr [31m:[m [01;34min[m Attributs[31m;[m Win [31m:[m [01;34min[m Window_type[31m);[m
   
   [01;34mprocedure[m [01;30mPrint[m [31m([mObj    [31m:[m [01;34min[m none_Class[31m;[m
		    Header [31m:[m [01;34min[m Window_Type[31m;[m
		    Main [31m:[m [01;34min[m Window_Type[31m);[m
   
   [01;34mprocedure[m [01;30mWrite[m [31m([mO [31m:[m [01;34min[m none_Class[31m;[mFile [31m:[m [01;34min[m W_Io[31m.[mFile_Type[31m);[m
   [01;34mprocedure[m [01;30mRead[m [31m([mO [31m:[m [01;34mout[m none_Class[31m;[mFile [31m:[m [01;34min[m W_Io[31m.[mFile_Type[31m);[m

   
   [01;34mtype[m Universe_Class [01;34mis[m [01;34mnew[m [01;30mAbstract_Class[m[31m([mUniverse[31m)[m [01;34mwith[m [01;34mnull[m [01;34mrecord[m[31m;[m
   [31m--type Universe_Class is new Abstract_Class(Universe) with null record;[m
   [01;34mfunction[m Create [01;34mreturn[m Universe_Class[31m;[m
   
   [01;34mprocedure[m [01;30mPrint[m [31m([mObj    [31m:[m [01;34min[m Universe_Class[31m;[m
		    Header    [31m:[m [01;34min[m Window_Type[31m;[m
		    Main [31m:[m [01;34min[m Window_Type[31m);[m
   
   [01;34mprocedure[m [01;30mWrite[m [31m([mO [31m:[m [01;34min[m Universe_Class[31m;[mFile [31m:[m [01;34min[m W_Io[31m.[mFile_Type[31m);[m
   [01;34mprocedure[m [01;30mRead[m [31m([mO [31m:[m [01;34mout[m Universe_Class[31m;[mFile [31m:[m [01;34min[m W_Io[31m.[mFile_Type[31m);[m
   
   
   [01;34mtype[m Content_Class [01;34mis[m [01;34mnew[m [01;30mAbstract_Class[m[31m([mContent[31m)[m [01;34mwith[m
     [01;34mrecord[m
	
	Description         [31m:[m Wide_String_Access[31m;[m
	Price               [31m:[m Fixed_Unit_Ttc [31m:=[m [35m0.0[m[31m;[m
     [01;34mend[m [01;34mrecord[m[31m;[m
   
   [31m--type Content_Class Is new Abstract_Class(Content) with null record;[m
   [01;34mfunction[m Create [01;34mreturn[m Content_Class[31m;[m
   
   [01;34mprocedure[m [01;30mPrint[m [31m([mObj    [31m:[m [01;34min[m Content_Class[31m;[m
		    Header    [31m:[m [01;34min[m Window_Type[31m;[m
		    Main [31m:[m [01;34min[m Window_Type[31m);[m
   
   [01;34mprocedure[m [01;30mWrite[m [31m([mO [31m:[m [01;34min[m Content_Class[31m;[mFile [31m:[m [01;34min[m W_Io[31m.[mFile_Type[31m);[m
   [01;34mprocedure[m [01;30mRead[m [31m([mO [31m:[m [01;34mout[m Content_Class[31m;[mFile [31m:[m [01;34min[m W_Io[31m.[mFile_Type[31m);[m
   
   
   
   
   [01;34mtype[m Planning_Class [01;34mis[m [01;34mnew[m [01;30mAbstract_Class[m[31m([mPlanning[31m)[m [01;34mwith[m
      [01;34mrecord[m
	 From                [31m:[m Time [31m:=[m [01;30mTime_Of[m[31m([m[35m1970[m[31m,[m [35m1[m[31m,[m [35m1[m[31m,[m [35m0.0[m[31m);[m
	 To                  [31m:[m Time [31m:=[m [01;30mTime_Of[m[31m([m[35m1970[m[31m,[m [35m1[m[31m,[m [35m1[m[31m,[m [35m0.0[m[31m);[m
      [01;34mend[m [01;34mrecord[m[31m;[m
   
   [31m--type Planning_Class is new Abstract_Class(Planning) with null record;[m
   [01;34mfunction[m Create [01;34mreturn[m Planning_Class[31m;[m
   
   [01;34mprocedure[m [01;30mPrint[m [31m([mObj    [31m:[m [01;34min[m Planning_Class[31m;[m
		    Header    [31m:[m [01;34min[m Window_Type[31m;[m
		    Main [31m:[m [01;34min[m Window_Type[31m);[m
   
   [01;34mprocedure[m [01;30mWrite[m [31m([mO [31m:[m [01;34min[m Planning_Class[31m;[mFile [31m:[m [01;34min[m W_Io[31m.[mFile_Type[31m);[m
   [01;34mprocedure[m [01;30mRead[m [31m([mO [31m:[m [01;34mout[m Planning_Class[31m;[mFile [31m:[m [01;34min[m W_Io[31m.[mFile_Type[31m);[m
   
   [01;34mtype[m Event_Class [01;34mis[m [01;34mnew[m [01;30mAbstract_Class[m[31m([mEvent[31m)[m [01;34mwith[m
      [01;34mrecord[m
	 [01;34mnull[m[31m;[m
      [01;34mend[m [01;34mrecord[m[31m;[m
   
   
   [31m--type Event_Class is new Abstract_Class(Event) with null record;[m
   [01;34mfunction[m Create [01;34mreturn[m Event_Class[31m;[m
   
   [01;34mprocedure[m [01;30mPrint[m [31m([mObj    [31m:[m [01;34min[m Event_Class[31m;[m
		    Header    [31m:[m [01;34min[m Window_Type[31m;[m
		    Main [31m:[m [01;34min[m Window_Type[31m);[m
   
   [01;34mprocedure[m [01;30mWrite[m [31m([mO [31m:[m [01;34min[m Event_Class[31m;[mFile [31m:[m [01;34min[m W_Io[31m.[mFile_Type[31m);[m
   [01;34mprocedure[m [01;30mRead[m [31m([mO [31m:[m [01;34mout[m Event_Class[31m;[mFile [31m:[m [01;34min[m W_Io[31m.[mFile_Type[31m);[m
   
   
   [01;34mtype[m Job_Class [01;34mis[m [01;34mnew[m [01;30mAbstract_Class[m[31m([mJob[31m)[m [01;34mwith[m
      [01;34mrecord[m
	 [01;34mnull[m[31m;[m
      [01;34mend[m [01;34mrecord[m[31m;[m
   
   [31m--type Job_Class is new Abstract_Class(Job) with null record;[m
   [01;34mfunction[m Create [01;34mreturn[m Job_Class[31m;[m
   
   [01;34mprocedure[m [01;30mPrint[m [31m([mObj    [31m:[m [01;34min[m Job_Class[31m;[m
		    Header    [31m:[m [01;34min[m Window_Type[31m;[m
		    Main [31m:[m [01;34min[m Window_Type[31m);[m
   
   [01;34mprocedure[m [01;30mWrite[m [31m([mO [31m:[m [01;34min[m Job_Class[31m;[mFile [31m:[m [01;34min[m W_Io[31m.[mFile_Type[31m);[m
   [01;34mprocedure[m [01;30mRead[m [31m([mO [31m:[m [01;34mout[m Job_Class[31m;[mFile [31m:[m [01;34min[m W_Io[31m.[mFile_Type[31m);[m
   
   
   [01;34mtype[m Meeting_Class [01;34mis[m [01;34mnew[m [01;30mAbstract_Class[m[31m([mMeeting[31m)[m [01;34mwith[m
      [01;34mrecord[m
	 [01;34mnull[m[31m;[m
      [01;34mend[m [01;34mrecord[m[31m;[m
   
   [31m--type Meeting_Class is new Abstract_Class(Meeting) with null record;[m
   [01;34mfunction[m Create [01;34mreturn[m Meeting_Class[31m;[m
   
   [01;34mprocedure[m [01;30mPrint[m [31m([mObj    [31m:[m [01;34min[m Meeting_Class[31m;[m
		    Header    [31m:[m [01;34min[m Window_Type[31m;[m
		    Main [31m:[m [01;34min[m Window_Type[31m);[m
   
   [01;34mprocedure[m [01;30mWrite[m [31m([mO [31m:[m [01;34min[m Meeting_Class[31m;[mFile [31m:[m [01;34min[m W_Io[31m.[mFile_Type[31m);[m
   [01;34mprocedure[m [01;30mRead[m [31m([mO [31m:[m [01;34mout[m Meeting_Class[31m;[mFile [31m:[m [01;34min[m W_Io[31m.[mFile_Type[31m);[m
   
   
   [01;34mtype[m Rendezvous_Class [01;34mis[m [01;34mnew[m [01;30mAbstract_Class[m[31m([mRendezvous[31m)[m [01;34mwith[m
      [01;34mrecord[m
	 [01;34mnull[m[31m;[m
      [01;34mend[m [01;34mrecord[m[31m;[m
   
      [31m--type Rendezvous_class is new Abstract_Class(Rendezvous) with null record;[m
   [01;34mfunction[m Create [01;34mreturn[m Rendezvous_Class[31m;[m
   
   [01;34mprocedure[m [01;30mPrint[m [31m([mObj    [31m:[m [01;34min[m Rendezvous_Class[31m;[m
		    Header    [31m:[m [01;34min[m Window_Type[31m;[m
		    Main [31m:[m [01;34min[m Window_Type[31m);[m
   
   [01;34mprocedure[m [01;30mWrite[m [31m([mO [31m:[m [01;34min[m Rendezvous_Class[31m;[mFile [31m:[m [01;34min[m W_Io[31m.[mFile_Type[31m);[m
   [01;34mprocedure[m [01;30mRead[m [31m([mO [31m:[m [01;34mout[m Rendezvous_Class[31m;[mFile [31m:[m [01;34min[m W_Io[31m.[mFile_Type[31m);[m
   

   
   [01;34mtype[m Profile_Class [01;34mis[m [01;34mnew[m [01;30mAbstract_Class[m[31m([mProfile[31m)[m [01;34mwith[m
      [01;34mrecord[m
	 Full_Name           [31m:[m Wide_String_Access[31m;[m
	 Born                [31m:[m Time [31m:=[m [01;30mTime_Of[m[31m([m[35m1970[m[31m,[m [35m1[m[31m,[m [35m1[m[31m,[m [35m0.0[m[31m);[m	      
	 Addr                [31m:[m Wide_String_Access[31m;[m
	 Phone               [31m:[m Wide_String_Access[31m;[m
	 Email               [31m:[m Wide_String_Access[31m;[m
      [01;34mend[m [01;34mrecord[m[31m;[m
   
   [31m--type Profile_Class Is new Abstract_Class(Profile) with null record;[m
   [01;34mfunction[m Create [01;34mreturn[m Profile_Class[31m;[m
   
   [01;34mprocedure[m [01;30mPrint[m [31m([mObj    [31m:[m [01;34min[m Profile_Class[31m;[m
		    Header    [31m:[m [01;34min[m Window_Type[31m;[m
		    Main [31m:[m [01;34min[m Window_Type[31m);[m
   
   [01;34mprocedure[m [01;30mWrite[m [31m([mO [31m:[m [01;34min[m Profile_Class[31m;[mFile [31m:[m [01;34min[m W_Io[31m.[mFile_Type[31m);[m
   [01;34mprocedure[m [01;30mRead[m [31m([mO [31m:[m [01;34mout[m Profile_Class[31m;[mFile [31m:[m [01;34min[m W_Io[31m.[mFile_Type[31m);[m
   
   
   [01;34mtype[m Book_Class [01;34mis[m [01;34mnew[m [01;30mAbstract_Class[m[31m([mBook[31m)[m [01;34mwith[m [01;34mnull[m [01;34mrecord[m[31m;[m
   
   [01;34mfunction[m Create [01;34mreturn[m Book_Class[31m;[m
   
   [01;34mprocedure[m [01;30mPrint[m [31m([mObj    [31m:[m [01;34min[m Book_Class[31m;[m
  		    Header    [31m:[m [01;34min[m Window_Type[31m;[m
  		    Main [31m:[m [01;34min[m Window_Type[31m);[m
   
   [01;34mprocedure[m [01;30mWrite[m [31m([mO [31m:[m [01;34min[m Book_Class[31m;[mFile [31m:[m [01;34min[m W_Io[31m.[mFile_Type[31m);[m
   [01;34mprocedure[m [01;30mRead[m [31m([mO [31m:[m [01;34mout[m Book_Class[31m;[mFile [31m:[m [01;34min[m W_Io[31m.[mFile_Type[31m);[m
   
   
   [01;34mtype[m CDROM_Class [01;34mis[m [01;34mnew[m [01;30mAbstract_Class[m[31m([mCDROM[31m)[m [01;34mwith[m [01;34mnull[m [01;34mrecord[m[31m;[m
   
   
   [01;34mfunction[m Create [01;34mreturn[m CDROM_Class[31m;[m
   
   [01;34mprocedure[m [01;30mPrint[m [31m([mObj    [31m:[m [01;34min[m CDROM_Class[31m;[m
  		    Header    [31m:[m [01;34min[m Window_Type[31m;[m
  		    Main [31m:[m [01;34min[m Window_Type[31m);[m
   
   [01;34mprocedure[m [01;30mWrite[m [31m([mO [31m:[m [01;34min[m CDROM_Class[31m;[mFile [31m:[m [01;34min[m W_Io[31m.[mFile_Type[31m);[m
   [01;34mprocedure[m [01;30mRead[m [31m([mO [31m:[m [01;34mout[m CDROM_Class[31m;[mFile [31m:[m [01;34min[m W_Io[31m.[mFile_Type[31m);[m
   
   
   [01;34mtype[m DVD_Class [01;34mis[m [01;34mnew[m [01;30mAbstract_Class[m[31m([mDVD[31m)[m [01;34mwith[m [01;34mnull[m [01;34mrecord[m[31m;[m
   
   [01;34mfunction[m Create [01;34mreturn[m DVD_Class[31m;[m
   
   [01;34mprocedure[m [01;30mPrint[m [31m([mObj    [31m:[m [01;34min[m DVD_Class[31m;[m
  		    Header    [31m:[m [01;34min[m Window_Type[31m;[m
  		    Main [31m:[m [01;34min[m Window_Type[31m);[m
   
   [01;34mprocedure[m [01;30mWrite[m [31m([mO [31m:[m [01;34min[m DVD_Class[31m;[mFile [31m:[m [01;34min[m W_Io[31m.[mFile_Type[31m);[m
   [01;34mprocedure[m [01;30mRead[m [31m([mO [31m:[m [01;34mout[m DVD_Class[31m;[mFile [31m:[m [01;34min[m W_Io[31m.[mFile_Type[31m);[m
   
   
   [01;34mtype[m Car_Class [01;34mis[m [01;34mnew[m [01;30mAbstract_Class[m[31m([mCar[31m)[m [01;34mwith[m
      [01;34mrecord[m
  	 Mark [31m:[m Wide_String_Access[31m;[m
  	 Model [31m:[m Wide_String_Access[31m;[m
  	 Mat   [31m:[m Wide_String_Access[31m;[m
      [01;34mend[m [01;34mrecord[m[31m;[m
   
   [01;34mfunction[m Create [01;34mreturn[m Car_Class[31m;[m
   
   [01;34mprocedure[m [01;30mPrint[m [31m([mObj    [31m:[m [01;34min[m Car_Class[31m;[m
  		    Header    [31m:[m [01;34min[m Window_Type[31m;[m
  		    Main [31m:[m [01;34min[m Window_Type[31m);[m
   
   [01;34mprocedure[m [01;30mWrite[m [31m([mO [31m:[m [01;34min[m Car_Class[31m;[mFile [31m:[m [01;34min[m W_Io[31m.[mFile_Type[31m);[m
   [01;34mprocedure[m [01;30mRead[m [31m([mO [31m:[m [01;34mout[m Car_Class[31m;[mFile [31m:[m [01;34min[m W_Io[31m.[mFile_Type[31m);[m
   
   [01;34mtype[m House_Class [01;34mis[m [01;34mnew[m [01;30mAbstract_Class[m[31m([mHouse[31m)[m [01;34mwith[m
      [01;34mrecord[m
  	 Addr [31m:[m Wide_String_Access[31m;[m
  	 Surf [31m:[m Wide_String_Access[31m;[m
      [01;34mend[m [01;34mrecord[m[31m;[m
   
   [01;34mfunction[m Create [01;34mreturn[m House_Class[31m;[m
   
   [01;34mprocedure[m [01;30mPrint[m [31m([mObj    [31m:[m [01;34min[m House_Class[31m;[m
  		    Header    [31m:[m [01;34min[m Window_Type[31m;[m
  		    Main [31m:[m [01;34min[m Window_Type[31m);[m
   
   [01;34mprocedure[m [01;30mWrite[m [31m([mO [31m:[m [01;34min[m House_Class[31m;[mFile [31m:[m [01;34min[m W_Io[31m.[mFile_Type[31m);[m
   [01;34mprocedure[m [01;30mRead[m [31m([mO [31m:[m [01;34mout[m House_Class[31m;[mFile [31m:[m [01;34min[m W_Io[31m.[mFile_Type[31m);[m
   
     
     
   
   
   [01;34muse[m My_Windows[31m;[m
   
   [31m--function Create return Abstract_Class'Class is abstract;[m
   
   
   
   
   
   
   
[01;34mend[m Sky[31m.[mClasses [31m;[m 
