Home My Page Projects Code Snippets Project Openings SML/NJ
Summary Activity Forums Tracker Lists Tasks Docs Surveys News SCM Files

SCM Repository

[smlnj] View of /sml/trunk/src/compiler/Parse/parse/ml.grm.sml
ViewVC logotype

View of /sml/trunk/src/compiler/Parse/parse/ml.grm.sml

Parent Directory Parent Directory | Revision Log Revision Log


Revision 205 - (download) (annotate)
Fri Jan 15 15:53:56 1999 UTC (21 years, 10 months ago) by monnier
File size: 147780 byte(s)
Initial revision
functor MLLrValsFun(structure Token : TOKEN)
 : sig structure ParserData : PARSER_DATA
       structure Tokens : ML_TOKENS
   end
 = 
struct
structure ParserData=
struct
structure Header = 
struct
(* ml.grm
 *
 * Copyright 1989,1992 by AT&T Bell Laboratories
 *)

open Ast ErrorMsg Symbol FastSymbol AstUtil Fixity 

type raw_symbol = FastSymbol.raw_symbol

fun markexp (e as MarkExp _, _, _) = e
  | markexp(e,a,b) = MarkExp(e,(a,b))
(*fun markdec((d as MarkDec _, e), _,_) = (d,e)
  | markdec((d,e),a,b) = (MarkDec(d,(a,b)),e)
*)
fun markdec(d as MarkDec _, _,_) = d
  | markdec(d,a,b) = MarkDec(d,(a,b))

