end of line
[scilab.git] / scilab / modules / scicos / src / translator / parsing / parser.ml
1 type token =
2   | IDENT of (string)
3   | END_IDENT of (string)
4   | UNSIGNED_INTEGER of (string)
5   | UNSIGNED_REAL of (string)
6   | STRING of (string)
7   | ALGORITHM
8   | AND
9   | ANNOTATION
10   | BLOCK
11   | BREAK
12   | CLASS
13   | CONNECT
14   | CONNECTOR
15   | CONSTANT
16   | DISCRETE
17   | EACH
18   | ELSE
19   | ELSEIF
20   | ELSEWHEN
21   | ENCAPSULATED
22   | END
23   | END_IF
24   | END_FOR
25   | END_WHEN
26   | END_WHILE
27   | ENUMERATION
28   | EQUATION
29   | EXPANDABLE
30   | EXTENDS
31   | EXTERNAL
32   | FALSE
33   | FINAL
34   | FLOW
35   | FOR
36   | FUNCTION
37   | IF
38   | IMPORT
39   | IN
40   | INITIAL_ALGORITHM
41   | INITIAL_EQUATION
42   | INNER
43   | INPUT
44   | LOOP
45   | MODEL
46   | NOT
47   | NOEVENT
48   | OR
49   | OUTER
50   | OUTPUT
51   | PACKAGE
52   | PARAMETER
53   | PARTIAL
54   | PROTECTED
55   | PUBLIC
56   | RECORD
57   | REDECLARE
58   | REPLACEABLE
59   | RESTRICTS
60   | RETURN
61   | THEN
62   | TRUE
63   | TYPE
64   | WHEN
65   | WHILE
66   | WITHIN
67   | LP
68   | RP
69   | LSB
70   | RSB
71   | LCB
72   | RCB
73   | DOT
74   | CM
75   | SC
76   | CL
77   | PLUS
78   | MINUS
79   | STAR
80   | SLASH
81   | EXP
82   | EQ
83   | COLEQ
84   | LT
85   | GT
86   | LE
87   | GE
88   | EE
89   | NE
90   | EOF
91
92 open Parsing;;
93 # 30 "parser.mly"
94
95
96 (** Modelica parser. *)
97
98 (** Implementation based on {i Modelica language specification 2.0 } *)
99
100 open Syntax
101
102 exception Unclosed of int * string * int * string
103 exception Invalid_matrix of int * int
104 exception Invalid_array of int * int
105 exception End_of_file
106
107 type location =
108   {
109     start: int; (* offset in the parsed stream *)
110     enddd: int;  (* offset in the parsed stream *)
111     filename: filename
112   }
113
114 and filename =
115   | LibraryFile of string
116   | CommandLine
117
118 type error_description =
119   {
120     err_msg: string list;
121     err_info: (string * string) list;
122     err_ctx: err_ctx
123   }
124
125 and err_ctx =
126   {
127     location: location;
128   }
129
130 exception SyntacticError of error_description
131
132 let inputfile = ref CommandLine
133
134 let node nature =
135   {
136     nature = nature;
137     info = { start = Parsing.symbol_start ();
138              enddd = Parsing.symbol_end ();
139              filename = !inputfile }
140   }
141
142 let rhs_nodes n n' nature =
143   {
144     nature = nature;
145     info = { start = Parsing.rhs_start n;
146              enddd = Parsing.rhs_end n';
147              filename = !inputfile }
148   }
149
150 let unclosed opening_symbol opening_pos closing_symbol closing_pos =
151   let offset = Parsing.rhs_start opening_pos
152   and offset' = Parsing.rhs_start closing_pos in
153   raise (Unclosed (offset, opening_symbol, offset', closing_symbol))
154
155 let invalid_matrix_construction opening_pos error_pos =
156   raise (Invalid_matrix (
157     Parsing.rhs_start opening_pos, Parsing.rhs_start error_pos))
158
159 let invalid_literal_array_construction opening_pos error_pos =
160   raise (Invalid_array (
161     Parsing.rhs_start opening_pos, Parsing.rhs_start error_pos))
162
163 # 164 "parser.ml"
164 let yytransl_const = [|
165   262 (* ALGORITHM *);
166   263 (* AND *);
167   264 (* ANNOTATION *);
168   265 (* BLOCK *);
169   266 (* BREAK *);
170   267 (* CLASS *);
171   268 (* CONNECT *);
172   269 (* CONNECTOR *);
173   270 (* CONSTANT *);
174   271 (* DISCRETE *);
175   272 (* EACH *);
176   273 (* ELSE *);
177   274 (* ELSEIF *);
178   275 (* ELSEWHEN *);
179   276 (* ENCAPSULATED *);
180   277 (* END *);
181   278 (* END_IF *);
182   279 (* END_FOR *);
183   280 (* END_WHEN *);
184   281 (* END_WHILE *);
185   282 (* ENUMERATION *);
186   283 (* EQUATION *);
187   284 (* EXPANDABLE *);
188   285 (* EXTENDS *);
189   286 (* EXTERNAL *);
190   287 (* FALSE *);
191   288 (* FINAL *);
192   289 (* FLOW *);
193   290 (* FOR *);
194   291 (* FUNCTION *);
195   292 (* IF *);
196   293 (* IMPORT *);
197   294 (* IN *);
198   295 (* INITIAL_ALGORITHM *);
199   296 (* INITIAL_EQUATION *);
200   297 (* INNER *);
201   298 (* INPUT *);
202   299 (* LOOP *);
203   300 (* MODEL *);
204   301 (* NOT *);
205   302 (* NOEVENT *);
206   303 (* OR *);
207   304 (* OUTER *);
208   305 (* OUTPUT *);
209   306 (* PACKAGE *);
210   307 (* PARAMETER *);
211   308 (* PARTIAL *);
212   309 (* PROTECTED *);
213   310 (* PUBLIC *);
214   311 (* RECORD *);
215   312 (* REDECLARE *);
216   313 (* REPLACEABLE *);
217   314 (* RESTRICTS *);
218   315 (* RETURN *);
219   316 (* THEN *);
220   317 (* TRUE *);
221   318 (* TYPE *);
222   319 (* WHEN *);
223   320 (* WHILE *);
224   321 (* WITHIN *);
225   322 (* LP *);
226   323 (* RP *);
227   324 (* LSB *);
228   325 (* RSB *);
229   326 (* LCB *);
230   327 (* RCB *);
231   328 (* DOT *);
232   329 (* CM *);
233   330 (* SC *);
234   331 (* CL *);
235   332 (* PLUS *);
236   333 (* MINUS *);
237   334 (* STAR *);
238   335 (* SLASH *);
239   336 (* EXP *);
240   337 (* EQ *);
241   338 (* COLEQ *);
242   339 (* LT *);
243   340 (* GT *);
244   341 (* LE *);
245   342 (* GE *);
246   343 (* EE *);
247   344 (* NE *);
248     0 (* EOF *);
249     0|]
250
251 let yytransl_block = [|
252   257 (* IDENT *);
253   258 (* END_IDENT *);
254   259 (* UNSIGNED_INTEGER *);
255   260 (* UNSIGNED_REAL *);
256   261 (* STRING *);
257     0|]
258
259 let yylhs = "\255\255\
260 \001\000\001\000\001\000\001\000\001\000\001\000\002\000\002\000\
261 \002\000\002\000\003\000\003\000\003\000\003\000\003\000\003\000\
262 \003\000\003\000\003\000\003\000\003\000\003\000\003\000\004\000\
263 \004\000\006\000\018\000\018\000\018\000\018\000\018\000\018\000\
264 \018\000\018\000\018\000\016\000\016\000\017\000\017\000\019\000\
265 \019\000\019\000\019\000\019\000\022\000\027\000\027\000\029\000\
266 \029\000\030\000\030\000\031\000\021\000\021\000\032\000\032\000\
267 \032\000\032\000\032\000\033\000\033\000\033\000\041\000\041\000\
268 \039\000\039\000\037\000\037\000\038\000\038\000\038\000\038\000\
269 \038\000\038\000\038\000\038\000\038\000\042\000\042\000\024\000\
270 \024\000\025\000\025\000\034\000\034\000\034\000\034\000\034\000\
271 \034\000\034\000\049\000\049\000\049\000\049\000\049\000\049\000\
272 \046\000\046\000\047\000\047\000\048\000\048\000\048\000\048\000\
273 \005\000\005\000\005\000\051\000\051\000\045\000\052\000\052\000\
274 \050\000\028\000\054\000\054\000\055\000\055\000\055\000\055\000\
275 \056\000\056\000\056\000\053\000\009\000\009\000\057\000\058\000\
276 \059\000\059\000\060\000\060\000\060\000\060\000\044\000\044\000\
277 \044\000\044\000\061\000\061\000\062\000\062\000\063\000\065\000\
278 \065\000\064\000\066\000\066\000\066\000\066\000\066\000\066\000\
279 \035\000\035\000\035\000\035\000\067\000\067\000\036\000\036\000\
280 \036\000\036\000\069\000\069\000\068\000\068\000\068\000\068\000\
281 \068\000\068\000\068\000\068\000\068\000\070\000\070\000\070\000\
282 \070\000\070\000\070\000\070\000\070\000\070\000\070\000\070\000\
283 \070\000\070\000\070\000\070\000\070\000\070\000\070\000\070\000\
284 \070\000\070\000\072\000\077\000\077\000\078\000\078\000\076\000\
285 \076\000\012\000\080\000\080\000\081\000\081\000\079\000\079\000\
286 \073\000\013\000\082\000\082\000\083\000\083\000\014\000\075\000\
287 \015\000\084\000\084\000\085\000\085\000\074\000\074\000\007\000\
288 \007\000\086\000\086\000\071\000\071\000\071\000\087\000\087\000\
289 \088\000\088\000\089\000\089\000\090\000\090\000\090\000\090\000\
290 \090\000\090\000\090\000\091\000\091\000\091\000\092\000\092\000\
291 \092\000\093\000\093\000\093\000\094\000\094\000\095\000\095\000\
292 \095\000\095\000\095\000\095\000\095\000\095\000\095\000\095\000\
293 \095\000\095\000\095\000\095\000\095\000\095\000\095\000\095\000\
294 \096\000\096\000\097\000\097\000\023\000\023\000\008\000\008\000\
295 \008\000\008\000\011\000\011\000\098\000\098\000\098\000\098\000\
296 \099\000\099\000\099\000\099\000\099\000\099\000\010\000\010\000\
297 \043\000\100\000\100\000\101\000\101\000\026\000\020\000\020\000\
298 \102\000\102\000\040\000\000\000"
299
300 let yylen = "\002\000\
301 \001\000\002\000\002\000\003\000\002\000\001\000\003\000\002\000\
302 \004\000\003\000\001\000\002\000\003\000\007\000\008\000\008\000\
303 \007\000\001\000\001\000\001\000\001\000\001\000\001\000\001\000\
304 \003\000\004\000\001\000\001\000\001\000\001\000\002\000\001\000\
305 \001\000\001\000\001\000\000\000\001\000\000\000\001\000\004\000\
306 \007\000\007\000\006\000\006\000\001\000\000\000\001\000\001\000\
307 \001\000\001\000\003\000\002\000\002\000\003\000\000\000\003\000\
308 \003\000\002\000\002\000\000\000\005\000\006\000\000\000\001\000\
309 \000\000\002\000\000\000\001\000\000\000\003\000\004\000\004\000\
310 \003\000\005\000\006\000\006\000\005\000\001\000\003\000\000\000\
311 \001\000\000\000\001\000\002\000\003\000\003\000\006\000\004\000\
312 \004\000\007\000\001\000\001\000\002\000\003\000\002\000\003\000\
313 \000\000\001\000\000\000\001\000\000\000\001\000\001\000\002\000\
314 \005\000\003\000\005\000\001\000\002\000\004\000\004\000\004\000\
315 \004\000\003\000\000\000\001\000\000\000\001\000\001\000\001\000\
316 \000\000\001\000\001\000\001\000\001\000\003\000\002\000\003\000\
317 \000\000\001\000\003\000\001\000\002\000\002\000\002\000\003\000\
318 \003\000\002\000\001\000\003\000\001\000\001\000\005\000\000\000\
319 \001\000\004\000\001\000\003\000\002\000\003\000\004\000\005\000\
320 \001\000\002\000\001\000\002\000\004\000\005\000\001\000\002\000\
321 \001\000\002\000\004\000\005\000\003\000\001\000\001\000\001\000\
322 \001\000\003\000\004\000\004\000\003\000\003\000\003\000\004\000\
323 \004\000\003\000\007\000\006\000\008\000\007\000\008\000\007\000\
324 \007\000\006\000\003\000\002\000\001\000\001\000\001\000\001\000\
325 \001\000\001\000\007\000\000\000\005\000\000\000\002\000\002\000\
326 \003\000\007\000\000\000\005\000\000\000\002\000\002\000\003\000\
327 \005\000\005\000\001\000\003\000\001\000\003\000\005\000\006\000\
328 \006\000\000\000\005\000\000\000\005\000\006\000\006\000\001\000\
329 \007\000\000\000\005\000\001\000\003\000\005\000\001\000\003\000\
330 \001\000\003\000\001\000\002\000\001\000\003\000\003\000\003\000\
331 \003\000\003\000\003\000\001\000\003\000\003\000\001\000\003\000\
332 \003\000\001\000\002\000\002\000\001\000\003\000\001\000\001\000\
333 \001\000\001\000\001\000\004\000\001\000\003\000\004\000\004\000\
334 \003\000\003\000\003\000\003\000\002\000\003\000\002\000\001\000\
335 \001\000\003\000\003\000\001\000\001\000\003\000\001\000\002\000\
336 \003\000\004\000\001\000\003\000\001\000\001\000\003\000\003\000\
337 \003\000\002\000\004\000\005\000\005\000\004\000\001\000\003\000\
338 \003\000\001\000\003\000\001\000\001\000\002\000\000\000\001\000\
339 \001\000\003\000\002\000\002\000"
340
341 let yydefred = "\000\000\
342 \000\000\000\000\000\000\255\000\000\001\001\001\018\000\037\000\
343 \016\001\002\001\000\000\000\000\000\000\000\000\000\000\000\000\
344 \019\000\003\001\000\000\000\000\000\000\000\000\000\000\000\000\
345 \000\000\000\000\006\000\052\001\000\000\000\000\000\000\000\000\
346 \011\000\000\000\020\000\021\000\022\000\023\000\000\000\224\000\
347 \000\000\000\000\233\000\235\000\000\000\000\000\247\000\000\000\
348 \253\000\000\000\024\001\000\000\000\000\000\000\000\000\000\000\
349 \000\000\000\000\000\000\000\000\000\000\236\000\000\000\000\000\
350 \000\000\024\000\003\000\000\000\000\000\000\000\013\001\000\000\
351 \000\000\015\001\000\000\020\001\000\000\251\000\252\000\000\000\
352 \000\000\002\000\005\000\008\000\000\000\000\000\000\000\000\000\
353 \000\000\125\000\000\000\039\000\000\000\000\000\000\000\000\000\
354 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
355 \000\000\000\000\000\000\044\001\045\001\000\000\000\000\007\000\
356 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\049\001\
357 \000\000\000\000\106\000\000\000\000\000\000\000\000\000\000\000\
358 \004\000\000\000\011\001\000\000\000\000\012\001\000\000\014\001\
359 \000\000\010\000\000\000\081\000\009\001\000\000\000\000\006\001\
360 \000\000\000\000\000\000\030\001\000\000\013\000\000\000\127\000\
361 \029\000\027\000\032\000\000\000\035\000\028\000\034\000\030\000\
362 \033\000\000\000\000\000\000\000\234\000\000\000\000\000\000\000\
363 \000\000\000\000\000\000\000\000\000\000\248\000\249\000\254\000\
364 \041\001\000\000\214\000\189\000\000\000\190\000\000\000\000\000\
365 \191\000\192\000\193\000\194\000\000\000\000\000\212\000\000\000\
366 \010\001\000\000\000\000\000\000\000\000\021\001\000\000\022\001\
367 \000\000\000\000\064\000\046\001\000\000\004\001\000\000\000\000\
368 \025\000\040\001\000\000\018\001\019\001\009\000\000\000\000\000\
369 \000\000\000\000\128\000\130\000\000\000\000\000\000\000\008\001\
370 \007\001\000\000\026\001\126\000\031\000\000\000\000\000\026\000\
371 \000\000\043\001\000\000\188\000\000\000\000\000\000\000\000\000\
372 \207\000\210\000\000\000\000\000\000\000\000\000\000\000\000\000\
373 \000\000\000\000\105\000\107\000\051\001\050\001\000\000\000\000\
374 \215\000\000\000\138\000\145\000\000\000\135\000\000\000\000\000\
375 \141\000\142\000\000\000\133\000\134\000\000\000\033\001\000\000\
376 \028\001\031\001\032\001\000\000\000\000\000\000\000\000\000\000\
377 \000\000\187\000\000\000\178\000\175\000\000\000\174\000\208\000\
378 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
379 \000\000\000\000\000\000\217\000\000\000\000\000\137\000\136\000\
380 \000\000\100\000\000\000\131\000\038\001\035\001\000\000\000\000\
381 \116\000\000\000\045\000\000\000\000\000\098\000\000\000\000\000\
382 \000\000\000\000\000\000\000\000\000\000\000\000\083\000\000\000\
383 \000\000\177\000\176\000\000\000\225\000\000\000\000\000\000\000\
384 \000\000\202\000\000\000\017\000\014\000\000\000\000\000\140\000\
385 \000\000\037\001\036\001\000\000\000\000\120\000\118\000\119\000\
386 \000\000\000\000\000\000\040\000\000\000\000\000\000\000\000\000\
387 \000\000\000\000\000\000\053\000\058\000\059\000\000\000\000\000\
388 \000\000\000\000\084\000\000\000\000\000\000\000\000\000\000\000\
389 \000\000\000\000\000\000\016\000\015\000\000\000\147\000\000\000\
390 \146\000\000\000\000\000\049\000\000\000\047\000\000\000\050\000\
391 \000\000\122\000\123\000\114\000\000\000\085\000\000\000\000\000\
392 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
393 \000\000\166\000\167\000\168\000\169\000\068\000\000\000\000\000\
394 \000\000\000\000\000\000\000\000\054\000\000\000\000\000\086\000\
395 \000\000\103\000\000\000\000\000\186\000\180\000\000\000\000\000\
396 \227\000\204\000\221\000\000\000\000\000\000\000\000\000\143\000\
397 \052\000\043\000\000\000\000\000\000\000\110\000\066\000\000\000\
398 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
399 \000\000\000\000\000\000\000\000\088\000\089\000\000\000\104\000\
400 \000\000\091\000\000\000\000\000\092\000\044\000\184\000\182\000\
401 \185\000\179\000\000\000\000\000\000\000\000\000\108\000\000\000\
402 \148\000\042\000\051\000\041\000\000\000\000\000\000\000\000\000\
403 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\165\000\
404 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
405 \000\000\183\000\181\000\000\000\000\000\109\000\000\000\000\000\
406 \163\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
407 \000\000\157\000\073\000\070\000\000\000\000\000\000\000\061\000\
408 \000\000\000\000\000\000\000\000\000\000\087\000\000\000\000\000\
409 \000\000\164\000\000\000\200\000\209\000\000\000\000\000\000\000\
410 \000\000\000\000\158\000\000\000\072\000\071\000\000\000\062\000\
411 \090\000\000\000\111\000\112\000\223\000\222\000\201\000\000\000\
412 \000\000\000\000\000\000\216\000\079\000\077\000\074\000\000\000\
413 \000\000\000\000\195\000\000\000\076\000\075\000\000\000\000\000\
414 \197\000\219\000"
415
416 let yydgoto = "\002\000\
417 \028\000\029\000\030\000\068\000\063\001\210\001\145\000\059\000\
418 \089\000\072\000\146\000\185\000\186\000\187\000\188\000\039\000\
419 \093\000\162\000\232\000\122\000\064\001\058\001\182\001\139\000\
420 \070\001\123\000\133\001\211\001\134\001\135\001\136\001\065\001\
421 \108\001\066\001\109\001\110\001\159\001\204\001\142\001\143\001\
422 \204\000\014\002\051\000\071\001\068\001\069\001\051\001\171\001\
423 \212\001\213\001\222\001\223\001\183\001\060\001\097\001\140\001\
424 \090\000\091\000\219\000\220\000\007\001\008\001\009\001\010\001\
425 \011\001\129\001\151\001\003\002\144\001\189\000\040\000\154\001\
426 \155\001\156\001\157\001\004\002\032\002\050\002\197\000\249\000\
427 \042\001\054\000\055\000\034\002\000\001\246\000\041\000\042\000\
428 \043\000\044\000\045\000\046\000\047\000\048\000\049\000\073\000\
429 \077\000\147\000\148\000\110\000\111\000\124\000"
430
431 let yysindex = "\040\000\
432 \208\000\000\000\247\254\000\000\000\000\000\000\000\000\000\000\
433 \000\000\000\000\101\255\191\255\052\003\013\000\115\000\254\255\
434 \000\000\000\000\052\003\052\003\050\255\052\003\230\008\012\009\
435 \115\000\115\000\000\000\000\000\020\255\093\255\019\000\033\000\
436 \000\000\025\255\000\000\000\000\000\000\000\000\110\000\000\000\
437 \196\255\232\255\000\000\000\000\228\001\102\255\000\000\068\000\
438 \000\000\219\002\000\000\162\000\146\000\147\000\165\000\052\003\
439 \052\003\188\000\072\000\184\000\061\255\000\000\052\003\206\000\
440 \225\000\000\000\000\000\083\255\197\000\092\255\000\000\212\000\
441 \213\000\000\000\235\255\000\000\216\000\000\000\000\000\101\255\
442 \215\000\000\000\000\000\000\000\247\254\116\007\038\001\052\003\
443 \223\000\000\000\037\001\000\000\219\006\078\010\078\010\078\010\
444 \115\000\115\000\115\000\115\000\115\000\115\000\115\000\115\000\
445 \115\000\115\000\232\002\000\000\000\000\230\000\229\000\000\000\
446 \052\003\152\002\191\255\243\000\099\255\114\009\054\001\000\000\
447 \022\255\052\001\000\000\245\000\255\000\152\002\152\002\068\001\
448 \000\000\052\003\000\000\244\000\052\003\000\000\191\255\000\000\
449 \254\000\000\000\116\000\000\000\000\000\208\255\072\001\000\000\
450 \040\001\110\255\002\001\000\000\247\254\000\000\075\001\000\000\
451 \000\000\000\000\000\000\071\001\000\000\000\000\000\000\000\000\
452 \000\000\073\255\232\255\058\000\000\000\102\255\102\255\126\000\
453 \126\000\126\000\126\000\126\000\126\000\000\000\000\000\000\000\
454 \000\000\219\002\000\000\000\000\052\003\000\000\132\008\148\000\
455 \000\000\000\000\000\000\000\000\007\001\109\003\000\000\052\003\
456 \000\000\132\008\076\001\211\000\009\002\000\000\153\255\000\000\
457 \037\001\029\001\000\000\000\000\091\001\000\000\111\004\202\004\
458 \000\000\000\000\099\001\000\000\000\000\000\000\002\000\052\003\
459 \052\003\020\001\000\000\000\000\052\003\039\001\191\255\000\000\
460 \000\000\042\010\000\000\000\000\000\000\027\255\103\001\000\000\
461 \078\010\000\000\046\001\000\000\025\001\175\255\128\007\052\003\
462 \000\000\000\000\035\001\187\255\052\003\093\001\166\007\052\003\
463 \100\001\114\001\000\000\000\000\000\000\000\000\052\003\092\001\
464 \000\000\128\000\000\000\000\000\102\001\000\000\223\255\050\001\
465 \000\000\000\000\094\001\000\000\000\000\052\003\000\000\214\007\
466 \000\000\000\000\000\000\052\255\159\000\029\001\077\001\152\002\
467 \099\001\000\000\043\001\000\000\000\000\228\255\000\000\000\000\
468 \000\000\043\001\067\001\052\003\000\000\000\000\017\000\069\001\
469 \152\002\116\001\079\001\000\000\252\007\094\001\000\000\000\000\
470 \026\255\000\000\099\001\000\000\000\000\000\000\028\000\078\001\
471 \000\000\054\001\000\000\077\000\054\001\000\000\074\001\139\001\
472 \171\001\118\000\104\001\106\001\094\001\037\001\000\000\133\000\
473 \099\001\000\000\000\000\052\003\000\000\000\000\000\000\152\002\
474 \152\002\000\000\152\002\000\000\000\000\030\000\092\000\000\000\
475 \209\000\000\000\000\000\034\255\151\000\000\000\000\000\000\000\
476 \034\000\175\000\052\001\000\000\152\002\030\010\137\001\152\002\
477 \030\010\159\000\159\000\000\000\000\000\000\000\115\001\171\001\
478 \119\001\094\001\000\000\052\001\069\000\159\000\008\008\177\000\
479 \076\001\009\002\111\004\000\000\000\000\244\255\000\000\054\001\
480 \000\000\037\001\037\001\000\000\031\000\000\000\073\001\000\000\
481 \029\001\000\000\000\000\000\000\052\001\000\000\120\001\152\002\
482 \037\001\084\001\191\255\052\003\052\003\190\000\030\010\037\001\
483 \095\001\000\000\000\000\000\000\000\000\000\000\152\001\152\002\
484 \030\010\118\000\118\000\052\001\000\000\052\001\069\000\000\000\
485 \107\001\000\000\132\000\188\001\000\000\000\000\032\000\046\008\
486 \000\000\000\000\000\000\203\255\054\001\123\001\075\001\000\000\
487 \000\000\000\000\037\001\195\001\037\001\000\000\000\000\037\001\
488 \125\001\099\001\154\001\140\001\142\001\094\008\037\001\130\001\
489 \052\003\200\255\096\000\104\255\000\000\000\000\132\000\000\000\
490 \244\255\000\000\054\001\131\001\000\000\000\000\000\000\000\000\
491 \000\000\000\000\056\000\054\001\054\001\203\255\000\000\075\001\
492 \000\000\000\000\000\000\000\000\132\001\052\001\154\000\030\010\
493 \030\010\030\010\000\000\000\000\057\000\133\001\052\001\000\000\
494 \144\008\208\001\052\001\138\001\144\001\203\255\203\255\247\254\
495 \052\001\000\000\000\000\175\000\175\000\000\000\203\255\052\001\
496 \000\000\099\001\145\001\162\009\200\009\248\009\000\000\000\000\
497 \052\001\000\000\000\000\000\000\141\001\059\000\147\001\000\000\
498 \052\001\052\001\203\255\203\255\075\001\000\000\037\001\037\001\
499 \203\255\000\000\096\255\000\000\000\000\148\001\052\003\199\001\
500 \052\003\202\001\000\000\052\003\000\000\000\000\182\008\000\000\
501 \000\000\223\000\000\000\000\000\000\000\000\000\000\000\167\001\
502 \030\010\206\001\169\001\000\000\000\000\000\000\000\000\063\000\
503 \030\010\030\010\000\000\030\010\000\000\000\000\200\009\248\009\
504 \000\000\000\000"
505
506 let yyrindex = "\000\000\
507 \083\005\000\000\085\001\000\000\000\000\000\000\000\000\000\000\
508 \000\000\000\000\083\005\000\000\000\000\000\000\000\000\000\000\
509 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
510 \000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\
511 \000\000\032\002\000\000\000\000\000\000\000\000\008\007\000\000\
512 \145\006\126\005\000\000\000\000\090\004\185\002\000\000\096\002\
513 \000\000\000\000\000\000\000\000\017\255\000\000\042\000\000\000\
514 \000\000\000\000\007\002\219\255\163\255\000\000\000\000\000\000\
515 \000\000\000\000\000\000\000\000\065\255\000\000\000\000\161\001\
516 \000\000\000\000\160\001\000\000\000\000\000\000\000\000\083\005\
517 \000\000\000\000\000\000\000\000\236\255\000\000\000\000\000\000\
518 \159\001\000\000\024\001\000\000\000\000\000\000\000\000\000\000\
519 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
520 \000\000\000\000\000\000\000\000\000\000\000\000\168\001\000\000\
521 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
522 \000\000\127\255\000\000\150\010\000\000\000\000\000\000\000\000\
523 \000\000\000\000\000\000\121\002\000\000\000\000\000\000\000\000\
524 \000\000\000\000\144\255\000\000\000\000\130\003\000\000\000\000\
525 \047\255\000\000\065\000\000\000\174\001\000\000\000\000\000\000\
526 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
527 \000\000\000\000\198\005\164\006\000\000\018\003\107\003\109\004\
528 \181\004\200\004\016\005\035\005\107\005\000\000\000\000\000\000\
529 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
530 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
531 \000\000\000\000\218\001\173\006\173\255\000\000\163\255\000\000\
532 \163\255\000\000\000\000\000\000\000\000\000\000\212\001\000\000\
533 \000\000\000\000\000\000\000\000\000\000\000\000\183\255\000\000\
534 \000\000\250\000\000\000\000\000\000\000\087\255\000\000\000\000\
535 \000\000\000\000\000\000\000\000\000\000\075\011\000\000\000\000\
536 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
537 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
538 \216\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
539 \000\000\000\000\000\000\000\000\172\012\000\000\000\000\070\000\
540 \000\000\000\000\238\001\000\000\000\000\000\000\000\000\000\000\
541 \000\000\000\000\000\000\098\001\189\011\018\011\006\007\000\000\
542 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
543 \206\005\013\007\000\000\000\000\221\005\014\006\000\000\000\000\
544 \000\000\000\000\000\000\000\000\000\000\197\012\000\000\000\000\
545 \183\255\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
546 \000\000\000\000\000\000\066\000\000\000\000\000\000\000\000\000\
547 \240\001\189\011\000\000\000\000\127\012\075\011\000\000\000\000\
548 \000\000\000\000\000\000\000\000\000\000\039\006\056\006\000\000\
549 \242\001\000\000\000\000\000\000\000\000\000\000\056\013\000\000\
550 \038\255\000\000\000\000\075\000\106\000\000\000\000\000\000\000\
551 \008\002\166\255\132\011\000\000\081\001\218\003\072\255\181\005\
552 \146\006\102\012\102\012\000\000\000\000\000\000\000\000\240\001\
553 \000\000\127\012\000\000\132\011\242\012\189\011\000\000\000\000\
554 \218\001\173\255\212\001\000\000\000\000\056\013\000\000\000\000\
555 \000\000\103\255\075\255\000\000\000\000\000\000\090\000\000\000\
556 \215\001\000\000\000\000\000\000\193\001\000\000\000\000\240\008\
557 \163\255\000\000\000\000\000\000\000\000\027\007\102\009\163\255\
558 \000\000\000\000\000\000\000\000\000\000\000\000\204\255\224\010\
559 \048\013\246\011\047\012\132\011\000\000\132\011\242\012\000\000\
560 \011\013\000\000\056\013\000\000\000\000\000\000\000\000\000\000\
561 \000\000\000\000\000\000\147\255\000\000\095\000\000\000\000\000\
562 \000\000\000\000\024\001\000\000\024\001\000\000\000\000\163\255\
563 \000\000\000\000\000\000\000\000\000\000\000\000\163\255\000\000\
564 \000\000\114\000\000\000\000\000\000\000\000\000\056\013\000\000\
565 \056\013\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
566 \000\000\000\000\000\000\000\000\000\000\179\255\000\000\000\000\
567 \000\000\000\000\000\000\000\000\000\000\208\010\000\000\000\000\
568 \000\000\000\000\151\003\214\003\000\000\000\000\060\009\000\000\
569 \000\000\000\000\011\002\000\000\000\000\198\001\200\001\019\002\
570 \132\011\000\000\000\000\215\001\215\001\000\000\182\255\208\010\
571 \000\000\000\000\000\000\000\000\134\000\253\001\235\003\001\004\
572 \060\009\000\000\000\000\000\000\102\000\000\000\000\000\000\000\
573 \011\002\132\011\204\001\205\001\000\000\000\000\024\001\024\001\
574 \238\255\000\000\000\000\000\000\000\000\000\000\000\000\006\002\
575 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
576 \000\000\021\255\000\000\000\000\000\000\000\000\000\000\000\000\
577 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
578 \000\000\012\002\000\000\000\000\000\000\000\000\134\000\253\001\
579 \000\000\000\000"
580
581 let yygindex = "\000\000\
582 \000\000\000\000\000\000\000\000\008\000\001\000\005\000\255\255\
583 \008\001\015\000\053\255\029\003\030\003\034\003\036\003\000\000\
584 \000\000\000\000\000\000\031\255\176\001\000\000\243\255\177\254\
585 \168\254\198\255\000\000\002\255\000\000\000\000\108\001\232\001\
586 \190\001\145\000\000\000\000\000\000\000\000\000\071\000\141\255\
587 \162\001\165\255\174\255\130\255\209\254\224\254\008\255\150\001\
588 \101\001\109\001\226\255\120\255\131\254\000\000\000\000\000\000\
589 \109\255\000\000\211\001\000\000\002\002\000\000\000\000\000\000\
590 \048\002\000\000\214\001\199\254\221\001\112\255\073\000\000\000\
591 \000\000\000\000\000\000\080\254\001\001\000\000\150\255\223\001\
592 \000\000\152\255\000\000\006\001\210\001\201\001\176\255\233\002\
593 \001\003\083\003\084\002\166\001\045\000\000\000\248\002\223\002\
594 \000\000\000\000\132\002\183\002\000\000\000\000"
595
596 let yytablesize = 3702
597 let yytable = "\034\000\
598 \061\000\032\000\140\000\228\000\021\001\033\000\203\000\190\000\
599 \031\000\141\001\191\000\052\000\218\000\137\001\164\000\001\000\
600 \213\000\058\000\113\001\207\000\208\000\059\001\200\000\064\000\
601 \065\000\085\000\069\000\069\000\075\000\081\000\213\000\120\000\
602 \152\000\114\001\131\001\030\001\070\000\129\000\076\000\008\000\
603 \001\000\004\001\129\000\039\001\152\001\243\000\029\001\152\001\
604 \189\001\113\000\066\000\080\000\243\000\087\001\109\000\224\001\
605 \005\002\006\002\050\000\213\000\116\000\069\000\243\000\243\000\
606 \039\001\120\000\227\000\125\000\055\001\078\000\079\000\117\000\
607 \067\000\230\000\047\001\253\000\117\001\056\001\113\000\067\000\
608 \137\000\005\001\047\001\213\000\057\001\248\001\034\001\213\000\
609 \128\001\213\000\086\000\131\000\150\000\199\001\113\000\045\002\
610 \087\000\086\001\131\000\201\000\118\001\231\000\047\001\199\001\
611 \129\000\199\000\088\000\020\001\132\001\224\000\129\000\202\000\
612 \184\000\029\001\113\001\113\001\196\000\179\000\017\001\029\001\
613 \008\000\167\001\195\000\067\000\184\000\184\000\063\000\181\001\
614 \058\002\114\001\114\001\039\001\121\000\039\001\069\000\039\001\
615 \063\002\069\000\039\001\064\002\251\000\047\001\252\000\129\000\
616 \210\000\067\000\149\000\047\001\129\000\174\000\175\000\129\000\
617 \023\001\034\001\128\000\063\000\129\000\120\000\132\000\034\001\
618 \184\001\067\001\046\002\023\002\024\002\193\000\082\000\087\000\
619 \021\002\047\001\047\001\175\001\129\000\082\000\026\001\047\001\
620 \225\000\243\001\150\000\105\000\106\000\151\000\109\000\144\000\
621 \063\000\235\000\033\001\069\000\184\000\203\000\081\001\053\000\
622 \243\000\063\000\203\000\184\000\195\000\238\000\069\000\063\000\
623 \063\000\129\000\030\002\030\002\030\002\184\000\184\000\027\000\
624 \244\000\002\001\129\000\069\000\145\001\149\000\144\000\145\001\
625 \129\000\129\000\218\000\149\000\012\001\013\001\047\001\021\001\
626 \250\000\015\001\021\001\074\001\219\001\122\001\018\001\220\001\
627 \123\001\243\000\243\000\080\000\047\001\152\000\096\000\082\000\
628 \080\000\027\001\094\000\080\000\031\001\150\000\067\001\067\001\
629 \151\000\035\001\237\001\150\000\040\001\034\001\151\000\192\001\
630 \030\002\003\001\067\001\043\001\221\001\030\002\030\002\008\000\
631 \080\000\241\001\140\000\050\000\135\000\060\000\095\000\192\001\
632 \078\001\004\001\052\001\050\000\057\001\069\000\184\000\072\001\
633 \036\000\203\000\036\000\090\001\036\000\124\001\186\001\215\001\
634 \221\000\048\001\021\001\225\001\021\001\080\000\075\001\184\000\
635 \077\001\211\000\195\001\036\000\093\001\080\000\080\000\098\001\
636 \152\000\089\001\036\000\130\000\080\000\080\000\152\000\250\001\
637 \007\002\005\001\037\002\036\000\080\000\080\000\061\002\063\000\
638 \027\001\036\000\117\000\036\000\006\001\139\000\036\000\120\001\
639 \185\001\111\001\046\000\138\001\255\001\036\000\184\000\184\000\
640 \121\001\184\000\139\001\079\001\211\000\254\001\193\001\127\001\
641 \244\001\048\000\094\001\095\001\083\000\200\001\091\001\124\000\
642 \125\001\187\001\216\001\184\000\150\001\078\000\184\000\150\001\
643 \094\000\080\000\084\000\117\000\211\000\169\001\080\000\008\000\
644 \211\000\080\000\117\000\003\000\170\001\004\000\005\000\006\000\
645 \184\000\184\000\251\001\008\002\057\001\038\002\180\001\096\001\
646 \226\001\062\002\228\001\027\001\233\000\229\001\080\000\009\000\
647 \139\000\086\000\254\001\254\001\238\001\046\000\184\000\087\000\
648 \254\001\010\000\061\001\107\000\126\001\150\001\196\000\008\000\
649 \196\001\197\001\014\000\196\000\048\000\203\001\184\000\150\001\
650 \016\000\092\000\124\000\080\000\057\001\140\000\202\000\087\000\
651 \078\000\111\001\111\001\080\000\080\000\062\001\153\001\018\000\
652 \242\001\153\001\080\000\080\000\057\000\215\000\023\000\113\000\
653 \024\000\023\001\168\001\061\001\209\001\114\000\025\000\026\000\
654 \231\001\045\001\023\001\014\000\216\000\217\000\119\001\087\000\
655 \053\002\097\000\098\000\056\002\087\000\240\001\252\001\253\001\
656 \003\000\246\001\004\000\005\000\006\000\239\000\062\001\019\002\
657 \020\002\007\000\050\000\087\000\043\002\044\002\250\000\153\001\
658 \025\002\087\000\002\002\008\000\009\000\240\000\150\001\150\001\
659 \150\001\153\001\205\001\112\000\206\001\115\000\010\000\011\000\
660 \215\000\012\000\176\001\013\000\014\000\013\002\250\000\118\000\
661 \087\000\132\000\162\001\163\001\015\000\016\000\132\000\198\001\
662 \027\002\132\000\150\001\150\001\150\001\087\000\166\000\167\000\
663 \119\000\126\000\017\000\127\000\018\000\130\000\019\000\020\000\
664 \021\000\022\000\215\000\023\000\247\000\024\000\132\000\047\001\
665 \087\000\134\000\087\000\025\000\026\000\133\000\136\000\047\001\
666 \138\000\216\000\217\000\048\002\240\000\051\002\149\000\151\000\
667 \013\002\120\000\177\000\013\002\001\002\178\000\192\000\150\001\
668 \153\001\153\001\153\001\132\000\047\001\010\002\198\000\150\001\
669 \150\001\016\002\150\001\202\000\132\000\150\001\150\001\022\002\
670 \205\000\206\000\132\000\132\000\209\000\211\000\026\002\214\000\
671 \222\000\223\000\226\000\085\000\153\001\153\001\153\001\035\002\
672 \241\000\047\001\161\000\229\000\023\001\023\001\161\000\040\002\
673 \041\002\023\001\047\001\023\001\023\001\245\000\215\000\254\000\
674 \047\001\047\001\115\000\003\000\014\001\023\001\023\001\022\001\
675 \016\001\024\001\025\001\161\000\032\001\036\001\161\000\115\000\
676 \115\000\023\001\200\000\044\001\041\001\004\001\023\001\161\000\
677 \161\000\153\001\049\001\094\000\073\001\050\001\076\001\023\001\
678 \080\001\153\001\153\001\023\001\153\001\161\000\161\000\153\001\
679 \153\001\082\001\083\001\115\000\100\001\158\001\023\001\092\001\
680 \023\001\188\001\115\000\099\001\115\000\194\001\023\001\023\001\
681 \202\001\023\001\208\001\023\001\023\001\023\001\023\001\023\001\
682 \023\001\023\001\023\001\023\001\023\001\023\001\023\001\023\001\
683 \023\001\023\001\023\001\023\001\023\001\025\001\025\001\201\001\
684 \101\001\115\001\025\001\116\001\025\001\025\001\168\000\169\000\
685 \170\000\171\000\172\000\173\000\164\001\214\001\025\001\025\001\
686 \166\001\191\001\250\000\131\001\232\001\102\001\230\001\233\001\
687 \103\001\234\001\025\001\239\001\249\001\000\002\009\002\025\001\
688 \015\002\104\001\105\001\017\002\039\002\036\002\082\000\049\002\
689 \025\001\018\002\028\002\082\000\025\001\047\002\082\000\106\001\
690 \107\001\052\002\057\002\059\002\060\002\017\001\039\001\025\001\
691 \012\000\025\001\226\000\220\000\042\001\205\000\099\000\025\001\
692 \025\001\060\000\025\001\082\000\025\001\025\001\025\001\025\001\
693 \025\001\025\001\025\001\025\001\025\001\025\001\025\001\025\001\
694 \025\001\025\001\025\001\025\001\025\001\025\001\005\001\206\000\
695 \121\000\003\000\063\000\005\001\065\000\005\001\005\001\093\000\
696 \082\000\095\000\180\000\080\000\218\000\094\000\096\000\005\001\
697 \005\001\082\000\248\000\198\000\042\002\035\000\036\000\082\000\
698 \082\000\199\000\037\000\005\001\038\000\172\001\005\001\227\001\
699 \005\001\112\001\012\000\130\001\181\000\165\001\190\001\097\000\
700 \098\000\005\001\088\001\245\001\046\001\005\001\099\000\100\000\
701 \101\000\102\000\103\000\104\000\207\001\247\001\161\001\065\002\
702 \005\001\177\001\005\001\182\000\160\001\066\002\163\000\019\000\
703 \020\000\005\001\183\000\005\001\179\001\005\001\005\001\005\001\
704 \005\001\005\001\005\001\005\001\005\001\005\001\005\001\005\001\
705 \178\001\005\001\005\001\005\001\005\001\005\001\005\001\250\000\
706 \165\000\062\000\176\000\212\000\250\000\019\001\250\000\250\000\
707 \234\000\005\001\005\001\005\001\005\001\005\001\005\001\005\001\
708 \250\000\250\000\005\001\005\001\005\001\005\001\005\001\005\001\
709 \000\000\000\000\000\000\000\000\250\000\000\000\000\000\010\001\
710 \000\000\250\000\000\000\000\000\000\000\000\000\000\000\000\000\
711 \000\000\000\000\250\000\000\000\000\000\000\000\250\000\000\000\
712 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
713 \003\000\250\000\000\000\250\000\000\000\000\000\000\000\000\000\
714 \000\000\180\000\250\000\000\000\250\000\000\000\250\000\010\001\
715 \250\000\250\000\250\000\250\000\250\000\250\000\250\000\000\000\
716 \250\000\000\000\250\000\250\000\250\000\250\000\250\000\250\000\
717 \244\000\012\000\000\000\181\000\000\000\244\000\000\000\244\000\
718 \244\000\000\000\010\001\010\001\010\001\010\001\010\001\010\001\
719 \010\001\244\000\244\000\010\001\010\001\010\001\010\001\010\001\
720 \010\001\000\000\182\000\000\000\000\000\244\000\019\000\020\000\
721 \000\000\183\000\244\000\003\000\000\000\004\000\005\000\006\000\
722 \000\000\000\000\000\000\244\000\000\000\000\000\000\000\244\000\
723 \003\000\000\000\004\000\005\000\006\000\000\000\000\000\009\000\
724 \000\000\000\000\244\000\000\000\244\000\000\000\000\000\000\000\
725 \000\000\010\000\000\000\244\000\009\000\244\000\056\000\244\000\
726 \000\000\244\000\244\000\244\000\244\000\244\000\010\000\015\000\
727 \016\000\244\000\000\000\244\000\244\000\244\000\244\000\244\000\
728 \244\000\245\000\000\000\000\000\000\000\016\000\245\000\018\000\
729 \245\000\245\000\000\000\000\000\057\000\000\000\023\000\000\000\
730 \024\000\000\000\245\000\245\000\018\000\108\000\025\000\026\000\
731 \000\000\057\000\000\000\023\000\000\000\024\000\245\000\000\000\
732 \000\000\000\000\000\000\245\000\003\000\000\000\004\000\005\000\
733 \006\000\000\000\000\000\000\000\245\000\000\000\000\000\000\000\
734 \245\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
735 \009\000\000\000\000\000\245\000\000\000\245\000\000\000\000\000\
736 \000\000\000\000\010\000\000\000\245\000\000\000\245\000\056\000\
737 \245\000\000\000\245\000\245\000\245\000\245\000\245\000\000\000\
738 \015\000\016\000\245\000\000\000\245\000\245\000\245\000\245\000\
739 \245\000\245\000\246\000\000\000\000\000\003\000\000\000\246\000\
740 \018\000\246\000\246\000\000\000\000\000\057\000\180\000\023\000\
741 \000\000\024\000\000\000\246\000\246\000\000\000\000\000\025\000\
742 \026\000\023\001\000\000\242\000\000\000\000\000\000\000\246\000\
743 \023\001\000\000\000\000\000\000\246\000\000\000\012\000\000\000\
744 \181\000\000\000\000\000\000\000\000\000\246\000\000\000\000\000\
745 \000\000\246\000\000\000\173\000\000\000\009\001\173\000\000\000\
746 \000\000\000\000\000\000\023\001\246\000\000\000\246\000\182\000\
747 \000\000\000\000\000\000\019\000\020\000\246\000\183\000\246\000\
748 \023\001\246\000\000\000\246\000\246\000\246\000\246\000\246\000\
749 \000\000\000\000\000\000\246\000\000\000\246\000\246\000\246\000\
750 \246\000\246\000\246\000\023\001\023\001\009\001\000\000\000\000\
751 \000\000\023\001\023\001\000\000\023\001\023\001\023\001\023\001\
752 \023\001\023\001\000\000\000\000\023\001\023\001\023\001\023\001\
753 \023\001\023\001\170\000\155\000\006\001\170\000\000\000\155\000\
754 \173\000\009\001\009\001\009\001\009\001\009\001\009\001\009\001\
755 \000\000\009\001\009\001\009\001\009\001\009\001\009\001\172\000\
756 \000\000\008\001\172\000\000\000\155\000\000\000\000\000\155\000\
757 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
758 \155\000\155\000\000\000\000\000\006\001\171\000\000\000\007\001\
759 \171\000\000\000\000\000\000\000\000\000\000\000\155\000\155\000\
760 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
761 \000\000\008\001\000\000\000\000\000\000\000\000\000\000\170\000\
762 \006\001\006\001\006\001\006\001\006\001\006\001\006\001\000\000\
763 \006\001\006\001\006\001\006\001\006\001\006\001\000\000\007\001\
764 \000\000\000\000\000\000\000\000\172\000\008\001\008\001\008\001\
765 \008\001\008\001\008\001\008\001\000\000\008\001\008\001\008\001\
766 \008\001\008\001\008\001\000\000\000\000\000\000\000\000\000\000\
767 \000\000\000\000\171\000\007\001\007\001\007\001\007\001\007\001\
768 \007\001\007\001\000\000\007\001\007\001\007\001\007\001\007\001\
769 \007\001\237\000\000\000\000\000\000\000\000\000\237\000\000\000\
770 \237\000\237\000\000\000\000\000\000\000\000\000\000\000\000\000\
771 \000\000\000\000\237\000\237\000\238\000\000\000\000\000\003\000\
772 \000\000\238\000\000\000\238\000\238\000\000\000\237\000\000\000\
773 \180\000\000\000\000\000\237\000\000\000\238\000\238\000\000\000\
774 \000\000\255\000\000\000\000\000\237\000\000\000\000\000\000\000\
775 \237\000\238\000\000\000\000\000\000\000\000\000\238\000\000\000\
776 \012\000\000\000\181\000\237\000\000\000\237\000\000\000\238\000\
777 \000\000\000\000\000\000\238\000\237\000\000\000\237\000\000\000\
778 \237\000\000\000\237\000\237\000\237\000\000\000\238\000\000\000\
779 \238\000\182\000\237\000\000\000\000\000\019\000\020\000\238\000\
780 \183\000\238\000\000\000\238\000\239\000\238\000\238\000\238\000\
781 \000\000\239\000\000\000\239\000\239\000\238\000\000\000\000\000\
782 \000\000\000\000\000\000\000\000\000\000\239\000\239\000\240\000\
783 \000\000\000\000\003\000\000\000\240\000\000\000\240\000\240\000\
784 \000\000\239\000\000\000\180\000\000\000\000\000\239\000\000\000\
785 \240\000\240\000\000\000\000\000\000\000\000\000\000\000\239\000\
786 \000\000\000\000\001\001\239\000\240\000\000\000\000\000\000\000\
787 \000\000\240\000\000\000\012\000\000\000\181\000\239\000\000\000\
788 \239\000\000\000\240\000\000\000\000\000\000\000\240\000\239\000\
789 \000\000\239\000\000\000\239\000\000\000\239\000\239\000\239\000\
790 \000\000\240\000\000\000\240\000\182\000\239\000\000\000\000\000\
791 \019\000\020\000\240\000\183\000\240\000\000\000\240\000\241\000\
792 \240\000\240\000\240\000\000\000\241\000\000\000\241\000\241\000\
793 \240\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
794 \241\000\241\000\242\000\000\000\000\000\000\000\000\000\242\000\
795 \000\000\242\000\242\000\000\000\241\000\000\000\000\000\000\000\
796 \000\000\241\000\000\000\242\000\242\000\000\000\000\000\000\000\
797 \000\000\000\000\241\000\000\000\000\000\000\000\241\000\242\000\
798 \000\000\000\000\000\000\000\000\242\000\000\000\000\000\000\000\
799 \000\000\241\000\000\000\241\000\000\000\242\000\000\000\000\000\
800 \000\000\242\000\241\000\000\000\241\000\000\000\241\000\000\000\
801 \241\000\241\000\241\000\036\000\242\000\036\000\242\000\036\000\
802 \241\000\000\000\000\000\000\000\000\000\242\000\000\000\242\000\
803 \000\000\242\000\243\000\242\000\242\000\242\000\036\000\243\000\
804 \000\000\243\000\243\000\242\000\000\000\036\000\000\000\000\000\
805 \000\000\000\000\000\000\243\000\243\000\231\000\036\000\000\000\
806 \000\000\000\000\231\000\000\000\036\000\231\000\036\000\243\000\
807 \000\000\036\000\000\000\000\000\243\000\000\000\231\000\231\000\
808 \036\000\000\000\000\000\000\000\000\000\243\000\000\000\000\000\
809 \000\000\243\000\231\000\000\000\000\000\000\000\000\000\231\000\
810 \000\000\000\000\000\000\000\000\243\000\000\000\243\000\000\000\
811 \231\000\000\000\000\000\000\000\231\000\243\000\000\000\243\000\
812 \000\000\243\000\000\000\243\000\243\000\243\000\159\000\231\000\
813 \000\000\231\000\159\000\243\000\000\000\000\000\000\000\000\000\
814 \231\000\000\000\231\000\000\000\231\000\232\000\231\000\231\000\
815 \231\000\000\000\232\000\000\000\000\000\232\000\231\000\159\000\
816 \000\000\000\000\159\000\000\000\011\001\000\000\232\000\232\000\
817 \000\000\000\000\000\000\159\000\159\000\000\000\011\001\011\001\
818 \000\000\000\000\232\000\009\001\000\000\000\000\000\000\232\000\
819 \000\000\159\000\159\000\000\000\000\000\009\001\009\001\000\000\
820 \232\000\000\000\000\000\000\000\232\000\000\000\000\000\000\000\
821 \000\000\000\000\000\000\000\000\011\001\000\000\000\000\232\000\
822 \000\000\232\000\000\000\000\000\000\000\000\000\000\000\000\000\
823 \232\000\000\000\232\000\009\001\232\000\000\000\232\000\232\000\
824 \232\000\000\000\000\000\000\000\006\001\000\000\232\000\187\000\
825 \011\001\011\001\011\001\011\001\011\001\011\001\006\001\006\001\
826 \011\001\011\001\011\001\011\001\011\001\011\001\178\000\009\001\
827 \009\001\009\001\009\001\009\001\009\001\008\001\000\000\009\001\
828 \009\001\009\001\009\001\009\001\009\001\000\000\000\000\008\001\
829 \008\001\000\000\000\000\000\000\006\001\000\000\007\001\000\000\
830 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
831 \007\001\007\001\000\000\000\000\000\000\000\000\000\000\000\000\
832 \000\000\000\000\000\000\000\000\000\000\008\001\000\000\175\000\
833 \006\001\006\001\006\001\006\001\006\001\006\001\000\000\000\000\
834 \006\001\006\001\006\001\006\001\006\001\006\001\007\001\000\000\
835 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
836 \177\000\008\001\008\001\008\001\008\001\008\001\008\001\000\000\
837 \000\000\008\001\008\001\008\001\008\001\008\001\008\001\000\000\
838 \000\000\176\000\007\001\007\001\007\001\007\001\007\001\007\001\
839 \000\000\000\000\007\001\007\001\007\001\007\001\007\001\007\001\
840 \228\000\000\000\000\000\153\000\000\000\228\000\000\000\153\000\
841 \228\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
842 \000\000\228\000\228\000\229\000\000\000\000\000\000\000\000\000\
843 \229\000\000\000\000\000\229\000\153\000\228\000\000\000\153\000\
844 \000\000\000\000\228\000\005\001\229\000\229\000\000\000\000\000\
845 \153\000\153\000\000\000\228\000\000\000\005\001\005\001\000\000\
846 \229\000\000\000\000\000\000\000\000\000\229\000\153\000\153\000\
847 \000\000\000\000\228\000\000\000\228\000\000\000\229\000\000\000\
848 \000\000\000\000\000\000\228\000\000\000\228\000\000\000\228\000\
849 \000\000\228\000\228\000\005\001\000\000\229\000\000\000\229\000\
850 \000\000\228\000\000\000\153\000\000\000\154\000\229\000\155\000\
851 \229\000\000\000\229\000\000\000\229\000\229\000\000\000\000\000\
852 \000\000\000\000\000\000\000\000\229\000\000\000\156\000\005\001\
853 \005\001\005\001\005\001\005\001\005\001\157\000\000\000\005\001\
854 \005\001\005\001\005\001\005\001\005\001\230\000\158\000\000\000\
855 \000\000\000\000\230\000\000\000\159\000\230\000\000\000\000\000\
856 \038\000\160\000\038\000\010\001\038\000\000\000\230\000\230\000\
857 \161\000\000\000\000\000\000\000\000\000\010\001\010\001\000\000\
858 \000\000\005\001\230\000\038\000\000\000\000\000\000\000\230\000\
859 \000\000\000\000\038\000\000\000\000\000\000\000\000\000\000\000\
860 \230\000\000\000\000\000\038\000\000\000\000\000\000\000\000\000\
861 \000\000\038\000\000\000\010\001\000\000\000\000\038\000\230\000\
862 \000\000\230\000\000\000\000\000\000\000\038\000\000\000\000\000\
863 \230\000\005\001\230\000\000\000\230\000\000\000\230\000\230\000\
864 \000\000\000\000\000\000\000\000\000\000\000\000\230\000\010\001\
865 \010\001\010\001\010\001\010\001\010\001\000\000\000\000\010\001\
866 \010\001\010\001\010\001\010\001\010\001\005\001\005\001\005\001\
867 \005\001\005\001\005\001\005\001\000\000\005\001\005\001\005\001\
868 \005\001\005\001\005\001\141\000\142\000\000\000\004\000\005\000\
869 \006\000\000\000\000\000\000\000\000\000\000\000\000\000\028\001\
870 \142\000\000\000\004\000\005\000\006\000\000\000\000\000\000\000\
871 \009\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
872 \000\000\000\000\010\000\000\000\009\000\000\000\143\000\056\000\
873 \000\000\000\000\000\000\000\000\000\000\000\000\010\000\000\000\
874 \015\000\016\000\143\000\056\000\000\000\037\001\142\000\000\000\
875 \004\000\005\000\006\000\000\000\015\000\016\000\000\000\000\000\
876 \018\000\000\000\000\000\000\000\000\000\057\000\144\000\023\000\
877 \000\000\024\000\009\000\000\000\018\000\000\000\000\000\025\000\
878 \026\000\057\000\029\001\023\000\010\000\024\000\000\000\000\000\
879 \143\000\056\000\000\000\025\000\026\000\000\000\000\000\000\000\
880 \000\000\000\000\015\000\016\000\000\000\053\001\142\000\000\000\
881 \004\000\005\000\006\000\000\000\000\000\000\000\000\000\000\000\
882 \000\000\000\000\018\000\000\000\000\000\000\000\000\000\057\000\
883 \038\001\023\000\009\000\024\000\000\000\000\000\000\000\000\000\
884 \000\000\025\000\026\000\000\000\010\000\000\000\000\000\000\000\
885 \143\000\056\000\000\000\084\001\142\000\000\000\004\000\005\000\
886 \006\000\000\000\015\000\016\000\000\000\000\000\000\000\173\001\
887 \142\000\000\000\004\000\005\000\006\000\000\000\000\000\000\000\
888 \009\000\000\000\018\000\000\000\000\000\000\000\000\000\057\000\
889 \054\001\023\000\010\000\024\000\009\000\000\000\143\000\056\000\
890 \000\000\025\000\026\000\000\000\000\000\000\000\010\000\000\000\
891 \015\000\016\000\143\000\056\000\000\000\217\001\142\000\000\000\
892 \004\000\005\000\006\000\000\000\015\000\016\000\000\000\000\000\
893 \018\000\000\000\000\000\000\000\000\000\057\000\085\001\023\000\
894 \000\000\024\000\009\000\000\000\018\000\000\000\000\000\025\000\
895 \026\000\057\000\174\001\023\000\010\000\024\000\000\000\000\000\
896 \143\000\056\000\000\000\025\000\026\000\000\000\000\000\000\000\
897 \000\000\000\000\015\000\016\000\000\000\235\001\142\000\000\000\
898 \004\000\005\000\006\000\000\000\000\000\000\000\000\000\000\000\
899 \000\000\000\000\018\000\000\000\000\000\000\000\000\000\057\000\
900 \218\001\023\000\009\000\024\000\000\000\000\000\000\000\000\000\
901 \000\000\025\000\026\000\000\000\010\000\000\000\000\000\000\000\
902 \143\000\056\000\000\000\236\000\003\000\000\000\004\000\005\000\
903 \006\000\000\000\015\000\016\000\000\000\000\000\000\000\011\002\
904 \003\000\000\000\004\000\005\000\006\000\000\000\000\000\000\000\
905 \009\000\000\000\018\000\000\000\000\000\000\000\000\000\057\000\
906 \236\001\023\000\010\000\024\000\009\000\000\000\000\000\056\000\
907 \000\000\025\000\026\000\000\000\000\000\000\000\010\000\000\000\
908 \015\000\016\000\000\000\056\000\000\000\054\002\003\000\000\000\
909 \004\000\005\000\006\000\000\000\015\000\016\000\000\000\000\000\
910 \018\000\000\000\000\000\000\000\000\000\057\000\237\000\023\000\
911 \000\000\024\000\009\000\000\000\018\000\000\000\000\000\025\000\
912 \026\000\057\000\012\002\023\000\010\000\024\000\000\000\000\000\
913 \000\000\056\000\000\000\025\000\026\000\000\000\000\000\000\000\
914 \000\000\000\000\015\000\016\000\000\000\071\000\003\000\000\000\
915 \004\000\005\000\006\000\000\000\000\000\000\000\000\000\000\000\
916 \000\000\162\000\018\000\000\000\000\000\162\000\000\000\057\000\
917 \055\002\023\000\009\000\024\000\000\000\000\000\000\000\000\000\
918 \000\000\025\000\026\000\000\000\010\000\000\000\000\000\000\000\
919 \000\000\056\000\162\000\074\000\003\000\162\000\004\000\005\000\
920 \006\000\000\000\015\000\016\000\000\000\000\000\162\000\162\000\
921 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
922 \009\000\000\000\018\000\000\000\162\000\162\000\000\000\057\000\
923 \000\000\023\000\010\000\024\000\000\000\000\000\000\000\056\000\
924 \000\000\025\000\026\000\000\000\000\000\000\000\000\000\000\000\
925 \015\000\016\000\000\000\000\000\065\000\065\000\065\000\065\000\
926 \065\000\065\000\000\000\000\000\000\000\000\000\000\000\065\000\
927 \018\000\000\000\000\000\000\000\000\000\057\000\000\000\023\000\
928 \065\000\024\000\000\000\000\000\000\000\000\000\065\000\025\000\
929 \026\000\065\000\065\000\000\000\000\000\065\000\000\000\065\000\
930 \000\000\000\000\065\000\065\000\000\000\000\000\000\000\156\000\
931 \065\000\065\000\000\000\156\000\000\000\000\000\000\000\000\000\
932 \065\000\065\000\003\000\000\000\004\000\005\000\006\000\000\000\
933 \065\000\000\000\065\000\180\000\000\000\065\000\000\000\065\000\
934 \156\000\065\000\000\000\156\000\000\000\000\000\009\000\065\000\
935 \065\000\000\000\000\000\000\000\156\000\156\000\000\000\000\000\
936 \010\000\000\000\000\000\012\000\000\000\013\000\000\000\000\000\
937 \000\000\000\000\156\000\156\000\000\000\000\000\015\000\016\000\
938 \000\000\000\000\003\000\000\000\004\000\005\000\006\000\000\000\
939 \000\000\000\000\000\000\000\000\182\000\146\001\018\000\000\000\
940 \019\000\020\000\000\000\194\000\000\000\023\000\009\000\024\000\
941 \029\002\000\000\000\000\000\000\000\000\025\000\026\000\000\000\
942 \010\000\000\000\000\000\147\001\000\000\148\001\000\000\000\000\
943 \003\000\000\000\004\000\005\000\006\000\000\000\015\000\016\000\
944 \000\000\000\000\000\000\146\001\000\000\000\000\000\000\000\000\
945 \000\000\031\002\000\000\000\000\009\000\000\000\018\000\000\000\
946 \149\001\000\000\000\000\057\000\000\000\023\000\010\000\024\000\
947 \000\000\147\001\000\000\148\001\000\000\025\000\026\000\000\000\
948 \000\000\000\000\000\000\000\000\015\000\016\000\000\000\000\000\
949 \003\000\000\000\004\000\005\000\006\000\000\000\000\000\000\000\
950 \000\000\000\000\000\000\146\001\018\000\000\000\149\001\000\000\
951 \000\000\057\000\033\002\023\000\009\000\024\000\000\000\000\000\
952 \000\000\000\000\000\000\025\000\026\000\000\000\010\000\000\000\
953 \000\000\147\001\000\000\148\001\000\000\000\000\003\000\000\000\
954 \004\000\005\000\006\000\000\000\015\000\016\000\000\000\000\000\
955 \000\000\146\001\142\000\000\000\004\000\005\000\006\000\000\000\
956 \000\000\000\000\009\000\000\000\018\000\000\000\149\001\000\000\
957 \000\000\057\000\000\000\023\000\010\000\024\000\009\000\147\001\
958 \000\000\148\001\000\000\025\000\026\000\000\000\000\000\000\000\
959 \010\000\000\000\015\000\016\000\143\000\056\000\003\000\000\000\
960 \004\000\005\000\006\000\000\000\000\000\000\000\015\000\016\000\
961 \000\000\000\000\018\000\000\000\149\001\000\000\000\000\057\000\
962 \000\000\023\000\009\000\024\000\000\000\000\000\018\000\000\000\
963 \000\000\025\000\026\000\057\000\010\000\023\000\000\000\024\000\
964 \000\000\000\000\000\000\000\000\000\000\025\000\026\000\000\000\
965 \000\000\000\000\015\000\016\000\000\000\000\000\000\000\000\000\
966 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
967 \000\000\000\000\018\000\000\000\000\000\000\000\000\000\057\000\
968 \000\000\023\000\000\000\024\000\000\000\048\001\048\001\048\001\
969 \000\000\025\000\026\000\048\001\000\000\048\001\048\001\000\000\
970 \048\001\000\000\048\001\048\001\048\001\000\000\000\000\000\000\
971 \000\000\048\001\000\000\000\000\000\000\000\000\000\000\000\000\
972 \048\001\048\001\048\001\048\001\000\000\048\001\048\001\000\000\
973 \048\001\000\000\048\001\000\000\048\001\048\001\048\001\048\001\
974 \000\000\048\001\000\000\000\000\000\000\048\001\048\001\048\001\
975 \048\001\048\001\048\001\048\001\048\001\048\001\048\001\048\001\
976 \065\000\065\000\000\000\048\001\000\000\065\000\000\000\000\000\
977 \048\001\065\000\000\000\000\000\000\000\000\000\048\001\048\001\
978 \000\000\160\000\000\000\000\000\000\000\160\000\000\000\000\000\
979 \000\000\000\000\065\000\000\000\000\000\065\000\000\000\000\000\
980 \000\000\065\000\000\000\065\000\000\000\000\000\065\000\065\000\
981 \000\000\000\000\160\000\000\000\000\000\160\000\000\000\000\000\
982 \000\000\000\000\000\000\000\000\065\000\065\000\160\000\160\000\
983 \000\000\000\000\065\000\000\000\000\000\000\000\065\000\065\000\
984 \000\000\065\000\082\000\082\000\160\000\160\000\082\000\082\000\
985 \000\000\082\000\082\000\000\000\082\000\000\000\082\000\082\000\
986 \082\000\000\000\000\000\000\000\000\000\082\000\000\000\000\000\
987 \000\000\000\000\000\000\000\000\082\000\082\000\082\000\082\000\
988 \000\000\082\000\082\000\000\000\082\000\000\000\082\000\000\000\
989 \082\000\082\000\082\000\082\000\000\000\082\000\000\000\000\000\
990 \000\000\082\000\082\000\082\000\082\000\082\000\082\000\082\000\
991 \082\000\082\000\082\000\047\001\047\001\000\000\000\000\082\000\
992 \047\001\000\000\047\001\047\001\000\000\047\001\000\000\047\001\
993 \047\001\047\001\000\000\000\000\000\000\000\000\047\001\000\000\
994 \000\000\000\000\000\000\000\000\000\000\047\001\047\001\047\001\
995 \047\001\000\000\047\001\047\001\000\000\047\001\000\000\047\001\
996 \000\000\047\001\047\001\047\001\047\001\000\000\047\001\000\000\
997 \000\000\000\000\047\001\047\001\047\001\047\001\047\001\047\001\
998 \047\001\047\001\047\001\047\001\065\000\065\000\000\000\000\000\
999 \047\001\065\000\000\000\000\000\065\000\000\000\065\000\000\000\
1000 \065\000\065\000\065\000\000\000\000\000\000\000\000\000\065\000\
1001 \000\000\000\000\000\000\000\000\000\000\000\000\065\000\065\000\
1002 \065\000\065\000\000\000\065\000\065\000\000\000\065\000\000\000\
1003 \065\000\000\000\065\000\065\000\065\000\065\000\000\000\065\000\
1004 \000\000\000\000\000\000\065\000\065\000\065\000\065\000\065\000\
1005 \065\000\065\000\065\000\065\000\065\000\097\000\055\000\000\000\
1006 \000\000\065\000\055\000\000\000\000\000\097\000\000\000\097\000\
1007 \000\000\097\000\097\000\097\000\000\000\000\000\000\000\000\000\
1008 \097\000\000\000\000\000\000\000\000\000\000\000\000\000\055\000\
1009 \097\000\000\000\055\000\000\000\097\000\097\000\000\000\097\000\
1010 \000\000\000\000\000\000\055\000\055\000\097\000\097\000\000\000\
1011 \097\000\000\000\000\000\000\000\097\000\097\000\097\000\097\000\
1012 \097\000\055\000\055\000\097\000\000\000\097\000\097\000\057\000\
1013 \000\000\000\000\097\000\057\000\000\000\000\000\097\000\000\000\
1014 \097\000\000\000\097\000\097\000\097\000\000\000\000\000\000\000\
1015 \000\000\097\000\000\000\000\000\000\000\000\000\000\000\000\000\
1016 \057\000\097\000\000\000\057\000\000\000\097\000\097\000\000\000\
1017 \097\000\000\000\000\000\000\000\057\000\057\000\097\000\097\000\
1018 \000\000\097\000\000\000\000\000\000\000\097\000\097\000\097\000\
1019 \097\000\097\000\057\000\057\000\097\000\000\000\097\000\097\000\
1020 \056\000\000\000\000\000\097\000\056\000\000\000\000\000\097\000\
1021 \000\000\097\000\000\000\097\000\097\000\097\000\000\000\000\000\
1022 \000\000\000\000\097\000\000\000\000\000\000\000\000\000\000\000\
1023 \000\000\056\000\097\000\000\000\056\000\000\000\097\000\097\000\
1024 \000\000\097\000\000\000\000\000\000\000\056\000\056\000\097\000\
1025 \097\000\000\000\097\000\000\000\000\000\000\000\097\000\097\000\
1026 \097\000\097\000\097\000\056\000\056\000\097\000\097\000\097\000\
1027 \000\000\000\000\000\000\000\000\097\000\000\000\097\000\000\000\
1028 \097\000\000\000\097\000\097\000\097\000\000\000\000\000\000\000\
1029 \000\000\097\000\000\000\000\000\000\000\000\000\000\000\099\000\
1030 \000\000\097\000\000\000\000\000\000\000\097\000\097\000\099\000\
1031 \097\000\099\000\000\000\099\000\099\000\099\000\097\000\097\000\
1032 \000\000\097\000\099\000\000\000\000\000\097\000\097\000\097\000\
1033 \097\000\097\000\099\000\000\000\097\000\000\000\097\000\099\000\
1034 \000\000\099\000\000\000\097\000\000\000\000\000\000\000\099\000\
1035 \099\000\000\000\099\000\000\000\144\000\000\000\099\000\099\000\
1036 \099\000\099\000\099\000\000\000\144\000\099\000\144\000\099\000\
1037 \144\000\144\000\144\000\000\000\099\000\000\000\000\000\144\000\
1038 \000\000\000\000\000\000\000\000\000\000\099\000\000\000\144\000\
1039 \000\000\000\000\000\000\144\000\144\000\099\000\144\000\099\000\
1040 \000\000\099\000\099\000\099\000\000\000\144\000\000\000\144\000\
1041 \099\000\000\000\000\000\000\000\144\000\144\000\144\000\144\000\
1042 \099\000\000\000\144\000\000\000\144\000\099\000\000\000\099\000\
1043 \000\000\144\000\000\000\000\000\000\000\000\000\099\000\000\000\
1044 \099\000\000\000\101\000\000\000\000\000\099\000\099\000\099\000\
1045 \099\000\000\000\101\000\099\000\101\000\099\000\101\000\101\000\
1046 \101\000\000\000\099\000\000\000\000\000\101\000\000\000\000\000\
1047 \000\000\000\000\000\000\102\000\000\000\101\000\000\000\000\000\
1048 \000\000\000\000\101\000\102\000\101\000\102\000\000\000\102\000\
1049 \102\000\102\000\000\000\101\000\000\000\101\000\102\000\000\000\
1050 \000\000\000\000\101\000\101\000\101\000\101\000\102\000\000\000\
1051 \101\000\000\000\101\000\102\000\000\000\102\000\000\000\101\000\
1052 \000\000\154\000\000\000\000\000\102\000\154\000\102\000\000\000\
1053 \115\000\000\000\000\000\102\000\102\000\102\000\102\000\000\000\
1054 \036\000\102\000\036\000\102\000\036\000\115\000\115\000\000\000\
1055 \102\000\000\000\154\000\000\000\000\000\154\000\000\000\000\000\
1056 \000\000\000\000\000\000\036\000\000\000\000\000\154\000\154\000\
1057 \000\000\000\000\036\000\000\000\000\000\000\000\000\000\000\000\
1058 \000\000\115\000\000\000\036\000\154\000\154\000\000\000\000\000\
1059 \115\000\036\000\115\000\036\000\000\000\000\000\036\000\000\000\
1060 \000\000\000\000\000\000\000\000\000\000\036\000"
1061
1062 let yycheck = "\001\000\
1063 \014\000\001\000\085\000\151\000\230\000\001\000\122\000\114\000\
1064 \001\000\098\001\115\000\011\000\139\000\093\001\095\000\000\000\
1065 \000\001\013\000\066\001\126\000\127\000\020\001\001\001\019\000\
1066 \020\000\001\001\022\000\023\000\024\000\029\000\135\000\005\001\
1067 \091\000\066\001\001\001\239\000\022\000\000\001\024\000\020\001\
1068 \001\000\016\001\005\001\247\000\102\001\190\000\000\001\105\001\
1069 \137\001\029\001\001\001\032\001\197\000\046\001\050\000\181\001\
1070 \233\001\234\001\068\001\043\001\056\000\057\000\207\000\208\000\
1071 \000\001\005\001\149\000\063\000\016\001\025\000\026\000\057\000\
1072 \001\001\001\001\000\001\202\000\069\001\026\001\058\001\008\001\
1073 \080\000\056\001\008\001\067\001\033\001\211\001\000\001\071\001\
1074 \087\001\073\001\066\001\000\001\088\000\151\001\074\001\000\001\
1075 \072\001\045\001\000\001\078\001\070\001\029\001\000\001\161\001\
1076 \067\001\119\000\082\001\081\001\075\001\000\001\073\001\008\001\
1077 \114\000\067\001\162\001\163\001\118\000\113\000\223\000\073\001\
1078 \020\001\114\001\118\000\074\001\126\000\127\000\000\001\126\001\
1079 \049\002\162\001\163\001\067\001\072\001\069\001\130\000\071\001\
1080 \057\002\133\000\074\001\060\002\199\000\067\001\201\000\000\001\
1081 \130\000\074\001\000\001\073\001\005\001\105\000\106\000\008\001\
1082 \233\000\067\001\072\001\029\001\074\001\005\001\067\001\073\001\
1083 \130\001\021\001\067\001\252\001\253\001\067\001\074\001\072\001\
1084 \248\001\067\001\008\001\119\001\029\001\008\001\000\001\073\001\
1085 \067\001\074\001\000\001\078\001\079\001\000\001\178\000\001\001\
1086 \058\001\181\000\000\001\183\000\190\000\017\001\041\001\001\001\
1087 \081\001\067\001\022\001\197\000\192\000\183\000\194\000\073\001\
1088 \074\001\058\001\004\002\005\002\006\002\207\000\208\000\000\000\
1089 \194\000\211\000\067\001\008\001\101\001\067\001\032\001\104\001\
1090 \073\001\074\001\089\001\073\001\216\000\217\000\000\001\005\001\
1091 \072\001\221\000\008\001\000\001\176\001\080\001\226\000\029\001\
1092 \083\001\122\001\123\001\000\001\074\001\000\001\007\001\074\001\
1093 \005\001\067\001\047\001\008\001\240\000\067\001\106\001\107\001\
1094 \067\001\245\000\198\001\073\001\248\000\067\001\073\001\144\001\
1095 \058\002\000\001\118\001\255\000\058\001\063\002\064\002\020\001\
1096 \029\001\066\001\093\001\068\001\034\001\001\001\075\001\160\001\
1097 \000\001\016\001\014\001\068\001\033\001\074\001\024\001\025\001\
1098 \009\001\141\001\011\001\000\001\013\001\000\001\000\001\000\001\
1099 \081\001\067\001\072\001\183\001\074\001\058\001\067\001\041\001\
1100 \036\001\000\001\147\001\028\001\058\001\066\001\067\001\061\001\
1101 \067\001\051\001\035\001\073\001\073\001\074\001\073\001\000\001\
1102 \000\001\056\001\000\001\044\001\081\001\082\001\000\001\066\001\
1103 \000\001\050\001\001\001\052\001\067\001\000\001\055\001\073\001\
1104 \131\001\066\001\000\001\042\001\224\001\062\001\080\001\081\001\
1105 \076\001\083\001\049\001\067\001\043\001\222\001\145\001\087\001\
1106 \204\001\000\001\014\001\015\001\074\001\152\001\067\001\001\001\
1107 \067\001\067\001\067\001\101\001\102\001\000\001\104\001\105\001\
1108 \047\001\000\001\074\001\042\001\067\001\041\001\005\001\020\001\
1109 \071\001\008\001\049\001\001\001\048\001\003\001\004\001\005\001\
1110 \122\001\123\001\067\001\067\001\033\001\067\001\126\001\051\001\
1111 \187\001\067\001\189\001\067\001\075\001\192\001\029\001\021\001\
1112 \067\001\066\001\019\002\020\002\199\001\067\001\144\001\072\001\
1113 \025\002\031\001\029\001\080\001\057\001\151\001\017\001\020\001\
1114 \148\001\149\001\037\001\022\001\067\001\159\001\160\001\161\001\
1115 \046\001\052\001\068\001\058\001\033\001\248\001\008\001\072\001\
1116 \067\001\162\001\163\001\066\001\067\001\056\001\102\001\061\001\
1117 \081\001\105\001\073\001\074\001\066\001\066\001\068\001\038\001\
1118 \070\001\072\001\116\001\029\001\057\001\043\001\076\001\077\001\
1119 \194\001\066\001\081\001\037\001\081\001\082\001\066\001\072\001\
1120 \036\002\076\001\077\001\039\002\072\001\201\001\220\001\221\001\
1121 \001\001\209\001\003\001\004\001\005\001\066\001\056\001\246\001\
1122 \247\001\010\001\068\001\072\001\023\002\024\002\072\001\151\001\
1123 \255\001\072\001\073\001\020\001\021\001\082\001\232\001\233\001\
1124 \234\001\161\001\164\001\074\001\166\001\073\001\031\001\032\001\
1125 \066\001\034\001\066\001\036\001\037\001\241\001\072\001\060\001\
1126 \072\001\000\001\106\001\107\001\045\001\046\001\005\001\066\001\
1127 \002\002\008\001\004\002\005\002\006\002\072\001\097\000\098\000\
1128 \081\001\060\001\059\001\043\001\061\001\073\001\063\001\064\001\
1129 \065\001\066\001\066\001\068\001\066\001\070\001\029\001\000\001\
1130 \072\001\069\001\072\001\076\001\077\001\074\001\071\001\008\001\
1131 \074\001\081\001\082\001\031\002\082\001\033\002\001\001\073\001\
1132 \036\002\005\001\069\001\039\002\230\001\073\001\060\001\049\002\
1133 \232\001\233\001\234\001\058\001\029\001\239\001\001\001\057\002\
1134 \058\002\243\001\060\002\008\001\067\001\063\002\064\002\249\001\
1135 \076\001\067\001\073\001\074\001\001\001\082\001\000\002\074\001\
1136 \001\001\034\001\073\001\001\001\004\002\005\002\006\002\009\002\
1137 \074\001\058\001\002\001\013\001\000\001\001\001\006\001\017\002\
1138 \018\002\005\001\067\001\007\001\008\001\018\001\066\001\005\001\
1139 \073\001\074\001\001\001\001\001\081\001\017\001\018\001\001\001\
1140 \066\001\060\001\082\001\027\001\074\001\017\001\030\001\014\001\
1141 \015\001\029\001\001\001\024\001\017\001\016\001\034\001\039\001\
1142 \040\001\049\002\073\001\047\001\082\001\032\001\060\001\043\001\
1143 \060\001\057\002\058\002\047\001\060\002\053\001\054\001\063\002\
1144 \064\002\022\001\060\001\042\001\002\001\005\001\058\001\066\001\
1145 \060\001\073\001\049\001\074\001\051\001\066\001\066\001\067\001\
1146 \001\001\069\001\048\001\071\001\072\001\073\001\074\001\075\001\
1147 \076\001\077\001\078\001\079\001\080\001\081\001\082\001\083\001\
1148 \084\001\085\001\086\001\087\001\088\001\000\001\001\001\081\001\
1149 \006\001\074\001\005\001\074\001\007\001\008\001\099\000\100\000\
1150 \101\000\102\000\103\000\104\000\074\001\002\001\017\001\018\001\
1151 \074\001\074\001\072\001\001\001\043\001\027\001\074\001\060\001\
1152 \030\001\060\001\029\001\074\001\074\001\074\001\074\001\034\001\
1153 \001\001\039\001\040\001\074\001\066\001\073\001\000\001\017\001\
1154 \043\001\074\001\074\001\005\001\047\001\074\001\008\001\053\001\
1155 \054\001\024\001\060\001\022\001\060\001\069\001\071\001\058\001\
1156 \074\001\060\001\017\001\024\001\069\001\022\001\001\001\066\001\
1157 \067\001\002\001\069\001\029\001\071\001\072\001\073\001\074\001\
1158 \075\001\076\001\077\001\078\001\079\001\080\001\081\001\082\001\
1159 \083\001\084\001\085\001\086\001\087\001\088\001\000\001\022\001\
1160 \001\001\001\001\074\001\005\001\002\001\007\001\008\001\074\001\
1161 \058\001\074\001\010\001\001\001\024\001\074\001\074\001\017\001\
1162 \018\001\067\001\018\001\022\001\021\002\001\000\001\000\073\001\
1163 \074\001\022\001\001\000\029\001\001\000\118\001\007\001\188\001\
1164 \034\001\066\001\034\001\089\001\036\001\112\001\141\001\076\001\
1165 \077\001\043\001\049\001\207\001\005\001\047\001\083\001\084\001\
1166 \085\001\086\001\087\001\088\001\167\001\209\001\105\001\063\002\
1167 \058\001\121\001\060\001\059\001\104\001\064\002\094\000\063\001\
1168 \064\001\067\001\066\001\069\001\123\001\071\001\047\001\073\001\
1169 \074\001\075\001\076\001\077\001\078\001\079\001\080\001\081\001\
1170 \122\001\083\001\084\001\085\001\086\001\087\001\088\001\000\001\
1171 \096\000\015\000\107\000\133\000\005\001\226\000\007\001\008\001\
1172 \178\000\074\001\075\001\076\001\077\001\078\001\079\001\080\001\
1173 \017\001\018\001\083\001\084\001\085\001\086\001\087\001\088\001\
1174 \255\255\255\255\255\255\255\255\029\001\255\255\255\255\007\001\
1175 \255\255\034\001\255\255\255\255\255\255\255\255\255\255\255\255\
1176 \255\255\255\255\043\001\255\255\255\255\255\255\047\001\255\255\
1177 \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
1178 \001\001\058\001\255\255\060\001\255\255\255\255\255\255\255\255\
1179 \255\255\010\001\067\001\255\255\069\001\255\255\071\001\047\001\
1180 \073\001\074\001\075\001\076\001\077\001\078\001\079\001\255\255\
1181 \081\001\255\255\083\001\084\001\085\001\086\001\087\001\088\001\
1182 \000\001\034\001\255\255\036\001\255\255\005\001\255\255\007\001\
1183 \008\001\255\255\074\001\075\001\076\001\077\001\078\001\079\001\
1184 \080\001\017\001\018\001\083\001\084\001\085\001\086\001\087\001\
1185 \088\001\255\255\059\001\255\255\255\255\029\001\063\001\064\001\
1186 \255\255\066\001\034\001\001\001\255\255\003\001\004\001\005\001\
1187 \255\255\255\255\255\255\043\001\255\255\255\255\255\255\047\001\
1188 \001\001\255\255\003\001\004\001\005\001\255\255\255\255\021\001\
1189 \255\255\255\255\058\001\255\255\060\001\255\255\255\255\255\255\
1190 \255\255\031\001\255\255\067\001\021\001\069\001\036\001\071\001\
1191 \255\255\073\001\074\001\075\001\076\001\077\001\031\001\045\001\
1192 \046\001\081\001\255\255\083\001\084\001\085\001\086\001\087\001\
1193 \088\001\000\001\255\255\255\255\255\255\046\001\005\001\061\001\
1194 \007\001\008\001\255\255\255\255\066\001\255\255\068\001\255\255\
1195 \070\001\255\255\017\001\018\001\061\001\075\001\076\001\077\001\
1196 \255\255\066\001\255\255\068\001\255\255\070\001\029\001\255\255\
1197 \255\255\255\255\255\255\034\001\001\001\255\255\003\001\004\001\
1198 \005\001\255\255\255\255\255\255\043\001\255\255\255\255\255\255\
1199 \047\001\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
1200 \021\001\255\255\255\255\058\001\255\255\060\001\255\255\255\255\
1201 \255\255\255\255\031\001\255\255\067\001\255\255\069\001\036\001\
1202 \071\001\255\255\073\001\074\001\075\001\076\001\077\001\255\255\
1203 \045\001\046\001\081\001\255\255\083\001\084\001\085\001\086\001\
1204 \087\001\088\001\000\001\255\255\255\255\001\001\255\255\005\001\
1205 \061\001\007\001\008\001\255\255\255\255\066\001\010\001\068\001\
1206 \255\255\070\001\255\255\017\001\018\001\255\255\255\255\076\001\
1207 \077\001\000\001\255\255\023\001\255\255\255\255\255\255\029\001\
1208 \007\001\255\255\255\255\255\255\034\001\255\255\034\001\255\255\
1209 \036\001\255\255\255\255\255\255\255\255\043\001\255\255\255\255\
1210 \255\255\047\001\255\255\005\001\255\255\007\001\008\001\255\255\
1211 \255\255\255\255\255\255\034\001\058\001\255\255\060\001\059\001\
1212 \255\255\255\255\255\255\063\001\064\001\067\001\066\001\069\001\
1213 \047\001\071\001\255\255\073\001\074\001\075\001\076\001\077\001\
1214 \255\255\255\255\255\255\081\001\255\255\083\001\084\001\085\001\
1215 \086\001\087\001\088\001\066\001\067\001\047\001\255\255\255\255\
1216 \255\255\072\001\073\001\255\255\075\001\076\001\077\001\078\001\
1217 \079\001\080\001\255\255\255\255\083\001\084\001\085\001\086\001\
1218 \087\001\088\001\005\001\002\001\007\001\008\001\255\255\006\001\
1219 \074\001\075\001\076\001\077\001\078\001\079\001\080\001\081\001\
1220 \255\255\083\001\084\001\085\001\086\001\087\001\088\001\005\001\
1221 \255\255\007\001\008\001\255\255\027\001\255\255\255\255\030\001\
1222 \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
1223 \039\001\040\001\255\255\255\255\047\001\005\001\255\255\007\001\
1224 \008\001\255\255\255\255\255\255\255\255\255\255\053\001\054\001\
1225 \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
1226 \255\255\047\001\255\255\255\255\255\255\255\255\255\255\074\001\
1227 \075\001\076\001\077\001\078\001\079\001\080\001\081\001\255\255\
1228 \083\001\084\001\085\001\086\001\087\001\088\001\255\255\047\001\
1229 \255\255\255\255\255\255\255\255\074\001\075\001\076\001\077\001\
1230 \078\001\079\001\080\001\081\001\255\255\083\001\084\001\085\001\
1231 \086\001\087\001\088\001\255\255\255\255\255\255\255\255\255\255\
1232 \255\255\255\255\074\001\075\001\076\001\077\001\078\001\079\001\
1233 \080\001\081\001\255\255\083\001\084\001\085\001\086\001\087\001\
1234 \088\001\000\001\255\255\255\255\255\255\255\255\005\001\255\255\
1235 \007\001\008\001\255\255\255\255\255\255\255\255\255\255\255\255\
1236 \255\255\255\255\017\001\018\001\000\001\255\255\255\255\001\001\
1237 \255\255\005\001\255\255\007\001\008\001\255\255\029\001\255\255\
1238 \010\001\255\255\255\255\034\001\255\255\017\001\018\001\255\255\
1239 \255\255\019\001\255\255\255\255\043\001\255\255\255\255\255\255\
1240 \047\001\029\001\255\255\255\255\255\255\255\255\034\001\255\255\
1241 \034\001\255\255\036\001\058\001\255\255\060\001\255\255\043\001\
1242 \255\255\255\255\255\255\047\001\067\001\255\255\069\001\255\255\
1243 \071\001\255\255\073\001\074\001\075\001\255\255\058\001\255\255\
1244 \060\001\059\001\081\001\255\255\255\255\063\001\064\001\067\001\
1245 \066\001\069\001\255\255\071\001\000\001\073\001\074\001\075\001\
1246 \255\255\005\001\255\255\007\001\008\001\081\001\255\255\255\255\
1247 \255\255\255\255\255\255\255\255\255\255\017\001\018\001\000\001\
1248 \255\255\255\255\001\001\255\255\005\001\255\255\007\001\008\001\
1249 \255\255\029\001\255\255\010\001\255\255\255\255\034\001\255\255\
1250 \017\001\018\001\255\255\255\255\255\255\255\255\255\255\043\001\
1251 \255\255\255\255\025\001\047\001\029\001\255\255\255\255\255\255\
1252 \255\255\034\001\255\255\034\001\255\255\036\001\058\001\255\255\
1253 \060\001\255\255\043\001\255\255\255\255\255\255\047\001\067\001\
1254 \255\255\069\001\255\255\071\001\255\255\073\001\074\001\075\001\
1255 \255\255\058\001\255\255\060\001\059\001\081\001\255\255\255\255\
1256 \063\001\064\001\067\001\066\001\069\001\255\255\071\001\000\001\
1257 \073\001\074\001\075\001\255\255\005\001\255\255\007\001\008\001\
1258 \081\001\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
1259 \017\001\018\001\000\001\255\255\255\255\255\255\255\255\005\001\
1260 \255\255\007\001\008\001\255\255\029\001\255\255\255\255\255\255\
1261 \255\255\034\001\255\255\017\001\018\001\255\255\255\255\255\255\
1262 \255\255\255\255\043\001\255\255\255\255\255\255\047\001\029\001\
1263 \255\255\255\255\255\255\255\255\034\001\255\255\255\255\255\255\
1264 \255\255\058\001\255\255\060\001\255\255\043\001\255\255\255\255\
1265 \255\255\047\001\067\001\255\255\069\001\255\255\071\001\255\255\
1266 \073\001\074\001\075\001\009\001\058\001\011\001\060\001\013\001\
1267 \081\001\255\255\255\255\255\255\255\255\067\001\255\255\069\001\
1268 \255\255\071\001\000\001\073\001\074\001\075\001\028\001\005\001\
1269 \255\255\007\001\008\001\081\001\255\255\035\001\255\255\255\255\
1270 \255\255\255\255\255\255\017\001\018\001\000\001\044\001\255\255\
1271 \255\255\255\255\005\001\255\255\050\001\008\001\052\001\029\001\
1272 \255\255\055\001\255\255\255\255\034\001\255\255\017\001\018\001\
1273 \062\001\255\255\255\255\255\255\255\255\043\001\255\255\255\255\
1274 \255\255\047\001\029\001\255\255\255\255\255\255\255\255\034\001\
1275 \255\255\255\255\255\255\255\255\058\001\255\255\060\001\255\255\
1276 \043\001\255\255\255\255\255\255\047\001\067\001\255\255\069\001\
1277 \255\255\071\001\255\255\073\001\074\001\075\001\002\001\058\001\
1278 \255\255\060\001\006\001\081\001\255\255\255\255\255\255\255\255\
1279 \067\001\255\255\069\001\255\255\071\001\000\001\073\001\074\001\
1280 \075\001\255\255\005\001\255\255\255\255\008\001\081\001\027\001\
1281 \255\255\255\255\030\001\255\255\007\001\255\255\017\001\018\001\
1282 \255\255\255\255\255\255\039\001\040\001\255\255\017\001\018\001\
1283 \255\255\255\255\029\001\007\001\255\255\255\255\255\255\034\001\
1284 \255\255\053\001\054\001\255\255\255\255\017\001\018\001\255\255\
1285 \043\001\255\255\255\255\255\255\047\001\255\255\255\255\255\255\
1286 \255\255\255\255\255\255\255\255\047\001\255\255\255\255\058\001\
1287 \255\255\060\001\255\255\255\255\255\255\255\255\255\255\255\255\
1288 \067\001\255\255\069\001\047\001\071\001\255\255\073\001\074\001\
1289 \075\001\255\255\255\255\255\255\007\001\255\255\081\001\074\001\
1290 \075\001\076\001\077\001\078\001\079\001\080\001\017\001\018\001\
1291 \083\001\084\001\085\001\086\001\087\001\088\001\074\001\075\001\
1292 \076\001\077\001\078\001\079\001\080\001\007\001\255\255\083\001\
1293 \084\001\085\001\086\001\087\001\088\001\255\255\255\255\017\001\
1294 \018\001\255\255\255\255\255\255\047\001\255\255\007\001\255\255\
1295 \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
1296 \017\001\018\001\255\255\255\255\255\255\255\255\255\255\255\255\
1297 \255\255\255\255\255\255\255\255\255\255\047\001\255\255\074\001\
1298 \075\001\076\001\077\001\078\001\079\001\080\001\255\255\255\255\
1299 \083\001\084\001\085\001\086\001\087\001\088\001\047\001\255\255\
1300 \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
1301 \074\001\075\001\076\001\077\001\078\001\079\001\080\001\255\255\
1302 \255\255\083\001\084\001\085\001\086\001\087\001\088\001\255\255\
1303 \255\255\074\001\075\001\076\001\077\001\078\001\079\001\080\001\
1304 \255\255\255\255\083\001\084\001\085\001\086\001\087\001\088\001\
1305 \000\001\255\255\255\255\002\001\255\255\005\001\255\255\006\001\
1306 \008\001\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
1307 \255\255\017\001\018\001\000\001\255\255\255\255\255\255\255\255\
1308 \005\001\255\255\255\255\008\001\027\001\029\001\255\255\030\001\
1309 \255\255\255\255\034\001\007\001\017\001\018\001\255\255\255\255\
1310 \039\001\040\001\255\255\043\001\255\255\017\001\018\001\255\255\
1311 \029\001\255\255\255\255\255\255\255\255\034\001\053\001\054\001\
1312 \255\255\255\255\058\001\255\255\060\001\255\255\043\001\255\255\
1313 \255\255\255\255\255\255\067\001\255\255\069\001\255\255\071\001\
1314 \255\255\073\001\074\001\047\001\255\255\058\001\255\255\060\001\
1315 \255\255\081\001\255\255\009\001\255\255\011\001\067\001\013\001\
1316 \069\001\255\255\071\001\255\255\073\001\074\001\255\255\255\255\
1317 \255\255\255\255\255\255\255\255\081\001\255\255\028\001\075\001\
1318 \076\001\077\001\078\001\079\001\080\001\035\001\255\255\083\001\
1319 \084\001\085\001\086\001\087\001\088\001\000\001\044\001\255\255\
1320 \255\255\255\255\005\001\255\255\050\001\008\001\255\255\255\255\
1321 \009\001\055\001\011\001\007\001\013\001\255\255\017\001\018\001\
1322 \062\001\255\255\255\255\255\255\255\255\017\001\018\001\255\255\
1323 \255\255\007\001\029\001\028\001\255\255\255\255\255\255\034\001\
1324 \255\255\255\255\035\001\255\255\255\255\255\255\255\255\255\255\
1325 \043\001\255\255\255\255\044\001\255\255\255\255\255\255\255\255\
1326 \255\255\050\001\255\255\047\001\255\255\255\255\055\001\058\001\
1327 \255\255\060\001\255\255\255\255\255\255\062\001\255\255\255\255\
1328 \067\001\047\001\069\001\255\255\071\001\255\255\073\001\074\001\
1329 \255\255\255\255\255\255\255\255\255\255\255\255\081\001\075\001\
1330 \076\001\077\001\078\001\079\001\080\001\255\255\255\255\083\001\
1331 \084\001\085\001\086\001\087\001\088\001\075\001\076\001\077\001\
1332 \078\001\079\001\080\001\081\001\255\255\083\001\084\001\085\001\
1333 \086\001\087\001\088\001\000\001\001\001\255\255\003\001\004\001\
1334 \005\001\255\255\255\255\255\255\255\255\255\255\255\255\000\001\
1335 \001\001\255\255\003\001\004\001\005\001\255\255\255\255\255\255\
1336 \021\001\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
1337 \255\255\255\255\031\001\255\255\021\001\255\255\035\001\036\001\
1338 \255\255\255\255\255\255\255\255\255\255\255\255\031\001\255\255\
1339 \045\001\046\001\035\001\036\001\255\255\000\001\001\001\255\255\
1340 \003\001\004\001\005\001\255\255\045\001\046\001\255\255\255\255\
1341 \061\001\255\255\255\255\255\255\255\255\066\001\067\001\068\001\
1342 \255\255\070\001\021\001\255\255\061\001\255\255\255\255\076\001\
1343 \077\001\066\001\067\001\068\001\031\001\070\001\255\255\255\255\
1344 \035\001\036\001\255\255\076\001\077\001\255\255\255\255\255\255\
1345 \255\255\255\255\045\001\046\001\255\255\000\001\001\001\255\255\
1346 \003\001\004\001\005\001\255\255\255\255\255\255\255\255\255\255\
1347 \255\255\255\255\061\001\255\255\255\255\255\255\255\255\066\001\
1348 \067\001\068\001\021\001\070\001\255\255\255\255\255\255\255\255\
1349 \255\255\076\001\077\001\255\255\031\001\255\255\255\255\255\255\
1350 \035\001\036\001\255\255\000\001\001\001\255\255\003\001\004\001\
1351 \005\001\255\255\045\001\046\001\255\255\255\255\255\255\000\001\
1352 \001\001\255\255\003\001\004\001\005\001\255\255\255\255\255\255\
1353 \021\001\255\255\061\001\255\255\255\255\255\255\255\255\066\001\
1354 \067\001\068\001\031\001\070\001\021\001\255\255\035\001\036\001\
1355 \255\255\076\001\077\001\255\255\255\255\255\255\031\001\255\255\
1356 \045\001\046\001\035\001\036\001\255\255\000\001\001\001\255\255\
1357 \003\001\004\001\005\001\255\255\045\001\046\001\255\255\255\255\
1358 \061\001\255\255\255\255\255\255\255\255\066\001\067\001\068\001\
1359 \255\255\070\001\021\001\255\255\061\001\255\255\255\255\076\001\
1360 \077\001\066\001\067\001\068\001\031\001\070\001\255\255\255\255\
1361 \035\001\036\001\255\255\076\001\077\001\255\255\255\255\255\255\
1362 \255\255\255\255\045\001\046\001\255\255\000\001\001\001\255\255\
1363 \003\001\004\001\005\001\255\255\255\255\255\255\255\255\255\255\
1364 \255\255\255\255\061\001\255\255\255\255\255\255\255\255\066\001\
1365 \067\001\068\001\021\001\070\001\255\255\255\255\255\255\255\255\
1366 \255\255\076\001\077\001\255\255\031\001\255\255\255\255\255\255\
1367 \035\001\036\001\255\255\000\001\001\001\255\255\003\001\004\001\
1368 \005\001\255\255\045\001\046\001\255\255\255\255\255\255\000\001\
1369 \001\001\255\255\003\001\004\001\005\001\255\255\255\255\255\255\
1370 \021\001\255\255\061\001\255\255\255\255\255\255\255\255\066\001\
1371 \067\001\068\001\031\001\070\001\021\001\255\255\255\255\036\001\
1372 \255\255\076\001\077\001\255\255\255\255\255\255\031\001\255\255\
1373 \045\001\046\001\255\255\036\001\255\255\000\001\001\001\255\255\
1374 \003\001\004\001\005\001\255\255\045\001\046\001\255\255\255\255\
1375 \061\001\255\255\255\255\255\255\255\255\066\001\067\001\068\001\
1376 \255\255\070\001\021\001\255\255\061\001\255\255\255\255\076\001\
1377 \077\001\066\001\067\001\068\001\031\001\070\001\255\255\255\255\
1378 \255\255\036\001\255\255\076\001\077\001\255\255\255\255\255\255\
1379 \255\255\255\255\045\001\046\001\255\255\000\001\001\001\255\255\
1380 \003\001\004\001\005\001\255\255\255\255\255\255\255\255\255\255\
1381 \255\255\002\001\061\001\255\255\255\255\006\001\255\255\066\001\
1382 \067\001\068\001\021\001\070\001\255\255\255\255\255\255\255\255\
1383 \255\255\076\001\077\001\255\255\031\001\255\255\255\255\255\255\
1384 \255\255\036\001\027\001\000\001\001\001\030\001\003\001\004\001\
1385 \005\001\255\255\045\001\046\001\255\255\255\255\039\001\040\001\
1386 \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
1387 \021\001\255\255\061\001\255\255\053\001\054\001\255\255\066\001\
1388 \255\255\068\001\031\001\070\001\255\255\255\255\255\255\036\001\
1389 \255\255\076\001\077\001\255\255\255\255\255\255\255\255\255\255\
1390 \045\001\046\001\255\255\255\255\001\001\002\001\003\001\004\001\
1391 \005\001\006\001\255\255\255\255\255\255\255\255\255\255\012\001\
1392 \061\001\255\255\255\255\255\255\255\255\066\001\255\255\068\001\
1393 \021\001\070\001\255\255\255\255\255\255\255\255\027\001\076\001\
1394 \077\001\030\001\031\001\255\255\255\255\034\001\255\255\036\001\
1395 \255\255\255\255\039\001\040\001\255\255\255\255\255\255\002\001\
1396 \045\001\046\001\255\255\006\001\255\255\255\255\255\255\255\255\
1397 \053\001\054\001\001\001\255\255\003\001\004\001\005\001\255\255\
1398 \061\001\255\255\063\001\010\001\255\255\066\001\255\255\068\001\
1399 \027\001\070\001\255\255\030\001\255\255\255\255\021\001\076\001\
1400 \077\001\255\255\255\255\255\255\039\001\040\001\255\255\255\255\
1401 \031\001\255\255\255\255\034\001\255\255\036\001\255\255\255\255\
1402 \255\255\255\255\053\001\054\001\255\255\255\255\045\001\046\001\
1403 \255\255\255\255\001\001\255\255\003\001\004\001\005\001\255\255\
1404 \255\255\255\255\255\255\255\255\059\001\012\001\061\001\255\255\
1405 \063\001\064\001\255\255\066\001\255\255\068\001\021\001\070\001\
1406 \023\001\255\255\255\255\255\255\255\255\076\001\077\001\255\255\
1407 \031\001\255\255\255\255\034\001\255\255\036\001\255\255\255\255\
1408 \001\001\255\255\003\001\004\001\005\001\255\255\045\001\046\001\
1409 \255\255\255\255\255\255\012\001\255\255\255\255\255\255\255\255\
1410 \255\255\018\001\255\255\255\255\021\001\255\255\061\001\255\255\
1411 \063\001\255\255\255\255\066\001\255\255\068\001\031\001\070\001\
1412 \255\255\034\001\255\255\036\001\255\255\076\001\077\001\255\255\
1413 \255\255\255\255\255\255\255\255\045\001\046\001\255\255\255\255\
1414 \001\001\255\255\003\001\004\001\005\001\255\255\255\255\255\255\
1415 \255\255\255\255\255\255\012\001\061\001\255\255\063\001\255\255\
1416 \255\255\066\001\019\001\068\001\021\001\070\001\255\255\255\255\
1417 \255\255\255\255\255\255\076\001\077\001\255\255\031\001\255\255\
1418 \255\255\034\001\255\255\036\001\255\255\255\255\001\001\255\255\
1419 \003\001\004\001\005\001\255\255\045\001\046\001\255\255\255\255\
1420 \255\255\012\001\001\001\255\255\003\001\004\001\005\001\255\255\
1421 \255\255\255\255\021\001\255\255\061\001\255\255\063\001\255\255\
1422 \255\255\066\001\255\255\068\001\031\001\070\001\021\001\034\001\
1423 \255\255\036\001\255\255\076\001\077\001\255\255\255\255\255\255\
1424 \031\001\255\255\045\001\046\001\035\001\036\001\001\001\255\255\
1425 \003\001\004\001\005\001\255\255\255\255\255\255\045\001\046\001\
1426 \255\255\255\255\061\001\255\255\063\001\255\255\255\255\066\001\
1427 \255\255\068\001\021\001\070\001\255\255\255\255\061\001\255\255\
1428 \255\255\076\001\077\001\066\001\031\001\068\001\255\255\070\001\
1429 \255\255\255\255\255\255\255\255\255\255\076\001\077\001\255\255\
1430 \255\255\255\255\045\001\046\001\255\255\255\255\255\255\255\255\
1431 \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
1432 \255\255\255\255\061\001\255\255\255\255\255\255\255\255\066\001\
1433 \255\255\068\001\255\255\070\001\255\255\000\001\001\001\002\001\
1434 \255\255\076\001\077\001\006\001\255\255\008\001\009\001\255\255\
1435 \011\001\255\255\013\001\014\001\015\001\255\255\255\255\255\255\
1436 \255\255\020\001\255\255\255\255\255\255\255\255\255\255\255\255\
1437 \027\001\028\001\029\001\030\001\255\255\032\001\033\001\255\255\
1438 \035\001\255\255\037\001\255\255\039\001\040\001\041\001\042\001\
1439 \255\255\044\001\255\255\255\255\255\255\048\001\049\001\050\001\
1440 \051\001\052\001\053\001\054\001\055\001\056\001\057\001\058\001\
1441 \001\001\002\001\255\255\062\001\255\255\006\001\255\255\255\255\
1442 \067\001\010\001\255\255\255\255\255\255\255\255\073\001\074\001\
1443 \255\255\002\001\255\255\255\255\255\255\006\001\255\255\255\255\
1444 \255\255\255\255\027\001\255\255\255\255\030\001\255\255\255\255\
1445 \255\255\034\001\255\255\036\001\255\255\255\255\039\001\040\001\
1446 \255\255\255\255\027\001\255\255\255\255\030\001\255\255\255\255\
1447 \255\255\255\255\255\255\255\255\053\001\054\001\039\001\040\001\
1448 \255\255\255\255\059\001\255\255\255\255\255\255\063\001\064\001\
1449 \255\255\066\001\001\001\002\001\053\001\054\001\005\001\006\001\
1450 \255\255\008\001\009\001\255\255\011\001\255\255\013\001\014\001\
1451 \015\001\255\255\255\255\255\255\255\255\020\001\255\255\255\255\
1452 \255\255\255\255\255\255\255\255\027\001\028\001\029\001\030\001\
1453 \255\255\032\001\033\001\255\255\035\001\255\255\037\001\255\255\
1454 \039\001\040\001\041\001\042\001\255\255\044\001\255\255\255\255\
1455 \255\255\048\001\049\001\050\001\051\001\052\001\053\001\054\001\
1456 \055\001\056\001\057\001\001\001\002\001\255\255\255\255\062\001\
1457 \006\001\255\255\008\001\009\001\255\255\011\001\255\255\013\001\
1458 \014\001\015\001\255\255\255\255\255\255\255\255\020\001\255\255\
1459 \255\255\255\255\255\255\255\255\255\255\027\001\028\001\029\001\
1460 \030\001\255\255\032\001\033\001\255\255\035\001\255\255\037\001\
1461 \255\255\039\001\040\001\041\001\042\001\255\255\044\001\255\255\
1462 \255\255\255\255\048\001\049\001\050\001\051\001\052\001\053\001\
1463 \054\001\055\001\056\001\057\001\001\001\002\001\255\255\255\255\
1464 \062\001\006\001\255\255\255\255\009\001\255\255\011\001\255\255\
1465 \013\001\014\001\015\001\255\255\255\255\255\255\255\255\020\001\
1466 \255\255\255\255\255\255\255\255\255\255\255\255\027\001\028\001\
1467 \029\001\030\001\255\255\032\001\033\001\255\255\035\001\255\255\
1468 \037\001\255\255\039\001\040\001\041\001\042\001\255\255\044\001\
1469 \255\255\255\255\255\255\048\001\049\001\050\001\051\001\052\001\
1470 \053\001\054\001\055\001\056\001\057\001\001\001\002\001\255\255\
1471 \255\255\062\001\006\001\255\255\255\255\009\001\255\255\011\001\
1472 \255\255\013\001\014\001\015\001\255\255\255\255\255\255\255\255\
1473 \020\001\255\255\255\255\255\255\255\255\255\255\255\255\027\001\
1474 \028\001\255\255\030\001\255\255\032\001\033\001\255\255\035\001\
1475 \255\255\255\255\255\255\039\001\040\001\041\001\042\001\255\255\
1476 \044\001\255\255\255\255\255\255\048\001\049\001\050\001\051\001\
1477 \052\001\053\001\054\001\055\001\255\255\057\001\001\001\002\001\
1478 \255\255\255\255\062\001\006\001\255\255\255\255\009\001\255\255\
1479 \011\001\255\255\013\001\014\001\015\001\255\255\255\255\255\255\
1480 \255\255\020\001\255\255\255\255\255\255\255\255\255\255\255\255\
1481 \027\001\028\001\255\255\030\001\255\255\032\001\033\001\255\255\
1482 \035\001\255\255\255\255\255\255\039\001\040\001\041\001\042\001\
1483 \255\255\044\001\255\255\255\255\255\255\048\001\049\001\050\001\
1484 \051\001\052\001\053\001\054\001\055\001\255\255\057\001\001\001\
1485 \002\001\255\255\255\255\062\001\006\001\255\255\255\255\009\001\
1486 \255\255\011\001\255\255\013\001\014\001\015\001\255\255\255\255\
1487 \255\255\255\255\020\001\255\255\255\255\255\255\255\255\255\255\
1488 \255\255\027\001\028\001\255\255\030\001\255\255\032\001\033\001\
1489 \255\255\035\001\255\255\255\255\255\255\039\001\040\001\041\001\
1490 \042\001\255\255\044\001\255\255\255\255\255\255\048\001\049\001\
1491 \050\001\051\001\052\001\053\001\054\001\055\001\001\001\057\001\
1492 \255\255\255\255\255\255\255\255\062\001\255\255\009\001\255\255\
1493 \011\001\255\255\013\001\014\001\015\001\255\255\255\255\255\255\
1494 \255\255\020\001\255\255\255\255\255\255\255\255\255\255\001\001\
1495 \255\255\028\001\255\255\255\255\255\255\032\001\033\001\009\001\
1496 \035\001\011\001\255\255\013\001\014\001\015\001\041\001\042\001\
1497 \255\255\044\001\020\001\255\255\255\255\048\001\049\001\050\001\
1498 \051\001\052\001\028\001\255\255\055\001\255\255\057\001\033\001\
1499 \255\255\035\001\255\255\062\001\255\255\255\255\255\255\041\001\
1500 \042\001\255\255\044\001\255\255\001\001\255\255\048\001\049\001\
1501 \050\001\051\001\052\001\255\255\009\001\055\001\011\001\057\001\
1502 \013\001\014\001\015\001\255\255\062\001\255\255\255\255\020\001\
1503 \255\255\255\255\255\255\255\255\255\255\001\001\255\255\028\001\
1504 \255\255\255\255\255\255\032\001\033\001\009\001\035\001\011\001\
1505 \255\255\013\001\014\001\015\001\255\255\042\001\255\255\044\001\
1506 \020\001\255\255\255\255\255\255\049\001\050\001\051\001\052\001\
1507 \028\001\255\255\055\001\255\255\057\001\033\001\255\255\035\001\
1508 \255\255\062\001\255\255\255\255\255\255\255\255\042\001\255\255\
1509 \044\001\255\255\001\001\255\255\255\255\049\001\050\001\051\001\
1510 \052\001\255\255\009\001\055\001\011\001\057\001\013\001\014\001\
1511 \015\001\255\255\062\001\255\255\255\255\020\001\255\255\255\255\
1512 \255\255\255\255\255\255\001\001\255\255\028\001\255\255\255\255\
1513 \255\255\255\255\033\001\009\001\035\001\011\001\255\255\013\001\
1514 \014\001\015\001\255\255\042\001\255\255\044\001\020\001\255\255\
1515 \255\255\255\255\049\001\050\001\051\001\052\001\028\001\255\255\
1516 \055\001\255\255\057\001\033\001\255\255\035\001\255\255\062\001\
1517 \255\255\002\001\255\255\255\255\042\001\006\001\044\001\255\255\
1518 \001\001\255\255\255\255\049\001\050\001\051\001\052\001\255\255\
1519 \009\001\055\001\011\001\057\001\013\001\014\001\015\001\255\255\
1520 \062\001\255\255\027\001\255\255\255\255\030\001\255\255\255\255\
1521 \255\255\255\255\255\255\028\001\255\255\255\255\039\001\040\001\
1522 \255\255\255\255\035\001\255\255\255\255\255\255\255\255\255\255\
1523 \255\255\042\001\255\255\044\001\053\001\054\001\255\255\255\255\
1524 \049\001\050\001\051\001\052\001\255\255\255\255\055\001\255\255\
1525 \255\255\255\255\255\255\255\255\255\255\062\001"
1526
1527 let yynames_const = "\
1528   ALGORITHM\000\
1529   AND\000\
1530   ANNOTATION\000\
1531   BLOCK\000\
1532   BREAK\000\
1533   CLASS\000\
1534   CONNECT\000\
1535   CONNECTOR\000\
1536   CONSTANT\000\
1537   DISCRETE\000\
1538   EACH\000\
1539   ELSE\000\
1540   ELSEIF\000\
1541   ELSEWHEN\000\
1542   ENCAPSULATED\000\
1543   END\000\
1544   END_IF\000\
1545   END_FOR\000\
1546   END_WHEN\000\
1547   END_WHILE\000\
1548   ENUMERATION\000\
1549   EQUATION\000\
1550   EXPANDABLE\000\
1551   EXTENDS\000\
1552   EXTERNAL\000\
1553   FALSE\000\
1554   FINAL\000\
1555   FLOW\000\
1556   FOR\000\
1557   FUNCTION\000\
1558   IF\000\
1559   IMPORT\000\
1560   IN\000\
1561   INITIAL_ALGORITHM\000\
1562   INITIAL_EQUATION\000\
1563   INNER\000\
1564   INPUT\000\
1565   LOOP\000\
1566   MODEL\000\
1567   NOT\000\
1568   NOEVENT\000\
1569   OR\000\
1570   OUTER\000\
1571   OUTPUT\000\
1572   PACKAGE\000\
1573   PARAMETER\000\
1574   PARTIAL\000\
1575   PROTECTED\000\
1576   PUBLIC\000\
1577   RECORD\000\
1578   REDECLARE\000\
1579   REPLACEABLE\000\
1580   RESTRICTS\000\
1581   RETURN\000\
1582   THEN\000\
1583   TRUE\000\
1584   TYPE\000\
1585   WHEN\000\
1586   WHILE\000\
1587   WITHIN\000\
1588   LP\000\
1589   RP\000\
1590   LSB\000\
1591   RSB\000\
1592   LCB\000\
1593   RCB\000\
1594   DOT\000\
1595   CM\000\
1596   SC\000\
1597   CL\000\
1598   PLUS\000\
1599   MINUS\000\
1600   STAR\000\
1601   SLASH\000\
1602   EXP\000\
1603   EQ\000\
1604   COLEQ\000\
1605   LT\000\
1606   GT\000\
1607   LE\000\
1608   GE\000\
1609   EE\000\
1610   NE\000\
1611   EOF\000\
1612   "
1613
1614 let yynames_block = "\
1615   IDENT\000\
1616   END_IDENT\000\
1617   UNSIGNED_INTEGER\000\
1618   UNSIGNED_REAL\000\
1619   STRING\000\
1620   "
1621
1622 let yyact = [|
1623   (fun _ -> failwith "parser")
1624 ; (fun __caml_parser_env ->
1625     let _1 = (Parsing.peek_val __caml_parser_env 0 : 'class_definitions) in
1626     Obj.repr(
1627 # 138 "parser.mly"
1628       ( node (ClassDefinitions (List.rev _1)) )
1629 # 1630 "parser.ml"
1630                : (location Syntax.toplevel_element_desc, location) Syntax.node))
1631 ; (fun __caml_parser_env ->
1632     let _1 = (Parsing.peek_val __caml_parser_env 1 : 'toplevel_expression) in
1633     Obj.repr(
1634 # 140 "parser.mly"
1635       ( _1 )
1636 # 1637 "parser.ml"
1637                : (location Syntax.toplevel_element_desc, location) Syntax.node))
1638 ; (fun __caml_parser_env ->
1639     Obj.repr(
1640 # 142 "parser.mly"
1641       ( node (Within []) )
1642 # 1643 "parser.ml"
1643                : (location Syntax.toplevel_element_desc, location) Syntax.node))
1644 ; (fun __caml_parser_env ->
1645     let _2 = (Parsing.peek_val __caml_parser_env 1 : 'within_name) in
1646     Obj.repr(
1647 # 144 "parser.mly"
1648       ( node (Within (List.rev _2)) )
1649 # 1650 "parser.ml"
1650                : (location Syntax.toplevel_element_desc, location) Syntax.node))
1651 ; (fun __caml_parser_env ->
1652     let _1 = (Parsing.peek_val __caml_parser_env 1 : 'import_clause) in
1653     Obj.repr(
1654 # 146 "parser.mly"
1655       ( node (Import _1) )
1656 # 1657 "parser.ml"
1657                : (location Syntax.toplevel_element_desc, location) Syntax.node))
1658 ; (fun __caml_parser_env ->
1659     Obj.repr(
1660 # 148 "parser.mly"
1661       ( raise End_of_file )
1662 # 1663 "parser.ml"
1663                : (location Syntax.toplevel_element_desc, location) Syntax.node))
1664 ; (fun __caml_parser_env ->
1665     let _2 = (Parsing.peek_val __caml_parser_env 1 : 'class_definition) in
1666     Obj.repr(
1667 # 153 "parser.mly"
1668       ( [node (ClassDefinition (Some Final, _2))] )
1669 # 1670 "parser.ml"
1670                : 'class_definitions))
1671 ; (fun __caml_parser_env ->
1672     let _1 = (Parsing.peek_val __caml_parser_env 1 : 'class_definition) in
1673     Obj.repr(
1674 # 155 "parser.mly"
1675       ( [node (ClassDefinition (None, _1))] )
1676 # 1677 "parser.ml"
1677                : 'class_definitions))
1678 ; (fun __caml_parser_env ->
1679     let _1 = (Parsing.peek_val __caml_parser_env 3 : 'class_definitions) in
1680     let _3 = (Parsing.peek_val __caml_parser_env 1 : 'class_definition) in
1681     Obj.repr(
1682 # 157 "parser.mly"
1683       ( node (ClassDefinition (Some Final, _3)) :: _1 )
1684 # 1685 "parser.ml"
1685                : 'class_definitions))
1686 ; (fun __caml_parser_env ->
1687     let _1 = (Parsing.peek_val __caml_parser_env 2 : 'class_definitions) in
1688     let _2 = (Parsing.peek_val __caml_parser_env 1 : 'class_definition) in
1689     Obj.repr(
1690 # 159 "parser.mly"
1691       ( node (ClassDefinition (None, _2)) :: _1 )
1692 # 1693 "parser.ml"
1693                : 'class_definitions))
1694 ; (fun __caml_parser_env ->
1695     let _1 = (Parsing.peek_val __caml_parser_env 0 : 'expression) in
1696     Obj.repr(
1697 # 163 "parser.mly"
1698       ( node (Expression _1) )
1699 # 1700 "parser.ml"
1700                : 'toplevel_expression))
1701 ; (fun __caml_parser_env ->
1702     let _1 = (Parsing.peek_val __caml_parser_env 1 : 'component_reference) in
1703     let _2 = (Parsing.peek_val __caml_parser_env 0 : 'component_list) in
1704     Obj.repr(
1705 # 165 "parser.mly"
1706       ( match _1.nature with
1707           | IndexedAccess (type_spec_node, subscripts_node) ->
1708               node (VariablesDefinitions (type_spec_node, Some subscripts_node, (List.rev _2)))
1709           | type_spec ->
1710               node (VariablesDefinitions (rhs_nodes 1 1 type_spec, None, (List.rev _2))) )
1711 # 1712 "parser.ml"
1712                : 'toplevel_expression))
1713 ; (fun __caml_parser_env ->
1714     let _1 = (Parsing.peek_val __caml_parser_env 2 : 'component_reference) in
1715     let _3 = (Parsing.peek_val __caml_parser_env 0 : 'expression) in
1716     Obj.repr(
1717 # 171 "parser.mly"
1718       ( node (Command (node (Assign (_1, _3)))) )
1719 # 1720 "parser.ml"
1720                : 'toplevel_expression))
1721 ; (fun __caml_parser_env ->
1722     let _2 = (Parsing.peek_val __caml_parser_env 5 : 'expression_list) in
1723     let _5 = (Parsing.peek_val __caml_parser_env 2 : 'component_reference) in
1724     Obj.repr(
1725 # 173 "parser.mly"
1726       ( node (Command (node (MultipleAssign (_2, _5, None)))) )
1727 # 1728 "parser.ml"
1728                : 'toplevel_expression))
1729 ; (fun __caml_parser_env ->
1730     let _2 = (Parsing.peek_val __caml_parser_env 6 : 'expression_list) in
1731     let _5 = (Parsing.peek_val __caml_parser_env 3 : 'component_reference) in
1732     let _7 = (Parsing.peek_val __caml_parser_env 1 : 'function_arguments) in
1733     Obj.repr(
1734 # 175 "parser.mly"
1735       ( node (Command (node (MultipleAssign (_2, _5, Some _7)))) )
1736 # 1737 "parser.ml"
1737                : 'toplevel_expression))
1738 ; (fun __caml_parser_env ->
1739     let _2 = (Parsing.peek_val __caml_parser_env 6 : 'expression_list) in
1740     let _5 = (Parsing.peek_val __caml_parser_env 3 : 'component_reference) in
1741     let _7 = (Parsing.peek_val __caml_parser_env 1 : 'function_arguments) in
1742     Obj.repr(
1743 # 178 "parser.mly"
1744       ( unclosed "(" 6 ")" 8 )
1745 # 1746 "parser.ml"
1746                : 'toplevel_expression))
1747 ; (fun __caml_parser_env ->
1748     let _2 = (Parsing.peek_val __caml_parser_env 5 : 'expression_list) in
1749     let _5 = (Parsing.peek_val __caml_parser_env 2 : 'component_reference) in
1750     Obj.repr(
1751 # 180 "parser.mly"
1752       ( unclosed "(" 6 ")" 7 )
1753 # 1754 "parser.ml"
1754                : 'toplevel_expression))
1755 ; (fun __caml_parser_env ->
1756     Obj.repr(
1757 # 182 "parser.mly"
1758       ( node (Command (node Break)) )
1759 # 1760 "parser.ml"
1760                : 'toplevel_expression))
1761 ; (fun __caml_parser_env ->
1762     Obj.repr(
1763 # 184 "parser.mly"
1764       ( node (Command (node Return)) )
1765 # 1766 "parser.ml"
1766                : 'toplevel_expression))
1767 ; (fun __caml_parser_env ->
1768     let _1 = (Parsing.peek_val __caml_parser_env 0 : 'conditional_equation_a) in
1769     Obj.repr(
1770 # 186 "parser.mly"
1771       ( node (Command (node _1)) )
1772 # 1773 "parser.ml"
1773                : 'toplevel_expression))
1774 ; (fun __caml_parser_env ->
1775     let _1 = (Parsing.peek_val __caml_parser_env 0 : 'for_clause_a) in
1776     Obj.repr(
1777 # 188 "parser.mly"
1778       ( node (Command (node _1)) )
1779 # 1780 "parser.ml"
1780                : 'toplevel_expression))
1781 ; (fun __caml_parser_env ->
1782     let _1 = (Parsing.peek_val __caml_parser_env 0 : 'while_clause) in
1783     Obj.repr(
1784 # 190 "parser.mly"
1785       ( node (Command (node _1)) )
1786 # 1787 "parser.ml"
1787                : 'toplevel_expression))
1788 ; (fun __caml_parser_env ->
1789     let _1 = (Parsing.peek_val __caml_parser_env 0 : 'when_clause_a) in
1790     Obj.repr(
1791 # 192 "parser.mly"
1792       ( node (Command (node _1)) )
1793 # 1794 "parser.ml"
1794                : 'toplevel_expression))
1795 ; (fun __caml_parser_env ->
1796     let _1 = (Parsing.peek_val __caml_parser_env 0 : string) in
1797     Obj.repr(
1798 # 197 "parser.mly"
1799       ( [_1] )
1800 # 1801 "parser.ml"
1801                : 'within_name))
1802 ; (fun __caml_parser_env ->
1803     let _1 = (Parsing.peek_val __caml_parser_env 2 : 'within_name) in
1804     let _3 = (Parsing.peek_val __caml_parser_env 0 : string) in
1805     Obj.repr(
1806 # 199 "parser.mly"
1807       ( _3 :: _1 )
1808 # 1809 "parser.ml"
1809                : 'within_name))
1810 ; (fun __caml_parser_env ->
1811     let _1 = (Parsing.peek_val __caml_parser_env 3 : 'encapsulated_option) in
1812     let _2 = (Parsing.peek_val __caml_parser_env 2 : 'partial_option) in
1813     let _3 = (Parsing.peek_val __caml_parser_env 1 : 'class_type) in
1814     let _4 = (Parsing.peek_val __caml_parser_env 0 : 'class_specifier) in
1815     Obj.repr(
1816 # 205 "parser.mly"
1817       ( node (Definition (_1, _2, _3, _4)) )
1818 # 1819 "parser.ml"
1819                : 'class_definition))
1820 ; (fun __caml_parser_env ->
1821     Obj.repr(
1822 # 210 "parser.mly"
1823       ( Class )
1824 # 1825 "parser.ml"
1825                : 'class_type))
1826 ; (fun __caml_parser_env ->
1827     Obj.repr(
1828 # 212 "parser.mly"
1829       ( Model )
1830 # 1831 "parser.ml"
1831                : 'class_type))
1832 ; (fun __caml_parser_env ->
1833     Obj.repr(
1834 # 214 "parser.mly"
1835       ( Block )
1836 # 1837 "parser.ml"
1837                : 'class_type))
1838 ; (fun __caml_parser_env ->
1839     Obj.repr(
1840 # 216 "parser.mly"
1841       ( Record )
1842 # 1843 "parser.ml"
1843                : 'class_type))
1844 ; (fun __caml_parser_env ->
1845     Obj.repr(
1846 # 218 "parser.mly"
1847       ( ExpandableConnector )
1848 # 1849 "parser.ml"
1849                : 'class_type))
1850 ; (fun __caml_parser_env ->
1851     Obj.repr(
1852 # 220 "parser.mly"
1853       ( Connector )
1854 # 1855 "parser.ml"
1855                : 'class_type))
1856 ; (fun __caml_parser_env ->
1857     Obj.repr(
1858 # 222 "parser.mly"
1859       ( Type )
1860 # 1861 "parser.ml"
1861                : 'class_type))
1862 ; (fun __caml_parser_env ->
1863     Obj.repr(
1864 # 224 "parser.mly"
1865       ( Package )
1866 # 1867 "parser.ml"
1867                : 'class_type))
1868 ; (fun __caml_parser_env ->
1869     Obj.repr(
1870 # 226 "parser.mly"
1871       ( Function )
1872 # 1873 "parser.ml"
1873                : 'class_type))
1874 ; (fun __caml_parser_env ->
1875     Obj.repr(
1876 # 231 "parser.mly"
1877       ( None )
1878 # 1879 "parser.ml"
1879                : 'encapsulated_option))
1880 ; (fun __caml_parser_env ->
1881     Obj.repr(
1882 # 233 "parser.mly"
1883       ( Some Encapsulated )
1884 # 1885 "parser.ml"
1885                : 'encapsulated_option))
1886 ; (fun __caml_parser_env ->
1887     Obj.repr(
1888 # 238 "parser.mly"
1889       ( None )
1890 # 1891 "parser.ml"
1891                : 'partial_option))
1892 ; (fun __caml_parser_env ->
1893     Obj.repr(
1894 # 240 "parser.mly"
1895       ( Some Partial )
1896 # 1897 "parser.ml"
1897                : 'partial_option))
1898 ; (fun __caml_parser_env ->
1899     let _1 = (Parsing.peek_val __caml_parser_env 3 : string) in
1900     let _2 = (Parsing.peek_val __caml_parser_env 2 : 'string_comment) in
1901     let _3 = (Parsing.peek_val __caml_parser_env 1 : 'composition) in
1902     let _4 = (Parsing.peek_val __caml_parser_env 0 : string) in
1903     Obj.repr(
1904 # 245 "parser.mly"
1905       ( if _1 <> _4 then unclosed _1 1 _1 4
1906         else node (LongSpecifier (_1, _2, _3)) )
1907 # 1908 "parser.ml"
1908                : 'class_specifier))
1909 ; (fun __caml_parser_env ->
1910     let _1 = (Parsing.peek_val __caml_parser_env 6 : string) in
1911     let _3 = (Parsing.peek_val __caml_parser_env 4 : 'base_prefix) in
1912     let _4 = (Parsing.peek_val __caml_parser_env 3 : 'name) in
1913     let _5 = (Parsing.peek_val __caml_parser_env 2 : 'array_subscripts_option) in
1914     let _6 = (Parsing.peek_val __caml_parser_env 1 : 'class_modification_option) in
1915     let _7 = (Parsing.peek_val __caml_parser_env 0 : 'comment) in
1916     Obj.repr(
1917 # 249 "parser.mly"
1918       ( node (ShortSpecifier (_1, _3, _4, _5, _6, _7)) )
1919 # 1920 "parser.ml"
1920                : 'class_specifier))
1921 ; (fun __caml_parser_env ->
1922     let _1 = (Parsing.peek_val __caml_parser_env 6 : string) in
1923     let _5 = (Parsing.peek_val __caml_parser_env 2 : 'enum_composition_option) in
1924     let _7 = (Parsing.peek_val __caml_parser_env 0 : 'comment) in
1925     Obj.repr(
1926 # 251 "parser.mly"
1927       ( node (EnumerationSpecifier (_1, rhs_nodes 5 5 _5, _7)) )
1928 # 1929 "parser.ml"
1929                : 'class_specifier))
1930 ; (fun __caml_parser_env ->
1931     let _1 = (Parsing.peek_val __caml_parser_env 5 : string) in
1932     let _5 = (Parsing.peek_val __caml_parser_env 1 : 'enum_composition_option) in
1933     Obj.repr(
1934 # 253 "parser.mly"
1935       ( unclosed "(" 4 ")" 6 )
1936 # 1937 "parser.ml"
1937                : 'class_specifier))
1938 ; (fun __caml_parser_env ->
1939     let _2 = (Parsing.peek_val __caml_parser_env 4 : string) in
1940     let _3 = (Parsing.peek_val __caml_parser_env 3 : 'class_modification_option) in
1941     let _4 = (Parsing.peek_val __caml_parser_env 2 : 'string_comment) in
1942     let _5 = (Parsing.peek_val __caml_parser_env 1 : 'composition) in
1943     let _6 = (Parsing.peek_val __caml_parser_env 0 : string) in
1944     Obj.repr(
1945 # 255 "parser.mly"
1946       ( if _2 <> _6 then unclosed _2 2 _2 6
1947         else node (ExtensionSpecifier (_2, _3, _4, _5)) )
1948 # 1949 "parser.ml"
1949                : 'class_specifier))
1950 ; (fun __caml_parser_env ->
1951     let _1 = (Parsing.peek_val __caml_parser_env 0 : 'type_prefix) in
1952     Obj.repr(
1953 # 261 "parser.mly"
1954       ( _1 )
1955 # 1956 "parser.ml"
1956                : 'base_prefix))
1957 ; (fun __caml_parser_env ->
1958     Obj.repr(
1959 # 266 "parser.mly"
1960       ( EnumList None )
1961 # 1962 "parser.ml"
1962                : 'enum_composition_option))
1963 ; (fun __caml_parser_env ->
1964     let _1 = (Parsing.peek_val __caml_parser_env 0 : 'enum_composition) in
1965     Obj.repr(
1966 # 268 "parser.mly"
1967       ( _1 )
1968 # 1969 "parser.ml"
1969                : 'enum_composition_option))
1970 ; (fun __caml_parser_env ->
1971     let _1 = (Parsing.peek_val __caml_parser_env 0 : 'enum_list) in
1972     Obj.repr(
1973 # 273 "parser.mly"
1974       ( EnumList (Some (List.rev _1)) )
1975 # 1976 "parser.ml"
1976                : 'enum_composition))
1977 ; (fun __caml_parser_env ->
1978     Obj.repr(
1979 # 275 "parser.mly"
1980       ( EnumColon)
1981 # 1982 "parser.ml"
1982                : 'enum_composition))
1983 ; (fun __caml_parser_env ->
1984     let _1 = (Parsing.peek_val __caml_parser_env 0 : 'enumeration_literal) in
1985     Obj.repr(
1986 # 280 "parser.mly"
1987       ( [_1] )
1988 # 1989 "parser.ml"
1989                : 'enum_list))
1990 ; (fun __caml_parser_env ->
1991     let _1 = (Parsing.peek_val __caml_parser_env 2 : 'enum_list) in
1992     let _3 = (Parsing.peek_val __caml_parser_env 0 : 'enumeration_literal) in
1993     Obj.repr(
1994 # 282 "parser.mly"
1995       ( _3 :: _1 )
1996 # 1997 "parser.ml"
1997                : 'enum_list))
1998 ; (fun __caml_parser_env ->
1999     let _1 = (Parsing.peek_val __caml_parser_env 1 : string) in
2000     let _2 = (Parsing.peek_val __caml_parser_env 0 : 'comment) in
2001     Obj.repr(
2002 # 287 "parser.mly"
2003       ( node (EnumerationLiteral (_1, _2)) )
2004 # 2005 "parser.ml"
2005                : 'enumeration_literal))
2006 ; (fun __caml_parser_env ->
2007     let _1 = (Parsing.peek_val __caml_parser_env 1 : 'other_lists) in
2008     let _2 = (Parsing.peek_val __caml_parser_env 0 : 'external_option) in
2009     Obj.repr(
2010 # 292 "parser.mly"
2011       ( node (Composition ([], List.rev _1, _2)) )
2012 # 2013 "parser.ml"
2013                : 'composition))
2014 ; (fun __caml_parser_env ->
2015     let _1 = (Parsing.peek_val __caml_parser_env 2 : 'element_list) in
2016     let _2 = (Parsing.peek_val __caml_parser_env 1 : 'other_lists) in
2017     let _3 = (Parsing.peek_val __caml_parser_env 0 : 'external_option) in
2018     Obj.repr(
2019 # 294 "parser.mly"
2020       ( node (Composition (List.rev _1, List.rev _2, _3)) )
2021 # 2022 "parser.ml"
2022                : 'composition))
2023 ; (fun __caml_parser_env ->
2024     Obj.repr(
2025 # 299 "parser.mly"
2026       ( [] )
2027 # 2028 "parser.ml"
2028                : 'other_lists))
2029 ; (fun __caml_parser_env ->
2030     let _1 = (Parsing.peek_val __caml_parser_env 2 : 'other_lists) in
2031     let _3 = (Parsing.peek_val __caml_parser_env 0 : 'element_list) in
2032     Obj.repr(
2033 # 301 "parser.mly"
2034       ( rhs_nodes 2 3 (Public (List.rev _3)) :: _1 )
2035 # 2036 "parser.ml"
2036                : 'other_lists))
2037 ; (fun __caml_parser_env ->
2038     let _1 = (Parsing.peek_val __caml_parser_env 2 : 'other_lists) in
2039     let _3 = (Parsing.peek_val __caml_parser_env 0 : 'element_list) in
2040     Obj.repr(
2041 # 303 "parser.mly"
2042       ( rhs_nodes 2 3 (Protected (List.rev _3)) :: _1 )
2043 # 2044 "parser.ml"
2044                : 'other_lists))
2045 ; (fun __caml_parser_env ->
2046     let _1 = (Parsing.peek_val __caml_parser_env 1 : 'other_lists) in
2047     let _2 = (Parsing.peek_val __caml_parser_env 0 : 'equation_clause) in
2048     Obj.repr(
2049 # 305 "parser.mly"
2050       ( rhs_nodes 2 2 _2 :: _1 )
2051 # 2052 "parser.ml"
2052                : 'other_lists))
2053 ; (fun __caml_parser_env ->
2054     let _1 = (Parsing.peek_val __caml_parser_env 1 : 'other_lists) in
2055     let _2 = (Parsing.peek_val __caml_parser_env 0 : 'algorithm_clause) in
2056     Obj.repr(
2057 # 307 "parser.mly"
2058       ( rhs_nodes 2 2 _2 :: _1 )
2059 # 2060 "parser.ml"
2060                : 'other_lists))
2061 ; (fun __caml_parser_env ->
2062     Obj.repr(
2063 # 312 "parser.mly"
2064       ( None )
2065 # 2066 "parser.ml"
2066                : 'external_option))
2067 ; (fun __caml_parser_env ->
2068     let _2 = (Parsing.peek_val __caml_parser_env 3 : 'language_specification_option) in
2069     let _3 = (Parsing.peek_val __caml_parser_env 2 : 'external_function_call_option) in
2070     let _5 = (Parsing.peek_val __caml_parser_env 0 : 'annotation_sc_option) in
2071     Obj.repr(
2072 # 316 "parser.mly"
2073       ( Some (node (External (_2, _3, None, _5))) )
2074 # 2075 "parser.ml"
2075                : 'external_option))
2076 ; (fun __caml_parser_env ->
2077     let _2 = (Parsing.peek_val __caml_parser_env 4 : 'language_specification_option) in
2078     let _3 = (Parsing.peek_val __caml_parser_env 3 : 'external_function_call_option) in
2079     let _4 = (Parsing.peek_val __caml_parser_env 2 : 'annotation) in
2080     let _6 = (Parsing.peek_val __caml_parser_env 0 : 'annotation_sc_option) in
2081     Obj.repr(
2082 # 320 "parser.mly"
2083       ( Some (node (External (_2, _3, Some _4, _6))) )
2084 # 2085 "parser.ml"
2085                : 'external_option))
2086 ; (fun __caml_parser_env ->
2087     Obj.repr(
2088 # 325 "parser.mly"
2089       ( None )
2090 # 2091 "parser.ml"
2091                : 'annotation_option))
2092 ; (fun __caml_parser_env ->
2093     let _1 = (Parsing.peek_val __caml_parser_env 0 : 'annotation) in
2094     Obj.repr(
2095 # 327 "parser.mly"
2096       ( Some _1 )
2097 # 2098 "parser.ml"
2098                : 'annotation_option))
2099 ; (fun __caml_parser_env ->
2100     Obj.repr(
2101 # 332 "parser.mly"
2102       ( None )
2103 # 2104 "parser.ml"
2104                : 'annotation_sc_option))
2105 ; (fun __caml_parser_env ->
2106     let _1 = (Parsing.peek_val __caml_parser_env 1 : 'annotation) in
2107     Obj.repr(
2108 # 334 "parser.mly"
2109       ( Some _1 )
2110 # 2111 "parser.ml"
2111                : 'annotation_sc_option))
2112 ; (fun __caml_parser_env ->
2113     Obj.repr(
2114 # 339 "parser.mly"
2115       ( None )
2116 # 2117 "parser.ml"
2117                : 'language_specification_option))
2118 ; (fun __caml_parser_env ->
2119     let _1 = (Parsing.peek_val __caml_parser_env 0 : string) in
2120     Obj.repr(
2121 # 341 "parser.mly"
2122       ( Some _1 )
2123 # 2124 "parser.ml"
2124                : 'language_specification_option))
2125 ; (fun __caml_parser_env ->
2126     Obj.repr(
2127 # 346 "parser.mly"
2128       ( None )
2129 # 2130 "parser.ml"
2130                : 'external_function_call_option))
2131 ; (fun __caml_parser_env ->
2132     let _1 = (Parsing.peek_val __caml_parser_env 2 : string) in
2133     Obj.repr(
2134 # 348 "parser.mly"
2135       ( Some (node (ExternalFunctionCall (None, _1, []))) )
2136 # 2137 "parser.ml"
2137                : 'external_function_call_option))
2138 ; (fun __caml_parser_env ->
2139     let _1 = (Parsing.peek_val __caml_parser_env 3 : string) in
2140     let _3 = (Parsing.peek_val __caml_parser_env 1 : 'expressions) in
2141     Obj.repr(
2142 # 350 "parser.mly"
2143       ( Some (node (ExternalFunctionCall (None, _1, _3))) )
2144 # 2145 "parser.ml"
2145                : 'external_function_call_option))
2146 ; (fun __caml_parser_env ->
2147     let _1 = (Parsing.peek_val __caml_parser_env 3 : string) in
2148     let _3 = (Parsing.peek_val __caml_parser_env 1 : 'expressions) in
2149     Obj.repr(
2150 # 352 "parser.mly"
2151       ( unclosed "(" 2 ")" 4 )
2152 # 2153 "parser.ml"
2153                : 'external_function_call_option))
2154 ; (fun __caml_parser_env ->
2155     let _1 = (Parsing.peek_val __caml_parser_env 2 : string) in
2156     Obj.repr(
2157 # 354 "parser.mly"
2158       ( unclosed "(" 2 ")" 3 )
2159 # 2160 "parser.ml"
2160                : 'external_function_call_option))
2161 ; (fun __caml_parser_env ->
2162     let _1 = (Parsing.peek_val __caml_parser_env 4 : 'component_reference) in
2163     let _3 = (Parsing.peek_val __caml_parser_env 2 : string) in
2164     Obj.repr(
2165 # 356 "parser.mly"
2166       ( Some (node (ExternalFunctionCall (Some _1, _3, []))) )
2167 # 2168 "parser.ml"
2168                : 'external_function_call_option))
2169 ; (fun __caml_parser_env ->
2170     let _1 = (Parsing.peek_val __caml_parser_env 5 : 'component_reference) in
2171     let _3 = (Parsing.peek_val __caml_parser_env 3 : string) in
2172     let _5 = (Parsing.peek_val __caml_parser_env 1 : 'expressions) in
2173     Obj.repr(
2174 # 358 "parser.mly"
2175       ( Some (node (ExternalFunctionCall (Some _1, _3, _5))) )
2176 # 2177 "parser.ml"
2177                : 'external_function_call_option))
2178 ; (fun __caml_parser_env ->
2179     let _1 = (Parsing.peek_val __caml_parser_env 5 : 'component_reference) in
2180     let _3 = (Parsing.peek_val __caml_parser_env 3 : string) in
2181     let _5 = (Parsing.peek_val __caml_parser_env 1 : 'expressions) in
2182     Obj.repr(
2183 # 360 "parser.mly"
2184       ( unclosed "(" 4 ")" 6 )
2185 # 2186 "parser.ml"
2186                : 'external_function_call_option))
2187 ; (fun __caml_parser_env ->
2188     let _1 = (Parsing.peek_val __caml_parser_env 4 : 'component_reference) in
2189     let _3 = (Parsing.peek_val __caml_parser_env 2 : string) in
2190     Obj.repr(
2191 # 362 "parser.mly"
2192       ( unclosed "(" 4 ")" 5 )
2193 # 2194 "parser.ml"
2194                : 'external_function_call_option))
2195 ; (fun __caml_parser_env ->
2196     let _1 = (Parsing.peek_val __caml_parser_env 0 : 'expression) in
2197     Obj.repr(
2198 # 367 "parser.mly"
2199       ( [_1] )
2200 # 2201 "parser.ml"
2201                : 'expressions))
2202 ; (fun __caml_parser_env ->
2203     let _1 = (Parsing.peek_val __caml_parser_env 2 : 'expression) in
2204     let _3 = (Parsing.peek_val __caml_parser_env 0 : 'expressions) in
2205     Obj.repr(
2206 # 369 "parser.mly"
2207       ( _1 :: _3 )
2208 # 2209 "parser.ml"
2209                : 'expressions))
2210 ; (fun __caml_parser_env ->
2211     Obj.repr(
2212 # 374 "parser.mly"
2213       ( None )
2214 # 2215 "parser.ml"
2215                : 'array_subscripts_option))
2216 ; (fun __caml_parser_env ->
2217     let _1 = (Parsing.peek_val __caml_parser_env 0 : 'array_subscripts) in
2218     Obj.repr(
2219 # 376 "parser.mly"
2220       ( Some _1 )
2221 # 2222 "parser.ml"
2222                : 'array_subscripts_option))
2223 ; (fun __caml_parser_env ->
2224     Obj.repr(
2225 # 381 "parser.mly"
2226       ( None )
2227 # 2228 "parser.ml"
2228                : 'class_modification_option))
2229 ; (fun __caml_parser_env ->
2230     let _1 = (Parsing.peek_val __caml_parser_env 0 : 'class_modification) in
2231     Obj.repr(
2232 # 383 "parser.mly"
2233       ( Some _1 )
2234 # 2235 "parser.ml"
2235                : 'class_modification_option))
2236 ; (fun __caml_parser_env ->
2237     let _1 = (Parsing.peek_val __caml_parser_env 1 : 'annotation) in
2238     Obj.repr(
2239 # 388 "parser.mly"
2240       ( [node (ClassAnnotation _1)] )
2241 # 2242 "parser.ml"
2242                : 'element_list))
2243 ; (fun __caml_parser_env ->
2244     let _1 = (Parsing.peek_val __caml_parser_env 2 : 'import_clause) in
2245     let _3 = (Parsing.peek_val __caml_parser_env 0 : 'annotation_sc_option) in
2246     Obj.repr(
2247 # 390 "parser.mly"
2248       ( [node (ImportClause (_1, _3))] )
2249 # 2250 "parser.ml"
2250                : 'element_list))
2251 ; (fun __caml_parser_env ->
2252     let _1 = (Parsing.peek_val __caml_parser_env 2 : 'extends_clause) in
2253     let _3 = (Parsing.peek_val __caml_parser_env 0 : 'annotation_sc_option) in
2254     Obj.repr(
2255 # 392 "parser.mly"
2256       ( [node (ExtendsClause (_1, _3))] )
2257 # 2258 "parser.ml"
2258                : 'element_list))
2259 ; (fun __caml_parser_env ->
2260     let _1 = (Parsing.peek_val __caml_parser_env 5 : 'redeclare_option) in
2261     let _2 = (Parsing.peek_val __caml_parser_env 4 : 'final_option) in
2262     let _3 = (Parsing.peek_val __caml_parser_env 3 : 'dynamic_scope_option) in
2263     let _4 = (Parsing.peek_val __caml_parser_env 2 : 'element_definition) in
2264     let _6 = (Parsing.peek_val __caml_parser_env 0 : 'annotation_sc_option) in
2265     Obj.repr(
2266 # 395 "parser.mly"
2267       ( [node (ElementDefinition (_1, _2, _3, _4, _6))] )
2268 # 2269 "parser.ml"
2269                : 'element_list))
2270 ; (fun __caml_parser_env ->
2271     let _1 = (Parsing.peek_val __caml_parser_env 3 : 'element_list) in
2272     let _2 = (Parsing.peek_val __caml_parser_env 2 : 'import_clause) in
2273     let _4 = (Parsing.peek_val __caml_parser_env 0 : 'annotation_sc_option) in
2274     Obj.repr(
2275 # 397 "parser.mly"
2276       ( rhs_nodes 2 3 (ImportClause (_2, _4)) :: _1 )
2277 # 2278 "parser.ml"
2278                : 'element_list))
2279 ; (fun __caml_parser_env ->
2280     let _1 = (Parsing.peek_val __caml_parser_env 3 : 'element_list) in
2281     let _2 = (Parsing.peek_val __caml_parser_env 2 : 'extends_clause) in
2282     let _4 = (Parsing.peek_val __caml_parser_env 0 : 'annotation_sc_option) in
2283     Obj.repr(
2284 # 399 "parser.mly"
2285       ( rhs_nodes 2 3 (ExtendsClause (_2, _4)) :: _1 )
2286 # 2287 "parser.ml"
2287                : 'element_list))
2288 ; (fun __caml_parser_env ->
2289     let _1 = (Parsing.peek_val __caml_parser_env 6 : 'element_list) in
2290     let _2 = (Parsing.peek_val __caml_parser_env 5 : 'redeclare_option) in
2291     let _3 = (Parsing.peek_val __caml_parser_env 4 : 'final_option) in
2292     let _4 = (Parsing.peek_val __caml_parser_env 3 : 'dynamic_scope_option) in
2293     let _5 = (Parsing.peek_val __caml_parser_env 2 : 'element_definition) in
2294     let _7 = (Parsing.peek_val __caml_parser_env 0 : 'annotation_sc_option) in
2295     Obj.repr(
2296 # 402 "parser.mly"
2297       ( rhs_nodes 2 5 (ElementDefinition (_2, _3, _4, _5, _7)) :: _1 )
2298 # 2299 "parser.ml"
2299                : 'element_list))
2300 ; (fun __caml_parser_env ->
2301     let _1 = (Parsing.peek_val __caml_parser_env 0 : 'class_definition) in
2302     Obj.repr(
2303 # 407 "parser.mly"
2304       ( node (ClassDefinitionElement (None, _1, [])) )
2305 # 2306 "parser.ml"
2306                : 'element_definition))
2307 ; (fun __caml_parser_env ->
2308     let _1 = (Parsing.peek_val __caml_parser_env 0 : 'component_clause) in
2309     Obj.repr(
2310 # 409 "parser.mly"
2311       ( node (ComponentClauseElement (None, _1, [])) )
2312 # 2313 "parser.ml"
2313                : 'element_definition))
2314 ; (fun __caml_parser_env ->
2315     let _2 = (Parsing.peek_val __caml_parser_env 0 : 'class_definition) in
2316     Obj.repr(
2317 # 411 "parser.mly"
2318       ( node (ClassDefinitionElement (Some Replaceable, _2, [])) )
2319 # 2320 "parser.ml"
2320                : 'element_definition))
2321 ; (fun __caml_parser_env ->
2322     let _2 = (Parsing.peek_val __caml_parser_env 1 : 'class_definition) in
2323     let _3 = (Parsing.peek_val __caml_parser_env 0 : 'constraining_clauses) in
2324     Obj.repr(
2325 # 413 "parser.mly"
2326       ( node (ClassDefinitionElement (Some Replaceable, _2, List.rev _3)) )
2327 # 2328 "parser.ml"
2328                : 'element_definition))
2329 ; (fun __caml_parser_env ->
2330     let _2 = (Parsing.peek_val __caml_parser_env 0 : 'component_clause) in
2331     Obj.repr(
2332 # 415 "parser.mly"
2333       ( node (ComponentClauseElement (Some Replaceable, _2, [])) )
2334 # 2335 "parser.ml"
2335                : 'element_definition))
2336 ; (fun __caml_parser_env ->
2337     let _2 = (Parsing.peek_val __caml_parser_env 1 : 'component_clause) in
2338     let _3 = (Parsing.peek_val __caml_parser_env 0 : 'constraining_clauses) in
2339     Obj.repr(
2340 # 417 "parser.mly"
2341       ( node (ComponentClauseElement (Some Replaceable, _2, List.rev _3)) )
2342 # 2343 "parser.ml"
2343                : 'element_definition))
2344 ; (fun __caml_parser_env ->
2345     Obj.repr(
2346 # 422 "parser.mly"
2347       ( None )
2348 # 2349 "parser.ml"
2349                : 'redeclare_option))
2350 ; (fun __caml_parser_env ->
2351     Obj.repr(
2352 # 424 "parser.mly"
2353       ( Some Redeclare )
2354 # 2355 "parser.ml"
2355                : 'redeclare_option))
2356 ; (fun __caml_parser_env ->
2357     Obj.repr(
2358 # 429 "parser.mly"
2359       ( None )
2360 # 2361 "parser.ml"
2361                : 'final_option))
2362 ; (fun __caml_parser_env ->
2363     Obj.repr(
2364 # 431 "parser.mly"
2365       ( Some Final )
2366 # 2367 "parser.ml"
2367                : 'final_option))
2368 ; (fun __caml_parser_env ->
2369     Obj.repr(
2370 # 436 "parser.mly"
2371       ( None )
2372 # 2373 "parser.ml"
2373                : 'dynamic_scope_option))
2374 ; (fun __caml_parser_env ->
2375     Obj.repr(
2376 # 438 "parser.mly"
2377       ( Some Inner )
2378 # 2379 "parser.ml"
2379                : 'dynamic_scope_option))
2380 ; (fun __caml_parser_env ->
2381     Obj.repr(
2382 # 440 "parser.mly"
2383       ( Some Outer )
2384 # 2385 "parser.ml"
2385                : 'dynamic_scope_option))
2386 ; (fun __caml_parser_env ->
2387     Obj.repr(
2388 # 442 "parser.mly"
2389       ( Some InnerOuter )
2390 # 2391 "parser.ml"
2391                : 'dynamic_scope_option))
2392 ; (fun __caml_parser_env ->
2393     let _2 = (Parsing.peek_val __caml_parser_env 3 : string) in
2394     let _4 = (Parsing.peek_val __caml_parser_env 1 : 'name) in
2395     let _5 = (Parsing.peek_val __caml_parser_env 0 : 'comment) in
2396     Obj.repr(
2397 # 447 "parser.mly"
2398       ( node (NewIdentifier (_2, _4, _5)) )
2399 # 2400 "parser.ml"
2400                : 'import_clause))
2401 ; (fun __caml_parser_env ->
2402     let _2 = (Parsing.peek_val __caml_parser_env 1 : 'name) in
2403     let _3 = (Parsing.peek_val __caml_parser_env 0 : 'comment) in
2404     Obj.repr(
2405 # 449 "parser.mly"
2406       ( node (OldIdentifier (_2, _3)) )
2407 # 2408 "parser.ml"
2408                : 'import_clause))
2409 ; (fun __caml_parser_env ->
2410     let _2 = (Parsing.peek_val __caml_parser_env 3 : 'name) in
2411     let _5 = (Parsing.peek_val __caml_parser_env 0 : 'comment) in
2412     Obj.repr(
2413 # 451 "parser.mly"
2414       ( node (AllIdentifiers (_2, _5)) )
2415 # 2416 "parser.ml"
2416                : 'import_clause))
2417 ; (fun __caml_parser_env ->
2418     let _1 = (Parsing.peek_val __caml_parser_env 0 : 'constraining_clause) in
2419     Obj.repr(
2420 # 456 "parser.mly"
2421       ( [_1] )
2422 # 2423 "parser.ml"
2423                : 'constraining_clauses))
2424 ; (fun __caml_parser_env ->
2425     let _1 = (Parsing.peek_val __caml_parser_env 1 : 'constraining_clauses) in
2426     let _2 = (Parsing.peek_val __caml_parser_env 0 : 'constraining_clause) in
2427     Obj.repr(
2428 # 458 "parser.mly"
2429       ( _2 :: _1 )
2430 # 2431 "parser.ml"
2431                : 'constraining_clauses))
2432 ; (fun __caml_parser_env ->
2433     let _2 = (Parsing.peek_val __caml_parser_env 2 : 'name) in
2434     let _3 = (Parsing.peek_val __caml_parser_env 1 : 'class_modification_option) in
2435     let _4 = (Parsing.peek_val __caml_parser_env 0 : 'annotation_option) in
2436     Obj.repr(
2437 # 464 "parser.mly"
2438       ( node (Extends (_2, _3, _4)) )
2439 # 2440 "parser.ml"
2440                : 'extends_clause))
2441 ; (fun __caml_parser_env ->
2442     let _2 = (Parsing.peek_val __caml_parser_env 2 : 'name) in
2443     let _3 = (Parsing.peek_val __caml_parser_env 1 : 'class_modification_option) in
2444     let _4 = (Parsing.peek_val __caml_parser_env 0 : 'comment) in
2445     Obj.repr(
2446 # 469 "parser.mly"
2447       ( node (Constraint (Extension, _2, _3, _4)) )
2448 # 2449 "parser.ml"
2449                : 'constraining_clause))
2450 ; (fun __caml_parser_env ->
2451     let _2 = (Parsing.peek_val __caml_parser_env 2 : 'name) in
2452     let _3 = (Parsing.peek_val __caml_parser_env 1 : 'class_modification_option) in
2453     let _4 = (Parsing.peek_val __caml_parser_env 0 : 'comment) in
2454     Obj.repr(
2455 # 471 "parser.mly"
2456       ( node (Constraint (Restriction, _2, _3, _4)) )
2457 # 2458 "parser.ml"
2458                : 'constraining_clause))
2459 ; (fun __caml_parser_env ->
2460     let _1 = (Parsing.peek_val __caml_parser_env 3 : 'type_prefix) in
2461     let _2 = (Parsing.peek_val __caml_parser_env 2 : 'type_specifier) in
2462     let _3 = (Parsing.peek_val __caml_parser_env 1 : 'array_subscripts_option) in
2463     let _4 = (Parsing.peek_val __caml_parser_env 0 : 'component_list) in
2464     Obj.repr(
2465 # 477 "parser.mly"
2466       ( node (ComponentClause (_1, _2, _3, List.rev _4)) )
2467 # 2468 "parser.ml"
2468                : 'component_clause))
2469 ; (fun __caml_parser_env ->
2470     let _1 = (Parsing.peek_val __caml_parser_env 2 : 'flow_option) in
2471     let _2 = (Parsing.peek_val __caml_parser_env 1 : 'variability_option) in
2472     let _3 = (Parsing.peek_val __caml_parser_env 0 : 'inout_option) in
2473     Obj.repr(
2474 # 482 "parser.mly"
2475       ( node (TypePrefix (_1, _2, _3)) )
2476 # 2477 "parser.ml"
2477                : 'type_prefix))
2478 ; (fun __caml_parser_env ->
2479     Obj.repr(
2480 # 487 "parser.mly"
2481       ( None )
2482 # 2483 "parser.ml"
2483                : 'flow_option))
2484 ; (fun __caml_parser_env ->
2485     Obj.repr(
2486 # 489 "parser.mly"
2487       ( Some Flow )
2488 # 2489 "parser.ml"
2489                : 'flow_option))
2490 ; (fun __caml_parser_env ->
2491     Obj.repr(
2492 # 494 "parser.mly"
2493       ( None )
2494 # 2495 "parser.ml"
2495                : 'variability_option))
2496 ; (fun __caml_parser_env ->
2497     Obj.repr(
2498 # 496 "parser.mly"
2499       ( Some Discrete )
2500 # 2501 "parser.ml"
2501                : 'variability_option))
2502 ; (fun __caml_parser_env ->
2503     Obj.repr(
2504 # 498 "parser.mly"
2505       ( Some Parameter )
2506 # 2507 "parser.ml"
2507                : 'variability_option))
2508 ; (fun __caml_parser_env ->
2509     Obj.repr(
2510 # 500 "parser.mly"
2511       ( Some Constant )
2512 # 2513 "parser.ml"
2513                : 'variability_option))
2514 ; (fun __caml_parser_env ->
2515     Obj.repr(
2516 # 505 "parser.mly"
2517       ( None )
2518 # 2519 "parser.ml"
2519                : 'inout_option))
2520 ; (fun __caml_parser_env ->
2521     Obj.repr(
2522 # 507 "parser.mly"
2523       ( Some Input )
2524 # 2525 "parser.ml"
2525                : 'inout_option))
2526 ; (fun __caml_parser_env ->
2527     Obj.repr(
2528 # 509 "parser.mly"
2529       ( Some Output )
2530 # 2531 "parser.ml"
2531                : 'inout_option))
2532 ; (fun __caml_parser_env ->
2533     let _1 = (Parsing.peek_val __caml_parser_env 0 : 'name) in
2534     Obj.repr(
2535 # 514 "parser.mly"
2536       ( _1 )
2537 # 2538 "parser.ml"
2538                : 'type_specifier))
2539 ; (fun __caml_parser_env ->
2540     let _1 = (Parsing.peek_val __caml_parser_env 0 : 'component_declaration) in
2541     Obj.repr(
2542 # 519 "parser.mly"
2543       ( [_1] )
2544 # 2545 "parser.ml"
2545                : 'component_list))
2546 ; (fun __caml_parser_env ->
2547     let _1 = (Parsing.peek_val __caml_parser_env 2 : 'component_list) in
2548     let _3 = (Parsing.peek_val __caml_parser_env 0 : 'component_declaration) in
2549     Obj.repr(
2550 # 521 "parser.mly"
2551       ( _3 :: _1 )
2552 # 2553 "parser.ml"
2553                : 'component_list))
2554 ; (fun __caml_parser_env ->
2555     let _1 = (Parsing.peek_val __caml_parser_env 1 : 'declaration) in
2556     let _2 = (Parsing.peek_val __caml_parser_env 0 : 'comment) in
2557     Obj.repr(
2558 # 526 "parser.mly"
2559       ( node (ComponentDeclaration (_1, _2)) )
2560 # 2561 "parser.ml"
2561                : 'component_declaration))
2562 ; (fun __caml_parser_env ->
2563     let _1 = (Parsing.peek_val __caml_parser_env 2 : string) in
2564     let _2 = (Parsing.peek_val __caml_parser_env 1 : 'array_subscripts_option) in
2565     let _3 = (Parsing.peek_val __caml_parser_env 0 : 'modification_option) in
2566     Obj.repr(
2567 # 531 "parser.mly"
2568       ( node (Declaration (_1, _2, _3)) )
2569 # 2570 "parser.ml"
2570                : 'declaration))
2571 ; (fun __caml_parser_env ->
2572     Obj.repr(
2573 # 536 "parser.mly"
2574       ( None )
2575 # 2576 "parser.ml"
2576                : 'modification_option))
2577 ; (fun __caml_parser_env ->
2578     let _1 = (Parsing.peek_val __caml_parser_env 0 : 'modification) in
2579     Obj.repr(
2580 # 538 "parser.mly"
2581       ( Some _1 )
2582 # 2583 "parser.ml"
2583                : 'modification_option))
2584 ; (fun __caml_parser_env ->
2585     let _1 = (Parsing.peek_val __caml_parser_env 2 : 'class_modification) in
2586     let _3 = (Parsing.peek_val __caml_parser_env 0 : 'expression) in
2587     Obj.repr(
2588 # 544 "parser.mly"
2589       ( node (Modification (_1, Some _3)) )
2590 # 2591 "parser.ml"
2591                : 'modification))
2592 ; (fun __caml_parser_env ->
2593     let _1 = (Parsing.peek_val __caml_parser_env 0 : 'class_modification) in
2594     Obj.repr(
2595 # 546 "parser.mly"
2596       ( node (Modification (_1, None)) )
2597 # 2598 "parser.ml"
2598                : 'modification))
2599 ; (fun __caml_parser_env ->
2600     let _2 = (Parsing.peek_val __caml_parser_env 0 : 'expression) in
2601     Obj.repr(
2602 # 548 "parser.mly"
2603       ( node (Eq _2) )
2604 # 2605 "parser.ml"
2605                : 'modification))
2606 ; (fun __caml_parser_env ->
2607     let _2 = (Parsing.peek_val __caml_parser_env 0 : 'expression) in
2608     Obj.repr(
2609 # 550 "parser.mly"
2610       ( node (ColEq _2) )
2611 # 2612 "parser.ml"
2612                : 'modification))
2613 ; (fun __caml_parser_env ->
2614     Obj.repr(
2615 # 555 "parser.mly"
2616       ( node (ClassModification []) )
2617 # 2618 "parser.ml"
2618                : 'class_modification))
2619 ; (fun __caml_parser_env ->
2620     let _2 = (Parsing.peek_val __caml_parser_env 1 : 'argument_list) in
2621     Obj.repr(
2622 # 557 "parser.mly"
2623       ( node (ClassModification (List.rev _2)) )
2624 # 2625 "parser.ml"
2625                : 'class_modification))
2626 ; (fun __caml_parser_env ->
2627     let _2 = (Parsing.peek_val __caml_parser_env 1 : 'argument_list) in
2628     Obj.repr(
2629 # 559 "parser.mly"
2630       ( unclosed "(" 1 ")" 3 )
2631 # 2632 "parser.ml"
2632                : 'class_modification))
2633 ; (fun __caml_parser_env ->
2634     Obj.repr(
2635 # 561 "parser.mly"
2636       ( unclosed "(" 1 ")" 2 )
2637 # 2638 "parser.ml"
2638                : 'class_modification))
2639 ; (fun __caml_parser_env ->
2640     let _1 = (Parsing.peek_val __caml_parser_env 0 : 'argument) in
2641     Obj.repr(
2642 # 566 "parser.mly"
2643       ( [_1] )
2644 # 2645 "parser.ml"
2645                : 'argument_list))
2646 ; (fun __caml_parser_env ->
2647     let _1 = (Parsing.peek_val __caml_parser_env 2 : 'argument) in
2648     let _3 = (Parsing.peek_val __caml_parser_env 0 : 'argument_list) in
2649     Obj.repr(
2650 # 568 "parser.mly"
2651       ( _1 :: _3 )
2652 # 2653 "parser.ml"
2653                : 'argument_list))
2654 ; (fun __caml_parser_env ->
2655     let _1 = (Parsing.peek_val __caml_parser_env 0 : 'element_modification) in
2656     Obj.repr(
2657 # 573 "parser.mly"
2658       ( _1 )
2659 # 2660 "parser.ml"
2660                : 'argument))
2661 ; (fun __caml_parser_env ->
2662     let _1 = (Parsing.peek_val __caml_parser_env 0 : 'element_redeclaration) in
2663     Obj.repr(
2664 # 575 "parser.mly"
2665       ( _1 )
2666 # 2667 "parser.ml"
2667                : 'argument))
2668 ; (fun __caml_parser_env ->
2669     let _1 = (Parsing.peek_val __caml_parser_env 4 : 'each_option) in
2670     let _2 = (Parsing.peek_val __caml_parser_env 3 : 'final_option) in
2671     let _3 = (Parsing.peek_val __caml_parser_env 2 : 'component_reference) in
2672     let _4 = (Parsing.peek_val __caml_parser_env 1 : 'modification_option) in
2673     let _5 = (Parsing.peek_val __caml_parser_env 0 : 'string_comment) in
2674     Obj.repr(
2675 # 581 "parser.mly"
2676       ( node (ElementModification (_1, _2, _3, _4, _5)) )
2677 # 2678 "parser.ml"
2678                : 'element_modification))
2679 ; (fun __caml_parser_env ->
2680     Obj.repr(
2681 # 586 "parser.mly"
2682       ( None )
2683 # 2684 "parser.ml"
2684                : 'each_option))
2685 ; (fun __caml_parser_env ->
2686     Obj.repr(
2687 # 588 "parser.mly"
2688       ( Some Each )
2689 # 2690 "parser.ml"
2690                : 'each_option))
2691 ; (fun __caml_parser_env ->
2692     let _2 = (Parsing.peek_val __caml_parser_env 2 : 'each_option) in
2693     let _3 = (Parsing.peek_val __caml_parser_env 1 : 'final_option) in
2694     let _4 = (Parsing.peek_val __caml_parser_env 0 : 'class_definition_or_component_clause1) in
2695     Obj.repr(
2696 # 593 "parser.mly"
2697       ( node (ElementRedeclaration (_2, _3, _4)) )
2698 # 2699 "parser.ml"
2699                : 'element_redeclaration))
2700 ; (fun __caml_parser_env ->
2701     let _1 = (Parsing.peek_val __caml_parser_env 0 : 'class_definition) in
2702     Obj.repr(
2703 # 598 "parser.mly"
2704       ( node (ClassDefinitionElement (None, _1, [])) )
2705 # 2706 "parser.ml"
2706                : 'class_definition_or_component_clause1))
2707 ; (fun __caml_parser_env ->
2708     let _1 = (Parsing.peek_val __caml_parser_env 2 : 'type_prefix) in
2709     let _2 = (Parsing.peek_val __caml_parser_env 1 : 'type_specifier) in
2710     let _3 = (Parsing.peek_val __caml_parser_env 0 : 'component_declaration) in
2711     Obj.repr(
2712 # 600 "parser.mly"
2713       ( let cpnt = node (ComponentClause (_1, _2, None, [_3])) in
2714         node (ComponentClauseElement (None, cpnt, [])) )
2715 # 2716 "parser.ml"
2716                : 'class_definition_or_component_clause1))
2717 ; (fun __caml_parser_env ->
2718     let _2 = (Parsing.peek_val __caml_parser_env 0 : 'class_definition) in
2719     Obj.repr(
2720 # 603 "parser.mly"
2721       ( node (ClassDefinitionElement (Some Replaceable, _2, [])) )
2722 # 2723 "parser.ml"
2723                : 'class_definition_or_component_clause1))
2724 ; (fun __caml_parser_env ->
2725     let _2 = (Parsing.peek_val __caml_parser_env 1 : 'class_definition) in
2726     let _3 = (Parsing.peek_val __caml_parser_env 0 : 'constraining_clauses) in
2727     Obj.repr(
2728 # 605 "parser.mly"
2729       ( node (ClassDefinitionElement (Some Replaceable, _2, List.rev _3)) )
2730 # 2731 "parser.ml"
2731                : 'class_definition_or_component_clause1))
2732 ; (fun __caml_parser_env ->
2733     let _2 = (Parsing.peek_val __caml_parser_env 2 : 'type_prefix) in
2734     let _3 = (Parsing.peek_val __caml_parser_env 1 : 'type_specifier) in
2735     let _4 = (Parsing.peek_val __caml_parser_env 0 : 'component_declaration) in
2736     Obj.repr(
2737 # 608 "parser.mly"
2738       ( let cpnt = node (ComponentClause (_2, _3, None, [_4])) in
2739         node (ComponentClauseElement (Some Replaceable, cpnt, [])) )
2740 # 2741 "parser.ml"
2741                : 'class_definition_or_component_clause1))
2742 ; (fun __caml_parser_env ->
2743     let _2 = (Parsing.peek_val __caml_parser_env 3 : 'type_prefix) in
2744     let _3 = (Parsing.peek_val __caml_parser_env 2 : 'type_specifier) in
2745     let _4 = (Parsing.peek_val __caml_parser_env 1 : 'component_declaration) in
2746     let _5 = (Parsing.peek_val __caml_parser_env 0 : 'constraining_clauses) in
2747     Obj.repr(
2748 # 612 "parser.mly"
2749       ( let cpnt = node (ComponentClause (_2, _3, None, [_4])) in
2750         node (ComponentClauseElement (Some Replaceable, cpnt, List.rev _5)) )
2751 # 2752 "parser.ml"
2752                : 'class_definition_or_component_clause1))
2753 ; (fun __caml_parser_env ->
2754     Obj.repr(
2755 # 619 "parser.mly"
2756       ( EquationClause (Some Initial, []) )
2757 # 2758 "parser.ml"
2758                : 'equation_clause))
2759 ; (fun __caml_parser_env ->
2760     let _2 = (Parsing.peek_val __caml_parser_env 0 : 'equations) in
2761     Obj.repr(
2762 # 621 "parser.mly"
2763       ( EquationClause (Some Initial, List.rev _2) )
2764 # 2765 "parser.ml"
2765                : 'equation_clause))
2766 ; (fun __caml_parser_env ->
2767     Obj.repr(
2768 # 623 "parser.mly"
2769       ( EquationClause (None, []) )
2770 # 2771 "parser.ml"
2771                : 'equation_clause))
2772 ; (fun __caml_parser_env ->
2773     let _2 = (Parsing.peek_val __caml_parser_env 0 : 'equations) in
2774     Obj.repr(
2775 # 625 "parser.mly"
2776       ( EquationClause (None, List.rev _2) )
2777 # 2778 "parser.ml"
2778                : 'equation_clause))
2779 ; (fun __caml_parser_env ->
2780     let _1 = (Parsing.peek_val __caml_parser_env 3 : 'equation) in
2781     let _2 = (Parsing.peek_val __caml_parser_env 2 : 'comment) in
2782     let _4 = (Parsing.peek_val __caml_parser_env 0 : 'annotation_sc_option) in
2783     Obj.repr(
2784 # 629 "parser.mly"
2785       ( [node (Equation (rhs_nodes 1 3 _1, _2, _4))] )
2786 # 2787 "parser.ml"
2787                : 'equations))
2788 ; (fun __caml_parser_env ->
2789     let _1 = (Parsing.peek_val __caml_parser_env 4 : 'equations) in
2790     let _2 = (Parsing.peek_val __caml_parser_env 3 : 'equation) in
2791     let _3 = (Parsing.peek_val __caml_parser_env 2 : 'comment) in
2792     let _5 = (Parsing.peek_val __caml_parser_env 0 : 'annotation_sc_option) in
2793     Obj.repr(
2794 # 631 "parser.mly"
2795       ( rhs_nodes 2 5 (Equation (rhs_nodes 2 4 _2, _3, _5)) :: _1 )
2796 # 2797 "parser.ml"
2797                : 'equations))
2798 ; (fun __caml_parser_env ->
2799     Obj.repr(
2800 # 636 "parser.mly"
2801       ( AlgorithmClause (Some Initial, []) )
2802 # 2803 "parser.ml"
2803                : 'algorithm_clause))
2804 ; (fun __caml_parser_env ->
2805     let _2 = (Parsing.peek_val __caml_parser_env 0 : 'algorithms) in
2806     Obj.repr(
2807 # 638 "parser.mly"
2808       ( AlgorithmClause (Some Initial, List.rev _2) )
2809 # 2810 "parser.ml"
2810                : 'algorithm_clause))
2811 ; (fun __caml_parser_env ->
2812     Obj.repr(
2813 # 640 "parser.mly"
2814       ( AlgorithmClause (None, []) )
2815 # 2816 "parser.ml"
2816                : 'algorithm_clause))
2817 ; (fun __caml_parser_env ->
2818     let _2 = (Parsing.peek_val __caml_parser_env 0 : 'algorithms) in
2819     Obj.repr(
2820 # 642 "parser.mly"
2821       ( AlgorithmClause (None, List.rev _2) )
2822 # 2823 "parser.ml"
2823                : 'algorithm_clause))
2824 ; (fun __caml_parser_env ->
2825     let _1 = (Parsing.peek_val __caml_parser_env 3 : 'algorithm) in
2826     let _2 = (Parsing.peek_val __caml_parser_env 2 : 'comment) in
2827     let _4 = (Parsing.peek_val __caml_parser_env 0 : 'annotation_sc_option) in
2828     Obj.repr(
2829 # 647 "parser.mly"
2830       ( [node (Algorithm (rhs_nodes 1 3 _1, _2, _4))] )
2831 # 2832 "parser.ml"
2832                : 'algorithms))
2833 ; (fun __caml_parser_env ->
2834     let _1 = (Parsing.peek_val __caml_parser_env 4 : 'algorithms) in
2835     let _2 = (Parsing.peek_val __caml_parser_env 3 : 'algorithm) in
2836     let _3 = (Parsing.peek_val __caml_parser_env 2 : 'comment) in
2837     let _5 = (Parsing.peek_val __caml_parser_env 0 : 'annotation_sc_option) in
2838     Obj.repr(
2839 # 649 "parser.mly"
2840       ( rhs_nodes 2 5 (Algorithm (rhs_nodes 2 4 _2, _3, _5)) :: _1 )
2841 # 2842 "parser.ml"
2842                : 'algorithms))
2843 ; (fun __caml_parser_env ->
2844     let _1 = (Parsing.peek_val __caml_parser_env 2 : 'simple_expression) in
2845     let _3 = (Parsing.peek_val __caml_parser_env 0 : 'expression) in
2846     Obj.repr(
2847 # 654 "parser.mly"
2848       ( Equal (_1, _3) )
2849 # 2850 "parser.ml"
2850                : 'equation))
2851 ; (fun __caml_parser_env ->
2852     let _1 = (Parsing.peek_val __caml_parser_env 0 : 'conditional_equation_e) in
2853     Obj.repr(
2854 # 656 "parser.mly"
2855       ( _1 )
2856 # 2857 "parser.ml"
2857                : 'equation))
2858 ; (fun __caml_parser_env ->
2859     let _1 = (Parsing.peek_val __caml_parser_env 0 : 'for_clause_e) in
2860     Obj.repr(
2861 # 658 "parser.mly"
2862       ( _1 )
2863 # 2864 "parser.ml"
2864                : 'equation))
2865 ; (fun __caml_parser_env ->
2866     let _1 = (Parsing.peek_val __caml_parser_env 0 : 'connect_clause) in
2867     Obj.repr(
2868 # 660 "parser.mly"
2869       ( _1 )
2870 # 2871 "parser.ml"
2871                : 'equation))
2872 ; (fun __caml_parser_env ->
2873     let _1 = (Parsing.peek_val __caml_parser_env 0 : 'when_clause_e) in
2874     Obj.repr(
2875 # 662 "parser.mly"
2876       ( _1 )
2877 # 2878 "parser.ml"
2878                : 'equation))
2879 ; (fun __caml_parser_env ->
2880     let _1 = (Parsing.peek_val __caml_parser_env 2 : 'component_reference) in
2881     Obj.repr(
2882 # 664 "parser.mly"
2883       ( FunctionCallE (_1, None) )
2884 # 2885 "parser.ml"
2885                : 'equation))
2886 ; (fun __caml_parser_env ->
2887     let _1 = (Parsing.peek_val __caml_parser_env 3 : 'component_reference) in
2888     let _3 = (Parsing.peek_val __caml_parser_env 1 : 'function_arguments) in
2889     Obj.repr(
2890 # 666 "parser.mly"
2891       ( FunctionCallE (_1, Some _3) )
2892 # 2893 "parser.ml"
2893                : 'equation))
2894 ; (fun __caml_parser_env ->
2895     let _1 = (Parsing.peek_val __caml_parser_env 3 : 'component_reference) in
2896     let _3 = (Parsing.peek_val __caml_parser_env 1 : 'function_arguments) in
2897     Obj.repr(
2898 # 668 "parser.mly"
2899       ( unclosed "(" 2 ")" 4 )
2900 # 2901 "parser.ml"
2901                : 'equation))
2902 ; (fun __caml_parser_env ->
2903     let _1 = (Parsing.peek_val __caml_parser_env 2 : 'component_reference) in
2904     Obj.repr(
2905 # 670 "parser.mly"
2906       ( unclosed "(" 2 ")" 3 )
2907 # 2908 "parser.ml"
2908                : 'equation))
2909 ; (fun __caml_parser_env ->
2910     let _1 = (Parsing.peek_val __caml_parser_env 2 : 'component_reference) in
2911     let _3 = (Parsing.peek_val __caml_parser_env 0 : 'expression) in
2912     Obj.repr(
2913 # 675 "parser.mly"
2914       ( Assign (_1, _3) )
2915 # 2916 "parser.ml"
2916                : 'algorithm))
2917 ; (fun __caml_parser_env ->
2918     let _1 = (Parsing.peek_val __caml_parser_env 2 : 'component_reference) in
2919     Obj.repr(
2920 # 677 "parser.mly"
2921       ( FunctionCallA (_1, None) )
2922 # 2923 "parser.ml"
2923                : 'algorithm))
2924 ; (fun __caml_parser_env ->
2925     let _1 = (Parsing.peek_val __caml_parser_env 3 : 'component_reference) in
2926     let _3 = (Parsing.peek_val __caml_parser_env 1 : 'function_arguments) in
2927     Obj.repr(
2928 # 679 "parser.mly"
2929       ( FunctionCallA (_1, Some _3) )
2930 # 2931 "parser.ml"
2931                : 'algorithm))
2932 ; (fun __caml_parser_env ->
2933     let _1 = (Parsing.peek_val __caml_parser_env 3 : 'component_reference) in
2934     let _3 = (Parsing.peek_val __caml_parser_env 1 : 'function_arguments) in
2935     Obj.repr(
2936 # 681 "parser.mly"
2937       ( unclosed "(" 2 ")" 4 )
2938 # 2939 "parser.ml"
2939                : 'algorithm))
2940 ; (fun __caml_parser_env ->
2941     let _1 = (Parsing.peek_val __caml_parser_env 2 : 'component_reference) in
2942     Obj.repr(
2943 # 683 "parser.mly"
2944       ( unclosed "(" 2 ")" 3 )
2945 # 2946 "parser.ml"
2946                : 'algorithm))
2947 ; (fun __caml_parser_env ->
2948     let _2 = (Parsing.peek_val __caml_parser_env 5 : 'expression_list) in
2949     let _5 = (Parsing.peek_val __caml_parser_env 2 : 'component_reference) in
2950     Obj.repr(
2951 # 685 "parser.mly"
2952       ( MultipleAssign (_2, _5, None) )
2953 # 2954 "parser.ml"
2954                : 'algorithm))
2955 ; (fun __caml_parser_env ->
2956     let _4 = (Parsing.peek_val __caml_parser_env 2 : 'component_reference) in
2957     Obj.repr(
2958 # 687 "parser.mly"
2959       ( MultipleAssign ([], _4, None) )
2960 # 2961 "parser.ml"
2961                : 'algorithm))
2962 ; (fun __caml_parser_env ->
2963     let _2 = (Parsing.peek_val __caml_parser_env 6 : 'expression_list) in
2964     let _5 = (Parsing.peek_val __caml_parser_env 3 : 'component_reference) in
2965     let _7 = (Parsing.peek_val __caml_parser_env 1 : 'function_arguments) in
2966     Obj.repr(
2967 # 689 "parser.mly"
2968       ( MultipleAssign (_2, _5, Some _7) )
2969 # 2970 "parser.ml"
2970                : 'algorithm))
2971 ; (fun __caml_parser_env ->
2972     let _4 = (Parsing.peek_val __caml_parser_env 3 : 'component_reference) in
2973     let _6 = (Parsing.peek_val __caml_parser_env 1 : 'function_arguments) in
2974     Obj.repr(
2975 # 691 "parser.mly"
2976       ( MultipleAssign ([], _4, Some _6) )
2977 # 2978 "parser.ml"
2978                : 'algorithm))
2979 ; (fun __caml_parser_env ->
2980     let _2 = (Parsing.peek_val __caml_parser_env 6 : 'expression_list) in
2981     let _5 = (Parsing.peek_val __caml_parser_env 3 : 'component_reference) in
2982     let _7 = (Parsing.peek_val __caml_parser_env 1 : 'function_arguments) in
2983     Obj.repr(
2984 # 694 "parser.mly"
2985       ( unclosed "(" 6 ")" 8 )
2986 # 2987 "parser.ml"
2987                : 'algorithm))
2988 ; (fun __caml_parser_env ->
2989     let _4 = (Parsing.peek_val __caml_parser_env 3 : 'component_reference) in
2990     let _6 = (Parsing.peek_val __caml_parser_env 1 : 'function_arguments) in
2991     Obj.repr(
2992 # 696 "parser.mly"
2993       ( unclosed "(" 5 ")" 7 )
2994 # 2995 "parser.ml"
2995                : 'algorithm))
2996 ; (fun __caml_parser_env ->
2997     let _2 = (Parsing.peek_val __caml_parser_env 5 : 'expression_list) in
2998     let _5 = (Parsing.peek_val __caml_parser_env 2 : 'component_reference) in
2999     Obj.repr(
3000 # 698 "parser.mly"
3001       ( unclosed "(" 6 ")" 7 )
3002 # 3003 "parser.ml"
3003                : 'algorithm))
3004 ; (fun __caml_parser_env ->
3005     let _4 = (Parsing.peek_val __caml_parser_env 2 : 'component_reference) in
3006     Obj.repr(
3007 # 700 "parser.mly"
3008       ( unclosed "(" 5 ")" 6 )
3009 # 3010 "parser.ml"
3010                : 'algorithm))
3011 ; (fun __caml_parser_env ->
3012     let _2 = (Parsing.peek_val __caml_parser_env 1 : 'expression_list) in
3013     Obj.repr(
3014 # 702 "parser.mly"
3015       ( unclosed "(" 1 ")" 3 )
3016 # 3017 "parser.ml"
3017                : 'algorithm))
3018 ; (fun __caml_parser_env ->
3019     Obj.repr(
3020 # 704 "parser.mly"
3021       ( unclosed "(" 1 ")" 2 )
3022 # 3023 "parser.ml"
3023                : 'algorithm))
3024 ; (fun __caml_parser_env ->
3025     Obj.repr(
3026 # 706 "parser.mly"
3027       ( Break )
3028 # 3029 "parser.ml"
3029                : 'algorithm))
3030 ; (fun __caml_parser_env ->
3031     Obj.repr(
3032 # 708 "parser.mly"
3033       ( Return )
3034 # 3035 "parser.ml"
3035                : 'algorithm))
3036 ; (fun __caml_parser_env ->
3037     let _1 = (Parsing.peek_val __caml_parser_env 0 : 'conditional_equation_a) in
3038     Obj.repr(
3039 # 710 "parser.mly"
3040       ( _1 )
3041 # 3042 "parser.ml"
3042                : 'algorithm))
3043 ; (fun __caml_parser_env ->
3044     let _1 = (Parsing.peek_val __caml_parser_env 0 : 'for_clause_a) in
3045     Obj.repr(
3046 # 712 "parser.mly"
3047       ( _1 )
3048 # 3049 "parser.ml"
3049                : 'algorithm))
3050 ; (fun __caml_parser_env ->
3051     let _1 = (Parsing.peek_val __caml_parser_env 0 : 'while_clause) in
3052     Obj.repr(
3053 # 714 "parser.mly"
3054       ( _1 )
3055 # 3056 "parser.ml"
3056                : 'algorithm))
3057 ; (fun __caml_parser_env ->
3058     let _1 = (Parsing.peek_val __caml_parser_env 0 : 'when_clause_a) in
3059     Obj.repr(
3060 # 716 "parser.mly"
3061       ( _1 )
3062 # 3063 "parser.ml"
3063                : 'algorithm))
3064 ; (fun __caml_parser_env ->
3065     let _2 = (Parsing.peek_val __caml_parser_env 5 : 'expression) in
3066     let _4 = (Parsing.peek_val __caml_parser_env 3 : 'equations_e) in
3067     let _5 = (Parsing.peek_val __caml_parser_env 2 : 'else_if_expressions_e) in
3068     let _6 = (Parsing.peek_val __caml_parser_env 1 : 'else_option_e) in
3069     Obj.repr(
3070 # 725 "parser.mly"
3071       ( ConditionalEquationE ((_2, List.rev _4) :: _5, _6) )
3072 # 3073 "parser.ml"
3073                : 'conditional_equation_e))
3074 ; (fun __caml_parser_env ->
3075     Obj.repr(
3076 # 730 "parser.mly"
3077       ( [] )
3078 # 3079 "parser.ml"
3079                : 'else_if_expressions_e))
3080 ; (fun __caml_parser_env ->
3081     let _2 = (Parsing.peek_val __caml_parser_env 3 : 'expression) in
3082     let _4 = (Parsing.peek_val __caml_parser_env 1 : 'equations_e) in
3083     let _5 = (Parsing.peek_val __caml_parser_env 0 : 'else_if_expressions_e) in
3084     Obj.repr(
3085 # 734 "parser.mly"
3086       ( (_2, List.rev _4) :: _5 )
3087 # 3088 "parser.ml"
3088                : 'else_if_expressions_e))
3089 ; (fun __caml_parser_env ->
3090     Obj.repr(
3091 # 739 "parser.mly"
3092       ( None )
3093 # 3094 "parser.ml"
3094                : 'else_option_e))
3095 ; (fun __caml_parser_env ->
3096     let _2 = (Parsing.peek_val __caml_parser_env 0 : 'equations_e) in
3097     Obj.repr(
3098 # 741 "parser.mly"
3099       ( Some (List.rev _2) )
3100 # 3101 "parser.ml"
3101                : 'else_option_e))
3102 ; (fun __caml_parser_env ->
3103     let _1 = (Parsing.peek_val __caml_parser_env 1 : 'equation) in
3104     Obj.repr(
3105 # 746 "parser.mly"
3106       ( [node _1] )
3107 # 3108 "parser.ml"
3108                : 'equations_e))
3109 ; (fun __caml_parser_env ->
3110     let _1 = (Parsing.peek_val __caml_parser_env 2 : 'equations_e) in
3111     let _2 = (Parsing.peek_val __caml_parser_env 1 : 'equation) in
3112     Obj.repr(
3113 # 748 "parser.mly"
3114       ( rhs_nodes 2 3 _2 :: _1 )
3115 # 3116 "parser.ml"
3116                : 'equations_e))
3117 ; (fun __caml_parser_env ->
3118     let _2 = (Parsing.peek_val __caml_parser_env 5 : 'expression) in
3119     let _4 = (Parsing.peek_val __caml_parser_env 3 : 'algorithms_a) in
3120     let _5 = (Parsing.peek_val __caml_parser_env 2 : 'else_if_expressions_a) in
3121     let _6 = (Parsing.peek_val __caml_parser_env 1 : 'else_option_a) in
3122     Obj.repr(
3123 # 757 "parser.mly"
3124       ( ConditionalEquationA ((_2, List.rev _4) :: _5, _6) )
3125 # 3126 "parser.ml"
3126                : 'conditional_equation_a))
3127 ; (fun __caml_parser_env ->
3128     Obj.repr(
3129 # 762 "parser.mly"
3130       ( [] )
3131 # 3132 "parser.ml"
3132                : 'else_if_expressions_a))
3133 ; (fun __caml_parser_env ->
3134     let _2 = (Parsing.peek_val __caml_parser_env 3 : 'expression) in
3135     let _4 = (Parsing.peek_val __caml_parser_env 1 : 'algorithms_a) in
3136     let _5 = (Parsing.peek_val __caml_parser_env 0 : 'else_if_expressions_a) in
3137     Obj.repr(
3138 # 766 "parser.mly"
3139       ( (_2, List.rev _4) :: _5 )
3140 # 3141 "parser.ml"
3141                : 'else_if_expressions_a))
3142 ; (fun __caml_parser_env ->
3143     Obj.repr(
3144 # 771 "parser.mly"
3145       ( None )
3146 # 3147 "parser.ml"
3147                : 'else_option_a))
3148 ; (fun __caml_parser_env ->
3149     let _2 = (Parsing.peek_val __caml_parser_env 0 : 'algorithms_a) in
3150     Obj.repr(
3151 # 773 "parser.mly"
3152       ( Some (List.rev _2) )
3153 # 3154 "parser.ml"
3154                : 'else_option_a))
3155 ; (fun __caml_parser_env ->
3156     let _1 = (Parsing.peek_val __caml_parser_env 1 : 'algorithm) in
3157     Obj.repr(
3158 # 778 "parser.mly"
3159       ( [node _1] )
3160 # 3161 "parser.ml"
3161                : 'algorithms_a))
3162 ; (fun __caml_parser_env ->
3163     let _1 = (Parsing.peek_val __caml_parser_env 2 : 'algorithms_a) in
3164     let _2 = (Parsing.peek_val __caml_parser_env 1 : 'algorithm) in
3165     Obj.repr(
3166 # 780 "parser.mly"
3167       ( rhs_nodes 2 3 _2 :: _1 )
3168 # 3169 "parser.ml"
3169                : 'algorithms_a))
3170 ; (fun __caml_parser_env ->
3171     let _2 = (Parsing.peek_val __caml_parser_env 3 : 'for_indices) in
3172     let _4 = (Parsing.peek_val __caml_parser_env 1 : 'equations_e) in
3173     Obj.repr(
3174 # 787 "parser.mly"
3175       ( ForClauseE (_2, List.rev _4) )
3176 # 3177 "parser.ml"
3177                : 'for_clause_e))
3178 ; (fun __caml_parser_env ->
3179     let _2 = (Parsing.peek_val __caml_parser_env 3 : 'for_indices) in
3180     let _4 = (Parsing.peek_val __caml_parser_env 1 : 'algorithms_a) in
3181     Obj.repr(
3182 # 794 "parser.mly"
3183       ( ForClauseA (_2, List.rev _4) )
3184 # 3185 "parser.ml"
3185                : 'for_clause_a))
3186 ; (fun __caml_parser_env ->
3187     let _1 = (Parsing.peek_val __caml_parser_env 0 : 'for_index) in
3188     Obj.repr(
3189 # 799 "parser.mly"
3190       ( [_1] )
3191 # 3192 "parser.ml"
3192                : 'for_indices))
3193 ; (fun __caml_parser_env ->
3194     let _1 = (Parsing.peek_val __caml_parser_env 2 : 'for_index) in
3195     let _3 = (Parsing.peek_val __caml_parser_env 0 : 'for_indices) in
3196     Obj.repr(
3197 # 801 "parser.mly"
3198       ( _1 :: _3 )
3199 # 3200 "parser.ml"
3200                : 'for_indices))
3201 ; (fun __caml_parser_env ->
3202     let _1 = (Parsing.peek_val __caml_parser_env 0 : string) in
3203     Obj.repr(
3204 # 806 "parser.mly"
3205       ( (_1, None) )
3206 # 3207 "parser.ml"
3207                : 'for_index))
3208 ; (fun __caml_parser_env ->
3209     let _1 = (Parsing.peek_val __caml_parser_env 2 : string) in
3210     let _3 = (Parsing.peek_val __caml_parser_env 0 : 'expression) in
3211     Obj.repr(
3212 # 808 "parser.mly"
3213       ( (_1, Some _3) )
3214 # 3215 "parser.ml"
3215                : 'for_index))
3216 ; (fun __caml_parser_env ->
3217     let _2 = (Parsing.peek_val __caml_parser_env 3 : 'expression) in
3218     let _4 = (Parsing.peek_val __caml_parser_env 1 : 'algorithms_a) in
3219     Obj.repr(
3220 # 815 "parser.mly"
3221       ( WhileClause (_2, List.rev _4) )
3222 # 3223 "parser.ml"
3223                : 'while_clause))
3224 ; (fun __caml_parser_env ->
3225     let _2 = (Parsing.peek_val __caml_parser_env 4 : 'expression) in
3226     let _4 = (Parsing.peek_val __caml_parser_env 2 : 'equations_e) in
3227     let _5 = (Parsing.peek_val __caml_parser_env 1 : 'else_when_expressions_e) in
3228     Obj.repr(
3229 # 823 "parser.mly"
3230       ( WhenClauseE ((_2, List.rev _4) :: _5) )
3231 # 3232 "parser.ml"
3232                : 'when_clause_e))
3233 ; (fun __caml_parser_env ->
3234     let _2 = (Parsing.peek_val __caml_parser_env 4 : 'expression) in
3235     let _4 = (Parsing.peek_val __caml_parser_env 2 : 'algorithms_a) in
3236     let _5 = (Parsing.peek_val __caml_parser_env 1 : 'else_when_expressions_a) in
3237     Obj.repr(
3238 # 831 "parser.mly"
3239       ( WhenClauseA ((_2, List.rev _4) :: _5) )
3240 # 3241 "parser.ml"
3241                : 'when_clause_a))
3242 ; (fun __caml_parser_env ->
3243     Obj.repr(
3244 # 836 "parser.mly"
3245       ( [] )
3246 # 3247 "parser.ml"
3247                : 'else_when_expressions_e))
3248 ; (fun __caml_parser_env ->
3249     let _2 = (Parsing.peek_val __caml_parser_env 3 : 'expression) in
3250     let _4 = (Parsing.peek_val __caml_parser_env 1 : 'equations_e) in
3251     let _5 = (Parsing.peek_val __caml_parser_env 0 : 'else_when_expressions_e) in
3252     Obj.repr(
3253 # 840 "parser.mly"
3254       ( (_2, List.rev _4) :: _5 )
3255 # 3256 "parser.ml"
3256                : 'else_when_expressions_e))
3257 ; (fun __caml_parser_env ->
3258     Obj.repr(
3259 # 845 "parser.mly"
3260       ( [] )
3261 # 3262 "parser.ml"
3262                : 'else_when_expressions_a))
3263 ; (fun __caml_parser_env ->
3264     let _2 = (Parsing.peek_val __caml_parser_env 3 : 'expression) in
3265     let _4 = (Parsing.peek_val __caml_parser_env 1 : 'algorithms_a) in
3266     let _5 = (Parsing.peek_val __caml_parser_env 0 : 'else_when_expressions_a) in
3267     Obj.repr(
3268 # 849 "parser.mly"
3269       ( (_2, List.rev _4) :: _5 )
3270 # 3271 "parser.ml"
3271                : 'else_when_expressions_a))
3272 ; (fun __caml_parser_env ->
3273     let _3 = (Parsing.peek_val __caml_parser_env 3 : 'component_reference) in
3274     let _5 = (Parsing.peek_val __caml_parser_env 1 : 'component_reference) in
3275     Obj.repr(
3276 # 854 "parser.mly"
3277       ( ConnectClause (_3, _5) )
3278 # 3279 "parser.ml"
3279                : 'connect_clause))
3280 ; (fun __caml_parser_env ->
3281     let _3 = (Parsing.peek_val __caml_parser_env 3 : 'component_reference) in
3282     let _5 = (Parsing.peek_val __caml_parser_env 1 : 'component_reference) in
3283     Obj.repr(
3284 # 856 "parser.mly"
3285       ( unclosed "(" 2 ")" 6 )
3286 # 3287 "parser.ml"
3287                : 'connect_clause))
3288 ; (fun __caml_parser_env ->
3289     let _1 = (Parsing.peek_val __caml_parser_env 0 : 'simple_expression) in
3290     Obj.repr(
3291 # 862 "parser.mly"
3292       ( _1 )
3293 # 3294 "parser.ml"
3294                : 'expression))
3295 ; (fun __caml_parser_env ->
3296     let _2 = (Parsing.peek_val __caml_parser_env 5 : 'expression) in
3297     let _4 = (Parsing.peek_val __caml_parser_env 3 : 'expression) in
3298     let _5 = (Parsing.peek_val __caml_parser_env 2 : 'elseifs_option) in
3299     let _7 = (Parsing.peek_val __caml_parser_env 0 : 'expression) in
3300     Obj.repr(
3301 # 866 "parser.mly"
3302       ( node (If ((_2, _4) :: _5, _7)) )
3303 # 3304 "parser.ml"
3304                : 'expression))
3305 ; (fun __caml_parser_env ->
3306     Obj.repr(
3307 # 871 "parser.mly"
3308       ( [] )
3309 # 3310 "parser.ml"
3310                : 'elseifs_option))
3311 ; (fun __caml_parser_env ->
3312     let _2 = (Parsing.peek_val __caml_parser_env 3 : 'expression) in
3313     let _4 = (Parsing.peek_val __caml_parser_env 1 : 'expression) in
3314     let _5 = (Parsing.peek_val __caml_parser_env 0 : 'elseifs_option) in
3315     Obj.repr(
3316 # 874 "parser.mly"
3317       ( (_2, _4) :: _5 )
3318 # 3319 "parser.ml"
3319                : 'elseifs_option))
3320 ; (fun __caml_parser_env ->
3321     let _1 = (Parsing.peek_val __caml_parser_env 0 : 'logical_expression) in
3322     Obj.repr(
3323 # 879 "parser.mly"
3324       ( _1 )
3325 # 3326 "parser.ml"
3326                : 'simple_expression))
3327 ; (fun __caml_parser_env ->
3328     let _1 = (Parsing.peek_val __caml_parser_env 2 : 'logical_expression) in
3329     let _3 = (Parsing.peek_val __caml_parser_env 0 : 'logical_expression) in
3330     Obj.repr(
3331 # 881 "parser.mly"
3332       ( node (Range (_1, None, _3)) )
3333 # 3334 "parser.ml"
3334                : 'simple_expression))
3335 ; (fun __caml_parser_env ->
3336     let _1 = (Parsing.peek_val __caml_parser_env 4 : 'logical_expression) in
3337     let _3 = (Parsing.peek_val __caml_parser_env 2 : 'logical_expression) in
3338     let _5 = (Parsing.peek_val __caml_parser_env 0 : 'logical_expression) in
3339     Obj.repr(
3340 # 883 "parser.mly"
3341       ( node (Range (_1, Some _3, _5)) )
3342 # 3343 "parser.ml"
3343                : 'simple_expression))
3344 ; (fun __caml_parser_env ->
3345     let _1 = (Parsing.peek_val __caml_parser_env 0 : 'logical_term) in
3346     Obj.repr(
3347 # 888 "parser.mly"
3348       ( _1 )
3349 # 3350 "parser.ml"
3350                : 'logical_expression))
3351 ; (fun __caml_parser_env ->
3352     let _1 = (Parsing.peek_val __caml_parser_env 2 : 'logical_expression) in
3353     let _3 = (Parsing.peek_val __caml_parser_env 0 : 'logical_term) in
3354     Obj.repr(
3355 # 890 "parser.mly"
3356       ( node (BinaryOperation (rhs_nodes 2 2 Or, _1, _3)) )
3357 # 3358 "parser.ml"
3358                : 'logical_expression))
3359 ; (fun __caml_parser_env ->
3360     let _1 = (Parsing.peek_val __caml_parser_env 0 : 'logical_factor) in
3361     Obj.repr(
3362 # 895 "parser.mly"
3363       ( _1 )
3364 # 3365 "parser.ml"
3365                : 'logical_term))
3366 ; (fun __caml_parser_env ->
3367     let _1 = (Parsing.peek_val __caml_parser_env 2 : 'logical_term) in
3368     let _3 = (Parsing.peek_val __caml_parser_env 0 : 'logical_factor) in
3369     Obj.repr(
3370 # 897 "parser.mly"
3371       ( node (BinaryOperation (rhs_nodes 2 2 And, _1, _3)) )
3372 # 3373 "parser.ml"
3373                : 'logical_term))
3374 ; (fun __caml_parser_env ->
3375     let _1 = (Parsing.peek_val __caml_parser_env 0 : 'relation) in
3376     Obj.repr(
3377 # 902 "parser.mly"
3378       ( _1 )
3379 # 3380 "parser.ml"
3380                : 'logical_factor))
3381 ; (fun __caml_parser_env ->
3382     let _2 = (Parsing.peek_val __caml_parser_env 0 : 'relation) in
3383     Obj.repr(
3384 # 904 "parser.mly"
3385       ( node (UnaryOperation (rhs_nodes 1 1 Not, _2)) )
3386 # 3387 "parser.ml"
3387                : 'logical_factor))
3388 ; (fun __caml_parser_env ->
3389     let _1 = (Parsing.peek_val __caml_parser_env 0 : 'arithmetic_expression) in
3390     Obj.repr(
3391 # 909 "parser.mly"
3392       ( _1 )
3393 # 3394 "parser.ml"
3394                : 'relation))
3395 ; (fun __caml_parser_env ->
3396     let _1 = (Parsing.peek_val __caml_parser_env 2 : 'arithmetic_expression) in
3397     let _3 = (Parsing.peek_val __caml_parser_env 0 : 'arithmetic_expression) in
3398     Obj.repr(
3399 # 911 "parser.mly"
3400       ( node (BinaryOperation (rhs_nodes 2 2 Less, _1, _3)) )
3401 # 3402 "parser.ml"
3402                : 'relation))
3403 ; (fun __caml_parser_env ->
3404     let _1 = (Parsing.peek_val __caml_parser_env 2 : 'arithmetic_expression) in
3405     let _3 = (Parsing.peek_val __caml_parser_env 0 : 'arithmetic_expression) in
3406     Obj.repr(
3407 # 913 "parser.mly"
3408       ( node (BinaryOperation (rhs_nodes 2 2 Greater, _1, _3)) )
3409 # 3410 "parser.ml"
3410                : 'relation))
3411 ; (fun __caml_parser_env ->
3412     let _1 = (Parsing.peek_val __caml_parser_env 2 : 'arithmetic_expression) in
3413     let _3 = (Parsing.peek_val __caml_parser_env 0 : 'arithmetic_expression) in
3414     Obj.repr(
3415 # 915 "parser.mly"
3416       ( node (BinaryOperation (rhs_nodes 2 2 LessEqual, _1, _3)) )
3417 # 3418 "parser.ml"
3418                : 'relation))
3419 ; (fun __caml_parser_env ->
3420     let _1 = (Parsing.peek_val __caml_parser_env 2 : 'arithmetic_expression) in
3421     let _3 = (Parsing.peek_val __caml_parser_env 0 : 'arithmetic_expression) in
3422     Obj.repr(
3423 # 917 "parser.mly"
3424       ( node (BinaryOperation (rhs_nodes 2 2 GreaterEqual, _1, _3)) )
3425 # 3426 "parser.ml"
3426                : 'relation))
3427 ; (fun __caml_parser_env ->
3428     let _1 = (Parsing.peek_val __caml_parser_env 2 : 'arithmetic_expression) in
3429     let _3 = (Parsing.peek_val __caml_parser_env 0 : 'arithmetic_expression) in
3430     Obj.repr(
3431 # 919 "parser.mly"
3432       ( node (BinaryOperation (rhs_nodes 2 2 EqualEqual, _1, _3)) )
3433 # 3434 "parser.ml"
3434                : 'relation))
3435 ; (fun __caml_parser_env ->
3436     let _1 = (Parsing.peek_val __caml_parser_env 2 : 'arithmetic_expression) in
3437     let _3 = (Parsing.peek_val __caml_parser_env 0 : 'arithmetic_expression) in
3438     Obj.repr(
3439 # 921 "parser.mly"
3440       ( node (BinaryOperation (rhs_nodes 2 2 NotEqual, _1, _3)) )
3441 # 3442 "parser.ml"
3442                : 'relation))
3443 ; (fun __caml_parser_env ->
3444     let _1 = (Parsing.peek_val __caml_parser_env 0 : 'term) in
3445     Obj.repr(
3446 # 926 "parser.mly"
3447       ( _1 )
3448 # 3449 "parser.ml"
3449                : 'arithmetic_expression))
3450 ; (fun __caml_parser_env ->
3451     let _1 = (Parsing.peek_val __caml_parser_env 2 : 'arithmetic_expression) in
3452     let _3 = (Parsing.peek_val __caml_parser_env 0 : 'term) in
3453     Obj.repr(
3454 # 928 "parser.mly"
3455       ( node (BinaryOperation (rhs_nodes 2 2 Plus, _1, _3)) )
3456 # 3457 "parser.ml"
3457                : 'arithmetic_expression))
3458 ; (fun __caml_parser_env ->
3459     let _1 = (Parsing.peek_val __caml_parser_env 2 : 'arithmetic_expression) in
3460     let _3 = (Parsing.peek_val __caml_parser_env 0 : 'term) in
3461     Obj.repr(
3462 # 930 "parser.mly"
3463       ( node (BinaryOperation (rhs_nodes 2 2 Minus, _1, _3)) )
3464 # 3465 "parser.ml"
3465                : 'arithmetic_expression))
3466 ; (fun __caml_parser_env ->
3467     let _1 = (Parsing.peek_val __caml_parser_env 0 : 'unary_factor) in
3468     Obj.repr(
3469 # 935 "parser.mly"
3470       ( _1 )
3471 # 3472 "parser.ml"
3472                : 'term))
3473 ; (fun __caml_parser_env ->
3474     let _1 = (Parsing.peek_val __caml_parser_env 2 : 'term) in
3475     let _3 = (Parsing.peek_val __caml_parser_env 0 : 'unary_factor) in
3476     Obj.repr(
3477 # 937 "parser.mly"
3478       ( node (BinaryOperation (rhs_nodes 2 2 Times, _1, _3)) )
3479 # 3480 "parser.ml"
3480                : 'term))
3481 ; (fun __caml_parser_env ->
3482     let _1 = (Parsing.peek_val __caml_parser_env 2 : 'term) in
3483     let _3 = (Parsing.peek_val __caml_parser_env 0 : 'unary_factor) in
3484     Obj.repr(
3485 # 939 "parser.mly"
3486       ( node (BinaryOperation (rhs_nodes 2 2 Divide, _1, _3)) )
3487 # 3488 "parser.ml"
3488                : 'term))
3489 ; (fun __caml_parser_env ->
3490     let _1 = (Parsing.peek_val __caml_parser_env 0 : 'factor) in
3491     Obj.repr(
3492 # 944 "parser.mly"
3493       ( _1 )
3494 # 3495 "parser.ml"
3495                : 'unary_factor))
3496 ; (fun __caml_parser_env ->
3497     let _2 = (Parsing.peek_val __caml_parser_env 0 : 'unary_factor) in
3498     Obj.repr(
3499 # 946 "parser.mly"
3500       ( node (UnaryOperation (rhs_nodes 1 1 UnaryPlus, _2)) )
3501 # 3502 "parser.ml"
3502                : 'unary_factor))
3503 ; (fun __caml_parser_env ->
3504     let _2 = (Parsing.peek_val __caml_parser_env 0 : 'unary_factor) in
3505     Obj.repr(
3506 # 948 "parser.mly"
3507       ( node (UnaryOperation (rhs_nodes 1 1 UnaryMinus, _2)) )
3508 # 3509 "parser.ml"
3509                : 'unary_factor))
3510 ; (fun __caml_parser_env ->
3511     let _1 = (Parsing.peek_val __caml_parser_env 0 : 'primary) in
3512     Obj.repr(
3513 # 952 "parser.mly"
3514       ( _1 )
3515 # 3516 "parser.ml"
3516                : 'factor))
3517 ; (fun __caml_parser_env ->
3518     let _1 = (Parsing.peek_val __caml_parser_env 2 : 'factor) in
3519     let _3 = (Parsing.peek_val __caml_parser_env 0 : 'primary) in
3520     Obj.repr(
3521 # 954 "parser.mly"
3522       ( node (BinaryOperation (rhs_nodes 2 2 Power, _1, _3)) )
3523 # 3524 "parser.ml"
3524                : 'factor))
3525 ; (fun __caml_parser_env ->
3526     let _1 = (Parsing.peek_val __caml_parser_env 0 : string) in
3527     Obj.repr(
3528 # 959 "parser.mly"
3529       ( node (Integer _1) )
3530 # 3531 "parser.ml"
3531                : 'primary))
3532 ; (fun __caml_parser_env ->
3533     let _1 = (Parsing.peek_val __caml_parser_env 0 : string) in
3534     Obj.repr(
3535 # 961 "parser.mly"
3536       ( node (Real _1) )
3537 # 3538 "parser.ml"
3538                : 'primary))
3539 ; (fun __caml_parser_env ->
3540     let _1 = (Parsing.peek_val __caml_parser_env 0 : string) in
3541     Obj.repr(
3542 # 963 "parser.mly"
3543       ( node (String _1) )
3544 # 3545 "parser.ml"
3545                : 'primary))
3546 ; (fun __caml_parser_env ->
3547     Obj.repr(
3548 # 965 "parser.mly"
3549       ( node False )
3550 # 3551 "parser.ml"
3551                : 'primary))
3552 ; (fun __caml_parser_env ->
3553     Obj.repr(
3554 # 967 "parser.mly"
3555       ( node True )
3556 # 3557 "parser.ml"
3557                : 'primary))
3558 ; (fun __caml_parser_env ->
3559     let _3 = (Parsing.peek_val __caml_parser_env 1 : 'expression) in
3560     Obj.repr(
3561 # 969 "parser.mly"
3562       ( node (NoEvent _3) )
3563 # 3564 "parser.ml"
3564                : 'primary))
3565 ; (fun __caml_parser_env ->
3566     let _1 = (Parsing.peek_val __caml_parser_env 0 : 'component_reference) in
3567     Obj.repr(
3568 # 971 "parser.mly"
3569       ( _1 )
3570 # 3571 "parser.ml"
3571                : 'primary))
3572 ; (fun __caml_parser_env ->
3573     let _1 = (Parsing.peek_val __caml_parser_env 2 : 'component_reference) in
3574     Obj.repr(
3575 # 973 "parser.mly"
3576       ( node (FunctionCall (_1, None)) )
3577 # 3578 "parser.ml"
3578                : 'primary))
3579 ; (fun __caml_parser_env ->
3580     let _1 = (Parsing.peek_val __caml_parser_env 3 : 'component_reference) in
3581     let _3 = (Parsing.peek_val __caml_parser_env 1 : 'function_arguments) in
3582     Obj.repr(
3583 # 975 "parser.mly"
3584       ( node (FunctionCall (_1, Some _3)) )
3585 # 3586 "parser.ml"
3586                : 'primary))
3587 ; (fun __caml_parser_env ->
3588     let _1 = (Parsing.peek_val __caml_parser_env 3 : 'component_reference) in
3589     let _3 = (Parsing.peek_val __caml_parser_env 1 : 'function_arguments) in
3590     Obj.repr(
3591 # 977 "parser.mly"
3592       ( unclosed "(" 2 ")" 4 )
3593 # 3594 "parser.ml"
3594                : 'primary))
3595 ; (fun __caml_parser_env ->
3596     let _1 = (Parsing.peek_val __caml_parser_env 2 : 'component_reference) in
3597     Obj.repr(
3598 # 979 "parser.mly"
3599       ( unclosed "(" 2 ")" 3 )
3600 # 3601 "parser.ml"
3601                : 'primary))
3602 ; (fun __caml_parser_env ->
3603     let _2 = (Parsing.peek_val __caml_parser_env 1 : 'expression_list) in
3604     Obj.repr(
3605 # 981 "parser.mly"
3606       ( match _2 with
3607           | [expr] -> node expr.Syntax.nature
3608           | _ -> node (Tuple _2) )
3609 # 3610 "parser.ml"
3610                : 'primary))
3611 ; (fun __caml_parser_env ->
3612     let _2 = (Parsing.peek_val __caml_parser_env 1 : 'expression_list) in
3613     Obj.repr(
3614 # 985 "parser.mly"
3615       ( unclosed "(" 1 ")" 3 )
3616 # 3617 "parser.ml"
3617                : 'primary))
3618 ; (fun __caml_parser_env ->
3619     let _2 = (Parsing.peek_val __caml_parser_env 1 : 'expression_lists) in
3620     Obj.repr(
3621 # 987 "parser.mly"
3622       ( node (MatrixConstruction _2) )
3623 # 3624 "parser.ml"
3624                : 'primary))
3625 ; (fun __caml_parser_env ->
3626     Obj.repr(
3627 # 989 "parser.mly"
3628       ( invalid_matrix_construction 1 2 )
3629 # 3630 "parser.ml"
3630                : 'primary))
3631 ; (fun __caml_parser_env ->
3632     let _2 = (Parsing.peek_val __caml_parser_env 1 : 'vector_elements) in
3633     Obj.repr(
3634 # 991 "parser.mly"
3635       ( node (Vector _2) )
3636 # 3637 "parser.ml"
3637                : 'primary))
3638 ; (fun __caml_parser_env ->
3639     Obj.repr(
3640 # 993 "parser.mly"
3641       ( invalid_literal_array_construction 1 2 )
3642 # 3643 "parser.ml"
3643                : 'primary))
3644 ; (fun __caml_parser_env ->
3645     Obj.repr(
3646 # 995 "parser.mly"
3647       ( node End )
3648 # 3649 "parser.ml"
3649                : 'primary))
3650 ; (fun __caml_parser_env ->
3651     let _1 = (Parsing.peek_val __caml_parser_env 0 : 'expression_list) in
3652     Obj.repr(
3653 # 1000 "parser.mly"
3654       ( [_1] )
3655 # 3656 "parser.ml"
3656                : 'expression_lists))
3657 ; (fun __caml_parser_env ->
3658     let _1 = (Parsing.peek_val __caml_parser_env 2 : 'expression_list) in
3659     let _3 = (Parsing.peek_val __caml_parser_env 0 : 'expression_lists) in
3660     Obj.repr(
3661 # 1002 "parser.mly"
3662       ( _1 :: _3 )
3663 # 3664 "parser.ml"
3664                : 'expression_lists))
3665 ; (fun __caml_parser_env ->
3666     let _1 = (Parsing.peek_val __caml_parser_env 2 : 'expression) in
3667     let _3 = (Parsing.peek_val __caml_parser_env 0 : 'for_indices) in
3668     Obj.repr(
3669 # 1007 "parser.mly"
3670       ( node (VectorReduction (_1, _3)) )
3671 # 3672 "parser.ml"
3672                : 'vector_elements))
3673 ; (fun __caml_parser_env ->
3674     let _1 = (Parsing.peek_val __caml_parser_env 0 : 'expression_list) in
3675     Obj.repr(
3676 # 1009 "parser.mly"
3677       ( node (VectorElements _1) )
3678 # 3679 "parser.ml"
3679                : 'vector_elements))
3680 ; (fun __caml_parser_env ->
3681     let _1 = (Parsing.peek_val __caml_parser_env 0 : string) in
3682     Obj.repr(
3683 # 1014 "parser.mly"
3684       ( node (Identifier _1) )
3685 # 3686 "parser.ml"
3686                : 'name))
3687 ; (fun __caml_parser_env ->
3688     let _1 = (Parsing.peek_val __caml_parser_env 2 : 'name) in
3689     let _3 = (Parsing.peek_val __caml_parser_env 0 : string) in
3690     Obj.repr(
3691 # 1016 "parser.mly"
3692       ( node (FieldAccess (_1, _3)) )
3693 # 3694 "parser.ml"
3694                : 'name))
3695 ; (fun __caml_parser_env ->
3696     let _1 = (Parsing.peek_val __caml_parser_env 0 : string) in
3697     Obj.repr(
3698 # 1021 "parser.mly"
3699       ( node (Identifier _1) )
3700 # 3701 "parser.ml"
3701                : 'component_reference))
3702 ; (fun __caml_parser_env ->
3703     let _1 = (Parsing.peek_val __caml_parser_env 1 : string) in
3704     let _2 = (Parsing.peek_val __caml_parser_env 0 : 'array_subscripts) in
3705     Obj.repr(
3706 # 1023 "parser.mly"
3707       ( node (IndexedAccess (rhs_nodes 1 1 (Identifier _1), _2)) )
3708 # 3709 "parser.ml"
3709                : 'component_reference))
3710 ; (fun __caml_parser_env ->
3711     let _1 = (Parsing.peek_val __caml_parser_env 2 : 'component_reference) in
3712     let _3 = (Parsing.peek_val __caml_parser_env 0 : string) in
3713     Obj.repr(
3714 # 1025 "parser.mly"
3715       ( node (FieldAccess (_1, _3)) )
3716 # 3717 "parser.ml"
3717                : 'component_reference))
3718 ; (fun __caml_parser_env ->
3719     let _1 = (Parsing.peek_val __caml_parser_env 3 : 'component_reference) in
3720     let _3 = (Parsing.peek_val __caml_parser_env 1 : string) in
3721     let _4 = (Parsing.peek_val __caml_parser_env 0 : 'array_subscripts) in
3722     Obj.repr(
3723 # 1027 "parser.mly"
3724       ( node (IndexedAccess (rhs_nodes 1 3 (FieldAccess (_1, _3)), _4)) )
3725 # 3726 "parser.ml"
3726                : 'component_reference))
3727 ; (fun __caml_parser_env ->
3728     let _1 = (Parsing.peek_val __caml_parser_env 0 : 'function_arguments_elements) in
3729     Obj.repr(
3730 # 1032 "parser.mly"
3731       ( node (ArgumentList (List.rev _1)) )
3732 # 3733 "parser.ml"
3733                : 'function_arguments))
3734 ; (fun __caml_parser_env ->
3735     let _1 = (Parsing.peek_val __caml_parser_env 2 : 'expression) in
3736     let _3 = (Parsing.peek_val __caml_parser_env 0 : 'for_indices) in
3737     Obj.repr(
3738 # 1034 "parser.mly"
3739       ( node (Reduction (_1, _3)) )
3740 # 3741 "parser.ml"
3741                : 'function_arguments))
3742 ; (fun __caml_parser_env ->
3743     let _1 = (Parsing.peek_val __caml_parser_env 0 : 'expression) in
3744     Obj.repr(
3745 # 1039 "parser.mly"
3746       ( [node (Argument _1)] )
3747 # 3748 "parser.ml"
3748                : 'function_arguments_elements))
3749 ; (fun __caml_parser_env ->
3750     let _1 = (Parsing.peek_val __caml_parser_env 0 : 'named_argument) in
3751     Obj.repr(
3752 # 1041 "parser.mly"
3753       ( [_1] )
3754 # 3755 "parser.ml"
3755                : 'function_arguments_elements))
3756 ; (fun __caml_parser_env ->
3757     let _1 = (Parsing.peek_val __caml_parser_env 2 : 'function_arguments_elements) in
3758     let _3 = (Parsing.peek_val __caml_parser_env 0 : 'expression) in
3759     Obj.repr(
3760 # 1043 "parser.mly"
3761       ( node (Argument _3) :: _1 )
3762 # 3763 "parser.ml"
3763                : 'function_arguments_elements))
3764 ; (fun __caml_parser_env ->
3765     let _1 = (Parsing.peek_val __caml_parser_env 2 : 'function_arguments_elements) in
3766     let _3 = (Parsing.peek_val __caml_parser_env 0 : 'named_argument) in
3767     Obj.repr(
3768 # 1045 "parser.mly"
3769       ( _3 :: _1 )
3770 # 3771 "parser.ml"
3771                : 'function_arguments_elements))
3772 ; (fun __caml_parser_env ->
3773     let _1 = (Parsing.peek_val __caml_parser_env 2 : string) in
3774     let _3 = (Parsing.peek_val __caml_parser_env 0 : 'expression) in
3775     Obj.repr(
3776 # 1050 "parser.mly"
3777       ( node (NamedArgument (_1, _3)) )
3778 # 3779 "parser.ml"
3779                : 'named_argument))
3780 ; (fun __caml_parser_env ->
3781     let _2 = (Parsing.peek_val __caml_parser_env 0 : string) in
3782     Obj.repr(
3783 # 1052 "parser.mly"
3784       ( failwith "Not yet implemented" )
3785 # 3786 "parser.ml"
3786                : 'named_argument))
3787 ; (fun __caml_parser_env ->
3788     let _2 = (Parsing.peek_val __caml_parser_env 2 : string) in
3789     Obj.repr(
3790 # 1054 "parser.mly"
3791       ( failwith "Not yet implemented" )
3792 # 3793 "parser.ml"
3793                : 'named_argument))
3794 ; (fun __caml_parser_env ->
3795     let _2 = (Parsing.peek_val __caml_parser_env 3 : string) in
3796     let _4 = (Parsing.peek_val __caml_parser_env 1 : 'function_arguments) in
3797     Obj.repr(
3798 # 1056 "parser.mly"
3799       ( failwith "Not yet implemented" )
3800 # 3801 "parser.ml"
3801                : 'named_argument))
3802 ; (fun __caml_parser_env ->
3803     let _2 = (Parsing.peek_val __caml_parser_env 3 : string) in
3804     let _4 = (Parsing.peek_val __caml_parser_env 1 : 'function_arguments) in
3805     Obj.repr(
3806 # 1058 "parser.mly"
3807       ( unclosed  "(" 3 ")" 5 )
3808 # 3809 "parser.ml"
3809                : 'named_argument))
3810 ; (fun __caml_parser_env ->
3811     let _2 = (Parsing.peek_val __caml_parser_env 2 : string) in
3812     Obj.repr(
3813 # 1060 "parser.mly"
3814       ( unclosed  "(" 3 ")" 4 )
3815 # 3816 "parser.ml"
3816                : 'named_argument))
3817 ; (fun __caml_parser_env ->
3818     let _1 = (Parsing.peek_val __caml_parser_env 0 : 'expression) in
3819     Obj.repr(
3820 # 1065 "parser.mly"
3821       ( [_1] )
3822 # 3823 "parser.ml"
3823                : 'expression_list))
3824 ; (fun __caml_parser_env ->
3825     let _1 = (Parsing.peek_val __caml_parser_env 2 : 'expression) in
3826     let _3 = (Parsing.peek_val __caml_parser_env 0 : 'expression_list) in
3827     Obj.repr(
3828 # 1067 "parser.mly"
3829       ( _1 :: _3 )
3830 # 3831 "parser.ml"
3831                : 'expression_list))
3832 ; (fun __caml_parser_env ->
3833     let _2 = (Parsing.peek_val __caml_parser_env 1 : 'subscripts) in
3834     Obj.repr(
3835 # 1072 "parser.mly"
3836       ( node (Subscripts _2) )
3837 # 3838 "parser.ml"
3838                : 'array_subscripts))
3839 ; (fun __caml_parser_env ->
3840     let _1 = (Parsing.peek_val __caml_parser_env 0 : 'subscript) in
3841     Obj.repr(
3842 # 1077 "parser.mly"
3843       ( [_1] )
3844 # 3845 "parser.ml"
3845                : 'subscripts))
3846 ; (fun __caml_parser_env ->
3847     let _1 = (Parsing.peek_val __caml_parser_env 2 : 'subscript) in
3848     let _3 = (Parsing.peek_val __caml_parser_env 0 : 'subscripts) in
3849     Obj.repr(
3850 # 1079 "parser.mly"
3851       ( _1 :: _3 )
3852 # 3853 "parser.ml"
3853                : 'subscripts))
3854 ; (fun __caml_parser_env ->
3855     Obj.repr(
3856 # 1084 "parser.mly"
3857       ( node Colon )
3858 # 3859 "parser.ml"
3859                : 'subscript))
3860 ; (fun __caml_parser_env ->
3861     let _1 = (Parsing.peek_val __caml_parser_env 0 : 'expression) in
3862     Obj.repr(
3863 # 1086 "parser.mly"
3864       ( node (Subscript _1) )
3865 # 3866 "parser.ml"
3866                : 'subscript))
3867 ; (fun __caml_parser_env ->
3868     let _1 = (Parsing.peek_val __caml_parser_env 1 : 'string_comment) in
3869     let _2 = (Parsing.peek_val __caml_parser_env 0 : 'annotation_option) in
3870     Obj.repr(
3871 # 1091 "parser.mly"
3872       ( node (Comment (_1, _2)) )
3873 # 3874 "parser.ml"
3874                : 'comment))
3875 ; (fun __caml_parser_env ->
3876     Obj.repr(
3877 # 1096 "parser.mly"
3878       ( [] )
3879 # 3880 "parser.ml"
3880                : 'string_comment))
3881 ; (fun __caml_parser_env ->
3882     let _1 = (Parsing.peek_val __caml_parser_env 0 : 'strings) in
3883     Obj.repr(
3884 # 1098 "parser.mly"
3885       ( List.rev _1 )
3886 # 3887 "parser.ml"
3887                : 'string_comment))
3888 ; (fun __caml_parser_env ->
3889     let _1 = (Parsing.peek_val __caml_parser_env 0 : string) in
3890     Obj.repr(
3891 # 1103 "parser.mly"
3892       ( [_1] )
3893 # 3894 "parser.ml"
3894                : 'strings))
3895 ; (fun __caml_parser_env ->
3896     let _1 = (Parsing.peek_val __caml_parser_env 2 : 'strings) in
3897     let _3 = (Parsing.peek_val __caml_parser_env 0 : string) in
3898     Obj.repr(
3899 # 1105 "parser.mly"
3900       ( _3 :: _1 )
3901 # 3902 "parser.ml"
3902                : 'strings))
3903 ; (fun __caml_parser_env ->
3904     let _2 = (Parsing.peek_val __caml_parser_env 0 : 'class_modification) in
3905     Obj.repr(
3906 # 1110 "parser.mly"
3907       ( node (Annotation _2) )
3908 # 3909 "parser.ml"
3909                : 'annotation))
3910 (* Entry definition *)
3911 ; (fun __caml_parser_env -> raise (Parsing.YYexit (Parsing.peek_val __caml_parser_env 0)))
3912 |]
3913 let yytables =
3914   { Parsing.actions=yyact;
3915     Parsing.transl_const=yytransl_const;
3916     Parsing.transl_block=yytransl_block;
3917     Parsing.lhs=yylhs;
3918     Parsing.len=yylen;
3919     Parsing.defred=yydefred;
3920     Parsing.dgoto=yydgoto;
3921     Parsing.sindex=yysindex;
3922     Parsing.rindex=yyrindex;
3923     Parsing.gindex=yygindex;
3924     Parsing.tablesize=yytablesize;
3925     Parsing.table=yytable;
3926     Parsing.check=yycheck;
3927     Parsing.error_function=parse_error;
3928     Parsing.names_const=yynames_const;
3929     Parsing.names_block=yynames_block }
3930 let definition (lexfun : Lexing.lexbuf -> token) (lexbuf : Lexing.lexbuf) =
3931    (Parsing.yyparse yytables 1 lexfun lexbuf : (location Syntax.toplevel_element_desc, location) Syntax.node)
3932 ;;
3933 # 1113 "parser.mly"
3934
3935
3936 let parse filename token_fun lexbuf =
3937   inputfile := filename;
3938   try
3939     definition token_fun lexbuf
3940   with
3941     | Unclosed (pos, symbol, pos', symbol') ->
3942         raise (SyntacticError
3943           {err_msg = ["_Unclosed"; symbol];
3944            err_info = [];
3945            err_ctx =
3946              {location = {start = pos;
3947                           enddd = pos';
3948                           filename = filename}}})
3949     | Invalid_matrix (pos, pos') ->
3950         raise (SyntacticError
3951           {err_msg = ["_InvalidMatrixConstruct"];
3952            err_info = [];
3953            err_ctx =
3954              {location = {start = pos;
3955                           enddd = pos';
3956                           filename = filename}}})
3957     | Invalid_array (pos, pos') ->
3958         raise (SyntacticError
3959           {err_msg = ["_InvalidArrayConstruct"];
3960            err_info = [];
3961            err_ctx =
3962              {location = {start = pos;
3963                           enddd = pos';
3964                           filename = filename}}})
3965     | Parsing.Parse_error ->
3966         raise (SyntacticError
3967           {err_msg = ["_SyntaxError"];
3968            err_info = [];
3969            err_ctx =
3970              {location = {start = Lexing.lexeme_start lexbuf;
3971                           enddd = Lexing.lexeme_end lexbuf;
3972                           filename = filename}}})
3973 # 3974 "parser.ml"