[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.[mStrings[31m.[mFixed[31m;[m
[01;34muse[m Ada[31m.[mStrings[31m;[m

[01;34mpackage[m [01;34mbody[m M[31m.[mVersions[31m.[mVersion_io [01;34mis[m
   
[01;34mfunction[m [01;30mTo_String[m [31m([mVersion [31m:[m [01;34min[m     Version_Type[31m;[m Separator [31m:[m [01;34min[m [32mCharacter[m [31m:=[m [31m'.'[m[31m)[m [01;34mreturn[m [32mString[m [01;34mis[m
            
   [01;34mbegin[m
      
      [01;34mreturn[m 	
	[32mInteger[m[31m'Image(Version.Major_Version)(2..Integer'[m[01;30mImage[m[31m([mVersion[31m.[mMajor_Version[31m)[m'Last[31m)[m [31m&[m Separator [31m&[m
	[32mInteger[m[31m'Image(Version.Minor_Version)(2..Integer'[m[01;30mImage[m[31m([mVersion[31m.[mMinor_Version[31m)[m'Last[31m)[m [31m&[m Separator [31m&[m
	[32mInteger[m[31m'Image(Version.Revision_Version)(2..Integer'[m[01;30mImage[m[31m([mVersion[31m.[mRevision_Version[31m)[m'Last[31m)[m [31m&[m
        Version[31m.[mrelease_Version[31m;[m
   [01;34mend[m To_String[31m;[m   
   
   [01;34mfunction[m [01;30mTo_Version[m [31m([mFrom [31m:[m [01;34min[m [32mString[m[31m)[m [01;34mreturn[m Version_Type [01;34mis[m
      Rel   [31m:[m [32mCharacter[m [31m:=[m [32mCharacter[m'[01;30mVal[m[31m([m[35m32[m[31m);[m
      Rev   [31m:[m Natural [31m:=[m [35m0[m[31m;[m
      Minor [31m:[m Natural [31m:=[m [35m0[m[31m;[m
      Major [31m:[m Natural [31m:=[m [35m0[m[31m;[m
      Version [31m:[m Version_Type [31m:=[m [31m([m[35m0[m[31m,[m [35m0[m[31m,[m [35m0[m[31m,[m [31m'a'[m[31m);[m
      Top     [31m:[m Natural [31m:=[m [35m0[m[31m;[m
   [01;34mbegin[m
      Top [31m:=[m Fixed[31m.[m[01;30mIndex[m[31m([mFrom[31m,[m [31m"."[m[31m);[m

      [01;34mif[m Top [31m/=[m [35m0[m [01;34mthen[m
	 Major [31m:=[m Natural[31m'Value(From(From'[mfirst[31m..[mTop [31m-[m [35m1[m[31m));[m

	 [01;34mif[m Fixed[31m.[m[01;30mIndex[m[31m([mFrom[31m,[m [31m"."[m[31m,[m Top [31m+[m [35m1[m[31m)[m [31m/=[m [35m0[m [01;34mthen[m

	    Minor [31m:=[m Natural'[01;30mValue[m[31m([m[01;30mFrom[m[31m([mTop [31m+[m [35m1[m[31m..[mFixed[31m.[m[01;30mIndex[m[31m([mFrom[31m,[m [31m"."[m[31m,[m Top [31m+[m [35m1[m[31m)-[m[35m1[m[31m));[m

	    Top [31m:=[m Fixed[31m.[m[01;30mIndex[m[31m([mFrom[31m,[m [31m"."[m[31m,[m Top [31m+[m [35m1[m[31m)[m [31m+[m [35m1[m[31m;[m

	    Rev [31m:=[m Natural[31m'Value(From(Top..From'[mLast[31m-[m[35m1[m[31m));[m
	    
	    Rel [31m:=[m [01;30mFrom[m[31m([mFrom'Last[31m);[m
	 [01;34mend[m [01;34mif[m[31m;[m
      [01;34mend[m [01;34mif[m[31m;[m
      Version[31m.[mMajor_Version [31m:=[m Major[31m;[m
      Version[31m.[mMinor_Version [31m:=[m Minor[31m;[m
      Version[31m.[mRevision_Version [31m:=[m Rev[31m;[m
      Version[31m.[mRelease_Version [31m:=[m Rel[31m;[m
      
      
      
	[01;34mreturn[m Version[31m;[m
   [01;34mexception[m
      [01;34mwhen[m Constraint_Error [31m=>[m
	 [01;34mreturn[m Version[31m;[m
   [01;34mend[m To_Version[31m;[m

[01;34mend[m M[31m.[mVersions[31m.[mVersion_io [31m;[m 
