


# Compiled by:
# src/app/yacc/src/mythryl-yacc.libgeneric 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 tokens;
error = header::error;
lineno = header::lineno;
text = header::text;
pcount = REF 0;
comment_level = REF 0;
actionstart = REF 0;
eof = fn 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,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000"
),
(1,
"\017\017\017\017\017\017\017\017\017\017\024\017\017\023\017\017\
\\017\017\017\017\017\017\017\017\017\017\017\017\017\017\017\017\
\\017\017\017\017\017\021\017\017\017\017\017\017\017\017\017\019\
\\017\017\017\017\017\017\017\017\017\017\017\017\017\017\017\017\
\\017\017\017\017\017\017\017\017\017\017\017\017\017\017\017\017\
\\017\017\017\017\017\017\017\017\017\017\017\017\017\017\017\017\
\\017\017\017\017\017\017\017\017\017\017\017\017\017\017\017\017\
\\017\017\017\017\017\017\017\017\017\017\017\017\017\017\017\017\
\\017"
),
(3,
"\025\025\025\025\025\025\025\025\025\077\080\025\025\079\025\025\
\\025\025\025\025\025\025\025\025\025\025\025\025\025\025\025\025\
\\077\025\025\070\025\050\025\048\047\025\046\025\045\043\025\041\
\\039\039\039\039\039\039\039\039\039\039\038\025\025\025\025\025\
\\025\029\029\029\029\029\029\029\029\029\029\029\029\029\029\029\
\\029\029\029\029\029\029\029\029\029\029\029\025\025\025\025\025\
\\025\029\029\029\029\029\035\029\029\029\029\029\029\029\029\033\
\\029\029\029\029\029\029\029\029\029\029\029\028\027\026\025\025\
\\025"
),
(5,
"\081\081\081\081\081\081\081\081\081\081\024\081\081\087\081\081\
\\081\081\081\081\081\081\081\081\081\081\081\081\081\081\081\081\
\\081\081\086\081\081\081\081\081\085\084\081\081\081\081\081\082\
\\081\081\081\081\081\081\081\081\081\081\081\081\081\081\081\081\
\\081\081\081\081\081\081\081\081\081\081\081\081\081\081\081\081\
\\081\081\081\081\081\081\081\081\081\081\081\081\081\081\081\081\
\\081\081\081\081\081\081\081\081\081\081\081\081\081\081\081\081\
\\081\081\081\081\081\081\081\081\081\081\081\081\081\081\081\081\
\\081"
),
(7,
"\088\088\088\088\088\088\088\088\088\090\024\088\088\092\088\088\
\\088\088\088\088\088\088\088\088\088\088\088\088\088\088\088\088\
\\090\088\088\088\088\088\088\088\088\088\088\088\088\088\088\088\
\\088\088\088\088\088\088\088\088\088\088\088\088\088\088\088\088\
\\088\088\088\088\088\088\088\088\088\088\088\088\088\088\088\088\
\\088\088\088\088\088\088\088\088\088\088\088\088\089\088\088\088\
\\088\088\088\088\088\088\088\088\088\088\088\088\088\088\088\088\
\\088\088\088\088\088\088\088\088\088\088\088\088\088\088\088\088\
\\088"
),
(9,
"\093\093\093\093\093\093\093\093\093\093\024\093\093\087\093\093\
\\093\093\093\093\093\093\093\093\093\093\093\093\093\093\093\093\
\\093\093\093\093\093\093\093\093\000\000\096\093\093\093\093\094\
\\093\093\093\093\093\093\093\093\093\093\093\093\093\093\093\093\
\\093\093\093\093\093\093\093\093\093\093\093\093\093\093\093\093\
\\093\093\093\093\093\093\093\093\093\093\093\093\093\093\093\093\
\\093\093\093\093\093\093\093\093\093\093\093\093\093\093\093\093\
\\093\093\093\093\093\093\093\093\093\093\093\093\093\093\093\093\
\\093"
),
(11,
"\098\098\098\098\098\098\098\098\098\098\100\098\098\099\098\098\
\\098\098\098\098\098\098\098\098\098\098\098\098\098\098\098\098\
\\098\098\098\098\098\098\098\098\098\098\098\098\098\098\098\098\
\\098\098\098\098\098\098\098\098\098\098\098\098\098\098\098\098\
\\098\098\098\098\098\098\098\098\098\098\098\098\098\098\098\098\
\\098\098\098\098\098\098\098\098\098\098\098\098\098\098\098\098\
\\098\098\098\098\098\098\098\098\098\098\098\098\098\098\098\098\
\\098\098\098\098\098\098\098\098\098\098\098\098\098\098\098\098\
\\098"
),
(13,
"\101\101\101\101\101\101\101\101\101\101\109\101\101\108\101\101\
\\101\101\101\101\101\101\101\101\101\101\101\101\101\101\101\101\
\\101\101\107\101\101\101\101\101\101\101\101\101\101\101\101\101\
\\101\101\101\101\101\101\101\101\101\101\101\101\101\101\101\101\
\\101\101\101\101\101\101\101\101\101\101\101\101\101\101\101\101\
\\101\101\101\101\101\101\101\101\101\101\101\101\102\101\101\101\
\\101\101\101\101\101\101\101\101\101\101\101\101\101\101\101\101\
\\101\101\101\101\101\101\101\101\101\101\101\101\101\101\101\101\
\\101"
),
(15,
"\110\110\110\110\110\110\110\110\110\110\024\110\110\087\110\110\
\\110\110\110\110\110\110\110\110\110\110\110\110\110\110\110\110\
\\110\110\110\110\110\110\110\110\115\115\113\110\110\110\110\111\
\\110\110\110\110\110\110\110\110\110\110\110\110\110\110\110\110\
\\110\110\110\110\110\110\110\110\110\110\110\110\110\110\110\110\
\\110\110\110\110\110\110\110\110\110\110\110\110\110\110\110\110\
\\110\110\110\110\110\110\110\110\110\110\110\110\110\110\110\110\
\\110\110\110\110\110\110\110\110\110\110\110\110\110\110\110\110\
\\110"
),
(17,
"\018\018\018\018\018\018\018\018\018\018\000\018\018\000\018\018\
\\018\018\018\018\018\018\018\018\018\018\018\018\018\018\018\018\
\\018\018\018\018\018\000\018\018\018\018\018\018\018\018\018\018\
\\018\018\018\018\018\018\018\018\018\018\018\018\018\018\018\018\
\\018\018\018\018\018\018\018\018\018\018\018\018\018\018\018\018\
\\018\018\018\018\018\018\018\018\018\018\018\018\018\018\018\018\
\\018\018\018\018\018\018\018\018\018\018\018\018\018\018\018\018\
\\018\018\018\018\018\018\018\018\018\018\018\018\018\018\018\018\
\\018"
),
(19,
"\018\018\018\018\018\018\018\018\018\018\000\018\018\000\018\018\
\\018\018\018\018\018\018\018\018\018\018\018\018\018\018\018\018\
\\018\018\018\018\018\000\018\018\018\018\020\018\018\018\018\018\
\\018\018\018\018\018\018\018\018\018\018\018\018\018\018\018\018\
\\018\018\018\018\018\018\018\018\018\018\018\018\018\018\018\018\
\\018\018\018\018\018\018\018\018\018\018\018\018\018\018\018\018\
\\018\018\018\018\018\018\018\018\018\018\018\018\018\018\018\018\
\\018\018\018\018\018\018\018\018\018\018\018\018\018\018\018\018\
\\018"
),
(20,
"\018\018\018\018\018\018\018\018\018\018\000\018\018\000\018\018\
\\018\018\018\018\018\018\018\018\018\018\018\018\018\018\018\018\
\\018\018\018\020\018\000\018\018\018\018\020\018\018\020\018\018\
\\018\018\018\018\018\018\018\018\018\018\018\018\018\020\018\018\
\\018\018\018\018\018\018\018\018\018\018\018\018\018\018\018\018\
\\018\018\018\018\018\018\018\018\018\018\018\018\018\018\018\018\
\\018\018\018\018\018\018\018\018\018\018\018\018\018\018\018\018\
\\018\018\018\018\018\018\018\018\018\018\018\018\018\018\018\018\
\\018"
),
(21,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\022\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000"
),
(23,
"\000\000\000\000\000\000\000\000\000\000\024\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000"
),
(29,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\030\000\000\000\000\000\000\000\000\
\\030\030\030\030\030\030\030\030\030\030\031\000\000\000\000\000\
\\000\030\030\030\030\030\030\030\030\030\030\030\030\030\030\030\
\\030\030\030\030\030\030\030\030\030\030\030\000\000\000\000\030\
\\000\030\030\030\030\030\030\030\030\030\030\030\030\030\030\030\
\\030\030\030\030\030\030\030\030\030\030\030\000\000\000\000\000\
\\000"
),
(31,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\032\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000"
),
(33,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\030\000\000\000\000\000\000\000\000\
\\030\030\030\030\030\030\030\030\030\030\031\000\000\000\000\000\
\\000\030\030\030\030\030\030\030\030\030\030\030\030\030\030\030\
\\030\030\030\030\030\030\030\030\030\030\030\000\000\000\000\030\
\\000\030\030\030\030\030\034\030\030\030\030\030\030\030\030\030\
\\030\030\030\030\030\030\030\030\030\030\030\000\000\000\000\000\
\\000"
),
(35,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\030\000\000\000\000\000\000\000\000\
\\030\030\030\030\030\030\030\030\030\030\031\000\000\000\000\000\
\\000\030\030\030\030\030\030\030\030\030\030\030\030\030\030\030\
\\030\030\030\030\030\030\030\030\030\030\030\000\000\000\000\030\
\\000\030\030\030\030\030\030\030\030\030\030\030\030\030\030\036\
\\030\030\030\030\030\030\030\030\030\030\030\000\000\000\000\000\
\\000"
),
(36,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\030\000\000\000\000\000\000\000\000\
\\030\030\030\030\030\030\030\030\030\030\031\000\000\000\000\000\
\\000\030\030\030\030\030\030\030\030\030\030\030\030\030\030\030\
\\030\030\030\030\030\030\030\030\030\030\030\000\000\000\000\030\
\\000\030\030\030\030\030\030\030\030\030\030\030\030\030\030\030\
\\030\030\037\030\030\030\030\030\030\030\030\000\000\000\000\000\
\\000"
),
(39,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\040\040\040\040\040\040\040\040\040\040\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000"
),
(41,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\042\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000"
),
(42,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\042\000\000\000\000\000\000\042\000\000\042\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\042\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000"
),
(43,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\044\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000"
),
(48,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\049\000\000\000\000\000\000\000\000\
\\049\049\049\049\049\049\049\049\049\049\000\000\000\000\000\000\
\\000\049\049\049\049\049\049\049\049\049\049\049\049\049\049\049\
\\049\049\049\049\049\049\049\049\049\049\049\000\000\000\000\049\
\\000\049\049\049\049\049\049\049\049\049\049\049\049\049\049\049\
\\049\049\049\049\049\049\049\049\049\049\049\000\000\000\000\000\
\\000"
),
(50,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\069\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\051\
\\000\051\051\051\051\051\051\051\051\051\051\051\065\051\057\051\
\\051\051\052\051\051\051\051\051\051\051\051\000\000\000\000\000\
\\000"
),
(51,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\051\
\\000\051\051\051\051\051\051\051\051\051\051\051\051\051\051\051\
\\051\051\051\051\051\051\051\051\051\051\051\000\000\000\000\000\
\\000"
),
(52,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\051\
\\000\051\051\051\051\051\051\051\051\053\051\051\051\051\051\051\
\\051\051\051\051\051\051\051\051\051\051\051\000\000\000\000\000\
\\000"
),
(53,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\051\
\\000\051\051\051\051\051\051\054\051\051\051\051\051\051\051\051\
\\051\051\051\051\051\051\051\051\051\051\051\000\000\000\000\000\
\\000"
),
(54,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\051\
\\000\051\051\051\051\051\051\051\055\051\051\051\051\051\051\051\
\\051\051\051\051\051\051\051\051\051\051\051\000\000\000\000\000\
\\000"
),
(55,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\051\
\\000\051\051\051\051\051\051\051\051\051\051\051\051\051\051\051\
\\051\051\051\051\056\051\051\051\051\051\051\000\000\000\000\000\
\\000"
),
(57,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\051\
\\000\051\051\051\051\051\051\051\051\051\051\051\051\051\051\058\
\\051\051\051\051\051\051\051\051\051\051\051\000\000\000\000\000\
\\000"
),
(58,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\051\
\\000\051\051\051\051\051\051\051\051\051\051\051\051\051\059\051\
\\051\051\051\051\051\051\051\051\051\051\051\000\000\000\000\000\
\\000"
),
(59,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\051\
\\000\060\051\051\051\051\051\051\051\051\051\051\051\051\051\051\
\\051\051\051\051\051\051\051\051\051\051\051\000\000\000\000\000\
\\000"
),
(60,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\051\
\\000\051\051\051\051\051\051\051\051\051\051\051\051\051\051\051\
\\051\051\051\061\051\051\051\051\051\051\051\000\000\000\000\000\
\\000"
),
(61,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\051\
\\000\051\051\051\051\051\051\051\051\051\051\051\051\051\051\051\
\\051\051\051\062\051\051\051\051\051\051\051\000\000\000\000\000\
\\000"
),
(62,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\051\
\\000\051\051\051\051\051\051\051\051\051\051\051\051\051\051\063\
\\051\051\051\051\051\051\051\051\051\051\051\000\000\000\000\000\
\\000"
),
(63,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\051\
\\000\051\051\064\051\051\051\051\051\051\051\051\051\051\051\051\
\\051\051\051\051\051\051\051\051\051\051\051\000\000\000\000\000\
\\000"
),
(65,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\051\
\\000\051\051\051\051\066\051\051\051\051\051\051\051\051\051\051\
\\051\051\051\051\051\051\051\051\051\051\051\000\000\000\000\000\
\\000"
),
(66,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\051\
\\000\051\051\051\051\051\067\051\051\051\051\051\051\051\051\051\
\\051\051\051\051\051\051\051\051\051\051\051\000\000\000\000\000\
\\000"
),
(67,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\051\
\\000\051\051\051\051\051\051\051\051\051\051\051\051\051\051\051\
\\051\051\051\051\068\051\051\051\051\051\051\000\000\000\000\000\
\\000"
),
(70,
"\000\000\000\000\000\000\000\000\000\076\075\000\000\074\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\073\072\000\071\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000"
),
(74,
"\000\000\000\000\000\000\000\000\000\000\075\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000"
),
(77,
"\000\000\000\000\000\000\000\000\000\078\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\078\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000"
),
(79,
"\000\000\000\000\000\000\000\000\000\000\080\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000"
),
(81,
"\081\081\081\081\081\081\081\081\081\081\000\081\081\000\081\081\
\\081\081\081\081\081\081\081\081\081\081\081\081\081\081\081\081\
\\081\081\000\081\081\081\081\081\000\000\081\081\081\081\081\081\
\\081\081\081\081\081\081\081\081\081\081\081\081\081\081\081\081\
\\081\081\081\081\081\081\081\081\081\081\081\081\081\081\081\081\
\\081\081\081\081\081\081\081\081\081\081\081\081\081\081\081\081\
\\081\081\081\081\081\081\081\081\081\081\081\081\081\081\081\081\
\\081\081\081\081\081\081\081\081\081\081\081\081\081\081\081\081\
\\081"
),
(82,
"\081\081\081\081\081\081\081\081\081\081\000\081\081\000\081\081\
\\081\081\081\081\081\081\081\081\081\081\081\081\081\081\081\081\
\\081\081\000\081\081\081\081\081\000\000\083\081\081\081\081\081\
\\081\081\081\081\081\081\081\081\081\081\081\081\081\081\081\081\
\\081\081\081\081\081\081\081\081\081\081\081\081\081\081\081\081\
\\081\081\081\081\081\081\081\081\081\081\081\081\081\081\081\081\
\\081\081\081\081\081\081\081\081\081\081\081\081\081\081\081\081\
\\081\081\081\081\081\081\081\081\081\081\081\081\081\081\081\081\
\\081"
),
(83,
"\081\081\081\081\081\081\081\081\081\081\000\081\081\000\081\081\
\\081\081\081\081\081\081\081\081\081\081\081\081\081\081\081\081\
\\081\081\000\083\081\081\081\081\000\000\083\081\081\083\081\081\
\\081\081\081\081\081\081\081\081\081\081\081\081\081\083\081\081\
\\081\081\081\081\081\081\081\081\081\081\081\081\081\081\081\081\
\\081\081\081\081\081\081\081\081\081\081\081\081\081\081\081\081\
\\081\081\081\081\081\081\081\081\081\081\081\081\081\081\081\081\
\\081\081\081\081\081\081\081\081\081\081\081\081\081\081\081\081\
\\081"
),
(90,
"\000\000\000\000\000\000\000\000\000\091\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\091\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000"
),
(93,
"\093\093\093\093\093\093\093\093\093\093\000\093\093\000\093\093\
\\093\093\093\093\093\093\093\093\093\093\093\093\093\093\093\093\
\\093\093\093\093\093\093\093\093\000\000\000\093\093\093\093\093\
\\093\093\093\093\093\093\093\093\093\093\093\093\093\093\093\093\
\\093\093\093\093\093\093\093\093\093\093\093\093\093\093\093\093\
\\093\093\093\093\093\093\093\093\093\093\093\093\093\093\093\093\
\\093\093\093\093\093\093\093\093\093\093\093\093\093\093\093\093\
\\093\093\093\093\093\093\093\093\093\093\093\093\093\093\093\093\
\\093"
),
(94,
"\093\093\093\093\093\093\093\093\093\093\000\093\093\000\093\093\
\\093\093\093\093\093\093\093\093\093\093\093\093\093\093\093\093\
\\093\093\093\093\093\093\093\093\000\000\095\093\093\093\093\093\
\\093\093\093\093\093\093\093\093\093\093\093\093\093\093\093\093\
\\093\093\093\093\093\093\093\093\093\093\093\093\093\093\093\093\
\\093\093\093\093\093\093\093\093\093\093\093\093\093\093\093\093\
\\093\093\093\093\093\093\093\093\093\093\093\093\093\093\093\093\
\\093\093\093\093\093\093\093\093\093\093\093\093\093\093\093\093\
\\093"
),
(95,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\095\000\000\000\000\000\000\095\000\000\095\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\095\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000"
),
(96,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\097\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000"
),
(99,
"\000\000\000\000\000\000\000\000\000\000\100\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000"
),
(101,
"\101\101\101\101\101\101\101\101\101\101\000\101\101\000\101\101\
\\101\101\101\101\101\101\101\101\101\101\101\101\101\101\101\101\
\\101\101\000\101\101\101\101\101\101\101\101\101\101\101\101\101\
\\101\101\101\101\101\101\101\101\101\101\101\101\101\101\101\101\
\\101\101\101\101\101\101\101\101\101\101\101\101\101\101\101\101\
\\101\101\101\101\101\101\101\101\101\101\101\101\000\101\101\101\
\\101\101\101\101\101\101\101\101\101\101\101\101\101\101\101\101\
\\101\101\101\101\101\101\101\101\101\101\101\101\101\101\101\101\
\\101"
),
(102,
"\000\000\000\000\000\000\000\000\000\104\106\000\000\105\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\104\000\103\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000"
),
(105,
"\000\000\000\000\000\000\000\000\000\000\106\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000"
),
(108,
"\000\000\000\000\000\000\000\000\000\000\109\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000"
),
(110,
"\110\110\110\110\110\110\110\110\110\110\000\110\110\000\110\110\
\\110\110\110\110\110\110\110\110\110\110\110\110\110\110\110\110\
\\110\110\110\110\110\110\110\110\000\000\000\110\110\110\110\110\
\\110\110\110\110\110\110\110\110\110\110\110\110\110\110\110\110\
\\110\110\110\110\110\110\110\110\110\110\110\110\110\110\110\110\
\\110\110\110\110\110\110\110\110\110\110\110\110\110\110\110\110\
\\110\110\110\110\110\110\110\110\110\110\110\110\110\110\110\110\
\\110\110\110\110\110\110\110\110\110\110\110\110\110\110\110\110\
\\110"
),
(111,
"\110\110\110\110\110\110\110\110\110\110\000\110\110\000\110\110\
\\110\110\110\110\110\110\110\110\110\110\110\110\110\110\110\110\
\\110\110\110\110\110\110\110\110\000\000\112\110\110\110\110\110\
\\110\110\110\110\110\110\110\110\110\110\110\110\110\110\110\110\
\\110\110\110\110\110\110\110\110\110\110\110\110\110\110\110\110\
\\110\110\110\110\110\110\110\110\110\110\110\110\110\110\110\110\
\\110\110\110\110\110\110\110\110\110\110\110\110\110\110\110\110\
\\110\110\110\110\110\110\110\110\110\110\110\110\110\110\110\110\
\\110"
),
(112,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\112\000\000\000\000\000\000\112\000\000\112\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\112\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000"
),
(113,
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\114\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000"
),
(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 = fn (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 user_declarations;
include 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() before 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() before yybegin code; };
3 => { yytext=yymktext();
add yytext; yybegin comment; comment_level := 1;
continue() before 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
};