val asteriskHash = StrgHash.hashString "*"
val asteriskString = "*"
val equalHash = StrgHash.hashString "="
val equalString = "="
val bogusHash = StrgHash.hashString "BOGUS"
val bogusString = "BOGUS"
val quotedBogusHash = StrgHash.hashString "'BOGUS"
val quotedBogusString = "'BOGUS"
val quotedBogusHash = StrgHash.hashString "'BOGUS"
val quotedBogusString = "'BOGUS"

  
end
structure LrTable = Token.LrTable
structure Token = Token
local open LrTable in 
val table=let val actionRows =
"\
\\001\000\001\000\000\000\002\000\000\000\000\000\
\\001\000\003\000\051\000\005\000\050\000\006\000\049\000\007\000\048\000\
\\008\000\047\000\009\000\046\000\010\000\045\000\011\000\044\000\
\\016\000\043\000\017\000\042\000\021\000\041\000\023\000\040\000\
\\027\000\039\000\028\000\038\000\029\000\037\000\031\000\036\000\
\\032\000\035\000\035\000\034\000\036\000\033\000\038\000\032\000\
\\039\000\031\000\040\000\030\000\042\000\029\000\043\000\028\000\
\\044\000\027\000\045\000\026\000\049\000\025\000\051\000\024\000\
\\053\000\023\000\054\000\022\000\056\000\021\000\060\000\020\000\
\\064\000\019\000\065\000\018\000\066\000\017\000\072\000\016\000\
\\073\000\015\000\074\000\014\000\077\000\013\000\000\000\
\\001\000\003\000\051\000\005\000\050\000\006\000\049\000\007\000\048\000\
\\008\000\047\000\009\000\046\000\010\000\045\000\016\000\043\000\
\\021\000\041\000\027\000\039\000\031\000\036\000\032\000\035\000\
\\038\000\032\000\042\000\029\000\045\000\026\000\056\000\021\000\
\\060\000\020\000\064\000\019\000\065\000\018\000\066\000\017\000\
\\068\000\067\000\073\000\015\000\074\000\014\000\077\000\013\000\000\000\
\\001\000\003\000\051\000\005\000\050\000\006\000\049\000\007\000\048\000\
\\008\000\047\000\009\000\046\000\010\000\045\000\016\000\043\000\
\\021\000\041\000\027\000\039\000\031\000\036\000\032\000\035\000\
\\038\000\032\000\042\000\029\000\045\000\026\000\056\000\021\000\
\\060\000\020\000\064\000\019\000\065\000\018\000\066\000\017\000\
\\068\000\075\000\073\000\015\000\074\000\014\000\077\000\013\000\000\000\
\\001\000\003\000\051\000\005\000\050\000\006\000\049\000\007\000\048\000\
\\008\000\047\000\009\000\046\000\010\000\045\000\016\000\043\000\
\\021\000\041\000\027\000\039\000\031\000\036\000\032\000\035\000\
\\038\000\032\000\042\000\029\000\045\000\026\000\056\000\021\000\
\\060\000\020\000\064\000\019\000\065\000\018\000\066\000\017\000\
\\069\000\073\000\073\000\015\000\074\000\014\000\077\000\013\000\000\000\
\\001\000\003\000\051\000\005\000\050\000\006\000\049\000\007\000\048\000\
\\008\000\047\000\009\000\046\000\010\000\045\000\016\000\043\000\
\\021\000\041\000\027\000\039\000\031\000\036\000\032\000\035\000\
\\038\000\032\000\042\000\029\000\045\000\026\000\056\000\021\000\
\\060\000\020\000\064\000\019\000\065\000\018\000\066\000\017\000\
\\073\000\015\000\074\000\014\000\077\000\013\000\000\000\
\\001\000\003\000\055\000\021\000\041\000\048\000\066\001\060\000\020\000\000\000\
\\001\000\003\000\055\000\021\000\041\000\060\000\020\000\000\000\
\\001\000\003\000\083\000\004\000\104\000\037\000\208\000\042\000\207\000\
\\060\000\081\000\066\000\206\000\000\000\
\\001\000\003\000\083\000\005\000\082\000\060\000\081\000\000\000\
\\001\000\003\000\083\000\005\000\082\000\060\000\081\000\067\000\080\000\000\000\
\\001\000\003\000\083\000\005\000\082\000\060\000\081\000\067\000\007\001\000\000\
\\001\000\003\000\083\000\037\000\208\000\042\000\207\000\060\000\081\000\000\000\
\\001\000\003\000\083\000\042\000\056\001\060\000\081\000\000\000\
\\001\000\003\000\083\000\060\000\081\000\000\000\
\\001\000\003\000\105\000\004\000\104\000\005\000\050\000\006\000\049\000\
\\007\000\103\000\009\000\102\000\010\000\101\000\037\000\100\000\
\\042\000\099\000\046\000\098\000\057\000\097\000\060\000\081\000\
\\064\000\096\000\065\000\095\000\066\000\094\000\073\000\093\000\000\000\
\\001\000\003\000\105\000\004\000\104\000\005\000\050\000\006\000\049\000\
\\007\000\103\000\009\000\102\000\010\000\101\000\037\000\139\000\
\\042\000\099\000\057\000\097\000\060\000\081\000\064\000\096\000\
\\065\000\095\000\066\000\094\000\073\000\093\000\000\000\
\\001\000\003\000\105\000\004\000\194\000\005\000\050\000\006\000\049\000\
\\007\000\103\000\009\000\102\000\010\000\101\000\042\000\099\000\
\\057\000\097\000\060\000\081\000\064\000\096\000\065\000\095\000\
\\066\000\143\000\069\000\193\000\073\000\093\000\000\000\
\\001\000\003\000\105\000\005\000\050\000\006\000\049\000\007\000\103\000\
\\009\000\102\000\010\000\101\000\037\000\100\000\042\000\099\000\
\\057\000\097\000\060\000\081\000\064\000\096\000\065\000\095\000\
\\066\000\143\000\073\000\093\000\000\000\
\\001\000\003\000\105\000\005\000\050\000\006\000\049\000\007\000\103\000\
\\009\000\102\000\010\000\101\000\037\000\139\000\042\000\099\000\
\\057\000\097\000\060\000\081\000\064\000\096\000\065\000\095\000\
\\066\000\143\000\073\000\093\000\000\000\
\\001\000\003\000\105\000\005\000\050\000\006\000\049\000\007\000\103\000\
\\009\000\102\000\010\000\101\000\042\000\099\000\057\000\097\000\
\\060\000\081\000\064\000\096\000\065\000\095\000\066\000\143\000\
\\068\000\190\000\073\000\093\000\000\000\
\\001\000\003\000\105\000\005\000\050\000\006\000\049\000\007\000\103\000\
\\009\000\102\000\010\000\101\000\042\000\099\000\057\000\097\000\
\\060\000\081\000\064\000\096\000\065\000\095\000\066\000\143\000\
\\068\000\196\000\073\000\093\000\000\000\
\\001\000\003\000\105\000\005\000\050\000\006\000\049\000\007\000\103\000\
\\009\000\102\000\010\000\101\000\042\000\099\000\057\000\097\000\
\\060\000\081\000\064\000\096\000\065\000\095\000\066\000\143\000\
\\069\000\193\000\073\000\093\000\000\000\
\\001\000\003\000\105\000\005\000\050\000\006\000\049\000\007\000\103\000\
\\009\000\102\000\010\000\101\000\042\000\099\000\057\000\097\000\
\\060\000\081\000\064\000\096\000\065\000\095\000\066\000\143\000\
\\073\000\093\000\000\000\
\\001\000\003\000\119\000\021\000\041\000\038\000\150\001\050\000\149\001\
\\060\000\020\000\000\000\
\\001\000\003\000\119\000\021\000\041\000\038\000\161\001\060\000\020\000\000\000\
\\001\000\003\000\119\000\021\000\041\000\053\000\120\001\060\000\020\000\000\000\
\\001\000\003\000\119\000\021\000\041\000\053\000\221\001\060\000\020\000\000\000\
\\001\000\003\000\119\000\021\000\041\000\060\000\020\000\000\000\
\\001\000\003\000\163\000\000\000\
\\001\000\003\000\163\000\004\000\162\000\064\000\161\000\066\000\160\000\000\000\
\\001\000\003\000\167\000\005\000\050\000\006\000\049\000\007\000\048\000\
\\008\000\047\000\009\000\046\000\010\000\045\000\031\000\036\000\
\\038\000\032\000\042\000\029\000\064\000\019\000\065\000\018\000\
\\066\000\017\000\073\000\015\000\074\000\014\000\077\000\013\000\000\000\
\\001\000\003\000\202\000\005\000\082\000\018\000\201\000\060\000\081\000\000\000\
\\001\000\003\000\202\000\005\000\082\000\018\000\201\000\060\000\081\000\
\\067\000\200\000\000\000\
\\001\000\003\000\212\000\000\000\
\\001\000\003\000\183\001\000\000\
\\001\000\004\000\194\000\000\000\
\\001\000\012\000\213\000\058\000\172\001\000\000\
\\001\000\012\000\248\000\058\000\253\000\059\000\252\000\000\000\
\\001\000\013\000\255\000\014\000\153\001\000\000\
\\001\000\013\000\255\000\063\000\103\001\069\000\102\001\000\000\
\\001\000\014\000\187\000\015\000\043\001\061\000\185\000\063\000\042\001\
\\069\000\041\001\000\000\
\\001\000\014\000\187\000\021\000\186\000\061\000\185\000\000\000\
\\001\000\014\000\187\000\021\000\057\001\061\000\185\000\000\000\
\\001\000\014\000\187\000\026\000\243\000\061\000\185\000\000\000\
\\001\000\014\000\050\001\021\000\047\002\061\000\049\001\063\000\150\002\
\\067\000\150\002\000\000\
\\001\000\019\000\157\001\030\000\060\000\061\000\059\000\070\000\058\000\
\\071\000\057\000\000\000\
\\001\000\020\000\154\001\000\000\
\\001\000\020\000\155\001\000\000\
\\001\000\020\000\173\001\000\000\
\\001\000\020\000\222\001\000\000\
\\001\000\020\000\225\001\000\000\
\\001\000\020\000\004\002\000\000\
\\001\000\020\000\019\002\000\000\
\\001\000\020\000\039\002\061\000\208\001\062\000\207\001\000\000\
\\001\000\020\000\041\002\000\000\
\\001\000\020\000\042\002\000\000\
\\001\000\021\000\180\000\000\000\
\\001\000\021\000\220\000\000\000\
\\001\000\021\000\012\001\000\000\
\\001\000\021\000\048\001\000\000\
\\001\000\021\000\059\001\000\000\
\\001\000\021\000\063\001\000\000\
\\001\000\021\000\078\001\000\000\
\\001\000\021\000\082\001\000\000\
\\001\000\021\000\093\001\000\000\
\\001\000\021\000\141\001\000\000\
\\001\000\021\000\158\001\000\000\
\\001\000\021\000\171\001\000\000\
\\001\000\021\000\187\001\000\000\
\\001\000\021\000\204\001\000\000\
\\001\000\021\000\205\001\000\000\
\\001\000\021\000\255\001\000\000\
\\001\000\021\000\012\002\000\000\
\\001\000\021\000\040\002\000\000\
\\001\000\024\000\181\000\030\000\060\000\061\000\059\000\070\000\058\000\
\\071\000\057\000\000\000\
\\001\000\025\000\152\000\000\000\
\\001\000\030\000\060\000\041\000\251\000\061\000\059\000\070\000\058\000\
\\071\000\057\000\000\000\
\\001\000\030\000\060\000\052\000\231\000\061\000\059\000\070\000\058\000\
\\071\000\057\000\000\000\
\\001\000\033\000\224\000\000\000\
\\001\000\033\000\227\000\000\000\
\\001\000\033\000\074\001\000\000\
\\001\000\033\000\010\002\000\000\
\\001\000\033\000\016\002\000\000\
\\001\000\033\000\027\002\000\000\
\\001\000\061\000\221\000\000\000\
\\001\000\061\000\106\001\000\000\
\\001\000\061\000\129\001\000\000\
\\001\000\061\000\185\001\000\000\
\\001\000\061\000\194\001\066\000\172\000\000\000\
\\001\000\061\000\208\001\062\000\207\001\069\000\026\002\000\000\
\\001\000\061\000\236\001\000\000\
\\001\000\061\000\246\001\000\000\
\\001\000\066\000\172\000\000\000\
\\001\000\067\000\178\000\000\000\
\\001\000\067\000\046\001\000\000\
\\001\000\067\000\104\001\000\000\
\\001\000\068\000\168\000\000\000\
\\001\000\068\000\177\000\000\000\
\\001\000\068\000\038\001\000\000\
\\001\000\068\000\045\001\000\000\
\\001\000\069\000\173\000\000\000\
\\001\000\069\000\176\000\000\000\
\\001\000\069\000\040\001\000\000\
\\001\000\069\000\061\001\000\000\
\\001\000\069\000\101\001\000\000\
\\001\000\069\000\109\001\000\000\
\\001\000\069\000\199\001\000\000\
\\001\000\069\000\200\001\000\000\
\\001\000\069\000\025\002\000\000\
\\001\000\075\000\064\000\076\000\063\000\000\000\
\\001\000\075\000\165\000\000\000\
\\045\002\000\000\
\\046\002\000\000\
\\047\002\000\000\
\\047\002\025\000\211\000\000\000\
\\048\002\000\000\
\\049\002\000\000\
\\049\002\025\000\152\000\000\000\
\\049\002\025\000\223\000\000\000\
\\050\002\000\000\
\\051\002\000\000\
\\052\002\000\000\
\\053\002\017\000\170\001\042\000\146\000\000\000\
\\053\002\042\000\146\000\000\000\
\\054\002\000\000\
\\055\002\000\000\
\\056\002\000\000\
\\057\002\000\000\
\\058\002\000\000\
\\059\002\025\000\008\001\000\000\
\\060\002\013\000\255\000\000\000\
\\061\002\000\000\
\\062\002\063\000\105\001\000\000\
\\063\002\000\000\
\\064\002\000\000\
\\065\002\000\000\
\\066\002\000\000\
\\067\002\000\000\
\\068\002\000\000\
\\069\002\000\000\
\\070\002\000\000\
\\071\002\003\000\163\000\060\000\001\001\000\000\
\\072\002\000\000\
\\073\002\013\000\255\000\000\000\
\\074\002\003\000\163\000\060\000\001\001\000\000\
\\075\002\013\000\255\000\063\000\103\001\000\000\
\\076\002\000\000\
\\077\002\015\000\244\000\000\000\
\\078\002\000\000\
\\079\002\030\000\060\000\061\000\059\000\070\000\058\000\071\000\057\000\000\000\
\\080\002\030\000\060\000\061\000\059\000\070\000\058\000\071\000\057\000\000\000\
\\081\002\000\000\
\\082\002\063\000\179\000\000\000\
\\083\002\002\000\175\000\030\000\060\000\061\000\059\000\063\000\174\000\
\\070\000\058\000\071\000\057\000\000\000\
\\083\002\002\000\175\000\030\000\060\000\061\000\059\000\070\000\058\000\
\\071\000\057\000\000\000\
\\084\002\000\000\
\\085\002\000\000\
\\086\002\061\000\059\000\071\000\057\000\000\000\
\\087\002\061\000\059\000\000\000\
\\088\002\013\000\255\000\000\000\
\\089\002\000\000\
\\090\002\000\000\
\\091\002\000\000\
\\092\002\030\000\060\000\061\000\059\000\070\000\058\000\071\000\057\000\000\000\
\\093\002\030\000\060\000\061\000\059\000\070\000\058\000\071\000\057\000\000\000\
\\094\002\030\000\060\000\061\000\059\000\070\000\058\000\071\000\057\000\000\000\
\\095\002\003\000\051\000\005\000\050\000\006\000\049\000\007\000\048\000\
\\008\000\047\000\009\000\046\000\010\000\045\000\021\000\041\000\
\\031\000\036\000\038\000\032\000\042\000\029\000\060\000\020\000\
\\064\000\019\000\065\000\018\000\066\000\017\000\073\000\015\000\
\\074\000\014\000\077\000\013\000\000\000\
\\096\002\003\000\051\000\005\000\050\000\006\000\049\000\007\000\048\000\
\\008\000\047\000\009\000\046\000\010\000\045\000\021\000\041\000\
\\031\000\036\000\038\000\032\000\042\000\029\000\060\000\020\000\
\\064\000\019\000\065\000\018\000\066\000\017\000\073\000\015\000\
\\074\000\014\000\077\000\013\000\000\000\
\\097\002\000\000\
\\098\002\000\000\
\\099\002\000\000\
\\100\002\000\000\
\\101\002\000\000\
\\102\002\000\000\
\\103\002\000\000\
\\104\002\000\000\
\\105\002\000\000\
\\106\002\000\000\
\\107\002\000\000\
\\108\002\000\000\
\\109\002\000\000\
\\110\002\000\000\
\\111\002\000\000\
\\112\002\000\000\
\\113\002\000\000\
\\114\002\000\000\
\\115\002\000\000\
\\116\002\000\000\
\\117\002\000\000\
\\118\002\000\000\
\\119\002\000\000\
\\120\002\000\000\
\\121\002\076\000\063\000\000\000\
\\122\002\000\000\
\\123\002\000\000\
\\124\002\030\000\060\000\061\000\059\000\063\000\174\000\070\000\058\000\
\\071\000\057\000\000\000\
\\125\002\030\000\060\000\061\000\059\000\063\000\169\000\070\000\058\000\
\\071\000\057\000\000\000\
\\126\002\000\000\
\\127\002\014\000\187\000\061\000\185\000\000\000\
\\128\002\013\000\255\000\000\000\
\\129\002\000\000\
\\130\002\000\000\
\\131\002\000\000\
\\132\002\000\000\
\\133\002\000\000\
\\134\002\000\000\
\\135\002\000\000\
\\136\002\000\000\
\\137\002\000\000\
\\138\002\000\000\
\\139\002\000\000\
\\140\002\000\000\
\\141\002\000\000\
\\142\002\000\000\
\\143\002\000\000\
\\144\002\000\000\
\\145\002\000\000\
\\146\002\000\000\
\\147\002\000\000\
\\148\002\000\000\
\\149\002\014\000\187\000\061\000\185\000\000\000\
\\151\002\014\000\187\000\061\000\185\000\000\000\
\\152\002\013\000\255\000\014\000\202\001\000\000\
\\153\002\014\000\187\000\061\000\185\000\000\000\
\\154\002\000\000\
\\155\002\063\000\047\001\000\000\
\\156\002\000\000\
\\157\002\014\000\187\000\061\000\185\000\063\000\039\001\000\000\
\\158\002\000\000\
\\159\002\014\000\187\000\015\000\201\001\061\000\185\000\000\000\
\\160\002\000\000\
\\161\002\012\000\183\000\000\000\
\\162\002\030\000\060\000\061\000\059\000\070\000\058\000\071\000\057\000\000\000\
\\163\002\030\000\060\000\061\000\059\000\070\000\058\000\071\000\057\000\000\000\
\\164\002\061\000\240\000\000\000\
\\165\002\013\000\255\000\000\000\
\\166\002\030\000\060\000\061\000\059\000\070\000\058\000\071\000\057\000\000\000\
\\167\002\030\000\060\000\061\000\059\000\070\000\058\000\071\000\057\000\000\000\
\\168\002\012\000\052\001\000\000\
\\169\002\030\000\060\000\061\000\059\000\070\000\058\000\071\000\057\000\000\000\
\\170\002\030\000\060\000\061\000\059\000\070\000\058\000\071\000\057\000\000\000\
\\171\002\015\000\238\000\000\000\
\\172\002\000\000\
\\173\002\012\000\241\000\000\000\
\\174\002\012\000\085\001\000\000\
\\175\002\000\000\
\\176\002\000\000\
\\177\002\003\000\105\000\005\000\050\000\006\000\049\000\007\000\103\000\
\\009\000\102\000\010\000\101\000\042\000\099\000\057\000\097\000\
\\060\000\081\000\064\000\096\000\065\000\095\000\066\000\143\000\
\\073\000\093\000\000\000\
\\178\002\000\000\
\\179\002\030\000\060\000\061\000\059\000\070\000\058\000\071\000\057\000\000\000\
\\180\002\013\000\255\000\000\000\
\\181\002\012\000\213\000\000\000\
\\182\002\000\000\
\\183\002\000\000\
\\184\002\004\000\109\000\037\000\149\000\066\000\108\000\000\000\
\\184\002\004\000\109\000\066\000\108\000\000\000\
\\185\002\000\000\
\\186\002\000\000\
\\187\002\063\000\044\001\000\000\
\\188\002\000\000\
\\189\002\012\000\248\000\000\000\
\\190\002\000\000\
\\191\002\000\000\
\\192\002\000\000\
\\193\002\000\000\
\\194\002\015\000\230\001\000\000\
\\195\002\000\000\
\\196\002\041\000\018\002\000\000\
\\197\002\013\000\255\000\000\000\
\\198\002\021\000\090\001\041\000\089\001\000\000\
\\199\002\013\000\255\000\000\000\
\\200\002\000\000\
\\201\002\012\000\245\000\000\000\
\\202\002\003\000\119\000\021\000\041\000\060\000\020\000\000\000\
\\203\002\000\000\
\\204\002\005\000\050\000\006\000\049\000\000\000\
\\205\002\000\000\
\\206\002\005\000\050\000\006\000\049\000\000\000\
\\207\002\000\000\
\\208\002\000\000\
\\209\002\012\000\183\000\000\000\
\\210\002\012\000\183\000\000\000\
\\211\002\012\000\052\001\000\000\
\\212\002\012\000\052\001\000\000\
\\213\002\000\000\
\\214\002\000\000\
\\215\002\012\000\213\000\000\000\
\\216\002\012\000\248\000\059\000\247\000\000\000\
\\217\002\012\000\213\000\000\000\
\\218\002\000\000\
\\219\002\000\000\
\\220\002\012\000\245\000\000\000\
\\221\002\000\000\
\\222\002\000\000\
\\223\002\000\000\
\\224\002\012\000\014\002\030\000\060\000\061\000\059\000\070\000\058\000\
\\071\000\057\000\000\000\
\\225\002\000\000\
\\226\002\002\000\127\000\011\000\044\000\017\000\042\000\023\000\040\000\
\\028\000\038\000\035\000\034\000\036\000\033\000\039\000\126\000\
\\040\000\030\000\043\000\028\000\044\000\027\000\053\000\023\000\
\\054\000\022\000\000\000\
\\227\002\000\000\
\\228\002\000\000\
\\229\002\000\000\
\\230\002\003\000\055\000\021\000\041\000\060\000\020\000\000\000\
\\231\002\000\000\
\\232\002\002\000\026\001\003\000\025\001\017\000\024\001\022\000\023\001\
\\023\000\022\001\029\000\021\001\034\000\020\001\047\000\019\001\
\\051\000\018\001\053\000\017\001\054\000\016\001\000\000\
\\232\002\002\000\026\001\017\000\024\001\022\000\023\001\023\000\022\001\
\\029\000\021\001\034\000\020\001\047\000\019\001\051\000\018\001\
\\053\000\017\001\054\000\016\001\000\000\
\\233\002\000\000\
\\234\002\000\000\
\\235\002\012\000\184\001\000\000\
\\236\002\012\000\191\001\000\000\
\\237\002\012\000\248\000\059\000\197\001\000\000\
\\238\002\012\000\213\000\000\000\
\\239\002\012\000\182\001\000\000\
\\240\002\012\000\182\001\000\000\
\\241\002\012\000\180\001\000\000\
\\242\002\012\000\195\001\000\000\
\\243\002\012\000\186\001\000\000\
\\244\002\055\000\151\001\000\000\
\\245\002\000\000\
\\246\002\003\000\055\000\021\000\041\000\060\000\020\000\000\000\
\\247\002\000\000\
\\248\002\012\000\184\001\000\000\
\\249\002\021\000\022\002\055\000\151\001\000\000\
\\250\002\000\000\
\\251\002\012\000\191\001\000\000\
\\252\002\000\000\
\\253\002\012\000\182\001\000\000\
\\254\002\021\000\238\001\000\000\
\\255\002\013\000\255\000\000\000\
\\000\003\012\000\180\001\000\000\
\\001\003\013\000\255\000\000\000\
\\002\003\012\000\195\001\000\000\
\\003\003\041\000\196\001\000\000\
\\004\003\013\000\255\000\000\000\
\\005\003\012\000\186\001\000\000\
\\006\003\000\000\
\\007\003\000\000\
\\008\003\021\000\187\001\000\000\
\\009\003\000\000\
\\010\003\012\000\011\002\000\000\
\\011\003\013\000\255\000\000\000\
\\012\003\000\000\
\\013\003\000\000\
\\013\003\003\000\055\000\021\000\041\000\060\000\020\000\000\000\
\\014\003\000\000\
\\015\003\012\000\011\002\000\000\
\\016\003\061\000\218\000\062\000\217\000\000\000\
\\017\003\055\000\151\001\000\000\
\\018\003\055\000\151\001\000\000\
\\019\003\061\000\236\000\062\000\235\000\066\000\172\000\000\000\
\\020\003\000\000\
\\021\003\000\000\
\\022\003\012\000\219\000\000\000\
\\023\003\055\000\151\001\000\000\
\\024\003\012\000\170\000\000\000\
\\025\003\055\000\151\001\000\000\
\\026\003\000\000\
\\027\003\055\000\151\001\000\000\
\\028\003\066\000\210\001\000\000\
\\029\003\000\000\
\\030\003\000\000\
\\031\003\000\000\
\\032\003\055\000\151\001\000\000\
\\033\003\055\000\151\001\000\000\
\\034\003\000\000\
\\035\003\000\000\
\\036\003\066\000\210\001\000\000\
\\037\003\066\000\210\001\000\000\
\\038\003\000\000\
\\039\003\000\000\
\\040\003\002\000\217\001\003\000\119\000\011\000\044\000\017\000\042\000\
\\021\000\041\000\023\000\040\000\028\000\038\000\029\000\216\001\
\\035\000\034\000\036\000\033\000\038\000\150\001\039\000\215\001\
\\040\000\030\000\043\000\028\000\044\000\027\000\050\000\149\001\
\\051\000\214\001\053\000\023\000\054\000\022\000\060\000\020\000\000\000\
\\040\003\002\000\217\001\011\000\044\000\017\000\042\000\023\000\040\000\
\\028\000\038\000\029\000\216\001\035\000\034\000\036\000\033\000\
\\039\000\215\001\040\000\030\000\043\000\028\000\044\000\027\000\
\\051\000\214\001\053\000\023\000\054\000\022\000\000\000\
\\041\003\000\000\
\\042\003\000\000\
\\043\003\002\000\123\000\011\000\044\000\017\000\042\000\023\000\040\000\
\\028\000\038\000\029\000\037\000\035\000\034\000\036\000\033\000\
\\039\000\031\000\040\000\030\000\043\000\028\000\044\000\027\000\
\\049\000\025\000\051\000\024\000\053\000\023\000\054\000\022\000\
\\072\000\016\000\000\000\
\\044\003\000\000\
\\045\003\011\000\044\000\017\000\042\000\023\000\040\000\028\000\038\000\
\\029\000\037\000\035\000\034\000\036\000\033\000\039\000\031\000\
\\040\000\030\000\043\000\028\000\044\000\027\000\049\000\025\000\
\\051\000\024\000\053\000\023\000\054\000\022\000\072\000\016\000\000\000\
\\046\003\012\000\215\000\000\000\
\\047\003\012\000\232\000\000\000\
\\048\003\000\000\
\\049\003\000\000\
\\050\003\012\000\215\000\000\000\
\\051\003\012\000\219\000\000\000\
\\052\003\012\000\170\000\000\000\
\\053\003\012\000\232\000\000\000\
\\054\003\000\000\
\\055\003\000\000\
\\056\003\061\000\208\001\062\000\207\001\000\000\
\\057\003\012\000\215\000\000\000\
\\058\003\055\000\151\001\000\000\
\\059\003\000\000\
\\060\003\066\000\172\000\000\000\
\\061\003\000\000\
\\062\003\061\000\208\001\062\000\207\001\000\000\
\\063\003\000\000\
\\064\003\012\000\232\000\000\000\
\\065\003\066\000\210\001\000\000\
\\066\003\000\000\
\\067\003\000\000\
\\068\003\000\000\
\\069\003\030\000\060\000\061\000\059\000\070\000\058\000\071\000\057\000\000\000\
\"
val actionRowNumbers =
"\001\000\143\001\120\001\130\001\
\\007\000\190\000\167\000\161\000\
\\144\001\173\000\168\000\189\000\
\\110\000\002\000\007\000\004\000\
\\003\000\010\000\120\000\005\000\
\\015\000\000\001\007\000\007\000\
\\005\000\007\000\028\000\007\000\
\\024\001\118\001\042\001\022\001\
\\020\001\005\000\009\000\007\000\
\\016\000\023\000\124\000\121\000\
\\255\000\005\000\255\000\177\000\
\\176\000\175\000\174\000\113\000\
\\112\000\118\000\119\001\038\001\
\\046\001\117\000\169\000\005\000\
\\005\000\030\000\023\000\170\000\
\\111\000\031\000\191\000\097\000\
\\197\000\187\000\127\001\093\000\
\\101\000\154\000\102\000\181\000\
\\098\000\185\000\094\000\153\000\
\\057\000\127\000\180\000\116\000\
\\128\000\114\000\075\000\018\000\
\\201\000\025\001\202\000\248\000\
\\042\000\210\000\204\000\020\000\
\\017\000\021\000\033\000\214\000\
\\008\000\007\000\023\000\213\000\
\\212\000\211\000\001\001\115\000\
\\034\000\031\001\036\000\253\000\
\\125\001\090\001\126\001\058\000\
\\166\000\085\000\037\001\018\001\
\\126\000\119\000\171\000\079\000\
\\118\001\118\001\080\000\042\001\
\\042\001\042\001\023\001\021\001\
\\078\000\178\000\128\001\093\001\
\\019\000\242\000\235\000\029\001\
\\244\000\023\000\044\000\148\000\
\\162\000\022\000\036\001\007\000\
\\122\000\032\001\007\000\000\001\
\\077\000\038\000\028\000\047\001\
\\159\000\158\000\160\000\143\000\
\\145\000\140\000\030\000\011\000\
\\134\000\130\000\157\000\192\000\
\\193\000\076\000\186\000\005\000\
\\007\000\059\000\048\001\183\000\
\\005\000\005\000\182\000\184\000\
\\179\000\009\000\005\000\005\000\
\\026\001\018\000\249\000\030\000\
\\005\000\023\000\099\000\228\000\
\\217\000\103\000\041\000\205\000\
\\003\001\100\000\215\000\095\000\
\\226\000\060\000\219\000\227\000\
\\045\000\012\000\027\001\235\000\
\\036\000\014\000\013\000\208\000\
\\043\000\028\000\061\000\000\001\
\\104\000\007\000\062\000\006\000\
\\006\000\007\000\006\000\030\000\
\\019\001\028\000\118\001\116\001\
\\117\001\005\000\043\001\081\000\
\\044\001\005\000\007\000\090\001\
\\063\000\007\000\007\000\030\001\
\\023\000\064\000\030\000\019\000\
\\245\000\005\000\023\000\124\000\
\\014\001\000\001\255\000\065\000\
\\007\000\023\000\000\001\042\001\
\\172\000\030\000\139\000\030\000\
\\105\000\040\000\096\000\133\000\
\\086\000\136\000\029\000\194\000\
\\198\000\098\001\006\000\106\000\
\\049\001\134\001\124\000\000\001\
\\007\000\026\000\006\000\007\000\
\\007\000\000\001\255\000\087\000\
\\049\001\195\000\196\000\155\000\
\\156\000\152\000\151\000\164\000\
\\232\000\200\000\234\000\199\000\
\\218\000\023\000\002\001\203\000\
\\023\000\023\000\036\000\216\000\
\\220\000\032\000\023\000\030\000\
\\023\000\028\001\012\000\066\000\
\\235\000\235\000\014\000\005\000\
\\209\000\030\000\252\000\254\000\
\\132\001\024\000\092\001\086\001\
\\049\001\091\001\096\001\097\001\
\\039\000\125\000\047\000\048\000\
\\042\001\046\000\139\001\067\000\
\\025\000\095\001\094\001\243\000\
\\005\000\236\000\246\000\019\000\
\\150\000\149\000\017\001\030\000\
\\028\000\033\001\005\001\123\000\
\\068\000\163\000\037\000\049\000\
\\144\000\141\000\142\000\029\000\
\\138\000\030\000\135\000\009\000\
\\030\000\129\000\099\001\135\001\
\\050\001\058\001\007\000\056\001\
\\035\000\052\001\088\000\080\001\
\\060\001\069\000\028\000\061\001\
\\087\001\053\001\089\000\059\001\
\\076\001\057\001\054\001\006\000\
\\051\001\229\000\107\000\108\000\
\\230\000\004\001\225\000\221\000\
\\223\000\222\000\239\000\005\000\
\\070\000\071\000\235\000\233\000\
\\251\000\131\001\102\001\115\001\
\\115\001\027\000\050\000\005\000\
\\129\001\188\000\051\000\005\000\
\\024\000\138\001\140\001\115\001\
\\250\000\247\000\015\001\016\001\
\\010\001\008\001\006\001\007\000\
\\029\000\123\000\042\001\034\001\
\\137\000\147\000\146\000\132\000\
\\131\000\136\001\124\000\091\000\
\\000\001\071\001\007\000\006\000\
\\026\000\028\000\079\001\062\001\
\\063\001\007\000\092\000\069\001\
\\007\000\007\000\030\000\000\001\
\\133\001\206\000\207\000\023\000\
\\023\000\237\000\005\000\005\000\
\\072\000\006\000\006\000\104\001\
\\114\001\052\000\115\001\124\001\
\\007\000\115\001\007\000\115\001\
\\082\000\089\001\073\000\000\001\
\\088\001\039\001\040\001\042\001\
\\165\000\137\001\141\001\083\000\
\\124\000\012\001\009\001\007\001\
\\053\000\073\001\030\000\070\001\
\\030\000\065\001\066\001\078\001\
\\082\001\081\001\064\001\068\001\
\\006\000\100\001\075\001\077\001\
\\055\001\231\000\224\000\238\000\
\\240\000\005\000\107\001\106\001\
\\109\000\090\000\103\001\112\001\
\\121\001\084\000\122\001\113\001\
\\024\000\027\000\028\000\028\000\
\\005\000\045\001\025\000\011\001\
\\030\000\035\001\074\001\072\001\
\\028\000\101\001\241\000\111\001\
\\110\001\115\001\054\000\083\001\
\\085\001\074\000\041\001\055\000\
\\013\001\067\001\108\001\109\001\
\\056\000\105\001\030\000\142\001\
\\123\001\084\001\000\000"
val gotoT =
"\
\\001\000\010\000\003\000\009\000\019\000\008\000\020\000\007\000\
\\021\000\006\000\024\000\005\000\051\000\004\000\052\000\003\000\
\\077\000\002\000\079\000\001\000\085\000\042\002\000\000\
\\000\000\
\\051\000\004\000\052\000\003\000\077\000\002\000\079\000\050\000\000\000\
\\000\000\
\\001\000\052\000\055\000\051\000\000\000\
\\000\000\
\\001\000\010\000\003\000\009\000\020\000\054\000\021\000\006\000\
\\024\000\005\000\000\000\
\\000\000\
\\000\000\
\\000\000\
\\001\000\010\000\003\000\009\000\020\000\059\000\021\000\006\000\
\\024\000\005\000\000\000\
\\000\000\
\\025\000\060\000\000\000\
\\001\000\010\000\003\000\009\000\019\000\064\000\020\000\007\000\
\\021\000\006\000\022\000\063\000\024\000\005\000\000\000\
\\001\000\067\000\071\000\066\000\000\000\
\\001\000\010\000\003\000\009\000\018\000\070\000\019\000\069\000\
\\020\000\007\000\021\000\006\000\023\000\068\000\024\000\005\000\000\000\
\\001\000\010\000\003\000\009\000\019\000\064\000\020\000\007\000\
\\021\000\006\000\022\000\072\000\024\000\005\000\000\000\
\\002\000\077\000\006\000\076\000\016\000\075\000\017\000\074\000\000\000\
\\000\000\
\\001\000\010\000\003\000\009\000\019\000\082\000\020\000\007\000\
\\021\000\006\000\024\000\005\000\000\000\
\\002\000\090\000\003\000\089\000\026\000\088\000\027\000\087\000\
\\028\000\086\000\034\000\085\000\039\000\084\000\043\000\083\000\000\000\
\\041\000\105\000\042\000\104\000\000\000\
\\001\000\109\000\080\000\108\000\000\000\
\\001\000\111\000\070\000\110\000\000\000\
\\001\000\010\000\003\000\009\000\019\000\112\000\020\000\007\000\
\\021\000\006\000\024\000\005\000\000\000\
\\001\000\113\000\000\000\
\\001\000\116\000\005\000\115\000\050\000\114\000\000\000\
\\001\000\118\000\000\000\
\\000\000\
\\051\000\004\000\052\000\003\000\077\000\120\000\078\000\119\000\000\000\
\\051\000\004\000\052\000\123\000\054\000\122\000\000\000\
\\003\000\126\000\000\000\
\\003\000\127\000\000\000\
\\001\000\010\000\003\000\009\000\019\000\128\000\020\000\007\000\
\\021\000\006\000\024\000\005\000\000\000\
\\002\000\077\000\006\000\129\000\000\000\
\\001\000\131\000\083\000\130\000\000\000\
\\002\000\090\000\003\000\089\000\027\000\087\000\028\000\086\000\
\\037\000\136\000\038\000\135\000\039\000\134\000\040\000\133\000\
\\043\000\132\000\000\000\
\\002\000\090\000\003\000\089\000\014\000\140\000\015\000\139\000\
\\026\000\138\000\027\000\087\000\028\000\086\000\039\000\084\000\000\000\
\\004\000\143\000\049\000\142\000\000\000\
\\000\000\
\\042\000\146\000\045\000\145\000\000\000\
\\001\000\010\000\003\000\009\000\019\000\148\000\020\000\007\000\
\\021\000\006\000\024\000\005\000\000\000\
\\042\000\146\000\045\000\149\000\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\001\000\052\000\055\000\151\000\000\000\
\\000\000\
\\000\000\
\\001\000\010\000\003\000\009\000\019\000\152\000\020\000\007\000\
\\021\000\006\000\024\000\005\000\000\000\
\\001\000\010\000\003\000\009\000\019\000\153\000\020\000\007\000\
\\021\000\006\000\024\000\005\000\000\000\
\\007\000\157\000\010\000\156\000\011\000\155\000\012\000\154\000\000\000\
\\002\000\090\000\003\000\089\000\014\000\162\000\015\000\139\000\
\\026\000\138\000\027\000\087\000\028\000\086\000\039\000\084\000\000\000\
\\000\000\
\\000\000\
\\003\000\009\000\021\000\164\000\024\000\005\000\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\082\000\169\000\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\002\000\090\000\003\000\089\000\026\000\088\000\027\000\087\000\
\\028\000\086\000\034\000\180\000\039\000\084\000\000\000\
\\000\000\
\\000\000\
\\000\000\
\\002\000\090\000\003\000\089\000\027\000\087\000\028\000\086\000\
\\039\000\182\000\000\000\
\\000\000\
\\000\000\
\\000\000\
\\002\000\090\000\003\000\089\000\026\000\187\000\027\000\087\000\
\\028\000\086\000\032\000\186\000\039\000\084\000\000\000\
\\002\000\090\000\003\000\089\000\026\000\190\000\027\000\087\000\
\\028\000\086\000\039\000\084\000\044\000\189\000\000\000\
\\002\000\090\000\003\000\089\000\026\000\187\000\027\000\087\000\
\\028\000\086\000\032\000\193\000\039\000\084\000\000\000\
\\002\000\077\000\006\000\197\000\029\000\196\000\030\000\195\000\000\000\
\\000\000\
\\002\000\203\000\036\000\202\000\043\000\201\000\000\000\
\\001\000\207\000\000\000\
\\002\000\090\000\003\000\089\000\026\000\208\000\027\000\087\000\
\\028\000\086\000\039\000\084\000\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\044\000\212\000\000\000\
\\000\000\
\\000\000\
\\068\000\214\000\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\001\000\116\000\005\000\115\000\050\000\220\000\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\051\000\004\000\052\000\003\000\077\000\120\000\078\000\223\000\000\000\
\\051\000\004\000\052\000\003\000\077\000\120\000\078\000\224\000\000\000\
\\000\000\
\\051\000\004\000\052\000\123\000\054\000\226\000\000\000\
\\051\000\004\000\052\000\123\000\054\000\227\000\000\000\
\\051\000\004\000\052\000\123\000\054\000\228\000\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\069\000\232\000\082\000\231\000\000\000\
\\002\000\090\000\003\000\089\000\027\000\087\000\028\000\086\000\
\\037\000\136\000\038\000\235\000\039\000\134\000\040\000\133\000\000\000\
\\000\000\
\\035\000\237\000\000\000\
\\000\000\
\\000\000\
\\002\000\090\000\003\000\089\000\027\000\087\000\028\000\086\000\
\\037\000\240\000\039\000\134\000\040\000\133\000\000\000\
\\000\000\
\\000\000\
\\000\000\
\\002\000\090\000\003\000\089\000\026\000\190\000\027\000\087\000\
\\028\000\086\000\039\000\084\000\000\000\
\\000\000\
\\001\000\244\000\000\000\
\\000\000\
\\000\000\
\\001\000\247\000\000\000\
\\042\000\248\000\000\000\
\\000\000\
\\000\000\
\\001\000\116\000\005\000\252\000\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\007\000\254\000\000\000\
\\000\000\
\\007\000\157\000\010\000\156\000\011\000\155\000\012\000\001\001\
\\013\000\000\001\000\000\
\\002\000\077\000\006\000\004\001\008\000\003\001\009\000\002\001\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\025\000\007\001\000\000\
\\000\000\
\\000\000\
\\001\000\010\000\003\000\009\000\019\000\064\000\020\000\007\000\
\\021\000\006\000\022\000\008\001\024\000\005\000\000\000\
\\001\000\067\000\071\000\009\001\000\000\
\\000\000\
\\056\000\013\001\057\000\012\001\081\000\011\001\000\000\
\\000\000\
\\001\000\010\000\003\000\009\000\019\000\026\001\020\000\007\000\
\\021\000\006\000\023\000\025\001\024\000\005\000\000\000\
\\001\000\010\000\003\000\009\000\018\000\028\001\019\000\027\001\
\\020\000\007\000\021\000\006\000\024\000\005\000\000\000\
\\000\000\
\\000\000\
\\000\000\
\\002\000\077\000\006\000\076\000\016\000\075\000\017\000\029\001\000\000\
\\001\000\010\000\003\000\009\000\019\000\030\001\020\000\007\000\
\\021\000\006\000\024\000\005\000\000\000\
\\001\000\010\000\003\000\009\000\019\000\031\001\020\000\007\000\
\\021\000\006\000\024\000\005\000\000\000\
\\000\000\
\\002\000\090\000\003\000\089\000\026\000\088\000\027\000\087\000\
\\028\000\086\000\034\000\032\001\039\000\084\000\000\000\
\\000\000\
\\007\000\157\000\010\000\156\000\011\000\155\000\012\000\033\001\000\000\
\\001\000\010\000\003\000\009\000\019\000\034\001\020\000\007\000\
\\021\000\006\000\024\000\005\000\000\000\
\\002\000\090\000\003\000\089\000\026\000\035\001\027\000\087\000\
\\028\000\086\000\039\000\084\000\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\002\000\203\000\036\000\049\001\000\000\
\\000\000\
\\035\000\051\001\000\000\
\\044\000\189\000\000\000\
\\002\000\052\001\000\000\
\\002\000\053\001\000\000\
\\000\000\
\\000\000\
\\001\000\116\000\005\000\056\001\000\000\
\\000\000\
\\041\000\058\001\042\000\104\000\000\000\
\\000\000\
\\001\000\109\000\080\000\060\001\000\000\
\\000\000\
\\001\000\063\001\067\000\062\001\000\000\
\\001\000\063\001\067\000\065\001\000\000\
\\001\000\111\000\070\000\066\001\000\000\
\\001\000\063\001\067\000\067\001\000\000\
\\007\000\157\000\010\000\156\000\011\000\155\000\012\000\068\001\000\000\
\\000\000\
\\001\000\116\000\005\000\069\001\000\000\
\\051\000\004\000\052\000\003\000\077\000\120\000\078\000\070\001\000\000\
\\000\000\
\\000\000\
\\001\000\010\000\003\000\009\000\018\000\071\001\019\000\027\001\
\\020\000\007\000\021\000\006\000\024\000\005\000\000\000\
\\000\000\
\\000\000\
\\000\000\
\\001\000\010\000\003\000\009\000\019\000\073\001\020\000\007\000\
\\021\000\006\000\024\000\005\000\000\000\
\\001\000\131\000\083\000\074\001\000\000\
\\068\000\075\001\000\000\
\\000\000\
\\001\000\077\001\000\000\
\\001\000\078\001\000\000\
\\000\000\
\\002\000\090\000\003\000\089\000\027\000\087\000\028\000\086\000\
\\037\000\079\001\039\000\134\000\040\000\133\000\000\000\
\\000\000\
\\007\000\157\000\010\000\156\000\011\000\155\000\012\000\081\001\000\000\
\\002\000\090\000\003\000\089\000\027\000\087\000\028\000\086\000\
\\037\000\136\000\038\000\082\001\039\000\134\000\040\000\133\000\000\000\
\\000\000\
\\001\000\010\000\003\000\009\000\019\000\084\001\020\000\007\000\
\\021\000\006\000\024\000\005\000\000\000\
\\002\000\090\000\003\000\089\000\014\000\085\001\015\000\139\000\
\\026\000\138\000\027\000\087\000\028\000\086\000\039\000\084\000\000\000\
\\004\000\143\000\049\000\086\001\000\000\
\\000\000\
\\041\000\089\001\042\000\104\000\000\000\
\\042\000\146\000\045\000\090\001\000\000\
\\000\000\
\\001\000\092\001\000\000\
\\002\000\090\000\003\000\089\000\014\000\093\001\015\000\139\000\
\\026\000\138\000\027\000\087\000\028\000\086\000\039\000\084\000\000\000\
\\041\000\094\001\042\000\104\000\000\000\
\\051\000\004\000\052\000\123\000\054\000\095\001\000\000\
\\000\000\
\\007\000\157\000\010\000\156\000\011\000\155\000\012\000\096\001\000\000\
\\000\000\
\\007\000\157\000\010\000\098\001\011\000\097\001\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\007\000\105\001\000\000\
\\000\000\
\\000\000\
\\000\000\
\\001\000\063\001\067\000\106\001\000\000\
\\000\000\
\\056\000\108\001\057\000\012\001\000\000\
\\000\000\
\\004\000\110\001\062\000\109\001\000\000\
\\042\000\112\001\061\000\111\001\000\000\
\\001\000\114\001\059\000\113\001\000\000\
\\001\000\116\000\005\000\117\001\064\000\116\001\065\000\115\001\000\000\
\\001\000\120\001\067\000\119\001\000\000\
\\001\000\122\001\060\000\121\001\000\000\
\\001\000\124\001\063\000\123\001\000\000\
\\042\000\112\001\061\000\125\001\000\000\
\\042\000\146\000\045\000\126\001\000\000\
\\000\000\
\\056\000\128\001\057\000\012\001\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\002\000\090\000\003\000\089\000\026\000\187\000\027\000\087\000\
\\028\000\086\000\032\000\129\001\039\000\084\000\000\000\
\\000\000\
\\000\000\
\\002\000\090\000\003\000\089\000\026\000\187\000\027\000\087\000\
\\028\000\086\000\032\000\130\001\039\000\084\000\000\000\
\\002\000\090\000\003\000\089\000\026\000\132\001\027\000\087\000\
\\028\000\086\000\033\000\131\001\039\000\084\000\000\000\
\\044\000\133\001\000\000\
\\000\000\
\\000\000\
\\002\000\077\000\006\000\197\000\029\000\196\000\030\000\134\001\000\000\
\\002\000\090\000\003\000\089\000\026\000\135\001\027\000\087\000\
\\028\000\086\000\039\000\084\000\000\000\
\\007\000\157\000\010\000\156\000\011\000\155\000\012\000\136\001\000\000\
\\002\000\090\000\003\000\089\000\026\000\137\001\027\000\087\000\
\\028\000\086\000\039\000\084\000\000\000\
\\000\000\
\\002\000\203\000\036\000\138\001\000\000\
\\000\000\
\\035\000\140\001\000\000\
\\035\000\141\001\000\000\
\\002\000\142\001\000\000\
\\001\000\010\000\003\000\009\000\019\000\143\001\020\000\007\000\
\\021\000\006\000\024\000\005\000\000\000\
\\000\000\
\\007\000\157\000\010\000\156\000\011\000\155\000\012\000\144\001\000\000\
\\000\000\
\\000\000\
\\000\000\
\\001\000\116\000\005\000\146\001\073\000\145\001\000\000\
\\000\000\
\\000\000\
\\056\000\150\001\057\000\012\001\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\051\000\004\000\052\000\123\000\054\000\154\001\000\000\
\\000\000\
\\000\000\
\\000\000\
\\001\000\116\000\005\000\158\001\084\000\157\001\000\000\
\\000\000\
\\000\000\
\\000\000\
\\001\000\010\000\003\000\009\000\019\000\160\001\020\000\007\000\
\\021\000\006\000\024\000\005\000\000\000\
\\000\000\
\\000\000\
\\002\000\090\000\003\000\089\000\027\000\087\000\028\000\086\000\
\\037\000\136\000\038\000\161\001\039\000\134\000\040\000\133\000\000\000\
\\000\000\
\\000\000\
\\000\000\
\\007\000\157\000\010\000\156\000\011\000\155\000\012\000\162\001\000\000\
\\001\000\116\000\005\000\163\001\000\000\
\\000\000\
\\000\000\
\\004\000\167\001\046\000\166\001\047\000\165\001\048\000\164\001\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\007\000\254\000\000\000\
\\007\000\172\001\000\000\
\\000\000\
\\007\000\157\000\010\000\156\000\011\000\155\000\012\000\174\001\
\\013\000\173\001\000\000\
\\000\000\
\\002\000\077\000\006\000\004\001\008\000\003\001\009\000\175\001\000\000\
\\007\000\157\000\010\000\156\000\011\000\155\000\012\000\176\001\000\000\
\\000\000\
\\000\000\
\\082\000\177\001\000\000\
\\000\000\
\\000\000\
\\001\000\179\001\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\001\000\116\000\005\000\117\001\065\000\186\001\000\000\
\\000\000\
\\001\000\188\001\058\000\187\001\000\000\
\\000\000\
\\072\000\191\001\082\000\190\001\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\001\000\063\001\067\000\196\001\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\001\000\010\000\003\000\009\000\019\000\201\001\020\000\007\000\
\\021\000\006\000\024\000\005\000\000\000\
\\000\000\
\\000\000\
\\035\000\204\001\000\000\
\\000\000\
\\000\000\
\\000\000\
\\074\000\207\001\000\000\
\\051\000\004\000\052\000\211\001\075\000\210\001\076\000\209\001\000\000\
\\051\000\004\000\052\000\211\001\075\000\210\001\076\000\216\001\000\000\
\\001\000\116\000\005\000\218\001\066\000\217\001\000\000\
\\000\000\
\\001\000\010\000\003\000\009\000\019\000\222\001\020\000\007\000\
\\021\000\006\000\024\000\005\000\053\000\221\001\000\000\
\\000\000\
\\000\000\
\\000\000\
\\001\000\010\000\003\000\009\000\019\000\224\001\020\000\007\000\
\\021\000\006\000\024\000\005\000\000\000\
\\001\000\116\000\005\000\146\001\073\000\225\001\000\000\
\\000\000\
\\074\000\226\001\000\000\
\\051\000\004\000\052\000\211\001\075\000\210\001\076\000\227\001\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\001\000\229\001\000\000\
\\007\000\230\001\000\000\
\\004\000\167\001\046\000\231\001\047\000\165\001\048\000\164\001\000\000\
\\051\000\004\000\052\000\123\000\054\000\232\001\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\004\000\110\001\062\000\233\001\000\000\
\\000\000\
\\042\000\112\001\061\000\235\001\000\000\
\\000\000\
\\001\000\114\001\059\000\237\001\000\000\
\\001\000\063\001\067\000\238\001\000\000\
\\001\000\116\000\005\000\117\001\064\000\239\001\065\000\115\001\000\000\
\\001\000\116\000\005\000\241\001\065\000\240\001\000\000\
\\000\000\
\\000\000\
\\001\000\188\001\058\000\242\001\000\000\
\\001\000\122\001\060\000\243\001\000\000\
\\000\000\
\\000\000\
\\001\000\245\001\000\000\
\\001\000\124\001\063\000\246\001\000\000\
\\007\000\157\000\010\000\156\000\011\000\155\000\012\000\247\001\000\000\
\\041\000\248\001\042\000\104\000\000\000\
\\000\000\
\\000\000\
\\000\000\
\\002\000\090\000\003\000\089\000\026\000\132\001\027\000\087\000\
\\028\000\086\000\033\000\249\001\039\000\084\000\000\000\
\\002\000\090\000\003\000\089\000\026\000\250\001\027\000\087\000\
\\028\000\086\000\039\000\084\000\000\000\
\\000\000\
\\001\000\010\000\003\000\009\000\019\000\251\001\020\000\007\000\
\\021\000\006\000\024\000\005\000\000\000\
\\001\000\010\000\003\000\009\000\019\000\252\001\020\000\007\000\
\\021\000\006\000\024\000\005\000\000\000\
\\000\000\
\\001\000\063\001\067\000\254\001\000\000\
\\001\000\063\001\067\000\255\001\000\000\
\\000\000\
\\001\000\116\000\005\000\146\001\051\000\004\000\052\000\211\001\
\\073\000\001\002\075\000\210\001\076\000\000\002\000\000\
\\000\000\
\\051\000\004\000\052\000\211\001\075\000\210\001\076\000\003\002\000\000\
\\000\000\
\\001\000\109\000\080\000\004\002\000\000\
\\051\000\004\000\052\000\211\001\075\000\210\001\076\000\005\002\000\000\
\\001\000\131\000\083\000\006\002\000\000\
\\051\000\004\000\052\000\211\001\075\000\210\001\076\000\007\002\000\000\
\\000\000\
\\000\000\
\\000\000\
\\042\000\011\002\000\000\
\\000\000\
\\000\000\
\\000\000\
\\051\000\004\000\052\000\123\000\054\000\013\002\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\004\000\167\001\047\000\015\002\048\000\164\001\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\007\000\157\000\010\000\156\000\011\000\155\000\012\000\018\002\000\000\
\\000\000\
\\007\000\157\000\010\000\156\000\011\000\155\000\012\000\019\002\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\001\000\063\001\067\000\021\002\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\001\000\010\000\003\000\009\000\019\000\022\002\020\000\007\000\
\\021\000\006\000\024\000\005\000\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\001\000\116\000\005\000\146\001\073\000\026\002\000\000\
\\001\000\116\000\005\000\218\001\066\000\027\002\000\000\
\\001\000\116\000\005\000\028\002\000\000\
\\001\000\116\000\005\000\029\002\000\000\
\\001\000\010\000\003\000\009\000\019\000\222\001\020\000\007\000\
\\021\000\006\000\024\000\005\000\053\000\030\002\000\000\
\\000\000\
\\001\000\116\000\005\000\158\001\084\000\031\002\000\000\
\\000\000\
\\007\000\157\000\010\000\156\000\011\000\155\000\012\000\032\002\000\000\
\\000\000\
\\000\000\
\\000\000\
\\001\000\116\000\005\000\033\002\000\000\
\\000\000\
\\000\000\
\\074\000\034\002\000\000\
\\074\000\035\002\000\000\
\\051\000\004\000\052\000\211\001\075\000\210\001\076\000\036\002\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\007\000\157\000\010\000\156\000\011\000\155\000\012\000\041\002\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\"
val numstates = 555
val numrules = 281
val s = ref "" and index = ref 0
val string_to_int = fn () => 
let val i = !index
in index := i+2; Char.ord(String.sub(!s,i)) + Char.ord(String.sub(!s,i+1)) * 256
end
val string_to_list = fn s' =>
    let val len = String.size s'
        fun f () =
           if !index < len then string_to_int() :: f()
           else nil
   in index := 0; s := s'; f ()
   end
