[31m-- Date := 2016-11-27 23:02:04 ; [m
[31m-- Version := 2016.17.1a ; [m

[01;34mpackage[m [01;34mbody[m Gnos[31m.[mLexical [01;34mis[m
      [01;34mpackage[m [01;34mbody[m Code_Random [01;34mis[m
	 
	 Alphabet [31m:[m [01;34mconstant[m [32mString[m [31m:=[m [31m"abcdefghijklmnopqrstuvwxyz"[m[31m;[m
	 
	 [01;34msubtype[m Digit_Type [01;34mis[m Positive [01;34mrange[m [35m1[m[31m..[mAlphabet'Length[31m;[m
	 
	 [01;34mpackage[m Digit_Random [01;34mis[m [01;34mnew[m Ada[31m.[mNumerics[31m.[m[01;30mDiscrete_Random[m[31m([mDigit_Type[31m);[m
	 [01;34muse[m Digit_Random[31m;[m
	 Digit_Gen [31m:[m Digit_Random[31m.[mGenerator[31m;[m
	 
	 [01;34mprocedure[m  Reset [01;34mis[m
	 [01;34mbegin[m
	    [01;30mReset[m[31m([mDigit_Gen[31m);[m
	 [01;34mend[m Reset[31m;[m
	 
	 [01;34mfunction[m [01;30mRandom[m[31m([mLength [31m:[m [01;34min[m Positive[31m)[m [01;34mreturn[m [32mString[m [01;34mis[m
	    
	    Code [31m:[m [32mString[m[31m([m[35m1[m[31m..[mLength[31m);[m
	    Lock [31m:[m [32mBoolean[m [31m:=[m True[31m;[m
	    Char [31m:[m [32mCharacter[m[31m;[m
	    Index [31m:[m natural [31m:=[m [35m0[m[31m;[m
	 [01;34mbegin[m	    
	    [01;34mwhile[m Index [31m+[m [35m1[m [31m<=[m Length [01;34mloop[m	       
	       char [31m:=[m [01;30mAlphabet[m[31m([m[01;30mRandom[m[31m([mDigit_Gen[31m));[m
	       [01;34mif[m Index [31m+[m [35m1[m [31m=[m Length [01;34mthen[m
		  Lock [31m:=[m True[31m;[m
	       [01;34mend[m [01;34mif[m[31m;[m
	       [01;34mif[m [01;34mnot[m Lock [01;34mthen[m
		  [01;34mif[m char [31m=[m [31m'.'[m [01;34mor[m char [31m=[m [31m'-'[m [01;34mthen[m
		     Lock [31m:=[m True[31m;[m
		  [01;34mend[m [01;34mif[m[31m;[m
		  [01;30mCode[m[31m([mIndex [31m+[m [35m1[m[31m)[m [31m:=[m Char[31m;[m
		  Index [31m:=[m Index [31m+[m [35m1[m[31m;[m
	       [01;34melsif[m char [31m/=[m [31m'.'[m [01;34mand[m char [31m/=[m [31m'-'[m [01;34mthen[m		  
		  [01;30mCode[m[31m([mIndex [31m+[m [35m1[m[31m)[m [31m:=[m Char[31m;[m
		  Index [31m:=[m Index [31m+[m [35m1[m[31m;[m		  		  
		  Lock [31m:=[m False[31m;[m	       
	       [01;34mend[m [01;34mif[m[31m;[m
	    [01;34mend[m [01;34mloop[m[31m;[m	    
	    [01;34mreturn[m Code[31m;[m
	 [01;34mend[m Random[31m;[m
      [01;34mend[m Code_Random[31m;[m

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

