package Ex_Machina is
pragma Pure (Ex_Machina);
type Version_Flags is (Major, Minor, Rev, Release);
-- the flags of version.
type Major_Type is (Alpha, Terra, Omega);
-- alpha : initialization ;
-- Terra : adjustement ;
-- omega : finalization.
type Minor_Type is (Debug, Release, Test);
-- Debug : development ;
-- Release : publication ;
-- Test : testing.
type Revision_Type is (Manual, Machine);
-- Manual : human development ;
-- Machine : A.I. development.
Line_First : constant Positive := 1;
Line_Last : constant Positive := 256;
subtype Line_Length_Max_Type is Positive range Line_first..Line_Last;
type Name_Type is array (Line_Length_Max_Type range <> ) of Wide_Character;
type Release_Type is
record
Author : Name_Type(Line_First..14) := "Ada ";
Lang : Name_Type(Line_First..14) := "fr ";
Copyright : Name_Type(Line_First..28) := "Copyleft (L) The matrix 2014";
Date : Name_Type(Line_First..25) := "mercredi 26 novembre 2014";
License : Name_Type(Line_First..26) := "Gnu General Public License";
Program : Name_Type(Line_First..14) := "Chaos Ex Digit";
end record;
type Version_Type(Major : Major_Type := Alpha;
Minor : Minor_Type := Debug;
Revision : Revision_Type := Manual) is
record
Release : Release_Type;
end record;
Initial_Version : constant Version_Type :=
(
Alpha, Debug, Manual,
(
Author => "Ada ",
Lang => "fr ",
Copyright => "Copyleft (L) The matrix 2014",
Date => "mercredi 26 novembre 2014",
License => "Gnu General Public License",
Program => "Chaos Ex Digit"
)
);
end Ex_Machina;