val string_to_pairlist = fn (conv_key,conv_entry) =>
     let fun f () =
         case string_to_int()
         of 0 => EMPTY
          | n => PAIR(conv_key (n-1),conv_entry (string_to_int()),f())
     in f
     end
val string_to_pairlist_default = fn (conv_key,conv_entry) =>
    let val conv_row = string_to_pairlist(conv_key,conv_entry)
    in fn () =>
       let val default = conv_entry(string_to_int())
           val row = conv_row()
       in (row,default)
       end
   end
val string_to_table = fn (convert_row,s') =>
    let val len = String.size s'
        fun f ()=
           if !index < len then convert_row() :: f()
           else nil
     in (s := s'; index := 0; f ())
     end
local
  val memo = Array.array(numstates+numrules,ERROR)
  val _ =let fun g i=(Array.update(memo,i,REDUCE(i-numstates)); g(i+1))
       fun f i =
            if i=numstates then g i
            else (Array.update(memo,i,SHIFT (STATE i)); f (i+1))
          in f 0 handle Subscript => ()
          end
in
val entry_to_action = fn 0 => ACCEPT | 1 => ERROR | j => Array.sub(memo,(j-2))
end
val gotoT=Array.fromList(string_to_table(string_to_pairlist(NT,STATE),gotoT))
val actionRows=string_to_table(string_to_pairlist_default(T,entry_to_action),actionRows)
val actionRowNumbers = string_to_list actionRowNumbers
val actionT = let val actionRowLookUp=
let val a=Array.fromList(actionRows) in fn i=>Array.sub(a,i) end
in Array.fromList(map actionRowLookUp actionRowNumbers)
end
in LrTable.mkLrTable {actions=actionT,gotos=gotoT,numRules=numrules,
numStates=numstates,initialState=STATE 0}
end
end
local open Header in
type pos = int
type arg = pos*pos -> ErrorMsg.complainer
structure MlyValue = 
struct
datatype svalue = VOID | ntVOID of unit ->  unit
 | AQID of unit ->  (FastSymbol.raw_symbol)
 | OBJL of unit ->  (string) | ENDQ of unit ->  (string)
 | CHAR of unit ->  (string) | STRING of unit ->  (string)
 | REAL of unit ->  (string) | WORD of unit ->  (IntInf.int)
 | INT0 of unit ->  (IntInf.int) | INT of unit ->  (IntInf.int)
 | TYVAR of unit ->  (FastSymbol.raw_symbol)
 | ID of unit ->  (FastSymbol.raw_symbol) | interdec of unit ->  (dec)
 | fct_exp of unit ->  (fsigexp sigConst -> fctexp)
 | fctb of unit ->  (fctb list)
 | fparamList of unit ->  ( ( symbol option * sigexp )  list)
 | fparam of unit ->  (symbol option*sigexp)
 | strb of unit ->  (strb list) | sdecs' of unit ->  (dec)
 | sdecs of unit ->  (dec) | sdec of unit ->  (dec)
 | strdecs of unit ->  (dec) | strdec of unit ->  (dec)
 | arg_fct of unit ->  ( ( strexp * bool )  list)
 | str of unit ->  (strexp) | fsig of unit ->  (fsigexp)
 | fsigb of unit ->  (fsigb list) | sigb of unit ->  (sigb list)
 | fsigconstraint_op of unit ->  (fsigexp sigConst)
 | sigconstraint_op of unit ->  (sigexp sigConst)
 | sign of unit ->  (sigexp) | whspec of unit ->  (wherespec list)
 | patheqn of unit ->  ( ( FastSymbol.raw_symbol ->symbol )  -> symbol list list)
 | sharespec of unit ->  (spec list)
 | exnspec of unit ->  ( ( symbol * ty option )  list)
 | valspec of unit ->  ( ( symbol * ty )  list)
 | tyspec of unit ->  ( ( symbol * tyvar list * ty option )  list)
 | fctspec of unit ->  ( ( symbol * fsigexp )  list)
 | strspec of unit ->  ( ( symbol * sigexp * path option )  list)
 | idents of unit ->  (spec list) | spec of unit ->  (spec list)
 | spec_s of unit ->  (spec list) | ops of unit ->  (symbol list)
 | ldecs of unit ->  (dec) | exp_pa of unit ->  (exp list)
 | ldec of unit ->  (dec) | fixity of unit ->  (fixity)
 | qid_p of unit ->  (Symbol.symbol list list)
 | eb of unit ->  (eb list) | constr of unit ->  (symbol*ty option)
 | constrs of unit ->  ( ( symbol * ty option )  list)
 | dbrhs of unit ->  (dbrhs) | db of unit ->  (db list)
 | tyvar_pc of unit ->  (tyvar list)
 | tyvarseq of unit ->  (tyvar list) | tyvars of unit ->  (tyvar list)
 | tb of unit ->  (tb list) | clause of unit ->  (clause)
 | apats of unit ->  (pat fixitem list) | fb of unit ->  (fb list)
 | fb' of unit ->  (clause list) | rvb of unit ->  (rvb list)
 | constraint of unit ->  (ty option) | vb of unit ->  (vb list)
 | or_pat_list of unit ->  (pat list)
 | pat_list of unit ->  (pat list) | pat_2c of unit ->  (pat list)
 | plabels of unit ->  ( ( (symbol * pat) list * bool ) )
 | plabel of unit ->  ( ( symbol * pat ) ) | apat' of unit ->  (pat)
 | apat of unit ->  (pat fixitem) | pat of unit ->  (pat)
 | ot_list of unit ->  (exp list) | quote of unit ->  (exp list)
 | exp_2c of unit ->  (exp list) | exp_list of unit ->  (exp list)
 | aexp of unit ->  (exp) | app_exp of unit ->  (exp fixitem list)
 | exp of unit ->  (exp) | exp_ps of unit ->  (exp list)
 | elabels of unit ->  ( ( symbol * exp )  list)
 | elabel of unit ->  ( ( symbol * exp ) ) | rule of unit ->  (rule)
 | match of unit ->  (rule list) | ty0_pc of unit ->  (ty list)
 | ty of unit ->  (ty) | tuple_ty of unit ->  (ty list)
 | ty' of unit ->  (ty) | tlabels of unit ->  ( ( symbol * ty )  list)
 | tlabel of unit ->  ( ( symbol * ty ) )
 | tycon of unit ->  (symbol list) | selector of unit ->  (symbol)
 | qid of unit ->  ( ( FastSymbol.raw_symbol ->symbol )  -> symbol list)
 | op_op of unit ->  (unit) | int of unit ->  (IntInf.int)
 | id of unit ->  (FastSymbol.raw_symbol)
 | ident of unit ->  (FastSymbol.raw_symbol)
end
type svalue = MlyValue.svalue
type result = dec
end
structure EC=
struct
open LrTable
val is_keyword =
fn (T 10) => true | (T 11) => true | (T 13) => true | (T 15) => true
 | (T 16) => true | (T 17) => true | (T 18) => true | (T 19) => true
 | (T 21) => true | (T 22) => true | (T 23) => true | (T 25) => true
 | (T 26) => true | (T 27) => true | (T 28) => true | (T 29) => true
 | (T 31) => true | (T 32) => true | (T 33) => true | (T 34) => true
 | (T 35) => true | (T 36) => true | (T 37) => true | (T 38) => true
 | (T 39) => true | (T 40) => true | (T 41) => true | (T 42) => true
 | (T 43) => true | (T 44) => true | (T 45) => true | (T 46) => true
 | (T 47) => true | (T 48) => true | (T 49) => true | (T 50) => true
 | (T 51) => true | (T 52) => true | (T 53) => true | (T 55) => true
 | (T 54) => true | (T 57) => true | (T 58) => true | (T 69) => true
 | (T 70) => true | _ => false
val preferred_change = 
(nil
,(T 53) :: nil
)::
(nil
,(T 51) :: nil
)::
(nil
,(T 18) :: nil
)::
(nil
,(T 65) :: nil
)::
(nil
,(T 1) :: nil
)::
((T 25) :: nil
,(T 20) :: nil
)::
((T 20) :: nil
,(T 25) :: nil
)::
((T 11) :: nil
,(T 70) :: nil
)::
((T 60) :: nil
,(T 40) :: nil
)::
((T 1) :: nil
,(T 62) :: nil
)::
((T 62) :: nil
,(T 1) :: nil
)::
(nil
,(T 32) :: (T 2) :: (T 19) :: nil
)::
(nil
,(T 18) :: (T 2) :: nil
)::
nil
val noShift = 
fn (T 0) => true | _ => false
val showTerminal =
fn (T 0) => "EOF"
  | (T 1) => "SEMICOLON"
  | (T 2) => "ID"
  | (T 3) => "TYVAR"
  | (T 4) => "INT"
  | (T 5) => "INT0"
  | (T 6) => "WORD"
  | (T 7) => "REAL"
  | (T 8) => "STRING"
  | (T 9) => "CHAR"
  | (T 10) => "ABSTYPE"
  | (T 11) => "AND"
  | (T 12) => "ARROW"
  | (T 13) => "AS"
  | (T 14) => "BAR"
  | (T 15) => "CASE"
  | (T 16) => "DATATYPE"
  | (T 17) => "DOTDOTDOT"
  | (T 18) => "ELSE"
  | (T 19) => "END"
  | (T 20) => "EQUALOP"
  | (T 21) => "EQTYPE"
  | (T 22) => "EXCEPTION"
  | (T 23) => "DO"
  | (T 24) => "DOT"
  | (T 25) => "DARROW"
  | (T 26) => "FN"
  | (T 27) => "FUN"
  | (T 28) => "FUNCTOR"
  | (T 29) => "HANDLE"
  | (T 30) => "HASH"
  | (T 31) => "IF"
  | (T 32) => "IN"
  | (T 33) => "INCLUDE"
  | (T 34) => "INFIX"
  | (T 35) => "INFIXR"
  | (T 36) => "LAZY"
  | (T 37) => "LET"
  | (T 38) => "LOCAL"
  | (T 39) => "NONFIX"
  | (T 40) => "OF"
  | (T 41) => "OP"
  | (T 42) => "OPEN"
  | (T 43) => "OVERLOAD"
  | (T 44) => "RAISE"
  | (T 45) => "REC"
  | (T 46) => "SHARING"
  | (T 47) => "SIG"
  | (T 48) => "SIGNATURE"
  | (T 49) => "STRUCT"
  | (T 50) => "STRUCTURE"
  | (T 51) => "THEN"
  | (T 52) => "TYPE"
  | (T 53) => "VAL"
  | (T 54) => "WHERE"
  | (T 55) => "WHILE"
  | (T 56) => "WILD"
  | (T 57) => "WITH"
  | (T 58) => "WITHTYPE"
  | (T 59) => "ASTERISK"
  | (T 60) => "COLON"
  | (T 61) => "COLONGT"
  | (T 62) => "COMMA"
  | (T 63) => "LBRACE"
  | (T 64) => "LBRACKET"
  | (T 65) => "LPAREN"
  | (T 66) => "RBRACE"
  | (T 67) => "RBRACKET"
  | (T 68) => "RPAREN"
  | (T 69) => "ORELSE"
  | (T 70) => "ANDALSO"
  | (T 71) => "FUNSIG"
  | (T 72) => "VECTORSTART"
  | (T 73) => "BEGINQ"
  | (T 74) => "ENDQ"
  | (T 75) => "OBJL"
  | (T 76) => "AQID"
  | _ => "bogus-term"
local open Header in
val errtermvalue=
fn (T 2) => MlyValue.ID(fn () => (rawSymbol(bogusHash,bogusString))) | 
(T 3) => MlyValue.TYVAR(fn () => (
rawSymbol(quotedBogusHash,quotedBogusString))) | 
(T 4) => MlyValue.INT(fn () => (IntInf.fromInt 1)) | 
(T 5) => MlyValue.INT0(fn () => (IntInf.fromInt 0)) | 
(T 6) => MlyValue.WORD(fn () => (IntInf.fromInt 0)) | 
(T 7) => MlyValue.REAL(fn () => ("0.0")) | 
(T 8) => MlyValue.STRING(fn () => ("")) | 
(T 9) => MlyValue.CHAR(fn () => ("a")) | 
_ => MlyValue.VOID
end
val terms = (T 0) :: (T 1) :: (T 10) :: (T 11) :: (T 12) :: (T 13) :: 
(T 14) :: (T 15) :: (T 16) :: (T 17) :: (T 18) :: (T 19) :: (T 20) :: 
(T 21) :: (T 22) :: (T 23) :: (T 24) :: (T 25) :: (T 26) :: (T 27) :: 
(T 28) :: (T 29) :: (T 30) :: (T 31) :: (T 32) :: (T 33) :: (T 34) :: 
(T 35) :: (T 36) :: (T 37) :: (T 38) :: (T 39) :: (T 40) :: (T 41) :: 
(T 42) :: (T 43) :: (T 44) :: (T 45) :: (T 46) :: (T 47) :: (T 48) :: 
(T 49) :: (T 50) :: (T 51) :: (T 52) :: (T 53) :: (T 54) :: (T 55) :: 
(T 56) :: (T 57) :: (T 58) :: (T 59) :: (T 60) :: (T 61) :: (T 62) :: 
(T 63) :: (T 64) :: (T 65) :: (T 66) :: (T 67) :: (T 68) :: (T 69) :: 
(T 70) :: (T 71) :: (T 72) :: (T 73) :: nil
end
structure Actions =
struct 
exception mlyAction of int
local open Header in
val actions = 
fn (i392,defaultPos,stack,
    (error):arg) =>
case (i392,stack)
of (0,(_,(MlyValue.INT INT1,INT1left,INT1right))::rest671) => let val 
result=MlyValue.int(fn _ => let val INT as INT1=INT1 ()
 in (INT) end
)
 in (LrTable.NT 2,(result,INT1left,INT1right),rest671) end
| (1,(_,(MlyValue.INT0 INT01,INT01left,INT01right))::rest671) => let 
val result=MlyValue.int(fn _ => let val INT0 as INT01=INT01 ()
 in (INT0) end
)
 in (LrTable.NT 2,(result,INT01left,INT01right),rest671) end
| (2,(_,(MlyValue.ID ID1,ID1left,ID1right))::rest671) => let val 
result=MlyValue.id(fn _ => let val ID as ID1=ID1 ()
 in (ID) end
)
 in (LrTable.NT 1,(result,ID1left,ID1right),rest671) end
| (3,(_,(_,ASTERISK1left,ASTERISK1right))::rest671) => let val result=
MlyValue.id(fn _ => (rawSymbol (asteriskHash,asteriskString)))
 in (LrTable.NT 1,(result,ASTERISK1left,ASTERISK1right),rest671) end
| (4,(_,(MlyValue.ID ID1,ID1left,ID1right))::rest671) => let val 
result=MlyValue.ident(fn _ => let val ID as ID1=ID1 ()
 in (ID) end
)
 in (LrTable.NT 0,(result,ID1left,ID1right),rest671) end
| (5,(_,(_,ASTERISK1left,ASTERISK1right))::rest671) => let val result=
MlyValue.ident(fn _ => (rawSymbol (asteriskHash,asteriskString)))
 in (LrTable.NT 0,(result,ASTERISK1left,ASTERISK1right),rest671) end
| (6,(_,(_,EQUALOP1left,EQUALOP1right))::rest671) => let val result=
MlyValue.ident(fn _ => (rawSymbol (equalHash,equalString)))
 in (LrTable.NT 0,(result,EQUALOP1left,EQUALOP1right),rest671) end
| (7,(_,(_,OPleft as OP1left,OPright as OP1right))::rest671) => let 
val result=MlyValue.op_op(fn _ => (
error (OPleft,OPright) WARN "unnecessary `op'"
			       nullErrorBody
))
 in (LrTable.NT 3,(result,OP1left,OP1right),rest671) end
| (8,rest671) => let val result=MlyValue.op_op(fn _ => ())
 in (LrTable.NT 3,(result,defaultPos,defaultPos),rest671) end
| (9,(_,(MlyValue.qid qid1,_,qid1right))::_::(_,(MlyValue.ID ID1,
ID1left,_))::rest671) => let val result=MlyValue.qid(fn _ => let val 
ID as ID1=ID1 ()
val qid as qid1=qid1 ()
 in (fn kind => strSymbol ID :: qid kind) end
)
 in (LrTable.NT 4,(result,ID1left,qid1right),rest671) end
| (10,(_,(MlyValue.ident ident1,ident1left,ident1right))::rest671) => 
let val result=MlyValue.qid(fn _ => let val ident as ident1=ident1 ()
 in (fn kind => [kind ident]) end
)
 in (LrTable.NT 4,(result,ident1left,ident1right),rest671) end
| (11,(_,(MlyValue.id id1,id1left,id1right))::rest671) => let val 
result=MlyValue.selector(fn _ => let val id as id1=id1 ()
 in (labSymbol id) end
)
 in (LrTable.NT 5,(result,id1left,id1right),rest671) end
| (12,(_,(MlyValue.INT INT1,INT1left,INT1right))::rest671) => let val 
result=MlyValue.selector(fn _ => let val INT as INT1=INT1 ()
 in (Symbol.labSymbol(IntInf.toString INT)) end
)
 in (LrTable.NT 5,(result,INT1left,INT1right),rest671) end
| (13,(_,(MlyValue.tycon tycon1,_,tycon1right))::_::(_,(MlyValue.ID 
ID1,ID1left,_))::rest671) => let val result=MlyValue.tycon(fn _ => 
let val ID as ID1=ID1 ()
val tycon as tycon1=tycon1 ()
 in (strSymbol ID :: tycon) end
)
 in (LrTable.NT 6,(result,ID1left,tycon1right),rest671) end
| (14,(_,(MlyValue.ID ID1,ID1left,ID1right))::rest671) => let val 
result=MlyValue.tycon(fn _ => let val ID as ID1=ID1 ()
 in ([tycSymbol ID]) end
)
 in (LrTable.NT 6,(result,ID1left,ID1right),rest671) end
| (15,(_,(MlyValue.ty ty1,_,ty1right))::_::(_,(MlyValue.selector 
selector1,selector1left,_))::rest671) => let val result=
MlyValue.tlabel(fn _ => let val selector as selector1=selector1 ()
val ty as ty1=ty1 ()
 in (selector, ty ) end
)
 in (LrTable.NT 7,(result,selector1left,ty1right),rest671) end
| (16,(_,(MlyValue.tlabels tlabels1,_,tlabels1right))::_::(_,(
MlyValue.tlabel tlabel1,tlabel1left,_))::rest671) => let val result=
MlyValue.tlabels(fn _ => let val tlabel as tlabel1=tlabel1 ()
val tlabels as tlabels1=tlabels1 ()
 in (tlabel :: tlabels) end
)
 in (LrTable.NT 8,(result,tlabel1left,tlabels1right),rest671) end
| (17,(_,(MlyValue.tlabel tlabel1,tlabel1left,tlabel1right))::rest671)
 => let val result=MlyValue.tlabels(fn _ => let val tlabel as tlabel1=
tlabel1 ()
 in ([tlabel]) end
)
 in (LrTable.NT 8,(result,tlabel1left,tlabel1right),rest671) end
| (18,(_,(MlyValue.TYVAR TYVAR1,TYVARleft as TYVAR1left,TYVARright as 
TYVAR1right))::rest671) => let val result=MlyValue.ty'(fn _ => let 
val TYVAR as TYVAR1=TYVAR1 ()
 in (MarkTy (VarTy(Tyv(tyvSymbol TYVAR)),
				 (TYVARleft,TYVARright))
) end
)
 in (LrTable.NT 9,(result,TYVAR1left,TYVAR1right),rest671) end
| (19,(_,(_,_,RBRACEright as RBRACE1right))::(_,(MlyValue.tlabels 
tlabels1,_,_))::(_,(_,LBRACEleft as LBRACE1left,_))::rest671) => let 
val result=MlyValue.ty'(fn _ => let val tlabels as tlabels1=tlabels1 
()
 in (MarkTy(RecordTy tlabels,(LBRACEleft,RBRACEright))) end
)
 in (LrTable.NT 9,(result,LBRACE1left,RBRACE1right),rest671) end
