
(* lexical analyzer template (TP Lex V3.0), V1.0 3-2-91 AG *)

(* global definitions: *)
	(* Programme LEX pour l'analyse lexicale du langage
	GALILEO version MIAS2 1999 *)

	(* La procedure ecrirec (Ècrivant un caractËre) n'est pas implantÈe *)

	var   code : integer ;  	(* pour la procÈdure val *)

	function rechercher ( s : string ; var i : integer ) : boolean ;
	var j : integer ;
	begin 
		if length( s ) > 25 then s := copy( s, 1, 25) ;
		for j := 1 to length( s ) do s[j] := upcase( s[j] ) ;
		i := 1 ;
		while ((i <= longueur) and (table[i].nom <> s)) do i := i + 1 ;
		if i <= longueur then rechercher := true
		else begin
			longueur := longueur + 1 ;
			if longueur <= TMax then begin 
				table[longueur].nom := s ;
				rechercher := false
			end
			else begin
				writeln( 'La table est pleine.' ) ;
				halt(1)
			end
		end
	end ;
		(* Le traitement des mots-clefs peut se faire de facon
		plus economique en utilisant une table qui leur est
		propre : voir par exemple le fichier Paslex.l *)



function yylex : Integer;

procedure yyaction ( yyruleno : Integer );
  (* local definitions: *)

begin
  (* actions: *)
  case yyruleno of
  1:
       		;

  2:
           	return( programme ) ;

  3:
          	return( retourne ) ;

  4:
      		return( fin ) ;

  5:
           	return( variables ) ;

  6:
        	return( entier ) ;

  7:
         	return( tableau ) ;

  8:
    		return( si ) ;

  9:
       		return( alors ) ;

  10:
       		return( sinon ) ;

  11:
         	return( tantque ) ;

  12:
       		return( faire ) ;

  13:
        	return( ecrire ) ;

  14:
         	return( ecrirec ) ;

  15:
      		return( lire ) ;

  16:
    		begin yylval.yyinteger := ET ; return( opmult ) end ;

  17:
   		begin yylval.yyinteger := MUL ; return( opmult ) end ;

  18:
    		begin yylval.yyinteger := OU ; return( opadd ) end ;

  19:
   		begin yylval.yyinteger := ADD ; return( opadd ) end ;

  20:
     		return( non ) ;

  21:
   		begin yylval.yyinteger := EQU ; return( oprel ) end ;

  22:
    		begin yylval.yyinteger := GEQ ; return( oprel ) end ;

  23:
    		begin yylval.yyinteger := LEQ ; return( oprel ) end ;

  24:
   		begin yylval.yyinteger := LES ; return( oprel ) end ;

  25:
   		begin yylval.yyinteger := GRT ; return( oprel ) end ;

  26:
    		begin yylval.yyinteger := NEQ ; return( oprel ) end ;

  27:
    		return( affect ) ;

  28:
           	begin
			val(yytext, yylval.yyinteger, code ) ;
			if code = 0 then return( nb )
			else begin
				write('Entier non convenable, ligne : ') ;
				writeln(yylineno) ;
				halt(1)
			end
		end ;

  29:
                    
		if rechercher( yytext, yylval.yyinteger ) = recherche then return( id )
		else begin
			if recherche then write('Indentificateur inconnu : ')
			else	write('Identificateur dÈjý dÈclarÈ : ') ;
			writeln(yytext, ' (ligne : ', yylineno, ')' ) ;
			halt(1)
		end ;

  30:
                           		
		returnc( yytext[1] ) ;

  31:
 		begin
			write('Symbole inconnu : ' , yytext[1] ) ;
			writeln( ' (ligne : ', yylineno, ')' ) ;
			halt(1)
		end ;

  end;
end(*yyaction*);

(* DFA table: *)

type YYTRec = record
                cc : set of Char;
                s  : Integer;
              end;

const

yynmarks   = 135;
yynmatches = 135;
yyntrans   = 201;
yynstates  = 98;

yyk : array [1..yynmarks] of Integer = (
  { 0: }
  { 1: }
  { 2: }
  1,
  { 3: }
  29,
  31,
  { 4: }
  29,
  31,
  { 5: }
  29,
  31,
  { 6: }
  29,
  31,
  { 7: }
  29,
  31,
  { 8: }
  29,
  31,
  { 9: }
  29,
  31,
  { 10: }
  29,
  31,
  { 11: }
  29,
  31,
  { 12: }
  17,
  31,
  { 13: }
  29,
  31,
  { 14: }
  19,
  31,
  { 15: }
  29,
  31,
  { 16: }
  21,
  31,
  { 17: }
  25,
  31,
  { 18: }
  24,
  31,
  { 19: }
  30,
  31,
  { 20: }
  30,
  31,
  { 21: }
  28,
  31,
  { 22: }
  29,
  31,
  { 23: }
  30,
  31,
  { 24: }
  1,
  31,
  { 25: }
  31,
  { 26: }
  29,
  { 27: }
  29,
  { 28: }
  29,
  { 29: }
  29,
  { 30: }
  29,
  { 31: }
  29,
  { 32: }
  29,
  { 33: }
  29,
  { 34: }
  16,
  29,
  { 35: }
  29,
  { 36: }
  8,
  29,
  { 37: }
  29,
  { 38: }
  29,
  { 39: }
  18,
  29,
  { 40: }
  28,
  { 41: }
  29,
  { 42: }
  22,
  { 43: }
  23,
  { 44: }
  26,
  { 45: }
  27,
  { 46: }
  29,
  { 47: }
  29,
  { 48: }
  4,
  29,
  { 49: }
  29,
  { 50: }
  29,
  { 51: }
  29,
  { 52: }
  29,
  { 53: }
  29,
  { 54: }
  29,
  { 55: }
  29,
  { 56: }
  29,
  { 57: }
  29,
  { 58: }
  20,
  29,
  { 59: }
  29,
  { 60: }
  29,
  { 61: }
  29,
  { 62: }
  29,
  { 63: }
  29,
  { 64: }
  29,
  { 65: }
  29,
  { 66: }
  29,
  { 67: }
  29,
  { 68: }
  29,
  { 69: }
  15,
  29,
  { 70: }
  29,
  { 71: }
  29,
  { 72: }
  12,
  29,
  { 73: }
  29,
  { 74: }
  29,
  { 75: }
  29,
  { 76: }
  29,
  { 77: }
  29,
  { 78: }
  10,
  29,
  { 79: }
  9,
  29,
  { 80: }
  29,
  { 81: }
  29,
  { 82: }
  29,
  { 83: }
  6,
  29,
  { 84: }
  13,
  29,
  { 85: }
  29,
  { 86: }
  29,
  { 87: }
  29,
  { 88: }
  29,
  { 89: }
  29,
  { 90: }
  14,
  29,
  { 91: }
  7,
  29,
  { 92: }
  11,
  29,
  { 93: }
  29,
  { 94: }
  3,
  29,
  { 95: }
  29,
  { 96: }
  2,
  29,
  { 97: }
  5,
  29
);

yym : array [1..yynmatches] of Integer = (
{ 0: }
{ 1: }
{ 2: }
  1,
{ 3: }
  29,
  31,
{ 4: }
  29,
  31,
{ 5: }
  29,
  31,
{ 6: }
  29,
  31,
{ 7: }
  29,
  31,
{ 8: }
  29,
  31,
{ 9: }
  29,
  31,
{ 10: }
  29,
  31,
{ 11: }
  29,
  31,
{ 12: }
  17,
  31,
{ 13: }
  29,
  31,
{ 14: }
  19,
  31,
{ 15: }
  29,
  31,
{ 16: }
  21,
  31,
{ 17: }
  25,
  31,
{ 18: }
  24,
  31,
{ 19: }
  30,
  31,
{ 20: }
  30,
  31,
{ 21: }
  28,
  31,
{ 22: }
  29,
  31,
{ 23: }
  30,
  31,
{ 24: }
  1,
  31,
{ 25: }
  31,
{ 26: }
  29,
{ 27: }
  29,
{ 28: }
  29,
{ 29: }
  29,
{ 30: }
  29,
{ 31: }
  29,
{ 32: }
  29,
{ 33: }
  29,
{ 34: }
  16,
  29,
{ 35: }
  29,
{ 36: }
  8,
  29,
{ 37: }
  29,
{ 38: }
  29,
{ 39: }
  18,
  29,
{ 40: }
  28,
{ 41: }
  29,
{ 42: }
  22,
{ 43: }
  23,
{ 44: }
  26,
{ 45: }
  27,
{ 46: }
  29,
{ 47: }
  29,
{ 48: }
  4,
  29,
{ 49: }
  29,
{ 50: }
  29,
{ 51: }
  29,
{ 52: }
  29,
{ 53: }
  29,
{ 54: }
  29,
{ 55: }
  29,
{ 56: }
  29,
{ 57: }
  29,
{ 58: }
  20,
  29,
{ 59: }
  29,
{ 60: }
  29,
{ 61: }
  29,
{ 62: }
  29,
{ 63: }
  29,
{ 64: }
  29,
{ 65: }
  29,
{ 66: }
  29,
{ 67: }
  29,
{ 68: }
  29,
{ 69: }
  15,
  29,
{ 70: }
  29,
{ 71: }
  29,
{ 72: }
  12,
  29,
{ 73: }
  29,
{ 74: }
  29,
{ 75: }
  29,
{ 76: }
  29,
{ 77: }
  29,
{ 78: }
  10,
  29,
{ 79: }
  9,
  29,
{ 80: }
  29,
{ 81: }
  29,
{ 82: }
  29,
{ 83: }
  6,
  29,
{ 84: }
  13,
  29,
{ 85: }
  29,
{ 86: }
  29,
{ 87: }
  29,
{ 88: }
  29,
{ 89: }
  29,
{ 90: }
  14,
  29,
{ 91: }
  7,
  29,
{ 92: }
  11,
  29,
{ 93: }
  29,
{ 94: }
  3,
  29,
{ 95: }
  29,
{ 96: }
  2,
  29,
{ 97: }
  5,
  29
);

yyt : array [1..yyntrans] of YYTrec = (
{ 0: }
  ( cc: [ #1..#8,#11..#31,'!'..'''',',','.','/','?','@',
            '\','^'..'`','{'..#255 ]; s: 25),
  ( cc: [ #9,' ' ]; s: 24),
  ( cc: [ #10 ]; s: 2),
  ( cc: [ '(',')',';','[',']' ]; s: 23),
  ( cc: [ '*' ]; s: 12),
  ( cc: [ '+' ]; s: 14),
  ( cc: [ '-' ]; s: 20),
  ( cc: [ '0'..'9' ]; s: 21),
  ( cc: [ ':' ]; s: 19),
  ( cc: [ '<' ]; s: 18),
  ( cc: [ '=' ]; s: 16),
  ( cc: [ '>' ]; s: 17),
  ( cc: [ 'A','a' ]; s: 10),
  ( cc: [ 'B'..'D','G'..'K','M','Q','U','W'..'Z','b'..'d',
            'g'..'k','m','q','u','w'..'z' ]; s: 22),
  ( cc: [ 'E','e' ]; s: 7),
  ( cc: [ 'F','f' ]; s: 5),
  ( cc: [ 'L','l' ]; s: 11),
  ( cc: [ 'N','n' ]; s: 15),
  ( cc: [ 'O','o' ]; s: 13),
  ( cc: [ 'P','p' ]; s: 3),
  ( cc: [ 'R','r' ]; s: 4),
  ( cc: [ 'S','s' ]; s: 9),
  ( cc: [ 'T','t' ]; s: 8),
  ( cc: [ 'V','v' ]; s: 6),
{ 1: }
  ( cc: [ #1..#8,#11..#31,'!'..'''',',','.','/','?','@',
            '\','^'..'`','{'..#255 ]; s: 25),
  ( cc: [ #9,' ' ]; s: 24),
  ( cc: [ #10 ]; s: 2),
  ( cc: [ '(',')',';','[',']' ]; s: 23),
  ( cc: [ '*' ]; s: 12),
  ( cc: [ '+' ]; s: 14),
  ( cc: [ '-' ]; s: 20),
  ( cc: [ '0'..'9' ]; s: 21),
  ( cc: [ ':' ]; s: 19),
  ( cc: [ '<' ]; s: 18),
  ( cc: [ '=' ]; s: 16),
  ( cc: [ '>' ]; s: 17),
  ( cc: [ 'A','a' ]; s: 10),
  ( cc: [ 'B'..'D','G'..'K','M','Q','U','W'..'Z','b'..'d',
            'g'..'k','m','q','u','w'..'z' ]; s: 22),
  ( cc: [ 'E','e' ]; s: 7),
  ( cc: [ 'F','f' ]; s: 5),
  ( cc: [ 'L','l' ]; s: 11),
  ( cc: [ 'N','n' ]; s: 15),
  ( cc: [ 'O','o' ]; s: 13),
  ( cc: [ 'P','p' ]; s: 3),
  ( cc: [ 'R','r' ]; s: 4),
  ( cc: [ 'S','s' ]; s: 9),
  ( cc: [ 'T','t' ]; s: 8),
  ( cc: [ 'V','v' ]; s: 6),
{ 2: }
{ 3: }
  ( cc: [ '0'..'9','A'..'Q','S'..'Z','a'..'q','s'..'z' ]; s: 27),
  ( cc: [ 'R','r' ]; s: 26),
{ 4: }
  ( cc: [ '0'..'9','A'..'D','F'..'Z','a'..'d','f'..'z' ]; s: 27),
  ( cc: [ 'E','e' ]; s: 28),
{ 5: }
  ( cc: [ '0'..'9','B'..'H','J'..'Z','b'..'h','j'..'z' ]; s: 27),
  ( cc: [ 'A','a' ]; s: 30),
  ( cc: [ 'I','i' ]; s: 29),
{ 6: }
  ( cc: [ '0'..'9','B'..'Z','b'..'z' ]; s: 27),
  ( cc: [ 'A','a' ]; s: 31),
{ 7: }
  ( cc: [ '0'..'9','A','B','D'..'M','O'..'S','U'..'Z',
            'a','b','d'..'m','o'..'s','u'..'z' ]; s: 27),
  ( cc: [ 'C','c' ]; s: 33),
  ( cc: [ 'N','n' ]; s: 32),
  ( cc: [ 'T','t' ]; s: 34),
{ 8: }
  ( cc: [ '0'..'9','B'..'Z','b'..'z' ]; s: 27),
  ( cc: [ 'A','a' ]; s: 35),
{ 9: }
  ( cc: [ '0'..'9','A'..'H','J'..'Z','a'..'h','j'..'z' ]; s: 27),
  ( cc: [ 'I','i' ]; s: 36),
{ 10: }
  ( cc: [ '0'..'9','A'..'K','M'..'Z','a'..'k','m'..'z' ]; s: 27),
  ( cc: [ 'L','l' ]; s: 37),
{ 11: }
  ( cc: [ '0'..'9','A'..'H','J'..'Z','a'..'h','j'..'z' ]; s: 27),
  ( cc: [ 'I','i' ]; s: 38),
{ 12: }
{ 13: }
  ( cc: [ '0'..'9','A'..'T','V'..'Z','a'..'t','v'..'z' ]; s: 27),
  ( cc: [ 'U','u' ]; s: 39),
{ 14: }
  ( cc: [ '0'..'9' ]; s: 40),
{ 15: }
  ( cc: [ '0'..'9','A'..'N','P'..'Z','a'..'n','p'..'z' ]; s: 27),
  ( cc: [ 'O','o' ]; s: 41),
{ 16: }
{ 17: }
  ( cc: [ '=' ]; s: 42),
{ 18: }
  ( cc: [ '=' ]; s: 43),
  ( cc: [ '>' ]; s: 44),
{ 19: }
  ( cc: [ '=' ]; s: 45),
{ 20: }
  ( cc: [ '0'..'9' ]; s: 40),
{ 21: }
  ( cc: [ '0'..'9' ]; s: 40),
{ 22: }
  ( cc: [ '0'..'9','A'..'Z','a'..'z' ]; s: 27),
{ 23: }
{ 24: }
{ 25: }
{ 26: }
  ( cc: [ '0'..'9','A'..'N','P'..'Z','a'..'n','p'..'z' ]; s: 27),
  ( cc: [ 'O','o' ]; s: 46),
{ 27: }
  ( cc: [ '0'..'9','A'..'Z','a'..'z' ]; s: 27),
{ 28: }
  ( cc: [ '0'..'9','A'..'S','U'..'Z','a'..'s','u'..'z' ]; s: 27),
  ( cc: [ 'T','t' ]; s: 47),
{ 29: }
  ( cc: [ '0'..'9','A'..'M','O'..'Z','a'..'m','o'..'z' ]; s: 27),
  ( cc: [ 'N','n' ]; s: 48),
{ 30: }
  ( cc: [ '0'..'9','A'..'H','J'..'Z','a'..'h','j'..'z' ]; s: 27),
  ( cc: [ 'I','i' ]; s: 49),
{ 31: }
  ( cc: [ '0'..'9','A'..'Q','S'..'Z','a'..'q','s'..'z' ]; s: 27),
  ( cc: [ 'R','r' ]; s: 50),
{ 32: }
  ( cc: [ '0'..'9','A'..'S','U'..'Z','a'..'s','u'..'z' ]; s: 27),
  ( cc: [ 'T','t' ]; s: 51),
{ 33: }
  ( cc: [ '0'..'9','A'..'Q','S'..'Z','a'..'q','s'..'z' ]; s: 27),
  ( cc: [ 'R','r' ]; s: 52),
{ 34: }
  ( cc: [ '0'..'9','A'..'Z','a'..'z' ]; s: 27),
{ 35: }
  ( cc: [ '0'..'9','A','C'..'M','O'..'Z','a','c'..'m',
            'o'..'z' ]; s: 27),
  ( cc: [ 'B','b' ]; s: 53),
  ( cc: [ 'N','n' ]; s: 54),
{ 36: }
  ( cc: [ '0'..'9','A'..'M','O'..'Z','a'..'m','o'..'z' ]; s: 27),
  ( cc: [ 'N','n' ]; s: 55),
{ 37: }
  ( cc: [ '0'..'9','A'..'N','P'..'Z','a'..'n','p'..'z' ]; s: 27),
  ( cc: [ 'O','o' ]; s: 56),
{ 38: }
  ( cc: [ '0'..'9','A'..'Q','S'..'Z','a'..'q','s'..'z' ]; s: 27),
  ( cc: [ 'R','r' ]; s: 57),
{ 39: }
  ( cc: [ '0'..'9','A'..'Z','a'..'z' ]; s: 27),
{ 40: }
  ( cc: [ '0'..'9' ]; s: 40),
{ 41: }
  ( cc: [ '0'..'9','A'..'M','O'..'Z','a'..'m','o'..'z' ]; s: 27),
  ( cc: [ 'N','n' ]; s: 58),
{ 42: }
{ 43: }
{ 44: }
{ 45: }
{ 46: }
  ( cc: [ '0'..'9','A'..'F','H'..'Z','a'..'f','h'..'z' ]; s: 27),
  ( cc: [ 'G','g' ]; s: 59),
{ 47: }
  ( cc: [ '0'..'9','A'..'N','P'..'Z','a'..'n','p'..'z' ]; s: 27),
  ( cc: [ 'O','o' ]; s: 60),
{ 48: }
  ( cc: [ '0'..'9','A'..'Z','a'..'z' ]; s: 27),
{ 49: }
  ( cc: [ '0'..'9','A'..'Q','S'..'Z','a'..'q','s'..'z' ]; s: 27),
  ( cc: [ 'R','r' ]; s: 61),
{ 50: }
  ( cc: [ '0'..'9','A'..'H','J'..'Z','a'..'h','j'..'z' ]; s: 27),
  ( cc: [ 'I','i' ]; s: 62),
{ 51: }
  ( cc: [ '0'..'9','A'..'H','J'..'Z','a'..'h','j'..'z' ]; s: 27),
  ( cc: [ 'I','i' ]; s: 63),
{ 52: }
  ( cc: [ '0'..'9','A'..'H','J'..'Z','a'..'h','j'..'z' ]; s: 27),
  ( cc: [ 'I','i' ]; s: 64),
{ 53: }
  ( cc: [ '0'..'9','A'..'K','M'..'Z','a'..'k','m'..'z' ]; s: 27),
  ( cc: [ 'L','l' ]; s: 65),
{ 54: }
  ( cc: [ '0'..'9','A'..'S','U'..'Z','a'..'s','u'..'z' ]; s: 27),
  ( cc: [ 'T','t' ]; s: 66),
{ 55: }
  ( cc: [ '0'..'9','A'..'N','P'..'Z','a'..'n','p'..'z' ]; s: 27),
  ( cc: [ 'O','o' ]; s: 67),
{ 56: }
  ( cc: [ '0'..'9','A'..'Q','S'..'Z','a'..'q','s'..'z' ]; s: 27),
  ( cc: [ 'R','r' ]; s: 68),
{ 57: }
  ( cc: [ '0'..'9','A'..'D','F'..'Z','a'..'d','f'..'z' ]; s: 27),
  ( cc: [ 'E','e' ]; s: 69),
{ 58: }
  ( cc: [ '0'..'9','A'..'Z','a'..'z' ]; s: 27),
{ 59: }
  ( cc: [ '0'..'9','A'..'Q','S'..'Z','a'..'q','s'..'z' ]; s: 27),
  ( cc: [ 'R','r' ]; s: 70),
{ 60: }
  ( cc: [ '0'..'9','A'..'T','V'..'Z','a'..'t','v'..'z' ]; s: 27),
  ( cc: [ 'U','u' ]; s: 71),
{ 61: }
  ( cc: [ '0'..'9','A'..'D','F'..'Z','a'..'d','f'..'z' ]; s: 27),
  ( cc: [ 'E','e' ]; s: 72),
{ 62: }
  ( cc: [ '0'..'9','B'..'Z','b'..'z' ]; s: 27),
  ( cc: [ 'A','a' ]; s: 73),
{ 63: }
  ( cc: [ '0'..'9','A'..'D','F'..'Z','a'..'d','f'..'z' ]; s: 27),
  ( cc: [ 'E','e' ]; s: 74),
{ 64: }
  ( cc: [ '0'..'9','A'..'Q','S'..'Z','a'..'q','s'..'z' ]; s: 27),
  ( cc: [ 'R','r' ]; s: 75),
{ 65: }
  ( cc: [ '0'..'9','A'..'D','F'..'Z','a'..'d','f'..'z' ]; s: 27),
  ( cc: [ 'E','e' ]; s: 76),
{ 66: }
  ( cc: [ '0'..'9','A'..'P','R'..'Z','a'..'p','r'..'z' ]; s: 27),
  ( cc: [ 'Q','q' ]; s: 77),
{ 67: }
  ( cc: [ '0'..'9','A'..'M','O'..'Z','a'..'m','o'..'z' ]; s: 27),
  ( cc: [ 'N','n' ]; s: 78),
{ 68: }
  ( cc: [ '0'..'9','A'..'R','T'..'Z','a'..'r','t'..'z' ]; s: 27),
  ( cc: [ 'S','s' ]; s: 79),
{ 69: }
  ( cc: [ '0'..'9','A'..'Z','a'..'z' ]; s: 27),
{ 70: }
  ( cc: [ '0'..'9','B'..'Z','b'..'z' ]; s: 27),
  ( cc: [ 'A','a' ]; s: 80),
{ 71: }
  ( cc: [ '0'..'9','A'..'Q','S'..'Z','a'..'q','s'..'z' ]; s: 27),
  ( cc: [ 'R','r' ]; s: 81),
{ 72: }
  ( cc: [ '0'..'9','A'..'Z','a'..'z' ]; s: 27),
{ 73: }
  ( cc: [ '0'..'9','A','C'..'Z','a','c'..'z' ]; s: 27),
  ( cc: [ 'B','b' ]; s: 82),
{ 74: }
  ( cc: [ '0'..'9','A'..'Q','S'..'Z','a'..'q','s'..'z' ]; s: 27),
  ( cc: [ 'R','r' ]; s: 83),
{ 75: }
  ( cc: [ '0'..'9','A'..'D','F'..'Z','a'..'d','f'..'z' ]; s: 27),
  ( cc: [ 'E','e' ]; s: 84),
{ 76: }
  ( cc: [ '0'..'9','B'..'Z','b'..'z' ]; s: 27),
  ( cc: [ 'A','a' ]; s: 85),
{ 77: }
  ( cc: [ '0'..'9','A'..'T','V'..'Z','a'..'t','v'..'z' ]; s: 27),
  ( cc: [ 'U','u' ]; s: 86),
{ 78: }
  ( cc: [ '0'..'9','A'..'Z','a'..'z' ]; s: 27),
{ 79: }
  ( cc: [ '0'..'9','A'..'Z','a'..'z' ]; s: 27),
{ 80: }
  ( cc: [ '0'..'9','A'..'L','N'..'Z','a'..'l','n'..'z' ]; s: 27),
  ( cc: [ 'M','m' ]; s: 87),
{ 81: }
  ( cc: [ '0'..'9','A'..'M','O'..'Z','a'..'m','o'..'z' ]; s: 27),
  ( cc: [ 'N','n' ]; s: 88),
{ 82: }
  ( cc: [ '0'..'9','A'..'K','M'..'Z','a'..'k','m'..'z' ]; s: 27),
  ( cc: [ 'L','l' ]; s: 89),
{ 83: }
  ( cc: [ '0'..'9','A'..'Z','a'..'z' ]; s: 27),
{ 84: }
  ( cc: [ '0'..'9','A','B','D'..'Z','a','b','d'..'z' ]; s: 27),
  ( cc: [ 'C','c' ]; s: 90),
{ 85: }
  ( cc: [ '0'..'9','A'..'T','V'..'Z','a'..'t','v'..'z' ]; s: 27),
  ( cc: [ 'U','u' ]; s: 91),
{ 86: }
  ( cc: [ '0'..'9','A'..'D','F'..'Z','a'..'d','f'..'z' ]; s: 27),
  ( cc: [ 'E','e' ]; s: 92),
{ 87: }
  ( cc: [ '0'..'9','A'..'L','N'..'Z','a'..'l','n'..'z' ]; s: 27),
  ( cc: [ 'M','m' ]; s: 93),
{ 88: }
  ( cc: [ '0'..'9','A'..'D','F'..'Z','a'..'d','f'..'z' ]; s: 27),
  ( cc: [ 'E','e' ]; s: 94),
{ 89: }
  ( cc: [ '0'..'9','A'..'D','F'..'Z','a'..'d','f'..'z' ]; s: 27),
  ( cc: [ 'E','e' ]; s: 95),
{ 90: }
  ( cc: [ '0'..'9','A'..'Z','a'..'z' ]; s: 27),
{ 91: }
  ( cc: [ '0'..'9','A'..'Z','a'..'z' ]; s: 27),
{ 92: }
  ( cc: [ '0'..'9','A'..'Z','a'..'z' ]; s: 27),
{ 93: }
  ( cc: [ '0'..'9','A'..'D','F'..'Z','a'..'d','f'..'z' ]; s: 27),
  ( cc: [ 'E','e' ]; s: 96),
{ 94: }
  ( cc: [ '0'..'9','A'..'Z','a'..'z' ]; s: 27),
{ 95: }
  ( cc: [ '0'..'9','A'..'R','T'..'Z','a'..'r','t'..'z' ]; s: 27),
  ( cc: [ 'S','s' ]; s: 97),
{ 96: }
  ( cc: [ '0'..'9','A'..'Z','a'..'z' ]; s: 27),
{ 97: }
  ( cc: [ '0'..'9','A'..'Z','a'..'z' ]; s: 27)
);

yykl : array [0..yynstates-1] of Integer = (
{ 0: } 1,
{ 1: } 1,
{ 2: } 1,
{ 3: } 2,
{ 4: } 4,
{ 5: } 6,
{ 6: } 8,
{ 7: } 10,
{ 8: } 12,
{ 9: } 14,
{ 10: } 16,
{ 11: } 18,
{ 12: } 20,
{ 13: } 22,
{ 14: } 24,
{ 15: } 26,
{ 16: } 28,
{ 17: } 30,
{ 18: } 32,
{ 19: } 34,
{ 20: } 36,
{ 21: } 38,
{ 22: } 40,
{ 23: } 42,
{ 24: } 44,
{ 25: } 46,
{ 26: } 47,
{ 27: } 48,
{ 28: } 49,
{ 29: } 50,
{ 30: } 51,
{ 31: } 52,
{ 32: } 53,
{ 33: } 54,
{ 34: } 55,
{ 35: } 57,
{ 36: } 58,
{ 37: } 60,
{ 38: } 61,
{ 39: } 62,
{ 40: } 64,
{ 41: } 65,
{ 42: } 66,
{ 43: } 67,
{ 44: } 68,
{ 45: } 69,
{ 46: } 70,
{ 47: } 71,
{ 48: } 72,
{ 49: } 74,
{ 50: } 75,
{ 51: } 76,
{ 52: } 77,
{ 53: } 78,
{ 54: } 79,
{ 55: } 80,
{ 56: } 81,
{ 57: } 82,
{ 58: } 83,
{ 59: } 85,
{ 60: } 86,
{ 61: } 87,
{ 62: } 88,
{ 63: } 89,
{ 64: } 90,
{ 65: } 91,
{ 66: } 92,
{ 67: } 93,
{ 68: } 94,
{ 69: } 95,
{ 70: } 97,
{ 71: } 98,
{ 72: } 99,
{ 73: } 101,
{ 74: } 102,
{ 75: } 103,
{ 76: } 104,
{ 77: } 105,
{ 78: } 106,
{ 79: } 108,
{ 80: } 110,
{ 81: } 111,
{ 82: } 112,
{ 83: } 113,
{ 84: } 115,
{ 85: } 117,
{ 86: } 118,
{ 87: } 119,
{ 88: } 120,
{ 89: } 121,
{ 90: } 122,
{ 91: } 124,
{ 92: } 126,
{ 93: } 128,
{ 94: } 129,
{ 95: } 131,
{ 96: } 132,
{ 97: } 134
);

yykh : array [0..yynstates-1] of Integer = (
{ 0: } 0,
{ 1: } 0,
{ 2: } 1,
{ 3: } 3,
{ 4: } 5,
{ 5: } 7,
{ 6: } 9,
{ 7: } 11,
{ 8: } 13,
{ 9: } 15,
{ 10: } 17,
{ 11: } 19,
{ 12: } 21,
{ 13: } 23,
{ 14: } 25,
{ 15: } 27,
{ 16: } 29,
{ 17: } 31,
{ 18: } 33,
{ 19: } 35,
{ 20: } 37,
{ 21: } 39,
{ 22: } 41,
{ 23: } 43,
{ 24: } 45,
{ 25: } 46,
{ 26: } 47,
{ 27: } 48,
{ 28: } 49,
{ 29: } 50,
{ 30: } 51,
{ 31: } 52,
{ 32: } 53,
{ 33: } 54,
{ 34: } 56,
{ 35: } 57,
{ 36: } 59,
{ 37: } 60,
{ 38: } 61,
{ 39: } 63,
{ 40: } 64,
{ 41: } 65,
{ 42: } 66,
{ 43: } 67,
{ 44: } 68,
{ 45: } 69,
{ 46: } 70,
{ 47: } 71,
{ 48: } 73,
{ 49: } 74,
{ 50: } 75,
{ 51: } 76,
{ 52: } 77,
{ 53: } 78,
{ 54: } 79,
{ 55: } 80,
{ 56: } 81,
{ 57: } 82,
{ 58: } 84,
{ 59: } 85,
{ 60: } 86,
{ 61: } 87,
{ 62: } 88,
{ 63: } 89,
{ 64: } 90,
{ 65: } 91,
{ 66: } 92,
{ 67: } 93,
{ 68: } 94,
{ 69: } 96,
{ 70: } 97,
{ 71: } 98,
{ 72: } 100,
{ 73: } 101,
{ 74: } 102,
{ 75: } 103,
{ 76: } 104,
{ 77: } 105,
{ 78: } 107,
{ 79: } 109,
{ 80: } 110,
{ 81: } 111,
{ 82: } 112,
{ 83: } 114,
{ 84: } 116,
{ 85: } 117,
{ 86: } 118,
{ 87: } 119,
{ 88: } 120,
{ 89: } 121,
{ 90: } 123,
{ 91: } 125,
{ 92: } 127,
{ 93: } 128,
{ 94: } 130,
{ 95: } 131,
{ 96: } 133,
{ 97: } 135
);

yyml : array [0..yynstates-1] of Integer = (
{ 0: } 1,
{ 1: } 1,
{ 2: } 1,
{ 3: } 2,
{ 4: } 4,
{ 5: } 6,
{ 6: } 8,
{ 7: } 10,
{ 8: } 12,
{ 9: } 14,
{ 10: } 16,
{ 11: } 18,
{ 12: } 20,
{ 13: } 22,
{ 14: } 24,
{ 15: } 26,
{ 16: } 28,
{ 17: } 30,
{ 18: } 32,
{ 19: } 34,
{ 20: } 36,
{ 21: } 38,
{ 22: } 40,
{ 23: } 42,
{ 24: } 44,
{ 25: } 46,
{ 26: } 47,
{ 27: } 48,
{ 28: } 49,
{ 29: } 50,
{ 30: } 51,
{ 31: } 52,
{ 32: } 53,
{ 33: } 54,
{ 34: } 55,
{ 35: } 57,
{ 36: } 58,
{ 37: } 60,
{ 38: } 61,
{ 39: } 62,
{ 40: } 64,
{ 41: } 65,
{ 42: } 66,
{ 43: } 67,
{ 44: } 68,
{ 45: } 69,
{ 46: } 70,
{ 47: } 71,
{ 48: } 72,
{ 49: } 74,
{ 50: } 75,
{ 51: } 76,
{ 52: } 77,
{ 53: } 78,
{ 54: } 79,
{ 55: } 80,
{ 56: } 81,
{ 57: } 82,
{ 58: } 83,
{ 59: } 85,
{ 60: } 86,
{ 61: } 87,
{ 62: } 88,
{ 63: } 89,
{ 64: } 90,
{ 65: } 91,
{ 66: } 92,
{ 67: } 93,
{ 68: } 94,
{ 69: } 95,
{ 70: } 97,
{ 71: } 98,
{ 72: } 99,
{ 73: } 101,
{ 74: } 102,
{ 75: } 103,
{ 76: } 104,
{ 77: } 105,
{ 78: } 106,
{ 79: } 108,
{ 80: } 110,
{ 81: } 111,
{ 82: } 112,
{ 83: } 113,
{ 84: } 115,
{ 85: } 117,
{ 86: } 118,
{ 87: } 119,
{ 88: } 120,
{ 89: } 121,
{ 90: } 122,
{ 91: } 124,
{ 92: } 126,
{ 93: } 128,
{ 94: } 129,
{ 95: } 131,
{ 96: } 132,
{ 97: } 134
);

yymh : array [0..yynstates-1] of Integer = (
{ 0: } 0,
{ 1: } 0,
{ 2: } 1,
{ 3: } 3,
{ 4: } 5,
{ 5: } 7,
{ 6: } 9,
{ 7: } 11,
{ 8: } 13,
{ 9: } 15,
{ 10: } 17,
{ 11: } 19,
{ 12: } 21,
{ 13: } 23,
{ 14: } 25,
{ 15: } 27,
{ 16: } 29,
{ 17: } 31,
{ 18: } 33,
{ 19: } 35,
{ 20: } 37,
{ 21: } 39,
{ 22: } 41,
{ 23: } 43,
{ 24: } 45,
{ 25: } 46,
{ 26: } 47,
{ 27: } 48,
{ 28: } 49,
{ 29: } 50,
{ 30: } 51,
{ 31: } 52,
{ 32: } 53,
{ 33: } 54,
{ 34: } 56,
{ 35: } 57,
{ 36: } 59,
{ 37: } 60,
{ 38: } 61,
{ 39: } 63,
{ 40: } 64,
{ 41: } 65,
{ 42: } 66,
{ 43: } 67,
{ 44: } 68,
{ 45: } 69,
{ 46: } 70,
{ 47: } 71,
{ 48: } 73,
{ 49: } 74,
{ 50: } 75,
{ 51: } 76,
{ 52: } 77,
{ 53: } 78,
{ 54: } 79,
{ 55: } 80,
{ 56: } 81,
{ 57: } 82,
{ 58: } 84,
{ 59: } 85,
{ 60: } 86,
{ 61: } 87,
{ 62: } 88,
{ 63: } 89,
{ 64: } 90,
{ 65: } 91,
{ 66: } 92,
{ 67: } 93,
{ 68: } 94,
{ 69: } 96,
{ 70: } 97,
{ 71: } 98,
{ 72: } 100,
{ 73: } 101,
{ 74: } 102,
{ 75: } 103,
{ 76: } 104,
{ 77: } 105,
{ 78: } 107,
{ 79: } 109,
{ 80: } 110,
{ 81: } 111,
{ 82: } 112,
{ 83: } 114,
{ 84: } 116,
{ 85: } 117,
{ 86: } 118,
{ 87: } 119,
{ 88: } 120,
{ 89: } 121,
{ 90: } 123,
{ 91: } 125,
{ 92: } 127,
{ 93: } 128,
{ 94: } 130,
{ 95: } 131,
{ 96: } 133,
{ 97: } 135
);

yytl : array [0..yynstates-1] of Integer = (
{ 0: } 1,
{ 1: } 25,
{ 2: } 49,
{ 3: } 49,
{ 4: } 51,
{ 5: } 53,
{ 6: } 56,
{ 7: } 58,
{ 8: } 62,
{ 9: } 64,
{ 10: } 66,
{ 11: } 68,
{ 12: } 70,
{ 13: } 70,
{ 14: } 72,
{ 15: } 73,
{ 16: } 75,
{ 17: } 75,
{ 18: } 76,
{ 19: } 78,
{ 20: } 79,
{ 21: } 80,
{ 22: } 81,
{ 23: } 82,
{ 24: } 82,
{ 25: } 82,
{ 26: } 82,
{ 27: } 84,
{ 28: } 85,
{ 29: } 87,
{ 30: } 89,
{ 31: } 91,
{ 32: } 93,
{ 33: } 95,
{ 34: } 97,
{ 35: } 98,
{ 36: } 101,
{ 37: } 103,
{ 38: } 105,
{ 39: } 107,
{ 40: } 108,
{ 41: } 109,
{ 42: } 111,
{ 43: } 111,
{ 44: } 111,
{ 45: } 111,
{ 46: } 111,
{ 47: } 113,
{ 48: } 115,
{ 49: } 116,
{ 50: } 118,
{ 51: } 120,
{ 52: } 122,
{ 53: } 124,
{ 54: } 126,
{ 55: } 128,
{ 56: } 130,
{ 57: } 132,
{ 58: } 134,
{ 59: } 135,
{ 60: } 137,
{ 61: } 139,
{ 62: } 141,
{ 63: } 143,
{ 64: } 145,
{ 65: } 147,
{ 66: } 149,
{ 67: } 151,
{ 68: } 153,
{ 69: } 155,
{ 70: } 156,
{ 71: } 158,
{ 72: } 160,
{ 73: } 161,
{ 74: } 163,
{ 75: } 165,
{ 76: } 167,
{ 77: } 169,
{ 78: } 171,
{ 79: } 172,
{ 80: } 173,
{ 81: } 175,
{ 82: } 177,
{ 83: } 179,
{ 84: } 180,
{ 85: } 182,
{ 86: } 184,
{ 87: } 186,
{ 88: } 188,
{ 89: } 190,
{ 90: } 192,
{ 91: } 193,
{ 92: } 194,
{ 93: } 195,
{ 94: } 197,
{ 95: } 198,
{ 96: } 200,
{ 97: } 201
);

yyth : array [0..yynstates-1] of Integer = (
{ 0: } 24,
{ 1: } 48,
{ 2: } 48,
{ 3: } 50,
{ 4: } 52,
{ 5: } 55,
{ 6: } 57,
{ 7: } 61,
{ 8: } 63,
{ 9: } 65,
{ 10: } 67,
{ 11: } 69,
{ 12: } 69,
{ 13: } 71,
{ 14: } 72,
{ 15: } 74,
{ 16: } 74,
{ 17: } 75,
{ 18: } 77,
{ 19: } 78,
{ 20: } 79,
{ 21: } 80,
{ 22: } 81,
{ 23: } 81,
{ 24: } 81,
{ 25: } 81,
{ 26: } 83,
{ 27: } 84,
{ 28: } 86,
{ 29: } 88,
{ 30: } 90,
{ 31: } 92,
{ 32: } 94,
{ 33: } 96,
{ 34: } 97,
{ 35: } 100,
{ 36: } 102,
{ 37: } 104,
{ 38: } 106,
{ 39: } 107,
{ 40: } 108,
{ 41: } 110,
{ 42: } 110,
{ 43: } 110,
{ 44: } 110,
{ 45: } 110,
{ 46: } 112,
{ 47: } 114,
{ 48: } 115,
{ 49: } 117,
{ 50: } 119,
{ 51: } 121,
{ 52: } 123,
{ 53: } 125,
{ 54: } 127,
{ 55: } 129,
{ 56: } 131,
{ 57: } 133,
{ 58: } 134,
{ 59: } 136,
{ 60: } 138,
{ 61: } 140,
{ 62: } 142,
{ 63: } 144,
{ 64: } 146,
{ 65: } 148,
{ 66: } 150,
{ 67: } 152,
{ 68: } 154,
{ 69: } 155,
{ 70: } 157,
{ 71: } 159,
{ 72: } 160,
{ 73: } 162,
{ 74: } 164,
{ 75: } 166,
{ 76: } 168,
{ 77: } 170,
{ 78: } 171,
{ 79: } 172,
{ 80: } 174,
{ 81: } 176,
{ 82: } 178,
{ 83: } 179,
{ 84: } 181,
{ 85: } 183,
{ 86: } 185,
{ 87: } 187,
{ 88: } 189,
{ 89: } 191,
{ 90: } 192,
{ 91: } 193,
{ 92: } 194,
{ 93: } 196,
{ 94: } 197,
{ 95: } 199,
{ 96: } 200,
{ 97: } 201
);


var yyn : Integer;

label start, scan, action;

begin

start:

  (* initialize: *)

  yynew;

scan:

  (* mark positions and matches: *)

  for yyn := yykl[yystate] to     yykh[yystate] do yymark(yyk[yyn]);
  for yyn := yymh[yystate] downto yyml[yystate] do yymatch(yym[yyn]);

  if yytl[yystate]>yyth[yystate] then goto action; (* dead state *)

  (* get next character: *)

  yyscan;

  (* determine action: *)

  yyn := yytl[yystate];
  while (yyn<=yyth[yystate]) and not (yyactchar in yyt[yyn].cc) do inc(yyn);
  if yyn>yyth[yystate] then goto action;
    (* no transition on yyactchar in this state *)

  (* switch to new state: *)

  yystate := yyt[yyn].s;

  goto scan;

action:

  (* execute action: *)

  if yyfind(yyrule) then
    begin
      yyaction(yyrule);
      if yyreject then goto action;
    end
  else if not yydefault and yywrap then
    begin
      yyclear;
      return(0);
    end;

  if not yydone then goto start;

  yylex := yyretval;

end(*yylex*);


