1(*
2 * @TAG(OTHER_PRINCETON_OSS)
3 *)
4
5
6functor MlyaccLrValsFun(structure Hdr : HEADER
7                          where type prec = Header.prec
8                        structure Token : TOKEN)
9 =
10struct
11structure ParserData=
12struct
13structure Header =
14struct
15(* ML-Yacc Parser Generator (c) 1989 Andrew W. Appel, David R. Tarditi *)
16
17(* parser for the ML parser generator *)
18
19open Hdr
20
21end
22structure LrTable = Token.LrTable
23structure Token = Token
24local open LrTable in
25val table=let val actionRows =
26"\
27\\001\000\001\000\076\000\000\000\
28\\001\000\005\000\025\000\008\000\024\000\014\000\023\000\016\000\022\000\
29\\019\000\021\000\020\000\020\000\021\000\019\000\022\000\018\000\
30\\024\000\017\000\025\000\016\000\026\000\015\000\027\000\014\000\
31\\028\000\013\000\029\000\012\000\031\000\011\000\035\000\010\000\
32\\036\000\009\000\037\000\008\000\039\000\007\000\040\000\006\000\000\000\
33\\001\000\006\000\063\000\000\000\
34\\001\000\006\000\074\000\000\000\
35\\001\000\006\000\086\000\000\000\
36\\001\000\006\000\098\000\000\000\
37\\001\000\007\000\085\000\033\000\084\000\000\000\
38\\001\000\009\000\000\000\000\000\
39\\001\000\010\000\061\000\000\000\
40\\001\000\011\000\003\000\000\000\
41\\001\000\012\000\026\000\000\000\
42\\001\000\012\000\028\000\000\000\
43\\001\000\012\000\029\000\000\000\
44\\001\000\012\000\032\000\000\000\
45\\001\000\012\000\044\000\013\000\043\000\000\000\
46\\001\000\012\000\044\000\013\000\043\000\017\000\042\000\032\000\041\000\
47\\038\000\040\000\000\000\
48\\001\000\012\000\048\000\000\000\
49\\001\000\012\000\053\000\000\000\
50\\001\000\012\000\071\000\015\000\070\000\000\000\
51\\001\000\012\000\071\000\015\000\070\000\033\000\069\000\000\000\
52\\001\000\012\000\077\000\000\000\
53\\001\000\012\000\080\000\000\000\
54\\001\000\012\000\101\000\000\000\
55\\001\000\032\000\036\000\000\000\
56\\001\000\032\000\037\000\000\000\
57\\001\000\032\000\050\000\000\000\
58\\001\000\032\000\057\000\000\000\
59\\001\000\032\000\100\000\000\000\
60\\001\000\032\000\104\000\000\000\
61\\106\000\012\000\053\000\000\000\
62\\107\000\000\000\
63\\108\000\000\000\
64\\109\000\004\000\058\000\000\000\
65\\110\000\004\000\058\000\000\000\
66\\111\000\000\000\
67\\112\000\000\000\
68\\113\000\000\000\
69\\114\000\000\000\
70\\115\000\000\000\
71\\116\000\000\000\
72\\117\000\000\000\
73\\118\000\000\000\
74\\119\000\000\000\
75\\120\000\000\000\
76\\121\000\000\000\
77\\122\000\001\000\066\000\002\000\065\000\012\000\044\000\013\000\043\000\000\000\
78\\123\000\000\000\
79\\124\000\000\000\
80\\125\000\000\000\
81\\126\000\001\000\066\000\002\000\065\000\012\000\044\000\013\000\043\000\000\000\
82\\127\000\000\000\
83\\128\000\000\000\
84\\129\000\004\000\075\000\000\000\
85\\130\000\000\000\
86\\131\000\000\000\
87\\132\000\004\000\060\000\000\000\
88\\133\000\000\000\
89\\134\000\001\000\066\000\002\000\065\000\012\000\044\000\013\000\043\000\000\000\
90\\135\000\023\000\091\000\000\000\
91\\136\000\001\000\066\000\002\000\065\000\012\000\044\000\013\000\043\000\000\000\
92\\137\000\023\000\059\000\000\000\
93\\138\000\004\000\094\000\000\000\
94\\139\000\000\000\
95\\140\000\000\000\
96\\141\000\000\000\
97\\142\000\012\000\034\000\000\000\
98\\143\000\000\000\
99\\144\000\000\000\
100\\145\000\000\000\
101\\146\000\000\000\
102\\147\000\000\000\
103\\148\000\000\000\
104\\149\000\000\000\
105\\150\000\000\000\
106\\151\000\012\000\044\000\013\000\043\000\000\000\
107\\152\000\001\000\066\000\002\000\065\000\012\000\044\000\013\000\043\000\000\000\
108\\153\000\001\000\066\000\002\000\065\000\012\000\044\000\013\000\043\000\000\000\
109\\154\000\001\000\066\000\002\000\065\000\012\000\044\000\013\000\043\000\000\000\
110\\155\000\000\000\
111\\156\000\000\000\
112\\157\000\000\000\
113\\158\000\000\000\
114\\159\000\000\000\
115\\160\000\030\000\096\000\000\000\
116\"
117val actionRowNumbers =
118"\009\000\031\000\001\000\030\000\
119\\010\000\046\000\011\000\012\000\
120\\013\000\065\000\065\000\023\000\
121\\024\000\015\000\048\000\065\000\
122\\065\000\011\000\047\000\016\000\
123\\065\000\025\000\017\000\065\000\
124\\026\000\032\000\060\000\035\000\
125\\055\000\040\000\008\000\038\000\
126\\065\000\034\000\043\000\002\000\
127\\049\000\073\000\068\000\071\000\
128\\019\000\014\000\078\000\036\000\
129\\041\000\033\000\044\000\037\000\
130\\042\000\029\000\063\000\003\000\
131\\052\000\039\000\000\000\050\000\
132\\020\000\015\000\013\000\021\000\
133\\064\000\015\000\072\000\015\000\
134\\015\000\006\000\004\000\070\000\
135\\081\000\080\000\079\000\062\000\
136\\065\000\065\000\065\000\058\000\
137\\059\000\054\000\056\000\045\000\
138\\074\000\075\000\069\000\018\000\
139\\015\000\061\000\083\000\051\000\
140\\053\000\015\000\005\000\077\000\
141\\065\000\027\000\022\000\057\000\
142\\015\000\083\000\066\000\082\000\
143\\076\000\028\000\067\000\007\000"
144val gotoT =
145"\
146\\001\000\103\000\000\000\
147\\006\000\002\000\000\000\
148\\005\000\003\000\000\000\
149\\000\000\
150\\000\000\
151\\000\000\
152\\002\000\025\000\000\000\
153\\000\000\
154\\013\000\029\000\014\000\028\000\000\000\
155\\003\000\031\000\000\000\
156\\003\000\033\000\000\000\
157\\000\000\
158\\000\000\
159\\007\000\037\000\017\000\036\000\000\000\
160\\000\000\
161\\003\000\043\000\000\000\
162\\003\000\044\000\000\000\
163\\002\000\045\000\000\000\
164\\000\000\
165\\000\000\
166\\003\000\047\000\000\000\
167\\000\000\
168\\010\000\050\000\011\000\049\000\000\000\
169\\003\000\054\000\015\000\053\000\016\000\052\000\000\000\
170\\000\000\
171\\000\000\
172\\000\000\
173\\000\000\
174\\000\000\
175\\000\000\
176\\000\000\
177\\000\000\
178\\003\000\060\000\000\000\
179\\000\000\
180\\000\000\
181\\000\000\
182\\007\000\062\000\000\000\
183\\000\000\
184\\000\000\
185\\000\000\
186\\004\000\066\000\008\000\065\000\000\000\
187\\007\000\070\000\000\000\
188\\000\000\
189\\000\000\
190\\000\000\
191\\000\000\
192\\000\000\
193\\000\000\
194\\000\000\
195\\010\000\071\000\000\000\
196\\000\000\
197\\000\000\
198\\000\000\
199\\000\000\
200\\000\000\
201\\000\000\
202\\000\000\
203\\007\000\037\000\017\000\076\000\000\000\
204\\013\000\077\000\014\000\028\000\000\000\
205\\000\000\
206\\000\000\
207\\007\000\037\000\017\000\079\000\000\000\
208\\000\000\
209\\007\000\037\000\017\000\080\000\000\000\
210\\007\000\037\000\017\000\081\000\000\000\
211\\000\000\
212\\000\000\
213\\000\000\
214\\000\000\
215\\000\000\
216\\000\000\
217\\000\000\
218\\003\000\086\000\009\000\085\000\000\000\
219\\003\000\054\000\015\000\087\000\016\000\052\000\000\000\
220\\003\000\088\000\000\000\
221\\000\000\
222\\007\000\062\000\000\000\
223\\000\000\
224\\000\000\
225\\007\000\062\000\000\000\
226\\007\000\062\000\000\000\
227\\007\000\062\000\000\000\
228\\000\000\
229\\004\000\090\000\000\000\
230\\007\000\037\000\017\000\091\000\000\000\
231\\000\000\
232\\012\000\093\000\000\000\
233\\000\000\
234\\000\000\
235\\007\000\037\000\017\000\095\000\000\000\
236\\000\000\
237\\007\000\062\000\000\000\
238\\003\000\097\000\000\000\
239\\000\000\
240\\000\000\
241\\007\000\062\000\000\000\
242\\007\000\037\000\017\000\100\000\000\000\
243\\012\000\101\000\000\000\
244\\000\000\
245\\000\000\
246\\007\000\062\000\000\000\
247\\000\000\
248\\000\000\
249\\000\000\
250\"
251val numstates = 104
252val numrules = 55
253val s = ref "" and index = ref 0
254val string_to_int = fn () =>
255let val i = !index
256in index := i+2; Char.ord(String.sub(!s,i)) + Char.ord(String.sub(!s,i+1)) * 256
257end
258val string_to_list = fn s' =>
259    let val len = String.size s'
260        fun f () =
261           if !index < len then string_to_int() :: f()
262           else nil
263   in index := 0; s := s'; f ()
264   end
265val string_to_pairlist = fn (conv_key,conv_entry) =>
266     let fun f () =
267         case string_to_int()
268         of 0 => EMPTY
269          | n => PAIR(conv_key (n-1),conv_entry (string_to_int()),f())
270     in f
271     end
272val string_to_pairlist_default = fn (conv_key,conv_entry) =>
273    let val conv_row = string_to_pairlist(conv_key,conv_entry)
274    in fn () =>
275       let val default = conv_entry(string_to_int())
276           val row = conv_row()
277       in (row,default)
278       end
279   end
280val string_to_table = fn (convert_row,s') =>
281    let val len = String.size s'
282        fun f ()=
283           if !index < len then convert_row() :: f()
284           else nil
285     in (s := s'; index := 0; f ())
286     end
287local
288  val memo = Array.array(numstates+numrules,ERROR)
289  val _ =let fun g i=(Array.update(memo,i,REDUCE(i-numstates)); g(i+1))
290       fun f i =
291            if i=numstates then g i
292            else (Array.update(memo,i,SHIFT (STATE i)); f (i+1))
293          in f 0 handle Subscript => ()
294          end
295in
296val entry_to_action = fn 0 => ACCEPT | 1 => ERROR | j => Array.sub(memo,(j-2))
297end
298val gotoT=Array.fromList(string_to_table(string_to_pairlist(NT,STATE),gotoT))
299val actionRows=string_to_table(string_to_pairlist_default(T,entry_to_action),actionRows)
300val actionRowNumbers = string_to_list actionRowNumbers
301val actionT = let val actionRowLookUp=
302let val a=Array.fromList(actionRows) in fn i=>Array.sub(a,i) end
303in Array.fromList(map actionRowLookUp actionRowNumbers)
304end
305in LrTable.mkLrTable {actions=actionT,gotos=gotoT,numRules=numrules,
306numStates=numstates,initialState=STATE 0}
307end
308end
309local open Header in
310type pos = int
311type arg = Hdr.inputSource
312structure MlyValue =
313struct
314datatype svalue = VOID | ntVOID of unit ->  unit
315 | UNKNOWN of unit ->  (string) | TYVAR of unit ->  (string)
316 | PROG of unit ->  (string) | PREC of unit ->  (Header.prec)
317 | INT of unit ->  (string) | IDDOT of unit ->  (string)
318 | ID of unit ->  (string*int) | HEADER of unit ->  (string)
319 | TY of unit ->  (string)
320 | CHANGE_DEC of unit ->  ( ( Hdr.symbol list * Hdr.symbol list ) )
321 | CHANGE_DECL of unit ->  ( ( Hdr.symbol list * Hdr.symbol list )  list)
322 | SUBST_DEC of unit ->  ( ( Hdr.symbol list * Hdr.symbol list ) )
323 | SUBST_DECL of unit ->  ( ( Hdr.symbol list * Hdr.symbol list )  list)
324 | G_RULE_PREC of unit ->  (Hdr.symbol option)
325 | G_RULE_LIST of unit ->  (Hdr.rule list)
326 | G_RULE of unit ->  (Hdr.rule list)
327 | RHS_LIST of unit ->  ({ rhs:Hdr.symbol list,code:string,prec:Hdr.symbol option }  list)
328 | RECORD_LIST of unit ->  (string) | QUAL_ID of unit ->  (string)
329 | MPC_DECLS of unit ->  (Hdr.declData)
330 | MPC_DECL of unit ->  (Hdr.declData) | LABEL of unit ->  (string)
331 | ID_LIST of unit ->  (Hdr.symbol list)
332 | CONSTR_LIST of unit ->  ( ( Hdr.symbol * Hdr.ty option )  list)
333 | BEGIN of unit ->  (string*Hdr.declData* ( Hdr.rule list ) )
334end
335type svalue = MlyValue.svalue
336type result = string*Hdr.declData* ( Hdr.rule list )
337end
338structure EC=
339struct
340open LrTable
341val is_keyword =
342fn _ => false
343val preferred_change =
344nil
345val noShift =
346fn (T 8) => true | _ => false
347val showTerminal =
348fn (T 0) => "ARROW"
349  | (T 1) => "ASTERISK"
350  | (T 2) => "BLOCK"
351  | (T 3) => "BAR"
352  | (T 4) => "CHANGE"
353  | (T 5) => "COLON"
354  | (T 6) => "COMMA"
355  | (T 7) => "DELIMITER"
356  | (T 8) => "EOF"
357  | (T 9) => "FOR"
358  | (T 10) => "HEADER"
359  | (T 11) => "ID"
360  | (T 12) => "IDDOT"
361  | (T 13) => "PERCENT_HEADER"
362  | (T 14) => "INT"
363  | (T 15) => "KEYWORD"
364  | (T 16) => "LBRACE"
365  | (T 17) => "LPAREN"
366  | (T 18) => "NAME"
367  | (T 19) => "NODEFAULT"
368  | (T 20) => "NONTERM"
369  | (T 21) => "NOSHIFT"
370  | (T 22) => "OF"
371  | (T 23) => "PERCENT_EOP"
372  | (T 24) => "PERCENT_PURE"
373  | (T 25) => "PERCENT_POS"
374  | (T 26) => "PERCENT_ARG"
375  | (T 27) => "PERCENT_TOKEN_SIG_INFO"
376  | (T 28) => "PREC"
377  | (T 29) => "PREC_TAG"
378  | (T 30) => "PREFER"
379  | (T 31) => "PROG"
380  | (T 32) => "RBRACE"
381  | (T 33) => "RPAREN"
382  | (T 34) => "SUBST"
383  | (T 35) => "START"
384  | (T 36) => "TERM"
385  | (T 37) => "TYVAR"
386  | (T 38) => "VERBOSE"
387  | (T 39) => "VALUE"
388  | (T 40) => "UNKNOWN"
389  | (T 41) => "BOGUS_VALUE"
390  | _ => "bogus-term"
391local open Header in
392val errtermvalue=
393fn _ => MlyValue.VOID
394end
395val terms = (T 0) :: (T 1) :: (T 2) :: (T 3) :: (T 4) :: (T 5) :: (T 6
396) :: (T 7) :: (T 8) :: (T 9) :: (T 13) :: (T 15) :: (T 16) :: (T 17)
397 :: (T 18) :: (T 19) :: (T 20) :: (T 21) :: (T 22) :: (T 23) :: (T 24)
398 :: (T 25) :: (T 26) :: (T 27) :: (T 29) :: (T 30) :: (T 32) :: (T 33)
399 :: (T 34) :: (T 35) :: (T 36) :: (T 38) :: (T 39) :: (T 41) :: nil
400end
401structure Actions =
402struct
403type int = Int.int
404exception mlyAction of int
405local open Header in
406val actions =
407fn (i392:int,defaultPos,stack,
408    (inputSource):arg) =>
409case (i392,stack)
410of (0,(_,(MlyValue.G_RULE_LIST G_RULE_LIST1,_,G_RULE_LIST1right))::_::
411(_,(MlyValue.MPC_DECLS MPC_DECLS1,_,_))::(_,(MlyValue.HEADER HEADER1,
412HEADER1left,_))::rest671) => let val result=MlyValue.BEGIN(fn _ =>
413let val HEADER as HEADER1=HEADER1 ()
414val MPC_DECLS as MPC_DECLS1=MPC_DECLS1 ()
415val G_RULE_LIST as G_RULE_LIST1=G_RULE_LIST1 ()
416 in (HEADER,MPC_DECLS,rev G_RULE_LIST) end
417)
418 in (LrTable.NT 0,(result,HEADER1left,G_RULE_LIST1right),rest671) end
419| (1,(_,(MlyValue.MPC_DECL MPC_DECL1,MPC_DECLleft,MPC_DECL1right))::(_
420,(MlyValue.MPC_DECLS MPC_DECLS1,MPC_DECLS1left,_))::rest671) => let
421val result=MlyValue.MPC_DECLS(fn _ => let val MPC_DECLS as MPC_DECLS1=
422MPC_DECLS1 ()
423val MPC_DECL as MPC_DECL1=MPC_DECL1 ()
424 in (join_decls(MPC_DECLS,MPC_DECL,inputSource,MPC_DECLleft)) end
425)
426 in (LrTable.NT 5,(result,MPC_DECLS1left,MPC_DECL1right),rest671) end
427| (2,rest671) => let val result=MlyValue.MPC_DECLS(fn _ => (
428DECL {prec=nil,nonterm=NONE,term=NONE,eop=nil,control=nil,
429                   keyword=nil,change=nil,
430                   value=nil}
431))
432 in (LrTable.NT 5,(result,defaultPos,defaultPos),rest671) end
433| (3,(_,(MlyValue.CONSTR_LIST CONSTR_LIST1,_,CONSTR_LIST1right))::(_,(
434_,TERM1left,_))::rest671) => let val result=MlyValue.MPC_DECL(fn _ =>
435let val CONSTR_LIST as CONSTR_LIST1=CONSTR_LIST1 ()
436 in (
437DECL { prec=nil,nonterm=NONE,
438               term = SOME CONSTR_LIST, eop =nil,control=nil,
439                change=nil,keyword=nil,
440                value=nil}
441) end
442)
443 in (LrTable.NT 4,(result,TERM1left,CONSTR_LIST1right),rest671) end
444| (4,(_,(MlyValue.CONSTR_LIST CONSTR_LIST1,_,CONSTR_LIST1right))::(_,(
445_,NONTERM1left,_))::rest671) => let val result=MlyValue.MPC_DECL(fn _
446 => let val CONSTR_LIST as CONSTR_LIST1=CONSTR_LIST1 ()
447 in (
448DECL { prec=nil,control=nil,nonterm= SOME CONSTR_LIST,
449               term = NONE, eop=nil,change=nil,keyword=nil,
450               value=nil}
451) end
452)
453 in (LrTable.NT 4,(result,NONTERM1left,CONSTR_LIST1right),rest671) end
454| (5,(_,(MlyValue.ID_LIST ID_LIST1,_,ID_LIST1right))::(_,(
455MlyValue.PREC PREC1,PREC1left,_))::rest671) => let val result=
456MlyValue.MPC_DECL(fn _ => let val PREC as PREC1=PREC1 ()
457val ID_LIST as ID_LIST1=ID_LIST1 ()
458 in (
459DECL {prec= [(PREC,ID_LIST)],control=nil,
460              nonterm=NONE,term=NONE,eop=nil,change=nil,
461              keyword=nil,value=nil}
462) end
463)
464 in (LrTable.NT 4,(result,PREC1left,ID_LIST1right),rest671) end
465| (6,(_,(MlyValue.ID ID1,_,ID1right))::(_,(_,START1left,_))::rest671)
466 => let val result=MlyValue.MPC_DECL(fn _ => let val ID as ID1=ID1 ()
467 in (
468DECL {prec=nil,control=[START_SYM (symbolMake ID)],nonterm=NONE,
469               term = NONE, eop = nil,change=nil,keyword=nil,
470               value=nil}
471) end
472)
473 in (LrTable.NT 4,(result,START1left,ID1right),rest671) end
474| (7,(_,(MlyValue.ID_LIST ID_LIST1,_,ID_LIST1right))::(_,(_,
475PERCENT_EOP1left,_))::rest671) => let val result=MlyValue.MPC_DECL(fn
476_ => let val ID_LIST as ID_LIST1=ID_LIST1 ()
477 in (
478DECL {prec=nil,control=nil,nonterm=NONE,term=NONE,
479                eop=ID_LIST, change=nil,keyword=nil,
480                 value=nil}
481) end
482)
483 in (LrTable.NT 4,(result,PERCENT_EOP1left,ID_LIST1right),rest671) end
484| (8,(_,(MlyValue.ID_LIST ID_LIST1,_,ID_LIST1right))::(_,(_,
485KEYWORD1left,_))::rest671) => let val result=MlyValue.MPC_DECL(fn _
486 => let val ID_LIST as ID_LIST1=ID_LIST1 ()
487 in (
488DECL {prec=nil,control=nil,nonterm=NONE,term=NONE,eop=nil,
489                change=nil,keyword=ID_LIST,
490                 value=nil}
491) end
492)
493 in (LrTable.NT 4,(result,KEYWORD1left,ID_LIST1right),rest671) end
494| (9,(_,(MlyValue.ID_LIST ID_LIST1,_,ID_LIST1right))::(_,(_,
495PREFER1left,_))::rest671) => let val result=MlyValue.MPC_DECL(fn _ =>
496let val ID_LIST as ID_LIST1=ID_LIST1 ()
497 in (
498DECL {prec=nil,control=nil,nonterm=NONE,term=NONE,eop=nil,
499                    change=map (fn i=>([],[i])) ID_LIST,keyword=nil,
500                    value=nil}
501) end
502)
503 in (LrTable.NT 4,(result,PREFER1left,ID_LIST1right),rest671) end
504| (10,(_,(MlyValue.CHANGE_DECL CHANGE_DECL1,_,CHANGE_DECL1right))::(_,
505(_,CHANGE1left,_))::rest671) => let val result=MlyValue.MPC_DECL(fn _
506 => let val CHANGE_DECL as CHANGE_DECL1=CHANGE_DECL1 ()
507 in (
508DECL {prec=nil,control=nil,nonterm=NONE,term=NONE,eop=nil,
509                change=CHANGE_DECL,keyword=nil,
510                value=nil}
511) end
512)
513 in (LrTable.NT 4,(result,CHANGE1left,CHANGE_DECL1right),rest671) end
514| (11,(_,(MlyValue.SUBST_DECL SUBST_DECL1,_,SUBST_DECL1right))::(_,(_,
515SUBST1left,_))::rest671) => let val result=MlyValue.MPC_DECL(fn _ =>
516let val SUBST_DECL as SUBST_DECL1=SUBST_DECL1 ()
517 in (
518DECL {prec=nil,control=nil,nonterm=NONE,term=NONE,eop=nil,
519                change=SUBST_DECL,keyword=nil,
520                value=nil}
521) end
522)
523 in (LrTable.NT 4,(result,SUBST1left,SUBST_DECL1right),rest671) end
524| (12,(_,(MlyValue.ID_LIST ID_LIST1,_,ID_LIST1right))::(_,(_,
525NOSHIFT1left,_))::rest671) => let val result=MlyValue.MPC_DECL(fn _
526 => let val ID_LIST as ID_LIST1=ID_LIST1 ()
527 in (
528DECL {prec=nil,control=[NSHIFT ID_LIST],nonterm=NONE,term=NONE,
529                    eop=nil,change=nil,keyword=nil,
530                    value=nil}
531) end
532)
533 in (LrTable.NT 4,(result,NOSHIFT1left,ID_LIST1right),rest671) end
534| (13,(_,(MlyValue.PROG PROG1,_,PROG1right))::(_,(_,
535PERCENT_HEADER1left,_))::rest671) => let val result=MlyValue.MPC_DECL(
536fn _ => let val PROG as PROG1=PROG1 ()
537 in (
538DECL {prec=nil,control=[FUNCTOR PROG],nonterm=NONE,term=NONE,
539                    eop=nil,change=nil,keyword=nil,
540                    value=nil}
541) end
542)
543 in (LrTable.NT 4,(result,PERCENT_HEADER1left,PROG1right),rest671) end
544| (14,(_,(MlyValue.PROG PROG1,_,PROG1right))::(_,(_,
545PERCENT_TOKEN_SIG_INFO1left,_))::rest671) => let val result=
546MlyValue.MPC_DECL(fn _ => let val PROG as PROG1=PROG1 ()
547 in (
548DECL {prec=nil,control=[TOKEN_SIG_INFO PROG],
549                    nonterm=NONE,term=NONE,
550                    eop=nil,change=nil,keyword=nil,
551                    value=nil}
552) end
553)
554 in (LrTable.NT 4,(result,PERCENT_TOKEN_SIG_INFO1left,PROG1right),
555rest671) end
556| (15,(_,(MlyValue.ID ID1,_,ID1right))::(_,(_,NAME1left,_))::rest671)
557 => let val result=MlyValue.MPC_DECL(fn _ => let val ID as ID1=ID1 ()
558 in (
559DECL {prec=nil,control=[PARSER_NAME (symbolMake ID)],
560                    nonterm=NONE,term=NONE,
561                    eop=nil,change=nil,keyword=nil, value=nil}
562) end
563)
564 in (LrTable.NT 4,(result,NAME1left,ID1right),rest671) end
565| (16,(_,(MlyValue.TY TY1,_,TY1right))::_::(_,(MlyValue.PROG PROG1,_,_
566))::(_,(_,PERCENT_ARG1left,_))::rest671) => let val result=
567MlyValue.MPC_DECL(fn _ => let val PROG as PROG1=PROG1 ()
568val TY as TY1=TY1 ()
569 in (
570DECL {prec=nil,control=[PARSE_ARG(PROG,TY)],nonterm=NONE,
571                    term=NONE,eop=nil,change=nil,keyword=nil,
572                     value=nil}
573) end
574)
575 in (LrTable.NT 4,(result,PERCENT_ARG1left,TY1right),rest671) end
576| (17,(_,(_,VERBOSE1left,VERBOSE1right))::rest671) => let val result=
577MlyValue.MPC_DECL(fn _ => (
578DECL {prec=nil,control=[Hdr.VERBOSE],
579                nonterm=NONE,term=NONE,eop=nil,
580                change=nil,keyword=nil,
581                value=nil}
582))
583 in (LrTable.NT 4,(result,VERBOSE1left,VERBOSE1right),rest671) end
584| (18,(_,(_,NODEFAULT1left,NODEFAULT1right))::rest671) => let val
585result=MlyValue.MPC_DECL(fn _ => (
586DECL {prec=nil,control=[Hdr.NODEFAULT],
587                nonterm=NONE,term=NONE,eop=nil,
588                change=nil,keyword=nil,
589                value=nil}
590))
591 in (LrTable.NT 4,(result,NODEFAULT1left,NODEFAULT1right),rest671) end
592| (19,(_,(_,PERCENT_PURE1left,PERCENT_PURE1right))::rest671) => let
593val result=MlyValue.MPC_DECL(fn _ => (
594DECL {prec=nil,control=[Hdr.PURE],
595                nonterm=NONE,term=NONE,eop=nil,
596                change=nil,keyword=nil,
597                value=nil}
598))
599 in (LrTable.NT 4,(result,PERCENT_PURE1left,PERCENT_PURE1right),
600rest671) end
601| (20,(_,(MlyValue.TY TY1,_,TY1right))::(_,(_,PERCENT_POS1left,_))::
602rest671) => let val result=MlyValue.MPC_DECL(fn _ => let val TY as TY1
603=TY1 ()
604 in (
605DECL {prec=nil,control=[Hdr.POS TY],
606                nonterm=NONE,term=NONE,eop=nil,
607                change=nil,keyword=nil,
608                value=nil}
609) end
610)
611 in (LrTable.NT 4,(result,PERCENT_POS1left,TY1right),rest671) end
612| (21,(_,(MlyValue.PROG PROG1,_,PROG1right))::(_,(MlyValue.ID ID1,_,_)
613)::(_,(_,VALUE1left,_))::rest671) => let val result=MlyValue.MPC_DECL(
614fn _ => let val ID as ID1=ID1 ()
615val PROG as PROG1=PROG1 ()
616 in (
617DECL {prec=nil,control=nil,
618                nonterm=NONE,term=NONE,eop=nil,
619                change=nil,keyword=nil,
620                value=[(symbolMake ID,PROG)]}
621) end
622)
623 in (LrTable.NT 4,(result,VALUE1left,PROG1right),rest671) end
624| (22,(_,(MlyValue.CHANGE_DECL CHANGE_DECL1,_,CHANGE_DECL1right))::_::
625(_,(MlyValue.CHANGE_DEC CHANGE_DEC1,CHANGE_DEC1left,_))::rest671) =>
626let val result=MlyValue.CHANGE_DECL(fn _ => let val CHANGE_DEC as
627CHANGE_DEC1=CHANGE_DEC1 ()
628val CHANGE_DECL as CHANGE_DECL1=CHANGE_DECL1 ()
629 in (CHANGE_DEC :: CHANGE_DECL) end
630)
631 in (LrTable.NT 14,(result,CHANGE_DEC1left,CHANGE_DECL1right),rest671)
632 end
633| (23,(_,(MlyValue.CHANGE_DEC CHANGE_DEC1,CHANGE_DEC1left,
634CHANGE_DEC1right))::rest671) => let val result=MlyValue.CHANGE_DECL(
635fn _ => let val CHANGE_DEC as CHANGE_DEC1=CHANGE_DEC1 ()
636 in ([CHANGE_DEC]) end
637)
638 in (LrTable.NT 14,(result,CHANGE_DEC1left,CHANGE_DEC1right),rest671)
639 end
640| (24,(_,(MlyValue.ID_LIST ID_LIST2,_,ID_LIST2right))::_::(_,(
641MlyValue.ID_LIST ID_LIST1,ID_LIST1left,_))::rest671) => let val result
642=MlyValue.CHANGE_DEC(fn _ => let val ID_LIST1=ID_LIST1 ()
643val ID_LIST2=ID_LIST2 ()
644 in (ID_LIST1, ID_LIST2) end
645)
646 in (LrTable.NT 15,(result,ID_LIST1left,ID_LIST2right),rest671) end
647| (25,(_,(MlyValue.SUBST_DECL SUBST_DECL1,_,SUBST_DECL1right))::_::(_,
648(MlyValue.SUBST_DEC SUBST_DEC1,SUBST_DEC1left,_))::rest671) => let
649val result=MlyValue.SUBST_DECL(fn _ => let val SUBST_DEC as SUBST_DEC1
650=SUBST_DEC1 ()
651val SUBST_DECL as SUBST_DECL1=SUBST_DECL1 ()
652 in (SUBST_DEC :: SUBST_DECL) end
653)
654 in (LrTable.NT 12,(result,SUBST_DEC1left,SUBST_DECL1right),rest671)
655 end
656| (26,(_,(MlyValue.SUBST_DEC SUBST_DEC1,SUBST_DEC1left,SUBST_DEC1right
657))::rest671) => let val result=MlyValue.SUBST_DECL(fn _ => let val
658SUBST_DEC as SUBST_DEC1=SUBST_DEC1 ()
659 in ([SUBST_DEC]) end
660)
661 in (LrTable.NT 12,(result,SUBST_DEC1left,SUBST_DEC1right),rest671)
662 end
663| (27,(_,(MlyValue.ID ID2,_,ID2right))::_::(_,(MlyValue.ID ID1,ID1left
664,_))::rest671) => let val result=MlyValue.SUBST_DEC(fn _ => let val
665ID1=ID1 ()
666val ID2=ID2 ()
667 in ([symbolMake ID2],[symbolMake ID1]) end
668)
669 in (LrTable.NT 13,(result,ID1left,ID2right),rest671) end
670| (28,(_,(MlyValue.TY TY1,_,TY1right))::_::(_,(MlyValue.ID ID1,_,_))::
671_::(_,(MlyValue.CONSTR_LIST CONSTR_LIST1,CONSTR_LIST1left,_))::rest671
672) => let val result=MlyValue.CONSTR_LIST(fn _ => let val CONSTR_LIST
673 as CONSTR_LIST1=CONSTR_LIST1 ()
674val ID as ID1=ID1 ()
675val TY as TY1=TY1 ()
676 in ((symbolMake ID,SOME (tyMake TY))::CONSTR_LIST) end
677)
678 in (LrTable.NT 1,(result,CONSTR_LIST1left,TY1right),rest671) end
679| (29,(_,(MlyValue.ID ID1,_,ID1right))::_::(_,(MlyValue.CONSTR_LIST
680CONSTR_LIST1,CONSTR_LIST1left,_))::rest671) => let val result=
681MlyValue.CONSTR_LIST(fn _ => let val CONSTR_LIST as CONSTR_LIST1=
682CONSTR_LIST1 ()
683val ID as ID1=ID1 ()
684 in ((symbolMake ID,NONE)::CONSTR_LIST) end
685)
686 in (LrTable.NT 1,(result,CONSTR_LIST1left,ID1right),rest671) end
687| (30,(_,(MlyValue.TY TY1,_,TY1right))::_::(_,(MlyValue.ID ID1,ID1left
688,_))::rest671) => let val result=MlyValue.CONSTR_LIST(fn _ => let val
689ID as ID1=ID1 ()
690val TY as TY1=TY1 ()
691 in ([(symbolMake ID,SOME (tyMake TY))]) end
692)
693 in (LrTable.NT 1,(result,ID1left,TY1right),rest671) end
694| (31,(_,(MlyValue.ID ID1,ID1left,ID1right))::rest671) => let val
695result=MlyValue.CONSTR_LIST(fn _ => let val ID as ID1=ID1 ()
696 in ([(symbolMake ID,NONE)]) end
697)
698 in (LrTable.NT 1,(result,ID1left,ID1right),rest671) end
699| (32,(_,(MlyValue.RHS_LIST RHS_LIST1,_,RHS_LIST1right))::_::(_,(
700MlyValue.ID ID1,ID1left,_))::rest671) => let val result=
701MlyValue.G_RULE(fn _ => let val ID as ID1=ID1 ()
702val RHS_LIST as RHS_LIST1=RHS_LIST1 ()
703 in (
704map (fn {rhs,code,prec} =>
705                      Hdr.RULE {lhs=symbolMake ID,rhs=rhs,
706                               code=code,prec=prec})
707         RHS_LIST
708) end
709)
710 in (LrTable.NT 9,(result,ID1left,RHS_LIST1right),rest671) end
711| (33,(_,(MlyValue.G_RULE G_RULE1,_,G_RULE1right))::(_,(
712MlyValue.G_RULE_LIST G_RULE_LIST1,G_RULE_LIST1left,_))::rest671) =>
713let val result=MlyValue.G_RULE_LIST(fn _ => let val G_RULE_LIST as
714G_RULE_LIST1=G_RULE_LIST1 ()
715val G_RULE as G_RULE1=G_RULE1 ()
716 in (G_RULE@G_RULE_LIST) end
717)
718 in (LrTable.NT 10,(result,G_RULE_LIST1left,G_RULE1right),rest671) end
719| (34,(_,(MlyValue.G_RULE G_RULE1,G_RULE1left,G_RULE1right))::rest671)
720 => let val result=MlyValue.G_RULE_LIST(fn _ => let val G_RULE as
721G_RULE1=G_RULE1 ()
722 in (G_RULE) end
723)
724 in (LrTable.NT 10,(result,G_RULE1left,G_RULE1right),rest671) end
725| (35,(_,(MlyValue.ID_LIST ID_LIST1,_,ID_LIST1right))::(_,(MlyValue.ID
726 ID1,ID1left,_))::rest671) => let val result=MlyValue.ID_LIST(fn _ =>
727let val ID as ID1=ID1 ()
728val ID_LIST as ID_LIST1=ID_LIST1 ()
729 in (symbolMake ID :: ID_LIST) end
730)
731 in (LrTable.NT 2,(result,ID1left,ID_LIST1right),rest671) end
732| (36,rest671) => let val result=MlyValue.ID_LIST(fn _ => (nil))
733 in (LrTable.NT 2,(result,defaultPos,defaultPos),rest671) end
734| (37,(_,(MlyValue.PROG PROG1,_,PROG1right))::(_,(MlyValue.G_RULE_PREC
735 G_RULE_PREC1,_,_))::(_,(MlyValue.ID_LIST ID_LIST1,ID_LIST1left,_))::
736rest671) => let val result=MlyValue.RHS_LIST(fn _ => let val ID_LIST
737 as ID_LIST1=ID_LIST1 ()
738val G_RULE_PREC as G_RULE_PREC1=G_RULE_PREC1 ()
739val PROG as PROG1=PROG1 ()
740 in ([{rhs=ID_LIST,code=PROG,prec=G_RULE_PREC}]) end
741)
742 in (LrTable.NT 8,(result,ID_LIST1left,PROG1right),rest671) end
743| (38,(_,(MlyValue.PROG PROG1,_,PROG1right))::(_,(MlyValue.G_RULE_PREC
744 G_RULE_PREC1,_,_))::(_,(MlyValue.ID_LIST ID_LIST1,_,_))::_::(_,(
745MlyValue.RHS_LIST RHS_LIST1,RHS_LIST1left,_))::rest671) => let val
746result=MlyValue.RHS_LIST(fn _ => let val RHS_LIST as RHS_LIST1=
747RHS_LIST1 ()
748val ID_LIST as ID_LIST1=ID_LIST1 ()
749val G_RULE_PREC as G_RULE_PREC1=G_RULE_PREC1 ()
750val PROG as PROG1=PROG1 ()
751 in ({rhs=ID_LIST,code=PROG,prec=G_RULE_PREC}::RHS_LIST) end
752)
753 in (LrTable.NT 8,(result,RHS_LIST1left,PROG1right),rest671) end
754| (39,(_,(MlyValue.TYVAR TYVAR1,TYVAR1left,TYVAR1right))::rest671) =>
755let val result=MlyValue.TY(fn _ => let val TYVAR as TYVAR1=TYVAR1 ()
756 in (TYVAR) end
757)
758 in (LrTable.NT 16,(result,TYVAR1left,TYVAR1right),rest671) end
759| (40,(_,(_,_,RBRACE1right))::(_,(MlyValue.RECORD_LIST RECORD_LIST1,_,
760_))::(_,(_,LBRACE1left,_))::rest671) => let val result=MlyValue.TY(fn
761_ => let val RECORD_LIST as RECORD_LIST1=RECORD_LIST1 ()
762 in ("{ "^RECORD_LIST^" } ") end
763)
764 in (LrTable.NT 16,(result,LBRACE1left,RBRACE1right),rest671) end
765| (41,(_,(_,_,RBRACE1right))::(_,(_,LBRACE1left,_))::rest671) => let
766val result=MlyValue.TY(fn _ => ("{}"))
767 in (LrTable.NT 16,(result,LBRACE1left,RBRACE1right),rest671) end
768| (42,(_,(MlyValue.PROG PROG1,PROG1left,PROG1right))::rest671) => let
769val result=MlyValue.TY(fn _ => let val PROG as PROG1=PROG1 ()
770 in (" ( "^PROG^" ) ") end
771)
772 in (LrTable.NT 16,(result,PROG1left,PROG1right),rest671) end
773| (43,(_,(MlyValue.QUAL_ID QUAL_ID1,_,QUAL_ID1right))::(_,(MlyValue.TY
774 TY1,TY1left,_))::rest671) => let val result=MlyValue.TY(fn _ => let
775val TY as TY1=TY1 ()
776val QUAL_ID as QUAL_ID1=QUAL_ID1 ()
777 in (TY^" "^QUAL_ID) end
778)
779 in (LrTable.NT 16,(result,TY1left,QUAL_ID1right),rest671) end
780| (44,(_,(MlyValue.QUAL_ID QUAL_ID1,QUAL_ID1left,QUAL_ID1right))::
781rest671) => let val result=MlyValue.TY(fn _ => let val QUAL_ID as
782QUAL_ID1=QUAL_ID1 ()
783 in (QUAL_ID) end
784)
785 in (LrTable.NT 16,(result,QUAL_ID1left,QUAL_ID1right),rest671) end
786| (45,(_,(MlyValue.TY TY2,_,TY2right))::_::(_,(MlyValue.TY TY1,TY1left
787,_))::rest671) => let val result=MlyValue.TY(fn _ => let val TY1=TY1
788()
789val TY2=TY2 ()
790 in (TY1^"*"^TY2) end
791)
792 in (LrTable.NT 16,(result,TY1left,TY2right),rest671) end
793| (46,(_,(MlyValue.TY TY2,_,TY2right))::_::(_,(MlyValue.TY TY1,TY1left
794,_))::rest671) => let val result=MlyValue.TY(fn _ => let val TY1=TY1
795()
796val TY2=TY2 ()
797 in (TY1 ^ " -> " ^ TY2) end
798)
799 in (LrTable.NT 16,(result,TY1left,TY2right),rest671) end
800| (47,(_,(MlyValue.TY TY1,_,TY1right))::_::(_,(MlyValue.LABEL LABEL1,_
801,_))::_::(_,(MlyValue.RECORD_LIST RECORD_LIST1,RECORD_LIST1left,_))::
802rest671) => let val result=MlyValue.RECORD_LIST(fn _ => let val
803RECORD_LIST as RECORD_LIST1=RECORD_LIST1 ()
804val LABEL as LABEL1=LABEL1 ()
805val TY as TY1=TY1 ()
806 in (RECORD_LIST^","^LABEL^":"^TY) end
807)
808 in (LrTable.NT 7,(result,RECORD_LIST1left,TY1right),rest671) end
809| (48,(_,(MlyValue.TY TY1,_,TY1right))::_::(_,(MlyValue.LABEL LABEL1,
810LABEL1left,_))::rest671) => let val result=MlyValue.RECORD_LIST(fn _
811 => let val LABEL as LABEL1=LABEL1 ()
812val TY as TY1=TY1 ()
813 in (LABEL^":"^TY) end
814)
815 in (LrTable.NT 7,(result,LABEL1left,TY1right),rest671) end
816| (49,(_,(MlyValue.ID ID1,ID1left,ID1right))::rest671) => let val
817result=MlyValue.QUAL_ID(fn _ => let val ID as ID1=ID1 ()
818 in ((fn (a,_) => a) ID) end
819)
820 in (LrTable.NT 6,(result,ID1left,ID1right),rest671) end
821| (50,(_,(MlyValue.QUAL_ID QUAL_ID1,_,QUAL_ID1right))::(_,(
822MlyValue.IDDOT IDDOT1,IDDOT1left,_))::rest671) => let val result=
823MlyValue.QUAL_ID(fn _ => let val IDDOT as IDDOT1=IDDOT1 ()
824val QUAL_ID as QUAL_ID1=QUAL_ID1 ()
825 in (IDDOT^QUAL_ID) end
826)
827 in (LrTable.NT 6,(result,IDDOT1left,QUAL_ID1right),rest671) end
828| (51,(_,(MlyValue.ID ID1,ID1left,ID1right))::rest671) => let val
829result=MlyValue.LABEL(fn _ => let val ID as ID1=ID1 ()
830 in ((fn (a,_) => a) ID) end
831)
832 in (LrTable.NT 3,(result,ID1left,ID1right),rest671) end
833| (52,(_,(MlyValue.INT INT1,INT1left,INT1right))::rest671) => let val
834result=MlyValue.LABEL(fn _ => let val INT as INT1=INT1 ()
835 in (INT) end
836)
837 in (LrTable.NT 3,(result,INT1left,INT1right),rest671) end
838| (53,(_,(MlyValue.ID ID1,_,ID1right))::(_,(_,PREC_TAG1left,_))::
839rest671) => let val result=MlyValue.G_RULE_PREC(fn _ => let val ID as
840ID1=ID1 ()
841 in (SOME (symbolMake ID)) end
842)
843 in (LrTable.NT 11,(result,PREC_TAG1left,ID1right),rest671) end
844| (54,rest671) => let val result=MlyValue.G_RULE_PREC(fn _ => (NONE))
845 in (LrTable.NT 11,(result,defaultPos,defaultPos),rest671) end
846| _ => raise (mlyAction i392)
847end
848val void = MlyValue.VOID
849val extract = fn a => (fn MlyValue.BEGIN x => x
850| _ => let exception ParseInternal
851        in raise ParseInternal end) a ()
852end
853end
854structure Tokens : Mlyacc_TOKENS =
855struct
856type svalue = ParserData.svalue
857type ('a,'b) token = ('a,'b) Token.token
858fun ARROW (p1,p2) = Token.TOKEN (ParserData.LrTable.T 0,(
859ParserData.MlyValue.VOID,p1,p2))
860fun ASTERISK (p1,p2) = Token.TOKEN (ParserData.LrTable.T 1,(
861ParserData.MlyValue.VOID,p1,p2))
862fun BLOCK (p1,p2) = Token.TOKEN (ParserData.LrTable.T 2,(
863ParserData.MlyValue.VOID,p1,p2))
864fun BAR (p1,p2) = Token.TOKEN (ParserData.LrTable.T 3,(
865ParserData.MlyValue.VOID,p1,p2))
866fun CHANGE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 4,(
867ParserData.MlyValue.VOID,p1,p2))
868fun COLON (p1,p2) = Token.TOKEN (ParserData.LrTable.T 5,(
869ParserData.MlyValue.VOID,p1,p2))
870fun COMMA (p1,p2) = Token.TOKEN (ParserData.LrTable.T 6,(
871ParserData.MlyValue.VOID,p1,p2))
872fun DELIMITER (p1,p2) = Token.TOKEN (ParserData.LrTable.T 7,(
873ParserData.MlyValue.VOID,p1,p2))
874fun EOF (p1,p2) = Token.TOKEN (ParserData.LrTable.T 8,(
875ParserData.MlyValue.VOID,p1,p2))
876fun FOR (p1,p2) = Token.TOKEN (ParserData.LrTable.T 9,(
877ParserData.MlyValue.VOID,p1,p2))
878fun HEADER (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 10,(
879ParserData.MlyValue.HEADER (fn () => i),p1,p2))
880fun ID (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 11,(
881ParserData.MlyValue.ID (fn () => i),p1,p2))
882fun IDDOT (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 12,(
883ParserData.MlyValue.IDDOT (fn () => i),p1,p2))
884fun PERCENT_HEADER (p1,p2) = Token.TOKEN (ParserData.LrTable.T 13,(
885ParserData.MlyValue.VOID,p1,p2))
886fun INT (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 14,(
887ParserData.MlyValue.INT (fn () => i),p1,p2))
888fun KEYWORD (p1,p2) = Token.TOKEN (ParserData.LrTable.T 15,(
889ParserData.MlyValue.VOID,p1,p2))
890fun LBRACE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 16,(
891ParserData.MlyValue.VOID,p1,p2))
892fun LPAREN (p1,p2) = Token.TOKEN (ParserData.LrTable.T 17,(
893ParserData.MlyValue.VOID,p1,p2))
894fun NAME (p1,p2) = Token.TOKEN (ParserData.LrTable.T 18,(
895ParserData.MlyValue.VOID,p1,p2))
896fun NODEFAULT (p1,p2) = Token.TOKEN (ParserData.LrTable.T 19,(
897ParserData.MlyValue.VOID,p1,p2))
898fun NONTERM (p1,p2) = Token.TOKEN (ParserData.LrTable.T 20,(
899ParserData.MlyValue.VOID,p1,p2))
900fun NOSHIFT (p1,p2) = Token.TOKEN (ParserData.LrTable.T 21,(
901ParserData.MlyValue.VOID,p1,p2))
902fun OF (p1,p2) = Token.TOKEN (ParserData.LrTable.T 22,(
903ParserData.MlyValue.VOID,p1,p2))
904fun PERCENT_EOP (p1,p2) = Token.TOKEN (ParserData.LrTable.T 23,(
905ParserData.MlyValue.VOID,p1,p2))
906fun PERCENT_PURE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 24,(
907ParserData.MlyValue.VOID,p1,p2))
908fun PERCENT_POS (p1,p2) = Token.TOKEN (ParserData.LrTable.T 25,(
909ParserData.MlyValue.VOID,p1,p2))
910fun PERCENT_ARG (p1,p2) = Token.TOKEN (ParserData.LrTable.T 26,(
911ParserData.MlyValue.VOID,p1,p2))
912fun PERCENT_TOKEN_SIG_INFO (p1,p2) = Token.TOKEN (
913ParserData.LrTable.T 27,(ParserData.MlyValue.VOID,p1,p2))
914fun PREC (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 28,(
915ParserData.MlyValue.PREC (fn () => i),p1,p2))
916fun PREC_TAG (p1,p2) = Token.TOKEN (ParserData.LrTable.T 29,(
917ParserData.MlyValue.VOID,p1,p2))
918fun PREFER (p1,p2) = Token.TOKEN (ParserData.LrTable.T 30,(
919ParserData.MlyValue.VOID,p1,p2))
920fun PROG (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 31,(
921ParserData.MlyValue.PROG (fn () => i),p1,p2))
922fun RBRACE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 32,(
923ParserData.MlyValue.VOID,p1,p2))
924fun RPAREN (p1,p2) = Token.TOKEN (ParserData.LrTable.T 33,(
925ParserData.MlyValue.VOID,p1,p2))
926fun SUBST (p1,p2) = Token.TOKEN (ParserData.LrTable.T 34,(
927ParserData.MlyValue.VOID,p1,p2))
928fun START (p1,p2) = Token.TOKEN (ParserData.LrTable.T 35,(
929ParserData.MlyValue.VOID,p1,p2))
930fun TERM (p1,p2) = Token.TOKEN (ParserData.LrTable.T 36,(
931ParserData.MlyValue.VOID,p1,p2))
932fun TYVAR (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 37,(
933ParserData.MlyValue.TYVAR (fn () => i),p1,p2))
934fun VERBOSE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 38,(
935ParserData.MlyValue.VOID,p1,p2))
936fun VALUE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 39,(
937ParserData.MlyValue.VOID,p1,p2))
938fun UNKNOWN (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 40,(
939ParserData.MlyValue.UNKNOWN (fn () => i),p1,p2))
940fun BOGUS_VALUE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 41,(
941ParserData.MlyValue.VOID,p1,p2))
942end
943end
944