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