PreviousUpNext

15.4.157  src/app/yacc/src/yacc.lex.pkg


# Compiled by:
#     src/app/yacc/src/mythryl-yacc.lib

generic package lex_mlyacc_g (package tokens : Mlyacc_Tokens;
                  package header : Header #  = header 
                  where Precedence == header::Precedence
                  also  Input_Source == header::Input_Source;) : (weak) Arg_Lexer
{
   
    package user_declarations {
      
# Mythryl-Yacc Parser Generator (c) 1989 Andrew W. Appel, David R. Tarditi
#
#   yacc.lex: Lexer specification



###           "This therefore, is mathematics:
###            she reminds you of the invisible forms of the soul;
###            she gives life to her own discoveries;
###            she awakens the mind and purifies the intellect;
###            she brings to light our intrinsic ideas;
###            she abolishes the oblivion and ignorance which are ours by birth..."
###
###                                                 -- Proclus



package tokens = tokens;

Semantic_Value = tokens::Semantic_Value;
Source_Position = Int;
Token( X, Y ) = tokens::Token( X, Y );
Lex_Result = Token( Semantic_Value, Source_Position );

Lex_Arg = header::Input_Source;
Arg = Lex_Arg;

include package   tokens;

error  = header::error;
lineno = header::lineno;
text   = header::text;

pcount        = REF 0;
comment_level = REF 0;
actionstart   = REF 0;

eof =   \\ i =
             {   if  (*pcount > 0)

                     error i *actionstart
                         " eof encountered in action beginning here !";
                 fi;

                 eof_t (*lineno, *lineno);
             };

fun add s
    =
    text :=   s ! *text;


stipulate

    dictionary = [("%prec",prec_tag),("%term",term),
            ("%nonterm",nonterm), ("%eop",percent_eop),("%start",start),
            ("%prefer",prefer),("%subst",subst),("%change",change),
            ("%keyword",keyword),("%name",name),
            ("%verbose",verbose), ("%nodefault",nodefault),
            ("%value",value), ("%noshift",noshift),
            ("%header",percent_header),("%pure",percent_pure),
            ("%token_api_info",percent_token_api_info),
            ("%arg",percent_arg),
            ("%pos",percent_pos)];
herein
    fun lookup (s,left,right)
        =
        {  fun f ((a,d) ! b) =>   if (a==s)   d(left,right);   else f b; fi;
               f NIL         =>   unknown(s,left,right);
           end;

           f dictionary;
        };
end;

fun inc (ri as REF i) =   ri := i + 1;
fun dec (ri as REF i) =   ri := i - 1;

}; #  end of user routines 
exception LEX_ERROR; # Raised if illegal leaf action tried.
package internal {
         

Yyfinstate = NN Int;
Statedata = { fin:  List( Yyfinstate ), trans: String };
#  transition & final state table 
tab = {
    s = [ 
 (0,  
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00"
),
 (1,  
"\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x18\x11\x11\x17\x11\x11\
\\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\
\\x11\x11\x11\x11\x11\x15\x11\x11\x11\x11\x11\x11\x11\x11\x11\x13\
\\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\
\\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\
\\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\
\\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\
\\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\
\\x11"
),
 (3,  
"\x19\x19\x19\x19\x19\x19\x19\x19\x19\x4d\x50\x19\x19\x4f\x19\x19\
\\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\
\\x4d\x19\x19\x46\x19\x32\x19\x30\x2f\x19\x2e\x19\x2d\x2b\x19\x29\
\\x27\x27\x27\x27\x27\x27\x27\x27\x27\x27\x26\x19\x19\x19\x19\x19\
\\x19\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\
\\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x19\x19\x19\x19\x19\
\\x19\x1d\x1d\x1d\x1d\x1d\x23\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x21\
\\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1c\x1b\x1a\x19\x19\
\\x19"
),
 (5,  
"\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x18\x51\x51\x57\x51\x51\
\\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\
\\x51\x51\x56\x51\x51\x51\x51\x51\x55\x54\x51\x51\x51\x51\x51\x52\
\\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\
\\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\
\\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\
\\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\
\\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\
\\x51"
),
 (7,  
"\x58\x58\x58\x58\x58\x58\x58\x58\x58\x5a\x18\x58\x58\x5c\x58\x58\
\\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\
\\x5a\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\
\\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\
\\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\
\\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x59\x58\x58\x58\
\\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\
\\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\
\\x58"
),
 (9,  
"\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x18\x5d\x5d\x57\x5d\x5d\
\\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\
\\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x00\x00\x60\x5d\x5d\x5d\x5d\x5e\
\\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\
\\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\
\\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\
\\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\
\\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\
\\x5d"
),
 (11,  
"\x62\x62\x62\x62\x62\x62\x62\x62\x62\x62\x64\x62\x62\x63\x62\x62\
\\x62\x62\x62\x62\x62\x62\x62\x62\x62\x62\x62\x62\x62\x62\x62\x62\
\\x62\x62\x62\x62\x62\x62\x62\x62\x62\x62\x62\x62\x62\x62\x62\x62\
\\x62\x62\x62\x62\x62\x62\x62\x62\x62\x62\x62\x62\x62\x62\x62\x62\
\\x62\x62\x62\x62\x62\x62\x62\x62\x62\x62\x62\x62\x62\x62\x62\x62\
\\x62\x62\x62\x62\x62\x62\x62\x62\x62\x62\x62\x62\x62\x62\x62\x62\
\\x62\x62\x62\x62\x62\x62\x62\x62\x62\x62\x62\x62\x62\x62\x62\x62\
\\x62\x62\x62\x62\x62\x62\x62\x62\x62\x62\x62\x62\x62\x62\x62\x62\
\\x62"
),
 (13,  
"\x65\x65\x65\x65\x65\x65\x65\x65\x65\x65\x6d\x65\x65\x6c\x65\x65\
\\x65\x65\x65\x65\x65\x65\x65\x65\x65\x65\x65\x65\x65\x65\x65\x65\
\\x65\x65\x6b\x65\x65\x65\x65\x65\x65\x65\x65\x65\x65\x65\x65\x65\
\\x65\x65\x65\x65\x65\x65\x65\x65\x65\x65\x65\x65\x65\x65\x65\x65\
\\x65\x65\x65\x65\x65\x65\x65\x65\x65\x65\x65\x65\x65\x65\x65\x65\
\\x65\x65\x65\x65\x65\x65\x65\x65\x65\x65\x65\x65\x66\x65\x65\x65\
\\x65\x65\x65\x65\x65\x65\x65\x65\x65\x65\x65\x65\x65\x65\x65\x65\
\\x65\x65\x65\x65\x65\x65\x65\x65\x65\x65\x65\x65\x65\x65\x65\x65\
\\x65"
),
 (15,  
"\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x18\x6e\x6e\x57\x6e\x6e\
\\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\
\\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x73\x73\x71\x6e\x6e\x6e\x6e\x6f\
\\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\
\\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\
\\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\
\\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\
\\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\
\\x6e"
),
 (17,  
"\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x00\x12\x12\x00\x12\x12\
\\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\
\\x12\x12\x12\x12\x12\x00\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\
\\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\
\\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\
\\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\
\\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\
\\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\
\\x12"
),
 (19,  
"\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x00\x12\x12\x00\x12\x12\
\\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\
\\x12\x12\x12\x12\x12\x00\x12\x12\x12\x12\x14\x12\x12\x12\x12\x12\
\\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\
\\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\
\\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\
\\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\
\\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\
\\x12"
),
 (20,  
"\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x00\x12\x12\x00\x12\x12\
\\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\
\\x12\x12\x12\x14\x12\x00\x12\x12\x12\x12\x14\x12\x12\x14\x12\x12\
\\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x14\x12\x12\
\\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\
\\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\
\\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\
\\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\
\\x12"
),
 (21,  
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x16\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00"
),
 (23,  
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00"
),
 (29,  
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\
\\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1f\x00\x00\x00\x00\x00\
\\x00\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\
\\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x00\x00\x00\x00\x1e\
\\x00\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\
\\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x00\x00\x00\x00\x00\
\\x00"
),
 (31,  
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00"
),
 (33,  
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\
\\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1f\x00\x00\x00\x00\x00\
\\x00\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\
\\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x00\x00\x00\x00\x1e\
\\x00\x1e\x1e\x1e\x1e\x1e\x22\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\
\\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x00\x00\x00\x00\x00\
\\x00"
),
 (35,  
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\
\\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1f\x00\x00\x00\x00\x00\
\\x00\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\
\\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x00\x00\x00\x00\x1e\
\\x00\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x24\
\\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x00\x00\x00\x00\x00\
\\x00"
),
 (36,  
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\
\\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1f\x00\x00\x00\x00\x00\
\\x00\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\
\\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x00\x00\x00\x00\x1e\
\\x00\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\
\\x1e\x1e\x25\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x00\x00\x00\x00\x00\
\\x00"
),
 (39,  
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x28\x28\x28\x28\x28\x28\x28\x28\x28\x28\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00"
),
 (41,  
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2a\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00"
),
 (42,  
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x2a\x00\x00\x00\x00\x00\x00\x2a\x00\x00\x2a\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2a\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00"
),
 (43,  
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00"
),
 (48,  
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\
\\x31\x31\x31\x31\x31\x31\x31\x31\x31\x31\x00\x00\x00\x00\x00\x00\
\\x00\x31\x31\x31\x31\x31\x31\x31\x31\x31\x31\x31\x31\x31\x31\x31\
\\x31\x31\x31\x31\x31\x31\x31\x31\x31\x31\x31\x00\x00\x00\x00\x31\
\\x00\x31\x31\x31\x31\x31\x31\x31\x31\x31\x31\x31\x31\x31\x31\x31\
\\x31\x31\x31\x31\x31\x31\x31\x31\x31\x31\x31\x00\x00\x00\x00\x00\
\\x00"
),
 (50,  
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x45\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\
\\x00\x33\x33\x33\x33\x33\x33\x33\x33\x33\x33\x33\x41\x33\x39\x33\
\\x33\x33\x34\x33\x33\x33\x33\x33\x33\x33\x33\x00\x00\x00\x00\x00\
\\x00"
),
 (51,  
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\
\\x00\x33\x33\x33\x33\x33\x33\x33\x33\x33\x33\x33\x33\x33\x33\x33\
\\x33\x33\x33\x33\x33\x33\x33\x33\x33\x33\x33\x00\x00\x00\x00\x00\
\\x00"
),
 (52,  
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\
\\x00\x33\x33\x33\x33\x33\x33\x33\x33\x35\x33\x33\x33\x33\x33\x33\
\\x33\x33\x33\x33\x33\x33\x33\x33\x33\x33\x33\x00\x00\x00\x00\x00\
\\x00"
),
 (53,  
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\
\\x00\x33\x33\x33\x33\x33\x33\x36\x33\x33\x33\x33\x33\x33\x33\x33\
\\x33\x33\x33\x33\x33\x33\x33\x33\x33\x33\x33\x00\x00\x00\x00\x00\
\\x00"
),
 (54,  
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\
\\x00\x33\x33\x33\x33\x33\x33\x33\x37\x33\x33\x33\x33\x33\x33\x33\
\\x33\x33\x33\x33\x33\x33\x33\x33\x33\x33\x33\x00\x00\x00\x00\x00\
\\x00"
),
 (55,  
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\
\\x00\x33\x33\x33\x33\x33\x33\x33\x33\x33\x33\x33\x33\x33\x33\x33\
\\x33\x33\x33\x33\x38\x33\x33\x33\x33\x33\x33\x00\x00\x00\x00\x00\
\\x00"
),
 (57,  
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\
\\x00\x33\x33\x33\x33\x33\x33\x33\x33\x33\x33\x33\x33\x33\x33\x3a\
\\x33\x33\x33\x33\x33\x33\x33\x33\x33\x33\x33\x00\x00\x00\x00\x00\
\\x00"
),
 (58,  
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\
\\x00\x33\x33\x33\x33\x33\x33\x33\x33\x33\x33\x33\x33\x33\x3b\x33\
\\x33\x33\x33\x33\x33\x33\x33\x33\x33\x33\x33\x00\x00\x00\x00\x00\
\\x00"
),
 (59,  
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\
\\x00\x3c\x33\x33\x33\x33\x33\x33\x33\x33\x33\x33\x33\x33\x33\x33\
\\x33\x33\x33\x33\x33\x33\x33\x33\x33\x33\x33\x00\x00\x00\x00\x00\
\\x00"
),
 (60,  
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\
\\x00\x33\x33\x33\x33\x33\x33\x33\x33\x33\x33\x33\x33\x33\x33\x33\
\\x33\x33\x33\x3d\x33\x33\x33\x33\x33\x33\x33\x00\x00\x00\x00\x00\
\\x00"
),
 (61,  
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\
\\x00\x33\x33\x33\x33\x33\x33\x33\x33\x33\x33\x33\x33\x33\x33\x33\
\\x33\x33\x33\x3e\x33\x33\x33\x33\x33\x33\x33\x00\x00\x00\x00\x00\
\\x00"
),
 (62,  
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\
\\x00\x33\x33\x33\x33\x33\x33\x33\x33\x33\x33\x33\x33\x33\x33\x3f\
\\x33\x33\x33\x33\x33\x33\x33\x33\x33\x33\x33\x00\x00\x00\x00\x00\
\\x00"
),
 (63,  
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\
\\x00\x33\x33\x40\x33\x33\x33\x33\x33\x33\x33\x33\x33\x33\x33\x33\
\\x33\x33\x33\x33\x33\x33\x33\x33\x33\x33\x33\x00\x00\x00\x00\x00\
\\x00"
),
 (65,  
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\
\\x00\x33\x33\x33\x33\x42\x33\x33\x33\x33\x33\x33\x33\x33\x33\x33\
\\x33\x33\x33\x33\x33\x33\x33\x33\x33\x33\x33\x00\x00\x00\x00\x00\
\\x00"
),
 (66,  
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\
\\x00\x33\x33\x33\x33\x33\x43\x33\x33\x33\x33\x33\x33\x33\x33\x33\
\\x33\x33\x33\x33\x33\x33\x33\x33\x33\x33\x33\x00\x00\x00\x00\x00\
\\x00"
),
 (67,  
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\
\\x00\x33\x33\x33\x33\x33\x33\x33\x33\x33\x33\x33\x33\x33\x33\x33\
\\x33\x33\x33\x33\x44\x33\x33\x33\x33\x33\x33\x00\x00\x00\x00\x00\
\\x00"
),
 (70,  
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x4b\x00\x00\x4a\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x49\x48\x00\x47\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00"
),
 (74,  
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00"
),
 (77,  
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00"
),
 (79,  
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00"
),
 (81,  
"\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x00\x51\x51\x00\x51\x51\
\\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\
\\x51\x51\x00\x51\x51\x51\x51\x51\x00\x00\x51\x51\x51\x51\x51\x51\
\\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\
\\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\
\\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\
\\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\
\\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\
\\x51"
),
 (82,  
"\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x00\x51\x51\x00\x51\x51\
\\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\
\\x51\x51\x00\x51\x51\x51\x51\x51\x00\x00\x53\x51\x51\x51\x51\x51\
\\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\
\\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\
\\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\
\\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\
\\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\
\\x51"
),
 (83,  
"\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x00\x51\x51\x00\x51\x51\
\\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\
\\x51\x51\x00\x53\x51\x51\x51\x51\x00\x00\x53\x51\x51\x53\x51\x51\
\\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x53\x51\x51\
\\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\
\\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\
\\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\
\\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\x51\
\\x51"
),
 (90,  
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00"
),
 (93,  
"\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x00\x5d\x5d\x00\x5d\x5d\
\\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\
\\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x00\x00\x00\x5d\x5d\x5d\x5d\x5d\
\\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\
\\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\
\\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\
\\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\
\\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\
\\x5d"
),
 (94,  
"\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x00\x5d\x5d\x00\x5d\x5d\
\\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\
\\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x00\x00\x5f\x5d\x5d\x5d\x5d\x5d\
\\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\
\\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\
\\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\
\\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\
\\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\x5d\
\\x5d"
),
 (95,  
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x5f\x00\x00\x00\x00\x00\x00\x5f\x00\x00\x5f\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00"
),
 (96,  
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00"
),
 (99,  
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00"
),
 (101,  
"\x65\x65\x65\x65\x65\x65\x65\x65\x65\x65\x00\x65\x65\x00\x65\x65\
\\x65\x65\x65\x65\x65\x65\x65\x65\x65\x65\x65\x65\x65\x65\x65\x65\
\\x65\x65\x00\x65\x65\x65\x65\x65\x65\x65\x65\x65\x65\x65\x65\x65\
\\x65\x65\x65\x65\x65\x65\x65\x65\x65\x65\x65\x65\x65\x65\x65\x65\
\\x65\x65\x65\x65\x65\x65\x65\x65\x65\x65\x65\x65\x65\x65\x65\x65\
\\x65\x65\x65\x65\x65\x65\x65\x65\x65\x65\x65\x65\x00\x65\x65\x65\
\\x65\x65\x65\x65\x65\x65\x65\x65\x65\x65\x65\x65\x65\x65\x65\x65\
\\x65\x65\x65\x65\x65\x65\x65\x65\x65\x65\x65\x65\x65\x65\x65\x65\
\\x65"
),
 (102,  
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x6a\x00\x00\x69\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x68\x00\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00"
),
 (105,  
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00"
),
 (108,  
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6d\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00"
),
 (110,  
"\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x00\x6e\x6e\x00\x6e\x6e\
\\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\
\\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x00\x00\x00\x6e\x6e\x6e\x6e\x6e\
\\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\
\\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\
\\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\
\\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\
\\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\
\\x6e"
),
 (111,  
"\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x00\x6e\x6e\x00\x6e\x6e\
\\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\
\\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x00\x00\x70\x6e\x6e\x6e\x6e\x6e\
\\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\
\\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\
\\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\
\\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\
\\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\x6e\
\\x6e"
),
 (112,  
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x70\x00\x00\x00\x00\x00\x00\x70\x00\x00\x70\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x70\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00"
),
 (113,  
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x72\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\\x00"
),
    (0, "")];
    fun f x = x;
    s = map f (reverse (tail (reverse s)));
    exception LEX_HACKING_ERROR;
    fun get ((j, x) ! r, i: Int)
            =>
            if (i == j)  x;   else get (r, i); fi;

        get ([], i)
            =>
            raise exception LEX_HACKING_ERROR;
    end;
fun g {   fin => x,   trans => i   }
    =
    {   fin => x,   trans => get (s, i)   };
 vector::from_list (map g 
[{ fin => [], trans => 0},
{ fin => [], trans => 1},
{ fin => [], trans => 1},
{ fin => [], trans => 3},
{ fin => [], trans => 3},
{ fin => [], trans => 5},
{ fin => [], trans => 5},
{ fin => [], trans => 7},
{ fin => [], trans => 7},
{ fin => [], trans => 9},
{ fin => [], trans => 9},
{ fin => [], trans => 11},
{ fin => [], trans => 11},
{ fin => [], trans => 13},
{ fin => [], trans => 13},
{ fin => [], trans => 15},
{ fin => [], trans => 15},
{ fin => [(NN 32), (NN 42)], trans => 17},
{ fin => [(NN 32)], trans => 17},
{ fin => [(NN 32), (NN 42)], trans => 19},
{ fin => [(NN 3), (NN 32)], trans => 20},
{ fin => [(NN 42)], trans => 21},
{ fin => [(NN 35)], trans => 0},
{ fin => [(NN 40), (NN 42)], trans => 23},
{ fin => [(NN 40)], trans => 0},
{ fin => [(NN 129)], trans => 0},
{ fin => [(NN 70), (NN 129)], trans => 0},
{ fin => [(NN 122), (NN 129)], trans => 0},
{ fin => [(NN 68), (NN 129)], trans => 0},
{ fin => [(NN 125), (NN 129)], trans => 29},
{ fin => [(NN 125)], trans => 29},
{ fin => [], trans => 31},
{ fin => [(NN 112)], trans => 0},
{ fin => [(NN 125), (NN 129)], trans => 33},
{ fin => [(NN 62), (NN 125)], trans => 29},
{ fin => [(NN 125), (NN 129)], trans => 35},
{ fin => [(NN 125)], trans => 36},
{ fin => [(NN 66), (NN 125)], trans => 29},
{ fin => [(NN 120), (NN 129)], trans => 0},
{ fin => [(NN 115), (NN 129)], trans => 39},
{ fin => [(NN 115)], trans => 39},
{ fin => [(NN 129)], trans => 41},
{ fin => [(NN 7)], trans => 42},
{ fin => [(NN 129)], trans => 43},
{ fin => [(NN 77)], trans => 0},
{ fin => [(NN 72), (NN 129)], trans => 0},
{ fin => [(NN 74), (NN 129)], trans => 0},
{ fin => [(NN 127), (NN 129)], trans => 0},
{ fin => [(NN 107), (NN 129)], trans => 48},
{ fin => [(NN 107)], trans => 48},
{ fin => [(NN 129)], trans => 50},
{ fin => [(NN 104)], trans => 51},
{ fin => [(NN 104)], trans => 52},
{ fin => [(NN 104)], trans => 53},
{ fin => [(NN 104)], trans => 54},
{ fin => [(NN 104)], trans => 55},
{ fin => [(NN 90), (NN 104)], trans => 51},
{ fin => [(NN 104)], trans => 57},
{ fin => [(NN 104)], trans => 58},
{ fin => [(NN 104)], trans => 59},
{ fin => [(NN 104)], trans => 60},
{ fin => [(NN 104)], trans => 61},
{ fin => [(NN 104)], trans => 62},
{ fin => [(NN 104)], trans => 63},
{ fin => [(NN 100), (NN 104)], trans => 51},
{ fin => [(NN 104)], trans => 65},
{ fin => [(NN 104)], trans => 66},
{ fin => [(NN 104)], trans => 67},
{ fin => [(NN 83), (NN 104)], trans => 51},
{ fin => [(NN 118)], trans => 0},
{ fin => [(NN 129)], trans => 70},
{ fin => [(NN 25)], trans => 0},
{ fin => [(NN 22)], trans => 0},
{ fin => [(NN 16)], trans => 0},
{ fin => [(NN 13)], trans => 74},
{ fin => [(NN 13)], trans => 0},
{ fin => [(NN 19)], trans => 0},
{ fin => [(NN 59), (NN 129)], trans => 77},
{ fin => [(NN 59)], trans => 77},
{ fin => [(NN 54), (NN 129)], trans => 79},
{ fin => [(NN 54)], trans => 0},
{ fin => [(NN 138)], trans => 81},
{ fin => [(NN 138)], trans => 82},
{ fin => [(NN 29), (NN 138)], trans => 83},
{ fin => [(NN 133)], trans => 0},
{ fin => [(NN 131)], trans => 0},
{ fin => [(NN 135)], trans => 0},
{ fin => [(NN 40)], trans => 23},
{ fin => [(NN 191)], trans => 0},
{ fin => [(NN 189), (NN 191)], trans => 0},
{ fin => [(NN 187), (NN 191)], trans => 90},
{ fin => [(NN 187)], trans => 90},
{ fin => [(NN 40), (NN 191)], trans => 23},
{ fin => [(NN 148)], trans => 93},
{ fin => [(NN 148)], trans => 94},
{ fin => [(NN 145)], trans => 95},
{ fin => [], trans => 96},
{ fin => [(NN 141)], trans => 0},
{ fin => [(NN 49)], trans => 0},
{ fin => [(NN 47), (NN 49)], trans => 99},
{ fin => [(NN 47)], trans => 0},
{ fin => [(NN 172)], trans => 101},
{ fin => [(NN 164)], trans => 102},
{ fin => [(NN 175)], trans => 0},
{ fin => [(NN 184)], trans => 0},
{ fin => [(NN 181)], trans => 105},
{ fin => [(NN 181)], trans => 0},
{ fin => [(NN 162)], trans => 0},
{ fin => [(NN 169)], trans => 108},
{ fin => [(NN 169)], trans => 0},
{ fin => [(NN 160)], trans => 110},
{ fin => [(NN 160)], trans => 111},
{ fin => [(NN 157)], trans => 112},
{ fin => [(NN 150)], trans => 113},
{ fin => [(NN 153)], trans => 0},
{ fin => [(NN 150)], trans => 0}]);
};
package start_states {
         
         Yystartstate = STARTSTATE Int;

#  start state definitions 

my aaa = STARTSTATE 3;
my code = STARTSTATE 5;
my comment = STARTSTATE 9;
my emptycomment = STARTSTATE 15;
my fff = STARTSTATE 7;
my initial = STARTSTATE 1;
my linecomment = STARTSTATE 11;
my string = STARTSTATE 13;

 };
Result = user_declarations::Lex_Result;
         exception LEXER_ERROR; # Raised if illegal leaf action tried */
};

fun make_lexer yyinput =
{        my yygone0=1;
         yyb = REF "\n";                #  Buffer 
         yybl = REF 1;          # Buffer length 
         yybufpos = REF 1;              #  location of next character to use 
         yygone = REF yygone0;  #  position in file of beginning of buffer 
         yydone = REF FALSE;            #  eof found yet? 
         yybegin_i = REF 1;             # Current 'start state' for lexer 

         yybegin = \\ (internal::start_states::STARTSTATE x) =
                 yybegin_i := x;

fun lex (yyarg as (input_source)) =
 { fun continue () : internal::Result = 
  { fun scan (s, accepting_leaves:  List( List( internal::Yyfinstate ) ), l, i0) =
         { fun action (i, NIL) => raise exception LEX_ERROR;
         action (i, NIL ! l)     => action (i - 1, l);
         action (i, (node ! acts) ! l) => 
                 case node
                 
                    internal::NN yyk => 
                         ( { fun yymktext () = substring(*yyb, i0, i-i0);
                             yypos = i0 + *yygone;
                         include package   user_declarations;
                         include package   internal::start_states;
  {   yybufpos := i;
      case yyk
 

                        #  Application actions 

  100 => { prec(header::NONASSOC,*lineno,*lineno); };
  104 => {   yytext=yymktext();
lookup(yytext,*lineno,*lineno); };
  107 => {   yytext=yymktext();
tyvar(yytext,*lineno,*lineno); };
  112 => {   yytext=yymktext();
iddot(yytext,*lineno,*lineno); };
  115 => {   yytext=yymktext();
int (yytext,*lineno,*lineno); };
  118 => { delimiter(*lineno,*lineno); };
  120 => { colon(*lineno,*lineno); };
  122 => { bar(*lineno,*lineno); };
  125 => {   yytext=yymktext();
id ((yytext,*lineno),*lineno,*lineno); };
  127 => { pcount := 1; actionstart := *lineno;
                    text := NIL; yybegin code; continue() then yybegin aaa; };
  129 => {   yytext=yymktext();
unknown(yytext,*lineno,*lineno); };
  13 => { inc lineno; continue(); };
  131 => {   yytext=yymktext();
inc pcount; add yytext; continue(); };
  133 => {   yytext=yymktext();
dec pcount;
                    if (*pcount == 0)
                         prog (cat (reverse *text),*lineno,*lineno);
                    else
                         add yytext;
                         continue();
                    fi
                   ; };
  135 => {   yytext=yymktext();
add yytext; yybegin string; continue(); };
  138 => {   yytext=yymktext();
add yytext; continue(); };
  141 => {   yytext=yymktext();
add yytext; dec comment_level;
                    if (*comment_level==0)
                         bogus_value(*lineno,*lineno);
                    else
                        continue();
                    fi
                   ; };
  145 => {   yytext=yymktext();
add yytext; inc comment_level; continue(); };
  148 => {   yytext=yymktext();
add yytext; continue(); };
  150 => { continue(); };
  153 => { dec comment_level;
                          if (*comment_level==0)
                              yybegin aaa;
                          fi;
                          continue (); };
  157 => { inc comment_level; continue(); };
  16 => { yybegin linecomment;  continue(); };
  160 => { continue(); };
  162 => {   yytext=yymktext();
add yytext; yybegin code; continue(); };
  164 => {   yytext=yymktext();
add yytext; continue(); };
  169 => {   yytext=yymktext();
add yytext; error input_source *lineno "unclosed string";
                    inc lineno; yybegin code; continue(); };
  172 => {   yytext=yymktext();
add yytext; continue(); };
  175 => {   yytext=yymktext();
add yytext; continue(); };
  181 => {   yytext=yymktext();
add yytext; inc lineno; yybegin fff; continue(); };
  184 => {   yytext=yymktext();
add yytext; yybegin fff; continue(); };
  187 => {   yytext=yymktext();
add yytext; continue(); };
  189 => {   yytext=yymktext();
add yytext; yybegin string; continue(); };
  19 => { yybegin linecomment;  continue(); };
  191 => {   yytext=yymktext();
add yytext; error input_source *lineno "unclosed string";
                    yybegin code; continue(); };
  22 => { yybegin linecomment;  continue(); };
  25 => { yybegin linecomment;  continue(); };
  29 => {   yytext=yymktext();
add yytext; yybegin comment; comment_level := 1;
                    continue() then yybegin code; };
  3 => {   yytext=yymktext();
add yytext; yybegin comment; comment_level := 1;
                    continue() then yybegin initial; };
  32 => {   yytext=yymktext();
add yytext; continue(); };
  35 => { yybegin aaa; header (cat (reverse *text),*lineno,*lineno); };
  40 => {   yytext=yymktext();
add yytext; inc lineno; continue(); };
  42 => {   yytext=yymktext();
add yytext; continue(); };
  47 => { inc lineno; yybegin aaa; continue(); };
  49 => { continue(); };
  54 => { inc lineno; continue (); };
  59 => { continue(); };
  62 => { of_t(*lineno,*lineno); };
  66 => { for_t(*lineno,*lineno); };
  68 => { lbrace(*lineno,*lineno); };
  7 => { yybegin emptycomment; comment_level := 1; continue(); };
  70 => { rbrace(*lineno,*lineno); };
  72 => { comma(*lineno,*lineno); };
  74 => { asterisk(*lineno,*lineno); };
  77 => { arrow(*lineno,*lineno); };
  83 => { prec(header::LEFT,*lineno,*lineno); };
  90 => { prec(header::RIGHT,*lineno,*lineno); };
  _ => raise exception internal::LEXER_ERROR;

                 esac; }; } ); esac; end;    # fun action

         my { fin, trans } = unsafe::vector::get (internal::tab, s);
         new_accepting_leaves = fin ! accepting_leaves;
         if (l == *yybl)
             if (trans == .trans (vector::get (internal::tab, 0)))
               action (l, new_accepting_leaves);
         else        newchars= if *yydone ""; else yyinput 1024; fi;
             if ((size newchars) == 0)
                        yydone := TRUE;
                        if (l == i0)  user_declarations::eof yyarg;
                                  else action (l, new_accepting_leaves); fi;
                  else if (l == i0)  yyb := newchars;
                             else yyb := substring(*yyb, i0, l-i0) + newchars; fi;
                       yygone := *yygone+i0;
                       yybl := size *yyb;
                       scan (s, accepting_leaves, l-i0, 0);
             fi;   # (size newchars) == 0
             fi;   # trans == $trans ...
          else new_char = char::to_int (unsafe::vector_of_chars::get(*yyb, l));
                 new_char = if (new_char < 128) new_char; else 128; fi;
                 new_state = char::to_int (unsafe::vector_of_chars::get (trans, new_char));
                 if (new_state == 0) action (l, new_accepting_leaves);
                 else scan (new_state, new_accepting_leaves, l+1, i0); fi;
         fi;
  };    # fun scan
/*
         start= if (substring(*yyb,*yybufpos - 1, 1)=="\n") *yybegin_i+1; else *yybegin_i; fi;
*/
         scan(*yybegin_i /* start */ , NIL, *yybufpos, *yybufpos);   # fun continue
    };   # fun continue
 continue; };    # fun lex
  lex; 
  };   # fun make_lexer
};


Comments and suggestions to: bugs@mythryl.org

PreviousUpNext