[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-11-27 19:33:08 ; [m
[31m-- Description : Ada Generic Neural Object System Engineering.                                                                                              --[m
[31m-- Version     := 2016.12.1a ; [m
[31m-- Authors     : Manuel De Girardi.                                                                                                                         --[m
[31m--------------------------------------------------------------------------------------------------------------------------------------------------------------[m
[01;34mwith[m Ada[31m.[mWide_Text_Io[31m;[m
[01;34mwith[m Ada[31m.[mText_Io[31m;[m
[01;34muse[m Ada[31m;[m

[01;34mpackage[m [01;34mbody[m Gnos[31m.[mMachines [01;34mis[m
   
   [01;34mprocedure[m [01;30minitialize[m[31m([mLanguage_Context [31m:[m [01;34min[m [01;34mout[m Language_Context_Record[31m;[m
			Language_Params  [31m:[m [01;34min[m Language_Parameters_Type[31m)[m [01;34mis[m
   [01;34mbegin[m
      Language_Context[31m.[mLanguage_params [31m:=[m Language_Params[31m;[m      
      Agnose_Projects[31m.[m[01;30mInitialize[m[31m([m[01;30mProjects_Context_Record[m[31m([mLanguage_Context[31m),[m [01;30mProjects_Parameters_Type[m[31m([mLanguage_Params[31m));[m
   [01;34mend[m Initialize[31m;[m
   
   [01;34mprocedure[m [01;30mLoad_project[m[31m([mLanguage_Context [31m:[m [01;34min[m [01;34mout[m Language_Context_Record[31m;[m			
			  Ada_Path [31m:[m [01;34min[m [32mString[m[31m;[m
			  Gtk_Path [31m:[m [01;34min[m [32mString[m[31m;[m
			  Aws_Path [31m:[m [01;34min[m [32mString[m[31m;[m
			  Project_Path [31m:[m [01;34min[m [32mString[m[31m)[m [01;34mis[m
      
      Ada_Type [31m:[m [01;34mconstant[m Ada_With_Type [31m:=[m Ada_With_Type[31m'Val(Boolean'[m[01;30mPos[m[31m([mLanguage_Context[31m.[mLanguage_Params[31m.[mWith_Ada[31m));[m
      Gtk_Type [31m:[m [01;34mconstant[m Gtk_With_Type [31m:=[m Gtk_With_Type[31m'Val(Boolean'[m[01;30mPos[m[31m([mLanguage_Context[31m.[mLanguage_Params[31m.[mWith_Gtk[31m));[m
      Aws_Type [31m:[m [01;34mconstant[m Aws_With_Type [31m:=[m Aws_With_Type[31m'Val(Boolean'[m[01;30mPos[m[31m([mLanguage_Context[31m.[mLanguage_Params[31m.[mWith_Aws[31m));[m
      
   [01;34mbegin[m
            

      [01;34mcase[m Gtk_Type [01;34mis[m
	 [01;34mwhen[m Without_Gtk [31m=>[m
	    [01;34mcase[m Ada_Type [01;34mis[m
	       [01;34mwhen[m without_Ada [31m=>[m
		  		  
		  Language_Context[31m.[mProject [31m:=[m [01;34mnew[m [01;30mProject_Without_Ada_Record_Type[m[31m([mWithout_Gtk[31m);[m
	       [01;34mwhen[m [01;34mothers[m [31m=>[m
		  
		  Language_Context[31m.[mProject [31m:=[m [01;34mnew[m [01;30mProject_With_Ada_Record_Type[m[31m([mWithout_Gtk[31m);[m
		  Language_Context[31m.[mProject[31m.[m[01;30mLoad_Ada[m[31m([mPath_Name [31m=>[m Ada_Path[31m);[m
	    [01;34mend[m [01;34mcase[m[31m;[m      
	 [01;34mwhen[m [01;34mothers[m [31m=>[m
	    [01;34mcase[m Ada_Type [01;34mis[m
	       
	       [01;34mwhen[m without_Ada [31m=>[m
		  
		  Language_Context[31m.[mProject [31m:=[m [01;34mnew[m [01;30mProject_Without_Ada_Record_Type[m[31m([mWith_Gtk[31m);[m
	       [01;34mwhen[m [01;34mothers[m [31m=>[m
		  
		  Language_Context[31m.[mProject [31m:=[m [01;34mnew[m [01;30mProject_With_Ada_Record_Type[m[31m([mWith_Gtk[31m);[m
		  Language_Context[31m.[mProject[31m.[m[01;30mLoad_Ada[m[31m([mPath_Name [31m=>[m Ada_Path[31m);[m
	    [01;34mend[m [01;34mcase[m[31m;[m
	    
	    Language_Context[31m.[mProject[31m.[m[01;30mLoad_GtkAda[m[31m([mPath_Name [31m=>[m Gtk_Path[31m);[m
      [01;34mend[m [01;34mcase[m[31m;[m

      [01;34mcase[m Aws_Type [01;34mis[m
	 [01;34mwhen[m Without_Aws [31m=>[m
	    [01;34mnull[m[31m;[m
	 [01;34mwhen[m [01;34mothers[m [31m=>[m	    
	    
	    Language_Context[31m.[mProject[31m.[m[01;30mLoad_Aws[m[31m([mPath_Name [31m=>[m Aws_Path[31m);[m
      [01;34mend[m [01;34mcase[m[31m;[m
      
      Language_Context[31m.[mProject[31m.[m[01;30mLoad_Project[m[31m([mProject_Path[31m);[m
      
   [01;34mend[m Load_Project[31m;[m	 
   
   

   [01;34mfunction[m [01;30mCheck_Parameters[m[31m([mLanguage_Context [31m:[m [01;34min[m Language_Context_Record'Class[31m;[m
			     Params [31m:[m [01;34min[m Parameters[31m.[mLanguage_Parameters_Type'class[31m)[m [01;34mreturn[m [32mBoolean[m [01;34mis[m
      
      Checked [31m:[m [32mBoolean[m [31m:=[m False[31m;[m
      
   [01;34mbegin[m
      Wide_Text_Io[31m.[m[01;30mPut[m[31m([m[31m"Language Context :"[m[31m);[m
      Checked [31m:=[m Language_Context[31m.[mLanguage_Params [31m=[m [01;30mLanguage_Parameters_Type[m[31m([mParams[31m);[m
      
      [01;34mif[m [01;34mnot[m Checked [01;34mthen[m	 
	 [01;34mif[m Language_Context[31m.[mLanguage_Params[31m.[mChar_Max [31m/=[m [01;30mLanguage_Parameters_Type[m[31m([mParams[31m).[mChar_Max [01;34mthen[m
	    Text_Io[31m.[mNew_Line[31m;[m
	    Text_Io[31m.[m[01;30mPut_Line[m[31m([m[31m"Char_Max : "[m [31m&[m 
		       [32mInteger[m'[01;30mImage[m[31m([mLanguage_Context[31m.[mLanguage_Params[31m.[mChar_Max[31m)[m [31m&[m [31m" /= "[m [31m&[m
		       [32mInteger[m'[01;30mImage[m[31m([m[01;30mLanguage_Parameters_Type[m[31m([mParams[31m).[mChar_Max[31m));[m
	 [01;34mend[m [01;34mif[m[31m;[m
	 [01;34mif[m Language_Context[31m.[mLanguage_Params[31m.[mVersion [31m/=[m [01;30mLanguage_Parameters_Type[m[31m([mParams[31m).[mVersion [01;34mthen[m
	    Text_Io[31m.[m[01;30mPut_Line[m[31m([m[31m"Version : "[m [31m&[m 
		       [32mInteger[m'[01;30mImage[m[31m([mLanguage_Context[31m.[mLanguage_Params[31m.[mVersion[31m)[m [31m&[m [31m" /= "[m [31m&[m
		       [32mInteger[m'[01;30mImage[m[31m([m[01;30mLanguage_Parameters_Type[m[31m([mParams[31m).[mVersion[31m));[m	    
	 [01;34mend[m [01;34mif[m[31m;[m
	 [01;34mraise[m Program_Error[31m;[m
      [01;34mend[m [01;34mif[m[31m;[m
      Wide_Text_Io[31m.[m[01;30mPut[m[31m([m[31m"Ok, "[m[31m);[m
      Checked [31m:=[m Checked [01;34mand[m Agnose_Projects[31m.[m[01;30mCheck_Parameters[m[31m([m[01;30mProjects_Context_Record[m[31m([mLanguage_Context[31m),[m params[31m);[m
      [01;34mreturn[m Checked[31m;[m
   [01;34mend[m Check_Parameters[31m;[m
   
   
   [01;34mprocedure[m [01;30mLoad_Language[m[31m([mLanguage_Set [31m:[m [01;34min[m [01;34mout[m Language_Set_Array_Type[31m;[m Machine_Lang [31m:[m [01;34min[m Machine_Lang_Enum[31m)[m [01;34mis[m
      
   [01;34mbegin[m
      Text_Io[31m.[m[01;30mPut_Line[m[31m([m[31m"Creating Machine Language for : "[m [31m&[m Machine_Lang_Enum'[01;30mImage[m[31m([mMachine_Lang[31m));[m
      [01;30mLanguage_Set[m[31m([mMachine_Lang[31m)[m [31m:=[m [01;34mnew[m Language_Unit_Record ' [31m([mMachine_Lang [31m=>[m Machine_Lang[31m);[m
   [01;34mend[m Load_Language[31m;[m
   
[01;34mend[m Gnos[31m.[mMachines[31m;[m
