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

[01;34mpackage[m [01;34mbody[m M[31m.[mAttributes [01;34mis[m
   [01;34mprocedure[m [01;30mParse[m [31m([mLine [31m:[m [01;34min[m [32mString[m[31m;[m Name [31m:[m [01;34mout[m String_Access[31m;[m Image [31m:[m [01;34mout[m String_Access[31m)[m [01;34mis[m
      current [31m:[m [01;34mconstant[m Natural [31m:=[m [01;30mIndex[m[31m([mLine[31m,[m [31m"="[m[31m);[m
      Top   [31m:[m [01;34mconstant[m Natural [31m:=[m [01;30mIndex[m[31m([m[01;30mLine[m[31m([mLine'First[31m..[mcurrent[31m),[m [31m" "[m[31m,[m backward[31m)+[m [35m1[m[31m;[m
      Bot   [31m:[m [01;34mconstant[m Natural [31m:=[m [01;30mIndex_Non_Blank[m[31m([mLine[31m,[m Backward[31m);[m
   [01;34mbegin[m
      [01;34mif[m [31m([mCurrent [31m=[m [35m0[m[31m)[m [01;34mor[m [31m([mTop [31m=[m [35m0[m[31m)[m [01;34mor[m [31m([mBot [31m=[m [35m0[m[31m)[m [01;34mthen[m
	 [01;34mreturn[m[31m;[m
      [01;34mend[m [01;34mif[m[31m;[m	      
      Name [31m:=[m [01;34mnew[m [32mString[m ' [31m([m[01;30mLine[m[31m([mTop[31m..[mcurrent[31m-[m[35m1[m[31m));[m
      Image [31m:=[m [01;34mnew[m [32mString[m ' [31m([m[01;30mLine[m[31m([mCurrent[31m+[m[35m1[m[31m..[mBot[31m));[m
   [01;34mend[m Parse[31m;[m
   
   
   
   
   [01;34mfunction[m [01;30mMake[m [31m([mNames [31m:[m [01;34min[m [32mString[m[31m;[m Value [31m:[m [01;34min[m [32mString[m[31m)[m [01;34mreturn[m Attribut_Record [01;34mis[m
      Att [31m:[m Attribut_Record[31m;[m
   [01;34mbegin[m
      Att[31m.[mName [31m:=[m [01;34mnew[m [32mString[m ' [31m([mNames[31m);[m
      [01;34mbegin[m
	 Att[31m.[mboo [31m:=[m [32mBoolean[m'[01;30mValue[m[31m([mValue[31m);[m
	 Att[31m.[mEnum [31m:=[m Boo[31m;[m
	 Att[31m.[mValue [31m:=[m [01;34mnew[m [32mString[m [31m' (Boolean'[m[01;30mImage[m[31m([mAtt[31m.[mBoo[31m));[m
      [01;34mexception[m
	 [01;34mwhen[m Constraint_Error [31m=>[m
	    [01;34mbegin[m
	       Att[31m.[mInt [31m:=[m [32mInteger[m'[01;30mValue[m[31m([mValue[31m);[m
	       Att[31m.[mEnum [31m:=[m Int[31m;[m
	       Att[31m.[mValue [31m:=[m [01;34mnew[m [32mString[m [31m' (Integer'[m[01;30mImage[m[31m([mAtt[31m.[mInt[31m));[m
	    [01;34mexception[m
	       [01;34mwhen[m Constraint_Error [31m=>[m
		  [01;34mbegin[m
		     Att[31m.[mFlt [31m:=[m [32mfloat[m'[01;30mValue[m[31m([mValue[31m);[m
		     Att[31m.[mEnum [31m:=[m Flt[31m;[m
		     Att[31m.[mValue [31m:=[m [01;34mnew[m [32mString[m [31m' (Float'[m[01;30mImage[m[31m([mAtt[31m.[mFlt[31m));[m
		  [01;34mexception[m
		     [01;34mwhen[m Constraint_Error [31m=>[m
			[01;34mbegin[m
			   Att[31m.[mdate [31m:=[m Formatting[31m.[m[01;30mValue[m[31m([mValue[31m);[m
			   Att[31m.[mEnum [31m:=[m Date[31m;[m
			   Att[31m.[mValue [31m:=[m [01;34mnew[m [32mString[m ' [31m([mFormatting[31m.[m[01;30mImage[m[31m([mAtt[31m.[mDate[31m));[m
			[01;34mexception[m
			   [01;34mwhen[m Constraint_Error [31m=>[m
			      [01;34mbegin[m
				 Att[31m.[mstr [31m:=[m [01;34mnew[m [32mString[m ' [31m([mValue[31m);[m
				 Att[31m.[mEnum [31m:=[m Str[31m;[m
				 Att[31m.[mValue [31m:=[m [01;34mnew[m [32mString[m ' [31m([mAtt[31m.[mStr[31m.[m[01;34mall[m[31m);[m
			      [01;34mend[m[31m;[m
			[01;34mend[m[31m;[m
		  [01;34mend[m[31m;[m
	    [01;34mend[m[31m;[m
      [01;34mend[m[31m;[m
      [01;34mreturn[m Att[31m;[m
   [01;34mend[m Make[31m;[m
   
   [01;34mfunction[m [01;30mnames[m [31m([mAtt [31m:[m [01;34min[m Attribut_Record[31m)[m [01;34mreturn[m [32mString[m [01;34mis[m
   [01;34mbegin[m
      [01;34mreturn[m Att[31m.[mName[31m.[m[01;34mall[m[31m;[m
   [01;34mend[m Names[31m;[m
   [01;34mfunction[m [01;30mimages[m [31m([mAtt [31m:[m [01;34min[m Attribut_Record[31m)[m [01;34mreturn[m [32mString[m [01;34mis[m
   [01;34mbegin[m
      [01;34mcase[m Att[31m.[mEnum [01;34mis[m
	 [01;34mwhen[m Nil [31m=>[m
	    [01;34mreturn[m [31m""[m[31m;[m
	 [01;34mwhen[m Boo [31m=>[m
	    [01;34mreturn[m [32mBoolean[m'[01;30mImage[m[31m([mAtt[31m.[mBoo[31m);[m
	 [01;34mwhen[m Int [31m=>[m
	    [01;34mreturn[m [32mInteger[m'[01;30mImage[m[31m([mAtt[31m.[mInt[31m);[m
	 [01;34mwhen[m Flt [31m=>[m
	    [01;34mreturn[m [32mFloat[m'[01;30mImage[m[31m([mAtt[31m.[mFlt[31m);[m
	 [01;34mwhen[m Date [31m=>[m
	   [01;34mreturn[m Formatting[31m.[m[01;30mImage[m[31m([mAtt[31m.[mDate[31m);[m
	 [01;34mwhen[m Str [31m=>[m
	    [01;34mreturn[m Att[31m.[mStr[31m.[m[01;34mall[m[31m;[m
      [01;34mend[m [01;34mcase[m[31m;[m
   [01;34mend[m Images[31m;[m

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