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

SCM Repository

[smlnj] Annotation of /sml/trunk/benchmarks/programs/mlyacc/DATA/ml.grm.sml
ViewVC logotype

Annotation of /sml/trunk/benchmarks/programs/mlyacc/DATA/ml.grm.sml

Parent Directory Parent Directory | Revision Log Revision Log


Revision 193 - (view) (download)

1 : monnier 193 functor MLLrValsFun(structure Token : TOKEN)
2 :     : sig structure ParserData : PARSER_DATA
3 :     structure Tokens : ML_TOKENS
4 :     end
5 :     =
6 :     struct
7 :     structure ParserData=
8 :     struct
9 :     structure Header =
10 :     struct
11 :     (* Copyright 1989 by AT&T Bell Laboratories *)
12 :     open ErrorMsg Symbol Access Basics BasicTypes TypesUtil Absyn
13 :     open EnvAccess Misc CoreLang Signs Strs TyvarSet
14 :     fun fire a b c = (a(); b c)
15 :     fun markexp (e as MARKexp _, _, _) = e
16 :     | markexp(e,a,b) = if !System.Control.markabsyn
17 :     then MARKexp(e,a,b) else e
18 :     fun markdec((d as MARKdec _, e), _, _) = (d,e)
19 :     | markdec((d,e),a,b) = if !System.Control.markabsyn
20 :     then (MARKdec(d,a,b),e) else (d,e)
21 :    
22 :     fun markdec' d =
23 :     let val (d,e) = markdec d
24 :     in ([d],e)
25 :     end
26 :    
27 :     fun markdec'' (([d],e),a,b) = markdec'((d,e),a,b)
28 :     | markdec'' ((s,e),a,b) = markdec'((SEQdec s, e),a,b)
29 :    
30 :     fun markstr(f,a,b) $ = case f $
31 :     of s as (MARKstr _,x,y) => s
32 :     | s as (t,x,y) => if !System.Control.markabsyn
33 :     then (MARKstr(t,a,b),x,y) else s
34 :    
35 :     infix \/
36 :     val op \/ = union_tyvars
37 :    
38 :     fun V(_,vars) = vars and E(e,_) = e
39 :    
40 :     fun sequence (do1,do2) (env,a2,a3,a4) =
41 :     let val (r1,env1) = do1 (env,a2,a3,a4)
42 :     val (r2,env2) = do2 (Env.atop(env1,env),a2,a3,a4)
43 :     in (r1 @ r2, Env.atop(env2,env1))
44 :     end
45 :    
46 :     fun sequence' (do1,do2) env =
47 :     let val (r1,env1) = do1 env
48 :     val (r2,env2) = do2 (Env.atop(env1,env))
49 :     in (r1 @ r2, Env.atop(env2,env1))
50 :     end
51 :    
52 :     fun seqdec (d,e) = ([d],e)
53 :    
54 :    
55 :     end
56 :     structure LrTable = Token.LrTable
57 :     structure Token = Token
58 :     local open LrTable in
59 :     val table=let val actionRows =
60 :     "\
61 :     \\001\000\001\000\000\000\002\000\000\000\000\000\
62 :     \\001\000\003\000\046\000\005\000\045\000\006\000\044\000\007\000\043\000\
63 :     \\008\000\042\000\009\000\041\000\010\000\040\000\015\000\039\000\
64 :     \\016\000\038\000\020\000\037\000\022\000\036\000\026\000\035\000\
65 :     \\027\000\034\000\028\000\033\000\030\000\032\000\031\000\031\000\
66 :     \\034\000\030\000\035\000\029\000\036\000\028\000\037\000\027\000\
67 :     \\038\000\026\000\040\000\025\000\041\000\024\000\042\000\023\000\
68 :     \\044\000\022\000\048\000\021\000\050\000\020\000\052\000\019\000\
69 :     \\053\000\018\000\054\000\017\000\058\000\016\000\061\000\015\000\
70 :     \\062\000\014\000\063\000\013\000\069\000\012\000\000\000\
71 :     \\001\000\003\000\046\000\005\000\045\000\006\000\044\000\007\000\043\000\
72 :     \\008\000\042\000\015\000\039\000\020\000\037\000\026\000\035\000\
73 :     \\030\000\032\000\031\000\031\000\036\000\028\000\040\000\025\000\
74 :     \\044\000\022\000\054\000\017\000\058\000\016\000\061\000\015\000\
75 :     \\062\000\014\000\063\000\013\000\000\000\
76 :     \\001\000\003\000\046\000\005\000\045\000\006\000\044\000\007\000\043\000\
77 :     \\008\000\042\000\015\000\039\000\020\000\037\000\026\000\035\000\
78 :     \\030\000\032\000\031\000\031\000\036\000\028\000\040\000\025\000\
79 :     \\044\000\022\000\054\000\017\000\058\000\016\000\061\000\015\000\
80 :     \\062\000\014\000\063\000\013\000\065\000\065\000\000\000\
81 :     \\001\000\003\000\046\000\005\000\045\000\006\000\044\000\007\000\043\000\
82 :     \\008\000\042\000\015\000\039\000\020\000\037\000\026\000\035\000\
83 :     \\030\000\032\000\031\000\031\000\036\000\028\000\040\000\025\000\
84 :     \\044\000\022\000\054\000\017\000\058\000\016\000\061\000\015\000\
85 :     \\062\000\014\000\063\000\013\000\066\000\062\000\000\000\
86 :     \\001\000\003\000\050\000\020\000\037\000\058\000\016\000\000\000\
87 :     \\001\000\003\000\073\000\005\000\072\000\058\000\071\000\000\000\
88 :     \\001\000\003\000\073\000\005\000\072\000\058\000\071\000\064\000\070\000\000\000\
89 :     \\001\000\003\000\073\000\005\000\072\000\058\000\071\000\064\000\236\000\000\000\
90 :     \\001\000\003\000\073\000\040\000\183\000\058\000\071\000\000\000\
91 :     \\001\000\003\000\092\000\005\000\045\000\006\000\044\000\007\000\091\000\
92 :     \\008\000\090\000\040\000\089\000\045\000\088\000\055\000\087\000\
93 :     \\058\000\071\000\061\000\086\000\062\000\085\000\063\000\084\000\000\000\
94 :     \\001\000\003\000\092\000\005\000\045\000\006\000\044\000\007\000\091\000\
95 :     \\008\000\090\000\040\000\089\000\055\000\087\000\058\000\071\000\
96 :     \\061\000\086\000\062\000\085\000\063\000\084\000\000\000\
97 :     \\001\000\003\000\092\000\005\000\045\000\006\000\044\000\007\000\091\000\
98 :     \\008\000\090\000\040\000\089\000\055\000\087\000\058\000\071\000\
99 :     \\061\000\086\000\062\000\085\000\063\000\084\000\065\000\173\000\000\000\
100 :     \\001\000\003\000\092\000\005\000\045\000\006\000\044\000\007\000\091\000\
101 :     \\008\000\090\000\040\000\089\000\055\000\087\000\058\000\071\000\
102 :     \\061\000\086\000\062\000\085\000\063\000\084\000\066\000\170\000\000\000\
103 :     \\001\000\003\000\092\000\005\000\045\000\006\000\044\000\007\000\091\000\
104 :     \\008\000\090\000\040\000\089\000\055\000\087\000\058\000\071\000\
105 :     \\061\000\086\000\062\000\085\000\063\000\127\000\000\000\
106 :     \\001\000\003\000\106\000\020\000\037\000\052\000\106\001\058\000\016\000\000\000\
107 :     \\001\000\003\000\106\000\020\000\037\000\058\000\016\000\000\000\
108 :     \\001\000\003\000\150\000\000\000\
109 :     \\001\000\003\000\150\000\004\000\149\000\061\000\148\000\063\000\147\000\000\000\
110 :     \\001\000\003\000\179\000\005\000\072\000\017\000\178\000\058\000\071\000\000\000\
111 :     \\001\000\003\000\179\000\005\000\072\000\017\000\178\000\058\000\071\000\
112 :     \\064\000\177\000\000\000\
113 :     \\001\000\003\000\186\000\000\000\
114 :     \\001\000\003\000\017\001\047\000\016\001\000\000\
115 :     \\001\000\003\000\086\001\020\000\037\000\036\000\085\001\049\000\084\001\
116 :     \\058\000\016\000\000\000\
117 :     \\001\000\003\000\149\001\000\000\
118 :     \\001\000\004\000\189\000\000\000\
119 :     \\001\000\008\000\058\000\000\000\
120 :     \\001\000\011\000\187\000\056\000\125\001\000\000\
121 :     \\001\000\011\000\222\000\056\000\226\000\057\000\225\000\000\000\
122 :     \\001\000\012\000\228\000\013\000\088\001\000\000\
123 :     \\001\000\012\000\228\000\060\000\066\001\066\000\065\001\000\000\
124 :     \\001\000\013\000\168\000\020\000\167\000\000\000\
125 :     \\001\000\013\000\168\000\025\000\217\000\000\000\
126 :     \\001\000\013\000\168\000\060\000\253\000\000\000\
127 :     \\001\000\013\000\168\000\060\000\253\000\066\000\252\000\000\000\
128 :     \\001\000\013\000\004\001\020\000\200\001\059\000\003\001\060\000\039\002\
129 :     \\064\000\039\002\000\000\
130 :     \\001\000\018\000\093\001\029\000\056\000\059\000\055\000\067\000\054\000\
131 :     \\068\000\053\000\000\000\
132 :     \\001\000\019\000\089\001\000\000\
133 :     \\001\000\019\000\091\001\000\000\
134 :     \\001\000\019\000\126\001\000\000\
135 :     \\001\000\019\000\138\001\000\000\
136 :     \\001\000\019\000\142\001\000\000\
137 :     \\001\000\019\000\143\001\000\000\
138 :     \\001\000\019\000\166\001\000\000\
139 :     \\001\000\019\000\187\001\000\000\
140 :     \\001\000\019\000\194\001\000\000\
141 :     \\001\000\019\000\196\001\000\000\
142 :     \\001\000\020\000\161\000\000\000\
143 :     \\001\000\020\000\194\000\000\000\
144 :     \\001\000\020\000\002\001\000\000\
145 :     \\001\000\020\000\009\001\000\000\
146 :     \\001\000\020\000\014\001\000\000\
147 :     \\001\000\020\000\045\001\000\000\
148 :     \\001\000\020\000\057\001\000\000\
149 :     \\001\000\020\000\079\001\000\000\
150 :     \\001\000\020\000\153\001\000\000\
151 :     \\001\000\020\000\173\001\000\000\
152 :     \\001\000\023\000\162\000\029\000\056\000\059\000\055\000\067\000\054\000\
153 :     \\068\000\053\000\000\000\
154 :     \\001\000\026\000\134\001\000\000\
155 :     \\001\000\029\000\056\000\039\000\224\000\059\000\055\000\067\000\054\000\
156 :     \\068\000\053\000\000\000\
157 :     \\001\000\029\000\056\000\051\000\206\000\059\000\055\000\067\000\054\000\
158 :     \\068\000\053\000\000\000\
159 :     \\001\000\032\000\199\000\000\000\
160 :     \\001\000\032\000\202\000\000\000\
161 :     \\001\000\032\000\023\001\000\000\
162 :     \\001\000\032\000\025\001\000\000\
163 :     \\001\000\032\000\156\001\000\000\
164 :     \\001\000\032\000\167\001\000\000\
165 :     \\001\000\059\000\195\000\000\000\
166 :     \\001\000\059\000\069\001\000\000\
167 :     \\001\000\059\000\115\001\000\000\
168 :     \\001\000\059\000\151\001\000\000\
169 :     \\001\000\059\000\175\001\000\000\
170 :     \\001\000\063\000\208\000\000\000\
171 :     \\001\000\064\000\159\000\000\000\
172 :     \\001\000\064\000\000\001\000\000\
173 :     \\001\000\064\000\067\001\000\000\
174 :     \\001\000\065\000\157\000\000\000\
175 :     \\001\000\065\000\254\000\000\000\
176 :     \\001\000\066\000\153\000\000\000\
177 :     \\001\000\066\000\156\000\000\000\
178 :     \\001\000\066\000\011\001\000\000\
179 :     \\001\000\066\000\064\001\000\000\
180 :     \\001\000\066\000\094\001\000\000\
181 :     \\001\000\066\000\132\001\000\000\
182 :     \\001\000\066\000\189\001\000\000\
183 :     \\001\000\066\000\190\001\000\000\
184 :     \\198\001\000\000\
185 :     \\199\001\000\000\
186 :     \\200\001\000\000\
187 :     \\200\001\024\000\185\000\000\000\
188 :     \\201\001\000\000\
189 :     \\202\001\000\000\
190 :     \\202\001\024\000\139\000\000\000\
191 :     \\202\001\024\000\197\000\000\000\
192 :     \\202\001\024\000\197\000\063\000\137\001\000\000\
193 :     \\203\001\000\000\
194 :     \\204\001\000\000\
195 :     \\205\001\000\000\
196 :     \\206\001\040\000\133\000\000\000\
197 :     \\207\001\000\000\
198 :     \\208\001\000\000\
199 :     \\209\001\000\000\
200 :     \\210\001\000\000\
201 :     \\211\001\000\000\
202 :     \\212\001\000\000\
203 :     \\213\001\000\000\
204 :     \\214\001\024\000\237\000\000\000\
205 :     \\215\001\012\000\228\000\000\000\
206 :     \\216\001\000\000\
207 :     \\217\001\060\000\068\001\000\000\
208 :     \\218\001\000\000\
209 :     \\219\001\000\000\
210 :     \\220\001\000\000\
211 :     \\221\001\000\000\
212 :     \\222\001\000\000\
213 :     \\223\001\000\000\
214 :     \\224\001\000\000\
215 :     \\225\001\000\000\
216 :     \\226\001\003\000\150\000\058\000\230\000\000\000\
217 :     \\227\001\000\000\
218 :     \\228\001\012\000\228\000\000\000\
219 :     \\229\001\003\000\150\000\058\000\230\000\000\000\
220 :     \\230\001\012\000\228\000\060\000\066\001\000\000\
221 :     \\231\001\000\000\
222 :     \\232\001\014\000\218\000\000\000\
223 :     \\233\001\000\000\
224 :     \\234\001\029\000\056\000\059\000\055\000\067\000\054\000\068\000\053\000\000\000\
225 :     \\235\001\029\000\056\000\059\000\055\000\067\000\054\000\068\000\053\000\000\000\
226 :     \\236\001\000\000\
227 :     \\237\001\060\000\160\000\000\000\
228 :     \\238\001\002\000\155\000\029\000\056\000\059\000\055\000\060\000\154\000\
229 :     \\067\000\054\000\068\000\053\000\000\000\
230 :     \\238\001\002\000\155\000\029\000\056\000\059\000\055\000\067\000\054\000\
231 :     \\068\000\053\000\000\000\
232 :     \\239\001\000\000\
233 :     \\240\001\000\000\
234 :     \\241\001\059\000\055\000\068\000\053\000\000\000\
235 :     \\242\001\059\000\055\000\000\000\
236 :     \\243\001\012\000\228\000\000\000\
237 :     \\244\001\003\000\046\000\005\000\045\000\006\000\044\000\007\000\043\000\
238 :     \\008\000\042\000\020\000\037\000\030\000\032\000\036\000\028\000\
239 :     \\040\000\025\000\058\000\016\000\061\000\015\000\062\000\014\000\
240 :     \\063\000\013\000\000\000\
241 :     \\245\001\000\000\
242 :     \\246\001\000\000\
243 :     \\247\001\029\000\056\000\059\000\055\000\067\000\054\000\068\000\053\000\000\000\
244 :     \\248\001\029\000\056\000\059\000\055\000\067\000\054\000\068\000\053\000\000\000\
245 :     \\249\001\029\000\056\000\059\000\055\000\067\000\054\000\068\000\053\000\000\000\
246 :     \\250\001\000\000\
247 :     \\251\001\000\000\
248 :     \\252\001\000\000\
249 :     \\253\001\000\000\
250 :     \\254\001\000\000\
251 :     \\255\001\000\000\
252 :     \\000\002\000\000\
253 :     \\001\002\000\000\
254 :     \\002\002\000\000\
255 :     \\003\002\000\000\
256 :     \\004\002\000\000\
257 :     \\005\002\000\000\
258 :     \\006\002\000\000\
259 :     \\007\002\000\000\
260 :     \\008\002\000\000\
261 :     \\009\002\000\000\
262 :     \\010\002\000\000\
263 :     \\011\002\000\000\
264 :     \\012\002\000\000\
265 :     \\013\002\029\000\056\000\059\000\055\000\060\000\154\000\067\000\054\000\
266 :     \\068\000\053\000\000\000\
267 :     \\014\002\029\000\056\000\059\000\055\000\060\000\158\000\067\000\054\000\
268 :     \\068\000\053\000\000\000\
269 :     \\015\002\000\000\
270 :     \\016\002\000\000\
271 :     \\016\002\066\000\049\001\000\000\
272 :     \\017\002\059\000\247\000\000\000\
273 :     \\017\002\059\000\247\000\066\000\118\001\000\000\
274 :     \\018\002\013\000\168\000\000\000\
275 :     \\019\002\059\000\166\000\000\000\
276 :     \\020\002\012\000\228\000\000\000\
277 :     \\021\002\012\000\228\000\000\000\
278 :     \\022\002\000\000\
279 :     \\023\002\000\000\
280 :     \\024\002\000\000\
281 :     \\025\002\000\000\
282 :     \\026\002\000\000\
283 :     \\027\002\000\000\
284 :     \\028\002\000\000\
285 :     \\029\002\000\000\
286 :     \\030\002\000\000\
287 :     \\031\002\000\000\
288 :     \\032\002\000\000\
289 :     \\033\002\000\000\
290 :     \\034\002\000\000\
291 :     \\035\002\000\000\
292 :     \\036\002\000\000\
293 :     \\037\002\000\000\
294 :     \\038\002\013\000\168\000\000\000\
295 :     \\040\002\013\000\168\000\000\000\
296 :     \\041\002\012\000\228\000\013\000\133\001\000\000\
297 :     \\042\002\013\000\168\000\000\000\
298 :     \\043\002\000\000\
299 :     \\044\002\060\000\001\001\000\000\
300 :     \\045\002\000\000\
301 :     \\046\002\013\000\168\000\060\000\255\000\000\000\
302 :     \\047\002\000\000\
303 :     \\048\002\011\000\163\000\000\000\
304 :     \\049\002\029\000\056\000\059\000\055\000\067\000\054\000\068\000\053\000\000\000\
305 :     \\050\002\059\000\211\000\000\000\
306 :     \\051\002\012\000\228\000\000\000\
307 :     \\052\002\000\000\
308 :     \\053\002\011\000\005\001\000\000\
309 :     \\054\002\014\000\209\000\000\000\
310 :     \\055\002\000\000\
311 :     \\056\002\011\000\212\000\000\000\
312 :     \\057\002\000\000\
313 :     \\058\002\000\000\
314 :     \\059\002\000\000\
315 :     \\060\002\000\000\
316 :     \\061\002\003\000\092\000\005\000\045\000\006\000\044\000\007\000\091\000\
317 :     \\008\000\090\000\040\000\089\000\055\000\087\000\058\000\071\000\
318 :     \\061\000\086\000\062\000\085\000\063\000\084\000\000\000\
319 :     \\062\002\000\000\
320 :     \\063\002\029\000\056\000\059\000\055\000\067\000\054\000\068\000\053\000\000\000\
321 :     \\064\002\012\000\228\000\000\000\
322 :     \\065\002\011\000\187\000\000\000\
323 :     \\066\002\000\000\
324 :     \\067\002\000\000\
325 :     \\068\002\004\000\096\000\063\000\095\000\000\000\
326 :     \\069\002\060\000\012\001\000\000\
327 :     \\070\002\000\000\
328 :     \\071\002\011\000\222\000\000\000\
329 :     \\072\002\000\000\
330 :     \\073\002\014\000\161\001\000\000\
331 :     \\074\002\000\000\
332 :     \\075\002\039\000\186\001\000\000\
333 :     \\076\002\012\000\228\000\000\000\
334 :     \\077\002\020\000\054\001\039\000\053\001\000\000\
335 :     \\078\002\012\000\228\000\000\000\
336 :     \\079\002\000\000\
337 :     \\080\002\011\000\219\000\000\000\
338 :     \\081\002\003\000\106\000\020\000\037\000\058\000\016\000\000\000\
339 :     \\082\002\000\000\
340 :     \\083\002\003\000\106\000\020\000\037\000\058\000\016\000\000\000\
341 :     \\084\002\000\000\
342 :     \\085\002\005\000\045\000\006\000\044\000\000\000\
343 :     \\086\002\000\000\
344 :     \\087\002\005\000\045\000\006\000\044\000\000\000\
345 :     \\088\002\000\000\
346 :     \\089\002\000\000\
347 :     \\090\002\011\000\163\000\000\000\
348 :     \\091\002\011\000\005\001\000\000\
349 :     \\092\002\000\000\
350 :     \\093\002\011\000\187\000\000\000\
351 :     \\094\002\011\000\222\000\057\000\221\000\000\000\
352 :     \\095\002\011\000\187\000\000\000\
353 :     \\096\002\000\000\
354 :     \\097\002\000\000\
355 :     \\098\002\011\000\219\000\000\000\
356 :     \\099\002\000\000\
357 :     \\100\002\000\000\
358 :     \\101\002\000\000\
359 :     \\102\002\011\000\170\001\029\000\056\000\059\000\055\000\067\000\054\000\
360 :     \\068\000\053\000\000\000\
361 :     \\103\002\000\000\
362 :     \\104\002\002\000\115\000\010\000\040\000\016\000\038\000\022\000\036\000\
363 :     \\027\000\034\000\034\000\030\000\035\000\029\000\037\000\114\000\
364 :     \\038\000\026\000\041\000\024\000\042\000\023\000\052\000\019\000\
365 :     \\053\000\018\000\000\000\
366 :     \\105\002\000\000\
367 :     \\106\002\000\000\
368 :     \\107\002\000\000\
369 :     \\108\002\003\000\050\000\020\000\037\000\058\000\016\000\000\000\
370 :     \\109\002\000\000\
371 :     \\110\002\002\000\043\001\003\000\042\001\016\000\041\001\021\000\040\001\
372 :     \\022\000\039\001\033\000\038\001\034\000\030\000\035\000\029\000\
373 :     \\037\000\037\001\038\000\026\000\041\000\036\001\046\000\035\001\
374 :     \\050\000\034\001\052\000\033\001\053\000\032\001\000\000\
375 :     \\110\002\002\000\043\001\016\000\041\001\021\000\040\001\022\000\039\001\
376 :     \\033\000\038\001\034\000\030\000\035\000\029\000\037\000\037\001\
377 :     \\038\000\026\000\041\000\036\001\046\000\035\001\050\000\034\001\
378 :     \\052\000\033\001\053\000\032\001\000\000\
379 :     \\111\002\000\000\
380 :     \\112\002\000\000\
381 :     \\113\002\011\000\150\001\000\000\
382 :     \\114\002\011\000\222\000\000\000\
383 :     \\115\002\011\000\148\001\000\000\
384 :     \\116\002\011\000\148\001\000\000\
385 :     \\117\002\011\000\146\001\000\000\
386 :     \\118\002\011\000\157\001\000\000\
387 :     \\119\002\000\000\
388 :     \\120\002\011\000\152\001\000\000\
389 :     \\121\002\000\000\
390 :     \\122\002\000\000\
391 :     \\123\002\000\000\
392 :     \\124\002\011\000\150\001\000\000\
393 :     \\125\002\000\000\
394 :     \\126\002\011\000\148\001\000\000\
395 :     \\127\002\000\000\
396 :     \\128\002\011\000\146\001\000\000\
397 :     \\129\002\012\000\228\000\000\000\
398 :     \\130\002\011\000\157\001\000\000\
399 :     \\131\002\039\000\158\001\000\000\
400 :     \\132\002\012\000\228\000\000\000\
401 :     \\133\002\011\000\152\001\000\000\
402 :     \\134\002\000\000\
403 :     \\135\002\000\000\
404 :     \\136\002\020\000\153\001\000\000\
405 :     \\137\002\000\000\
406 :     \\138\002\000\000\
407 :     \\139\002\000\000\
408 :     \\140\002\059\000\192\000\000\000\
409 :     \\141\002\000\000\
410 :     \\142\002\011\000\193\000\000\000\
411 :     \\143\002\000\000\
412 :     \\144\002\000\000\
413 :     \\145\002\000\000\
414 :     \\146\002\000\000\
415 :     \\147\002\000\000\
416 :     \\148\002\000\000\
417 :     \\149\002\000\000\
418 :     \\150\002\000\000\
419 :     \\151\002\000\000\
420 :     \\152\002\002\000\111\000\003\000\086\001\009\000\041\000\010\000\040\000\
421 :     \\016\000\038\000\020\000\037\000\022\000\036\000\027\000\034\000\
422 :     \\028\000\033\000\034\000\030\000\035\000\029\000\036\000\085\001\
423 :     \\037\000\110\000\038\000\026\000\041\000\024\000\042\000\023\000\
424 :     \\048\000\021\000\049\000\084\001\050\000\020\000\052\000\019\000\
425 :     \\053\000\018\000\058\000\016\000\000\000\
426 :     \\152\002\002\000\111\000\009\000\041\000\010\000\040\000\016\000\038\000\
427 :     \\022\000\036\000\027\000\034\000\028\000\033\000\034\000\030\000\
428 :     \\035\000\029\000\037\000\110\000\038\000\026\000\041\000\024\000\
429 :     \\042\000\023\000\048\000\021\000\050\000\020\000\052\000\019\000\
430 :     \\053\000\018\000\000\000\
431 :     \\153\002\000\000\
432 :     \\154\002\000\000\
433 :     \\155\002\009\000\041\000\010\000\040\000\016\000\038\000\022\000\036\000\
434 :     \\027\000\034\000\028\000\033\000\034\000\030\000\035\000\029\000\
435 :     \\037\000\027\000\038\000\026\000\041\000\024\000\042\000\023\000\
436 :     \\048\000\021\000\050\000\020\000\052\000\019\000\053\000\018\000\000\000\
437 :     \\156\002\009\000\041\000\010\000\040\000\016\000\038\000\022\000\036\000\
438 :     \\027\000\034\000\028\000\033\000\034\000\030\000\035\000\029\000\
439 :     \\037\000\027\000\038\000\026\000\041\000\024\000\042\000\023\000\
440 :     \\048\000\021\000\050\000\020\000\052\000\019\000\053\000\018\000\000\000\
441 :     \\157\002\011\000\190\000\000\000\
442 :     \\158\002\011\000\190\000\000\000\
443 :     \\159\002\011\000\193\000\000\000\
444 :     \\160\002\011\000\207\000\000\000\
445 :     \\161\002\000\000\
446 :     \\162\002\000\000\
447 :     \\163\002\011\000\190\000\000\000\
448 :     \\164\002\000\000\
449 :     \\165\002\000\000\
450 :     \\166\002\000\000\
451 :     \\167\002\011\000\207\000\000\000\
452 :     \\168\002\008\000\058\000\000\000\
453 :     \\169\002\000\000\
454 :     \\170\002\000\000\
455 :     \\171\002\000\000\
456 :     \\172\002\029\000\056\000\059\000\055\000\067\000\054\000\068\000\053\000\000\000\
457 :     \"
458 :     val actionRowNumbers =
459 :     "\001\000\052\001\066\001\057\001\
460 :     \\005\000\143\000\137\000\068\001\
461 :     \\149\000\144\000\026\000\004\000\
462 :     \\003\000\007\000\095\000\002\000\
463 :     \\010\000\218\000\005\000\005\000\
464 :     \\002\000\005\000\016\000\005\000\
465 :     \\239\000\048\001\254\000\237\000\
466 :     \\235\000\002\000\006\000\005\000\
467 :     \\014\000\011\000\098\000\096\000\
468 :     \\218\000\002\000\218\000\005\000\
469 :     \\151\000\150\000\087\000\086\000\
470 :     \\092\000\049\001\250\000\002\001\
471 :     \\091\000\145\000\146\000\002\000\
472 :     \\002\000\018\000\011\000\067\001\
473 :     \\064\001\078\000\130\000\079\000\
474 :     \\155\000\076\000\163\000\159\000\
475 :     \\073\000\129\000\047\000\103\000\
476 :     \\154\000\090\000\104\000\088\000\
477 :     \\057\000\240\000\175\000\173\000\
478 :     \\211\000\170\000\165\000\031\000\
479 :     \\181\000\176\000\013\000\012\000\
480 :     \\020\000\184\000\009\000\005\000\
481 :     \\183\000\182\000\089\000\021\000\
482 :     \\243\000\025\000\216\000\053\001\
483 :     \\035\001\055\001\048\000\142\000\
484 :     \\067\000\249\000\233\000\102\000\
485 :     \\093\000\147\000\048\001\061\000\
486 :     \\048\001\048\001\062\000\254\000\
487 :     \\254\000\254\000\238\000\236\000\
488 :     \\060\000\152\000\056\001\072\000\
489 :     \\204\000\200\000\242\000\206\000\
490 :     \\211\000\013\000\032\000\124\000\
491 :     \\138\000\248\000\005\000\097\000\
492 :     \\244\000\005\000\059\000\028\000\
493 :     \\054\001\016\000\003\001\135\000\
494 :     \\134\000\136\000\119\000\121\000\
495 :     \\116\000\018\000\008\000\110\000\
496 :     \\106\000\133\000\065\001\157\000\
497 :     \\002\000\002\000\156\000\158\000\
498 :     \\002\000\153\000\006\000\002\000\
499 :     \\002\000\011\000\167\000\211\000\
500 :     \\018\000\002\000\011\000\034\000\
501 :     \\177\000\077\000\196\000\185\000\
502 :     \\074\000\194\000\049\000\187\000\
503 :     \\195\000\035\000\241\000\200\000\
504 :     \\099\000\005\000\179\000\016\000\
505 :     \\050\000\218\000\080\000\219\000\
506 :     \\005\000\051\000\022\000\005\000\
507 :     \\022\000\018\000\234\000\016\000\
508 :     \\044\001\048\001\063\000\045\001\
509 :     \\002\000\255\000\064\000\000\001\
510 :     \\002\000\005\000\004\001\014\000\
511 :     \\052\000\018\000\014\000\210\000\
512 :     \\211\000\166\000\033\000\002\000\
513 :     \\011\000\098\000\227\000\218\000\
514 :     \\218\000\053\000\011\000\218\000\
515 :     \\254\000\148\000\018\000\115\000\
516 :     \\018\000\081\000\030\000\075\000\
517 :     \\109\000\068\000\112\000\017\000\
518 :     \\161\000\162\000\131\000\132\000\
519 :     \\164\000\128\000\127\000\140\000\
520 :     \\198\000\018\000\212\000\172\000\
521 :     \\199\000\169\000\174\000\011\000\
522 :     \\186\000\011\000\188\000\019\000\
523 :     \\011\000\018\000\011\000\009\000\
524 :     \\054\000\100\000\180\000\018\000\
525 :     \\215\000\217\000\025\000\059\001\
526 :     \\023\000\036\001\005\001\033\001\
527 :     \\037\001\038\001\029\000\101\000\
528 :     \\037\000\048\001\038\000\254\000\
529 :     \\036\000\063\001\082\000\005\001\
530 :     \\061\001\005\000\098\000\218\000\
531 :     \\005\000\015\000\016\000\005\001\
532 :     \\005\000\005\000\218\000\218\000\
533 :     \\069\000\005\001\205\000\002\000\
534 :     \\201\000\207\000\168\000\211\000\
535 :     \\126\000\125\000\230\000\018\000\
536 :     \\016\000\245\000\221\000\098\000\
537 :     \\139\000\027\000\039\000\120\000\
538 :     \\117\000\118\000\017\000\114\000\
539 :     \\018\000\111\000\006\000\018\000\
540 :     \\105\000\171\000\083\000\197\000\
541 :     \\193\000\189\000\191\000\190\000\
542 :     \\203\000\058\000\214\000\220\000\
543 :     \\058\001\039\001\048\001\048\001\
544 :     \\094\000\040\000\002\000\051\001\
545 :     \\041\000\160\000\042\000\002\000\
546 :     \\035\001\006\001\014\001\012\001\
547 :     \\005\000\010\001\024\000\008\001\
548 :     \\070\000\030\001\015\001\055\000\
549 :     \\016\000\016\001\231\000\065\000\
550 :     \\018\001\013\001\026\001\011\001\
551 :     \\009\001\022\000\007\001\213\000\
552 :     \\211\000\209\000\228\000\229\000\
553 :     \\223\000\222\000\005\000\254\000\
554 :     \\246\000\113\000\123\000\122\000\
555 :     \\108\000\107\000\178\000\011\000\
556 :     \\011\000\043\000\066\000\047\001\
557 :     \\034\001\251\000\252\000\050\001\
558 :     \\048\001\254\000\141\000\056\000\
559 :     \\098\000\071\000\218\000\022\001\
560 :     \\005\000\022\000\015\000\016\000\
561 :     \\029\001\232\000\005\001\005\000\
562 :     \\018\000\060\001\208\000\098\000\
563 :     \\225\000\044\000\192\000\202\000\
564 :     \\040\001\023\000\084\000\085\000\
565 :     \\002\000\046\001\001\001\023\000\
566 :     \\023\001\018\000\021\001\019\001\
567 :     \\020\001\028\001\032\001\031\001\
568 :     \\045\000\025\001\027\001\224\000\
569 :     \\018\000\247\000\046\000\041\001\
570 :     \\042\001\253\000\062\001\024\001\
571 :     \\017\001\226\000\043\001\000\000"
572 :     val gotoT =
573 :     "\
574 :     \\001\000\009\000\003\000\008\000\021\000\007\000\022\000\006\000\
575 :     \\023\000\005\000\052\000\004\000\053\000\003\000\070\000\002\000\
576 :     \\071\000\001\000\076\000\195\001\000\000\
577 :     \\052\000\004\000\053\000\003\000\070\000\045\000\071\000\001\000\000\000\
578 :     \\000\000\
579 :     \\000\000\
580 :     \\001\000\047\000\056\000\046\000\000\000\
581 :     \\000\000\
582 :     \\001\000\050\000\003\000\008\000\023\000\049\000\000\000\
583 :     \\000\000\
584 :     \\000\000\
585 :     \\000\000\
586 :     \\075\000\055\000\000\000\
587 :     \\001\000\009\000\003\000\008\000\020\000\059\000\021\000\058\000\
588 :     \\022\000\006\000\023\000\005\000\025\000\057\000\000\000\
589 :     \\001\000\009\000\003\000\008\000\021\000\062\000\022\000\006\000\
590 :     \\023\000\005\000\024\000\061\000\000\000\
591 :     \\002\000\067\000\008\000\066\000\018\000\065\000\019\000\064\000\000\000\
592 :     \\000\000\
593 :     \\001\000\009\000\003\000\008\000\021\000\072\000\022\000\006\000\
594 :     \\023\000\005\000\000\000\
595 :     \\002\000\081\000\003\000\080\000\026\000\079\000\027\000\078\000\
596 :     \\028\000\077\000\029\000\076\000\030\000\075\000\031\000\074\000\
597 :     \\036\000\073\000\000\000\
598 :     \\044\000\092\000\045\000\091\000\000\000\
599 :     \\001\000\096\000\072\000\095\000\000\000\
600 :     \\001\000\098\000\067\000\097\000\000\000\
601 :     \\001\000\009\000\003\000\008\000\021\000\099\000\022\000\006\000\
602 :     \\023\000\005\000\000\000\
603 :     \\001\000\100\000\000\000\
604 :     \\001\000\103\000\006\000\102\000\051\000\101\000\000\000\
605 :     \\001\000\105\000\000\000\
606 :     \\000\000\
607 :     \\052\000\004\000\053\000\003\000\069\000\107\000\071\000\106\000\000\000\
608 :     \\052\000\004\000\053\000\111\000\055\000\110\000\000\000\
609 :     \\003\000\114\000\000\000\
610 :     \\003\000\115\000\000\000\
611 :     \\001\000\009\000\003\000\008\000\021\000\116\000\022\000\006\000\
612 :     \\023\000\005\000\000\000\
613 :     \\002\000\067\000\008\000\117\000\000\000\
614 :     \\001\000\119\000\074\000\118\000\000\000\
615 :     \\002\000\081\000\003\000\080\000\030\000\124\000\031\000\074\000\
616 :     \\039\000\123\000\040\000\122\000\042\000\121\000\043\000\120\000\000\000\
617 :     \\002\000\081\000\003\000\080\000\016\000\128\000\017\000\127\000\
618 :     \\026\000\126\000\027\000\078\000\028\000\077\000\029\000\076\000\
619 :     \\030\000\075\000\031\000\074\000\000\000\
620 :     \\004\000\130\000\050\000\129\000\000\000\
621 :     \\000\000\
622 :     \\045\000\133\000\047\000\132\000\000\000\
623 :     \\001\000\009\000\003\000\008\000\021\000\134\000\022\000\006\000\
624 :     \\023\000\005\000\000\000\
625 :     \\045\000\133\000\047\000\135\000\000\000\
626 :     \\001\000\096\000\072\000\136\000\000\000\
627 :     \\000\000\
628 :     \\000\000\
629 :     \\000\000\
630 :     \\000\000\
631 :     \\000\000\
632 :     \\000\000\
633 :     \\000\000\
634 :     \\001\000\047\000\056\000\138\000\000\000\
635 :     \\000\000\
636 :     \\000\000\
637 :     \\000\000\
638 :     \\001\000\009\000\003\000\008\000\021\000\139\000\022\000\006\000\
639 :     \\023\000\005\000\000\000\
640 :     \\001\000\009\000\003\000\008\000\021\000\140\000\022\000\006\000\
641 :     \\023\000\005\000\000\000\
642 :     \\009\000\144\000\012\000\143\000\013\000\142\000\014\000\141\000\000\000\
643 :     \\002\000\081\000\003\000\080\000\016\000\149\000\017\000\127\000\
644 :     \\026\000\126\000\027\000\078\000\028\000\077\000\029\000\076\000\
645 :     \\030\000\075\000\031\000\074\000\000\000\
646 :     \\000\000\
647 :     \\075\000\150\000\000\000\
648 :     \\000\000\
649 :     \\000\000\
650 :     \\000\000\
651 :     \\000\000\
652 :     \\000\000\
653 :     \\000\000\
654 :     \\000\000\
655 :     \\000\000\
656 :     \\000\000\
657 :     \\000\000\
658 :     \\000\000\
659 :     \\000\000\
660 :     \\000\000\
661 :     \\000\000\
662 :     \\000\000\
663 :     \\000\000\
664 :     \\000\000\
665 :     \\000\000\
666 :     \\000\000\
667 :     \\002\000\081\000\003\000\080\000\029\000\163\000\030\000\075\000\
668 :     \\031\000\074\000\041\000\162\000\000\000\
669 :     \\000\000\
670 :     \\000\000\
671 :     \\000\000\
672 :     \\000\000\
673 :     \\000\000\
674 :     \\002\000\081\000\003\000\080\000\026\000\167\000\027\000\078\000\
675 :     \\028\000\077\000\029\000\076\000\030\000\075\000\031\000\074\000\000\000\
676 :     \\002\000\081\000\003\000\080\000\026\000\170\000\027\000\078\000\
677 :     \\028\000\077\000\029\000\076\000\030\000\075\000\031\000\074\000\
678 :     \\035\000\169\000\000\000\
679 :     \\002\000\067\000\008\000\174\000\032\000\173\000\033\000\172\000\000\000\
680 :     \\000\000\
681 :     \\002\000\180\000\005\000\179\000\038\000\178\000\000\000\
682 :     \\001\000\182\000\000\000\
683 :     \\000\000\
684 :     \\000\000\
685 :     \\000\000\
686 :     \\000\000\
687 :     \\000\000\
688 :     \\046\000\186\000\000\000\
689 :     \\000\000\
690 :     \\000\000\
691 :     \\066\000\189\000\000\000\
692 :     \\000\000\
693 :     \\000\000\
694 :     \\000\000\
695 :     \\000\000\
696 :     \\000\000\
697 :     \\001\000\103\000\006\000\102\000\051\000\194\000\000\000\
698 :     \\000\000\
699 :     \\000\000\
700 :     \\000\000\
701 :     \\052\000\004\000\053\000\003\000\069\000\196\000\071\000\106\000\000\000\
702 :     \\000\000\
703 :     \\052\000\004\000\053\000\003\000\069\000\198\000\071\000\106\000\000\000\
704 :     \\052\000\004\000\053\000\003\000\069\000\199\000\071\000\106\000\000\000\
705 :     \\000\000\
706 :     \\052\000\004\000\053\000\111\000\055\000\201\000\000\000\
707 :     \\052\000\004\000\053\000\111\000\055\000\202\000\000\000\
708 :     \\052\000\004\000\053\000\111\000\055\000\203\000\000\000\
709 :     \\000\000\
710 :     \\000\000\
711 :     \\000\000\
712 :     \\000\000\
713 :     \\000\000\
714 :     \\000\000\
715 :     \\000\000\
716 :     \\037\000\208\000\000\000\
717 :     \\000\000\
718 :     \\000\000\
719 :     \\002\000\081\000\003\000\080\000\029\000\163\000\030\000\075\000\
720 :     \\031\000\074\000\041\000\211\000\000\000\
721 :     \\002\000\081\000\003\000\080\000\026\000\214\000\027\000\213\000\
722 :     \\028\000\077\000\029\000\212\000\030\000\075\000\031\000\074\000\000\000\
723 :     \\000\000\
724 :     \\000\000\
725 :     \\000\000\
726 :     \\000\000\
727 :     \\001\000\218\000\000\000\
728 :     \\000\000\
729 :     \\000\000\
730 :     \\001\000\221\000\000\000\
731 :     \\000\000\
732 :     \\000\000\
733 :     \\000\000\
734 :     \\001\000\103\000\006\000\225\000\000\000\
735 :     \\000\000\
736 :     \\000\000\
737 :     \\000\000\
738 :     \\000\000\
739 :     \\000\000\
740 :     \\009\000\227\000\000\000\
741 :     \\000\000\
742 :     \\009\000\144\000\012\000\143\000\013\000\142\000\014\000\230\000\
743 :     \\015\000\229\000\000\000\
744 :     \\002\000\067\000\008\000\233\000\010\000\232\000\011\000\231\000\000\000\
745 :     \\000\000\
746 :     \\000\000\
747 :     \\000\000\
748 :     \\000\000\
749 :     \\000\000\
750 :     \\001\000\009\000\003\000\008\000\021\000\237\000\022\000\006\000\
751 :     \\023\000\005\000\025\000\236\000\000\000\
752 :     \\001\000\009\000\003\000\008\000\020\000\239\000\021\000\238\000\
753 :     \\022\000\006\000\023\000\005\000\000\000\
754 :     \\000\000\
755 :     \\000\000\
756 :     \\001\000\009\000\003\000\008\000\021\000\062\000\022\000\006\000\
757 :     \\023\000\005\000\024\000\240\000\000\000\
758 :     \\000\000\
759 :     \\002\000\067\000\008\000\066\000\018\000\065\000\019\000\241\000\000\000\
760 :     \\001\000\009\000\003\000\008\000\021\000\242\000\022\000\006\000\
761 :     \\023\000\005\000\000\000\
762 :     \\001\000\009\000\003\000\008\000\021\000\243\000\022\000\006\000\
763 :     \\023\000\005\000\000\000\
764 :     \\002\000\081\000\003\000\080\000\026\000\079\000\027\000\078\000\
765 :     \\028\000\077\000\029\000\076\000\030\000\075\000\031\000\074\000\
766 :     \\036\000\244\000\000\000\
767 :     \\000\000\
768 :     \\002\000\081\000\003\000\080\000\029\000\163\000\030\000\075\000\
769 :     \\031\000\074\000\041\000\246\000\000\000\
770 :     \\009\000\144\000\012\000\143\000\013\000\142\000\014\000\247\000\000\000\
771 :     \\001\000\009\000\003\000\008\000\021\000\248\000\022\000\006\000\
772 :     \\023\000\005\000\000\000\
773 :     \\002\000\081\000\003\000\080\000\026\000\249\000\027\000\078\000\
774 :     \\028\000\077\000\029\000\076\000\030\000\075\000\031\000\074\000\000\000\
775 :     \\000\000\
776 :     \\000\000\
777 :     \\000\000\
778 :     \\000\000\
779 :     \\000\000\
780 :     \\000\000\
781 :     \\000\000\
782 :     \\000\000\
783 :     \\000\000\
784 :     \\000\000\
785 :     \\000\000\
786 :     \\000\000\
787 :     \\037\000\004\001\000\000\
788 :     \\000\000\
789 :     \\001\000\005\001\000\000\
790 :     \\000\000\
791 :     \\001\000\103\000\006\000\006\001\000\000\
792 :     \\000\000\
793 :     \\044\000\008\001\045\000\091\000\000\000\
794 :     \\000\000\
795 :     \\000\000\
796 :     \\001\000\096\000\072\000\011\001\000\000\
797 :     \\000\000\
798 :     \\065\000\013\001\000\000\
799 :     \\001\000\098\000\067\000\016\001\000\000\
800 :     \\065\000\017\001\000\000\
801 :     \\009\000\144\000\012\000\143\000\013\000\142\000\014\000\018\001\000\000\
802 :     \\000\000\
803 :     \\001\000\103\000\006\000\019\001\000\000\
804 :     \\000\000\
805 :     \\052\000\004\000\053\000\003\000\069\000\020\001\071\000\106\000\000\000\
806 :     \\000\000\
807 :     \\000\000\
808 :     \\001\000\009\000\003\000\008\000\020\000\022\001\021\000\238\000\
809 :     \\022\000\006\000\023\000\005\000\000\000\
810 :     \\000\000\
811 :     \\000\000\
812 :     \\000\000\
813 :     \\001\000\009\000\003\000\008\000\021\000\024\001\022\000\006\000\
814 :     \\023\000\005\000\000\000\
815 :     \\001\000\119\000\074\000\025\001\000\000\
816 :     \\052\000\029\001\057\000\028\001\058\000\027\001\073\000\026\001\000\000\
817 :     \\002\000\081\000\003\000\080\000\030\000\124\000\031\000\074\000\
818 :     \\039\000\042\001\042\000\121\000\043\000\120\000\000\000\
819 :     \\000\000\
820 :     \\009\000\144\000\012\000\143\000\013\000\142\000\014\000\044\001\000\000\
821 :     \\002\000\081\000\003\000\080\000\030\000\124\000\031\000\074\000\
822 :     \\039\000\123\000\040\000\045\001\042\000\121\000\043\000\120\000\000\000\
823 :     \\000\000\
824 :     \\002\000\081\000\003\000\080\000\029\000\163\000\030\000\075\000\
825 :     \\031\000\074\000\041\000\046\001\000\000\
826 :     \\000\000\
827 :     \\000\000\
828 :     \\001\000\009\000\003\000\008\000\021\000\048\001\022\000\006\000\
829 :     \\023\000\005\000\000\000\
830 :     \\002\000\081\000\003\000\080\000\016\000\049\001\017\000\127\000\
831 :     \\026\000\126\000\027\000\078\000\028\000\077\000\029\000\076\000\
832 :     \\030\000\075\000\031\000\074\000\000\000\
833 :     \\004\000\130\000\050\000\050\001\000\000\
834 :     \\000\000\
835 :     \\044\000\053\001\045\000\091\000\000\000\
836 :     \\045\000\133\000\047\000\054\001\000\000\
837 :     \\000\000\
838 :     \\002\000\081\000\003\000\080\000\016\000\056\001\017\000\127\000\
839 :     \\026\000\126\000\027\000\078\000\028\000\077\000\029\000\076\000\
840 :     \\030\000\075\000\031\000\074\000\000\000\
841 :     \\044\000\057\001\045\000\091\000\000\000\
842 :     \\052\000\004\000\053\000\111\000\055\000\058\001\000\000\
843 :     \\000\000\
844 :     \\009\000\144\000\012\000\143\000\013\000\142\000\014\000\059\001\000\000\
845 :     \\000\000\
846 :     \\009\000\144\000\012\000\061\001\013\000\060\001\000\000\
847 :     \\000\000\
848 :     \\000\000\
849 :     \\000\000\
850 :     \\000\000\
851 :     \\000\000\
852 :     \\000\000\
853 :     \\009\000\068\001\000\000\
854 :     \\000\000\
855 :     \\000\000\
856 :     \\000\000\
857 :     \\000\000\
858 :     \\000\000\
859 :     \\000\000\
860 :     \\000\000\
861 :     \\000\000\
862 :     \\000\000\
863 :     \\009\000\144\000\012\000\143\000\013\000\142\000\014\000\069\001\000\000\
864 :     \\000\000\
865 :     \\000\000\
866 :     \\000\000\
867 :     \\000\000\
868 :     \\000\000\
869 :     \\002\000\081\000\003\000\080\000\026\000\170\000\027\000\078\000\
870 :     \\028\000\077\000\029\000\076\000\030\000\075\000\031\000\074\000\
871 :     \\035\000\070\001\000\000\
872 :     \\000\000\
873 :     \\002\000\081\000\003\000\080\000\026\000\170\000\027\000\078\000\
874 :     \\028\000\077\000\029\000\076\000\030\000\075\000\031\000\074\000\
875 :     \\035\000\071\001\000\000\
876 :     \\000\000\
877 :     \\002\000\067\000\008\000\174\000\032\000\173\000\033\000\072\001\000\000\
878 :     \\002\000\081\000\003\000\080\000\026\000\073\001\027\000\078\000\
879 :     \\028\000\077\000\029\000\076\000\030\000\075\000\031\000\074\000\000\000\
880 :     \\009\000\144\000\012\000\143\000\013\000\142\000\014\000\074\001\000\000\
881 :     \\002\000\081\000\003\000\080\000\026\000\075\001\027\000\078\000\
882 :     \\028\000\077\000\029\000\076\000\030\000\075\000\031\000\074\000\000\000\
883 :     \\002\000\180\000\005\000\179\000\038\000\076\001\000\000\
884 :     \\000\000\
885 :     \\000\000\
886 :     \\000\000\
887 :     \\009\000\144\000\012\000\143\000\013\000\142\000\014\000\078\001\000\000\
888 :     \\000\000\
889 :     \\000\000\
890 :     \\046\000\079\001\000\000\
891 :     \\000\000\
892 :     \\001\000\103\000\006\000\081\001\068\000\080\001\000\000\
893 :     \\000\000\
894 :     \\052\000\029\001\057\000\085\001\058\000\027\001\000\000\
895 :     \\000\000\
896 :     \\000\000\
897 :     \\000\000\
898 :     \\000\000\
899 :     \\000\000\
900 :     \\000\000\
901 :     \\052\000\004\000\053\000\003\000\069\000\088\001\071\000\106\000\000\000\
902 :     \\000\000\
903 :     \\052\000\004\000\053\000\111\000\055\000\090\001\000\000\
904 :     \\000\000\
905 :     \\000\000\
906 :     \\000\000\
907 :     \\052\000\029\001\057\000\093\001\058\000\027\001\000\000\
908 :     \\000\000\
909 :     \\001\000\047\000\056\000\094\001\000\000\
910 :     \\004\000\096\001\061\000\095\001\000\000\
911 :     \\045\000\098\001\060\000\097\001\000\000\
912 :     \\001\000\100\001\059\000\099\001\000\000\
913 :     \\001\000\103\000\006\000\103\001\063\000\102\001\064\000\101\001\000\000\
914 :     \\001\000\103\000\006\000\106\001\007\000\105\001\000\000\
915 :     \\052\000\029\001\057\000\107\001\058\000\027\001\000\000\
916 :     \\001\000\108\001\000\000\
917 :     \\001\000\110\001\062\000\109\001\000\000\
918 :     \\045\000\098\001\060\000\111\001\000\000\
919 :     \\045\000\133\000\047\000\112\001\000\000\
920 :     \\000\000\
921 :     \\052\000\029\001\057\000\114\001\058\000\027\001\000\000\
922 :     \\000\000\
923 :     \\001\000\009\000\003\000\008\000\021\000\115\001\022\000\006\000\
924 :     \\023\000\005\000\000\000\
925 :     \\000\000\
926 :     \\000\000\
927 :     \\000\000\
928 :     \\002\000\081\000\003\000\080\000\029\000\163\000\030\000\075\000\
929 :     \\031\000\074\000\041\000\117\001\000\000\
930 :     \\000\000\
931 :     \\000\000\
932 :     \\000\000\
933 :     \\009\000\144\000\012\000\143\000\013\000\142\000\014\000\118\001\000\000\
934 :     \\001\000\103\000\006\000\119\001\000\000\
935 :     \\000\000\
936 :     \\000\000\
937 :     \\004\000\122\001\048\000\121\001\049\000\120\001\000\000\
938 :     \\000\000\
939 :     \\000\000\
940 :     \\000\000\
941 :     \\000\000\
942 :     \\000\000\
943 :     \\009\000\227\000\000\000\
944 :     \\009\000\125\001\000\000\
945 :     \\000\000\
946 :     \\009\000\144\000\012\000\143\000\013\000\142\000\014\000\127\001\
947 :     \\015\000\126\001\000\000\
948 :     \\000\000\
949 :     \\002\000\067\000\008\000\233\000\010\000\232\000\011\000\128\001\000\000\
950 :     \\009\000\144\000\012\000\143\000\013\000\142\000\014\000\129\001\000\000\
951 :     \\000\000\
952 :     \\000\000\
953 :     \\000\000\
954 :     \\000\000\
955 :     \\000\000\
956 :     \\000\000\
957 :     \\000\000\
958 :     \\000\000\
959 :     \\000\000\
960 :     \\000\000\
961 :     \\000\000\
962 :     \\000\000\
963 :     \\000\000\
964 :     \\000\000\
965 :     \\052\000\004\000\053\000\003\000\069\000\133\001\071\000\106\000\000\000\
966 :     \\052\000\004\000\053\000\003\000\069\000\134\001\071\000\106\000\000\000\
967 :     \\000\000\
968 :     \\000\000\
969 :     \\001\000\009\000\003\000\008\000\021\000\138\001\022\000\006\000\
970 :     \\023\000\005\000\054\000\137\001\000\000\
971 :     \\052\000\004\000\053\000\003\000\070\000\139\001\071\000\001\000\000\000\
972 :     \\000\000\
973 :     \\000\000\
974 :     \\000\000\
975 :     \\001\000\009\000\003\000\008\000\021\000\142\001\022\000\006\000\
976 :     \\023\000\005\000\000\000\
977 :     \\066\000\143\001\000\000\
978 :     \\000\000\
979 :     \\000\000\
980 :     \\000\000\
981 :     \\001\000\145\001\000\000\
982 :     \\000\000\
983 :     \\000\000\
984 :     \\000\000\
985 :     \\000\000\
986 :     \\000\000\
987 :     \\000\000\
988 :     \\000\000\
989 :     \\001\000\103\000\006\000\103\001\064\000\152\001\000\000\
990 :     \\000\000\
991 :     \\001\000\103\000\006\000\106\001\007\000\153\001\000\000\
992 :     \\000\000\
993 :     \\000\000\
994 :     \\000\000\
995 :     \\000\000\
996 :     \\000\000\
997 :     \\000\000\
998 :     \\065\000\157\001\000\000\
999 :     \\000\000\
1000 :     \\000\000\
1001 :     \\002\000\081\000\003\000\080\000\029\000\163\000\030\000\075\000\
1002 :     \\031\000\074\000\041\000\158\001\000\000\
1003 :     \\000\000\
1004 :     \\000\000\
1005 :     \\000\000\
1006 :     \\000\000\
1007 :     \\000\000\
1008 :     \\001\000\160\001\000\000\
1009 :     \\052\000\004\000\053\000\111\000\055\000\161\001\000\000\
1010 :     \\000\000\
1011 :     \\000\000\
1012 :     \\000\000\
1013 :     \\000\000\
1014 :     \\000\000\
1015 :     \\000\000\
1016 :     \\000\000\
1017 :     \\002\000\081\000\003\000\080\000\026\000\162\001\027\000\078\000\
1018 :     \\028\000\077\000\029\000\076\000\030\000\075\000\031\000\074\000\000\000\
1019 :     \\002\000\081\000\003\000\080\000\016\000\163\001\017\000\127\000\
1020 :     \\026\000\126\000\027\000\078\000\028\000\077\000\029\000\076\000\
1021 :     \\030\000\075\000\031\000\074\000\000\000\
1022 :     \\000\000\
1023 :     \\000\000\
1024 :     \\001\000\103\000\006\000\081\001\052\000\004\000\053\000\003\000\
1025 :     \\068\000\167\001\069\000\166\001\071\000\106\000\000\000\
1026 :     \\000\000\
1027 :     \\000\000\
1028 :     \\000\000\
1029 :     \\000\000\
1030 :     \\052\000\004\000\053\000\003\000\069\000\169\001\071\000\106\000\000\000\
1031 :     \\052\000\004\000\053\000\111\000\055\000\170\001\000\000\
1032 :     \\000\000\
1033 :     \\000\000\
1034 :     \\004\000\096\001\061\000\172\001\000\000\
1035 :     \\000\000\
1036 :     \\045\000\098\001\060\000\174\001\000\000\
1037 :     \\000\000\
1038 :     \\001\000\100\001\059\000\175\001\000\000\
1039 :     \\065\000\176\001\000\000\
1040 :     \\001\000\103\000\006\000\103\001\063\000\177\001\064\000\101\001\000\000\
1041 :     \\001\000\103\000\006\000\179\001\064\000\178\001\000\000\
1042 :     \\000\000\
1043 :     \\000\000\
1044 :     \\052\000\029\001\057\000\180\001\058\000\027\001\000\000\
1045 :     \\001\000\110\001\062\000\181\001\000\000\
1046 :     \\009\000\144\000\012\000\143\000\013\000\142\000\014\000\182\001\000\000\
1047 :     \\000\000\
1048 :     \\000\000\
1049 :     \\004\000\122\001\048\000\183\001\049\000\120\001\000\000\
1050 :     \\000\000\
1051 :     \\000\000\
1052 :     \\000\000\
1053 :     \\000\000\
1054 :     \\000\000\
1055 :     \\001\000\103\000\006\000\081\001\068\000\186\001\000\000\
1056 :     \\000\000\
1057 :     \\000\000\
1058 :     \\001\000\009\000\003\000\008\000\021\000\138\001\022\000\006\000\
1059 :     \\023\000\005\000\054\000\189\001\000\000\
1060 :     \\000\000\
1061 :     \\000\000\
1062 :     \\001\000\103\000\006\000\081\001\068\000\190\001\000\000\
1063 :     \\000\000\
1064 :     \\009\000\144\000\012\000\143\000\013\000\142\000\014\000\191\001\000\000\
1065 :     \\000\000\
1066 :     \\000\000\
1067 :     \\000\000\
1068 :     \\000\000\
1069 :     \\000\000\
1070 :     \\000\000\
1071 :     \\000\000\
1072 :     \\000\000\
1073 :     \\000\000\
1074 :     \\000\000\
1075 :     \\009\000\144\000\012\000\143\000\013\000\142\000\014\000\193\001\000\000\
1076 :     \\000\000\
1077 :     \\000\000\
1078 :     \\000\000\
1079 :     \\000\000\
1080 :     \\000\000\
1081 :     \\000\000\
1082 :     \\000\000\
1083 :     \\000\000\
1084 :     \\000\000\
1085 :     \\000\000\
1086 :     \\000\000\
1087 :     \"
1088 :     val numstates = 452
1089 :     val numrules = 231
1090 :     val s = ref "" and index = ref 0
1091 :     val string_to_int = fn () =>
1092 :     let val i = !index
1093 :     in index := i+2; Char.ord(String.sub(!s,i)) + Char.ord(String.sub(!s,i+1)) * 256
1094 :     end
1095 :     val string_to_list = fn s' =>
1096 :     let val len = String.size s'
1097 :     fun f () =
1098 :     if !index < len then string_to_int() :: f()
1099 :     else nil
1100 :     in index := 0; s := s'; f ()
1101 :     end
1102 :     val string_to_pairlist = fn (conv_key,conv_entry) =>
1103 :     let fun f () =
1104 :     case string_to_int()
1105 :     of 0 => EMPTY
1106 :     | n => PAIR(conv_key (n-1),conv_entry (string_to_int()),f())
1107 :     in f
1108 :     end
1109 :     val string_to_pairlist_default = fn (conv_key,conv_entry) =>
1110 :     let val conv_row = string_to_pairlist(conv_key,conv_entry)
1111 :     in fn () =>
1112 :     let val default = conv_entry(string_to_int())
1113 :     val row = conv_row()
1114 :     in (row,default)
1115 :     end
1116 :     end
1117 :     val string_to_table = fn (convert_row,s') =>
1118 :     let val len = String.size s'
1119 :     fun f ()=
1120 :     if !index < len then convert_row() :: f()
1121 :     else nil
1122 :     in (s := s'; index := 0; f ())
1123 :     end
1124 :     local
1125 :     val memo = Array.array(numstates+numrules,ERROR)
1126 :     val _ =let fun g i=(Array.update(memo,i,REDUCE(i-numstates)); g(i+1))
1127 :     fun f i =
1128 :     if i=numstates then g i
1129 :     else (Array.update(memo,i,SHIFT (STATE i)); f (i+1))
1130 :     in f 0 handle Subscript => ()
1131 :     end
1132 :     in
1133 :     val entry_to_action = fn 0 => ACCEPT | 1 => ERROR | j => Array.sub(memo,(j-2))
1134 :     end
1135 :     val gotoT=Array.fromList(string_to_table(string_to_pairlist(NT,STATE),gotoT))
1136 :     val actionRows=string_to_table(string_to_pairlist_default(T,entry_to_action),actionRows)
1137 :     val actionRowNumbers = string_to_list actionRowNumbers
1138 :     val actionT = let val actionRowLookUp=
1139 :     let val a=Array.fromList(actionRows) in fn i=>Array.sub(a,i) end
1140 :     in Array.fromList(map actionRowLookUp actionRowNumbers)
1141 :     end
1142 :     in LrTable.mkLrTable {actions=actionT,gotos=gotoT,numRules=numrules,
1143 :     numStates=numstates,initialState=STATE 0}
1144 :     end
1145 :     end
1146 :     local open Header in
1147 :     type pos = int
1148 :     type arg = pos*pos -> ErrorMsg.severity -> string -> unit
1149 :     structure MlyValue =
1150 :     struct
1151 :     datatype svalue = VOID | ntVOID of unit | STRING of (string)
1152 :     | REAL of (string) | INT0 of (int) | INT of (int)
1153 :     | TYVAR of (string) | ID of (string)
1154 :     | interdec of (dec withenv enved) | importdec of (string list)
1155 :     | fctb of ( ( symbol * functorVar * fctb ) list enved)
1156 :     | fparam of (functorFormal)
1157 :     | strb of (bool -> ( symbol*structureVar*strb ) list epathstamped)
1158 :     | sdec of (dec withenv epathnstamped)
1159 :     | sdecs' of (dec list withenv epathnstamped)
1160 :     | sdecs of (dec list withenv epathnstamped) | str of (strtype)
1161 :     | sigb of (signatureVar list withenv enved)
1162 :     | sigconstraint_op of ( ( Basics.env * Structure ) -> Structure option)
1163 :     | sign of (bool*bool*Structure -> signtype)
1164 :     | patheqn of ( ( string->symbol ) -> symbol list list)
1165 :     | sharespec of (spectype) | exnspec of (spectype)
1166 :     | valspec of (spectype) | tyspec of (eqprop -> spectype)
1167 :     | strspec of (spectype) | spec of (spectype)
1168 :     | spec_s of (spectype) | ops of (symbol list)
1169 :     | ldecs of (dec withenv epathvstamped uvars)
1170 :     | exp_pa of (exp list evstamped)
1171 :     | ldec of (dec withenv epathvstamped uvars) | fixity of (fixity)
1172 :     | qid_p of (structureVar list enved)
1173 :     | eb of (eb list withenv epathvstamped uvars)
1174 :     | constr of ( ( Basics.env * ty -> symbol * bool * ty ) uvars)
1175 :     | constrs of ( ( Basics.env * ty -> (symbol * bool * ty) list ) uvars)
1176 :     | db of ( ( symbol * int * datacon list withenv epathed ) list)
1177 :     | tyvar_pc of (tyvar list) | tyvars of (tyvar list)
1178 :     | tb of (bool -> tb list withenv epathvstamped)
1179 :     | clause of (rawclause enved uvars)
1180 :     | clause' of ( ( symbol * pat list ) enved uvars)
1181 :     | apats of ( ( pat * fixity * complainer ) list enved uvars)
1182 :     | fb of (rawclause list list enved uvars)
1183 :     | fb' of (rawclause list enved uvars) | rvb of (rawrvb list enved)
1184 :     | constraint of (ty option enved uvars) | vb of (vb list evstamped)
1185 :     | pat_list of (pat list enved uvars)
1186 :     | pat_2c of (pat list enved uvars)
1187 :     | plabels of ( ( (symbol * pat) list * bool ) enved uvars)
1188 :     | plabel of ( ( symbol * pat ) enved uvars)
1189 :     | apat'' of (pat enved uvars)
1190 :     | apat' of ( ( pat * fixity * complainer ) enved uvars)
1191 :     | apat of ( ( pat * fixity * complainer ) enved uvars)
1192 :     | pat'' of (pat enved uvars) | pat' of (pat enved uvars)
1193 :     | pat of (pat enved uvars) | exp_2c of (exp list evstamped uvars)
1194 :     | exp_list of (exp list evstamped uvars)
1195 :     | aexp of (exp evstamped uvars)
1196 :     | app_exp of (exp precStack evstamped uvars)
1197 :     | exp of (exp evstamped uvars)
1198 :     | exp_ps of (exp list evstamped uvars)
1199 :     | elabels of ( ( symbol * exp ) list evstamped uvars)
1200 :     | elabel of ( ( symbol * exp ) evstamped uvars)
1201 :     | rule of (rule evstamped uvars)
1202 :     | match of (rule list evstamped uvars)
1203 :     | ty0_pc of (ty list enved uvars) | ty of (ty enved uvars)
1204 :     | tuple_ty of (ty list enved uvars) | ty' of (ty enved uvars)
1205 :     | tlabels of ( ( symbol * ty ) list enved uvars)
1206 :     | tlabel of ( ( symbol * ty ) enved uvars)
1207 :     | tycon of (symbol list) | selector of (symbol)
1208 :     | qid_p0 of (symbol list list)
1209 :     | qid of ( ( (string->symbol) -> symbol list ) )
1210 :     | opid of (symbol enved) | op_op of (unit susp) | int of (int)
1211 :     | id of (string) | ident of (string)
1212 :     end
1213 :     type svalue = MlyValue.svalue
1214 :     type result = dec withenv enved
1215 :     end
1216 :     structure EC=
1217 :     struct
1218 :     open LrTable
1219 :     val is_keyword =
1220 :     fn (T 8) => true | (T 9) => true | (T 10) => true | (T 12) => true |
1221 :     (T 14) => true | (T 15) => true | (T 16) => true | (T 17) => true |
1222 :     (T 18) => true | (T 20) => true | (T 21) => true | (T 22) => true |
1223 :     (T 24) => true | (T 25) => true | (T 26) => true | (T 27) => true |
1224 :     (T 28) => true | (T 30) => true | (T 31) => true | (T 32) => true |
1225 :     (T 33) => true | (T 34) => true | (T 35) => true | (T 36) => true |
1226 :     (T 37) => true | (T 38) => true | (T 39) => true | (T 40) => true |
1227 :     (T 41) => true | (T 43) => true | (T 44) => true | (T 45) => true |
1228 :     (T 46) => true | (T 47) => true | (T 48) => true | (T 49) => true |
1229 :     (T 50) => true | (T 51) => true | (T 52) => true | (T 53) => true |
1230 :     (T 55) => true | (T 56) => true | (T 66) => true | (T 67) => true |
1231 :     (T 68) => true | _ => false
1232 :     val preferred_change =
1233 :     ((T 24) :: nil
1234 :     ,(T 19) :: nil
1235 :     )::
1236 :     ((T 19) :: nil
1237 :     ,(T 24) :: nil
1238 :     )::
1239 :     ((T 10) :: nil
1240 :     ,(T 67) :: nil
1241 :     )::
1242 :     ((T 58) :: nil
1243 :     ,(T 38) :: nil
1244 :     )::
1245 :     ((T 1) :: nil
1246 :     ,(T 59) :: nil
1247 :     )::
1248 :     ((T 59) :: nil
1249 :     ,(T 1) :: nil
1250 :     )::
1251 :     (nil
1252 :     ,(T 52) :: nil
1253 :     )::
1254 :     (nil
1255 :     ,(T 50) :: nil
1256 :     )::
1257 :     (nil
1258 :     ,(T 17) :: nil
1259 :     )::
1260 :     (nil
1261 :     ,(T 62) :: nil
1262 :     )::
1263 :     nil
1264 :     val noShift =
1265 :     fn (T 0) => true | _ => false
1266 :     val showTerminal =
1267 :     fn (T 0) => "EOF"
1268 :     | (T 1) => "SEMICOLON"
1269 :     | (T 2) => "ID"
1270 :     | (T 3) => "TYVAR"
1271 :     | (T 4) => "INT"
1272 :     | (T 5) => "INT0"
1273 :     | (T 6) => "REAL"
1274 :     | (T 7) => "STRING"
1275 :     | (T 8) => "ABSTRACTION"
1276 :     | (T 9) => "ABSTYPE"
1277 :     | (T 10) => "AND"
1278 :     | (T 11) => "ARROW"
1279 :     | (T 12) => "AS"
1280 :     | (T 13) => "BAR"
1281 :     | (T 14) => "CASE"
1282 :     | (T 15) => "DATATYPE"
1283 :     | (T 16) => "DOTDOTDOT"
1284 :     | (T 17) => "ELSE"
1285 :     | (T 18) => "END"
1286 :     | (T 19) => "EQUAL"
1287 :     | (T 20) => "EQTYPE"
1288 :     | (T 21) => "EXCEPTION"
1289 :     | (T 22) => "DO"
1290 :     | (T 23) => "DOT"
1291 :     | (T 24) => "DARROW"
1292 :     | (T 25) => "FN"
1293 :     | (T 26) => "FUN"
1294 :     | (T 27) => "FUNCTOR"
1295 :     | (T 28) => "HANDLE"
1296 :     | (T 29) => "HASH"
1297 :     | (T 30) => "IF"
1298 :     | (T 31) => "IN"
1299 :     | (T 32) => "INCLUDE"
1300 :     | (T 33) => "INFIX"
1301 :     | (T 34) => "INFIXR"
1302 :     | (T 35) => "LET"
1303 :     | (T 36) => "LOCAL"
1304 :     | (T 37) => "NONFIX"
1305 :     | (T 38) => "OF"
1306 :     | (T 39) => "OP"
1307 :     | (T 40) => "OPEN"
1308 :     | (T 41) => "OVERLOAD"
1309 :     | (T 42) => "QUERY"
1310 :     | (T 43) => "RAISE"
1311 :     | (T 44) => "REC"
1312 :     | (T 45) => "SHARING"
1313 :     | (T 46) => "SIG"
1314 :     | (T 47) => "SIGNATURE"
1315 :     | (T 48) => "STRUCT"
1316 :     | (T 49) => "STRUCTURE"
1317 :     | (T 50) => "THEN"
1318 :     | (T 51) => "TYPE"
1319 :     | (T 52) => "VAL"
1320 :     | (T 53) => "WHILE"
1321 :     | (T 54) => "WILD"
1322 :     | (T 55) => "WITH"
1323 :     | (T 56) => "WITHTYPE"
1324 :     | (T 57) => "ASTERISK"
1325 :     | (T 58) => "COLON"
1326 :     | (T 59) => "COMMA"
1327 :     | (T 60) => "LBRACE"
1328 :     | (T 61) => "LBRACKET"
1329 :     | (T 62) => "LPAREN"
1330 :     | (T 63) => "RBRACE"
1331 :     | (T 64) => "RBRACKET"
1332 :     | (T 65) => "RPAREN"
1333 :     | (T 66) => "ORELSE"
1334 :     | (T 67) => "ANDALSO"
1335 :     | (T 68) => "IMPORT"
1336 :     | _ => "bogus-term"
1337 :     local open Header in
1338 :     val errtermvalue=
1339 :     fn (T 2) => MlyValue.ID(("bogus")) |
1340 :     (T 3) => MlyValue.TYVAR(("'bogus")) |
1341 :     (T 4) => MlyValue.INT((1)) |
1342 :     (T 5) => MlyValue.INT0((0)) |
1343 :     (T 6) => MlyValue.REAL(("0.0")) |
1344 :     (T 7) => MlyValue.STRING(("")) |
1345 :     _ => MlyValue.VOID
1346 :     end
1347 :     val terms = (T 0) :: (T 1) :: (T 8) :: (T 9) :: (T 10) :: (T 11) ::
1348 :     (T 12) :: (T 13) :: (T 14) :: (T 15) :: (T 16) :: (T 17) :: (T 18) ::
1349 :     (T 19) :: (T 20) :: (T 21) :: (T 22) :: (T 23) :: (T 24) :: (T 25) ::
1350 :     (T 26) :: (T 27) :: (T 28) :: (T 29) :: (T 30) :: (T 31) :: (T 32) ::
1351 :     (T 33) :: (T 34) :: (T 35) :: (T 36) :: (T 37) :: (T 38) :: (T 39) ::
1352 :     (T 40) :: (T 41) :: (T 42) :: (T 43) :: (T 44) :: (T 45) :: (T 46) ::
1353 :     (T 47) :: (T 48) :: (T 49) :: (T 50) :: (T 51) :: (T 52) :: (T 53) ::
1354 :     (T 54) :: (T 55) :: (T 56) :: (T 57) :: (T 58) :: (T 59) :: (T 60) ::
1355 :     (T 61) :: (T 62) :: (T 63) :: (T 64) :: (T 65) :: (T 66) :: (T 67) ::
1356 :     (T 68) :: nil
1357 :     end
1358 :     structure Actions =
1359 :     struct
1360 :     exception mlyAction of int
1361 :     local open Header in
1362 :     val actions =
1363 :     fn (i392,defaultPos,stack,
1364 :     (error):arg) =>
1365 :     case (i392,stack)
1366 :     of (0,(_,(MlyValue.INT INT,INT1left,INT1right))::rest671) => let val
1367 :     result=MlyValue.int((INT))
1368 :     in (LrTable.NT 2,(result,INT1left,INT1right),rest671) end
1369 :     | (1,(_,(MlyValue.INT0 INT0,INT01left,INT01right))::rest671) => let
1370 :     val result=MlyValue.int((INT0))
1371 :     in (LrTable.NT 2,(result,INT01left,INT01right),rest671) end
1372 :     | (2,(_,(MlyValue.ID ID,ID1left,ID1right))::rest671) => let val result
1373 :     =MlyValue.id((ID))
1374 :     in (LrTable.NT 1,(result,ID1left,ID1right),rest671) end
1375 :     | (3,(_,(_,ASTERISK1left,ASTERISK1right))::rest671) => let val result=
1376 :     MlyValue.id(("*"))
1377 :     in (LrTable.NT 1,(result,ASTERISK1left,ASTERISK1right),rest671) end
1378 :     | (4,(_,(MlyValue.ID ID,ID1left,ID1right))::rest671) => let val result
1379 :     =MlyValue.ident((ID))
1380 :     in (LrTable.NT 0,(result,ID1left,ID1right),rest671) end
1381 :     | (5,(_,(_,ASTERISK1left,ASTERISK1right))::rest671) => let val result=
1382 :     MlyValue.ident(("*"))
1383 :     in (LrTable.NT 0,(result,ASTERISK1left,ASTERISK1right),rest671) end
1384 :     | (6,(_,(_,EQUAL1left,EQUAL1right))::rest671) => let val result=
1385 :     MlyValue.ident(("="))
1386 :     in (LrTable.NT 0,(result,EQUAL1left,EQUAL1right),rest671) end
1387 :     | (7,(_,(_,OPleft as OP1left,OPright as OP1right))::rest671) => let
1388 :     val result=MlyValue.op_op((
1389 :     fn()=> error (OPleft,OPright) WARN "unnecessary `op'"))
1390 :     in (LrTable.NT 3,(result,OP1left,OP1right),rest671) end
1391 :     | (8,rest671) => let val result=MlyValue.op_op((fn()=>()))
1392 :     in (LrTable.NT 3,(result,defaultPos,defaultPos),rest671) end
1393 :     | (9,(_,(MlyValue.id id,idleft as id1left,idright as id1right))::
1394 :     rest671) => let val result=MlyValue.opid((
1395 :     fn env => let val (v,f) = var'n'fix id
1396 :     in case lookFIX env f of NONfix => ()
1397 :     | _ => error (idleft,idright) COMPLAIN
1398 :     "nonfix identifier required";
1399 :     v
1400 :     end
1401 :     ))
1402 :     in (LrTable.NT 4,(result,id1left,id1right),rest671) end
1403 :     | (10,(_,(MlyValue.ident ident,_,ident1right))::(_,(_,OP1left,_))::
1404 :     rest671) => let val result=MlyValue.opid((fn _ => varSymbol ident))
1405 :     in (LrTable.NT 4,(result,OP1left,ident1right),rest671) end
1406 :     | (11,(_,(MlyValue.qid qid,_,qid1right))::_::(_,(MlyValue.ID ID,
1407 :     ID1left,_))::rest671) => let val result=MlyValue.qid((
1408 :     fn kind => strSymbol ID :: qid kind))
1409 :     in (LrTable.NT 5,(result,ID1left,qid1right),rest671) end
1410 :     | (12,(_,(MlyValue.ident ident,ident1left,ident1right))::rest671) =>
1411 :     let val result=MlyValue.qid((fn kind => [kind ident]))
1412 :     in (LrTable.NT 5,(result,ident1left,ident1right),rest671) end
1413 :     | (13,(_,(MlyValue.id id,id1left,id1right))::rest671) => let val
1414 :     result=MlyValue.selector((labSymbol id))
1415 :     in (LrTable.NT 7,(result,id1left,id1right),rest671) end
1416 :     | (14,(_,(MlyValue.INT INT,INT1left,INT1right))::rest671) => let val
1417 :     result=MlyValue.selector((Symbol.labSymbol(makestring INT)))
1418 :     in (LrTable.NT 7,(result,INT1left,INT1right),rest671) end
1419 :     | (15,(_,(MlyValue.tycon tycon,_,tycon1right))::_::(_,(MlyValue.ID ID,
1420 :     ID1left,_))::rest671) => let val result=MlyValue.tycon((
1421 :     strSymbol ID :: tycon))
1422 :     in (LrTable.NT 8,(result,ID1left,tycon1right),rest671) end
1423 :     | (16,(_,(MlyValue.ID ID,ID1left,ID1right))::rest671) => let val
1424 :     result=MlyValue.tycon(([tycSymbol ID]))
1425 :     in (LrTable.NT 8,(result,ID1left,ID1right),rest671) end
1426 :     | (17,(_,(MlyValue.ty ty,_,ty1right))::_::(_,(MlyValue.selector
1427 :     selector,selector1left,_))::rest671) => let val result=MlyValue.tlabel
1428 :     ((fn $ =>(selector, E ty $), V ty))
1429 :     in (LrTable.NT 9,(result,selector1left,ty1right),rest671) end
1430 :     | (18,(_,(MlyValue.tlabels tlabels,_,tlabels1right))::_::(_,(
1431 :     MlyValue.tlabel tlabel,tlabel1left,_))::rest671) => let val result=
1432 :     MlyValue.tlabels((
1433 :     fn $ => E tlabel $ :: E tlabels $,
1434 :     V tlabel \/ V tlabels))
1435 :     in (LrTable.NT 10,(result,tlabel1left,tlabels1right),rest671) end
1436 :     | (19,(_,(MlyValue.tlabel tlabel,tlabel1left,tlabel1right))::rest671)
1437 :     => let val result=MlyValue.tlabels((fn $ => [E tlabel $], V tlabel))
1438 :     in (LrTable.NT 10,(result,tlabel1left,tlabel1right),rest671) end
1439 :     | (20,(_,(MlyValue.TYVAR TYVAR,TYVAR1left,TYVAR1right))::rest671) =>
1440 :     let val result=MlyValue.ty'((
1441 :     let val tyv = mkTyvar(mkUBOUND(tyvSymbol TYVAR))
1442 :     in (fn _ => VARty tyv, singleton_tyvar tyv)
1443 :     end
1444 :     ))
1445 :     in (LrTable.NT 11,(result,TYVAR1left,TYVAR1right),rest671) end
1446 :     | (21,(_,(_,_,RBRACEright as RBRACE1right))::(_,(MlyValue.tlabels
1447 :     tlabels,_,_))::(_,(_,LBRACEleft as LBRACE1left,_))::rest671) => let
1448 :     val result=MlyValue.ty'((
1449 :     fn $ => make_recordTy(E tlabels $,
1450 :     error(LBRACEleft,RBRACEright)),
1451 :     V tlabels
1452 :     ))
1453 :     in (LrTable.NT 11,(result,LBRACE1left,RBRACE1right),rest671) end
1454 :     | (22,(_,(_,_,RBRACEright as RBRACE1right))::(_,(_,LBRACEleft as
1455 :     LBRACE1left,_))::rest671) => let val result=MlyValue.ty'((
1456 :     fn _ => make_recordTy(nil,
1457 :     error(LBRACEleft,RBRACEright)),
1458 :     no_tyvars
1459 :     ))
1460 :     in (LrTable.NT 11,(result,LBRACE1left,RBRACE1right),rest671) end
1461 :     | (23,(_,(MlyValue.tycon tycon,tyconleft,tyconright as tycon1right))::
1462 :     _::(_,(MlyValue.ty0_pc ty0_pc,_,_))::(_,(_,LPAREN1left,_))::rest671)
1463 :     => let val result=MlyValue.ty'((
1464 :     fn env =>let val ts = E ty0_pc env
1465 :     in CONty(lookPathArTYC env
1466 :     (tycon,length ts,
1467 :     error (tyconleft,tyconright) COMPLAIN),
1468 :     ts)
1469 :     end,
1470 :     V ty0_pc
1471 :     ))
1472 :     in (LrTable.NT 11,(result,LPAREN1left,tycon1right),rest671) end
1473 :     | (24,(_,(_,_,RPAREN1right))::(_,(MlyValue.ty ty,_,_))::(_,(_,
1474 :     LPAREN1left,_))::rest671) => let val result=MlyValue.ty'((ty))
1475 :     in (LrTable.NT 11,(result,LPAREN1left,RPAREN1right),rest671) end
1476 :     | (25,(_,(MlyValue.tycon tycon,tyconleft,tyconright as tycon1right))::
1477 :     (_,(MlyValue.ty' ty',ty'1left,_))::rest671) => let val result=
1478 :     MlyValue.ty'((
1479 :     fn env =>CONty(lookPathArTYC env (tycon,1,
1480 :     error(tyconleft,tyconright)COMPLAIN),
1481 :     [E ty' env]),
1482 :     V ty'
1483 :     ))
1484 :     in (LrTable.NT 11,(result,ty'1left,tycon1right),rest671) end
1485 :     | (26,(_,(MlyValue.tycon tycon,tyconleft as tycon1left,tyconright as
1486 :     tycon1right))::rest671) => let val result=MlyValue.ty'((
1487 :     fn env =>CONty(lookPathArTYC env (tycon, 0,
1488 :     error(tyconleft,tyconright)COMPLAIN),[]),
1489 :     no_tyvars
1490 :     ))
1491 :     in (LrTable.NT 11,(result,tycon1left,tycon1right),rest671) end
1492 :     | (27,(_,(MlyValue.tuple_ty tuple_ty,_,tuple_ty1right))::_::(_,(
1493 :     MlyValue.ty' ty',ty'1left,_))::rest671) => let val result=
1494 :     MlyValue.tuple_ty((
1495 :     fn $ => E ty' $ :: E tuple_ty $,
1496 :     V ty' \/ V tuple_ty))
1497 :     in (LrTable.NT 12,(result,ty'1left,tuple_ty1right),rest671) end
1498 :     | (28,(_,(MlyValue.ty' ty'2,_,ty'2right))::_::(_,(MlyValue.ty' ty'1,
1499 :     ty'1left,_))::rest671) => let val result=MlyValue.tuple_ty((
1500 :     fn $ =>[E ty'1 $, E ty'2 $], V ty'1 \/ V ty'2))
1501 :     in (LrTable.NT 12,(result,ty'1left,ty'2right),rest671) end
1502 :     | (29,(_,(MlyValue.tuple_ty tuple_ty,tuple_ty1left,tuple_ty1right))::
1503 :     rest671) => let val result=MlyValue.ty((
1504 :     fn $ =>tupleTy(E tuple_ty $), V tuple_ty))
1505 :     in (LrTable.NT 13,(result,tuple_ty1left,tuple_ty1right),rest671) end
1506 :     | (30,(_,(MlyValue.ty ty2,_,ty2right))::_::(_,(MlyValue.ty ty1,ty1left
1507 :     ,_))::rest671) => let val result=MlyValue.ty((
1508 :     fn $ =>CONty(arrowTycon, [E ty1 $, E ty2 $]),
1509 :     V ty1 \/ V ty2))
1510 :     in (LrTable.NT 13,(result,ty1left,ty2right),rest671) end
1511 :     | (31,(_,(MlyValue.ty' ty',ty'1left,ty'1right))::rest671) => let val
1512 :     result=MlyValue.ty((ty'))
1513 :     in (LrTable.NT 13,(result,ty'1left,ty'1right),rest671) end
1514 :     | (32,(_,(MlyValue.ty ty2,_,ty2right))::_::(_,(MlyValue.ty ty1,ty1left
1515 :     ,_))::rest671) => let val result=MlyValue.ty0_pc((
1516 :     fn $ => [E ty1 $, E ty2 $], V ty1 \/ V ty2))
1517 :     in (LrTable.NT 14,(result,ty1left,ty2right),rest671) end
1518 :     | (33,(_,(MlyValue.ty0_pc ty0_pc,_,ty0_pc1right))::_::(_,(MlyValue.ty
1519 :     ty,ty1left,_))::rest671) => let val result=MlyValue.ty0_pc((
1520 :     fn $ => E ty $ :: E ty0_pc $, V ty \/ V ty0_pc))
1521 :     in (LrTable.NT 14,(result,ty1left,ty0_pc1right),rest671) end
1522 :     | (34,(_,(MlyValue.rule rule,rule1left,rule1right))::rest671) => let
1523 :     val result=MlyValue.match((fn evst => [E rule evst], V rule))
1524 :     in (LrTable.NT 15,(result,rule1left,rule1right),rest671) end
1525 :     | (35,(_,(MlyValue.match match,_,match1right))::_::(_,(MlyValue.rule
1526 :     rule,rule1left,_))::rest671) => let val result=MlyValue.match((
1527 :     fn evst => E rule evst :: E match evst,
1528 :     V rule \/ V match))
1529 :     in (LrTable.NT 15,(result,rule1left,match1right),rest671) end
1530 :     | (36,(_,(MlyValue.exp exp,expleft,expright as exp1right))::_::(_,(
1531 :     MlyValue.pat pat,patleft as pat1left,patright))::rest671) => let val
1532 :     result=MlyValue.rule((
1533 :     makeRULE(E pat, fn $ => markexp(E exp $,expleft,expright),
1534 :     error(patleft,patright)),
1535 :     V pat \/ V exp
1536 :     ))
1537 :     in (LrTable.NT 16,(result,pat1left,exp1right),rest671) end
1538 :     | (37,(_,(MlyValue.exp exp,_,exp1right))::_::(_,(MlyValue.selector
1539 :     selector,selector1left,_))::rest671) => let val result=MlyValue.elabel
1540 :     ((fn evst => (selector,E exp evst), V exp))
1541 :     in (LrTable.NT 17,(result,selector1left,exp1right),rest671) end
1542 :     | (38,(_,(MlyValue.elabels elabels,_,elabels1right))::_::(_,(
1543 :     MlyValue.elabel elabel,elabel1left,_))::rest671) => let val result=
1544 :     MlyValue.elabels((
1545 :     fn evst => (E elabel evst :: E elabels evst),
1546 :     V elabel \/ V elabels
1547 :     ))
1548 :     in (LrTable.NT 18,(result,elabel1left,elabels1right),rest671) end
1549 :     | (39,(_,(MlyValue.elabel elabel,elabel1left,elabel1right))::rest671)
1550 :     => let val result=MlyValue.elabels((
1551 :     fn evst => [E elabel evst], V elabel))
1552 :     in (LrTable.NT 18,(result,elabel1left,elabel1right),rest671) end
1553 :     | (40,(_,(MlyValue.exp exp,exp1left,exp1right))::rest671) => let val
1554 :     result=MlyValue.exp_ps((fn st => [E exp st], V exp))
1555 :     in (LrTable.NT 19,(result,exp1left,exp1right),rest671) end
1556 :     | (41,(_,(MlyValue.exp_ps exp_ps,_,exp_ps1right))::_::(_,(MlyValue.exp
1557 :     exp,exp1left,_))::rest671) => let val result=MlyValue.exp_ps((
1558 :     fn st => E exp st :: E exp_ps st, V exp \/ V exp_ps))
1559 :     in (LrTable.NT 19,(result,exp1left,exp_ps1right),rest671) end
1560 :     | (42,(_,(MlyValue.match match,_,match1right))::_::(_,(MlyValue.exp
1561 :     exp,exp1left,_))::rest671) => let val result=MlyValue.exp((
1562 :     fn st=> makeHANDLEexp(E exp st, E match st),
1563 :     V exp \/ V match))
1564 :     in (LrTable.NT 20,(result,exp1left,match1right),rest671) end
1565 :     | (43,(_,(MlyValue.exp exp2,exp2left,exp2right))::_::(_,(MlyValue.exp
1566 :     exp1,exp1left,expright as exp1right))::rest671) => let val result=
1567 :     MlyValue.exp((
1568 :     fn st=> ORELSEexp(markexp(E exp1 st, exp1left,exp1right),
1569 :     markexp(E exp2 st,exp2left,expright)),
1570 :     V exp1 \/ V exp2
1571 :     ))
1572 :     in (LrTable.NT 20,(result,exp1left,exp2right),rest671) end
1573 :     | (44,(_,(MlyValue.exp exp2,exp2left,exp2right))::_::(_,(MlyValue.exp
1574 :     exp1,exp1left,exp1right))::rest671) => let val result=MlyValue.exp((
1575 :     fn st=> ANDALSOexp(markexp(E exp1 st,exp1left,exp1right),
1576 :     markexp(E exp2 st,exp2left,exp2right)),
1577 :     V exp1 \/ V exp2
1578 :     ))
1579 :     in (LrTable.NT 20,(result,exp1left,exp2right),rest671) end
1580 :     | (45,(_,(MlyValue.ty ty,_,ty1right))::_::(_,(MlyValue.exp exp,
1581 :     exp1left,_))::rest671) => let val result=MlyValue.exp((
1582 :     fn (st as (env,_,_))=> CONSTRAINTexp(E exp st,
1583 :     E ty env),
1584 :     V exp \/ V ty
1585 :     ))
1586 :     in (LrTable.NT 20,(result,exp1left,ty1right),rest671) end
1587 :     | (46,(_,(MlyValue.app_exp app_exp,app_exp1left,app_expright as
1588 :     app_exp1right))::rest671) => let val result=MlyValue.exp((
1589 :     fn st=> exp_finish(E app_exp st,
1590 :     error(app_expright,app_expright)),
1591 :     V app_exp
1592 :     ))
1593 :     in (LrTable.NT 20,(result,app_exp1left,app_exp1right),rest671) end
1594 :     | (47,(_,(MlyValue.match match,_,matchright as match1right))::(_,(_,
1595 :     FNleft as FN1left,_))::rest671) => let val result=MlyValue.exp((
1596 :     fn st=> markexp(FNexp(completeMatch(E match st)),
1597 :     FNleft,matchright),
1598 :     V match
1599 :     ))
1600 :     in (LrTable.NT 20,(result,FN1left,match1right),rest671) end
1601 :     | (48,(_,(MlyValue.match match,_,matchright as match1right))::_::(_,(
1602 :     MlyValue.exp exp,_,_))::(_,(_,CASEleft as CASE1left,_))::rest671) =>
1603 :     let val result=MlyValue.exp((
1604 :     fn st=>markexp(CASEexp(E exp st,
1605 :     completeMatch(E match st)),
1606 :     CASEleft,matchright),
1607 :     V exp \/ V match
1608 :     ))
1609 :     in (LrTable.NT 20,(result,CASE1left,match1right),rest671) end
1610 :     | (49,(_,(MlyValue.exp exp2,exp2left,exp2right))::_::(_,(MlyValue.exp
1611 :     exp1,_,_))::(_,(_,WHILE1left,_))::rest671) => let val result=
1612 :     MlyValue.exp((
1613 :     fn st=> WHILEexp(E exp1 st,
1614 :     markexp(E exp2 st,exp2left,exp2right)),
1615 :     V exp1 \/ V exp2
1616 :     ))
1617 :     in (LrTable.NT 20,(result,WHILE1left,exp2right),rest671) end
1618 :     | (50,(_,(MlyValue.exp exp3,exp3left,exp3right))::_::(_,(MlyValue.exp
1619 :     exp2,exp2left,exp2right))::_::(_,(MlyValue.exp exp1,_,_))::(_,(_,
1620 :     IF1left,_))::rest671) => let val result=MlyValue.exp((
1621 :     fn st=>IFexp(E exp1 st,
1622 :     markexp(E exp2 st,exp2left,exp2right),
1623 :     markexp(E exp3 st,exp3left,exp3right)),
1624 :     V exp1 \/ V exp2 \/ V exp3
1625 :     ))
1626 :     in (LrTable.NT 20,(result,IF1left,exp3right),rest671) end
1627 :     | (51,(_,(MlyValue.exp exp,_,expright as exp1right))::(_,(_,RAISEleft
1628 :     as RAISE1left,_))::rest671) => let val result=MlyValue.exp((
1629 :     fn st=>markexp(RAISEexp(E exp st),RAISEleft,expright),
1630 :     V exp))
1631 :     in (LrTable.NT 20,(result,RAISE1left,exp1right),rest671) end
1632 :     | (52,(_,(MlyValue.aexp aexp,aexpleft as aexp1left,aexpright as
1633 :     aexp1right))::rest671) => let val result=MlyValue.app_exp((
1634 :     fn st => exp_start(markexp(E aexp st, aexpleft,aexpright),
1635 :     NONfix,
1636 :     error (aexpleft,aexpright)),
1637 :     V aexp
1638 :     ))
1639 :     in (LrTable.NT 21,(result,aexp1left,aexp1right),rest671) end
1640 :     | (53,(_,(MlyValue.ident ident,identleft as ident1left,identright as
1641 :     ident1right))::rest671) => let val result=MlyValue.app_exp((
1642 :     fn (env,_,_) =>
1643 :     let val e = error(identleft,identright)
1644 :     val (v,f) = var'n'fix ident
1645 :     in exp_start(markexp(lookID env (v,e),
1646 :     identleft,identright),
1647 :     lookFIX env f, e)
1648 :     end,
1649 :     no_tyvars
1650 :     ))
1651 :     in (LrTable.NT 21,(result,ident1left,ident1right),rest671) end
1652 :     | (54,(_,(MlyValue.aexp aexp,aexpleft,aexpright as aexp1right))::(_,(
1653 :     MlyValue.app_exp app_exp,app_exp1left,_))::rest671) => let val result=
1654 :     MlyValue.app_exp((
1655 :     fn st => exp_parse(E app_exp st,
1656 :     markexp(E aexp st, aexpleft,aexpright),
1657 :     NONfix,
1658 :     error (aexpleft,aexpright)),
1659 :     V app_exp \/ V aexp
1660 :     ))
1661 :     in (LrTable.NT 21,(result,app_exp1left,aexp1right),rest671) end
1662 :     | (55,(_,(MlyValue.ident ident,identleft,identright as ident1right))::
1663 :     (_,(MlyValue.app_exp app_exp,app_exp1left,_))::rest671) => let val
1664 :     result=MlyValue.app_exp((
1665 :     fn (st as (env,_,_)) =>
1666 :     let val e = error(identleft,identright)
1667 :     val (v,f) = var'n'fix ident
1668 :     in exp_parse(E app_exp st,
1669 :     markexp(lookID env (v,e),
1670 :     identleft,identright),
1671 :     lookFIX env f, e)
1672 :     end,
1673 :     V app_exp
1674 :     ))
1675 :     in (LrTable.NT 21,(result,app_exp1left,ident1right),rest671) end
1676 :     | (56,(_,(MlyValue.ident ident,identleft,identright as ident1right))::
1677 :     (_,(_,OP1left,_))::rest671) => let val result=MlyValue.aexp((
1678 :     fn (env,_,_) => lookID env (varSymbol ident, error(identleft,identright)),
1679 :     no_tyvars
1680 :     ))
1681 :     in (LrTable.NT 22,(result,OP1left,ident1right),rest671) end
1682 :     | (57,(_,(MlyValue.qid qid,_,qidright as qid1right))::_::(_,(
1683 :     MlyValue.ID ID,IDleft as ID1left,_))::rest671) => let val result=
1684 :     MlyValue.aexp((
1685 :     fn (env,_,_) =>
1686 :     varcon(lookPathVARCON env (strSymbol ID
1687 :     ::(qid varSymbol),
1688 :     error(IDleft,qidright)COMPLAIN)),
1689 :     no_tyvars
1690 :     ))
1691 :     in (LrTable.NT 22,(result,ID1left,qid1right),rest671) end
1692 :     | (58,(_,(MlyValue.int int,int1left,int1right))::rest671) => let val
1693 :     result=MlyValue.aexp((fn st => INTexp int, no_tyvars))
1694 :     in (LrTable.NT 22,(result,int1left,int1right),rest671) end
1695 :     | (59,(_,(MlyValue.REAL REAL,REAL1left,REAL1right))::rest671) => let
1696 :     val result=MlyValue.aexp((fn st => REALexp REAL, no_tyvars))
1697 :     in (LrTable.NT 22,(result,REAL1left,REAL1right),rest671) end
1698 :     | (60,(_,(MlyValue.STRING STRING,STRING1left,STRING1right))::rest671)
1699 :     => let val result=MlyValue.aexp((fn st => STRINGexp STRING, no_tyvars
1700 :     ))
1701 :     in (LrTable.NT 22,(result,STRING1left,STRING1right),rest671) end
1702 :     | (61,(_,(MlyValue.selector selector,_,selector1right))::(_,(_,
1703 :     HASH1left,_))::rest671) => let val result=MlyValue.aexp((
1704 :     fn st => SELECTORexp selector, no_tyvars))
1705 :     in (LrTable.NT 22,(result,HASH1left,selector1right),rest671) end
1706 :     | (62,(_,(_,_,RBRACEright as RBRACE1right))::(_,(MlyValue.elabels
1707 :     elabels,_,_))::(_,(_,LBRACEleft as LBRACE1left,_))::rest671) => let
1708 :     val result=MlyValue.aexp((
1709 :     fn st=> makeRECORDexp(E elabels st,
1710 :     error(LBRACEleft,RBRACEright)),
1711 :     V elabels
1712 :     ))
1713 :     in (LrTable.NT 22,(result,LBRACE1left,RBRACE1right),rest671) end
1714 :     | (63,(_,(_,_,RBRACE1right))::(_,(_,LBRACE1left,_))::rest671) => let
1715 :     val result=MlyValue.aexp((fn st=> RECORDexp nil, no_tyvars))
1716 :     in (LrTable.NT 22,(result,LBRACE1left,RBRACE1right),rest671) end
1717 :     | (64,(_,(_,_,RPAREN1right))::(_,(_,LPAREN1left,_))::rest671) => let
1718 :     val result=MlyValue.aexp((fn st=> unitExp, no_tyvars))
1719 :     in (LrTable.NT 22,(result,LPAREN1left,RPAREN1right),rest671) end
1720 :     | (65,(_,(_,_,RPAREN1right))::(_,(MlyValue.exp_ps exp_ps,_,_))::(_,(_,
1721 :     LPAREN1left,_))::rest671) => let val result=MlyValue.aexp((
1722 :     fn st=> SEQexp(E exp_ps st), V exp_ps))
1723 :     in (LrTable.NT 22,(result,LPAREN1left,RPAREN1right),rest671) end
1724 :     | (66,(_,(_,_,RPAREN1right))::(_,(MlyValue.exp_2c exp_2c,_,_))::(_,(_,
1725 :     LPAREN1left,_))::rest671) => let val result=MlyValue.aexp((
1726 :     fn st=> TUPLEexp(E exp_2c st), V exp_2c))
1727 :     in (LrTable.NT 22,(result,LPAREN1left,RPAREN1right),rest671) end
1728 :     | (67,(_,(_,_,RBRACKET1right))::(_,(MlyValue.exp_list exp_list,_,_))::
1729 :     (_,(_,LBRACKET1left,_))::rest671) => let val result=MlyValue.aexp((
1730 :     fn st=> LISTexp(E exp_list st), V exp_list))
1731 :     in (LrTable.NT 22,(result,LBRACKET1left,RBRACKET1right),rest671) end
1732 :     | (68,(_,(_,_,RBRACKET1right))::(_,(_,LBRACKET1left,_))::rest671) =>
1733 :     let val result=MlyValue.aexp((fn st=> nilExp, no_tyvars))
1734 :     in (LrTable.NT 22,(result,LBRACKET1left,RBRACKET1right),rest671) end
1735 :     | (69,(_,(_,_,ENDright as END1right))::(_,(MlyValue.exp_ps exp_ps,_,_)
1736 :     )::_::(_,(MlyValue.ldecs ldecs,_,_))::(_,(_,LETleft as LET1left,_))::
1737 :     rest671) => let val result=MlyValue.aexp((
1738 :     fn (env,tv,st) =>
1739 :     let val (d,env') = E ldecs(env,[],tv,st)
1740 :     val e = E exp_ps (Env.atop(env',env),tv,st)
1741 :     in markexp(LETexp(d,SEQexp e),
1742 :     LETleft,ENDright)
1743 :     end,
1744 :     V exp_ps \/ V ldecs
1745 :     ))
1746 :     in (LrTable.NT 22,(result,LET1left,END1right),rest671) end
1747 :     | (70,(_,(MlyValue.exp_2c exp_2c,_,exp_2c1right))::_::(_,(MlyValue.exp
1748 :     exp,exp1left,_))::rest671) => let val result=MlyValue.exp_2c((
1749 :     fn st=> E exp st :: E exp_2c st,
1750 :     V exp \/ V exp_2c))
1751 :     in (LrTable.NT 24,(result,exp1left,exp_2c1right),rest671) end
1752 :     | (71,(_,(MlyValue.exp exp2,_,exp2right))::_::(_,(MlyValue.exp exp1,
1753 :     exp1left,_))::rest671) => let val result=MlyValue.exp_2c((
1754 :     fn st=> [E exp1 st, E exp2 st],
1755 :     V exp1 \/ V exp2))
1756 :     in (LrTable.NT 24,(result,exp1left,exp2right),rest671) end
1757 :     | (72,(_,(MlyValue.exp exp,exp1left,exp1right))::rest671) => let val
1758 :     result=MlyValue.exp_list((fn st=> [E exp st], V exp))
1759 :     in (LrTable.NT 23,(result,exp1left,exp1right),rest671) end
1760 :     | (73,(_,(MlyValue.exp_list exp_list,_,exp_list1right))::_::(_,(
1761 :     MlyValue.exp exp,exp1left,_))::rest671) => let val result=
1762 :     MlyValue.exp_list((
1763 :     fn st=> E exp st :: E exp_list st,
1764 :     V exp \/ V exp_list))
1765 :     in (LrTable.NT 23,(result,exp1left,exp_list1right),rest671) end
1766 :     | (74,(_,(MlyValue.pat' pat',pat'1left,pat'1right))::rest671) => let
1767 :     val result=MlyValue.pat((pat'))
1768 :     in (LrTable.NT 25,(result,pat'1left,pat'1right),rest671) end
1769 :     | (75,(_,(MlyValue.apats apats,_,apats1right))::(_,(MlyValue.apat apat
1770 :     ,apat1left,_))::rest671) => let val result=MlyValue.pat((
1771 :     fn $ => make_app_pat(E apat $ ::E apats $),
1772 :     V apat \/ V apats))
1773 :     in (LrTable.NT 25,(result,apat1left,apats1right),rest671) end
1774 :     | (76,(_,(MlyValue.pat pat2,_,pat2right))::_::(_,(MlyValue.pat pat1,
1775 :     pat1left,pat1right))::rest671) => let val result=MlyValue.pat'((
1776 :     fn $ => layered(E pat1 $, E pat2 $,
1777 :     error(pat1left,pat1right)),
1778 :     V pat1 \/ V pat2
1779 :     ))
1780 :     in (LrTable.NT 26,(result,pat1left,pat2right),rest671) end
1781 :     | (77,(_,(MlyValue.pat'' pat'',pat''1left,pat''1right))::rest671) =>
1782 :     let val result=MlyValue.pat'((pat''))
1783 :     in (LrTable.NT 26,(result,pat''1left,pat''1right),rest671) end
1784 :     | (78,(_,(MlyValue.ty ty,_,ty1right))::_::(_,(MlyValue.apats apats,_,_
1785 :     ))::(_,(MlyValue.apat apat,apat1left,_))::rest671) => let val result=
1786 :     MlyValue.pat''((
1787 :     fn env => CONSTRAINTpat(
1788 :     make_app_pat(E apat env ::E apats env),
1789 :     E ty env),
1790 :     V apat \/ V apats \/ V ty
1791 :     ))
1792 :     in (LrTable.NT 27,(result,apat1left,ty1right),rest671) end
1793 :     | (79,(_,(MlyValue.ty ty,_,ty1right))::_::(_,(MlyValue.pat'' pat'',
1794 :     pat''1left,_))::rest671) => let val result=MlyValue.pat''((
1795 :     fn env => CONSTRAINTpat(E pat'' env, E ty env),
1796 :     V pat'' \/ V ty))
1797 :     in (LrTable.NT 27,(result,pat''1left,ty1right),rest671) end
1798 :     | (80,(_,(MlyValue.apat' apat',apat'1left,apat'1right))::rest671) =>
1799 :     let val result=MlyValue.apat((apat'))
1800 :     in (LrTable.NT 28,(result,apat'1left,apat'1right),rest671) end
1801 :     | (81,(_,(_,_,RPARENright as RPAREN1right))::(_,(MlyValue.pat pat,_,_)
1802 :     )::(_,(_,LPARENleft as LPAREN1left,_))::rest671) => let val result=
1803 :     MlyValue.apat((
1804 :     fn $ =>(E pat $,NONfix,error(LPARENleft,RPARENright)),
1805 :     V pat))
1806 :     in (LrTable.NT 28,(result,LPAREN1left,RPAREN1right),rest671) end
1807 :     | (82,(_,(MlyValue.apat'' apat'',apat''left as apat''1left,apat''right
1808 :     as apat''1right))::rest671) => let val result=MlyValue.apat'((
1809 :     fn $ =>(E apat'' $,NONfix,error(apat''left,apat''right)),
1810 :     V apat''
1811 :     ))
1812 :     in (LrTable.NT 29,(result,apat''1left,apat''1right),rest671) end
1813 :     | (83,(_,(MlyValue.id id,idleft as id1left,idright as id1right))::
1814 :     rest671) => let val result=MlyValue.apat'((
1815 :     fn env =>
1816 :     let val e = error(idleft,idright)
1817 :     val (v,f) = var'n'fix id
1818 :     in (pat_id env v, lookFIX env f, e)
1819 :     end,
1820 :     no_tyvars
1821 :     ))
1822 :     in (LrTable.NT 29,(result,id1left,id1right),rest671) end
1823 :     | (84,(_,(_,_,RPARENright as RPAREN1right))::(_,(_,LPARENleft as
1824 :     LPAREN1left,_))::rest671) => let val result=MlyValue.apat'((
1825 :     fn _ =>(unitPat,NONfix,
1826 :     error(LPARENleft,RPARENright)),
1827 :     no_tyvars
1828 :     ))
1829 :     in (LrTable.NT 29,(result,LPAREN1left,RPAREN1right),rest671) end
1830 :     | (85,(_,(_,_,RPARENright as RPAREN1right))::(_,(MlyValue.pat_list
1831 :     pat_list,_,_))::_::(_,(MlyValue.pat pat,_,_))::(_,(_,LPARENleft as
1832 :     LPAREN1left,_))::rest671) => let val result=MlyValue.apat'((
1833 :     fn $ =>(TUPLEpat(E pat $ ::E pat_list $),
1834 :     NONfix,error(LPARENleft,RPARENright)),
1835 :     V pat \/ V pat_list
1836 :     ))
1837 :     in (LrTable.NT 29,(result,LPAREN1left,RPAREN1right),rest671) end
1838 :     | (86,(_,(MlyValue.ident ident,_,ident1right))::(_,(_,OP1left,_))::
1839 :     rest671) => let val result=MlyValue.apat''((
1840 :     fn env =>pat_id env(varSymbol ident), no_tyvars))
1841 :     in (LrTable.NT 30,(result,OP1left,ident1right),rest671) end
1842 :     | (87,(_,(MlyValue.qid qid,_,qidright as qid1right))::_::(_,(
1843 :     MlyValue.ID ID,IDleft as ID1left,_))::rest671) => let val result=
1844 :     MlyValue.apat''((
1845 :     fn env =>qid_pat env (strSymbol ID :: qid varSymbol,
1846 :     error(IDleft,qidright)),
1847 :     no_tyvars
1848 :     ))
1849 :     in (LrTable.NT 30,(result,ID1left,qid1right),rest671) end
1850 :     | (88,(_,(MlyValue.int int,int1left,int1right))::rest671) => let val
1851 :     result=MlyValue.apat''((fn _ =>INTpat int, no_tyvars))
1852 :     in (LrTable.NT 30,(result,int1left,int1right),rest671) end
1853 :     | (89,(_,(MlyValue.REAL REAL,REAL1left,REAL1right))::rest671) => let
1854 :     val result=MlyValue.apat''((fn _ =>REALpat REAL, no_tyvars))
1855 :     in (LrTable.NT 30,(result,REAL1left,REAL1right),rest671) end
1856 :     | (90,(_,(MlyValue.STRING STRING,STRING1left,STRING1right))::rest671)
1857 :     => let val result=MlyValue.apat''((fn _ =>STRINGpat STRING, no_tyvars
1858 :     ))
1859 :     in (LrTable.NT 30,(result,STRING1left,STRING1right),rest671) end
1860 :     | (91,(_,(_,WILD1left,WILD1right))::rest671) => let val result=
1861 :     MlyValue.apat''((fn _ =>WILDpat, no_tyvars))
1862 :     in (LrTable.NT 30,(result,WILD1left,WILD1right),rest671) end
1863 :     | (92,(_,(_,_,RBRACKET1right))::(_,(_,LBRACKET1left,_))::rest671) =>
1864 :     let val result=MlyValue.apat''((fn _ =>LISTpat nil, no_tyvars))
1865 :     in (LrTable.NT 30,(result,LBRACKET1left,RBRACKET1right),rest671) end
1866 :     | (93,(_,(_,_,RBRACKET1right))::(_,(MlyValue.pat_list pat_list,_,_))::
1867 :     (_,(_,LBRACKET1left,_))::rest671) => let val result=MlyValue.apat''((
1868 :     fn $ =>LISTpat(E pat_list $), V pat_list))
1869 :     in (LrTable.NT 30,(result,LBRACKET1left,RBRACKET1right),rest671) end
1870 :     | (94,(_,(_,_,RBRACEright as RBRACE1right))::(_,(_,LBRACEleft as
1871 :     LBRACE1left,_))::rest671) => let val result=MlyValue.apat''((
1872 :     fn _ =>makeRECORDpat((nil,false),
1873 :     error(LBRACEleft,RBRACEright)),
1874 :     no_tyvars
1875 :     ))
1876 :     in (LrTable.NT 30,(result,LBRACE1left,RBRACE1right),rest671) end
1877 :     | (95,(_,(_,_,RBRACEright as RBRACE1right))::(_,(MlyValue.plabels
1878 :     plabels,_,_))::(_,(_,LBRACEleft as LBRACE1left,_))::rest671) => let
1879 :     val result=MlyValue.apat''((
1880 :     fn $ =>makeRECORDpat(E plabels $,
1881 :     error(LBRACEleft,RBRACEright)),
1882 :     V plabels
1883 :     ))
1884 :     in (LrTable.NT 30,(result,LBRACE1left,RBRACE1right),rest671) end
1885 :     | (96,(_,(MlyValue.pat pat,_,pat1right))::_::(_,(MlyValue.selector
1886 :     selector,selector1left,_))::rest671) => let val result=MlyValue.plabel
1887 :     ((fn $ => (selector,E pat $), V pat))
1888 :     in (LrTable.NT 31,(result,selector1left,pat1right),rest671) end
1889 :     | (97,(_,(MlyValue.ID ID,ID1left,ID1right))::rest671) => let val
1890 :     result=MlyValue.plabel((
1891 :     fn env => (labSymbol ID, pat_id env(varSymbol ID)), no_tyvars))
1892 :     in (LrTable.NT 31,(result,ID1left,ID1right),rest671) end
1893 :     | (98,(_,(MlyValue.pat pat,_,pat1right))::_::(_,(MlyValue.ID ID,
1894 :     ID1left,_))::rest671) => let val result=MlyValue.plabel((
1895 :     fn env => (labSymbol ID, LAYEREDpat(pat_id env (varSymbol ID),
1896 :     E pat env)),
1897 :     V pat
1898 :     ))
1899 :     in (LrTable.NT 31,(result,ID1left,pat1right),rest671) end
1900 :     | (99,(_,(MlyValue.ty ty,_,ty1right))::_::(_,(MlyValue.ID ID,ID1left,_
1901 :     ))::rest671) => let val result=MlyValue.plabel((
1902 :     fn env => (labSymbol ID, CONSTRAINTpat(pat_id env (varSymbol ID),
1903 :     E ty env)),
1904 :     V ty
1905 :     ))
1906 :     in (LrTable.NT 31,(result,ID1left,ty1right),rest671) end
1907 :     | (100,(_,(MlyValue.pat pat,_,pat1right))::_::(_,(MlyValue.ty ty,_,_))
1908 :     ::_::(_,(MlyValue.ID ID,ID1left,_))::rest671) => let val result=
1909 :     MlyValue.plabel((
1910 :     fn env => (labSymbol ID, LAYEREDpat(CONSTRAINTpat(
1911 :     pat_id env (varSymbol ID),
1912 :     E ty env), E pat env)),
1913 :     V ty \/ V pat
1914 :     ))
1915 :     in (LrTable.NT 31,(result,ID1left,pat1right),rest671) end
1916 :     | (101,(_,(MlyValue.plabels plabels,_,plabels1right))::_::(_,(
1917 :     MlyValue.plabel plabel,plabel1left,_))::rest671) => let val result=
1918 :     MlyValue.plabels((
1919 :     fn $ =>let val (a,(b,fx))=(E plabel $,E plabels $)
1920 :     in (a::b, fx)
1921 :     end,
1922 :     V plabel \/ V plabels
1923 :     ))
1924 :     in (LrTable.NT 32,(result,plabel1left,plabels1right),rest671) end
1925 :     | (102,(_,(MlyValue.plabel plabel,plabel1left,plabel1right))::rest671)
1926 :     => let val result=MlyValue.plabels((
1927 :     fn $ => ([E plabel $],false), V plabel))
1928 :     in (LrTable.NT 32,(result,plabel1left,plabel1right),rest671) end
1929 :     | (103,(_,(_,DOTDOTDOT1left,DOTDOTDOT1right))::rest671) => let val
1930 :     result=MlyValue.plabels((fn _ => (nil, true), no_tyvars))
1931 :     in (LrTable.NT 32,(result,DOTDOTDOT1left,DOTDOTDOT1right),rest671)
1932 :     end
1933 :     | (104,(_,(MlyValue.pat pat,pat1left,pat1right))::rest671) => let val
1934 :     result=MlyValue.pat_list((fn $ => [E pat $], V pat))
1935 :     in (LrTable.NT 34,(result,pat1left,pat1right),rest671) end
1936 :     | (105,(_,(MlyValue.pat_list pat_list,_,pat_list1right))::_::(_,(
1937 :     MlyValue.pat pat,pat1left,_))::rest671) => let val result=
1938 :     MlyValue.pat_list((
1939 :     fn $ => E pat $ :: E pat_list $,
1940 :     V pat \/ V pat_list))
1941 :     in (LrTable.NT 34,(result,pat1left,pat_list1right),rest671) end
1942 :     | (106,(_,(MlyValue.vb vb2,_,vb2right))::_::(_,(MlyValue.vb vb1,
1943 :     vb1left,_))::rest671) => let val result=MlyValue.vb((
1944 :     fn st=> vb1 st @ vb2 st))
1945 :     in (LrTable.NT 35,(result,vb1left,vb2right),rest671) end
1946 :     | (107,(_,(MlyValue.exp exp,_,exp1right))::_::(_,(MlyValue.pat pat,
1947 :     pat1left,_))::rest671) => let val result=MlyValue.vb((
1948 :     valbind(pat, exp)))
1949 :     in (LrTable.NT 35,(result,pat1left,exp1right),rest671) end
1950 :     | (108,rest671) => let val result=MlyValue.constraint((
1951 :     fn _ =>NONE, no_tyvars))
1952 :     in (LrTable.NT 36,(result,defaultPos,defaultPos),rest671) end
1953 :     | (109,(_,(MlyValue.ty ty,_,ty1right))::(_,(_,COLON1left,_))::rest671)
1954 :     => let val result=MlyValue.constraint((fn env =>SOME(E ty env), V ty)
1955 :     )
1956 :     in (LrTable.NT 36,(result,COLON1left,ty1right),rest671) end
1957 :     | (110,(_,(MlyValue.match match,_,match1right))::_::_::(_,(
1958 :     MlyValue.constraint constraint,_,_))::(_,(MlyValue.opid opid,opid1left
1959 :     ,_))::rest671) => let val result=MlyValue.rvb((
1960 :     fn env =>[{name=opid env,
1961 :     ty=constraint,match=match}]))
1962 :     in (LrTable.NT 37,(result,opid1left,match1right),rest671) end
1963 :     | (111,(_,(MlyValue.rvb rvb2,_,rvb2right))::_::(_,(MlyValue.rvb rvb1,
1964 :     rvb1left,_))::rest671) => let val result=MlyValue.rvb((
1965 :     fn env => (rvb1 env) @ (rvb2 env)))
1966 :     in (LrTable.NT 37,(result,rvb1left,rvb2right),rest671) end
1967 :     | (112,(_,(MlyValue.clause clause,clause1left,clause1right))::rest671)
1968 :     => let val result=MlyValue.fb'((fn $ =>[E clause $], V clause))
1969 :     in (LrTable.NT 38,(result,clause1left,clause1right),rest671) end
1970 :     | (113,(_,(MlyValue.fb' fb',_,fb'1right))::_::(_,(MlyValue.clause
1971 :     clause,clause1left,_))::rest671) => let val result=MlyValue.fb'((
1972 :     fn $ =>E clause $ ::E fb' $, V clause \/ V fb'))
1973 :     in (LrTable.NT 38,(result,clause1left,fb'1right),rest671) end
1974 :     | (114,(_,(MlyValue.fb' fb',fb'left as fb'1left,fb'right as fb'1right)
1975 :     )::rest671) => let val result=MlyValue.fb((
1976 :     fn $ => [checkFB(E fb' $,error(fb'left,fb'right))],
1977 :     V fb'))
1978 :     in (LrTable.NT 39,(result,fb'1left,fb'1right),rest671) end
1979 :     | (115,(_,(MlyValue.fb fb,_,fb1right))::_::(_,(MlyValue.fb' fb',
1980 :     fb'left as fb'1left,fb'right))::rest671) => let val result=MlyValue.fb
1981 :     ((
1982 :     fn $ =>
1983 :     checkFB(E fb' $,error(fb'left,fb'right)) :: E fb $, V fb' \/ V fb
1984 :     ))
1985 :     in (LrTable.NT 39,(result,fb'1left,fb1right),rest671) end
1986 :     | (116,(_,(MlyValue.apats apats2,_,apats2right))::_::(_,(
1987 :     MlyValue.apats apats1,_,_))::(_,(MlyValue.apat apat,_,_))::(_,(_,
1988 :     LPAREN1left,_))::rest671) => let val result=MlyValue.clause'((
1989 :     fn $ =>makecl(E apat $ ::E apats1 $,E apats2 $),
1990 :     V apat \/ V apats1 \/ V apats2
1991 :     ))
1992 :     in (LrTable.NT 41,(result,LPAREN1left,apats2right),rest671) end
1993 :     | (117,(_,(MlyValue.apats apats,_,apats1right))::(_,(_,_,RPARENright))
1994 :     ::(_,(MlyValue.pat' pat',_,_))::(_,(_,LPARENleft as LPAREN1left,_))::
1995 :     rest671) => let val result=MlyValue.clause'((
1996 :     fn $ =>makecl([],(E pat' $,NONfix,
1997 :     error(LPARENleft,RPARENright))
1998 :     ::E apats $),
1999 :     V pat' \/ V apats
2000 :     ))
2001 :     in (LrTable.NT 41,(result,LPAREN1left,apats1right),rest671) end
2002 :     | (118,(_,(MlyValue.apats apats,_,apats1right))::(_,(MlyValue.apat'
2003 :     apat',apat'1left,_))::rest671) => let val result=MlyValue.clause'((
2004 :     fn $ =>makecl([],E apat' $ ::E apats $),
2005 :     V apat' \/ V apats))
2006 :     in (LrTable.NT 41,(result,apat'1left,apats1right),rest671) end
2007 :     | (119,rest671) => let val result=MlyValue.apats((
2008 :     fn _ =>nil, no_tyvars))
2009 :     in (LrTable.NT 40,(result,defaultPos,defaultPos),rest671) end
2010 :     | (120,(_,(MlyValue.apats apats,_,apats1right))::(_,(MlyValue.apat
2011 :     apat,apat1left,_))::rest671) => let val result=MlyValue.apats((
2012 :     fn $ => E apat $ ::E apats $,
2013 :     V apat \/ V apats))
2014 :     in (LrTable.NT 40,(result,apat1left,apats1right),rest671) end
2015 :     | (121,(_,(MlyValue.exp exp,expleft,expright as exp1right))::_::(_,(
2016 :     MlyValue.constraint constraint,_,_))::(_,(MlyValue.clause' clause',
2017 :     clause'left as clause'1left,clause'right))::rest671) => let val result
2018 :     =MlyValue.clause((
2019 :     fn env =>
2020 :     let val (id,pats) = E clause' env
2021 :     in {name=id,pats=pats,
2022 :     resultty=E constraint env,
2023 :     exp=fn $ => markexp(E exp $,expleft,expright),
2024 :     err=error(clause'left,clause'right)}
2025 :     end,
2026 :     V clause' \/ V constraint \/ V exp
2027 :     ))
2028 :     in (LrTable.NT 42,(result,clause'1left,exp1right),rest671) end
2029 :     | (122,(_,(MlyValue.ty ty,tyleft,tyright as ty1right))::_::(_,(
2030 :     MlyValue.ID ID,_,_))::(_,(MlyValue.tyvars tyvars,tyvars1left,_))::
2031 :     rest671) => let val result=MlyValue.tb((
2032 :     makeTB(tyvars, tycSymbol ID, ty,
2033 :     error(tyleft,tyright))))
2034 :     in (LrTable.NT 43,(result,tyvars1left,ty1right),rest671) end
2035 :     | (123,(_,(MlyValue.tb tb2,_,tb2right))::_::(_,(MlyValue.tb tb1,
2036 :     tb1left,_))::rest671) => let val result=MlyValue.tb((
2037 :     fn nw => sequence(tb1 nw,tb2 nw)))
2038 :     in (LrTable.NT 43,(result,tb1left,tb2right),rest671) end
2039 :     | (124,(_,(MlyValue.TYVAR TYVAR,TYVAR1left,TYVAR1right))::rest671) =>
2040 :     let val result=MlyValue.tyvars(([mkTyvar(mkUBOUND(tyvSymbol TYVAR))]))
2041 :     in (LrTable.NT 44,(result,TYVAR1left,TYVAR1right),rest671) end
2042 :     | (125,(_,(_,_,RPAREN1right))::(_,(MlyValue.tyvar_pc tyvar_pc,
2043 :     tyvar_pcleft,tyvar_pcright))::(_,(_,LPAREN1left,_))::rest671) => let
2044 :     val result=MlyValue.tyvars((
2045 :     checkUniq(error(tyvar_pcleft,tyvar_pcright),
2046 :     "duplicate type variable")
2047 :     (List.map(fn ref(UBOUND{name,...})=>name)
2048 :     tyvar_pc);
2049 :     tyvar_pc
2050 :     ))
2051 :     in (LrTable.NT 44,(result,LPAREN1left,RPAREN1right),rest671) end
2052 :     | (126,rest671) => let val result=MlyValue.tyvars((nil))
2053 :     in (LrTable.NT 44,(result,defaultPos,defaultPos),rest671) end
2054 :     | (127,(_,(MlyValue.TYVAR TYVAR,TYVAR1left,TYVAR1right))::rest671) =>
2055 :     let val result=MlyValue.tyvar_pc(([mkTyvar(mkUBOUND(tyvSymbol TYVAR))]
2056 :     ))
2057 :     in (LrTable.NT 45,(result,TYVAR1left,TYVAR1right),rest671) end
2058 :     | (128,(_,(MlyValue.tyvar_pc tyvar_pc,_,tyvar_pc1right))::_::(_,(
2059 :     MlyValue.TYVAR TYVAR,TYVAR1left,_))::rest671) => let val result=
2060 :     MlyValue.tyvar_pc((mkTyvar(mkUBOUND(tyvSymbol TYVAR)) :: tyvar_pc))
2061 :     in (LrTable.NT 45,(result,TYVAR1left,tyvar_pc1right),rest671) end
2062 :     | (129,(_,(MlyValue.db db2,_,db2right))::_::(_,(MlyValue.db db1,
2063 :     db1left,_))::rest671) => let val result=MlyValue.db((db1 @ db2))
2064 :     in (LrTable.NT 46,(result,db1left,db2right),rest671) end
2065 :     | (130,(_,(MlyValue.constrs constrs,constrsleft,constrsright as
2066 :     constrs1right))::_::(_,(MlyValue.ident ident,_,_))::(_,(
2067 :     MlyValue.tyvars tyvars,tyvars1left,_))::rest671) => let val result=
2068 :     MlyValue.db((
2069 :     let val name = tycSymbol ident
2070 :     in [(name,length tyvars,
2071 :     makeDB'(tyvars,name,constrs,
2072 :     error(constrsleft,constrsright)))]
2073 :     end
2074 :     ))
2075 :     in (LrTable.NT 46,(result,tyvars1left,constrs1right),rest671) end
2076 :     | (131,(_,(MlyValue.constr constr,constr1left,constr1right))::rest671)
2077 :     => let val result=MlyValue.constrs((fn $ => [E constr $], V constr))
2078 :     in (LrTable.NT 47,(result,constr1left,constr1right),rest671) end
2079 :     | (132,(_,(MlyValue.constrs constrs,_,constrs1right))::_::(_,(
2080 :     MlyValue.constr constr,constr1left,_))::rest671) => let val result=
2081 :     MlyValue.constrs((
2082 :     fn $ => E constr $ :: E constrs $,
2083 :     V constr \/ V constrs))
2084 :     in (LrTable.NT 47,(result,constr1left,constrs1right),rest671) end
2085 :     | (133,(_,(MlyValue.ident ident,_,ident1right))::(_,(MlyValue.op_op
2086 :     op_op,op_op1left,_))::rest671) => let val result=MlyValue.constr((
2087 :     fire op_op (fn(_,t)=> (varSymbol ident,true,t)),
2088 :     no_tyvars))
2089 :     in (LrTable.NT 48,(result,op_op1left,ident1right),rest671) end
2090 :     | (134,(_,(MlyValue.ty ty,_,ty1right))::_::(_,(MlyValue.ident ident,_,
2091 :     _))::(_,(MlyValue.op_op op_op,op_op1left,_))::rest671) => let val
2092 :     result=MlyValue.constr((
2093 :     fire op_op (fn(env,t)=> (varSymbol ident,false,
2094 :     CONty(arrowTycon,[E ty env, t]))),
2095 :     V ty
2096 :     ))
2097 :     in (LrTable.NT 48,(result,op_op1left,ty1right),rest671) end
2098 :     | (135,(_,(MlyValue.ident ident,_,ident1right))::(_,(MlyValue.op_op
2099 :     op_op,op_op1left,_))::rest671) => let val result=MlyValue.eb((
2100 :     fire op_op (makeEB(varSymbol ident)), no_tyvars))
2101 :     in (LrTable.NT 49,(result,op_op1left,ident1right),rest671) end
2102 :     | (136,(_,(MlyValue.ty ty,tyleft,tyright as ty1right))::_::(_,(
2103 :     MlyValue.ident ident,_,_))::(_,(MlyValue.op_op op_op,op_op1left,_))::
2104 :     rest671) => let val result=MlyValue.eb((
2105 :     fire op_op (makeEBof(varSymbol ident,E ty,
2106 :     error(tyleft,tyright))),
2107 :     V ty
2108 :     ))
2109 :     in (LrTable.NT 49,(result,op_op1left,ty1right),rest671) end
2110 :     | (137,(_,(MlyValue.qid qid,qidleft,qidright as qid1right))::_::(_,(
2111 :     MlyValue.ident ident,_,_))::(_,(MlyValue.op_op op_op,op_op1left,_))::
2112 :     rest671) => let val result=MlyValue.eb((
2113 :     fire op_op (makeEBeq(varSymbol ident,qid varSymbol,
2114 :     error(qidleft,qidright))),
2115 :     no_tyvars
2116 :     ))
2117 :     in (LrTable.NT 49,(result,op_op1left,qid1right),rest671) end
2118 :     | (138,(_,(MlyValue.eb eb2,_,eb2right))::_::(_,(MlyValue.eb eb1,
2119 :     eb1left,_))::rest671) => let val result=MlyValue.eb((
2120 :     sequence(E eb1,E eb2),
2121 :     V eb1 \/ V eb2))
2122 :     in (LrTable.NT 49,(result,eb1left,eb2right),rest671) end
2123 :     | (139,(_,(MlyValue.qid qid,qid1left,qid1right))::rest671) => let val
2124 :     result=MlyValue.qid_p0(([qid strSymbol]))
2125 :     in (LrTable.NT 6,(result,qid1left,qid1right),rest671) end
2126 :     | (140,(_,(MlyValue.qid_p0 qid_p0,_,qid_p01right))::(_,(MlyValue.qid
2127 :     qid,qid1left,_))::rest671) => let val result=MlyValue.qid_p0((
2128 :     qid strSymbol :: qid_p0))
2129 :     in (LrTable.NT 6,(result,qid1left,qid_p01right),rest671) end
2130 :     | (141,(_,(MlyValue.qid qid,qidleft as qid1left,qidright as qid1right)
2131 :     )::rest671) => let val result=MlyValue.qid_p((
2132 :     fn env => [getSTRpath env (qid strSymbol,error(qidleft,qidright))]))
2133 :     in (LrTable.NT 50,(result,qid1left,qid1right),rest671) end
2134 :     | (142,(_,(MlyValue.qid_p qid_p,_,qid_p1right))::(_,(MlyValue.qid qid,
2135 :     qidleft as qid1left,qidright))::rest671) => let val result=
2136 :     MlyValue.qid_p((
2137 :     fn env => getSTRpath env (qid strSymbol,error(qidleft,qidright)) :: qid_p env
2138 :     ))
2139 :     in (LrTable.NT 50,(result,qid1left,qid_p1right),rest671) end
2140 :     | (143,(_,(_,INFIX1left,INFIX1right))::rest671) => let val result=
2141 :     MlyValue.fixity((infixleft 0))
2142 :     in (LrTable.NT 51,(result,INFIX1left,INFIX1right),rest671) end
2143 :     | (144,(_,(MlyValue.int int,_,int1right))::(_,(_,INFIX1left,_))::
2144 :     rest671) => let val result=MlyValue.fixity((infixleft int))
2145 :     in (LrTable.NT 51,(result,INFIX1left,int1right),rest671) end
2146 :     | (145,(_,(_,INFIXR1left,INFIXR1right))::rest671) => let val result=
2147 :     MlyValue.fixity((infixright 0))
2148 :     in (LrTable.NT 51,(result,INFIXR1left,INFIXR1right),rest671) end
2149 :     | (146,(_,(MlyValue.int int,_,int1right))::(_,(_,INFIXR1left,_))::
2150 :     rest671) => let val result=MlyValue.fixity((infixright int))
2151 :     in (LrTable.NT 51,(result,INFIXR1left,int1right),rest671) end
2152 :     | (147,(_,(_,NONFIX1left,NONFIX1right))::rest671) => let val result=
2153 :     MlyValue.fixity((NONfix))
2154 :     in (LrTable.NT 51,(result,NONFIX1left,NONFIX1right),rest671) end
2155 :     | (148,(_,(MlyValue.vb vb,vbleft,vbright as vb1right))::(_,(_,VAL1left
2156 :     ,_))::rest671) => let val result=MlyValue.ldec((
2157 :     makeVALdec(vb,error(vbleft,vbright)),
2158 :     no_tyvars))
2159 :     in (LrTable.NT 52,(result,VAL1left,vb1right),rest671) end
2160 :     | (149,(_,(MlyValue.rvb rvb,rvbleft,rvbright as rvb1right))::_::(_,(_,
2161 :     VAL1left,_))::rest671) => let val result=MlyValue.ldec((
2162 :     makeVALRECdec (rvb,error(rvbleft,rvbright)),
2163 :     no_tyvars))
2164 :     in (LrTable.NT 52,(result,VAL1left,rvb1right),rest671) end
2165 :     | (150,(_,(MlyValue.fb fb,_,fb1right))::(_,(_,FUN1left,_))::rest671)
2166 :     => let val result=MlyValue.ldec((makeFUNdec fb, no_tyvars))
2167 :     in (LrTable.NT 52,(result,FUN1left,fb1right),rest671) end
2168 :     | (151,(_,(MlyValue.tb tb,tbleft,tbright as tb1right))::(_,(_,
2169 :     TYPE1left,_))::rest671) => let val result=MlyValue.ldec((
2170 :     (fn $ => makeTYPEdec(tb true $,
2171 :     error(tbleft,tbright))),
2172 :     no_tyvars
2173 :     ))
2174 :     in (LrTable.NT 52,(result,TYPE1left,tb1right),rest671) end
2175 :     | (152,(_,(MlyValue.db db,_,db1right))::(_,(_,DATATYPE1left,_))::
2176 :     rest671) => let val result=MlyValue.ldec((
2177 :     makeDB(db, nullTB), no_tyvars))
2178 :     in (LrTable.NT 52,(result,DATATYPE1left,db1right),rest671) end
2179 :     | (153,(_,(MlyValue.tb tb,_,tb1right))::_::(_,(MlyValue.db db,_,_))::(
2180 :     _,(_,DATATYPE1left,_))::rest671) => let val result=MlyValue.ldec((
2181 :     makeDB(db,tb), no_tyvars))
2182 :     in (LrTable.NT 52,(result,DATATYPE1left,tb1right),rest671) end
2183 :     | (154,(_,(_,_,END1right))::(_,(MlyValue.ldecs ldecs,_,_))::_::(_,(
2184 :     MlyValue.db db,_,_))::(_,(_,ABSTYPE1left,_))::rest671) => let val
2185 :     result=MlyValue.ldec((makeABSTYPEdec(db,nullTB,E ldecs),V ldecs))
2186 :     in (LrTable.NT 52,(result,ABSTYPE1left,END1right),rest671) end
2187 :     | (155,(_,(_,_,END1right))::(_,(MlyValue.ldecs ldecs,_,_))::_::(_,(
2188 :     MlyValue.tb tb,_,_))::_::(_,(MlyValue.db db,_,_))::(_,(_,ABSTYPE1left,
2189 :     _))::rest671) => let val result=MlyValue.ldec((
2190 :     makeABSTYPEdec(db,tb,E ldecs),V ldecs))
2191 :     in (LrTable.NT 52,(result,ABSTYPE1left,END1right),rest671) end
2192 :     | (156,(_,(MlyValue.eb eb,ebleft,ebright as eb1right))::(_,(_,
2193 :     EXCEPTION1left,_))::rest671) => let val result=MlyValue.ldec((
2194 :     (fn $ => makeEXCEPTIONdec(E eb $,
2195 :     error(ebleft,ebright))),
2196 :     V eb
2197 :     ))
2198 :     in (LrTable.NT 52,(result,EXCEPTION1left,eb1right),rest671) end
2199 :     | (157,(_,(MlyValue.qid_p qid_p,_,qid_p1right))::(_,(_,OPEN1left,_))::
2200 :     rest671) => let val result=MlyValue.ldec((makeOPENdec qid_p, no_tyvars
2201 :     ))
2202 :     in (LrTable.NT 52,(result,OPEN1left,qid_p1right),rest671) end
2203 :     | (158,(_,(MlyValue.ops ops,_,ops1right))::(_,(MlyValue.fixity fixity,
2204 :     fixity1left,_))::rest671) => let val result=MlyValue.ldec((
2205 :     makeFIXdec(fixity,ops), no_tyvars))
2206 :     in (LrTable.NT 52,(result,fixity1left,ops1right),rest671) end
2207 :     | (159,(_,(MlyValue.exp_pa exp_pa,_,exp_pa1right))::_::(_,(MlyValue.ty
2208 :     ty,_,_))::_::(_,(MlyValue.ident ident,_,_))::(_,(_,OVERLOAD1left,_))
2209 :     ::rest671) => let val result=MlyValue.ldec((
2210 :     makeOVERLOADdec(varSymbol ident,ty,exp_pa),
2211 :     no_tyvars))
2212 :     in (LrTable.NT 52,(result,OVERLOAD1left,exp_pa1right),rest671) end
2213 :     | (160,(_,(MlyValue.exp exp,exp1left,exp1right))::rest671) => let val
2214 :     result=MlyValue.exp_pa((fn st => [E exp st]))
2215 :     in (LrTable.NT 53,(result,exp1left,exp1right),rest671) end
2216 :     | (161,(_,(MlyValue.exp_pa exp_pa,_,exp_pa1right))::_::(_,(
2217 :     MlyValue.exp exp,exp1left,_))::rest671) => let val result=
2218 :     MlyValue.exp_pa((fn st => E exp st :: exp_pa st))
2219 :     in (LrTable.NT 53,(result,exp1left,exp_pa1right),rest671) end
2220 :     | (162,rest671) => let val result=MlyValue.ldecs((
2221 :     fn $ => (SEQdec nil,Env.empty), no_tyvars))
2222 :     in (LrTable.NT 54,(result,defaultPos,defaultPos),rest671) end
2223 :     | (163,(_,(MlyValue.ldecs ldecs,_,ldecs1right))::(_,(MlyValue.ldec
2224 :     ldec,ldecleft as ldec1left,ldecright))::rest671) => let val result=
2225 :     MlyValue.ldecs((
2226 :     makeSEQdec(fn $ => markdec(E ldec $,ldecleft,ldecright),
2227 :     E ldecs),
2228 :     V ldec \/ V ldecs
2229 :     ))
2230 :     in (LrTable.NT 54,(result,ldec1left,ldecs1right),rest671) end
2231 :     | (164,(_,(MlyValue.ldecs ldecs,_,ldecs1right))::(_,(_,SEMICOLON1left,
2232 :     _))::rest671) => let val result=MlyValue.ldecs((ldecs))
2233 :     in (LrTable.NT 54,(result,SEMICOLON1left,ldecs1right),rest671) end
2234 :     | (165,(_,(MlyValue.ldecs ldecs3,_,ldecs3right))::(_,(_,_,ENDright))::
2235 :     (_,(MlyValue.ldecs ldecs2,_,_))::_::(_,(MlyValue.ldecs ldecs1,_,_))::(
2236 :     _,(_,LOCALleft as LOCAL1left,_))::rest671) => let val result=
2237 :     MlyValue.ldecs((
2238 :     makeSEQdec(fn $ =>
2239 :     markdec(makeLOCALdec(E ldecs1,E ldecs2) $,
2240 :     LOCALleft,ENDright),
2241 :     E ldecs3),
2242 :     V ldecs1 \/ V ldecs2 \/ V ldecs3
2243 :     ))
2244 :     in (LrTable.NT 54,(result,LOCAL1left,ldecs3right),rest671) end
2245 :     | (166,(_,(MlyValue.ident ident,ident1left,ident1right))::rest671) =>
2246 :     let val result=MlyValue.ops(([fixSymbol ident]))
2247 :     in (LrTable.NT 55,(result,ident1left,ident1right),rest671) end
2248 :     | (167,(_,(MlyValue.ops ops,_,ops1right))::(_,(MlyValue.ident ident,
2249 :     ident1left,_))::rest671) => let val result=MlyValue.ops((
2250 :     fixSymbol ident :: ops))
2251 :     in (LrTable.NT 55,(result,ident1left,ops1right),rest671) end
2252 :     | (168,rest671) => let val result=MlyValue.spec_s((fn $ => nil))
2253 :     in (LrTable.NT 56,(result,defaultPos,defaultPos),rest671) end
2254 :     | (169,(_,(MlyValue.spec_s spec_s,_,spec_s1right))::(_,(MlyValue.spec
2255 :     spec,spec1left,_))::rest671) => let val result=MlyValue.spec_s((
2256 :     fn $ => spec $ @ spec_s $))
2257 :     in (LrTable.NT 56,(result,spec1left,spec_s1right),rest671) end
2258 :     | (170,(_,(MlyValue.spec_s spec_s,_,spec_s1right))::(_,(_,
2259 :     SEMICOLON1left,_))::rest671) => let val result=MlyValue.spec_s((spec_s
2260 :     ))
2261 :     in (LrTable.NT 56,(result,SEMICOLON1left,spec_s1right),rest671) end
2262 :     | (171,(_,(MlyValue.strspec strspec,_,strspec1right))::(_,(_,
2263 :     STRUCTURE1left,_))::rest671) => let val result=MlyValue.spec((strspec)
2264 :     )
2265 :     in (LrTable.NT 57,(result,STRUCTURE1left,strspec1right),rest671) end
2266 :     | (172,(_,(MlyValue.db db,_,db1right))::(_,(_,DATATYPE1left,_))::
2267 :     rest671) => let val result=MlyValue.spec((make_dtyspec db))
2268 :     in (LrTable.NT 57,(result,DATATYPE1left,db1right),rest671) end
2269 :     | (173,(_,(MlyValue.tyspec tyspec,_,tyspec1right))::(_,(_,TYPE1left,_)
2270 :     )::rest671) => let val result=MlyValue.spec((tyspec UNDEF))
2271 :     in (LrTable.NT 57,(result,TYPE1left,tyspec1right),rest671) end
2272 :     | (174,(_,(MlyValue.tyspec tyspec,_,tyspec1right))::(_,(_,EQTYPE1left,
2273 :     _))::rest671) => let val result=MlyValue.spec((tyspec YES))
2274 :     in (LrTable.NT 57,(result,EQTYPE1left,tyspec1right),rest671) end
2275 :     | (175,(_,(MlyValue.valspec valspec,_,valspec1right))::(_,(_,VAL1left,
2276 :     _))::rest671) => let val result=MlyValue.spec((valspec))
2277 :     in (LrTable.NT 57,(result,VAL1left,valspec1right),rest671) end
2278 :     | (176,(_,(MlyValue.exnspec exnspec,_,exnspec1right))::(_,(_,
2279 :     EXCEPTION1left,_))::rest671) => let val result=MlyValue.spec((exnspec)
2280 :     )
2281 :     in (LrTable.NT 57,(result,EXCEPTION1left,exnspec1right),rest671) end
2282 :     | (177,(_,(MlyValue.ops ops,_,ops1right))::(_,(MlyValue.fixity fixity,
2283 :     fixity1left,_))::rest671) => let val result=MlyValue.spec((
2284 :     make_fixityspec(fixity,ops)))
2285 :     in (LrTable.NT 57,(result,fixity1left,ops1right),rest671) end
2286 :     | (178,(_,(MlyValue.sharespec sharespec,_,sharespec1right))::(_,(_,
2287 :     SHARING1left,_))::rest671) => let val result=MlyValue.spec((sharespec)
2288 :     )
2289 :     in (LrTable.NT 57,(result,SHARING1left,sharespec1right),rest671) end
2290 :     | (179,(_,(MlyValue.qid_p0 qid_p0,_,qid_p0right as qid_p01right))::(_,
2291 :     (_,OPENleft as OPEN1left,_))::rest671) => let val result=MlyValue.spec
2292 :     ((make_openspec(qid_p0,
2293 :     error(OPENleft,qid_p0right))))
2294 :     in (LrTable.NT 57,(result,OPEN1left,qid_p01right),rest671) end
2295 :     | (180,(_,(_,_,END1right))::(_,(MlyValue.spec_s spec_s2,_,_))::_::(_,(
2296 :     MlyValue.spec_s spec_s1,spec_s1left,spec_s1right))::(_,(_,LOCAL1left,_
2297 :     ))::rest671) => let val result=MlyValue.spec((
2298 :     fn $ => (spec_s1 $;
2299 :     error(spec_s1left,spec_s1right) WARN
2300 :     "LOCAL specs are only partially implemented";
2301 :     spec_s2 $)
2302 :     ))
2303 :     in (LrTable.NT 57,(result,LOCAL1left,END1right),rest671) end
2304 :     | (181,(_,(MlyValue.ident ident,identleft,identright as ident1right))
2305 :     ::(_,(_,INCLUDE1left,_))::rest671) => let val result=MlyValue.spec((
2306 :     make_includespec (sigSymbol ident,error(identleft,identright))))
2307 :     in (LrTable.NT 57,(result,INCLUDE1left,ident1right),rest671) end
2308 :     | (182,(_,(MlyValue.strspec strspec2,_,strspec2right))::_::(_,(
2309 :     MlyValue.strspec strspec1,strspec1left,_))::rest671) => let val result
2310 :     =MlyValue.strspec((fn $ => strspec1 $ @ strspec2 $))
2311 :     in (LrTable.NT 58,(result,strspec1left,strspec2right),rest671) end
2312 :     | (183,(_,(MlyValue.sign sign,_,sign1right))::_::(_,(MlyValue.ident
2313 :     ident,ident1left,_))::rest671) => let val result=MlyValue.strspec((
2314 :     make_strspec(strSymbol ident, sign(false,false,NULLstr))))
2315 :     in (LrTable.NT 58,(result,ident1left,sign1right),rest671) end
2316 :     | (184,(_,(MlyValue.tyspec tyspec2,_,tyspec2right))::_::(_,(
2317 :     MlyValue.tyspec tyspec1,tyspec1left,_))::rest671) => let val result=
2318 :     MlyValue.tyspec((fn eq => fn $ =>
2319 :     tyspec1 eq $ @ tyspec2 eq $
2320 :     ))
2321 :     in (LrTable.NT 59,(result,tyspec1left,tyspec2right),rest671) end
2322 :     | (185,(_,(MlyValue.ID ID,_,IDright as ID1right))::(_,(MlyValue.tyvars
2323 :     tyvars,tyvarsleft as tyvars1left,_))::rest671) => let val result=
2324 :     MlyValue.tyspec((
2325 :     fn eq => make_tyspec(eq,tyvars,tycSymbol ID,
2326 :     error(tyvarsleft,IDright))
2327 :     ))
2328 :     in (LrTable.NT 59,(result,tyvars1left,ID1right),rest671) end
2329 :     | (186,(_,(MlyValue.valspec valspec2,_,valspec2right))::_::(_,(
2330 :     MlyValue.valspec valspec1,valspec1left,_))::rest671) => let val result
2331 :     =MlyValue.valspec((fn $ => valspec1 $ @ valspec2 $))
2332 :     in (LrTable.NT 60,(result,valspec1left,valspec2right),rest671) end
2333 :     | (187,(_,(MlyValue.ty ty,_,ty1right))::_::(_,(MlyValue.ident ident,_,
2334 :     _))::(_,(MlyValue.op_op op_op,op_op1left,_))::rest671) => let val
2335 :     result=MlyValue.valspec((fire op_op (make_valspec(varSymbol ident,ty))
2336 :     ))
2337 :     in (LrTable.NT 60,(result,op_op1left,ty1right),rest671) end
2338 :     | (188,(_,(MlyValue.exnspec exnspec2,_,exnspec2right))::_::(_,(
2339 :     MlyValue.exnspec exnspec1,exnspec1left,_))::rest671) => let val result
2340 :     =MlyValue.exnspec((fn $ => exnspec1 $ @ exnspec2 $))
2341 :     in (LrTable.NT 61,(result,exnspec1left,exnspec2right),rest671) end
2342 :     | (189,(_,(MlyValue.ident ident,ident1left,ident1right))::rest671) =>
2343 :     let val result=MlyValue.exnspec((make_exnspec(varSymbol ident)))
2344 :     in (LrTable.NT 61,(result,ident1left,ident1right),rest671) end
2345 :     | (190,(_,(MlyValue.ty ty,_,ty1right))::_::(_,(MlyValue.ident ident,
2346 :     ident1left,_))::rest671) => let val result=MlyValue.exnspec((
2347 :     make_exnspecOF (varSymbol ident,ty)))
2348 :     in (LrTable.NT 61,(result,ident1left,ty1right),rest671) end
2349 :     | (191,(_,(MlyValue.sharespec sharespec2,_,sharespec2right))::_::(_,(
2350 :     MlyValue.sharespec sharespec1,sharespec1left,_))::rest671) => let val
2351 :     result=MlyValue.sharespec((fn $ => sharespec1 $ @ sharespec2 $))
2352 :     in (LrTable.NT 62,(result,sharespec1left,sharespec2right),rest671)
2353 :     end
2354 :     | (192,(_,(MlyValue.patheqn patheqn,_,patheqn1right))::(_,(_,TYPE1left
2355 :     ,_))::rest671) => let val result=MlyValue.sharespec((
2356 :     make_type_sharespec(patheqn tycSymbol)))
2357 :     in (LrTable.NT 62,(result,TYPE1left,patheqn1right),rest671) end
2358 :     | (193,(_,(MlyValue.patheqn patheqn,patheqn1left,patheqn1right))::
2359 :     rest671) => let val result=MlyValue.sharespec((
2360 :     make_str_sharespec(patheqn strSymbol)))
2361 :     in (LrTable.NT 62,(result,patheqn1left,patheqn1right),rest671) end
2362 :     | (194,(_,(MlyValue.qid qid2,_,qid2right))::_::(_,(MlyValue.qid qid1,
2363 :     qid1left,_))::rest671) => let val result=MlyValue.patheqn((
2364 :     fn kind => [qid1 kind, qid2 kind]))
2365 :     in (LrTable.NT 63,(result,qid1left,qid2right),rest671) end
2366 :     | (195,(_,(MlyValue.patheqn patheqn,_,patheqn1right))::_::(_,(
2367 :     MlyValue.qid qid,qid1left,_))::rest671) => let val result=
2368 :     MlyValue.patheqn((fn kind => qid kind :: patheqn kind))
2369 :     in (LrTable.NT 63,(result,qid1left,patheqn1right),rest671) end
2370 :     | (196,(_,(MlyValue.ID ID,IDleft as ID1left,IDright as ID1right))::
2371 :     rest671) => let val result=MlyValue.sign((
2372 :     makeSIGid(sigSymbol ID,error(IDleft,IDright))))
2373 :     in (LrTable.NT 64,(result,ID1left,ID1right),rest671) end
2374 :     | (197,(_,(_,_,END1right))::(_,(MlyValue.spec_s spec_s,spec_sleft,
2375 :     spec_sright))::(_,(_,SIG1left,_))::rest671) => let val result=
2376 :     MlyValue.sign((makeSIG(spec_s,error(spec_sleft,spec_sright))))
2377 :     in (LrTable.NT 64,(result,SIG1left,END1right),rest671) end
2378 :     | (198,rest671) => let val result=MlyValue.sigconstraint_op((
2379 :     fn _ => NONE))
2380 :     in (LrTable.NT 65,(result,defaultPos,defaultPos),rest671) end
2381 :     | (199,(_,(MlyValue.sign sign,_,sign1right))::(_,(_,COLON1left,_))::
2382 :     rest671) => let val result=MlyValue.sigconstraint_op((
2383 :     fn (env,param) =>
2384 :     SOME(sign(true,false,param) (env,Stampset.newStampsets()))
2385 :     ))
2386 :     in (LrTable.NT 65,(result,COLON1left,sign1right),rest671) end
2387 :     | (200,(_,(MlyValue.sigb sigb2,_,sigb2right))::_::(_,(MlyValue.sigb
2388 :     sigb1,sigb1left,_))::rest671) => let val result=MlyValue.sigb((
2389 :     sequence'(sigb1,sigb2)))
2390 :     in (LrTable.NT 66,(result,sigb1left,sigb2right),rest671) end
2391 :     | (201,(_,(MlyValue.sign sign,_,sign1right))::_::(_,(MlyValue.ident
2392 :     ident,ident1left,_))::rest671) => let val result=MlyValue.sigb((
2393 :     make_sigb(sigSymbol ident, sign(true,false,NULLstr))))
2394 :     in (LrTable.NT 66,(result,ident1left,sign1right),rest671) end
2395 :     | (202,(_,(MlyValue.qid qid,qidleft as qid1left,qidright as qid1right)
2396 :     )::rest671) => let val result=MlyValue.str((
2397 :     markstr(make_str_qid(qid strSymbol,
2398 :     error(qidleft,qidright)),qidleft,qidright)
2399 :     ))
2400 :     in (LrTable.NT 67,(result,qid1left,qid1right),rest671) end
2401 :     | (203,(_,(_,_,ENDright as END1right))::(_,(MlyValue.sdecs sdecs,_,_))
2402 :     ::(_,(_,STRUCTleft as STRUCT1left,_))::rest671) => let val result=
2403 :     MlyValue.str((
2404 :     markstr(make_str_struct(sdecs,
2405 :     error(STRUCTleft,ENDright)),
2406 :     STRUCTleft,ENDright)
2407 :     ))
2408 :     in (LrTable.NT 67,(result,STRUCT1left,END1right),rest671) end
2409 :     | (204,(_,(_,_,RPARENright as RPAREN1right))::(_,(MlyValue.sdecs sdecs
2410 :     ,sdecsleft,sdecsright))::_::(_,(MlyValue.ID ID,IDleft as ID1left,
2411 :     IDright))::rest671) => let val result=MlyValue.str((
2412 :     markstr(make_str_app(fctSymbol ID,error(IDleft,IDright),
2413 :     (fn $ => let val (s,s')=spread_args sdecs $
2414 :     in (MARKstr(s,sdecsleft,sdecsright)
2415 :     ,s')
2416 :     end)),IDleft,RPARENright)
2417 :     ))
2418 :     in (LrTable.NT 67,(result,ID1left,RPAREN1right),rest671) end
2419 :     | (205,(_,(_,_,RPARENright as RPAREN1right))::(_,(MlyValue.str str,_,_
2420 :     ))::_::(_,(MlyValue.ID ID,IDleft as ID1left,IDright))::rest671) =>
2421 :     let val result=MlyValue.str((
2422 :     markstr(make_str_app(fctSymbol ID,error(IDleft,IDright),
2423 :     single_arg str),IDleft,RPARENright)
2424 :     ))
2425 :     in (LrTable.NT 67,(result,ID1left,RPAREN1right),rest671) end
2426 :     | (206,(_,(_,_,ENDright as END1right))::(_,(MlyValue.str str,_,_))::_
2427 :     ::(_,(MlyValue.sdecs sdecs,_,_))::(_,(_,LETleft as LET1left,_))::
2428 :     rest671) => let val result=MlyValue.str((
2429 :     markstr(make_str_let(sdecs,str),LETleft,ENDright)))
2430 :     in (LrTable.NT 67,(result,LET1left,END1right),rest671) end
2431 :     | (207,(_,(MlyValue.sdecs sdecs,_,sdecs1right))::(_,(MlyValue.sdec
2432 :     sdec,sdecleft as sdec1left,sdecright))::rest671) => let val result=
2433 :     MlyValue.sdecs((
2434 :     sequence(fn $ => markdec'(sdec $,sdecleft,
2435 :     sdecright),
2436 :     sdecs)
2437 :     ))
2438 :     in (LrTable.NT 68,(result,sdec1left,sdecs1right),rest671) end
2439 :     | (208,(_,(MlyValue.sdecs sdecs,_,sdecs1right))::(_,(_,SEMICOLON1left,
2440 :     _))::rest671) => let val result=MlyValue.sdecs((sdecs))
2441 :     in (LrTable.NT 68,(result,SEMICOLON1left,sdecs1right),rest671) end
2442 :     | (209,(_,(MlyValue.sdecs sdecs3,_,sdecs3right))::(_,(_,_,ENDright))::
2443 :     (_,(MlyValue.sdecs sdecs2,_,_))::_::(_,(MlyValue.sdecs sdecs1,_,_))::(
2444 :     _,(_,LOCALleft as LOCAL1left,_))::rest671) => let val result=
2445 :     MlyValue.sdecs((
2446 :     sequence(fn $ => markdec''(makeLOCALsdecs(sdecs1,sdecs2) $,LOCALleft,ENDright),
2447 :     sdecs3)
2448 :     ))
2449 :     in (LrTable.NT 68,(result,LOCAL1left,sdecs3right),rest671) end
2450 :     | (210,rest671) => let val result=MlyValue.sdecs((
2451 :     fn $ => (nil,Env.empty)))
2452 :     in (LrTable.NT 68,(result,defaultPos,defaultPos),rest671) end
2453 :     | (211,(_,(MlyValue.sdecs' sdecs',_,sdecs'1right))::(_,(MlyValue.sdec
2454 :     sdec,sdecleft as sdec1left,sdecright))::rest671) => let val result=
2455 :     MlyValue.sdecs'((
2456 :     sequence(fn $ => markdec'(sdec $,sdecleft,sdecright),
2457 :     sdecs')))
2458 :     in (LrTable.NT 69,(result,sdec1left,sdecs'1right),rest671) end
2459 :     | (212,(_,(MlyValue.sdecs' sdecs',_,sdecs'1right))::(_,(_,_,ENDright))
2460 :     ::(_,(MlyValue.sdecs sdecs2,_,_))::_::(_,(MlyValue.sdecs sdecs1,_,_))
2461 :     ::(_,(_,LOCALleft as LOCAL1left,_))::rest671) => let val result=
2462 :     MlyValue.sdecs'((
2463 :     sequence(fn $ =>
2464 :     markdec''(makeLOCALsdecs(sdecs1,sdecs2) $,
2465 :     LOCALleft,ENDright),
2466 :     sdecs')
2467 :     ))
2468 :     in (LrTable.NT 69,(result,LOCAL1left,sdecs'1right),rest671) end
2469 :     | (213,(_,(_,_,ENDright as END1right))::(_,(MlyValue.sdecs sdecs2,_,_)
2470 :     )::_::(_,(MlyValue.sdecs sdecs1,_,_))::(_,(_,LOCALleft as LOCAL1left,_
2471 :     ))::rest671) => let val result=MlyValue.sdecs'((
2472 :     fn $ => markdec''(makeLOCALsdecs(sdecs1,sdecs2) $,LOCALleft,ENDright))
2473 :     )
2474 :     in (LrTable.NT 69,(result,LOCAL1left,END1right),rest671) end
2475 :     | (214,(_,(MlyValue.sdec sdec,sdecleft as sdec1left,sdecright as
2476 :     sdec1right))::rest671) => let val result=MlyValue.sdecs'((
2477 :     fn $ => seqdec(markdec(sdec $,sdecleft,sdecright))))
2478 :     in (LrTable.NT 69,(result,sdec1left,sdec1right),rest671) end
2479 :     | (215,(_,(MlyValue.strb strb,_,strb1right))::(_,(_,STRUCTURE1left,_))
2480 :     ::rest671) => let val result=MlyValue.sdec((makeSTRBs(strb false)))
2481 :     in (LrTable.NT 70,(result,STRUCTURE1left,strb1right),rest671) end
2482 :     | (216,(_,(MlyValue.strb strb,_,strb1right))::(_,(_,ABSTRACTION1left,_
2483 :     ))::rest671) => let val result=MlyValue.sdec((makeSTRBs(strb true)))
2484 :     in (LrTable.NT 70,(result,ABSTRACTION1left,strb1right),rest671) end
2485 :     | (217,(_,(MlyValue.sigb sigb,_,sigbright as sigb1right))::(_,(_,
2486 :     SIGNATUREleft as SIGNATURE1left,_))::rest671) => let val result=
2487 :     MlyValue.sdec((makeSIGdec(sigb,error(SIGNATUREleft,sigbright))))
2488 :     in (LrTable.NT 70,(result,SIGNATURE1left,sigb1right),rest671) end
2489 :     | (218,(_,(MlyValue.fctb fctb,_,fctbright as fctb1right))::(_,(_,
2490 :     FUNCTORleft as FUNCTOR1left,_))::rest671) => let val result=
2491 :     MlyValue.sdec((makeFCTdec(fctb,error(FUNCTORleft,fctbright))))
2492 :     in (LrTable.NT 70,(result,FUNCTOR1left,fctb1right),rest671) end
2493 :     | (219,(_,(MlyValue.ldec ldec,ldecleft as ldec1left,ldecright as
2494 :     ldec1right))::rest671) => let val result=MlyValue.sdec((
2495 :     fn (env,pa,top,st) =>
2496 :     let val (dec,env') = markdec(E ldec(env,pa,no_tyvars,st),ldecleft,ldecright)
2497 :     in Typecheck.decType(Env.atop(env',env),dec,top,error,
2498 :     (ldecleft,ldecright));
2499 :     (dec,env')
2500 :     end
2501 :     ))
2502 :     in (LrTable.NT 70,(result,ldec1left,ldec1right),rest671) end
2503 :     | (220,(_,(MlyValue.str str,_,str1right))::_::(_,(
2504 :     MlyValue.sigconstraint_op sigconstraint_op,sigconstraint_opleft,
2505 :     sigconstraint_opright))::(_,(MlyValue.ident ident,ident1left,_))::
2506 :     rest671) => let val result=MlyValue.strb((
2507 :     makeSTRB(strSymbol ident,sigconstraint_op,str,
2508 :     error(sigconstraint_opleft,sigconstraint_opright))
2509 :     ))
2510 :     in (LrTable.NT 71,(result,ident1left,str1right),rest671) end
2511 :     | (221,(_,(MlyValue.strb strb2,_,strb2right))::_::(_,(MlyValue.strb
2512 :     strb1,strb1left,_))::rest671) => let val result=MlyValue.strb((
2513 :     fn a => fn $ => strb1 a $ @ strb2 a $))
2514 :     in (LrTable.NT 71,(result,strb1left,strb2right),rest671) end
2515 :     | (222,(_,(MlyValue.sign sign,_,sign1right))::_::(_,(MlyValue.ID ID,
2516 :     ID1left,_))::rest671) => let val result=MlyValue.fparam((
2517 :     single_formal(strSymbol ID, sign(true,true,NULLstr))))
2518 :     in (LrTable.NT 72,(result,ID1left,sign1right),rest671) end
2519 :     | (223,(_,(MlyValue.spec_s spec_s,spec_sleft as spec_s1left,
2520 :     spec_sright as spec_s1right))::rest671) => let val result=
2521 :     MlyValue.fparam((
2522 :     spread_formal(spec_s,
2523 :     error(spec_sleft,spec_sright))))
2524 :     in (LrTable.NT 72,(result,spec_s1left,spec_s1right),rest671) end
2525 :     | (224,(_,(MlyValue.str str,strleft,strright as str1right))::_::(_,(
2526 :     MlyValue.sigconstraint_op sigconstraint_op,_,_))::_::(_,(
2527 :     MlyValue.fparam fparam,_,_))::_::(_,(MlyValue.ident ident,ident1left,_
2528 :     ))::rest671) => let val result=MlyValue.fctb((
2529 :     makeFCTB(fctSymbol ident,fparam,
2530 :     sigconstraint_op,str,
2531 :     error(strleft,strright))
2532 :     ))
2533 :     in (LrTable.NT 73,(result,ident1left,str1right),rest671) end
2534 :     | (225,(_,(MlyValue.fctb fctb2,_,fctb2right))::_::(_,(MlyValue.fctb
2535 :     fctb1,fctb1left,_))::rest671) => let val result=MlyValue.fctb((
2536 :     fn $ => fctb1 $ @ fctb2 $))
2537 :     in (LrTable.NT 73,(result,fctb1left,fctb2right),rest671) end
2538 :     | (226,(_,(MlyValue.STRING STRING,STRING1left,STRING1right))::rest671)
2539 :     => let val result=MlyValue.importdec(([STRING]))
2540 :     in (LrTable.NT 74,(result,STRING1left,STRING1right),rest671) end
2541 :     | (227,(_,(MlyValue.importdec importdec,_,importdec1right))::(_,(
2542 :     MlyValue.STRING STRING,STRING1left,_))::rest671) => let val result=
2543 :     MlyValue.importdec((STRING :: importdec))
2544 :     in (LrTable.NT 74,(result,STRING1left,importdec1right),rest671) end
2545 :     | (228,(_,(MlyValue.sdecs' sdecs',sdecs'left as sdecs'1left,
2546 :     sdecs'right as sdecs'1right))::rest671) => let val result=
2547 :     MlyValue.interdec((
2548 :     fn env=> let val (s,e)= sdecs'(env,[],true,Stampset.globalStamps)
2549 :     in markdec((SEQdec s,e),sdecs'left,sdecs'right)
2550 :     end
2551 :     ))
2552 :     in (LrTable.NT 75,(result,sdecs'1left,sdecs'1right),rest671) end
2553 :     | (229,(_,(MlyValue.importdec importdec,_,importdec1right))::(_,(_,
2554 :     IMPORT1left,_))::rest671) => let val result=MlyValue.interdec((
2555 :     fn env =>(IMPORTdec importdec,env)))
2556 :     in (LrTable.NT 75,(result,IMPORT1left,importdec1right),rest671) end
2557 :     | (230,(_,(MlyValue.exp exp,expleft as exp1left,expright as exp1right)
2558 :     )::rest671) => let val result=MlyValue.interdec((
2559 :     fn env=>markdec(toplevelexp(env,exp,error,(expleft,expright)),
2560 :     expleft,expright)
2561 :     ))
2562 :     in (LrTable.NT 75,(result,exp1left,exp1right),rest671) end
2563 :     | _ => raise (mlyAction i392)
2564 :     end
2565 :     val void = MlyValue.VOID
2566 :     val extract = fn a => (fn MlyValue.interdec x => x
2567 :     | _ => let exception ParseInternal
2568 :     in raise ParseInternal end) a
2569 :     end
2570 :     end
2571 :     structure Tokens : ML_TOKENS =
2572 :     struct
2573 :     type svalue = ParserData.svalue
2574 :     type ('a,'b) token = ('a,'b) Token.token
2575 :     fun EOF (p1,p2) = Token.TOKEN (ParserData.LrTable.T 0,(
2576 :     ParserData.MlyValue.VOID,p1,p2))
2577 :     fun SEMICOLON (p1,p2) = Token.TOKEN (ParserData.LrTable.T 1,(
2578 :     ParserData.MlyValue.VOID,p1,p2))
2579 :     fun ID (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 2,(
2580 :     ParserData.MlyValue.ID i,p1,p2))
2581 :     fun TYVAR (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 3,(
2582 :     ParserData.MlyValue.TYVAR i,p1,p2))
2583 :     fun INT (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 4,(
2584 :     ParserData.MlyValue.INT i,p1,p2))
2585 :     fun INT0 (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 5,(
2586 :     ParserData.MlyValue.INT0 i,p1,p2))
2587 :     fun REAL (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 6,(
2588 :     ParserData.MlyValue.REAL i,p1,p2))
2589 :     fun STRING (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 7,(
2590 :     ParserData.MlyValue.STRING i,p1,p2))
2591 :     fun ABSTRACTION (p1,p2) = Token.TOKEN (ParserData.LrTable.T 8,(
2592 :     ParserData.MlyValue.VOID,p1,p2))
2593 :     fun ABSTYPE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 9,(
2594 :     ParserData.MlyValue.VOID,p1,p2))
2595 :     fun AND (p1,p2) = Token.TOKEN (ParserData.LrTable.T 10,(
2596 :     ParserData.MlyValue.VOID,p1,p2))
2597 :     fun ARROW (p1,p2) = Token.TOKEN (ParserData.LrTable.T 11,(
2598 :     ParserData.MlyValue.VOID,p1,p2))
2599 :     fun AS (p1,p2) = Token.TOKEN (ParserData.LrTable.T 12,(
2600 :     ParserData.MlyValue.VOID,p1,p2))
2601 :     fun BAR (p1,p2) = Token.TOKEN (ParserData.LrTable.T 13,(
2602 :     ParserData.MlyValue.VOID,p1,p2))
2603 :     fun CASE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 14,(
2604 :     ParserData.MlyValue.VOID,p1,p2))
2605 :     fun DATATYPE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 15,(
2606 :     ParserData.MlyValue.VOID,p1,p2))
2607 :     fun DOTDOTDOT (p1,p2) = Token.TOKEN (ParserData.LrTable.T 16,(
2608 :     ParserData.MlyValue.VOID,p1,p2))
2609 :     fun ELSE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 17,(
2610 :     ParserData.MlyValue.VOID,p1,p2))
2611 :     fun END (p1,p2) = Token.TOKEN (ParserData.LrTable.T 18,(
2612 :     ParserData.MlyValue.VOID,p1,p2))
2613 :     fun EQUAL (p1,p2) = Token.TOKEN (ParserData.LrTable.T 19,(
2614 :     ParserData.MlyValue.VOID,p1,p2))
2615 :     fun EQTYPE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 20,(
2616 :     ParserData.MlyValue.VOID,p1,p2))
2617 :     fun EXCEPTION (p1,p2) = Token.TOKEN (ParserData.LrTable.T 21,(
2618 :     ParserData.MlyValue.VOID,p1,p2))
2619 :     fun DO (p1,p2) = Token.TOKEN (ParserData.LrTable.T 22,(
2620 :     ParserData.MlyValue.VOID,p1,p2))
2621 :     fun DOT (p1,p2) = Token.TOKEN (ParserData.LrTable.T 23,(
2622 :     ParserData.MlyValue.VOID,p1,p2))
2623 :     fun DARROW (p1,p2) = Token.TOKEN (ParserData.LrTable.T 24,(
2624 :     ParserData.MlyValue.VOID,p1,p2))
2625 :     fun FN (p1,p2) = Token.TOKEN (ParserData.LrTable.T 25,(
2626 :     ParserData.MlyValue.VOID,p1,p2))
2627 :     fun FUN (p1,p2) = Token.TOKEN (ParserData.LrTable.T 26,(
2628 :     ParserData.MlyValue.VOID,p1,p2))
2629 :     fun FUNCTOR (p1,p2) = Token.TOKEN (ParserData.LrTable.T 27,(
2630 :     ParserData.MlyValue.VOID,p1,p2))
2631 :     fun HANDLE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 28,(
2632 :     ParserData.MlyValue.VOID,p1,p2))
2633 :     fun HASH (p1,p2) = Token.TOKEN (ParserData.LrTable.T 29,(
2634 :     ParserData.MlyValue.VOID,p1,p2))
2635 :     fun IF (p1,p2) = Token.TOKEN (ParserData.LrTable.T 30,(
2636 :     ParserData.MlyValue.VOID,p1,p2))
2637 :     fun IN (p1,p2) = Token.TOKEN (ParserData.LrTable.T 31,(
2638 :     ParserData.MlyValue.VOID,p1,p2))
2639 :     fun INCLUDE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 32,(
2640 :     ParserData.MlyValue.VOID,p1,p2))
2641 :     fun INFIX (p1,p2) = Token.TOKEN (ParserData.LrTable.T 33,(
2642 :     ParserData.MlyValue.VOID,p1,p2))
2643 :     fun INFIXR (p1,p2) = Token.TOKEN (ParserData.LrTable.T 34,(
2644 :     ParserData.MlyValue.VOID,p1,p2))
2645 :     fun LET (p1,p2) = Token.TOKEN (ParserData.LrTable.T 35,(
2646 :     ParserData.MlyValue.VOID,p1,p2))
2647 :     fun LOCAL (p1,p2) = Token.TOKEN (ParserData.LrTable.T 36,(
2648 :     ParserData.MlyValue.VOID,p1,p2))
2649 :     fun NONFIX (p1,p2) = Token.TOKEN (ParserData.LrTable.T 37,(
2650 :     ParserData.MlyValue.VOID,p1,p2))
2651 :     fun OF (p1,p2) = Token.TOKEN (ParserData.LrTable.T 38,(
2652 :     ParserData.MlyValue.VOID,p1,p2))
2653 :     fun OP (p1,p2) = Token.TOKEN (ParserData.LrTable.T 39,(
2654 :     ParserData.MlyValue.VOID,p1,p2))
2655 :     fun OPEN (p1,p2) = Token.TOKEN (ParserData.LrTable.T 40,(
2656 :     ParserData.MlyValue.VOID,p1,p2))
2657 :     fun OVERLOAD (p1,p2) = Token.TOKEN (ParserData.LrTable.T 41,(
2658 :     ParserData.MlyValue.VOID,p1,p2))
2659 :     fun QUERY (p1,p2) = Token.TOKEN (ParserData.LrTable.T 42,(
2660 :     ParserData.MlyValue.VOID,p1,p2))
2661 :     fun RAISE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 43,(
2662 :     ParserData.MlyValue.VOID,p1,p2))
2663 :     fun REC (p1,p2) = Token.TOKEN (ParserData.LrTable.T 44,(
2664 :     ParserData.MlyValue.VOID,p1,p2))
2665 :     fun SHARING (p1,p2) = Token.TOKEN (ParserData.LrTable.T 45,(
2666 :     ParserData.MlyValue.VOID,p1,p2))
2667 :     fun SIG (p1,p2) = Token.TOKEN (ParserData.LrTable.T 46,(
2668 :     ParserData.MlyValue.VOID,p1,p2))
2669 :     fun SIGNATURE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 47,(
2670 :     ParserData.MlyValue.VOID,p1,p2))
2671 :     fun STRUCT (p1,p2) = Token.TOKEN (ParserData.LrTable.T 48,(
2672 :     ParserData.MlyValue.VOID,p1,p2))
2673 :     fun STRUCTURE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 49,(
2674 :     ParserData.MlyValue.VOID,p1,p2))
2675 :     fun THEN (p1,p2) = Token.TOKEN (ParserData.LrTable.T 50,(
2676 :     ParserData.MlyValue.VOID,p1,p2))
2677 :     fun TYPE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 51,(
2678 :     ParserData.MlyValue.VOID,p1,p2))
2679 :     fun VAL (p1,p2) = Token.TOKEN (ParserData.LrTable.T 52,(
2680 :     ParserData.MlyValue.VOID,p1,p2))
2681 :     fun WHILE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 53,(
2682 :     ParserData.MlyValue.VOID,p1,p2))
2683 :     fun WILD (p1,p2) = Token.TOKEN (ParserData.LrTable.T 54,(
2684 :     ParserData.MlyValue.VOID,p1,p2))
2685 :     fun WITH (p1,p2) = Token.TOKEN (ParserData.LrTable.T 55,(
2686 :     ParserData.MlyValue.VOID,p1,p2))
2687 :     fun WITHTYPE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 56,(
2688 :     ParserData.MlyValue.VOID,p1,p2))
2689 :     fun ASTERISK (p1,p2) = Token.TOKEN (ParserData.LrTable.T 57,(
2690 :     ParserData.MlyValue.VOID,p1,p2))
2691 :     fun COLON (p1,p2) = Token.TOKEN (ParserData.LrTable.T 58,(
2692 :     ParserData.MlyValue.VOID,p1,p2))
2693 :     fun COMMA (p1,p2) = Token.TOKEN (ParserData.LrTable.T 59,(
2694 :     ParserData.MlyValue.VOID,p1,p2))
2695 :     fun LBRACE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 60,(
2696 :     ParserData.MlyValue.VOID,p1,p2))
2697 :     fun LBRACKET (p1,p2) = Token.TOKEN (ParserData.LrTable.T 61,(
2698 :     ParserData.MlyValue.VOID,p1,p2))
2699 :     fun LPAREN (p1,p2) = Token.TOKEN (ParserData.LrTable.T 62,(
2700 :     ParserData.MlyValue.VOID,p1,p2))
2701 :     fun RBRACE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 63,(
2702 :     ParserData.MlyValue.VOID,p1,p2))
2703 :     fun RBRACKET (p1,p2) = Token.TOKEN (ParserData.LrTable.T 64,(
2704 :     ParserData.MlyValue.VOID,p1,p2))
2705 :     fun RPAREN (p1,p2) = Token.TOKEN (ParserData.LrTable.T 65,(
2706 :     ParserData.MlyValue.VOID,p1,p2))
2707 :     fun ORELSE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 66,(
2708 :     ParserData.MlyValue.VOID,p1,p2))
2709 :     fun ANDALSO (p1,p2) = Token.TOKEN (ParserData.LrTable.T 67,(
2710 :     ParserData.MlyValue.VOID,p1,p2))
2711 :     fun IMPORT (p1,p2) = Token.TOKEN (ParserData.LrTable.T 68,(
2712 :     ParserData.MlyValue.VOID,p1,p2))
2713 :     end
2714 :     end

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