[31m-- main is main file of main project written with Ada.[m
[31m-- Main is Copyright (C) 2025 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 := "2025-06-04 18:32:28"[m
[31m-- Version := "0.0.0r"[m
[01;34mwith[m M[31m.[mVersions[31m;[m
[01;34muse[m M[31m.[mVersions[31m;[m
[01;34mwith[m Sky[31m.[mStrings[31m;[m
[01;34muse[m Sky[31m.[mStrings[31m;[m
[01;34mwith[m Ada[31m.[mCalendar[31m;[m
[01;34muse[m Ada[31m.[mCalendar[31m;[m
[01;34mwith[m Ada[31m.[mText_Io[31m;[m
[01;34muse[m Ada[31m.[mText_Io[31m;[m
[01;34mwith[m Gnat[31m.[mOs_Lib[31m;[m
[01;34muse[m Gnat[31m.[mOs_Lib[31m;[m
[01;34mwith[m Ada[31m.[mUnchecked_Deallocation[31m;[m
[01;34muse[m Ada[31m;[m

[01;34mpackage[m M[31m.[mProject [01;34mis[m
   [01;34mtype[m Project_Info_Record [01;34mis[m [01;34mtagged[m
      [01;34mrecord[m
	 Source_Path [31m:[m String_Access [31m:=[m [01;34mnew[m [32mString[m ' [31m([m[31m""[m[31m);[m
	 Absolute_Path [31m:[m String_Access [31m:=[m [01;34mnew[m [32mString[m ' [31m([m[31m""[m[31m);[m
	 Project_Name  [31m:[m String_access [31m:=[m [01;34mnew[m [32mString[m ' [31m([m[31m""[m[31m);[m
	 Version       [31m:[m Version_Type[31m;[m
	 Old_Version   [31m:[m Version_Type[31m;[m
	 Elapsed    [31m:[m [32mDuration[m [31m:=[m [35m0.0[m[31m;[m	 
	 Days       [31m:[m Natural [31m:=[m [35m0[m[31m;[m
      [01;34mend[m [01;34mrecord[m[31m;[m
   
   [01;34mtype[m Project_Record[31m;[m
   
   [01;34mtype[m Project_Access [01;34mis[m [01;34maccess[m [01;34mall[m Project_Record[31m;[m
   
   [01;34msubtype[m Project_Num_Range [01;34mis[m Natural [01;34mrange[m Natural'First[31m..[m[35m4096[m[31m;[m
   
   [01;34msubtype[m Component_Num_Range [01;34mis[m Natural [01;34mrange[m Natural'First[31m..[m[35m8192[m[31m;[m
   
   [01;34mtype[m Component_Record [01;34mis[m [01;34mtagged[m
      [01;34mrecord[m
	 Unit_Name [31m:[m String_Access[31m;[m
	 Unit_Path [31m:[m String_Access[31m;[m
	 Unit_Num  [31m:[m Component_Num_Range [31m:=[m [35m0[m[31m;[m
	 Buffer    [31m:[m [01;30mWide_String_Set[m[31m([m[35m65536[m[31m)[m [31m:=[m [31m([m[35m65536[m[31m,[m [31m([m[01;34mothers[m [31m=>[m [01;34mnull[m[31m),[m [35m0[m[31m);[m
      [01;34mend[m [01;34mrecord[m[31m;[m
   
   Null_Component [31m:[m [01;34mconstant[m Component_Record [31m:=[m
     [31m([m[01;34mnull[m[31m,[m
      [01;34mnull[m[31m,[m
      [35m0[m[31m,[m
      [31m([m[35m65536[m[31m,[m [31m([m[01;34mothers[m [31m=>[m [01;34mnull[m[31m),[m Line_Last [31m=>[m [35m0[m[31m));[m
      
   [01;34mtype[m Unit_Array [01;34mis[m [01;34marray[m [31m([mComponent_Num_Range [01;34mrange[m [31m<>)[m [01;34mof[m Component_Record[31m;[m
   
   [01;34mtype[m [01;30mProject_Record[m[31m([mUnits_Max [31m:[m Component_Num_Range[31m)[m [01;34mis[m [01;34mnew[m Project_Info_Record [01;34mwith[m
      [01;34mrecord[m
	 Start_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
	 end_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
	 
	 
	 Old_Project [31m:[m Project_Access[31m;[m
	 Project_Num [31m:[m Project_Num_Range [31m:=[m [35m0[m[31m;[m	 
	 libs [31m:[m [01;30mUnit_Array[m[31m([m[35m1[m[31m..[mUnits_Max[31m);[m
	 lib_Last [31m:[m Component_Num_Range [31m:=[m [35m0[m[31m;[m
	 Copyright  [31m:[m String_Access[31m;[m
	 Creation_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
	 Last_Update   [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
   
   [01;34mprocedure[m [01;30mLib_Add[m[31m([mProject [31m:[m [01;34min[m [01;34mout[m Project_Record[31m;[m Lib [31m:[m [01;34min[m [32mString[m[31m);[m
   [01;34mprocedure[m [01;30mOpen[m[31m([mProject [31m:[m [01;34min[m [01;34mout[m Project_Record[31m;[m Date [31m:[m Time [31m:=[m Clock[31m);[m
   [01;34mprocedure[m [01;30mClose[m[31m([mProject [31m:[m [01;34min[m [01;34mout[m Project_Record[31m;[m Date [31m:[m Time [31m:=[m Clock[31m);[m
   [01;34mprocedure[m [01;30mSave[m [31m([mProject [31m:[m [01;34min[m Project_Record[31m;[m File [31m:[m [01;34min[m File_Type[31m);[m
   [01;34mprocedure[m [01;30mRead[m [31m([mProject [31m:[m [01;34mout[m Project_Access[31m;[m Project_Name [31m:[m [01;34min[m [32mString[m[31m);[m
   
   [01;34mprocedure[m Project_Free [01;34mis[m [01;34mnew[m Ada[31m.[m[01;30mUnchecked_Deallocation[m[31m([mProject_Record[31m,[m Project_Access[31m);[m 
   
   
   
   [01;34mtype[m Abstract_Project [01;34mis[m [01;34mabstract[m [01;34mnew[m Project_Record [01;34mwith[m
      [01;34mrecord[m
	 [01;34mnull[m[31m;[m
      [01;34mend[m [01;34mrecord[m[31m;[m
	 
   
   
   Null_Project [31m:[m [01;34mconstant[m Project_Record [31m:=[m 
     [31m([m[35m0[m[31m,[m
      [01;34mnew[m [32mString[m ' [31m([m[31m""[m[31m),[m
      [01;34mnew[m [32mString[m ' [31m([m[31m""[m[31m),[m
      [01;34mnew[m [32mString[m ' [31m([m[31m""[m[31m),[m
      Null_Version[31m,[m
      Null_Version[31m,[m      
      [35m0.0[m[31m,[m
      [35m0[m[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;30mTime_Of[m[31m([m[35m1970[m[31m,[m [35m1[m[31m,[m [35m1[m[31m,[m [35m0.0[m[31m),[m
      [01;34mnull[m[31m,[m
      [35m0[m[31m,[m
      [31m([m[01;34mothers[m [31m=>[m Null_component[31m),[m
      [35m0[m[31m,[m
      [01;34mnull[m[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;30mTime_Of[m[31m([m[35m1970[m[31m,[m [35m1[m[31m,[m [35m1[m[31m,[m [35m0.0[m[31m)[m
     [31m);[m

[01;34mend[m M[31m.[mProject [31m;[m 
