[31m--------------------------------------------------------------------------------------------------------------------------------------------------------------[m
[31m-- Gnostic is Ada Generic Neural Object System Engineering.                                                                                                --[m
[31m-- Gnostic (C) Copyright 2016 Manuel De Girardi.                                                                                                           --[m
[31m--------------------------------------------------------------------------------------------------------------------------------------------------------------[m
  
[31m--------------------------------------------------------------------------------------------------------------------------------------------------------------[m
[31m-- Date        := 2016-12-05 01:23:25 ; [m
[31m-- Description : Ada Generic Neural Object System Engineering.                                                                                              --[m
[31m-- Version     := 2016.34.25a ; [m
[31m-- Authors     : Manuel De Girardi.                                                                                                                         --[m
[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.[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 GNAT[31m.[mDirectory_Operations[31m;[m
[01;34muse[m GNAT[31m.[mDirectory_Operations[31m;[m
[01;34mwith[m GNAT[31m.[mDirectory_Operations[31m.[mIteration[31m;[m
[01;34mwith[m Gnat[31m.[mRegexp[31m;[m

[01;34muse[m Gnat[31m;[m
[01;34mwith[m Ada[31m.[mCalendar[31m.[mFormatting[31m;[m
[01;34muse[m Ada[31m;[m

[01;34mwith[m Ada[31m.[mText_Io[31m;[m
[01;34muse[m Ada[31m.[mText_Io[31m;[m
[01;34mpackage[m [01;34mbody[m Gnos[31m.[mTools [01;34mis[m


   
   [01;34mfunction[m [01;30mInteger_Image[m [31m([mValue [31m:[m [01;34min[m [32mInteger[m[31m)[m [01;34mreturn[m [32mString[m [01;34mis[m
   [01;34mbegin[m
      [01;34mif[m Value [31m<[m [35m0[m [01;34mthen[m
	 [01;34mreturn[m 
	   [31m'-'[m [31m&[m [32mInteger[m[31m'Image(Value)(Fixed.Index_Non_Blank(Integer'[m[01;30mImage[m[31m([mValue[31m)([m[35m2[m[31m..[m[32mInteger[m[31m'Image(Value)'[mLast[31m))..[m[32mInteger[m[31m'Image(Value)'[mLast[31m);[m
      [01;34melse[m
	 [01;34mreturn[m 
	   [32mInteger[m[31m'Image(Value)(Fixed.Index_Non_Blank(Integer'[m[01;30mImage[m[31m([mValue[31m))..[m[32mInteger[m[31m'Image(Value)'[mLast[31m);[m
      [01;34mend[m [01;34mif[m[31m;[m
   [01;34mend[m Integer_Image[31m;[m
   
   
   [01;34mfunction[m [01;30mYMD_Elapsed_String[m[31m([mYears    [31m:[m [01;34min[m Natural[31m;[m
                               Months   [31m:[m [01;34min[m Natural[31m;[m
                               Days     [31m:[m [01;34min[m Natural[31m)[m [01;34mreturn[m [32mString[m [01;34mis[m
   [01;34mbegin[m
      [01;34mreturn[m [01;30mInteger_Image[m[31m([mYears[31m)[m [31m&[m
        [31m"y, "[m [31m&[m
        [01;30mInteger_Image[m[31m([mMonths[31m)[m [31m&[m
        [31m"m, "[m [31m&[m
        [01;30mInteger_Image[m[31m([mDays[31m)[m [31m&[m
        [31m"d, "[m[31m;[m        
   [01;34mend[m YMD_Elapsed_String[31m;[m
   
   
   
   [01;34mprocedure[m [01;30mDifference_In_Years[m[31m([mTop_Date [31m:[m [01;34min[m Time[31m;[m
                                 Bot_Date [31m:[m [01;34min[m Time[31m;[m
                                 Years    [31m:[m [01;34mout[m Natural[31m;[m
                                 Months   [31m:[m [01;34mout[m Natural[31m;[m
                                 Days     [31m:[m [01;34mout[m Natural[31m;[m
                                 Houres   [31m:[m [01;34mout[m Natural[31m;[m
                                 Minutes  [31m:[m [01;34mout[m Natural[31m;[m
                                 Second   [31m:[m [01;34mout[m Natural[31m;[m
                                 Rest     [31m:[m [01;34mout[m [32mDuration[m[31m)[m [01;34mis[m      
      
      [01;34mfunction[m [01;30mIs_Leap_Year[m [31m([mYear [31m:[m [32mInteger[m[31m)[m [01;34mreturn[m [32mBoolean[m [01;34mis[m
      [01;34mbegin[m
         [01;34mreturn[m [31m([mYear [01;34mrem[m [35m4[m [31m=[m [35m0[m[31m)[m [01;34mand[m [31m(([mYear [01;34mrem[m [35m100[m [31m/=[m [35m0[m[31m)[m [01;34mor[m [31m([mYear [01;34mrem[m [35m16[m [31m=[m [35m0[m[31m));[m
      [01;34mend[m Is_Leap_Year[31m;[m
      
      [01;34mpragma[m [01;30mInline[m [31m([mIs_Leap_Year[31m);[m
      
      Days_Months_Count [31m:[m [01;34mconstant[m [01;34marray[m [31m([mMonth_Number[31m)[m [01;34mof[m Day_Number [31m:=[m [31m([m[35m31[m[31m,[m [35m28[m[31m,[m [35m31[m[31m,[m [35m30[m[31m,[m [35m31[m[31m,[m [35m30[m[31m,[m [35m31[m[31m,[m [35m31[m[31m,[m [35m30[m[31m,[m [35m31[m[31m,[m [35m30[m[31m,[m [35m31[m[31m);[m
      
      
      [01;34mfunction[m [01;30mLast_Days[m[31m([mYears [31m,[m Months [31m:[m [01;34min[m Natural[31m)[m [01;34mreturn[m Natural [01;34mis[m         
      [01;34mbegin[m         
         [01;34mif[m Months [31m=[m [35m1[m [01;34mthen[m
            [01;34mreturn[m [01;30mDays_Months_Count[m[31m([m[35m12[m[31m);[m
         [01;34melsif[m Months [31m/=[m [35m3[m [01;34mthen[m
            [01;34mreturn[m [01;30mDays_Months_Count[m[31m([mMonths[31m-[m[35m1[m[31m);[m
         [01;34mend[m [01;34mif[m[31m;[m
         
         [01;34mif[m [01;30mIs_Leap_Year[m[31m([mYears[31m)[m [01;34mthen[m
            [01;34mreturn[m [01;30mDays_Months_Count[m[31m([m[35m2[m[31m)[m [31m+[m [35m1[m[31m;[m
         [01;34melse[m
            [01;34mreturn[m [01;30mDays_Months_Count[m[31m([m[35m2[m[31m);[m
         [01;34mend[m [01;34mif[m[31m;[m
      [01;34mend[m Last_Days[31m;[m

      
      Top_Seconds [31m:[m [01;34mconstant[m Day_Duration [31m:=[m [01;30mSeconds[m[31m([mTop_Date[31m);[m
      Bot_Seconds [31m:[m [01;34mconstant[m Day_Duration [31m:=[m [01;30mSeconds[m[31m([mBot_Date[31m);[m
      Top_Day     [31m:[m [01;34mconstant[m Day_Number [31m:=[m [01;30mDay[m[31m([mTop_Date[31m);[m
      Bot_Day     [31m:[m [01;34mconstant[m Day_Number [31m:=[m [01;30mDay[m[31m([mBot_Date[31m);[m
      Top_Year    [31m:[m [01;34mconstant[m Year_Number [31m:=[m [01;30mYear[m[31m([mTop_Date[31m);[m
      Bot_Year    [31m:[m [01;34mconstant[m Year_Number [31m:=[m [01;30mYear[m[31m([mBot_Date[31m);[m
      Top_Month   [31m:[m [01;34mconstant[m Month_Number [31m:=[m [01;30mMonth[m[31m([mTop_Date[31m);[m
      Bot_Month   [31m:[m [01;34mconstant[m Month_Number [31m:=[m [01;30mMonth[m[31m([mBot_Date[31m);[m
      
      Years_Number  [31m:[m [32mInteger[m [31m:=[m [35m0[m[31m;[m
      Months_Number [31m:[m [32mInteger[m [31m:=[m [35m0[m[31m;[m
      Days_Number   [31m:[m [32mInteger[m [31m:=[m [35m0[m[31m;[m            
      
      Total_Duration [31m:[m [32mDuration[m [31m:=[m Bot_Seconds [31m-[m Top_Seconds[31m;[m
   [01;34mbegin[m
      
      [01;34mif[m Top_Date [31m>[m Bot_Date [01;34mthen[m
         [01;34mraise[m Constraint_Error[31m;[m
      [01;34mend[m [01;34mif[m[31m;[m
      
      Years    [31m:=[m [35m0[m[31m;[m
      Months   [31m:=[m [35m0[m[31m;[m
      Days     [31m:=[m [35m0[m[31m;[m
      Houres   [31m:=[m [35m0[m[31m;[m
      Minutes  [31m:=[m [35m0[m[31m;[m
      Second   [31m:=[m [35m0[m[31m;[m
      Rest     [31m:=[m [35m0.0[m[31m;[m
      
      Years_Number [31m:=[m [31m([mBot_Year [31m-[m Top_Year [31m-[m [35m1[m[31m);[m
      
      Months_Number [31m:=[m Bot_Month[31m;[m
      
      [01;34mif[m [31m([mBot_Month [31m>[m Top_Month[31m)[m [01;34mor[m [31m(([mBot_Month [31m=[m Top_Month[31m)[m [01;34mand[m [31m([mBot_Day [31m>=[m Top_Day[31m))[m [01;34mthen[m         

         Years_Number [31m:=[m Years_Number [31m+[m [35m1[m[31m;[m
         
      [01;34melse[m         
         Months_Number [31m:=[m Bot_Month [31m+[m [35m12[m[31m;[m
      [01;34mend[m [01;34mif[m[31m;[m
      
      Months_Number [31m:=[m [31m([mMonths_Number [31m-[m Top_Month [31m-[m [35m1[m[31m);[m
      
      
      [01;34mif[m Bot_Day [31m>[m Top_Day [01;34mthen[m

         Months_Number [31m:=[m Months_Number [31m+[m [35m1[m[31m;[m
         Days_Number [31m:=[m Bot_Day [31m-[m Top_Day[31m;[m
	 
      [01;34melsif[m Bot_Day [31m<[m Top_Day [01;34mthen[m
	 
         Days_Number [31m:=[m [01;30mLast_Days[m [31m([mBot_Year[31m,[m Bot_Month[31m)[m [31m-[m Top_Day[31m;[m
         [01;34mif[m Days_Number [31m<[m [35m0[m [01;34mthen[m
            Days_Number [31m:=[m Days_Number [31m+[m Bot_Day[31m;[m
         [01;34mend[m [01;34mif[m[31m;[m    
	 
      [01;34melse[m
	 Months_Number [31m:=[m Months_Number [31m+[m [35m1[m[31m;[m	 
	 Days_Number [31m:=[m [35m0[m[31m;[m
      [01;34mend[m [01;34mif[m[31m;[m
      
      
      Days [31m:=[m Days_Number[31m;[m
      Months [31m:=[m Months_Number[31m;[m
      Years [31m:=[m Years_Number[31m;[m
      
      [01;34mif[m Bot_Seconds [31m>[m Top_seconds [01;34mthen[m
         Total_Duration [31m:=[m [31m([mBot_Seconds [31m-[m Top_Seconds[31m);[m	 
      [01;34melsif[m Bot_Seconds [31m<[m Top_Seconds [01;34mthen[m
         Total_Duration [31m:=[m [31m([m[35m86400.0[m [31m-[m Top_Seconds[31m)[m [31m+[m Bot_Seconds[31m;[m         	 
	 Days [31m:=[m Days [31m-[m [35m1[m[31m;[m
      [01;34melse[m
	 Total_Duration [31m:=[m [35m0.0[m[31m;[m	 
      [01;34mend[m [01;34mif[m[31m;[m
      Formatting[31m.[m[01;30mSplit[m[31m([mTotal_Duration[31m,[m Houres[31m,[m Minutes[31m,[m Second[31m,[m Rest[31m);[m         
   [01;34mend[m Difference_In_Years[31m;[m

   
   
      [01;34mfunction[m [01;30mNormalize_Quoted_Argument[m[31m([mArg [31m:[m [01;34min[m [32mString[m[31m)[m [01;34mreturn[m [32mString[m [01;34mis[m
      Local [31m:[m [32mString[m[31m([m[35m1[m[31m..[mArg'Length[31m)[m [31m:=[m Arg[31m;[m
      Local_Index [31m:[m Natural [31m:=[m [35m0[m[31m;[m
   [01;34mbegin[m
      [01;34mfor[m I [01;34min[m Arg[31m'First .. Arg'[mLast [01;34mloop[m 
	 [01;34mif[m [01;30mArg[m[31m([mi[31m)[m [31m/=[m [31m'"'[m [01;34mthen[m
	    [01;30mLocal[m[31m([mLocal_Index [31m+[m [35m1[m[31m)[m [31m:=[m [01;30mArg[m[31m([mI[31m);[m
	    Local_Index [31m:=[m Local_Index [31m+[m [35m1[m[31m;[m
	 [01;34mend[m [01;34mif[m[31m;[m
      [01;34mend[m [01;34mloop[m[31m;[m
      [01;34mif[m Local_Index [31m/=[m [35m0[m [01;34mthen[m
	 [01;34mreturn[m [01;30mLocal[m[31m([mLocal'First[31m..[mLocal_index[31m);[m
      [01;34melse[m
	 [01;34mreturn[m Arg[31m;[m
      [01;34mend[m [01;34mif[m[31m;[m
   [01;34mend[m Normalize_Quoted_Argument[31m;[m

   
   Local_Prefix [31m:[m [01;34mconstant[m [32mString[m [31m:=[m [31m"./"[m[31m;[m
   
   [01;34mfunction[m [01;30mDelete_Local_Prefix[m[31m([mFilename [31m:[m [01;34min[m [32mString[m[31m)[m [01;34mreturn[m [32mString[m [01;34mis[m
   [01;34mbegin[m
      [01;34mif[m Filename'Length [31m>[m [35m2[m [01;34mthen[m
	 [01;34mif[m [01;30mFilename[m[31m([mFilename[31m'First..Filename'[mFirst[31m+[m[35m1[m[31m)[m [31m=[m Local_Prefix [01;34mthen[m
	    [01;34mreturn[m [01;30mFilename[m[31m([mFilename[31m'First+2..Filename'[mLast[31m);[m
	 [01;34melse[m
	    [01;34mreturn[m Filename[31m;[m
	 [01;34mend[m [01;34mif[m[31m;[m
      [01;34melse[m
	 [01;34mreturn[m Filename[31m;[m
      [01;34mend[m [01;34mif[m[31m;[m
   [01;34mend[m Delete_Local_Prefix[31m;[m
   
   [01;34mfunction[m [01;30mSearch_Regexp[m [31m([mPath [31m:[m [01;34min[m [32mString[m[31m;[m
			   Pattern [31m:[m [01;34min[m [32mString[m[31m)[m [01;34mreturn[m [32mString[m [01;34mis[m
      
      Full_Line [31m:[m Os_Lib[31m.[mString_Access [31m:=[m [01;34mnew[m [32mString[m ' [31m([m[31m""[m[31m);[m
      
      
      [01;34mprocedure[m [01;30mAction[m [31m([mFilename [31m:[m [01;34min[m [32mString[m[31m;[m
			Index    [31m:[m [01;34min[m Positive[31m;[m
			Verax    [31m:[m [01;34min[m [01;34mout[m [32mBoolean[m[31m)[m [01;34mis[m
	 
	 Buffer [31m:[m Os_Lib[31m.[mString_Access [31m:=[m [01;34mnew[m [32mString[m ' [31m([m[31m""[m[31m);[m
	 Tmp    [31m:[m Os_Lib[31m.[mString_Access [31m:=[m [01;34mnew[m [32mString[m ' [31m([m[31m""[m[31m);[m
	 
	 Is_Out [31m:[m [32mBoolean[m [31m:=[m True[31m;[m
	 Regular_Exp [31m:[m Regexp[31m.[mRegexp[31m;[m
      [01;34mbegin[m
	 
	 [31m--Text_Io.Put_line("File : "& Filename & "; Pattern : " & Pattern); [m
	 Regular_Exp [31m:=[m Regexp[31m.[m[01;30mCompile[m[31m([m[31m"*"[m [31m&[m Pattern[31m,[m True[31m,[m False[31m);[m
	 
	 
	 [01;34mif[m Regexp[31m.[m[01;30mMatch[m[31m([mFilename[31m,[m Regular_Exp[31m)[m [01;34mthen[m
	    [01;34mif[m Ada[31m.[mStrings[31m.[mFixed[31m.[m[01;30mIndex[m[31m([mFilename[31m,[m [31m" "[m[31m)[m [31m/=[m [35m0[m [01;34mthen[m
	       
	       [01;34mfor[m I [01;34min[m Filename[31m'First..Filename'[mLast[31m-[m[35m1[m [01;34mloop[m
		  [01;34mif[m [01;30mFilename[m[31m([mI[31m)[m [31m=[m [32mCharacter[m'[01;30mVal[m[31m([m[35m32[m[31m)[m [01;34mthen[m		     
		     Buffer [31m:=[m [01;34mnew[m [32mString[m ' [31m([mTmp[31m.[m[01;34mall[m [31m&[m [31m" "[m[31m);[m
		     [01;30mFree[m[31m([mTmp[31m);[m
		     Tmp [31m:=[m [01;34mnew[m [32mString[m ' [31m([mBuffer[31m.[m[01;34mall[m[31m);[m
		     [01;30mFree[m[31m([mBuffer[31m);[m
		  [01;34melsif[m [01;30mFilename[m[31m([mI[31m)[m [31m=[m [31m'/'[m [01;34mthen[m
		     [01;34mif[m Ada[31m.[mStrings[31m.[mFixed[31m.[m[01;30mIndex[m[31m([mFilename[31m,[m [31m" "[m[31m,[m I[31m)[m [31m>[m I [01;34mand[m Ada[31m.[mStrings[31m.[mFixed[31m.[m[01;30mIndex[m[31m([mFilename[31m,[m [31m"/"[m[31m,[m I[31m+[m[35m1[m[31m)[m [31m>[m Ada[31m.[mStrings[31m.[mFixed[31m.[m[01;30mIndex[m[31m([mFilename[31m,[m [31m" "[m[31m,[m I[31m)[m [01;34mthen[m
			[01;34mif[m Is_Out [01;34mthen[m
			   Buffer [31m:=[m [01;34mnew[m [32mString[m ' [31m([mTmp[31m.[m[01;34mall[m [31m&[m [01;30mFilename[m[31m([mI[31m)[m [31m&[m [31m""""[m[31m);[m
			   [01;30mFree[m[31m([mTmp[31m);[m
			   Tmp [31m:=[m [01;34mnew[m [32mString[m ' [31m([mBuffer[31m.[m[01;34mall[m[31m);[m
			   [01;30mFree[m[31m([mBuffer[31m);[m
			   Is_Out [31m:=[m False[31m;[m
			[01;34melse[m
			   Buffer [31m:=[m [01;34mnew[m [32mString[m ' [31m([mTmp[31m.[m[01;34mall[m [31m&[m [01;30mFilename[m[31m([mI[31m));[m
			   [01;30mFree[m[31m([mTmp[31m);[m
			   Tmp [31m:=[m [01;34mnew[m [32mString[m ' [31m([mBuffer[31m.[m[01;34mall[m[31m);[m
			   [01;30mFree[m[31m([mBuffer[31m);[m
			[01;34mend[m [01;34mif[m[31m;[m
			
		     [01;34melsif[m Ada[31m.[mStrings[31m.[mFixed[31m.[m[01;30mIndex[m[31m([mFilename[31m,[m [31m" "[m[31m,[m I[31m)[m [31m>[m I [01;34mand[m Ada[31m.[mStrings[31m.[mFixed[31m.[m[01;30mIndex[m[31m([mFilename[31m,[m [31m"/"[m[31m,[m I[31m+[m[35m1[m[31m)[m [31m=[m [35m0[m [01;34mthen[m
			
			[01;34mif[m Is_Out [01;34mthen[m
			   Buffer [31m:=[m [01;34mnew[m [32mString[m ' [31m([mTmp[31m.[m[01;34mall[m [31m&[m [01;30mFilename[m[31m([mI[31m)[m [31m&[m [31m""""[m[31m);[m
			   [01;30mFree[m[31m([mTmp[31m);[m
			   Tmp [31m:=[m [01;34mnew[m [32mString[m ' [31m([mBuffer[31m.[m[01;34mall[m[31m);[m
			   [01;30mFree[m[31m([mBuffer[31m);[m
			   Is_Out [31m:=[m False[31m;[m
			[01;34melse[m
			   Buffer [31m:=[m [01;34mnew[m [32mString[m ' [31m([mTmp[31m.[m[01;34mall[m [31m&[m [01;30mFilename[m[31m([mI[31m));[m
			   [01;30mFree[m[31m([mTmp[31m);[m
			   Tmp [31m:=[m [01;34mnew[m [32mString[m ' [31m([mBuffer[31m.[m[01;34mall[m[31m);[m
			   [01;30mFree[m[31m([mBuffer[31m);[m
			[01;34mend[m [01;34mif[m[31m;[m
		     [01;34melse[m
			Buffer [31m:=[m [01;34mnew[m [32mString[m ' [31m([mTmp[31m.[m[01;34mall[m [31m&[m [01;30mFilename[m[31m([mI[31m));[m
			[01;30mFree[m[31m([mTmp[31m);[m
			Tmp [31m:=[m [01;34mnew[m [32mString[m ' [31m([mBuffer[31m.[m[01;34mall[m[31m);[m
			[01;30mFree[m[31m([mBuffer[31m);[m
		     [01;34mend[m [01;34mif[m[31m;[m
		     
		  [01;34melse[m
		     Buffer [31m:=[m [01;34mnew[m [32mString[m ' [31m([mTmp[31m.[m[01;34mall[m [31m&[m [01;30mFilename[m[31m([mI[31m));[m
		     [01;30mFree[m[31m([mTmp[31m);[m
		     Tmp [31m:=[m [01;34mnew[m [32mString[m ' [31m([mBuffer[31m.[m[01;34mall[m[31m);[m
		     [01;30mFree[m[31m([mBuffer[31m);[m
		  [01;34mend[m [01;34mif[m[31m;[m
		  
	       [01;34mend[m [01;34mloop[m[31m;[m
	       Buffer [31m:=[m [01;34mnew[m [32mString[m [31m' (Tmp.all & Filename(Filename'[mLast[31m));[m
	       [01;34mif[m [01;34mnot[m Is_Out [01;34mthen[m		  
		  Buffer [31m:=[m [01;34mnew[m [32mString[m ' [31m([mTmp[31m.[m[01;34mall[m [31m&[m [31m""""[m[31m);[m
		  [01;30mFree[m[31m([mTmp[31m);[m
		  Tmp [31m:=[m [01;34mnew[m [32mString[m ' [31m([mBuffer[31m.[m[01;34mall[m[31m);[m
		  [01;30mFree[m[31m([mBuffer[31m);[m
	       [01;34mend[m [01;34mif[m[31m;[m
	       [31m--Text_Io.Put_Line("Matched :" & Full_Line.all);[m
	       [01;34mif[m Full_Line'Length [31m>[m [35m0[m [01;34mthen[m
		  Buffer [31m:=[m [01;34mnew[m [32mString[m [31m' (Full_Line.all & '[m ' [31m&[m [31m""[m [31m&[m [01;30mDelete_Local_Prefix[m[31m([mTmp[31m.[m[01;34mall[m[31m)[m [31m&[m [31m""[m[31m);[m
		  [01;30mFree[m[31m([mFull_Line[31m);[m
		  Full_Line [31m:=[m [01;34mnew[m [32mString[m ' [31m([mBuffer[31m.[m[01;34mall[m[31m);[m
		  [01;30mFree[m[31m([mBuffer[31m);[m
		  
	       [01;34melse[m
		  Buffer [31m:=[m [01;34mnew[m [32mString[m ' [31m([mFull_Line[31m.[m[01;34mall[m [31m&[m [31m""[m [31m&[m [01;30mDelete_Local_Prefix[m[31m([mTmp[31m.[m[01;34mall[m[31m)[m [31m&[m [31m""[m[31m);[m
		  [01;30mFree[m[31m([mFull_Line[31m);[m
		  Full_Line [31m:=[m [01;34mnew[m [32mString[m ' [31m([mBuffer[31m.[m[01;34mall[m[31m);[m
		  [01;30mFree[m[31m([mBuffer[31m);[m		  
	       [01;34mend[m [01;34mif[m[31m;[m
	       [31m--Text_Io.Put_Line("Matche :" & Tmp.all);[m
	    [01;34melse[m
	       [31m--Text_Io.Put_Line("Matched :" & filename);[m
	       [01;34mif[m Full_Line'Length [31m>[m [35m0[m [01;34mthen[m
		  Buffer [31m:=[m [01;34mnew[m [32mString[m [31m' (Full_Line.all & '[m ' [31m&[m  [01;30mDelete_Local_Prefix[m[31m([mfilename[31m));[m
		  [01;30mFree[m[31m([mFull_Line[31m);[m
		  Full_Line [31m:=[m [01;34mnew[m [32mString[m ' [31m([mBuffer[31m.[m[01;34mall[m[31m);[m
		  [01;30mFree[m[31m([mBuffer[31m);[m		  
	       [01;34melse[m
		  Buffer [31m:=[m [01;34mnew[m [32mString[m ' [31m([mFull_Line[31m.[m[01;34mall[m [31m&[m [31m""[m [31m&[m [01;30mDelete_Local_Prefix[m[31m([mfilename[31m)[m [31m&[m [31m""[m[31m);[m
		  [01;30mFree[m[31m([mFull_Line[31m);[m
		  Full_Line [31m:=[m [01;34mnew[m [32mString[m ' [31m([mBuffer[31m.[m[01;34mall[m[31m);[m
		  [01;30mFree[m[31m([mBuffer[31m);[m
		  
	       [01;34mend[m [01;34mif[m[31m;[m
	       [31m--Text_Io.Put_Line("Matche :" & filename);[m
	    [01;34mend[m [01;34mif[m[31m;[m
	 [01;34mend[m [01;34mif[m[31m;[m
	 Verax [31m:=[m False[31m;[m
      [01;34mend[m Action[31m;[m
      
      
      [01;34mprocedure[m File_Search [01;34mis[m
	 [01;34mnew[m Iteration[31m.[m[01;30mWildcard_iterator[m[31m([mAction[31m);[m
      
      
   [01;34mbegin[m
      
      
      [31m--Text_Io.Put_Line("pattern for : " & Expand_Path(Pattern));[m
      
      
      [01;34mif[m [01;30mExpand_Path[m[31m([mPattern[31m)[m [31m/=[m [31m""[m [01;34mthen[m
	 
	 [01;30mFile_Search[m[31m([mPath[31m);[m
      [01;34mend[m [01;34mif[m[31m;[m
      [01;34mif[m Full_Line'Length [31m>[m [35m0[m [01;34mthen[m
	 [01;34mdeclare[m
	    Result [31m:[m [01;34mconstant[m [32mString[m [31m:=[m Full_Line[31m.[m[01;34mall[m[31m;[m
	 [01;34mbegin[m
	    [01;30mFree[m[31m([mFull_Line[31m);[m
	    [01;34mreturn[m Result[31m;[m
	 [01;34mend[m[31m;[m
      [01;34melse[m
	 [01;34mreturn[m [01;30mExpand_Path[m[31m([mPattern[31m);[m
      [01;34mend[m [01;34mif[m[31m;[m
   [01;34mexception[m 
      [01;34mwhen[m [01;34mothers[m [31m=>[m
	 [01;34mif[m Full_Line'Length [31m>[m [35m0[m [01;34mthen[m
	    [01;34mdeclare[m
	       Result [31m:[m [01;34mconstant[m [32mString[m [31m:=[m Full_Line[31m.[m[01;34mall[m[31m;[m
	    [01;34mbegin[m
	       [01;30mFree[m[31m([mFull_Line[31m);[m
	       [01;34mreturn[m Result[31m;[m
	    [01;34mend[m[31m;[m
	 [01;34melse[m
	    [01;34mreturn[m [01;30mExpand_Path[m[31m([mPattern[31m);[m
	 [01;34mend[m [01;34mif[m[31m;[m
   [01;34mend[m Search_Regexp[31m;[m
   
   
   
   [01;34mfunction[m [01;30mExpand_filename[m [31m([mLine [31m:[m [01;34min[m [32mString[m[31m)[m [01;34mreturn[m [32mString[m [01;34mis[m
      
      
      Current_Dir [31m:[m [01;34mconstant[m [32mString[m [31m:=[m [31m"."[m[31m;[m
      Absolute_Path [31m:[m [01;34mconstant[m [32mCharacter[m [31m:=[m [31m'/'[m[31m;[m

      
      [01;34mprocedure[m [01;30mRecursive_Expand[m [31m([mLine [31m:[m [01;34min[m [32mString[m[31m;[m Result [31m:[m [01;34min[m [01;34mout[m Os_Lib[31m.[mString_Access[31m)[m [01;34mis[m
	 
	 Start[31m,[m Stop [31m:[m Natural [31m:=[m [35m0[m[31m;[m
      [01;34mbegin[m
	 [01;34mif[m Line'Length [31m>[m [35m1[m [01;34mthen[m	    
	    [01;34mif[m Start [31m=[m [35m0[m [01;34mthen[m
	       Start [31m:=[m Line'First[31m;[m
	    [01;34mend[m [01;34mif[m[31m;[m
	    
	    Stop [31m:=[m Ada[31m.[mStrings[31m.[mFixed[31m.[m[01;30mIndex[m[31m([mLine[31m,[m [31m" "[m[31m,[m Start[31m+[m[35m1[m[31m);[m
	    [01;34mif[m Stop [31m/=[m [35m0[m [01;34mthen[m
	       [01;34mif[m [01;30mLine[m[31m([mStart[31m)[m [31m/=[m Absolute_Path [01;34mthen[m
		  
		  Result [31m:=[m [01;34mnew[m [32mString[m [31m' (Result.all & '[m ' [31m&[m [01;30mSearch_Regexp[m[31m([m[01;30mExpand_Path[m[31m([m[01;30mLine[m[31m([mStart[31m..[mStop[31m-[m[35m1[m[31m)),[m [01;30mLine[m[31m([mStart[31m..[mStop[31m-[m[35m1[m[31m)));[m
	       [01;34melse[m		  
		  
		  Result [31m:=[m [01;34mnew[m [32mString[m [31m' (Result.all & '[m ' [31m&[m [01;30mSearch_Regexp[m[31m([m[01;30mExpand_Path[m[31m([m[01;30mLine[m[31m([mStart[31m..[mStop[31m-[m[35m1[m[31m)),[m [01;30mLine[m[31m([mStart[31m..[mStop[31m-[m[35m1[m[31m)));[m
	       [01;34mend[m [01;34mif[m[31m;[m	 	
	       [01;30mRecursive_Expand[m[31m([m[01;30mLine[m[31m([mStop[31m+[m[35m1[m[31m..[mLine'last[31m),[m Result[31m);[m
	       
	       
	    [01;34melse[m
	       
	       
	       [01;34mif[m [01;30mLine[m[31m([mStart[31m)[m [31m/=[m Absolute_Path [01;34mthen[m
		  
		  Result [31m:=[m [01;34mnew[m [32mString[m [31m' (Result.all & '[m [31m' & Search_Regexp(Expand_Path(Line(Start..Line'[mlast[31m)),[m [01;30mLine[m[31m([mStart[31m..[mLine'Last[31m)));[m
	       [01;34melse[m		  
		  
		  Result [31m:=[m [01;34mnew[m [32mString[m [31m' (Result.all & '[m [31m' & Search_Regexp(Expand_Path(Line(Start..Line'[mlast[31m)),[m [01;30mLine[m[31m([mStart[31m..[mLine'Last[31m)));[m
	       [01;34mend[m [01;34mif[m[31m;[m	 	
	       
	       
	    [01;34mend[m [01;34mif[m[31m;[m
	    
	 [01;34melse[m
	    [01;34mif[m Start [31m=[m [35m0[m [01;34mthen[m
	       Start [31m:=[m Line'First[31m;[m
	    [01;34mend[m [01;34mif[m[31m;[m
	    [01;34mif[m [01;30mLine[m[31m([mStart[31m)[m [31m/=[m Absolute_Path [01;34mthen[m
	       
	       Result [31m:=[m [01;34mnew[m [32mString[m [31m' (Result.all & '[m [31m' & Search_Regexp(Expand_Path(Line(Start..Line'[mLast[31m)),[m [01;30mLine[m[31m([mStart[31m..[mLine'Last[31m)));[m
	    [01;34melse[m		  
	       
	       Result [31m:=[m [01;34mnew[m [32mString[m [31m' (Result.all & '[m [31m' & Search_Regexp(Expand_Path(Line(Start..Line'[mlast[31m)),[m [01;30mLine[m[31m([mStart[31m..[mLine'Last[31m)));[m
	    [01;34mend[m [01;34mif[m[31m;[m	 		  
	    
	 [01;34mend[m [01;34mif[m[31m;[m
      [01;34mend[m Recursive_Expand[31m;[m
      Full_Set [31m:[m Os_Lib[31m.[mString_Access [31m:=[m [01;34mnew[m [32mString[m ' [31m([m[31m""[m[31m);[m
   [01;34mbegin[m
      
      [01;30mRecursive_Expand[m[31m([m[01;30mLine[m[31m([mAda[31m.[mStrings[31m.[mFixed[31m.[m[01;30mIndex_Non_Blank[m[31m([mLine[31m)..[mAda[31m.[mStrings[31m.[mFixed[31m.[m[01;30mIndex_Non_Blank[m[31m([mLine[31m,[m Backward[31m)),[m Full_Set[31m);[m
      [31m--Text_Io.Put_Line("Matched :" & Full_Set.all);      [m
      [01;34mif[m Full_Set'Length [31m>[m [35m0[m [01;34mthen[m
	 [01;34mdeclare[m
	    Result [31m:[m [01;34mconstant[m [32mString[m [31m:=[m Full_Set[31m.[m[01;34mall[m[31m([mAda[31m.[mStrings[31m.[mFixed[31m.[m[01;30mIndex_Non_Blank[m[31m([mFull_Set[31m.[m[01;34mall[m[31m)..[mAda[31m.[mStrings[31m.[mFixed[31m.[m[01;30mIndex_Non_Blank[m[31m([mFull_Set[31m.[m[01;34mall[m[31m,[m Backward[31m));[m
	 [01;34mbegin[m
	    [01;30mFree[m[31m([mFull_Set[31m);[m
	    [01;34mreturn[m Result[31m;[m
	 [01;34mend[m[31m;[m	 	 
      [01;34melse[m
	 [01;34mreturn[m [31m""[m[31m;[m
      [01;34mend[m [01;34mif[m[31m;[m
      
   [01;34mend[m Expand_Filename[31m;[m
   
   
   
   [01;34mprocedure[m [01;30mMakefile[m[31m([mFilename [31m:[m [01;34min[m [32mString[m[31m)[m [01;34mis[m
      
      File [31m:[m File_Type[31m;[m
   [01;34mbegin[m
      [01;30mCreate[m[31m([mFile[31m,[m Out_File[31m,[m Filename[31m,[m Form [31m=>[m [31m"WCEM=8"[m[31m);[m
      [01;30mPut_Line[m[31m([mFile[31m,[m [31m""[m[31m);[m
      [01;30mPut_Line[m[31m([mFile[31m,[m [31m"#To make Ada projects."[m[31m);[m
      [01;30mPut_Line[m[31m([mFile[31m,[m [31m"#2016-12-04"[m[31m);[m
      [01;30mPut_Line[m[31m([mFile[31m,[m [31m"#Makefile version 2.0.1"[m[31m);[m
      [01;30mPut_Line[m[31m([mFile[31m,[m [31m""[m[31m);[m
      [01;30mPut_Line[m[31m([mFile[31m,[m [31m"Project_Name=`./head 1 Project.default`"[m[31m);[m
      [01;30mPut_Line[m[31m([mFile[31m,[m [31m""[m[31m);[m
      [01;30mPut_Line[m[31m([mFile[31m,[m [31m"Sub_Projects_Names=`./tail 2 Project.default`"[m[31m);[m
      [01;30mPut_Line[m[31m([mFile[31m,[m [31m""[m[31m);[m
      [01;30mPut_Line[m[31m([mFile[31m,[m [31m"libs=`for j in \`./tail 2 Project.default\`; do echo -aI\`./head 1 Project.default\`/$$j/src/lib; done`"[m[31m);[m
      [01;30mPut_Line[m[31m([mFile[31m,[m [31m""[m[31m);[m
      [01;30mPut_Line[m[31m([mFile[31m,[m [31m"allsources=`for k in \`./tail 2 Project.default\`; do find \`./head 1 Project.default\`/$$k/src/lib -name ""*.ad?""; done`"[m[31m);[m
      [01;30mPut_Line[m[31m([mFile[31m,[m [31m""[m[31m);[m
      
      [01;30mPut_Line[m[31m([mFile[31m,[m [31m"default:"[m[31m);[m
      [01;30mPut_Line[m[31m([mFile[31m,[m [32mCharacter[m'[01;30mVal[m[31m([m[35m9[m[31m)[m [31m&[m [31m"@echo ""Par defaut, rien a faire pour etre bon."""[m[31m);[m
      [01;30mPut_Line[m[31m([mFile[31m,[m [32mCharacter[m'[01;30mVal[m[31m([m[35m9[m[31m)[m [31m&[m [31m"@echo ""Cibles restantes : """[m[31m);[m
      [01;30mPut_Line[m[31m([mFile[31m,[m [32mCharacter[m[31m'Val(9) & "@echo ""'[minfo' pour avoir les informations sur le projet [31m;[m[31m""[m"[31m);[m
      [01;30mPut_Line[m[31m([mFile[31m,[m [32mCharacter[m[31m'Val(9) & "@echo ""'[mprepare' pour fabriquer les repertoires du projet [31m;[m[31m""[m"[31m);[m
      [01;30mPut_Line[m[31m([mFile[31m,[m [32mCharacter[m[31m'Val(9) & "@echo ""'[mupdate' pour updater la version Versions[31m.[mdefault [31m;;[m et ranger le [01;30mworkspace[m [31m([ma la main[31m).[m[31m""[m"[31m);[m
      [01;30mPut_Line[m[31m([mFile[31m,[m [32mCharacter[m[31m'Val(9) & "@echo ""'[m[01;34mall[m' pour compiler le projet [31m;[m[31m""[m"[31m);[m
      [01;30mPut_Line[m[31m([mFile[31m,[m [32mCharacter[m[31m'Val(9) & "@echo ""'[menlight[31m-[msources[31m' pour collorier les sources en sequence d'[mechappement[31m""[m"[31m);[m
      [01;30mPut_Line[m[31m([mFile[31m,[m [32mCharacter[m[31m'Val(9) & "@echo ""'[mmrproper' pour supprimer les fichiers objets obtenus avec make [01;34mall[m [31m;[m[31m""[m"[31m);[m
      [01;30mPut_Line[m[31m([mFile[31m,[m [32mCharacter[m[31m'Val(9) & "@echo ""'[mclean' pour supprimer les anciens fichiers sources et les fichier objets sauf le fichier programme principal [31m;[m[31m""[m"[31m);[m
      [01;30mPut_Line[m[31m([mFile[31m,[m [32mCharacter[m[31m'Val(9) & "@echo ""'[mhelp[31m' appelle le programme with '[m[31m-[mh' option [31m;[m[31m""[m"[31m);[m
      [01;30mPut_Line[m[31m([mFile[31m,[m [32mCharacter[m[31m'Val(9) & "@echo ""'[mversion[31m' appelle le program with '[m[31m-[mv' option [31m;[m[31m""[m"[31m);[m
      [01;30mPut_Line[m[31m([mFile[31m,[m [32mCharacter[m[31m'Val(9) & "@echo ""'[mvalidate' appelle les cibles info[31m,[m help [01;34mand[m version[31m.[m[31m""[m"[31m);[m
      [01;30mPut_Line[m[31m([mFile[31m,[m [32mCharacter[m[31m'Val(9) & "@echo ""'[march[31m' pour archiver et compresser l'[marchive avec la derniere version dans Versions[31m.[mdefault [31m;[m[31m""[m"[31m);[m
      [01;30mPut_Line[m[31m([mFile[31m,[m [32mCharacter[m'[01;30mVal[m[31m([m[35m9[m[31m)[m [31m&[m [31m"@echo """""[m[31m);[m
      [01;30mPut_Line[m[31m([mFile[31m,[m [32mCharacter[m[31m'Val(9) & "@echo ""'[mperfect[31m' permet d'[mappeller la suite de cible suivante dans l[31m'odre d'[mapparition [31m:[m[31m""[m"[31m);[m
      [01;30mPut_Line[m[31m([mFile[31m,[m [32mCharacter[m'[01;30mVal[m[31m([m[35m9[m[31m)[m [31m&[m [31m"@echo """""[m[31m);[m
      [01;30mPut_Line[m[31m([mFile[31m,[m [32mCharacter[m'[01;30mVal[m[31m([m[35m9[m[31m)[m [31m&[m [31m"@echo """""[m[31m);[m
      [01;30mPut_Line[m[31m([mFile[31m,[m [32mCharacter[m'[01;30mVal[m[31m([m[35m9[m[31m)[m [31m&[m [31m"@echo ""all afin de produire le programme"""[m[31m);[m
      [01;30mPut_Line[m[31m([mFile[31m,[m [32mCharacter[m'[01;30mVal[m[31m([m[35m9[m[31m)[m [31m&[m [31m"@echo ""clean afin de supprimer les vieux fichers si la compilation a produit le programme."""[m[31m);[m
      [01;30mPut_Line[m[31m([mFile[31m,[m [32mCharacter[m'[01;30mVal[m[31m([m[35m9[m[31m)[m [31m&[m [31m"@echo ""validate afin de pouvoir comparer la version du projet et la version du programme."""[m[31m);[m  
      [01;30mPut_Line[m[31m([mFile[31m,[m [31m""[m[31m);[m	 
      
      [01;30mPut_Line[m[31m([mFile[31m,[m [31m"tail:"[m[31m);[m
      [01;30mPut_Line[m[31m([mFile[31m,[m [32mCharacter[m'[01;30mVal[m[31m([m[35m9[m[31m)[m [31m&[m [31m"gnatmake tail.adb -D obj"[m[31m);[m
      [01;30mPut_Line[m[31m([mFile[31m,[m [31m"head:"[m[31m);[m
      [01;30mPut_Line[m[31m([mFile[31m,[m [32mCharacter[m'[01;30mVal[m[31m([m[35m9[m[31m)[m [31m&[m [31m"gnatmake head.adb -D obj"[m[31m);[m
      
      
      [01;30mPut_Line[m[31m([mFile[31m,[m [31m"info:"[m[31m);[m
      [01;30mPut_Line[m[31m([mFile[31m,[m [32mCharacter[m'[01;30mVal[m[31m([m[35m9[m[31m)[m [31m&[m [31m"@echo Project Name = $(Project_Name) ;"[m[31m);[m
      [01;30mPut_Line[m[31m([mFile[31m,[m [32mCharacter[m'[01;30mVal[m[31m([m[35m9[m[31m)[m [31m&[m [31m"@echo Sub Projects Names = $(Sub_Projects_Names) ;"[m[31m);[m
      [01;30mPut_Line[m[31m([mFile[31m,[m [32mCharacter[m'[01;30mVal[m[31m([m[35m9[m[31m)[m [31m&[m [31m"@echo Project Version = `./tail -1 Versions.default`"[m[31m);[m
      [01;30mPut_Line[m[31m([mFile[31m,[m [31m""[m[31m);[m

      [01;30mPut_Line[m[31m([mFile[31m,[m [31m"prepare:"[m[31m);[m
      
      [01;30mPut_Line[m[31m([mFile[31m,[m [32mCharacter[m'[01;30mVal[m[31m([m[35m9[m[31m)[m [31m&[m "@[01;34mif[m [31m[[m [31m![m [31m-[md $[31m([mProject_Name[31m)[m [31m];[m [01;34mthen[m [31m\[m"[31m);[m
      [01;30mPut_Line[m[31m([mFile[31m,[m [32mCharacter[m[31m'Val(9) & Character'[m[01;30mVal[m[31m([m[35m9[m[31m)[m [31m&[m "mkdir [31m-[mp $[31m([mProject_Name[31m)/[mbin[31m;[m [31m\[m"[31m);[m
      [01;30mPut_Line[m[31m([mFile[31m,[m [32mCharacter[m'[01;30mVal[m[31m([m[35m9[m[31m)[m [31m&[m [31m"fi;"[m[31m);[m
      [01;30mPut_Line[m[31m([mFile[31m,[m [32mCharacter[m'[01;30mVal[m[31m([m[35m9[m[31m)[m [31m&[m [31m"@mkdir -p Documentations/sources/enlighted;"[m[31m);[m
      [01;30mPut_Line[m[31m([mFile[31m,[m [32mCharacter[m'[01;30mVal[m[31m([m[35m9[m[31m)[m [31m&[m [31m"@mkdir -p Documentations/sources/html;"[m[31m);[m
      [01;30mPut_Line[m[31m([mFile[31m,[m [32mCharacter[m'[01;30mVal[m[31m([m[35m9[m[31m)[m [31m&[m "@[01;34mif[m [31m[[m [31m-[md $[31m([mProject_Name[31m)[m [31m];[m [01;34mthen[m [31m\[m"[31m);[m
      [01;30mPut_Line[m[31m([mFile[31m,[m [32mCharacter[m[31m'Val(9) & Character'[m[01;30mVal[m[31m([m[35m9[m[31m)[m [31m&[m "[01;34mfor[m i [01;34min[m $[31m([mSub_Projects_Names[31m)[m [31m;[m [01;34mdo[m [31m\[m"[31m);[m
      [01;30mPut_Line[m[31m([mFile[31m,[m [32mCharacter[m[31m'Val(9) & Character'[m[01;30mVal[m[31m([m[35m9[m[31m)[m [31m&[m [32mCharacter[m'[01;30mVal[m[31m([m[35m9[m[31m)[m [31m&[m "[01;34mif[m [31m[[m [31m![m [31m-[md  $[31m([mProject_Name[31m)/[m$$i [31m];[m [01;34mthen[m [31m\[m"[31m);[m
      [01;30mPut_Line[m[31m([mFile[31m,[m [32mCharacter[m[31m'Val(9) & Character'[m[01;30mVal[m[31m([m[35m9[m[31m)[m [31m&[m [32mCharacter[m[31m'Val(9) & Character'[m[01;30mVal[m[31m([m[35m9[m[31m)[m [31m&[m "mkdir [31m-[mp $[31m([mProject_Name[31m)/[m$$i[31m;[m [31m\[m"[31m);[m
      [01;30mPut_Line[m[31m([mFile[31m,[m [32mCharacter[m[31m'Val(9) & Character'[m[01;30mVal[m[31m([m[35m9[m[31m)[m [31m&[m [32mCharacter[m[31m'Val(9) & Character'[m[01;30mVal[m[31m([m[35m9[m[31m)[m [31m&[m "mkdir [31m-[mp $[31m([mProject_Name[31m)/[m$$i[31m/[msrc[31m/[mlib[31m;[m [31m\[m"[31m);[m
      [01;30mPut_Line[m[31m([mFile[31m,[m [32mCharacter[m[31m'Val(9) & Character'[m[01;30mVal[m[31m([m[35m9[m[31m)[m [31m&[m [32mCharacter[m[31m'Val(9) & Character'[m[01;30mVal[m[31m([m[35m9[m[31m)[m [31m&[m "mkdir [31m-[mp $[31m([mProject_Name[31m)/[m$$i[31m/[mobj[31m;[m [31m\[m"[31m);[m
      [01;30mPut_Line[m[31m([mFile[31m,[m [32mCharacter[m[31m'Val(9) & Character'[m[01;30mVal[m[31m([m[35m9[m[31m)[m [31m&[m [32mCharacter[m'[01;30mVal[m[31m([m[35m9[m[31m)[m [31m&[m "fi[31m;[m [31m\[m"[31m);[m
      [01;30mPut_Line[m[31m([mFile[31m,[m [32mCharacter[m[31m'Val(9) & Character'[m[01;30mVal[m[31m([m[35m9[m[31m)[m [31m&[m "done[31m;[m [31m\[m"[31m);[m
      [01;30mPut_Line[m[31m([mFile[31m,[m [32mCharacter[m'[01;30mVal[m[31m([m[35m9[m[31m)[m [31m&[m [31m"fi"[m[31m);[m
      [01;30mPut_Line[m[31m([mFile[31m,[m [31m""[m[31m);[m
      [01;30mPut_Line[m[31m([mFile[31m,[m [31m"all:"[m[31m);[m
      [01;30mPut_Line[m[31m([mFile[31m,[m [32mCharacter[m'[01;30mVal[m[31m([m[35m9[m[31m)[m [31m&[m [31m"@echo ""Making graphical project : $(Project_Name)..."""[m[31m);[m
      [01;30mPut_Line[m[31m([mFile[31m,[m [32mCharacter[m'[01;30mVal[m[31m([m[35m9[m[31m)[m [31m&[m "@[01;34mfor[m i [01;34min[m $[31m([mSub_Projects_Names[31m)[m [31m;[m [01;34mdo[m [31m\[m"[31m);[m
      [01;30mPut_Line[m[31m([mFile[31m,[m [32mCharacter[m[31m'Val(9) & Character'[m[01;30mVal[m[31m([m[35m9[m[31m)[m [31m&[m "[01;34mif[m [31m[[m [31m-[mf $[31m([mProject_Name[31m)/[m$$i[31m/[msrc[31m/[m$$i[31m.[madb [31m];[m [01;34mthen[m [31m\[m"[31m);[m
      [01;30mPut_Line[m[31m([mFile[31m,[m [32mCharacter[m[31m'Val(9) & Character'[m[01;30mVal[m[31m([m[35m9[m[31m)[m [31m&[m [32mCharacter[m'[01;30mVal[m[31m([m[35m9[m[31m)[m [31m&[m "gnatmake [31m-[mWall [31m-[mgnatW8 [31m-[mgnat12 [31m-[mO3 $[31m([mProject_Name[31m)/[m$$i[31m/[msrc[31m/[m$$i[31m.[madb $[31m([mlibs[31m)[m [31m\[m"[31m);[m
      [01;30mPut_Line[m[31m([mFile[31m,[m [32mCharacter[m[31m'Val(9) & Character'[m[01;30mVal[m[31m([m[35m9[m[31m)[m [31m&[m [32mCharacter[m'[01;30mVal[m[31m([m[35m9[m[31m)[m [31m&[m "[31m-[maIPragmARC [31m-[maI[31m/[musr[31m/[mshare[31m/[mada[31m/[madainclude[31m/[maws [31m-[maO[31m./[mAWS [31m\[m"[31m);[m
      [01;30mPut_Line[m[31m([mFile[31m,[m [32mCharacter[m[31m'Val(9) & Character'[m[01;30mVal[m[31m([m[35m9[m[31m)[m [31m&[m [32mCharacter[m'[01;30mVal[m[31m([m[35m9[m[31m)[m [31m&[m "[31m-[maI[31m/[musr[31m/[mshare[31m/[mada[31m/[madainclude[31m/[mtemplates_parser [31m-[mD $[31m([mProject_Name[31m)/[m$$i[31m/[mobj[31m/[m [31m\[m"[31m);[m
      [01;30mPut_Line[m[31m([mFile[31m,[m [32mCharacter[m[31m'Val(9) & Character'[m[01;30mVal[m[31m([m[35m9[m[31m)[m [31m&[m [32mCharacter[m'[01;30mVal[m[31m([m[35m9[m[31m)[m [31m&[m "[31m-[mo $[31m([mProject_Name[31m)/[mbin[31m/[m$$i `gtkada[31m-[mconfig` [31m-[mL[31m.[m [31m-[mlgnutls [31m-[mlaws [31m-[mlz[31m;[m [31m\[m"[31m);[m
      [01;30mPut_Line[m[31m([mFile[31m,[m [32mCharacter[m[31m'Val(9) & Character'[m[01;30mVal[m[31m([m[35m9[m[31m)[m [31m&[m "fi[31m;[m [31m\[m"[31m);[m
      [01;30mPut_Line[m[31m([mFile[31m,[m [32mCharacter[m'[01;30mVal[m[31m([m[35m9[m[31m)[m [31m&[m [31m"done"[m[31m);[m
      [01;30mPut_Line[m[31m([mFile[31m,[m [31m""[m[31m);[m
      [01;30mPut_Line[m[31m([mFile[31m,[m [31m""[m[31m);[m
      [01;30mPut_Line[m[31m([mFile[31m,[m [32mCharacter[m'[01;30mVal[m[31m([m[35m9[m[31m)[m [31m&[m "[01;34mif[m [31m[[m [31m-[mx $[31m([mProject_Name[31m)/[mbin[31m/[m$[31m([mProject_Name[31m)[m [31m];[m [01;34mthen[m [31m\[m"[31m);[m
      [01;30mPut_Line[m[31m([mFile[31m,[m [32mCharacter[m[31m'Val(9) & Character'[m[01;30mVal[m[31m([m[35m9[m[31m)[m [31m&[m "strip $[31m([mProject_Name[31m)/[mbin[31m/[m$[31m([mProject_Name[31m);[m [31m\[m"[31m);[m
      [01;30mPut_Line[m[31m([mFile[31m,[m [32mCharacter[m'[01;30mVal[m[31m([m[35m9[m[31m)[m [31m&[m [31m"fi;"[m[31m);[m
      [01;30mPut_Line[m[31m([mFile[31m,[m [32mCharacter[m'[01;30mVal[m[31m([m[35m9[m[31m)[m [31m&[m [31m"@echo ""done."""[m[31m);[m
      [01;30mPut_Line[m[31m([mFile[31m,[m [31m""[m[31m);[m
      [01;30mPut_Line[m[31m([mFile[31m,[m [31m""[m[31m);[m
      [01;30mPut_Line[m[31m([mFile[31m,[m [31m"enlight-sources:"[m[31m);[m
      [01;30mPut_Line[m[31m([mFile[31m,[m [32mCharacter[m'[01;30mVal[m[31m([m[35m9[m[31m)[m [31m&[m "@[01;34mif[m [31m[[m [31m-[md $[31m([mProject_Name[31m)[m [31m];[m [01;34mthen[m [31m\[m"[31m);[m
      [01;30mPut_Line[m[31m([mFile[31m,[m [32mCharacter[m[31m'Val(9) & Character'[m[01;30mVal[m[31m([m[35m9[m[31m)[m [31m&[m "[01;34mif[m [31m[[m [31m-[md Documentations[31m/[msources[31m/[menlighted [31m];[m [01;34mthen[m [31m\[m"[31m);[m
      [01;30mPut_Line[m[31m([mFile[31m,[m [32mCharacter[m[31m'Val(9) & Character'[m[01;30mVal[m[31m([m[35m9[m[31m)[m [31m&[m [32mCharacter[m'[01;30mVal[m[31m([m[35m9[m[31m)[m [31m&[m "[01;34mfor[m l [01;34min[m $[31m([mallsources[31m);[m [01;34mdo[m [31m\[m"[31m);[m
      [01;30mPut_Line[m[31m([mFile[31m,[m [32mCharacter[m[31m'Val(9) & Character'[m[01;30mVal[m[31m([m[35m9[m[31m)[m [31m&[m [32mCharacter[m[31m'Val(9) & Character'[m[01;30mVal[m[31m([m[35m9[m[31m)[m [31m&[m "echo $$l[31m;[m [31m\[m"[31m);[m
      [01;30mPut_Line[m[31m([mFile[31m,[m [32mCharacter[m[31m'Val(9) & Character'[m[01;30mVal[m[31m([m[35m9[m[31m)[m [31m&[m [32mCharacter[m[31m'Val(9) & Character'[m[01;30mVal[m[31m([m[35m9[m[31m)[m [31m&[m "source[31m-[mhighlight [31m-[ms Ada [31m-[mf ESC [31m-[mo Documentations[31m/[msources[31m/[menlighted[31m/[m`basename $$l`[31m.[mtxt [31m-[mi $$l[31m;[m [31m\[m"[31m);[m
      [01;30mPut_Line[m[31m([mFile[31m,[m [32mCharacter[m[31m'Val(9) & Character'[m[01;30mVal[m[31m([m[35m9[m[31m)[m [31m&[m [32mCharacter[m[31m'Val(9) & Character'[m[01;30mVal[m[31m([m[35m9[m[31m)[m [31m&[m "source[31m-[mhighlight [31m-[ms Ada [31m-[mf html [31m-[mo Documentations[31m/[msources[31m/[mhtml[31m/[m`basename $$l`[31m.[mhtml [31m-[mi $$l[31m;[m [31m\[m"[31m);[m
      [01;30mPut_Line[m[31m([mFile[31m,[m [32mCharacter[m[31m'Val(9) & Character'[m[01;30mVal[m[31m([m[35m9[m[31m)[m [31m&[m [32mCharacter[m'[01;30mVal[m[31m([m[35m9[m[31m)[m [31m&[m "done[31m;[m [31m\[m"[31m);[m
      [01;30mPut_Line[m[31m([mFile[31m,[m [32mCharacter[m[31m'Val(9) & Character'[m[01;30mVal[m[31m([m[35m9[m[31m)[m [31m&[m "fi[31m;[m [31m\[m"[31m);[m
      [01;30mPut_Line[m[31m([mFile[31m,[m [32mCharacter[m[31m'Val(9) & Character'[m[01;30mVal[m[31m([m[35m9[m[31m)[m [31m&[m "[01;34mif[m [31m[[m [31m-[mf $[31m([mProject_Name[31m)/[m$[31m([mProject_Name[31m)/[msrc[31m/[m$[31m([mProject_Name[31m).[madb [31m];[m [01;34mthen[m [31m\[m"[31m);[m
      [01;30mPut_Line[m[31m([mFile[31m,[m [32mCharacter[m[31m'Val(9) & Character'[m[01;30mVal[m[31m([m[35m9[m[31m)[m [31m&[m [32mCharacter[m'[01;30mVal[m[31m([m[35m9[m[31m)[m [31m&[m "source[31m-[mhighlight [31m-[ms Ada [31m-[mf ESC [31m-[mo Documentations[31m/[msources[31m/[menlighted[31m/[m$[31m([mProject_Name[31m).[madb[31m.[mtxt [31m\[m"[31m);[m
      [01;30mPut_Line[m[31m([mFile[31m,[m [32mCharacter[m[31m'Val(9) & Character'[m[01;30mVal[m[31m([m[35m9[m[31m)[m [31m&[m [32mCharacter[m'[01;30mVal[m[31m([m[35m9[m[31m)[m [31m&[m "[31m-[mi $[31m([mProject_Name[31m)/[m$[31m([mProject_Name[31m)/[msrc[31m/[m$[31m([mProject_Name[31m).[madb[31m;[m [31m\[m"[31m);[m
      [01;30mPut_Line[m[31m([mFile[31m,[m [32mCharacter[m[31m'Val(9) & Character'[m[01;30mVal[m[31m([m[35m9[m[31m)[m [31m&[m [32mCharacter[m'[01;30mVal[m[31m([m[35m9[m[31m)[m [31m&[m "source[31m-[mhighlight [31m-[ms Ada [31m-[mf html [31m-[mo Documentations[31m/[msources[31m/[mhtml[31m/[m$[31m([mProject_Name[31m).[madb[31m.[mhtml [31m\[m"[31m);[m
      [01;30mPut_Line[m[31m([mFile[31m,[m [32mCharacter[m[31m'Val(9) & Character'[m[01;30mVal[m[31m([m[35m9[m[31m)[m [31m&[m [32mCharacter[m'[01;30mVal[m[31m([m[35m9[m[31m)[m [31m&[m "[31m-[mi $[31m([mProject_Name[31m)/[m$[31m([mProject_Name[31m)/[msrc[31m/[m$[31m([mProject_Name[31m).[madb[31m;[m [31m\[m"[31m);[m
      [01;30mPut_Line[m[31m([mFile[31m,[m [32mCharacter[m[31m'Val(9) & Character'[m[01;30mVal[m[31m([m[35m9[m[31m)[m [31m&[m "fi[31m;[m [31m\[m"[31m);[m
      [01;30mPut_Line[m[31m([mFile[31m,[m [32mCharacter[m'[01;30mVal[m[31m([m[35m9[m[31m)[m [31m&[m [31m"fi;"[m[31m);[m
      [01;30mPut_Line[m[31m([mFile[31m,[m [31m""[m[31m);[m
      
      [01;30mPut_Line[m[31m([mFile[31m,[m [31m"mrproper:"[m[31m);[m
      [01;30mPut_Line[m[31m([mFile[31m,[m [32mCharacter[m'[01;30mVal[m[31m([m[35m9[m[31m)[m [31m&[m "[01;34mfor[m i [01;34min[m $[31m([mSub_Projects_Names[31m)[m [31m;[m [01;34mdo[m [31m\[m"[31m);[m
      [01;30mPut_Line[m[31m([mFile[31m,[m [32mCharacter[m[31m'Val(9) & Character'[m[01;30mVal[m[31m([m[35m9[m[31m)[m [31m&[m "rm [31m-[mf $[31m([mProject_Name[31m)/[m$$i[31m/[mobj[31m/*;[m [31m\[m"[31m);[m
      [01;30mPut_Line[m[31m([mFile[31m,[m [32mCharacter[m[31m'Val(9) & Character'[m[01;30mVal[m[31m([m[35m9[m[31m)[m [31m&[m "rm [31m-[mf $[31m([mProject_Name[31m)/[m$$i[31m/[msrc[31m/[mlib[31m/*~;[m [31m\[m"[31m);[m
      [01;30mPut_Line[m[31m([mFile[31m,[m [32mCharacter[m[31m'Val(9) & Character'[m[01;30mVal[m[31m([m[35m9[m[31m)[m [31m&[m "rm [31m-[mf $[31m([mProject_Name[31m)/[m$$i[31m/[msrc[31m/*~;[m [31m\[m"[31m);[m
      [01;30mPut_Line[m[31m([mFile[31m,[m [32mCharacter[m[31m'Val(9) & Character'[m[01;30mVal[m[31m([m[35m9[m[31m)[m [31m&[m "rm [31m-[mf $[31m([mProject_Name[31m)/[mbin[31m/[m$[31m([mProject_Name[31m);[m [31m\[m"[31m);[m
      [01;30mPut_Line[m[31m([mFile[31m,[m [32mCharacter[m'[01;30mVal[m[31m([m[35m9[m[31m)[m [31m&[m [31m"done"[m[31m);[m
      [01;30mPut_Line[m[31m([mFile[31m,[m [31m""[m[31m);[m
      
      [01;30mPut_Line[m[31m([mFile[31m,[m [31m"clean:"[m[31m);[m
      [01;30mPut_Line[m[31m([mFile[31m,[m [32mCharacter[m'[01;30mVal[m[31m([m[35m9[m[31m)[m [31m&[m "[01;34mif[m [31m[[m [31m-[mx [31m./[m$[31m([mProject_Name[31m)/[mbin[31m/[m$[31m([mProject_Name[31m)[m [31m];[m [01;34mthen[m [31m\[m"[31m);[m
      [01;30mPut_Line[m[31m([mFile[31m,[m [32mCharacter[m[31m'Val(9) & Character'[m[01;30mVal[m[31m([m[35m9[m[31m)[m [31m&[m "[01;34mfor[m i [01;34min[m $[31m([mSub_Projects_Names[31m)[m [31m;[m [01;34mdo[m [31m\[m"[31m);[m
      [01;30mPut_Line[m[31m([mFile[31m,[m [32mCharacter[m[31m'Val(9) & Character'[m[01;30mVal[m[31m([m[35m9[m[31m)[m [31m&[m [32mCharacter[m'[01;30mVal[m[31m([m[35m9[m[31m)[m [31m&[m "rm [31m-[mf $[31m([mProject_Name[31m)/[m$$i[31m/[mobj[31m/*;[m [31m\[m"[31m);[m
      [01;30mPut_Line[m[31m([mFile[31m,[m [32mCharacter[m[31m'Val(9) & Character'[m[01;30mVal[m[31m([m[35m9[m[31m)[m [31m&[m "done[31m;[m [31m\[m"[31m);[m
      [01;30mPut_Line[m[31m([mFile[31m,[m [32mCharacter[m'[01;30mVal[m[31m([m[35m9[m[31m)[m [31m&[m [31m"fi;"[m[31m);[m
      [01;30mPut_Line[m[31m([mFile[31m,[m [31m""[m[31m);[m
      [01;30mPut_Line[m[31m([mFile[31m,[m [31m"validate: info help version"[m[31m);[m
      [01;30mPut_Line[m[31m([mFile[31m,[m [31m""[m[31m);[m
      
      [01;30mPut_Line[m[31m([mFile[31m,[m [31m"help:"[m[31m);[m
      [01;30mPut_Line[m[31m([mFile[31m,[m [32mCharacter[m'[01;30mVal[m[31m([m[35m9[m[31m)[m [31m&[m "[01;34mif[m [31m[[m [31m-[mx [31m./[m$[31m([mProject_Name[31m)/[mbin[31m/[m$[31m([mProject_Name[31m)[m [31m];[m [01;34mthen[m [31m\[m"[31m);[m
      [01;30mPut_Line[m[31m([mFile[31m,[m [32mCharacter[m[31m'Val(9) & Character'[m[01;30mVal[m[31m([m[35m9[m[31m)[m [31m&[m "$[31m([mProject_Name[31m)/[mbin[31m/[m$[31m([mProject_Name[31m)[m [31m-[mh[31m;[m [31m\[m"[31m);[m
      [01;30mPut_Line[m[31m([mFile[31m,[m [32mCharacter[m'[01;30mVal[m[31m([m[35m9[m[31m)[m [31m&[m [31m"fi;"[m[31m);[m
      [01;30mPut_Line[m[31m([mFile[31m,[m [31m"version:"[m[31m);[m
      [01;30mPut_Line[m[31m([mFile[31m,[m [32mCharacter[m'[01;30mVal[m[31m([m[35m9[m[31m)[m [31m&[m "[01;34mif[m [31m[[m [31m-[mx [31m./[m$[31m([mProject_Name[31m)/[mbin[31m/[m$[31m([mProject_Name[31m)[m [31m];[m [01;34mthen[m [31m\[m"[31m);[m
      [01;30mPut_Line[m[31m([mFile[31m,[m [32mCharacter[m[31m'Val(9) & Character'[m[01;30mVal[m[31m([m[35m9[m[31m)[m [31m&[m [31m"echo ""$(Project_Name) version : "[m"[31m;[m $[31m([mProject_Name[31m)/[mbin[31m/[m$[31m([mProject_Name[31m)[m [31m-[mv[31m;[m [31m\[m"[31m);[m
      [01;30mPut_Line[m[31m([mFile[31m,[m [32mCharacter[m'[01;30mVal[m[31m([m[35m9[m[31m)[m [31m&[m [31m"fi;"[m[31m);[m
      [01;30mPut_Line[m[31m([mFile[31m,[m [31m""[m[31m);[m
      
      [01;30mPut_Line[m[31m([mFile[31m,[m [31m"update:"[m[31m);[m
      [01;30mPut_Line[m[31m([mFile[31m,[m [32mCharacter[m'[01;30mVal[m[31m([m[35m9[m[31m)[m [31m&[m [31m"./tail -1 Versions.default >> History.txt"[m[31m);[m
      [01;30mPut_Line[m[31m([mFile[31m,[m [31m""[m[31m);[m
      [01;30mPut_Line[m[31m([mFile[31m,[m [31m"arch:"[m[31m);[m
      [01;30mPut_Line[m[31m([mFile[31m,[m [32mCharacter[m'[01;30mVal[m[31m([m[35m9[m[31m)[m [31m&[m "tar [31m-[mc [31m-[mv [31m-[mz [31m-[mf $[31m([mProject_Name[31m)-[m`[31m./[mtail [31m-[m[35m1[m Versions[31m.[mdefault`[31m.[mtgz [31m\[m"[31m);[m
      [01;30mPut_Line[m[31m([mFile[31m,[m [32mCharacter[m'[01;30mVal[m[31m([m[35m9[m[31m)[m [31m&[m "$[31m([mProject_Name[31m)[m [31m\[m"[31m);[m
      [01;30mPut_Line[m[31m([mFile[31m,[m [32mCharacter[m'[01;30mVal[m[31m([m[35m9[m[31m)[m [31m&[m "Makefile Project[31m.[mdefault Versions[31m.[mdefault gpl[31m.[mtxt History[31m.[mtxt [31m\[m"[31m);[m
      [01;30mPut_Line[m[31m([mFile[31m,[m [32mCharacter[m'[01;30mVal[m[31m([m[35m9[m[31m)[m [31m&[m [31m"Documentations Howto.txt head.adb tail.adb"[m[31m);[m
      [01;30mPut_Line[m[31m([mFile[31m,[m [31m""[m[31m);[m
      [01;30mPut_Line[m[31m([mFile[31m,[m [31m"perfect: all clean validate"[m[31m);[m      
      [01;30mClose[m[31m([mFile[31m);[m
   
   [01;34mend[m Makefile[31m;[m
   

[01;34mend[m Gnos[31m.[mTools[31m;[m
