[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 Ada[31m;[m
[01;34mwith[m M[31m.[mVersions[31m.[mVersion_Io[31m;[m
[01;34muse[m M[31m.[mVersions[31m.[mVersion_Io[31m;[m

[01;34mpackage[m [01;34mbody[m M[31m.[mProject [01;34mis[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;34mis[m
   [01;34mbegin[m

      Project[31m.[m[01;30mLibs[m[31m([mProject[31m.[mLib_Last [31m+[m [35m1[m[31m).[mUnit_Name [31m:=[m [01;34mnew[m [32mString[m ' [31m([mLib[31m);[m
      Project[31m.[mLib_Last [31m:=[m Project[31m.[mLib_Last [31m+[m [35m1[m[31m;[m

   [01;34mend[m Lib_Add[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;34mis[m
   [01;34mbegin[m
      Project[31m.[mEnd_Date [31m:=[m Date[31m;[m
   [01;34mend[m Open[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;34mis[m
   [01;34mbegin[m
      Project[31m.[mElapsed [31m:=[m Project[31m.[mElapsed [31m+[m [31m([mDate [31m-[m Project[31m.[mEnd_Date[31m);[m
   [01;34mend[m Close[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;34mis[m
      
      
      Project_Files [31m:[m File_Type[31m;[m
      
   [01;34mbegin[m
      
      

      
      Project [31m:=[m [01;34mnew[m [01;30mProject_Record[m[31m([m[35m256[m[31m);[m
      
      
      
      
      [01;30mOpen[m[31m([mProject_Files[31m,[m In_File[31m,[m Project_Name [31m&[m [31m"/Versions.lst"[m[31m);[m
      
      [01;34mdeclare[m
	 Line [31m:[m [01;34mconstant[m [32mString[m [31m:=[m [01;30mGet_Line[m[31m([mProject_Files[31m);[m
      [01;34mbegin[m
	 Project[31m.[mVersion [31m:=[m [01;30mTo_Version[m[31m([mLine[31m);[m
      [01;34mend[m[31m;[m
      
      [01;30mClose[m[31m([mProject_Files[31m);[m
      [01;34mdelay[m [35m0.1[m[31m;[m
      [01;30mOpen[m[31m([mProject_Files[31m,[m In_File[31m,[m Project_Name [31m&[m [31m"/Project.lst"[m[31m);[m
      
      [01;34mdeclare[m
	 Name1 [31m:[m [01;34mconstant[m [32mString[m [31m:=[m [01;30mGet_Line[m[31m([mProject_Files[31m);[m
	 Name2 [31m:[m [01;34mconstant[m [32mString[m [31m:=[m [01;30mGet_Line[m[31m([mProject_Files[31m);[m
      [01;34mbegin[m
	 Project[31m.[mProject_Name [31m:=[m [01;34mnew[m [32mString[m ' [31m([mName1[31m);[m
	 [01;34mwhile[m [01;34mnot[m [01;30mEnd_Of_File[m[31m([mProject_Files[31m)[m [01;34mloop[m
	    [01;34mdeclare[m
	       Line [31m:[m [01;34mconstant[m [32mString[m [31m:=[m [01;30mGet_Line[m[31m([mProject_Files[31m);[m
	    [01;34mbegin[m
	       [01;30mLib_Add[m[31m([mProject[31m.[m[01;34mall[m[31m,[m Line[31m);[m
	    [01;34mend[m[31m;[m
	 [01;34mend[m [01;34mloop[m[31m;[m
      [01;34mend[m[31m;[m
      [01;30mClose[m[31m([mProject_Files[31m);[m
      
      [01;30mOpen[m[31m([mProject_Files[31m,[m In_File[31m,[m Project_Name [31m&[m [31m"/Copyright"[m[31m);[m
      
      [01;34mdeclare[m
	 Author [31m:[m [01;34mconstant[m [32mString[m [31m:=[m [01;30mGet_Line[m[31m([mProject_Files[31m);[m
      [01;34mbegin[m
	 Project[31m.[mCopyright [31m:=[m [01;34mnew[m [32mString[m ' [31m([mAuthor[31m);[m
      [01;34mend[m[31m;[m
      [01;30mClose[m[31m([mProject_Files[31m);[m      
      
   [01;34mexception[m
      [01;34mwhen[m Name_Error [31m=>[m
	 [01;34mraise[m[31m;[m
      [01;34mwhen[m Use_Error [31m=>[m
	 [01;34mraise[m[31m;[m
      [01;34mwhen[m [01;34mothers[m [31m=>[m
	 [01;30mProject_Free[m[31m([mProject[31m);[m
	 [01;34mraise[m[31m;[m


   [01;34mend[m Read[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;34mis[m
   [01;34mbegin[m
      [01;34mif[m Project[31m.[mProject_Name [31m/=[m [01;34mnull[m [01;34mand[m [01;34mthen[m
	Project[31m.[mProject_Name'length [31m/=[m [35m0[m [01;34mthen[m
	 [01;30mPut_Line[m[31m([mFile[31m,[m Project[31m.[mProject_Name[31m.[m[01;34mall[m [31m&[m [31m'-'[m [31m&[m [01;30mTo_String[m[31m([mProject[31m.[mVersion[31m)[m [31m&[m [31m" "[m [31m&[m Long_Long_Float'[01;30mImage[m[31m([m[01;30mLong_Long_Float[m[31m([m[01;30mLong_Long_Float[m[31m([mProject[31m.[mDays[31m)*[m[35m86400.0[m[31m)+[m[01;30mLong_Long_Float[m[31m([mProject[31m.[mElapsed[31m)));[m
      [01;34mend[m [01;34mif[m[31m;[m
   [01;34mend[m Save[31m;[m

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