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