| (20,(_,(_,_,RBRACE1right))::(_,(_,LBRACE1left,_))::rest671) => let 
val result=MlyValue.ty'(fn _ => (RecordTy []))
 in (LrTable.NT 9,(result,LBRACE1left,RBRACE1right),rest671) end
| (21,(_,(MlyValue.tycon tycon1,tyconleft,tyconright as tycon1right))
::_::(_,(MlyValue.ty0_pc ty0_pc1,_,_))::(_,(_,LPAREN1left,_))::rest671
) => let val result=MlyValue.ty'(fn _ => let val ty0_pc as ty0_pc1=
ty0_pc1 ()
val tycon as tycon1=tycon1 ()
 in (MarkTy(ConTy(tycon,ty0_pc),(tyconleft,tyconright))) end
)
 in (LrTable.NT 9,(result,LPAREN1left,tycon1right),rest671) end
| (22,(_,(_,_,RPAREN1right))::(_,(MlyValue.ty ty1,_,_))::(_,(_,
LPAREN1left,_))::rest671) => let val result=MlyValue.ty'(fn _ => let 
val ty as ty1=ty1 ()
 in (ty) end
)
 in (LrTable.NT 9,(result,LPAREN1left,RPAREN1right),rest671) end
| (23,(_,(MlyValue.tycon tycon1,tyconleft,tyconright as tycon1right))
::(_,(MlyValue.ty' ty'1,ty'1left,_))::rest671) => let val result=
MlyValue.ty'(fn _ => let val ty' as ty'1=ty'1 ()
val tycon as tycon1=tycon1 ()
 in (MarkTy(ConTy(tycon,[ty']),(tyconleft,tyconright))) end
)
 in (LrTable.NT 9,(result,ty'1left,tycon1right),rest671) end
| (24,(_,(MlyValue.tycon tycon1,tyconleft as tycon1left,tyconright as 
tycon1right))::rest671) => let val result=MlyValue.ty'(fn _ => let 
val tycon as tycon1=tycon1 ()
 in (MarkTy(ConTy(tycon,[]),(tyconleft,tyconright))) end
)
 in (LrTable.NT 9,(result,tycon1left,tycon1right),rest671) end
| (25,(_,(MlyValue.tuple_ty tuple_ty1,_,tuple_ty1right))::_::(_,(
MlyValue.ty' ty'1,ty'1left,_))::rest671) => let val result=
MlyValue.tuple_ty(fn _ => let val ty' as ty'1=ty'1 ()
val tuple_ty as tuple_ty1=tuple_ty1 ()
 in (ty' :: tuple_ty) end
)
 in (LrTable.NT 10,(result,ty'1left,tuple_ty1right),rest671) end
| (26,(_,(MlyValue.ty' ty'2,_,ty'2right))::_::(_,(MlyValue.ty' ty'1,
ty'1left,_))::rest671) => let val result=MlyValue.tuple_ty(fn _ => 
let val ty'1=ty'1 ()
val ty'2=ty'2 ()
 in ([ty'1,ty'2]) end
)
 in (LrTable.NT 10,(result,ty'1left,ty'2right),rest671) end
| (27,(_,(MlyValue.tuple_ty tuple_ty1,tuple_ty1left,tuple_ty1right))::
rest671) => let val result=MlyValue.ty(fn _ => let val tuple_ty as 
tuple_ty1=tuple_ty1 ()
 in (TupleTy(tuple_ty)) end
)
 in (LrTable.NT 11,(result,tuple_ty1left,tuple_ty1right),rest671) end
| (28,(_,(MlyValue.ty ty2,_,ty2right))::_::(_,(MlyValue.ty ty1,ty1left
,_))::rest671) => let val result=MlyValue.ty(fn _ => let val ty1=ty1 
()
val ty2=ty2 ()
 in (ConTy([arrowTycon], [ty1,ty2])) end
)
 in (LrTable.NT 11,(result,ty1left,ty2right),rest671) end
| (29,(_,(MlyValue.ty' ty'1,ty'1left,ty'1right))::rest671) => let val 
result=MlyValue.ty(fn _ => let val ty' as ty'1=ty'1 ()
 in (ty') end
)
 in (LrTable.NT 11,(result,ty'1left,ty'1right),rest671) end
| (30,(_,(MlyValue.ty ty2,_,ty2right))::_::(_,(MlyValue.ty ty1,ty1left
,_))::rest671) => let val result=MlyValue.ty0_pc(fn _ => let val ty1=
ty1 ()
val ty2=ty2 ()
 in ([ty1,ty2]) end
)
 in (LrTable.NT 12,(result,ty1left,ty2right),rest671) end
| (31,(_,(MlyValue.ty0_pc ty0_pc1,_,ty0_pc1right))::_::(_,(MlyValue.ty
 ty1,ty1left,_))::rest671) => let val result=MlyValue.ty0_pc(fn _ => 
let val ty as ty1=ty1 ()
val ty0_pc as ty0_pc1=ty0_pc1 ()
 in (ty :: ty0_pc) end
)
 in (LrTable.NT 12,(result,ty1left,ty0_pc1right),rest671) end
| (32,(_,(MlyValue.rule rule1,rule1left,rule1right))::rest671) => let 
val result=MlyValue.match(fn _ => let val rule as rule1=rule1 ()
 in ([rule]) end
)
 in (LrTable.NT 13,(result,rule1left,rule1right),rest671) end
| (33,(_,(MlyValue.match match1,_,match1right))::_::(_,(MlyValue.rule 
rule1,rule1left,_))::rest671) => let val result=MlyValue.match(fn _
 => let val rule as rule1=rule1 ()
val match as match1=match1 ()
 in (rule :: match) end
)
 in (LrTable.NT 13,(result,rule1left,match1right),rest671) end
| (34,(_,(MlyValue.exp exp1,expleft,expright as exp1right))::_::(_,(
MlyValue.pat pat1,pat1left,_))::rest671) => let val result=
MlyValue.rule(fn _ => let val pat as pat1=pat1 ()
val exp as exp1=exp1 ()
 in (Rule{pat=pat, 
				      exp=markexp(exp,expleft,expright)}) end
)
 in (LrTable.NT 14,(result,pat1left,exp1right),rest671) end
| (35,(_,(MlyValue.exp exp1,_,exp1right))::_::(_,(MlyValue.selector 
selector1,selector1left,_))::rest671) => let val result=
MlyValue.elabel(fn _ => let val selector as selector1=selector1 ()
val exp as exp1=exp1 ()
 in (selector,exp) end
)
 in (LrTable.NT 15,(result,selector1left,exp1right),rest671) end
| (36,(_,(MlyValue.elabels elabels1,_,elabels1right))::_::(_,(
MlyValue.elabel elabel1,elabel1left,_))::rest671) => let val result=
MlyValue.elabels(fn _ => let val elabel as elabel1=elabel1 ()
val elabels as elabels1=elabels1 ()
 in (elabel :: elabels) end
)
 in (LrTable.NT 16,(result,elabel1left,elabels1right),rest671) end
| (37,(_,(MlyValue.elabel elabel1,elabel1left,elabel1right))::rest671)
 => let val result=MlyValue.elabels(fn _ => let val elabel as elabel1=
elabel1 ()
 in ([elabel]) end
)
 in (LrTable.NT 16,(result,elabel1left,elabel1right),rest671) end
| (38,(_,(MlyValue.exp exp1,exp1left,exp1right))::rest671) => let val 
result=MlyValue.exp_ps(fn _ => let val exp as exp1=exp1 ()
 in ([exp]) end
)
 in (LrTable.NT 17,(result,exp1left,exp1right),rest671) end
| (39,(_,(MlyValue.exp_ps exp_ps1,_,exp_ps1right))::_::(_,(
MlyValue.exp exp1,exp1left,_))::rest671) => let val result=
MlyValue.exp_ps(fn _ => let val exp as exp1=exp1 ()
val exp_ps as exp_ps1=exp_ps1 ()
 in (exp :: exp_ps) end
)
 in (LrTable.NT 17,(result,exp1left,exp_ps1right),rest671) end
| (40,(_,(MlyValue.match match1,_,match1right))::_::(_,(MlyValue.exp 
exp1,exp1left,_))::rest671) => let val result=MlyValue.exp(fn _ => 
let val exp as exp1=exp1 ()
val match as match1=match1 ()
 in (HandleExp{expr=exp,rules=match}) end
)
 in (LrTable.NT 18,(result,exp1left,match1right),rest671) end
| (41,(_,(MlyValue.exp exp2,exp2left,exp2right))::_::(_,(MlyValue.exp 
exp1,exp1left,exp1right))::rest671) => let val result=MlyValue.exp(fn 
_ => let val exp1=exp1 ()
val exp2=exp2 ()
 in (
OrelseExp(markexp(exp1,exp1left,exp1right),
					   markexp(exp2,exp2left,exp2right))
) end
)
 in (LrTable.NT 18,(result,exp1left,exp2right),rest671) end
| (42,(_,(MlyValue.exp exp2,exp2left,exp2right))::_::(_,(MlyValue.exp 
exp1,exp1left,exp1right))::rest671) => let val result=MlyValue.exp(fn 
_ => let val exp1=exp1 ()
val exp2=exp2 ()
 in (
AndalsoExp(markexp(exp1,exp1left,exp1right),
					    markexp(exp2,exp2left,exp2right))
) end
)
 in (LrTable.NT 18,(result,exp1left,exp2right),rest671) end
| (43,(_,(MlyValue.ty ty1,_,ty1right))::_::(_,(MlyValue.exp exp1,
exp1left,_))::rest671) => let val result=MlyValue.exp(fn _ => let val 
exp as exp1=exp1 ()
val ty as ty1=ty1 ()
 in (ConstraintExp{expr=exp,constraint=ty}) end
)
 in (LrTable.NT 18,(result,exp1left,ty1right),rest671) end
| (44,(_,(MlyValue.app_exp app_exp1,app_exp1left,app_exp1right))::
rest671) => let val result=MlyValue.exp(fn _ => let val app_exp as 
app_exp1=app_exp1 ()
 in (FlatAppExp(app_exp)) end
)
 in (LrTable.NT 18,(result,app_exp1left,app_exp1right),rest671) end
| (45,(_,(MlyValue.match match1,_,matchright as match1right))::(_,(_,
FNleft as FN1left,_))::rest671) => let val result=MlyValue.exp(fn _
 => let val match as match1=match1 ()
 in (markexp(FnExp match, FNleft,matchright)) end
)
 in (LrTable.NT 18,(result,FN1left,match1right),rest671) end
| (46,(_,(MlyValue.match match1,_,matchright as match1right))::_::(_,(
MlyValue.exp exp1,_,_))::(_,(_,CASEleft as CASE1left,_))::rest671) => 
let val result=MlyValue.exp(fn _ => let val exp as exp1=exp1 ()
val match as match1=match1 ()
 in (
markexp(CaseExp{expr=exp, rules=match},
					 CASEleft,matchright))
 end
)
 in (LrTable.NT 18,(result,CASE1left,match1right),rest671) end
| (47,(_,(MlyValue.exp exp2,exp2left,exp2right))::_::(_,(MlyValue.exp 
exp1,exp1left,exp1right))::(_,(_,WHILE1left,_))::rest671) => let val 
result=MlyValue.exp(fn _ => let val exp1=exp1 ()
val exp2=exp2 ()
 in (
WhileExp
                                   {test=markexp(exp1, exp1left, exp1right),
				    expr=markexp(exp2, exp2left, exp2right)}
) end
)
 in (LrTable.NT 18,(result,WHILE1left,exp2right),rest671) end
| (48,(_,(MlyValue.exp exp3,exp3left,exp3right))::_::(_,(MlyValue.exp 
exp2,exp2left,exp2right))::_::(_,(MlyValue.exp exp1,_,_))::(_,(_,
IF1left,_))::rest671) => let val result=MlyValue.exp(fn _ => let val 
exp1=exp1 ()
val exp2=exp2 ()
val exp3=exp3 ()
 in (
IfExp{test=exp1,
				   thenCase=markexp(exp2,exp2left,exp2right),
				   elseCase=markexp(exp3,exp3left,exp3right)}
) end
)
 in (LrTable.NT 18,(result,IF1left,exp3right),rest671) end
| (49,(_,(MlyValue.exp exp1,expleft,expright as exp1right))::(_,(_,
RAISEleft as RAISE1left,_))::rest671) => let val result=MlyValue.exp(
fn _ => let val exp as exp1=exp1 ()
 in (
markexp(markexp(RaiseExp exp, expleft,expright),
				      RAISEleft,expright)
) end
)
 in (LrTable.NT 18,(result,RAISE1left,exp1right),rest671) end
| (50,(_,(MlyValue.aexp aexp1,aexpleft as aexp1left,aexpright as 
aexp1right))::rest671) => let val result=MlyValue.app_exp(fn _ => let 
val aexp as aexp1=aexp1 ()
 in (
[{item=markexp(aexp,aexpleft,aexpright),
			   region=(aexpleft,aexpright), fixity=NONE}]
) end
)
 in (LrTable.NT 19,(result,aexp1left,aexp1right),rest671) end
| (51,(_,(MlyValue.ident ident1,identleft as ident1left,identright as 
ident1right))::rest671) => let val result=MlyValue.app_exp(fn _ => 
let val ident as ident1=ident1 ()
 in (
[let val (v,f) = var'n'fix ident
			    in {item=markexp(VarExp [v],identleft,identright),
				region=(identleft,identright),
				fixity=SOME f}
			    end]
) end
)
 in (LrTable.NT 19,(result,ident1left,ident1right),rest671) end
| (52,(_,(MlyValue.app_exp app_exp1,_,app_exp1right))::(_,(
MlyValue.aexp aexp1,aexpleft as aexp1left,aexpright))::rest671) => 
let val result=MlyValue.app_exp(fn _ => let val aexp as aexp1=aexp1 ()
val app_exp as app_exp1=app_exp1 ()
 in (
{item=markexp(aexp,aexpleft,aexpright),
			  region=(aexpleft,aexpright), fixity=NONE}
                            :: app_exp
) end
)
 in (LrTable.NT 19,(result,aexp1left,app_exp1right),rest671) end
| (53,(_,(MlyValue.app_exp app_exp1,_,app_exp1right))::(_,(
MlyValue.ident ident1,identleft as ident1left,identright))::rest671)
 => let val result=MlyValue.app_exp(fn _ => let val ident as ident1=
ident1 ()
val app_exp as app_exp1=app_exp1 ()
 in (
let val (v,f) = var'n'fix ident
			  in {item=markexp(VarExp [v],identleft,identright),
			      region=(identleft,identright),
				fixity=SOME f} :: app_exp
			 end
) end
)
 in (LrTable.NT 19,(result,ident1left,app_exp1right),rest671) end
| (54,(_,(MlyValue.ident ident1,_,ident1right))::(_,(_,OP1left,_))::
rest671) => let val result=MlyValue.aexp(fn _ => let val ident as 
ident1=ident1 ()
 in (VarExp [varSymbol ident]) end
)
 in (LrTable.NT 20,(result,OP1left,ident1right),rest671) end
| (55,(_,(MlyValue.qid qid1,_,qid1right))::_::(_,(MlyValue.ID ID1,
ID1left,_))::rest671) => let val result=MlyValue.aexp(fn _ => let val 
ID as ID1=ID1 ()
val qid as qid1=qid1 ()
 in (VarExp (strSymbol ID :: qid varSymbol)) end
)
 in (LrTable.NT 20,(result,ID1left,qid1right),rest671) end
| (56,(_,(MlyValue.int int1,int1left,int1right))::rest671) => let val 
result=MlyValue.aexp(fn _ => let val int as int1=int1 ()
 in (IntExp int) end
)
 in (LrTable.NT 20,(result,int1left,int1right),rest671) end
| (57,(_,(MlyValue.WORD WORD1,WORD1left,WORD1right))::rest671) => let 
val result=MlyValue.aexp(fn _ => let val WORD as WORD1=WORD1 ()
 in (WordExp WORD) end
)
 in (LrTable.NT 20,(result,WORD1left,WORD1right),rest671) end
| (58,(_,(MlyValue.REAL REAL1,REAL1left,REAL1right))::rest671) => let 
val result=MlyValue.aexp(fn _ => let val REAL as REAL1=REAL1 ()
 in (RealExp REAL) end
)
 in (LrTable.NT 20,(result,REAL1left,REAL1right),rest671) end
| (59,(_,(MlyValue.STRING STRING1,STRING1left,STRING1right))::rest671)
 => let val result=MlyValue.aexp(fn _ => let val STRING as STRING1=
STRING1 ()
 in (StringExp STRING) end
)
 in (LrTable.NT 20,(result,STRING1left,STRING1right),rest671) end
| (60,(_,(MlyValue.CHAR CHAR1,CHAR1left,CHAR1right))::rest671) => let 
val result=MlyValue.aexp(fn _ => let val CHAR as CHAR1=CHAR1 ()
 in (CharExp CHAR) end
)
 in (LrTable.NT 20,(result,CHAR1left,CHAR1right),rest671) end
| (61,(_,(MlyValue.selector selector1,_,selectorright as 
selector1right))::(_,(_,HASHleft as HASH1left,_))::rest671) => let 
val result=MlyValue.aexp(fn _ => let val selector as selector1=
selector1 ()
 in (markexp(SelectorExp selector,
						   HASHleft, selectorright))
 end
)
 in (LrTable.NT 20,(result,HASH1left,selector1right),rest671) end
| (62,(_,(_,_,RBRACEright as RBRACE1right))::(_,(MlyValue.elabels 
elabels1,_,_))::(_,(_,LBRACEleft as LBRACE1left,_))::rest671) => let 
val result=MlyValue.aexp(fn _ => let val elabels as elabels1=elabels1 
()
 in (markexp(RecordExp elabels, 
					 LBRACEleft,RBRACEright)) end
)
 in (LrTable.NT 20,(result,LBRACE1left,RBRACE1right),rest671) end
| (63,(_,(_,_,RBRACE1right))::(_,(_,LBRACE1left,_))::rest671) => let 
val result=MlyValue.aexp(fn _ => (RecordExp nil))
 in (LrTable.NT 20,(result,LBRACE1left,RBRACE1right),rest671) end
| (64,(_,(_,_,RPAREN1right))::(_,(_,LPAREN1left,_))::rest671) => let 
val result=MlyValue.aexp(fn _ => (unitExp))
 in (LrTable.NT 20,(result,LPAREN1left,RPAREN1right),rest671) end
| (65,(_,(_,_,RPAREN1right))::(_,(MlyValue.exp_ps exp_ps1,_,_))::(_,(_
,LPAREN1left,_))::rest671) => let val result=MlyValue.aexp(fn _ => 
let val exp_ps as exp_ps1=exp_ps1 ()
 in (SeqExp exp_ps) end
)
 in (LrTable.NT 20,(result,LPAREN1left,RPAREN1right),rest671) end
| (66,(_,(_,_,RPAREN1right))::(_,(MlyValue.exp_2c exp_2c1,_,_))::(_,(_
,LPAREN1left,_))::rest671) => let val result=MlyValue.aexp(fn _ => 
let val exp_2c as exp_2c1=exp_2c1 ()
 in (TupleExp exp_2c) end
)
 in (LrTable.NT 20,(result,LPAREN1left,RPAREN1right),rest671) end
| (67,(_,(_,_,RBRACKET1right))::(_,(MlyValue.exp_list exp_list1,_,_))
::(_,(_,LBRACKET1left,_))::rest671) => let val result=MlyValue.aexp(
fn _ => let val exp_list as exp_list1=exp_list1 ()
 in (ListExp exp_list) end
)
 in (LrTable.NT 20,(result,LBRACKET1left,RBRACKET1right),rest671) end
| (68,(_,(_,_,RBRACKET1right))::(_,(_,LBRACKET1left,_))::rest671) => 
let val result=MlyValue.aexp(fn _ => (ListExp nil))
 in (LrTable.NT 20,(result,LBRACKET1left,RBRACKET1right),rest671) end
| (69,(_,(_,_,RBRACKET1right))::(_,(MlyValue.exp_list exp_list1,_,_))
::(_,(_,VECTORSTART1left,_))::rest671) => let val result=MlyValue.aexp
(fn _ => let val exp_list as exp_list1=exp_list1 ()
 in (VectorExp exp_list) end
)
 in (LrTable.NT 20,(result,VECTORSTART1left,RBRACKET1right),rest671)
 end
| (70,(_,(_,_,RBRACKET1right))::(_,(_,VECTORSTART1left,_))::rest671)
 => let val result=MlyValue.aexp(fn _ => (VectorExp nil))
 in (LrTable.NT 20,(result,VECTORSTART1left,RBRACKET1right),rest671)
 end
| (71,(_,(_,_,ENDright as END1right))::(_,(MlyValue.exp_ps exp_ps1,_,_
))::_::(_,(MlyValue.ldecs ldecs1,ldecsleft,ldecsright))::(_,(_,LETleft
 as LET1left,_))::rest671) => let val result=MlyValue.aexp(fn _ => 
let val ldecs as ldecs1=ldecs1 ()
val exp_ps as exp_ps1=exp_ps1 ()
 in (
markexp (LetExp{dec=markdec(ldecs,ldecsleft,
							     ldecsright),
						 expr=SeqExp exp_ps},
					  LETleft,ENDright)
) end
)
 in (LrTable.NT 20,(result,LET1left,END1right),rest671) end
| (72,(_,(MlyValue.AQID AQID1,AQID1left,AQID1right))::rest671) => let 
val result=MlyValue.aexp(fn _ => let val AQID as AQID1=AQID1 ()
 in (VarExp([varSymbol AQID])) end
)
 in (LrTable.NT 20,(result,AQID1left,AQID1right),rest671) end
| (73,(_,(MlyValue.quote quote1,quote1left,quote1right))::rest671) => 
let val result=MlyValue.aexp(fn _ => let val quote as quote1=quote1 ()
 in (ListExp quote) end
)
 in (LrTable.NT 20,(result,quote1left,quote1right),rest671) end
| (74,(_,(MlyValue.ENDQ ENDQ1,_,ENDQ1right))::(_,(_,BEGINQ1left,_))::
rest671) => let val result=MlyValue.quote(fn _ => let val ENDQ as 
ENDQ1=ENDQ1 ()
 in ([QuoteExp ENDQ]) end
)
 in (LrTable.NT 23,(result,BEGINQ1left,ENDQ1right),rest671) end
| (75,(_,(MlyValue.ENDQ ENDQ1,_,ENDQ1right))::(_,(MlyValue.ot_list 
ot_list1,_,_))::(_,(_,BEGINQ1left,_))::rest671) => let val result=
MlyValue.quote(fn _ => let val ot_list as ot_list1=ot_list1 ()
val ENDQ as ENDQ1=ENDQ1 ()
 in (ot_list @ [QuoteExp ENDQ]) end
)
 in (LrTable.NT 23,(result,BEGINQ1left,ENDQ1right),rest671) end
| (76,(_,(MlyValue.aexp aexp1,_,aexp1right))::(_,(MlyValue.OBJL OBJL1,
OBJL1left,_))::rest671) => let val result=MlyValue.ot_list(fn _ => 
let val OBJL as OBJL1=OBJL1 ()
val aexp as aexp1=aexp1 ()
 in ([QuoteExp OBJL,AntiquoteExp aexp]) end
)
 in (LrTable.NT 24,(result,OBJL1left,aexp1right),rest671) end
| (77,(_,(MlyValue.ot_list ot_list1,_,ot_list1right))::(_,(
MlyValue.aexp aexp1,_,_))::(_,(MlyValue.OBJL OBJL1,OBJL1left,_))::
rest671) => let val result=MlyValue.ot_list(fn _ => let val OBJL as 
OBJL1=OBJL1 ()
val aexp as aexp1=aexp1 ()
val ot_list as ot_list1=ot_list1 ()
 in (
QuoteExp OBJL :: AntiquoteExp aexp ::
                                            ot_list
) end
)
 in (LrTable.NT 24,(result,OBJL1left,ot_list1right),rest671) end
| (78,(_,(MlyValue.exp_2c exp_2c1,_,exp_2c1right))::_::(_,(
MlyValue.exp exp1,exp1left,_))::rest671) => let val result=
MlyValue.exp_2c(fn _ => let val exp as exp1=exp1 ()
val exp_2c as exp_2c1=exp_2c1 ()
 in (exp :: exp_2c) end
)
 in (LrTable.NT 22,(result,exp1left,exp_2c1right),rest671) end
| (79,(_,(MlyValue.exp exp2,_,exp2right))::_::(_,(MlyValue.exp exp1,
exp1left,_))::rest671) => let val result=MlyValue.exp_2c(fn _ => let 
val exp1=exp1 ()
val exp2=exp2 ()
 in ([exp1, exp2]) end
)
 in (LrTable.NT 22,(result,exp1left,exp2right),rest671) end
| (80,(_,(MlyValue.exp exp1,exp1left,exp1right))::rest671) => let val 
result=MlyValue.exp_list(fn _ => let val exp as exp1=exp1 ()
 in ([exp]) end
)
 in (LrTable.NT 21,(result,exp1left,exp1right),rest671) end
| (81,(_,(MlyValue.exp_list exp_list1,_,exp_list1right))::_::(_,(
MlyValue.exp exp1,exp1left,_))::rest671) => let val result=
MlyValue.exp_list(fn _ => let val exp as exp1=exp1 ()
val exp_list as exp_list1=exp_list1 ()
 in (exp :: exp_list) end
)
 in (LrTable.NT 21,(result,exp1left,exp_list1right),rest671) end
| (82,(_,(MlyValue.pat pat2,_,pat2right))::_::(_,(MlyValue.pat pat1,
pat1left,_))::rest671) => let val result=MlyValue.pat(fn _ => let val 
pat1=pat1 ()
val pat2=pat2 ()
 in (layered(pat1, pat2, 
					 error(pat1left,pat2right))) end
)
 in (LrTable.NT 25,(result,pat1left,pat2right),rest671) end
| (83,(_,(MlyValue.ty ty1,_,ty1right))::_::(_,(MlyValue.pat pat1,
pat1left,_))::rest671) => let val result=MlyValue.pat(fn _ => let val 
pat as pat1=pat1 ()
val ty as ty1=ty1 ()
 in (ConstraintPat{pattern=pat, constraint=ty}) end
)
 in (LrTable.NT 25,(result,pat1left,ty1right),rest671) end
| (84,(_,(MlyValue.apats apats1,apats1left,apats1right))::rest671) => 
let val result=MlyValue.pat(fn _ => let val apats as apats1=apats1 ()
 in (FlatAppPat apats) end
)
 in (LrTable.NT 25,(result,apats1left,apats1right),rest671) end
| (85,(_,(MlyValue.apat' apat'1,apat'left as apat'1left,apat'right as 
apat'1right))::rest671) => let val result=MlyValue.apat(fn _ => let 
val apat' as apat'1=apat'1 ()
 in ({item=apat', region=(apat'left,apat'right),
			  fixity=NONE})
 end
)
 in (LrTable.NT 26,(result,apat'1left,apat'1right),rest671) end
| (86,(_,(_,_,RPARENright as RPAREN1right))::(_,(MlyValue.pat pat1,_,_
))::(_,(_,LPARENleft as LPAREN1left,_))::rest671) => let val result=
MlyValue.apat(fn _ => let val pat as pat1=pat1 ()
 in (
{item=pat,
				  region=(LPARENleft,RPARENright),
				  fixity=NONE})
 end
)
 in (LrTable.NT 26,(result,LPAREN1left,RPAREN1right),rest671) end
| (87,(_,(MlyValue.id id1,idleft as id1left,idright as id1right))::
rest671) => let val result=MlyValue.apat(fn _ => let val id as id1=id1
 ()
 in (
let val (v,f) = var'n'fix id
				 in {item=VarPat [v], 
				     region=(idleft,idright),
				     fixity=SOME f} end
) end
)
 in (LrTable.NT 26,(result,id1left,id1right),rest671) end
| (88,(_,(_,_,RPARENright as RPAREN1right))::(_,(_,LPARENleft as 
LPAREN1left,_))::rest671) => let val result=MlyValue.apat(fn _ => (
{item=unitPat,fixity=NONE,
				  region=(LPARENleft,RPARENright)}))
 in (LrTable.NT 26,(result,LPAREN1left,RPAREN1right),rest671) end
| (89,(_,(_,_,RPARENright as RPAREN1right))::(_,(MlyValue.pat_list 
pat_list1,_,_))::_::(_,(MlyValue.pat pat1,_,_))::(_,(_,LPARENleft as 
LPAREN1left,_))::rest671) => let val result=MlyValue.apat(fn _ => let 
val pat as pat1=pat1 ()
val pat_list as pat_list1=pat_list1 ()
 in (
{item=TuplePat(pat :: pat_list),
				  region=(LPARENleft,RPARENright),
				  fixity=NONE}
) end
)
 in (LrTable.NT 26,(result,LPAREN1left,RPAREN1right),rest671) end
| (90,(_,(_,_,RPARENright as RPAREN1right))::(_,(MlyValue.or_pat_list 
or_pat_list1,_,_))::_::(_,(MlyValue.pat pat1,_,_))::(_,(_,LPARENleft
 as LPAREN1left,_))::rest671) => let val result=MlyValue.apat(fn _ => 
let val pat as pat1=pat1 ()
val or_pat_list as or_pat_list1=or_pat_list1 ()
 in (
{item=OrPat(pat :: or_pat_list),
				  region=(LPARENleft,RPARENright),
				  fixity=NONE}
) end
)
 in (LrTable.NT 26,(result,LPAREN1left,RPAREN1right),rest671) end
| (91,(_,(MlyValue.ident ident1,_,ident1right))::(_,(_,OP1left,_))::
rest671) => let val result=MlyValue.apat'(fn _ => let val ident as 
ident1=ident1 ()
 in (VarPat [varSymbol ident]) end
)
 in (LrTable.NT 27,(result,OP1left,ident1right),rest671) end
| (92,(_,(MlyValue.qid qid1,_,qid1right))::_::(_,(MlyValue.ID ID1,
ID1left,_))::rest671) => let val result=MlyValue.apat'(fn _ => let 
val ID as ID1=ID1 ()
val qid as qid1=qid1 ()
 in (VarPat (strSymbol ID :: qid varSymbol)) end
)
 in (LrTable.NT 27,(result,ID1left,qid1right),rest671) end
| (93,(_,(MlyValue.int int1,int1left,int1right))::rest671) => let val 
result=MlyValue.apat'(fn _ => let val int as int1=int1 ()
 in (IntPat int) end
)
 in (LrTable.NT 27,(result,int1left,int1right),rest671) end
| (94,(_,(MlyValue.WORD WORD1,WORD1left,WORD1right))::rest671) => let 
val result=MlyValue.apat'(fn _ => let val WORD as WORD1=WORD1 ()
 in (WordPat WORD) end
)
 in (LrTable.NT 27,(result,WORD1left,WORD1right),rest671) end
| (95,(_,(MlyValue.STRING STRING1,STRING1left,STRING1right))::rest671)
 => let val result=MlyValue.apat'(fn _ => let val STRING as STRING1=
STRING1 ()
 in (StringPat STRING) end
)
 in (LrTable.NT 27,(result,STRING1left,STRING1right),rest671) end
| (96,(_,(MlyValue.CHAR CHAR1,CHAR1left,CHAR1right))::rest671) => let 
val result=MlyValue.apat'(fn _ => let val CHAR as CHAR1=CHAR1 ()
 in (CharPat CHAR) end
)
 in (LrTable.NT 27,(result,CHAR1left,CHAR1right),rest671) end
| (97,(_,(_,WILD1left,WILD1right))::rest671) => let val result=
MlyValue.apat'(fn _ => (WildPat))
 in (LrTable.NT 27,(result,WILD1left,WILD1right),rest671) end
| (98,(_,(_,_,RBRACKET1right))::(_,(_,LBRACKET1left,_))::rest671) => 
let val result=MlyValue.apat'(fn _ => (ListPat nil))
 in (LrTable.NT 27,(result,LBRACKET1left,RBRACKET1right),rest671) end
| (99,(_,(_,_,RBRACKET1right))::(_,(MlyValue.pat_list pat_list1,_,_))
::(_,(_,LBRACKET1left,_))::rest671) => let val result=MlyValue.apat'(
fn _ => let val pat_list as pat_list1=pat_list1 ()
 in (ListPat pat_list) end
)
 in (LrTable.NT 27,(result,LBRACKET1left,RBRACKET1right),rest671) end
| (100,(_,(_,_,RBRACKET1right))::(_,(_,VECTORSTART1left,_))::rest671)
 => let val result=MlyValue.apat'(fn _ => (VectorPat nil))
 in (LrTable.NT 27,(result,VECTORSTART1left,RBRACKET1right),rest671)
 end
| (101,(_,(_,_,RBRACKET1right))::(_,(MlyValue.pat_list pat_list1,_,_))
::(_,(_,VECTORSTART1left,_))::rest671) => let val result=
MlyValue.apat'(fn _ => let val pat_list as pat_list1=pat_list1 ()
 in (VectorPat pat_list) end
)
 in (LrTable.NT 27,(result,VECTORSTART1left,RBRACKET1right),rest671)
 end
| (102,(_,(_,_,RBRACE1right))::(_,(_,LBRACE1left,_))::rest671) => let 
val result=MlyValue.apat'(fn _ => (unitPat))
 in (LrTable.NT 27,(result,LBRACE1left,RBRACE1right),rest671) end
| (103,(_,(_,_,RBRACEright as RBRACE1right))::(_,(MlyValue.plabels 
plabels1,_,_))::(_,(_,LBRACEleft as LBRACE1left,_))::rest671) => let 
val result=MlyValue.apat'(fn _ => let val plabels as plabels1=plabels1
 ()
 in (
let val (d,f) = plabels
			     in MarkPat(RecordPat{def=d,flexibility=f},
					(LBRACEleft,RBRACEright)) end
) end
)
 in (LrTable.NT 27,(result,LBRACE1left,RBRACE1right),rest671) end
| (104,(_,(MlyValue.pat pat1,_,pat1right))::_::(_,(MlyValue.selector 
selector1,selector1left,_))::rest671) => let val result=
MlyValue.plabel(fn _ => let val selector as selector1=selector1 ()
val pat as pat1=pat1 ()
 in ((selector,pat)) end
)
 in (LrTable.NT 28,(result,selector1left,pat1right),rest671) end
| (105,(_,(MlyValue.ID ID1,ID1left,ID1right))::rest671) => let val 
result=MlyValue.plabel(fn _ => let val ID as ID1=ID1 ()
 in (labSymbol ID, VarPat [varSymbol ID]) end
)
 in (LrTable.NT 28,(result,ID1left,ID1right),rest671) end
| (106,(_,(MlyValue.pat pat1,_,pat1right))::_::(_,(MlyValue.ID ID1,
ID1left,_))::rest671) => let val result=MlyValue.plabel(fn _ => let 
val ID as ID1=ID1 ()
val pat as pat1=pat1 ()
 in (
labSymbol ID, 
				 LayeredPat{varPat=VarPat [varSymbol ID], 
					    expPat=pat}
) end
)
 in (LrTable.NT 28,(result,ID1left,pat1right),rest671) end
| (107,(_,(MlyValue.ty ty1,_,ty1right))::_::(_,(MlyValue.ID ID1,
ID1left,_))::rest671) => let val result=MlyValue.plabel(fn _ => let 
val ID as ID1=ID1 ()
val ty as ty1=ty1 ()
 in (
labSymbol ID,
				 ConstraintPat{pattern=VarPat [varSymbol ID],
					       constraint=ty}
) end
)
 in (LrTable.NT 28,(result,ID1left,ty1right),rest671) end
| (108,(_,(MlyValue.pat pat1,_,pat1right))::_::(_,(MlyValue.ty ty1,_,_
))::_::(_,(MlyValue.ID ID1,ID1left,_))::rest671) => let val result=
MlyValue.plabel(fn _ => let val ID as ID1=ID1 ()
val ty as ty1=ty1 ()
val pat as pat1=pat1 ()
 in (
labSymbol ID,
				 LayeredPat
				 {varPat=ConstraintPat{pattern=VarPat [varSymbol ID],
						       constraint=ty},
				  expPat=pat}
) end
)
 in (LrTable.NT 28,(result,ID1left,pat1right),rest671) end
| (109,(_,(MlyValue.plabels plabels1,_,plabels1right))::_::(_,(
MlyValue.plabel plabel1,plabel1left,_))::rest671) => let val result=
MlyValue.plabels(fn _ => let val plabel as plabel1=plabel1 ()
val plabels as plabels1=plabels1 ()
 in (let val (a,(b,fx))=(plabel, plabels)
				 in (a::b, fx) end) end
)
 in (LrTable.NT 29,(result,plabel1left,plabels1right),rest671) end
| (110,(_,(MlyValue.plabel plabel1,plabel1left,plabel1right))::rest671
) => let val result=MlyValue.plabels(fn _ => let val plabel as plabel1
=plabel1 ()
 in ([plabel],false) end
)
 in (LrTable.NT 29,(result,plabel1left,plabel1right),rest671) end
| (111,(_,(_,DOTDOTDOT1left,DOTDOTDOT1right))::rest671) => let val 
result=MlyValue.plabels(fn _ => (nil, true))
 in (LrTable.NT 29,(result,DOTDOTDOT1left,DOTDOTDOT1right),rest671)
 end
| (112,(_,(MlyValue.pat pat1,pat1left,pat1right))::rest671) => let 
val result=MlyValue.pat_list(fn _ => let val pat as pat1=pat1 ()
 in ([pat]) end
)
 in (LrTable.NT 31,(result,pat1left,pat1right),rest671) end
| (113,(_,(MlyValue.pat_list pat_list1,_,pat_list1right))::_::(_,(
MlyValue.pat pat1,pat1left,_))::rest671) => let val result=
MlyValue.pat_list(fn _ => let val pat as pat1=pat1 ()
val pat_list as pat_list1=pat_list1 ()
 in (pat :: pat_list) end
)
 in (LrTable.NT 31,(result,pat1left,pat_list1right),rest671) end
| (114,(_,(MlyValue.pat pat1,pat1left,pat1right))::rest671) => let 
val result=MlyValue.or_pat_list(fn _ => let val pat as pat1=pat1 ()
 in ([pat]) end
)
 in (LrTable.NT 32,(result,pat1left,pat1right),rest671) end
| (115,(_,(MlyValue.or_pat_list or_pat_list1,_,or_pat_list1right))::_
::(_,(MlyValue.pat pat1,pat1left,_))::rest671) => let val result=
MlyValue.or_pat_list(fn _ => let val pat as pat1=pat1 ()
val or_pat_list as or_pat_list1=or_pat_list1 ()
 in (pat :: or_pat_list) end
)
 in (LrTable.NT 32,(result,pat1left,or_pat_list1right),rest671) end
| (116,(_,(MlyValue.vb vb2,_,vb2right))::_::(_,(MlyValue.vb vb1,
vb1left,_))::rest671) => let val result=MlyValue.vb(fn _ => let val 
vb1=vb1 ()
val vb2=vb2 ()
 in (vb1 @ vb2) end
)
 in (LrTable.NT 33,(result,vb1left,vb2right),rest671) end
| (117,(_,(MlyValue.exp exp1,_,expright as exp1right))::_::(_,(
MlyValue.pat pat1,patleft,_))::(_,(_,LAZY1left,_))::rest671) => let 
val result=MlyValue.vb(fn _ => let val pat as pat1=pat1 ()
val exp as exp1=exp1 ()
 in (
[MarkVb(Vb{exp=exp, pat=pat, lazyp=true},
	                                 (patleft,expright))]
) end
)
 in (LrTable.NT 33,(result,LAZY1left,exp1right),rest671) end
| (118,(_,(MlyValue.exp exp1,_,expright as exp1right))::_::(_,(
MlyValue.pat pat1,patleft as pat1left,_))::rest671) => let val result=
MlyValue.vb(fn _ => let val pat as pat1=pat1 ()
val exp as exp1=exp1 ()
 in (
[MarkVb(Vb{exp=exp, pat=pat, lazyp=false},
	                                 (patleft,expright))]
) end
)
 in (LrTable.NT 33,(result,pat1left,exp1right),rest671) end
| (119,rest671) => let val result=MlyValue.constraint(fn _ => (NONE))
 in (LrTable.NT 34,(result,defaultPos,defaultPos),rest671) end
| (120,(_,(MlyValue.ty ty1,_,ty1right))::(_,(_,COLON1left,_))::rest671
) => let val result=MlyValue.constraint(fn _ => let val ty as ty1=ty1 
()
 in (SOME ty) end
)
 in (LrTable.NT 34,(result,COLON1left,ty1right),rest671) end
| (121,(_,(MlyValue.exp exp1,_,expright as exp1right))::_::(_,(
MlyValue.constraint constraint1,_,_))::(_,(MlyValue.id id1,idleft as 
id1left,idright))::rest671) => let val result=MlyValue.rvb(fn _ => 
let val id as id1=id1 ()
val constraint as constraint1=constraint1 ()
val exp as exp1=exp1 ()
 in (
let val (v,f) = var'n'fix id
	                   in [MarkRvb(Rvb{var=v,fixity=SOME(f,(idleft,idright)),
					   resultty=constraint,
			                   exp=exp,lazyp=false},
                                       (idleft,expright))]
                           end
) end
)
 in (LrTable.NT 35,(result,id1left,exp1right),rest671) end
| (122,(_,(MlyValue.exp exp1,_,expright as exp1right))::_::(_,(
MlyValue.constraint constraint1,_,_))::(_,(MlyValue.id id1,_,_))::(_,(
_,OPleft as OP1left,_))::rest671) => let val result=MlyValue.rvb(fn _
 => let val id as id1=id1 ()
val constraint as constraint1=constraint1 ()
val exp as exp1=exp1 ()
 in (
[MarkRvb(Rvb{var=varSymbol id,fixity=NONE,
				        resultty=constraint,
			                exp=exp,lazyp=false},
				    (OPleft,expright))]
) end
)
 in (LrTable.NT 35,(result,OP1left,exp1right),rest671) end
| (123,(_,(MlyValue.rvb rvb2,_,rvb2right))::_::(_,(MlyValue.rvb rvb1,
rvb1left,_))::rest671) => let val result=MlyValue.rvb(fn _ => let val 
rvb1=rvb1 ()
val rvb2=rvb2 ()
 in (rvb1 @ rvb2) end
)
 in (LrTable.NT 35,(result,rvb1left,rvb2right),rest671) end
| (124,(_,(MlyValue.exp exp1,_,expright as exp1right))::_::(_,(
MlyValue.constraint constraint1,_,_))::(_,(MlyValue.id id1,idleft,
idright))::(_,(_,LAZY1left,_))::rest671) => let val result=
MlyValue.rvb(fn _ => let val id as id1=id1 ()
val constraint as constraint1=constraint1 ()
val exp as exp1=exp1 ()
 in (
let val (v,f) = var'n'fix id
                           in [MarkRvb(Rvb{var=v,fixity=SOME(f,(idleft,idright)),
                                           resultty=constraint,
                                           exp=exp,lazyp=true},
                                       (idleft,expright))]
                           end
) end
)
 in (LrTable.NT 35,(result,LAZY1left,exp1right),rest671) end
| (125,(_,(MlyValue.exp exp1,_,expright as exp1right))::_::(_,(
MlyValue.constraint constraint1,_,_))::(_,(MlyValue.id id1,_,_))::(_,(
_,OPleft,_))::(_,(_,LAZY1left,_))::rest671) => let val result=
MlyValue.rvb(fn _ => let val id as id1=id1 ()
val constraint as constraint1=constraint1 ()
val exp as exp1=exp1 ()
 in (
[MarkRvb(Rvb{var=varSymbol id,fixity=NONE,
                                        resultty=constraint,
                                        exp=exp,lazyp=true},
				    (OPleft,expright))]
) end
)
 in (LrTable.NT 35,(result,LAZY1left,exp1right),rest671) end
| (126,(_,(MlyValue.clause clause1,clause1left,clause1right))::rest671
) => let val result=MlyValue.fb'(fn _ => let val clause as clause1=
clause1 ()
 in ([clause]) end
)
 in (LrTable.NT 36,(result,clause1left,clause1right),rest671) end
| (127,(_,(MlyValue.fb' fb'1,_,fb'1right))::_::(_,(MlyValue.clause 
clause1,clause1left,_))::rest671) => let val result=MlyValue.fb'(fn _
 => let val clause as clause1=clause1 ()
val fb' as fb'1=fb'1 ()
 in (clause :: fb') end
)
 in (LrTable.NT 36,(result,clause1left,fb'1right),rest671) end
| (128,(_,(MlyValue.fb' fb'1,fb'left as fb'1left,fb'right as fb'1right
))::rest671) => let val result=MlyValue.fb(fn _ => let val fb' as fb'1
=fb'1 ()
 in ([MarkFb(Fb(fb',false), (fb'left,fb'right))]) end
)
 in (LrTable.NT 37,(result,fb'1left,fb'1right),rest671) end
| (129,(_,(MlyValue.fb' fb'1,fb'left,fb'right as fb'1right))::(_,(_,
LAZY1left,_))::rest671) => let val result=MlyValue.fb(fn _ => let val 
fb' as fb'1=fb'1 ()
 in ([MarkFb(Fb(fb',true), (fb'left,fb'right))]) end
)
 in (LrTable.NT 37,(result,LAZY1left,fb'1right),rest671) end
| (130,(_,(MlyValue.fb fb1,_,fb1right))::_::(_,(MlyValue.fb' fb'1,
fb'left as fb'1left,fb'right))::rest671) => let val result=MlyValue.fb
(fn _ => let val fb' as fb'1=fb'1 ()
val fb as fb1=fb1 ()
 in (MarkFb(Fb(fb',false), (fb'left,fb'right)) :: fb) end
)
 in (LrTable.NT 37,(result,fb'1left,fb1right),rest671) end
| (131,(_,(MlyValue.fb fb1,_,fb1right))::_::(_,(MlyValue.fb' fb'1,
fb'left,fb'right))::(_,(_,LAZY1left,_))::rest671) => let val result=
MlyValue.fb(fn _ => let val fb' as fb'1=fb'1 ()
val fb as fb1=fb1 ()
 in (MarkFb(Fb(fb',true), (fb'left,fb'right)) :: fb) end
)
 in (LrTable.NT 37,(result,LAZY1left,fb1right),rest671) end
| (132,(_,(MlyValue.apat apat1,apat1left,apat1right))::rest671) => 
let val result=MlyValue.apats(fn _ => let val apat as apat1=apat1 ()
 in ([apat]) end
)
 in (LrTable.NT 38,(result,apat1left,apat1right),rest671) end
| (133,(_,(MlyValue.apats apats1,_,apats1right))::(_,(MlyValue.apat 
apat1,apat1left,_))::rest671) => let val result=MlyValue.apats(fn _
 => let val apat as apat1=apat1 ()
val apats as apats1=apats1 ()
 in (apat :: apats) end
)
 in (LrTable.NT 38,(result,apat1left,apats1right),rest671) end
| (134,(_,(MlyValue.exp exp1,expleft,expright as exp1right))::_::(_,(
MlyValue.constraint constraint1,_,_))::(_,(MlyValue.apats apats1,
apats1left,_))::rest671) => let val result=MlyValue.clause(fn _ => 
let val apats as apats1=apats1 ()
val constraint as constraint1=constraint1 ()
val exp as exp1=exp1 ()
 in (
Clause{pats=apats,
			resultty=constraint,
			exp=markexp(exp,expleft,expright)}
) end
)
 in (LrTable.NT 39,(result,apats1left,exp1right),rest671) end
| (135,(_,(MlyValue.ty ty1,tyleft,tyright as ty1right))::_::(_,(
MlyValue.ID ID1,_,_))::(_,(MlyValue.tyvars tyvars1,tyvars1left,_))::
rest671) => let val result=MlyValue.tb(fn _ => let val tyvars as 
tyvars1=tyvars1 ()
val ID as ID1=ID1 ()
val ty as ty1=ty1 ()
 in (
[MarkTb(
				   Tb{tyvars=tyvars,tyc=tycSymbol ID,def=ty},
				   (tyleft,tyright))]
) end
)
 in (LrTable.NT 40,(result,tyvars1left,ty1right),rest671) end
| (136,(_,(MlyValue.tb tb2,_,tb2right))::_::(_,(MlyValue.tb tb1,
tb1left,_))::rest671) => let val result=MlyValue.tb(fn _ => let val 
tb1=tb1 ()
val tb2=tb2 ()
 in (tb1 @ tb2) end
)
 in (LrTable.NT 40,(result,tb1left,tb2right),rest671) end
| (137,(_,(MlyValue.TYVAR TYVAR1,TYVARleft as TYVAR1left,TYVARright
 as TYVAR1right))::rest671) => let val result=MlyValue.tyvars(fn _ => 
let val TYVAR as TYVAR1=TYVAR1 ()
 in ([MarkTyv(Tyv(tyvSymbol TYVAR),
					 (TYVARleft,TYVARright))])
 end
)
 in (LrTable.NT 41,(result,TYVAR1left,TYVAR1right),rest671) end
| (138,(_,(_,_,RPAREN1right))::(_,(MlyValue.tyvar_pc tyvar_pc1,_,_))::
(_,(_,LPAREN1left,_))::rest671) => let val result=MlyValue.tyvars(fn _
 => let val tyvar_pc as tyvar_pc1=tyvar_pc1 ()
 in (tyvar_pc) end
)
 in (LrTable.NT 41,(result,LPAREN1left,RPAREN1right),rest671) end
| (139,rest671) => let val result=MlyValue.tyvars(fn _ => (nil))
 in (LrTable.NT 41,(result,defaultPos,defaultPos),rest671) end
| (140,(_,(MlyValue.TYVAR TYVAR1,TYVARleft as TYVAR1left,TYVARright
 as TYVAR1right))::rest671) => let val result=MlyValue.tyvarseq(fn _
 => let val TYVAR as TYVAR1=TYVAR1 ()
 in ([MarkTyv(Tyv(tyvSymbol TYVAR),
					 (TYVARleft,TYVARright))])
 end
)
 in (LrTable.NT 42,(result,TYVAR1left,TYVAR1right),rest671) end
| (141,(_,(_,_,RPAREN1right))::(_,(MlyValue.tyvar_pc tyvar_pc1,_,_))::
(_,(_,LPAREN1left,_))::rest671) => let val result=MlyValue.tyvarseq(
fn _ => let val tyvar_pc as tyvar_pc1=tyvar_pc1 ()
 in (tyvar_pc) end
)
 in (LrTable.NT 42,(result,LPAREN1left,RPAREN1right),rest671) end
| (142,(_,(MlyValue.TYVAR TYVAR1,TYVARleft as TYVAR1left,TYVARright
 as TYVAR1right))::rest671) => let val result=MlyValue.tyvar_pc(fn _
 => let val TYVAR as TYVAR1=TYVAR1 ()
 in ([MarkTyv(Tyv(tyvSymbol TYVAR), (TYVARleft,TYVARright))]) end
)
 in (LrTable.NT 43,(result,TYVAR1left,TYVAR1right),rest671) end
| (143,(_,(MlyValue.tyvar_pc tyvar_pc1,_,tyvar_pc1right))::_::(_,(
MlyValue.TYVAR TYVAR1,TYVARleft as TYVAR1left,TYVARright))::rest671)
 => let val result=MlyValue.tyvar_pc(fn _ => let val TYVAR as TYVAR1=
TYVAR1 ()
val tyvar_pc as tyvar_pc1=tyvar_pc1 ()
 in (
MarkTyv(Tyv(tyvSymbol TYVAR),(TYVARleft,TYVARright))
		 :: tyvar_pc)
 end
)
 in (LrTable.NT 43,(result,TYVAR1left,tyvar_pc1right),rest671) end
| (144,(_,(MlyValue.db db2,_,db2right))::_::(_,(MlyValue.db db1,
db1left,_))::rest671) => let val result=MlyValue.db(fn _ => let val 
db1=db1 ()
val db2=db2 ()
 in (db1 @ db2) end
)
 in (LrTable.NT 44,(result,db1left,db2right),rest671) end
| (145,(_,(MlyValue.dbrhs dbrhs1,_,dbrhs1right))::_::(_,(
MlyValue.ident ident1,_,_))::(_,(MlyValue.tyvars tyvars1,tyvars1left,_
))::rest671) => let val result=MlyValue.db(fn _ => let val tyvars as 
tyvars1=tyvars1 ()
val ident as ident1=ident1 ()
val dbrhs as dbrhs1=dbrhs1 ()
 in (
[Db{tyc=tycSymbol ident,
					     tyvars=tyvars,
					     rhs=dbrhs,lazyp=false}]
) end
)
 in (LrTable.NT 44,(result,tyvars1left,dbrhs1right),rest671) end
| (146,(_,(MlyValue.dbrhs dbrhs1,_,dbrhs1right))::_::(_,(
MlyValue.ident ident1,_,_))::(_,(MlyValue.tyvars tyvars1,_,_))::(_,(_,
LAZY1left,_))::rest671) => let val result=MlyValue.db(fn _ => let val 
tyvars as tyvars1=tyvars1 ()
val ident as ident1=ident1 ()
val dbrhs as dbrhs1=dbrhs1 ()
 in (
[Db{tyc=tycSymbol ident,
                                             tyvars=tyvars,
                                             rhs=dbrhs,lazyp=true}]
) end
)
 in (LrTable.NT 44,(result,LAZY1left,dbrhs1right),rest671) end
| (147,(_,(MlyValue.constrs constrs1,constrs1left,constrs1right))::
rest671) => let val result=MlyValue.dbrhs(fn _ => let val constrs as 
constrs1=constrs1 ()
 in (Constrs constrs) end
)
 in (LrTable.NT 45,(result,constrs1left,constrs1right),rest671) end
| (148,(_,(MlyValue.tycon tycon1,_,tycon1right))::(_,(_,DATATYPE1left,
_))::rest671) => let val result=MlyValue.dbrhs(fn _ => let val tycon
 as tycon1=tycon1 ()
 in (Repl tycon) end
)
 in (LrTable.NT 45,(result,DATATYPE1left,tycon1right),rest671) end
| (149,(_,(MlyValue.constr constr1,constr1left,constr1right))::rest671
) => let val result=MlyValue.constrs(fn _ => let val constr as constr1
=constr1 ()
 in ([constr]) end
)
 in (LrTable.NT 46,(result,constr1left,constr1right),rest671) end
| (150,(_,(MlyValue.constrs constrs1,_,constrs1right))::_::(_,(
MlyValue.constr constr1,constr1left,_))::rest671) => let val result=
MlyValue.constrs(fn _ => let val constr as constr1=constr1 ()
val constrs as constrs1=constrs1 ()
 in (constr :: constrs) end
)
 in (LrTable.NT 46,(result,constr1left,constrs1right),rest671) end
| (151,(_,(MlyValue.ident ident1,_,ident1right))::(_,(MlyValue.op_op 
op_op1,op_op1left,_))::rest671) => let val result=MlyValue.constr(fn _
 => let val op_op1=op_op1 ()
val ident as ident1=ident1 ()
 in (varSymbol ident, NONE) end
)
 in (LrTable.NT 47,(result,op_op1left,ident1right),rest671) end
| (152,(_,(MlyValue.ty ty1,_,ty1right))::_::(_,(MlyValue.ident ident1,
_,_))::(_,(MlyValue.op_op op_op1,op_op1left,_))::rest671) => let val 
result=MlyValue.constr(fn _ => let val op_op1=op_op1 ()
val ident as ident1=ident1 ()
val ty as ty1=ty1 ()
 in (varSymbol ident, SOME ty) end
)
 in (LrTable.NT 47,(result,op_op1left,ty1right),rest671) end
| (153,(_,(MlyValue.ident ident1,_,ident1right))::(_,(MlyValue.op_op 
op_op1,op_op1left,_))::rest671) => let val result=MlyValue.eb(fn _ => 
let val op_op1=op_op1 ()
val ident as ident1=ident1 ()
 in ([EbGen{exn=(varSymbol ident),etype=NONE}]) end
)
 in (LrTable.NT 48,(result,op_op1left,ident1right),rest671) end
| (154,(_,(MlyValue.ty ty1,_,ty1right))::_::(_,(MlyValue.ident ident1,
_,_))::(_,(MlyValue.op_op op_op1,op_op1left,_))::rest671) => let val 
result=MlyValue.eb(fn _ => let val op_op1=op_op1 ()
val ident as ident1=ident1 ()
val ty as ty1=ty1 ()
 in ([EbGen{exn=(varSymbol ident),etype=SOME ty}]) end
)
 in (LrTable.NT 48,(result,op_op1left,ty1right),rest671) end
| (155,(_,(MlyValue.qid qid1,_,qid1right))::_::(_,(MlyValue.ident 
ident1,_,_))::(_,(MlyValue.op_op op_op1,op_op1left,_))::rest671) => 
let val result=MlyValue.eb(fn _ => let val op_op1=op_op1 ()
val ident as ident1=ident1 ()
val qid as qid1=qid1 ()
 in ([EbDef{exn=varSymbol ident,
					edef=qid varSymbol}]) end
)
 in (LrTable.NT 48,(result,op_op1left,qid1right),rest671) end
| (156,(_,(MlyValue.eb eb2,_,eb2right))::_::(_,(MlyValue.eb eb1,
eb1left,_))::rest671) => let val result=MlyValue.eb(fn _ => let val 
eb1=eb1 ()
val eb2=eb2 ()
 in (eb1 @ eb2) end
)
 in (LrTable.NT 48,(result,eb1left,eb2right),rest671) end
| (157,(_,(MlyValue.qid qid1,qid1left,qid1right))::rest671) => let 
val result=MlyValue.qid_p(fn _ => let val qid as qid1=qid1 ()
 in ([qid strSymbol]) end
)
 in (LrTable.NT 49,(result,qid1left,qid1right),rest671) end
| (158,(_,(MlyValue.qid_p qid_p1,_,qid_p1right))::(_,(MlyValue.qid 
qid1,qid1left,_))::rest671) => let val result=MlyValue.qid_p(fn _ => 
let val qid as qid1=qid1 ()
val qid_p as qid_p1=qid_p1 ()
 in (qid strSymbol :: qid_p) end
)
 in (LrTable.NT 49,(result,qid1left,qid_p1right),rest671) end
| (159,(_,(_,INFIX1left,INFIX1right))::rest671) => let val result=
MlyValue.fixity(fn _ => (infixleft 0))
 in (LrTable.NT 50,(result,INFIX1left,INFIX1right),rest671) end
| (160,(_,(MlyValue.int int1,intleft,intright as int1right))::(_,(_,
INFIX1left,_))::rest671) => let val result=MlyValue.fixity(fn _ => 
let val int as int1=int1 ()
 in (infixleft (checkFix(IntInf.toInt int,error(intleft,intright))))
 end
)
 in (LrTable.NT 50,(result,INFIX1left,int1right),rest671) end
| (161,(_,(_,INFIXR1left,INFIXR1right))::rest671) => let val result=
MlyValue.fixity(fn _ => (infixright 0))
 in (LrTable.NT 50,(result,INFIXR1left,INFIXR1right),rest671) end
| (162,(_,(MlyValue.int int1,intleft,intright as int1right))::(_,(_,
INFIXR1left,_))::rest671) => let val result=MlyValue.fixity(fn _ => 
let val int as int1=int1 ()
 in (infixright (checkFix(IntInf.toInt int,error(intleft,intright))))
 end
)
 in (LrTable.NT 50,(result,INFIXR1left,int1right),rest671) end
| (163,(_,(_,NONFIX1left,NONFIX1right))::rest671) => let val result=
MlyValue.fixity(fn _ => (NONfix))
 in (LrTable.NT 50,(result,NONFIX1left,NONFIX1right),rest671) end
| (164,(_,(MlyValue.vb vb1,_,vb1right))::(_,(_,VAL1left,_))::rest671)
 => let val result=MlyValue.ldec(fn _ => let val vb as vb1=vb1 ()
 in (ValDec(vb,nil)) end
)
 in (LrTable.NT 51,(result,VAL1left,vb1right),rest671) end
| (165,(_,(MlyValue.vb vb1,_,vb1right))::(_,(MlyValue.tyvarseq 
tyvarseq1,_,_))::(_,(_,VAL1left,_))::rest671) => let val result=
MlyValue.ldec(fn _ => let val tyvarseq as tyvarseq1=tyvarseq1 ()
val vb as vb1=vb1 ()
 in (ValDec(vb,tyvarseq)) end
)
 in (LrTable.NT 51,(result,VAL1left,vb1right),rest671) end
| (166,(_,(MlyValue.rvb rvb1,_,rvb1right))::_::(_,(_,VAL1left,_))::
rest671) => let val result=MlyValue.ldec(fn _ => let val rvb as rvb1=
rvb1 ()
 in (ValrecDec(rvb,nil)) end
)
 in (LrTable.NT 51,(result,VAL1left,rvb1right),rest671) end
| (167,(_,(MlyValue.rvb rvb1,_,rvb1right))::(_,(MlyValue.tyvarseq 
tyvarseq1,_,_))::_::(_,(_,VAL1left,_))::rest671) => let val result=
MlyValue.ldec(fn _ => let val tyvarseq as tyvarseq1=tyvarseq1 ()
val rvb as rvb1=rvb1 ()
 in (ValrecDec(rvb,tyvarseq)) end
)
 in (LrTable.NT 51,(result,VAL1left,rvb1right),rest671) end
| (168,(_,(MlyValue.fb fb1,_,fb1right))::(_,(_,FUN1left,_))::rest671)
 => let val result=MlyValue.ldec(fn _ => let val fb as fb1=fb1 ()
 in (FunDec(fb,nil)) end
)
 in (LrTable.NT 51,(result,FUN1left,fb1right),rest671) end
| (169,(_,(MlyValue.fb fb1,_,fb1right))::(_,(MlyValue.tyvarseq 
tyvarseq1,_,_))::(_,(_,FUN1left,_))::rest671) => let val result=
MlyValue.ldec(fn _ => let val tyvarseq as tyvarseq1=tyvarseq1 ()
val fb as fb1=fb1 ()
 in (FunDec(fb,tyvarseq)) end
)
 in (LrTable.NT 51,(result,FUN1left,fb1right),rest671) end
| (170,(_,(MlyValue.tb tb1,_,tb1right))::(_,(_,TYPE1left,_))::rest671)
 => let val result=MlyValue.ldec(fn _ => let val tb as tb1=tb1 ()
 in (TypeDec tb) end
)
 in (LrTable.NT 51,(result,TYPE1left,tb1right),rest671) end
| (171,(_,(MlyValue.db db1,_,db1right))::(_,(_,DATATYPE1left,_))::
rest671) => let val result=MlyValue.ldec(fn _ => let val db as db1=db1
 ()
 in (DatatypeDec{datatycs=db,withtycs=[]}) end
)
 in (LrTable.NT 51,(result,DATATYPE1left,db1right),rest671) end
| (172,(_,(MlyValue.tb tb1,_,tb1right))::_::(_,(MlyValue.db db1,_,_))
::(_,(_,DATATYPE1left,_))::rest671) => let val result=MlyValue.ldec(
fn _ => let val db as db1=db1 ()
val tb as tb1=tb1 ()
 in (DatatypeDec{datatycs=db,withtycs=tb}) end
)
 in (LrTable.NT 51,(result,DATATYPE1left,tb1right),rest671) end
| (173,(_,(_,_,END1right))::(_,(MlyValue.ldecs ldecs1,_,_))::_::(_,(
MlyValue.db db1,_,_))::(_,(_,ABSTYPE1left,_))::rest671) => let val 
result=MlyValue.ldec(fn _ => let val db as db1=db1 ()
val ldecs as ldecs1=ldecs1 ()
 in (AbstypeDec{abstycs=db,withtycs=[],
						body=ldecs}) end
)
 in (LrTable.NT 51,(result,ABSTYPE1left,END1right),rest671) end
| (174,(_,(_,_,END1right))::(_,(MlyValue.ldecs ldecs1,_,_))::_::(_,(
MlyValue.tb tb1,_,_))::_::(_,(MlyValue.db db1,_,_))::(_,(_,
ABSTYPE1left,_))::rest671) => let val result=MlyValue.ldec(fn _ => 
let val db as db1=db1 ()
val tb as tb1=tb1 ()
val ldecs as ldecs1=ldecs1 ()
 in (
AbstypeDec{abstycs=db,
							     withtycs=tb,
							     body=ldecs}
) end
)
 in (LrTable.NT 51,(result,ABSTYPE1left,END1right),rest671) end
| (175,(_,(MlyValue.eb eb1,_,eb1right))::(_,(_,EXCEPTION1left,_))::
rest671) => let val result=MlyValue.ldec(fn _ => let val eb as eb1=eb1
 ()
 in (ExceptionDec eb) end
)
 in (LrTable.NT 51,(result,EXCEPTION1left,eb1right),rest671) end
| (176,(_,(MlyValue.qid_p qid_p1,_,qid_p1right))::(_,(_,OPEN1left,_))
::rest671) => let val result=MlyValue.ldec(fn _ => let val qid_p as 
qid_p1=qid_p1 ()
 in (OpenDec qid_p) end
)
 in (LrTable.NT 51,(result,OPEN1left,qid_p1right),rest671) end
| (177,(_,(MlyValue.ops ops1,_,ops1right))::(_,(MlyValue.fixity 
fixity1,fixity1left,_))::rest671) => let val result=MlyValue.ldec(fn _
 => let val fixity as fixity1=fixity1 ()
val ops as ops1=ops1 ()
 in (FixDec{fixity=fixity, ops=ops}) end
)
 in (LrTable.NT 51,(result,fixity1left,ops1right),rest671) end
| (178,(_,(MlyValue.exp_pa exp_pa1,_,exp_pa1right))::_::(_,(
MlyValue.ty ty1,_,_))::_::(_,(MlyValue.ident ident1,_,_))::(_,(_,
OVERLOAD1left,_))::rest671) => let val result=MlyValue.ldec(fn _ => 
let val ident as ident1=ident1 ()
val ty as ty1=ty1 ()
val exp_pa as exp_pa1=exp_pa1 ()
 in (OvldDec(varSymbol ident,ty,exp_pa)) end
)
 in (LrTable.NT 51,(result,OVERLOAD1left,exp_pa1right),rest671) end
| (179,(_,(MlyValue.exp exp1,exp1left,exp1right))::rest671) => let 
val result=MlyValue.exp_pa(fn _ => let val exp as exp1=exp1 ()
 in ([exp]) end
)
 in (LrTable.NT 52,(result,exp1left,exp1right),rest671) end
| (180,(_,(MlyValue.exp_pa exp_pa1,_,exp_pa1right))::_::(_,(
MlyValue.exp exp1,exp1left,_))::rest671) => let val result=
MlyValue.exp_pa(fn _ => let val exp as exp1=exp1 ()
val exp_pa as exp_pa1=exp_pa1 ()
 in (exp :: exp_pa) end
)
 in (LrTable.NT 52,(result,exp1left,exp_pa1right),rest671) end
| (181,rest671) => let val result=MlyValue.ldecs(fn _ => (SeqDec nil))
 in (LrTable.NT 53,(result,defaultPos,defaultPos),rest671) end
| (182,(_,(MlyValue.ldecs ldecs1,_,ldecs1right))::(_,(MlyValue.ldec 
ldec1,ldecleft as ldec1left,ldecright))::rest671) => let val result=
MlyValue.ldecs(fn _ => let val ldec as ldec1=ldec1 ()
val ldecs as ldecs1=ldecs1 ()
 in (makeSEQdec 
				 (markdec(ldec,ldecleft,ldecright), ldecs)) end
)
 in (LrTable.NT 53,(result,ldec1left,ldecs1right),rest671) end
| (183,(_,(MlyValue.ldecs ldecs1,_,ldecs1right))::(_,(_,SEMICOLON1left
,_))::rest671) => let val result=MlyValue.ldecs(fn _ => let val ldecs
 as ldecs1=ldecs1 ()
 in (ldecs) end
)
 in (LrTable.NT 53,(result,SEMICOLON1left,ldecs1right),rest671) end
| (184,(_,(MlyValue.ldecs ldecs3,_,ldecs3right))::(_,(_,_,ENDright))::
(_,(MlyValue.ldecs ldecs2,ldecs2left,ldecs2right))::_::(_,(
MlyValue.ldecs ldecs1,ldecs1left,ldecs1right))::(_,(_,LOCALleft as 
LOCAL1left,_))::rest671) => let val result=MlyValue.ldecs(fn _ => let 
val ldecs1=ldecs1 ()
val ldecs2=ldecs2 ()
val ldecs3=ldecs3 ()
 in (
makeSEQdec
 		   (markdec(LocalDec(markdec(ldecs1,ldecs1left,ldecs1right),
				     markdec(ldecs2,ldecs2left,ldecs2right)),
			    LOCALleft,ENDright),
 	            ldecs3)
) end
)
 in (LrTable.NT 53,(result,LOCAL1left,ldecs3right),rest671) end
| (185,(_,(MlyValue.ident ident1,ident1left,ident1right))::rest671)
 => let val result=MlyValue.ops(fn _ => let val ident as ident1=ident1
 ()
 in ([fixSymbol ident]) end
)
 in (LrTable.NT 54,(result,ident1left,ident1right),rest671) end
| (186,(_,(MlyValue.ops ops1,_,ops1right))::(_,(MlyValue.ident ident1,
ident1left,_))::rest671) => let val result=MlyValue.ops(fn _ => let 
val ident as ident1=ident1 ()
val ops as ops1=ops1 ()
 in (fixSymbol ident :: ops) end
)
 in (LrTable.NT 54,(result,ident1left,ops1right),rest671) end
| (187,rest671) => let val result=MlyValue.spec_s(fn _ => ([]))
 in (LrTable.NT 55,(result,defaultPos,defaultPos),rest671) end
| (188,(_,(MlyValue.spec_s spec_s1,_,spec_s1right))::(_,(MlyValue.spec
 spec1,spec1left,_))::rest671) => let val result=MlyValue.spec_s(fn _
 => let val spec as spec1=spec1 ()
val spec_s as spec_s1=spec_s1 ()
 in (spec @ spec_s) end
)
 in (LrTable.NT 55,(result,spec1left,spec_s1right),rest671) end
| (189,(_,(MlyValue.spec_s spec_s1,_,spec_s1right))::(_,(_,
SEMICOLON1left,_))::rest671) => let val result=MlyValue.spec_s(fn _
 => let val spec_s as spec_s1=spec_s1 ()
 in (spec_s) end
)
 in (LrTable.NT 55,(result,SEMICOLON1left,spec_s1right),rest671) end
| (190,(_,(MlyValue.strspec strspec1,_,strspec1right))::(_,(_,
STRUCTURE1left,_))::rest671) => let val result=MlyValue.spec(fn _ => 
let val strspec as strspec1=strspec1 ()
 in ([StrSpec strspec]) end
)
 in (LrTable.NT 56,(result,STRUCTURE1left,strspec1right),rest671) end
| (191,(_,(MlyValue.fctspec fctspec1,_,fctspec1right))::(_,(_,
FUNCTOR1left,_))::rest671) => let val result=MlyValue.spec(fn _ => 
let val fctspec as fctspec1=fctspec1 ()
 in ([FctSpec fctspec]) end
)
 in (LrTable.NT 56,(result,FUNCTOR1left,fctspec1right),rest671) end
| (192,(_,(MlyValue.db db1,_,db1right))::(_,(_,DATATYPE1left,_))::
rest671) => let val result=MlyValue.spec(fn _ => let val db as db1=db1
 ()
 in ([DataSpec{datatycs=db,withtycs=nil}]) end
)
 in (LrTable.NT 56,(result,DATATYPE1left,db1right),rest671) end
| (193,(_,(MlyValue.tb tb1,_,tb1right))::_::(_,(MlyValue.db db1,_,_))
::(_,(_,DATATYPE1left,_))::rest671) => let val result=MlyValue.spec(
fn _ => let val db as db1=db1 ()
val tb as tb1=tb1 ()
 in ([DataSpec{datatycs=db,withtycs=tb}]) end
)
 in (LrTable.NT 56,(result,DATATYPE1left,tb1right),rest671) end
| (194,(_,(MlyValue.tyspec tyspec1,_,tyspec1right))::(_,(_,TYPE1left,_
))::rest671) => let val result=MlyValue.spec(fn _ => let val tyspec
 as tyspec1=tyspec1 ()
 in ([TycSpec(tyspec,false)]) end
)
 in (LrTable.NT 56,(result,TYPE1left,tyspec1right),rest671) end
| (195,(_,(MlyValue.tyspec tyspec1,_,tyspec1right))::(_,(_,EQTYPE1left
,_))::rest671) => let val result=MlyValue.spec(fn _ => let val tyspec
 as tyspec1=tyspec1 ()
 in ([TycSpec(tyspec,true)]) end
)
 in (LrTable.NT 56,(result,EQTYPE1left,tyspec1right),rest671) end
| (196,(_,(MlyValue.valspec valspec1,_,valspec1right))::(_,(_,VAL1left
,_))::rest671) => let val result=MlyValue.spec(fn _ => let val valspec
 as valspec1=valspec1 ()
 in ([ValSpec valspec]) end
)
 in (LrTable.NT 56,(result,VAL1left,valspec1right),rest671) end
| (197,(_,(MlyValue.exnspec exnspec1,_,exnspec1right))::(_,(_,
EXCEPTION1left,_))::rest671) => let val result=MlyValue.spec(fn _ => 
let val exnspec as exnspec1=exnspec1 ()
 in ([ExceSpec exnspec]) end
)
 in (LrTable.NT 56,(result,EXCEPTION1left,exnspec1right),rest671) end
| (198,(_,(MlyValue.sharespec sharespec1,_,sharespec1right))::(_,(_,
SHARING1left,_))::rest671) => let val result=MlyValue.spec(fn _ => 
let val sharespec as sharespec1=sharespec1 ()
 in (sharespec) end
)
 in (LrTable.NT 56,(result,SHARING1left,sharespec1right),rest671) end
| (199,(_,(MlyValue.sign sign1,_,sign1right))::(_,(_,INCLUDE1left,_))
::rest671) => let val result=MlyValue.spec(fn _ => let val sign as 
sign1=sign1 ()
 in ([IncludeSpec sign]) end
)
 in (LrTable.NT 56,(result,INCLUDE1left,sign1right),rest671) end
| (200,(_,(MlyValue.idents idents1,_,idents1right))::(_,(
MlyValue.ident ident1,_,_))::(_,(_,INCLUDE1left,_))::rest671) => let 
val result=MlyValue.spec(fn _ => let val ident as ident1=ident1 ()
val idents as idents1=idents1 ()
 in (IncludeSpec(VarSig(FastSymbol.sigSymbol ident))
				:: idents)
 end
)
 in (LrTable.NT 56,(result,INCLUDE1left,idents1right),rest671) end
| (201,(_,(MlyValue.ident ident1,ident1left,ident1right))::rest671)
 => let val result=MlyValue.idents(fn _ => let val ident as ident1=
ident1 ()
 in ([IncludeSpec(VarSig(FastSymbol.sigSymbol ident))]) end
)
 in (LrTable.NT 57,(result,ident1left,ident1right),rest671) end
| (202,(_,(MlyValue.idents idents1,_,idents1right))::(_,(
MlyValue.ident ident1,ident1left,_))::rest671) => let val result=
MlyValue.idents(fn _ => let val ident as ident1=ident1 ()
val idents as idents1=idents1 ()
 in (IncludeSpec(VarSig(FastSymbol.sigSymbol ident))
				 :: idents)
 end
)
 in (LrTable.NT 57,(result,ident1left,idents1right),rest671) end
| (203,(_,(MlyValue.strspec strspec2,_,strspec2right))::_::(_,(
MlyValue.strspec strspec1,strspec1left,_))::rest671) => let val result
=MlyValue.strspec(fn _ => let val strspec1=strspec1 ()
val strspec2=strspec2 ()
 in (strspec1 @ strspec2) end
)
 in (LrTable.NT 58,(result,strspec1left,strspec2right),rest671) end
| (204,(_,(MlyValue.sign sign1,_,sign1right))::_::(_,(MlyValue.ident 
ident1,ident1left,_))::rest671) => let val result=MlyValue.strspec(fn 
_ => let val ident as ident1=ident1 ()
val sign as sign1=sign1 ()
 in ([(strSymbol ident, sign, NONE)]) end
)
 in (LrTable.NT 58,(result,ident1left,sign1right),rest671) end
| (205,(_,(MlyValue.qid qid1,_,qid1right))::_::(_,(MlyValue.sign sign1
,_,_))::_::(_,(MlyValue.ident ident1,ident1left,_))::rest671) => let 
val result=MlyValue.strspec(fn _ => let val ident as ident1=ident1 ()
val sign as sign1=sign1 ()
val qid as qid1=qid1 ()
 in ([(strSymbol ident, sign, SOME(qid strSymbol))]) end
)
 in (LrTable.NT 58,(result,ident1left,qid1right),rest671) end
| (206,(_,(MlyValue.fctspec fctspec2,_,fctspec2right))::_::(_,(
MlyValue.fctspec fctspec1,fctspec1left,_))::rest671) => let val result
=MlyValue.fctspec(fn _ => let val fctspec1=fctspec1 ()
val fctspec2=fctspec2 ()
 in (fctspec1 @ fctspec2) end
)
 in (LrTable.NT 59,(result,fctspec1left,fctspec2right),rest671) end
| (207,(_,(MlyValue.fsig fsig1,_,fsig1right))::(_,(MlyValue.ident 
ident1,ident1left,_))::rest671) => let val result=MlyValue.fctspec(fn 
_ => let val ident as ident1=ident1 ()
val fsig as fsig1=fsig1 ()
 in ([(fctSymbol ident, fsig)]) end
)
 in (LrTable.NT 59,(result,ident1left,fsig1right),rest671) end
| (208,(_,(MlyValue.tyspec tyspec2,_,tyspec2right))::_::(_,(
MlyValue.tyspec tyspec1,tyspec1left,_))::rest671) => let val result=
MlyValue.tyspec(fn _ => let val tyspec1=tyspec1 ()
val tyspec2=tyspec2 ()
 in (tyspec1 @ tyspec2) end
)
 in (LrTable.NT 60,(result,tyspec1left,tyspec2right),rest671) end
| (209,(_,(MlyValue.ID ID1,_,ID1right))::(_,(MlyValue.tyvars tyvars1,
tyvars1left,_))::rest671) => let val result=MlyValue.tyspec(fn _ => 
let val tyvars as tyvars1=tyvars1 ()
val ID as ID1=ID1 ()
 in ([(tycSymbol ID,tyvars,NONE)]) end
)
 in (LrTable.NT 60,(result,tyvars1left,ID1right),rest671) end
| (210,(_,(MlyValue.ty ty1,_,ty1right))::_::(_,(MlyValue.ID ID1,_,_))
::(_,(MlyValue.tyvars tyvars1,tyvars1left,_))::rest671) => let val 
result=MlyValue.tyspec(fn _ => let val tyvars as tyvars1=tyvars1 ()
val ID as ID1=ID1 ()
val ty as ty1=ty1 ()
 in ([(tycSymbol ID,tyvars,SOME ty)]) end
)
 in (LrTable.NT 60,(result,tyvars1left,ty1right),rest671) end
| (211,(_,(MlyValue.valspec valspec2,_,valspec2right))::_::(_,(
MlyValue.valspec valspec1,valspec1left,_))::rest671) => let val result
=MlyValue.valspec(fn _ => let val valspec1=valspec1 ()
val valspec2=valspec2 ()
 in (valspec1 @ valspec2) end
)
 in (LrTable.NT 61,(result,valspec1left,valspec2right),rest671) end
| (212,(_,(MlyValue.ty ty1,_,ty1right))::_::(_,(MlyValue.ident ident1,
_,_))::(_,(MlyValue.op_op op_op1,op_op1left,_))::rest671) => let val 
result=MlyValue.valspec(fn _ => let val op_op1=op_op1 ()
val ident as ident1=ident1 ()
val ty as ty1=ty1 ()
 in ([(varSymbol ident,ty)]) end
)
 in (LrTable.NT 61,(result,op_op1left,ty1right),rest671) end
| (213,(_,(MlyValue.exnspec exnspec2,_,exnspec2right))::_::(_,(
MlyValue.exnspec exnspec1,exnspec1left,_))::rest671) => let val result
=MlyValue.exnspec(fn _ => let val exnspec1=exnspec1 ()
val exnspec2=exnspec2 ()
 in (exnspec1 @ exnspec2) end
)
 in (LrTable.NT 62,(result,exnspec1left,exnspec2right),rest671) end
| (214,(_,(MlyValue.ident ident1,ident1left,ident1right))::rest671)
 => let val result=MlyValue.exnspec(fn _ => let val ident as ident1=
ident1 ()
 in ([(varSymbol ident,NONE)]) end
)
 in (LrTable.NT 62,(result,ident1left,ident1right),rest671) end
| (215,(_,(MlyValue.ty ty1,_,ty1right))::_::(_,(MlyValue.ident ident1,
ident1left,_))::rest671) => let val result=MlyValue.exnspec(fn _ => 
let val ident as ident1=ident1 ()
val ty as ty1=ty1 ()
 in ([(varSymbol ident,SOME ty)]) end
)
 in (LrTable.NT 62,(result,ident1left,ty1right),rest671) end
| (216,(_,(MlyValue.sharespec sharespec2,_,sharespec2right))::_::(_,(
MlyValue.sharespec sharespec1,sharespec1left,_))::rest671) => let val 
result=MlyValue.sharespec(fn _ => let val sharespec1=sharespec1 ()
val sharespec2=sharespec2 ()
 in (sharespec1 @ sharespec2) end
)
 in (LrTable.NT 63,(result,sharespec1left,sharespec2right),rest671)
 end
| (217,(_,(MlyValue.patheqn patheqn1,patheqnleft,patheqnright as 
patheqn1right))::(_,(_,TYPE1left,_))::rest671) => let val result=
MlyValue.sharespec(fn _ => let val patheqn as patheqn1=patheqn1 ()
 in (
[MarkSpec (ShareTycSpec(patheqn tycSymbol),
				    (patheqnleft,patheqnright))]
) end
)
 in (LrTable.NT 63,(result,TYPE1left,patheqn1right),rest671) end
| (218,(_,(MlyValue.patheqn patheqn1,patheqnleft as patheqn1left,
patheqnright as patheqn1right))::rest671) => let val result=
MlyValue.sharespec(fn _ => let val patheqn as patheqn1=patheqn1 ()
 in (
[MarkSpec (ShareStrSpec (patheqn strSymbol),
				    (patheqnleft,patheqnright))]
) end
)
 in (LrTable.NT 63,(result,patheqn1left,patheqn1right),rest671) end
| (219,(_,(MlyValue.qid qid2,_,qid2right))::_::(_,(MlyValue.qid qid1,
qid1left,_))::rest671) => let val result=MlyValue.patheqn(fn _ => let 
val qid1=qid1 ()
val qid2=qid2 ()
 in (fn kind => [qid1 kind, qid2 kind]) end
)
 in (LrTable.NT 64,(result,qid1left,qid2right),rest671) end
| (220,(_,(MlyValue.patheqn patheqn1,_,patheqn1right))::_::(_,(
MlyValue.qid qid1,qid1left,_))::rest671) => let val result=
MlyValue.patheqn(fn _ => let val qid as qid1=qid1 ()
val patheqn as patheqn1=patheqn1 ()
 in (fn kind => qid kind :: patheqn kind) end
)
 in (LrTable.NT 64,(result,qid1left,patheqn1right),rest671) end
| (221,(_,(MlyValue.whspec whspec2,_,whspec2right))::_::(_,(
MlyValue.whspec whspec1,whspec1left,_))::rest671) => let val result=
MlyValue.whspec(fn _ => let val whspec1=whspec1 ()
val whspec2=whspec2 ()
 in (whspec1 @ whspec2) end
)
 in (LrTable.NT 65,(result,whspec1left,whspec2right),rest671) end
| (222,(_,(MlyValue.ty ty1,_,ty1right))::_::(_,(MlyValue.qid qid1,_,_)
)::(_,(MlyValue.tyvars tyvars1,_,_))::(_,(_,TYPE1left,_))::rest671)
 => let val result=MlyValue.whspec(fn _ => let val tyvars as tyvars1=
tyvars1 ()
val qid as qid1=qid1 ()
val ty as ty1=ty1 ()
 in ([WhType(qid tycSymbol,tyvars,ty)]) end
)
 in (LrTable.NT 65,(result,TYPE1left,ty1right),rest671) end
| (223,(_,(MlyValue.qid qid2,_,qid2right))::_::(_,(MlyValue.qid qid1,
qid1left,_))::rest671) => let val result=MlyValue.whspec(fn _ => let 
val qid1=qid1 ()
val qid2=qid2 ()
 in ([WhStruct(qid1 strSymbol,qid2 strSymbol)]) end
)
 in (LrTable.NT 65,(result,qid1left,qid2right),rest671) end
| (224,(_,(MlyValue.ident ident1,identleft as ident1left,identright
 as ident1right))::rest671) => let val result=MlyValue.sign(fn _ => 
let val ident as ident1=ident1 ()
 in (
MarkSig(VarSig (sigSymbol ident),
				         (identleft,identright))
) end
)
 in (LrTable.NT 66,(result,ident1left,ident1right),rest671) end
| (225,(_,(_,_,END1right))::(_,(MlyValue.spec_s spec_s1,spec_sleft,
spec_sright))::(_,(_,SIG1left,_))::rest671) => let val result=
MlyValue.sign(fn _ => let val spec_s as spec_s1=spec_s1 ()
 in (MarkSig(BaseSig(spec_s),(spec_sleft,spec_sright))) end
)
 in (LrTable.NT 66,(result,SIG1left,END1right),rest671) end
| (226,(_,(MlyValue.whspec whspec1,_,whspecright as whspec1right))::_
::(_,(MlyValue.sign sign1,signleft as sign1left,_))::rest671) => let 
val result=MlyValue.sign(fn _ => let val sign as sign1=sign1 ()
val whspec as whspec1=whspec1 ()
 in (MarkSig(AugSig(sign,whspec),(signleft,whspecright))) end
)
 in (LrTable.NT 66,(result,sign1left,whspec1right),rest671) end
| (227,rest671) => let val result=MlyValue.sigconstraint_op(fn _ => (
NoSig))
 in (LrTable.NT 67,(result,defaultPos,defaultPos),rest671) end
| (228,(_,(MlyValue.sign sign1,_,sign1right))::(_,(_,COLON1left,_))::
rest671) => let val result=MlyValue.sigconstraint_op(fn _ => let val 
sign as sign1=sign1 ()
 in (Transparent(sign)) end
)
 in (LrTable.NT 67,(result,COLON1left,sign1right),rest671) end
| (229,(_,(MlyValue.sign sign1,_,sign1right))::(_,(_,COLONGT1left,_))
::rest671) => let val result=MlyValue.sigconstraint_op(fn _ => let 
val sign as sign1=sign1 ()
 in (Opaque(sign)) end
)
 in (LrTable.NT 67,(result,COLONGT1left,sign1right),rest671) end
| (230,rest671) => let val result=MlyValue.fsigconstraint_op(fn _ => (
NoSig))
 in (LrTable.NT 68,(result,defaultPos,defaultPos),rest671) end
| (231,(_,(MlyValue.ident ident1,_,ident1right))::(_,(_,COLON1left,_))
::rest671) => let val result=MlyValue.fsigconstraint_op(fn _ => let 
val ident as ident1=ident1 ()
 in (Transparent(VarFsig (fsigSymbol ident))) end
)
 in (LrTable.NT 68,(result,COLON1left,ident1right),rest671) end
| (232,(_,(MlyValue.ident ident1,_,ident1right))::(_,(_,COLONGT1left,_
))::rest671) => let val result=MlyValue.fsigconstraint_op(fn _ => let 
val ident as ident1=ident1 ()
 in (Opaque(VarFsig (fsigSymbol ident))) end
)
 in (LrTable.NT 68,(result,COLONGT1left,ident1right),rest671) end
| (233,(_,(MlyValue.sigb sigb2,_,sigb2right))::_::(_,(MlyValue.sigb 
sigb1,sigb1left,_))::rest671) => let val result=MlyValue.sigb(fn _ => 
let val sigb1=sigb1 ()
val sigb2=sigb2 ()
 in (sigb1 @ sigb2) end
)
 in (LrTable.NT 69,(result,sigb1left,sigb2right),rest671) end
| (234,(_,(MlyValue.sign sign1,_,sign1right))::_::(_,(MlyValue.ident 
ident1,ident1left,_))::rest671) => let val result=MlyValue.sigb(fn _
 => let val ident as ident1=ident1 ()
val sign as sign1=sign1 ()
 in ([Sigb{name=sigSymbol ident,def=sign}]) end
)
 in (LrTable.NT 69,(result,ident1left,sign1right),rest671) end
| (235,(_,(MlyValue.fsigb fsigb2,_,fsigb2right))::_::(_,(
MlyValue.fsigb fsigb1,fsigb1left,_))::rest671) => let val result=
MlyValue.fsigb(fn _ => let val fsigb1=fsigb1 ()
val fsigb2=fsigb2 ()
 in (fsigb1 @ fsigb2) end
)
 in (LrTable.NT 70,(result,fsigb1left,fsigb2right),rest671) end
| (236,(_,(MlyValue.sign sign1,_,sign1right))::_::(_,(
MlyValue.fparamList fparamList1,_,_))::(_,(MlyValue.ident ident1,
ident1left,_))::rest671) => let val result=MlyValue.fsigb(fn _ => let 
val ident as ident1=ident1 ()
val fparamList as fparamList1=fparamList1 ()
val sign as sign1=sign1 ()
 in (
[Fsigb{name=fsigSymbol ident,
			def=BaseFsig{param=fparamList,result=sign}}]
) end
)
 in (LrTable.NT 70,(result,ident1left,sign1right),rest671) end
| (237,(_,(MlyValue.ident ident1,_,ident1right))::(_,(_,COLON1left,_))
::rest671) => let val result=MlyValue.fsig(fn _ => let val ident as 
ident1=ident1 ()
 in (VarFsig (fsigSymbol ident)) end
)
 in (LrTable.NT 71,(result,COLON1left,ident1right),rest671) end
| (238,(_,(MlyValue.sign sign1,_,sign1right))::_::(_,(
MlyValue.fparamList fparamList1,fparamList1left,_))::rest671) => let 
val result=MlyValue.fsig(fn _ => let val fparamList as fparamList1=
fparamList1 ()
val sign as sign1=sign1 ()
 in (BaseFsig{param=fparamList,result=sign}) end
)
 in (LrTable.NT 71,(result,fparamList1left,sign1right),rest671) end
| (239,(_,(MlyValue.qid qid1,qidleft as qid1left,qidright as qid1right
))::rest671) => let val result=MlyValue.str(fn _ => let val qid as 
qid1=qid1 ()
 in ((MarkStr(VarStr(qid strSymbol),(qidleft,qidright)))) end
)
 in (LrTable.NT 72,(result,qid1left,qid1right),rest671) end
| (240,(_,(_,_,ENDright as END1right))::(_,(MlyValue.strdecs strdecs1,
_,_))::(_,(_,STRUCTleft as STRUCT1left,_))::rest671) => let val result
=MlyValue.str(fn _ => let val strdecs as strdecs1=strdecs1 ()
 in (MarkStr(BaseStr strdecs,(STRUCTleft,ENDright))) end
)
 in (LrTable.NT 72,(result,STRUCT1left,END1right),rest671) end
| (241,(_,(MlyValue.arg_fct arg_fct1,_,arg_fctright as arg_fct1right))
::(_,(MlyValue.qid qid1,qidleft as qid1left,_))::rest671) => let val 
result=MlyValue.str(fn _ => let val qid as qid1=qid1 ()
val arg_fct as arg_fct1=arg_fct1 ()
 in (
MarkStr(AppStr(qid fctSymbol,arg_fct),
			 (qidleft,arg_fctright)))
 end
)
 in (LrTable.NT 72,(result,qid1left,arg_fct1right),rest671) end
| (242,(_,(_,_,ENDright as END1right))::(_,(MlyValue.str str1,_,_))::_
::(_,(MlyValue.strdecs strdecs1,_,_))::(_,(_,LETleft as LET1left,_))::
rest671) => let val result=MlyValue.str(fn _ => let val strdecs as 
strdecs1=strdecs1 ()
val str as str1=str1 ()
 in (MarkStr(LetStr(strdecs, str), (LETleft,ENDright))) end
)
 in (LrTable.NT 72,(result,LET1left,END1right),rest671) end
| (243,(_,(MlyValue.sign sign1,_,signright as sign1right))::_::(_,(
MlyValue.str str1,strleft as str1left,_))::rest671) => let val result=
MlyValue.str(fn _ => let val str as str1=str1 ()
val sign as sign1=sign1 ()
 in (
MarkStr(ConstrainedStr(str,Transparent sign),
		         (strleft,signright))
) end
)
 in (LrTable.NT 72,(result,str1left,sign1right),rest671) end
| (244,(_,(MlyValue.sign sign1,_,signright as sign1right))::_::(_,(
MlyValue.str str1,strleft as str1left,_))::rest671) => let val result=
MlyValue.str(fn _ => let val str as str1=str1 ()
val sign as sign1=sign1 ()
 in (
MarkStr(ConstrainedStr(str,Opaque sign),
		         (strleft,signright))
) end
)
 in (LrTable.NT 72,(result,str1left,sign1right),rest671) end
| (245,(_,(MlyValue.arg_fct arg_fct1,_,arg_fct1right))::_::(_,(
MlyValue.strdecs strdecs1,strdecsleft,strdecsright))::(_,(_,
LPAREN1left,_))::rest671) => let val result=MlyValue.arg_fct(fn _ => 
let val strdecs as strdecs1=strdecs1 ()
val arg_fct as arg_fct1=arg_fct1 ()
 in (
(MarkStr(BaseStr strdecs,
						  (strdecsleft,strdecsright)),
					  false) :: arg_fct
) end
)
 in (LrTable.NT 73,(result,LPAREN1left,arg_fct1right),rest671) end
| (246,(_,(MlyValue.arg_fct arg_fct1,_,arg_fct1right))::_::(_,(
MlyValue.str str1,_,_))::(_,(_,LPAREN1left,_))::rest671) => let val 
result=MlyValue.arg_fct(fn _ => let val str as str1=str1 ()
val arg_fct as arg_fct1=arg_fct1 ()
 in ((str, true) :: arg_fct) end
)
 in (LrTable.NT 73,(result,LPAREN1left,arg_fct1right),rest671) end
| (247,(_,(_,_,RPAREN1right))::(_,(MlyValue.str str1,_,_))::(_,(_,
LPAREN1left,_))::rest671) => let val result=MlyValue.arg_fct(fn _ => 
let val str as str1=str1 ()
 in ([(str, true)]) end
)
 in (LrTable.NT 73,(result,LPAREN1left,RPAREN1right),rest671) end
| (248,(_,(_,_,RPAREN1right))::(_,(MlyValue.strdecs strdecs1,
strdecsleft,strdecsright))::(_,(_,LPAREN1left,_))::rest671) => let 
val result=MlyValue.arg_fct(fn _ => let val strdecs as strdecs1=
strdecs1 ()
 in (
[(MarkStr(BaseStr strdecs,
						   (strdecsleft,strdecsright)),
					   false)]
) end
)
 in (LrTable.NT 73,(result,LPAREN1left,RPAREN1right),rest671) end
| (249,(_,(MlyValue.strdecs strdecs1,_,strdecs1right))::(_,(
MlyValue.strdec strdec1,strdecleft as strdec1left,strdecright))::
rest671) => let val result=MlyValue.strdecs(fn _ => let val strdec as 
strdec1=strdec1 ()
val strdecs as strdecs1=strdecs1 ()
 in (
makeSEQdec (markdec(strdec,strdecleft,strdecright),
					     strdecs)
) end
)
 in (LrTable.NT 75,(result,strdec1left,strdecs1right),rest671) end
| (250,(_,(MlyValue.strdecs strdecs1,_,strdecs1right))::(_,(_,
SEMICOLON1left,_))::rest671) => let val result=MlyValue.strdecs(fn _
 => let val strdecs as strdecs1=strdecs1 ()
 in (strdecs) end
)
 in (LrTable.NT 75,(result,SEMICOLON1left,strdecs1right),rest671) end
| (251,rest671) => let val result=MlyValue.strdecs(fn _ => (SeqDec[]))
 in (LrTable.NT 75,(result,defaultPos,defaultPos),rest671) end
| (252,(_,(MlyValue.sdecs sdecs1,_,sdecs1right))::(_,(MlyValue.sdec 
sdec1,sdecleft as sdec1left,sdecright))::rest671) => let val result=
MlyValue.sdecs(fn _ => let val sdec as sdec1=sdec1 ()
val sdecs as sdecs1=sdecs1 ()
 in (makeSEQdec (markdec(sdec,sdecleft,sdecright),
					     sdecs))
 end
)
 in (LrTable.NT 77,(result,sdec1left,sdecs1right),rest671) end
| (253,(_,(MlyValue.sdecs sdecs1,_,sdecs1right))::(_,(_,SEMICOLON1left
,_))::rest671) => let val result=MlyValue.sdecs(fn _ => let val sdecs
 as sdecs1=sdecs1 ()
 in (sdecs) end
)
 in (LrTable.NT 77,(result,SEMICOLON1left,sdecs1right),rest671) end
| (254,rest671) => let val result=MlyValue.sdecs(fn _ => (SeqDec[]))
 in (LrTable.NT 77,(result,defaultPos,defaultPos),rest671) end
| (255,(_,(MlyValue.sdecs' sdecs'1,_,sdecs'1right))::(_,(MlyValue.sdec
 sdec1,sdecleft as sdec1left,sdecright))::rest671) => let val result=
MlyValue.sdecs'(fn _ => let val sdec as sdec1=sdec1 ()
val sdecs' as sdecs'1=sdecs'1 ()
 in (makeSEQdec (markdec(sdec,sdecleft,sdecright),
					     sdecs'))
 end
)
 in (LrTable.NT 78,(result,sdec1left,sdecs'1right),rest671) end
| (256,(_,(MlyValue.sdec sdec1,sdecleft as sdec1left,sdecright as 
sdec1right))::rest671) => let val result=MlyValue.sdecs'(fn _ => let 
val sdec as sdec1=sdec1 ()
 in (markdec(sdec, sdecleft,sdecright)) end
)
 in (LrTable.NT 78,(result,sdec1left,sdec1right),rest671) end
| (257,(_,(MlyValue.strb strb1,_,strb1right))::(_,(_,STRUCTURE1left,_)
)::rest671) => let val result=MlyValue.strdec(fn _ => let val strb as 
strb1=strb1 ()
 in (StrDec strb) end
)
 in (LrTable.NT 74,(result,STRUCTURE1left,strb1right),rest671) end
| (258,(_,(MlyValue.fctb fctb1,_,fctb1right))::(_,(_,FUNCTOR1left,_))
::rest671) => let val result=MlyValue.strdec(fn _ => let val fctb as 
fctb1=fctb1 ()
 in (FctDec fctb) end
)
 in (LrTable.NT 74,(result,FUNCTOR1left,fctb1right),rest671) end
| (259,(_,(_,_,END1right))::(_,(MlyValue.strdecs strdecs2,strdecs2left
,strdecs2right))::_::(_,(MlyValue.strdecs strdecs1,strdecs1left,
strdecs1right))::(_,(_,LOCAL1left,_))::rest671) => let val result=
MlyValue.strdec(fn _ => let val strdecs1=strdecs1 ()
val strdecs2=strdecs2 ()
 in (
LocalDec(markdec(strdecs1,
				     strdecs1left,strdecs1right),
  			       markdec(strdecs2,strdecs2left,strdecs2right))
) end
)
 in (LrTable.NT 74,(result,LOCAL1left,END1right),rest671) end
| (260,(_,(MlyValue.ldec ldec1,ldecleft as ldec1left,ldecright as 
ldec1right))::rest671) => let val result=MlyValue.strdec(fn _ => let 
val ldec as ldec1=ldec1 ()
 in (markdec(ldec,ldecleft,ldecright)) end
)
 in (LrTable.NT 74,(result,ldec1left,ldec1right),rest671) end
| (261,(_,(MlyValue.strb strb1,_,strb1right))::(_,(_,STRUCTURE1left,_)
)::rest671) => let val result=MlyValue.sdec(fn _ => let val strb as 
strb1=strb1 ()
 in (StrDec strb) end
)
 in (LrTable.NT 76,(result,STRUCTURE1left,strb1right),rest671) end
| (262,(_,(MlyValue.sigb sigb1,_,sigb1right))::(_,(_,SIGNATURE1left,_)
)::rest671) => let val result=MlyValue.sdec(fn _ => let val sigb as 
sigb1=sigb1 ()
 in (SigDec sigb) end
)
 in (LrTable.NT 76,(result,SIGNATURE1left,sigb1right),rest671) end
| (263,(_,(MlyValue.fsigb fsigb1,_,fsigb1right))::(_,(_,FUNSIG1left,_)
)::rest671) => let val result=MlyValue.sdec(fn _ => let val fsigb as 
fsigb1=fsigb1 ()
 in (FsigDec fsigb) end
)
 in (LrTable.NT 76,(result,FUNSIG1left,fsigb1right),rest671) end
| (264,(_,(MlyValue.fctb fctb1,_,fctb1right))::(_,(_,FUNCTOR1left,_))
::rest671) => let val result=MlyValue.sdec(fn _ => let val fctb as 
fctb1=fctb1 ()
 in (FctDec fctb) end
)
 in (LrTable.NT 76,(result,FUNCTOR1left,fctb1right),rest671) end
| (265,(_,(_,_,END1right))::(_,(MlyValue.sdecs sdecs2,sdecs2left,
sdecs2right))::_::(_,(MlyValue.sdecs sdecs1,sdecs1left,sdecs1right))::
(_,(_,LOCAL1left,_))::rest671) => let val result=MlyValue.sdec(fn _
 => let val sdecs1=sdecs1 ()
val sdecs2=sdecs2 ()
 in (
LocalDec(markdec(sdecs1,
						     sdecs1left,sdecs1right),
				    markdec(sdecs2,sdecs2left,sdecs2right))
) end
)
 in (LrTable.NT 76,(result,LOCAL1left,END1right),rest671) end
| (266,(_,(MlyValue.ldec ldec1,ldecleft as ldec1left,ldecright as 
ldec1right))::rest671) => let val result=MlyValue.sdec(fn _ => let 
val ldec as ldec1=ldec1 ()
 in (markdec(ldec,ldecleft,ldecright)) end
)
 in (LrTable.NT 76,(result,ldec1left,ldec1right),rest671) end
| (267,(_,(MlyValue.str str1,_,strright as str1right))::_::(_,(
MlyValue.sigconstraint_op sigconstraint_op1,_,_))::(_,(MlyValue.ident 
ident1,identleft as ident1left,_))::rest671) => let val result=
MlyValue.strb(fn _ => let val ident as ident1=ident1 ()
val sigconstraint_op as sigconstraint_op1=sigconstraint_op1 ()
val str as str1=str1 ()
 in (
[MarkStrb(Strb{name = strSymbol ident,def = str, 
					constraint=sigconstraint_op},
				   (identleft,strright))]
) end
)
 in (LrTable.NT 79,(result,ident1left,str1right),rest671) end
| (268,(_,(MlyValue.strb strb2,_,strb2right))::_::(_,(MlyValue.strb 
strb1,strb1left,_))::rest671) => let val result=MlyValue.strb(fn _ => 
let val strb1=strb1 ()
val strb2=strb2 ()
 in (strb1 @ strb2) end
)
 in (LrTable.NT 79,(result,strb1left,strb2right),rest671) end
| (269,(_,(MlyValue.sign sign1,_,sign1right))::_::(_,(MlyValue.ID ID1,
ID1left,_))::rest671) => let val result=MlyValue.fparam(fn _ => let 
val ID as ID1=ID1 ()
val sign as sign1=sign1 ()
 in ((SOME(strSymbol ID),sign)) end
)
 in (LrTable.NT 80,(result,ID1left,sign1right),rest671) end
| (270,(_,(MlyValue.spec_s spec_s1,spec_sleft as spec_s1left,
spec_sright as spec_s1right))::rest671) => let val result=
MlyValue.fparam(fn _ => let val spec_s as spec_s1=spec_s1 ()
 in (
(NONE,MarkSig(BaseSig(spec_s), 
					       (spec_sleft,spec_sright)))
) end
)
 in (LrTable.NT 80,(result,spec_s1left,spec_s1right),rest671) end
| (271,(_,(_,_,RPAREN1right))::(_,(MlyValue.fparam fparam1,_,_))::(_,(
_,LPAREN1left,_))::rest671) => let val result=MlyValue.fparamList(fn _
 => let val fparam as fparam1=fparam1 ()
 in ([fparam]) end
)
 in (LrTable.NT 81,(result,LPAREN1left,RPAREN1right),rest671) end
| (272,(_,(MlyValue.fparamList fparamList1,_,fparamList1right))::_::(_
,(MlyValue.fparam fparam1,_,_))::(_,(_,LPAREN1left,_))::rest671) => 
let val result=MlyValue.fparamList(fn _ => let val fparam as fparam1=
fparam1 ()
val fparamList as fparamList1=fparamList1 ()
 in (fparam :: fparamList) end
)
 in (LrTable.NT 81,(result,LPAREN1left,fparamList1right),rest671) end
| (273,(_,(MlyValue.str str1,_,strright as str1right))::_::(_,(
MlyValue.sigconstraint_op sigconstraint_op1,_,_))::(_,(
MlyValue.fparamList fparamList1,_,_))::(_,(MlyValue.ident ident1,
identleft as ident1left,_))::rest671) => let val result=MlyValue.fctb(
fn _ => let val ident as ident1=ident1 ()
val fparamList as fparamList1=fparamList1 ()
val sigconstraint_op as sigconstraint_op1=sigconstraint_op1 ()
val str as str1=str1 ()
 in (
[MarkFctb(Fctb {name = fctSymbol ident,
                                 def = BaseFct{params=fparamList, body=str,	
				              constraint=sigconstraint_op}},
			   (identleft,strright))]
) end
)
 in (LrTable.NT 82,(result,ident1left,str1right),rest671) end
| (274,(_,(MlyValue.fct_exp fct_exp1,_,fct_expright as fct_exp1right))
::_::(_,(MlyValue.fsigconstraint_op fsigconstraint_op1,_,_))::(_,(
MlyValue.ident ident1,identleft as ident1left,_))::rest671) => let 
val result=MlyValue.fctb(fn _ => let val ident as ident1=ident1 ()
val fsigconstraint_op as fsigconstraint_op1=fsigconstraint_op1 ()
val fct_exp as fct_exp1=fct_exp1 ()
 in (
[MarkFctb(Fctb {name=fctSymbol ident,
				 def=fct_exp (fsigconstraint_op)},
			   (identleft,fct_expright))]
) end
)
 in (LrTable.NT 82,(result,ident1left,fct_exp1right),rest671) end
| (275,(_,(MlyValue.fctb fctb2,_,fctb2right))::_::(_,(MlyValue.fctb 
fctb1,fctb1left,_))::rest671) => let val result=MlyValue.fctb(fn _ => 
let val fctb1=fctb1 ()
val fctb2=fctb2 ()
 in (fctb1 @ fctb2) end
)
 in (LrTable.NT 82,(result,fctb1left,fctb2right),rest671) end
| (276,(_,(MlyValue.qid qid1,qid1left,qid1right))::rest671) => let 
val result=MlyValue.fct_exp(fn _ => let val qid as qid1=qid1 ()
 in (fn constraint => VarFct(qid fctSymbol,constraint)) end
)
 in (LrTable.NT 83,(result,qid1left,qid1right),rest671) end
| (277,(_,(MlyValue.arg_fct arg_fct1,_,arg_fctright as arg_fct1right))
::(_,(MlyValue.qid qid1,qidleft as qid1left,_))::rest671) => let val 
result=MlyValue.fct_exp(fn _ => let val qid as qid1=qid1 ()
val arg_fct as arg_fct1=arg_fct1 ()
 in (
fn constraint =>
		    MarkFct(AppFct(qid fctSymbol,arg_fct,constraint),
			    (qidleft,arg_fctright))
) end
)
 in (LrTable.NT 83,(result,qid1left,arg_fct1right),rest671) end
| (278,(_,(_,_,ENDright as END1right))::(_,(MlyValue.fct_exp fct_exp1,
_,_))::_::(_,(MlyValue.strdecs strdecs1,_,_))::(_,(_,LETleft as 
LET1left,_))::rest671) => let val result=MlyValue.fct_exp(fn _ => let 
val strdecs as strdecs1=strdecs1 ()
val fct_exp as fct_exp1=fct_exp1 ()
 in (
fn constraint =>
		   MarkFct(LetFct(strdecs, fct_exp constraint),
		   (LETleft,ENDright))
) end
)
 in (LrTable.NT 83,(result,LET1left,END1right),rest671) end
| (279,(_,(MlyValue.sdecs' sdecs'1,sdecs'left as sdecs'1left,
sdecs'right as sdecs'1right))::rest671) => let val result=
MlyValue.interdec(fn _ => let val sdecs' as sdecs'1=sdecs'1 ()
 in (markdec(sdecs',sdecs'left,sdecs'right)) end
)
 in (LrTable.NT 84,(result,sdecs'1left,sdecs'1right),rest671) end
| (280,(_,(MlyValue.exp exp1,expleft as exp1left,expright as exp1right
))::rest671) => let val result=MlyValue.interdec(fn _ => let val exp
 as exp1=exp1 ()
 in (
markdec(ValDec([Vb{exp=exp,pat=VarPat itsym,lazyp=false}],nil),
				 expleft,expright)
) end
)
 in (LrTable.NT 84,(result,exp1left,exp1right),rest671) end
| _ => raise (mlyAction i392)
end
val void = MlyValue.VOID
val extract = fn a => (fn MlyValue.interdec x => x
| _ => let exception ParseInternal
	in raise ParseInternal end) a ()
end
end
structure Tokens : ML_TOKENS =
struct
type svalue = ParserData.svalue
type ('a,'b) token = ('a,'b) Token.token
fun EOF (p1,p2) = Token.TOKEN (ParserData.LrTable.T 0,(
ParserData.MlyValue.VOID,p1,p2))
fun SEMICOLON (p1,p2) = Token.TOKEN (ParserData.LrTable.T 1,(
ParserData.MlyValue.VOID,p1,p2))
fun ID (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 2,(
ParserData.MlyValue.ID (fn () => i),p1,p2))
fun TYVAR (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 3,(
ParserData.MlyValue.TYVAR (fn () => i),p1,p2))
fun INT (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 4,(
ParserData.MlyValue.INT (fn () => i),p1,p2))
fun INT0 (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 5,(
ParserData.MlyValue.INT0 (fn () => i),p1,p2))
fun WORD (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 6,(
ParserData.MlyValue.WORD (fn () => i),p1,p2))
fun REAL (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 7,(
ParserData.MlyValue.REAL (fn () => i),p1,p2))
fun STRING (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 8,(
ParserData.MlyValue.STRING (fn () => i),p1,p2))
fun CHAR (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 9,(
ParserData.MlyValue.CHAR (fn () => i),p1,p2))
fun ABSTYPE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 10,(
ParserData.MlyValue.VOID,p1,p2))
fun AND (p1,p2) = Token.TOKEN (ParserData.LrTable.T 11,(
ParserData.MlyValue.VOID,p1,p2))
fun ARROW (p1,p2) = Token.TOKEN (ParserData.LrTable.T 12,(
ParserData.MlyValue.VOID,p1,p2))
fun AS (p1,p2) = Token.TOKEN (ParserData.LrTable.T 13,(
ParserData.MlyValue.VOID,p1,p2))
fun BAR (p1,p2) = Token.TOKEN (ParserData.LrTable.T 14,(
ParserData.MlyValue.VOID,p1,p2))
fun CASE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 15,(
ParserData.MlyValue.VOID,p1,p2))
fun DATATYPE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 16,(
ParserData.MlyValue.VOID,p1,p2))
fun DOTDOTDOT (p1,p2) = Token.TOKEN (ParserData.LrTable.T 17,(
ParserData.MlyValue.VOID,p1,p2))
fun ELSE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 18,(
ParserData.MlyValue.VOID,p1,p2))
fun END (p1,p2) = Token.TOKEN (ParserData.LrTable.T 19,(
ParserData.MlyValue.VOID,p1,p2))
fun EQUALOP (p1,p2) = Token.TOKEN (ParserData.LrTable.T 20,(
ParserData.MlyValue.VOID,p1,p2))
fun EQTYPE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 21,(
ParserData.MlyValue.VOID,p1,p2))
fun EXCEPTION (p1,p2) = Token.TOKEN (ParserData.LrTable.T 22,(
ParserData.MlyValue.VOID,p1,p2))
fun DO (p1,p2) = Token.TOKEN (ParserData.LrTable.T 23,(
ParserData.MlyValue.VOID,p1,p2))
fun DOT (p1,p2) = Token.TOKEN (ParserData.LrTable.T 24,(
ParserData.MlyValue.VOID,p1,p2))
fun DARROW (p1,p2) = Token.TOKEN (ParserData.LrTable.T 25,(
ParserData.MlyValue.VOID,p1,p2))
fun FN (p1,p2) = Token.TOKEN (ParserData.LrTable.T 26,(
ParserData.MlyValue.VOID,p1,p2))
fun FUN (p1,p2) = Token.TOKEN (ParserData.LrTable.T 27,(
ParserData.MlyValue.VOID,p1,p2))
fun FUNCTOR (p1,p2) = Token.TOKEN (ParserData.LrTable.T 28,(
ParserData.MlyValue.VOID,p1,p2))
fun HANDLE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 29,(
ParserData.MlyValue.VOID,p1,p2))
fun HASH (p1,p2) = Token.TOKEN (ParserData.LrTable.T 30,(
ParserData.MlyValue.VOID,p1,p2))
fun IF (p1,p2) = Token.TOKEN (ParserData.LrTable.T 31,(
ParserData.MlyValue.VOID,p1,p2))
fun IN (p1,p2) = Token.TOKEN (ParserData.LrTable.T 32,(
ParserData.MlyValue.VOID,p1,p2))
fun INCLUDE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 33,(
ParserData.MlyValue.VOID,p1,p2))
fun INFIX (p1,p2) = Token.TOKEN (ParserData.LrTable.T 34,(
ParserData.MlyValue.VOID,p1,p2))
fun INFIXR (p1,p2) = Token.TOKEN (ParserData.LrTable.T 35,(
ParserData.MlyValue.VOID,p1,p2))
fun LAZY (p1,p2) = Token.TOKEN (ParserData.LrTable.T 36,(
ParserData.MlyValue.VOID,p1,p2))
fun LET (p1,p2) = Token.TOKEN (ParserData.LrTable.T 37,(
ParserData.MlyValue.VOID,p1,p2))
fun LOCAL (p1,p2) = Token.TOKEN (ParserData.LrTable.T 38,(
ParserData.MlyValue.VOID,p1,p2))
fun NONFIX (p1,p2) = Token.TOKEN (ParserData.LrTable.T 39,(
ParserData.MlyValue.VOID,p1,p2))
fun OF (p1,p2) = Token.TOKEN (ParserData.LrTable.T 40,(
ParserData.MlyValue.VOID,p1,p2))
fun OP (p1,p2) = Token.TOKEN (ParserData.LrTable.T 41,(
ParserData.MlyValue.VOID,p1,p2))
fun OPEN (p1,p2) = Token.TOKEN (ParserData.LrTable.T 42,(
ParserData.MlyValue.VOID,p1,p2))
fun OVERLOAD (p1,p2) = Token.TOKEN (ParserData.LrTable.T 43,(
ParserData.MlyValue.VOID,p1,p2))
fun RAISE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 44,(
ParserData.MlyValue.VOID,p1,p2))
fun REC (p1,p2) = Token.TOKEN (ParserData.LrTable.T 45,(
ParserData.MlyValue.VOID,p1,p2))
fun SHARING (p1,p2) = Token.TOKEN (ParserData.LrTable.T 46,(
ParserData.MlyValue.VOID,p1,p2))
fun SIG (p1,p2) = Token.TOKEN (ParserData.LrTable.T 47,(
ParserData.MlyValue.VOID,p1,p2))
fun SIGNATURE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 48,(
ParserData.MlyValue.VOID,p1,p2))
fun STRUCT (p1,p2) = Token.TOKEN (ParserData.LrTable.T 49,(
ParserData.MlyValue.VOID,p1,p2))
fun STRUCTURE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 50,(
ParserData.MlyValue.VOID,p1,p2))
fun THEN (p1,p2) = Token.TOKEN (ParserData.LrTable.T 51,(
ParserData.MlyValue.VOID,p1,p2))
fun TYPE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 52,(
ParserData.MlyValue.VOID,p1,p2))
fun VAL (p1,p2) = Token.TOKEN (ParserData.LrTable.T 53,(
ParserData.MlyValue.VOID,p1,p2))
fun WHERE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 54,(
ParserData.MlyValue.VOID,p1,p2))
fun WHILE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 55,(
ParserData.MlyValue.VOID,p1,p2))
fun WILD (p1,p2) = Token.TOKEN (ParserData.LrTable.T 56,(
ParserData.MlyValue.VOID,p1,p2))
fun WITH (p1,p2) = Token.TOKEN (ParserData.LrTable.T 57,(
ParserData.MlyValue.VOID,p1,p2))
fun WITHTYPE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 58,(
ParserData.MlyValue.VOID,p1,p2))
fun ASTERISK (p1,p2) = Token.TOKEN (ParserData.LrTable.T 59,(
ParserData.MlyValue.VOID,p1,p2))
fun COLON (p1,p2) = Token.TOKEN (ParserData.LrTable.T 60,(
ParserData.MlyValue.VOID,p1,p2))
fun COLONGT (p1,p2) = Token.TOKEN (ParserData.LrTable.T 61,(
ParserData.MlyValue.VOID,p1,p2))
fun COMMA (p1,p2) = Token.TOKEN (ParserData.LrTable.T 62,(
ParserData.MlyValue.VOID,p1,p2))
fun LBRACE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 63,(
ParserData.MlyValue.VOID,p1,p2))
fun LBRACKET (p1,p2) = Token.TOKEN (ParserData.LrTable.T 64,(
ParserData.MlyValue.VOID,p1,p2))
fun LPAREN (p1,p2) = Token.TOKEN (ParserData.LrTable.T 65,(
ParserData.MlyValue.VOID,p1,p2))
fun RBRACE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 66,(
ParserData.MlyValue.VOID,p1,p2))
fun RBRACKET (p1,p2) = Token.TOKEN (ParserData.LrTable.T 67,(
ParserData.MlyValue.VOID,p1,p2))
fun RPAREN (p1,p2) = Token.TOKEN (ParserData.LrTable.T 68,(
ParserData.MlyValue.VOID,p1,p2))
fun ORELSE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 69,(
ParserData.MlyValue.VOID,p1,p2))
fun ANDALSO (p1,p2) = Token.TOKEN (ParserData.LrTable.T 70,(
ParserData.MlyValue.VOID,p1,p2))
fun FUNSIG (p1,p2) = Token.TOKEN (ParserData.LrTable.T 71,(
ParserData.MlyValue.VOID,p1,p2))
fun VECTORSTART (p1,p2) = Token.TOKEN (ParserData.LrTable.T 72,(
ParserData.MlyValue.VOID,p1,p2))
fun BEGINQ (p1,p2) = Token.TOKEN (ParserData.LrTable.T 73,(
ParserData.MlyValue.VOID,p1,p2))
fun ENDQ (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 74,(
ParserData.MlyValue.ENDQ (fn () => i),p1,p2))
fun OBJL (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 75,(
ParserData.MlyValue.OBJL (fn () => i),p1,p2))
fun AQID (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 76,(
ParserData.MlyValue.AQID (fn () => i),p1,p2))
end
end

root@smlnj-gforge.cs.uchicago.edu
ViewVC Help
Powered by ViewVC 1.0.0