diff --git a/middle_end/flambda2/compare/compare.ml b/middle_end/flambda2/compare/compare.ml index edf0bd5a027..4c7629c0140 100644 --- a/middle_end/flambda2/compare/compare.ml +++ b/middle_end/flambda2/compare/compare.ml @@ -660,6 +660,10 @@ let unary_prim_ops env (prim_op1 : Flambda_primitive.unary_primitive) let primitives env prim1 prim2 : Flambda_primitive.t Comparison.t = match (prim1 : Flambda_primitive.t), (prim2 : Flambda_primitive.t) with + | Nullary prim_op1, Nullary prim_op2 -> + if Flambda_primitive.equal_nullary_primitive prim_op1 prim_op2 + then Equivalent + else Different { approximant = prim1 } | Unary (prim_op1, arg1), Unary (prim_op2, arg2) -> pairs ~f1:unary_prim_ops ~f2:simple_exprs ~subst2:subst_simple env (prim_op1, arg1) (prim_op2, arg2) diff --git a/middle_end/flambda2/parser/fexpr.ml b/middle_end/flambda2/parser/fexpr.ml index 701e4493d95..4cf1caa63ee 100644 --- a/middle_end/flambda2/parser/fexpr.ml +++ b/middle_end/flambda2/parser/fexpr.ml @@ -241,9 +241,12 @@ type signed_or_unsigned = Flambda_primitive.signed_or_unsigned = | Signed | Unsigned +type nullop = Begin_region + type unop = | Array_length | Box_number of box_kind + | End_region | Get_tag | Is_flat_float_array | Is_int @@ -312,6 +315,7 @@ type ternop = Array_set of array_kind * init_or_assign type varop = Make_block of tag_scannable * mutability type prim = + | Nullary of nullop | Unary of unop * simple | Binary of binop * simple * simple | Ternary of ternop * simple * simple * simple diff --git a/middle_end/flambda2/parser/fexpr_to_flambda.ml b/middle_end/flambda2/parser/fexpr_to_flambda.ml index d6840d0f648..a36ec596e41 100644 --- a/middle_end/flambda2/parser/fexpr_to_flambda.ml +++ b/middle_end/flambda2/parser/fexpr_to_flambda.ml @@ -347,6 +347,9 @@ let or_variable f env (ov : _ Fexpr.or_variable) : _ Or_variable.t = | Const c -> Const (f c) | Var v -> Var (find_var env v, Debuginfo.none) +let nullop (nullop : Fexpr.nullop) : Flambda_primitive.nullary_primitive = + match nullop with Begin_region -> Begin_region + let unop env (unop : Fexpr.unop) : Flambda_primitive.unary_primitive = match unop with | Array_length -> Array_length @@ -354,6 +357,7 @@ let unop env (unop : Fexpr.unop) : Flambda_primitive.unary_primitive = | Unbox_number bk -> Unbox_number bk | Tag_immediate -> Tag_immediate | Untag_immediate -> Untag_immediate + | End_region -> End_region | Get_tag -> Get_tag | Is_flat_float_array -> Is_flat_float_array | Is_int -> Is_int { variant_only = true } (* CR vlaviron: discuss *) @@ -436,6 +440,7 @@ let varop (varop : Fexpr.varop) n : Flambda_primitive.variadic_primitive = let prim env (p : Fexpr.prim) : Flambda_primitive.t = match p with + | Nullary op -> Nullary (nullop op) | Unary (op, arg) -> Unary (unop env op, simple env arg) | Binary (op, a1, a2) -> Binary (binop op, simple env a1, simple env a2) | Ternary (op, a1, a2, a3) -> @@ -977,7 +982,8 @@ let bind_all_code_ids env (unit : Fexpr.flambda_unit) = env bindings in go env body - | Let _ | Let_cont _ | Apply _ | Apply_cont _ | Switch _ | Invalid _ -> env + | Let { body; _ } | Let_cont { body; _ } -> go env body + | Apply _ | Apply_cont _ | Switch _ | Invalid _ -> env in go env unit.body diff --git a/middle_end/flambda2/parser/flambda_lex.ml b/middle_end/flambda2/parser/flambda_lex.ml index 2bab1e0a424..2cec0c07b1b 100644 --- a/middle_end/flambda2/parser/flambda_lex.ml +++ b/middle_end/flambda2/parser/flambda_lex.ml @@ -115,6 +115,7 @@ let prim_table = "array_length", PRIM_ARRAY_LENGTH; "array_load", PRIM_ARRAY_LOAD; "array_set", PRIM_ARRAY_SET; + "begin_region", PRIM_BEGIN_REGION; "Block", PRIM_BLOCK; "block_load", PRIM_BLOCK_LOAD; "Box_float", PRIM_BOX_FLOAT; @@ -122,6 +123,7 @@ let prim_table = "Box_int64", PRIM_BOX_INT64; "Box_nativeint", PRIM_BOX_NATIVEINT; "bytes_length", PRIM_BYTES_LENGTH; + "end_region", PRIM_END_REGION; "get_tag", PRIM_GET_TAG; "int_arith", PRIM_INT_ARITH; "int_comp", PRIM_INT_COMP; @@ -167,7 +169,7 @@ let symbol cunit_ident cunit_linkage_name ident = SYMBOL (cunit, unquote_ident ident) -# 171 "middle_end/flambda2/parser/flambda_lex.ml.new" +# 173 "middle_end/flambda2/parser/flambda_lex.ml.new" let __ocaml_lex_tables = { Lexing.lex_base = "\000\000\202\255\203\255\058\000\088\000\218\000\046\001\137\000\ @@ -1138,335 +1140,335 @@ let rec token lexbuf = and __ocaml_lex_token_rec lexbuf __ocaml_lex_state = match Lexing.new_engine __ocaml_lex_tables __ocaml_lex_state lexbuf with | 0 -> -# 202 "middle_end/flambda2/parser/flambda_lex.mll" +# 204 "middle_end/flambda2/parser/flambda_lex.mll" ( Lexing.new_line lexbuf; token lexbuf ) -# 1144 "middle_end/flambda2/parser/flambda_lex.ml.new" +# 1146 "middle_end/flambda2/parser/flambda_lex.ml.new" | 1 -> -# 204 "middle_end/flambda2/parser/flambda_lex.mll" +# 206 "middle_end/flambda2/parser/flambda_lex.mll" ( token lexbuf ) -# 1149 "middle_end/flambda2/parser/flambda_lex.ml.new" +# 1151 "middle_end/flambda2/parser/flambda_lex.ml.new" | 2 -> -# 206 "middle_end/flambda2/parser/flambda_lex.mll" +# 208 "middle_end/flambda2/parser/flambda_lex.mll" ( comment 1 lexbuf; token lexbuf ) -# 1155 "middle_end/flambda2/parser/flambda_lex.ml.new" +# 1157 "middle_end/flambda2/parser/flambda_lex.ml.new" | 3 -> -# 209 "middle_end/flambda2/parser/flambda_lex.mll" +# 211 "middle_end/flambda2/parser/flambda_lex.mll" ( COLON ) -# 1160 "middle_end/flambda2/parser/flambda_lex.ml.new" +# 1162 "middle_end/flambda2/parser/flambda_lex.ml.new" | 4 -> -# 211 "middle_end/flambda2/parser/flambda_lex.mll" +# 213 "middle_end/flambda2/parser/flambda_lex.mll" ( COMMA ) -# 1165 "middle_end/flambda2/parser/flambda_lex.ml.new" +# 1167 "middle_end/flambda2/parser/flambda_lex.ml.new" | 5 -> -# 213 "middle_end/flambda2/parser/flambda_lex.mll" +# 215 "middle_end/flambda2/parser/flambda_lex.mll" ( DOT ) -# 1170 "middle_end/flambda2/parser/flambda_lex.ml.new" +# 1172 "middle_end/flambda2/parser/flambda_lex.ml.new" | 6 -> -# 215 "middle_end/flambda2/parser/flambda_lex.mll" +# 217 "middle_end/flambda2/parser/flambda_lex.mll" ( SEMICOLON ) -# 1175 "middle_end/flambda2/parser/flambda_lex.ml.new" +# 1177 "middle_end/flambda2/parser/flambda_lex.ml.new" | 7 -> -# 217 "middle_end/flambda2/parser/flambda_lex.mll" +# 219 "middle_end/flambda2/parser/flambda_lex.mll" ( EQUAL ) -# 1180 "middle_end/flambda2/parser/flambda_lex.ml.new" +# 1182 "middle_end/flambda2/parser/flambda_lex.ml.new" | 8 -> -# 219 "middle_end/flambda2/parser/flambda_lex.mll" +# 221 "middle_end/flambda2/parser/flambda_lex.mll" ( BLANK ) -# 1185 "middle_end/flambda2/parser/flambda_lex.ml.new" +# 1187 "middle_end/flambda2/parser/flambda_lex.ml.new" | 9 -> -# 221 "middle_end/flambda2/parser/flambda_lex.mll" +# 223 "middle_end/flambda2/parser/flambda_lex.mll" ( LBRACE ) -# 1190 "middle_end/flambda2/parser/flambda_lex.ml.new" +# 1192 "middle_end/flambda2/parser/flambda_lex.ml.new" | 10 -> -# 223 "middle_end/flambda2/parser/flambda_lex.mll" +# 225 "middle_end/flambda2/parser/flambda_lex.mll" ( RBRACE ) -# 1195 "middle_end/flambda2/parser/flambda_lex.ml.new" +# 1197 "middle_end/flambda2/parser/flambda_lex.ml.new" | 11 -> -# 225 "middle_end/flambda2/parser/flambda_lex.mll" +# 227 "middle_end/flambda2/parser/flambda_lex.mll" ( LPAREN ) -# 1200 "middle_end/flambda2/parser/flambda_lex.ml.new" +# 1202 "middle_end/flambda2/parser/flambda_lex.ml.new" | 12 -> -# 227 "middle_end/flambda2/parser/flambda_lex.mll" +# 229 "middle_end/flambda2/parser/flambda_lex.mll" ( RPAREN ) -# 1205 "middle_end/flambda2/parser/flambda_lex.ml.new" +# 1207 "middle_end/flambda2/parser/flambda_lex.ml.new" | 13 -> -# 229 "middle_end/flambda2/parser/flambda_lex.mll" +# 231 "middle_end/flambda2/parser/flambda_lex.mll" ( LBRACK ) -# 1210 "middle_end/flambda2/parser/flambda_lex.ml.new" +# 1212 "middle_end/flambda2/parser/flambda_lex.ml.new" | 14 -> -# 231 "middle_end/flambda2/parser/flambda_lex.mll" +# 233 "middle_end/flambda2/parser/flambda_lex.mll" ( RBRACK ) -# 1215 "middle_end/flambda2/parser/flambda_lex.ml.new" +# 1217 "middle_end/flambda2/parser/flambda_lex.ml.new" | 15 -> -# 233 "middle_end/flambda2/parser/flambda_lex.mll" +# 235 "middle_end/flambda2/parser/flambda_lex.mll" ( LBRACKPIPE ) -# 1220 "middle_end/flambda2/parser/flambda_lex.ml.new" +# 1222 "middle_end/flambda2/parser/flambda_lex.ml.new" | 16 -> -# 235 "middle_end/flambda2/parser/flambda_lex.mll" +# 237 "middle_end/flambda2/parser/flambda_lex.mll" ( RBRACKPIPE ) -# 1225 "middle_end/flambda2/parser/flambda_lex.ml.new" +# 1227 "middle_end/flambda2/parser/flambda_lex.ml.new" | 17 -> -# 236 "middle_end/flambda2/parser/flambda_lex.mll" +# 238 "middle_end/flambda2/parser/flambda_lex.mll" ( PLUS ) -# 1230 "middle_end/flambda2/parser/flambda_lex.ml.new" +# 1232 "middle_end/flambda2/parser/flambda_lex.ml.new" | 18 -> -# 237 "middle_end/flambda2/parser/flambda_lex.mll" +# 239 "middle_end/flambda2/parser/flambda_lex.mll" ( MINUS ) -# 1235 "middle_end/flambda2/parser/flambda_lex.ml.new" +# 1237 "middle_end/flambda2/parser/flambda_lex.ml.new" | 19 -> -# 238 "middle_end/flambda2/parser/flambda_lex.mll" +# 240 "middle_end/flambda2/parser/flambda_lex.mll" ( STAR ) -# 1240 "middle_end/flambda2/parser/flambda_lex.ml.new" +# 1242 "middle_end/flambda2/parser/flambda_lex.ml.new" | 20 -> -# 239 "middle_end/flambda2/parser/flambda_lex.mll" +# 241 "middle_end/flambda2/parser/flambda_lex.mll" ( SLASH ) -# 1245 "middle_end/flambda2/parser/flambda_lex.ml.new" +# 1247 "middle_end/flambda2/parser/flambda_lex.ml.new" | 21 -> -# 240 "middle_end/flambda2/parser/flambda_lex.mll" +# 242 "middle_end/flambda2/parser/flambda_lex.mll" ( PERCENT ) -# 1250 "middle_end/flambda2/parser/flambda_lex.ml.new" +# 1252 "middle_end/flambda2/parser/flambda_lex.ml.new" | 22 -> -# 241 "middle_end/flambda2/parser/flambda_lex.mll" +# 243 "middle_end/flambda2/parser/flambda_lex.mll" ( LESS ) -# 1255 "middle_end/flambda2/parser/flambda_lex.ml.new" +# 1257 "middle_end/flambda2/parser/flambda_lex.ml.new" | 23 -> -# 242 "middle_end/flambda2/parser/flambda_lex.mll" +# 244 "middle_end/flambda2/parser/flambda_lex.mll" ( GREATER ) -# 1260 "middle_end/flambda2/parser/flambda_lex.ml.new" +# 1262 "middle_end/flambda2/parser/flambda_lex.ml.new" | 24 -> -# 243 "middle_end/flambda2/parser/flambda_lex.mll" +# 245 "middle_end/flambda2/parser/flambda_lex.mll" ( LESSEQUAL ) -# 1265 "middle_end/flambda2/parser/flambda_lex.ml.new" +# 1267 "middle_end/flambda2/parser/flambda_lex.ml.new" | 25 -> -# 244 "middle_end/flambda2/parser/flambda_lex.mll" +# 246 "middle_end/flambda2/parser/flambda_lex.mll" ( GREATEREQUAL ) -# 1270 "middle_end/flambda2/parser/flambda_lex.ml.new" +# 1272 "middle_end/flambda2/parser/flambda_lex.ml.new" | 26 -> -# 245 "middle_end/flambda2/parser/flambda_lex.mll" +# 247 "middle_end/flambda2/parser/flambda_lex.mll" ( QMARK ) -# 1275 "middle_end/flambda2/parser/flambda_lex.ml.new" +# 1277 "middle_end/flambda2/parser/flambda_lex.ml.new" | 27 -> -# 246 "middle_end/flambda2/parser/flambda_lex.mll" +# 248 "middle_end/flambda2/parser/flambda_lex.mll" ( PLUSDOT ) -# 1280 "middle_end/flambda2/parser/flambda_lex.ml.new" +# 1282 "middle_end/flambda2/parser/flambda_lex.ml.new" | 28 -> -# 247 "middle_end/flambda2/parser/flambda_lex.mll" +# 249 "middle_end/flambda2/parser/flambda_lex.mll" ( MINUSDOT ) -# 1285 "middle_end/flambda2/parser/flambda_lex.ml.new" +# 1287 "middle_end/flambda2/parser/flambda_lex.ml.new" | 29 -> -# 248 "middle_end/flambda2/parser/flambda_lex.mll" +# 250 "middle_end/flambda2/parser/flambda_lex.mll" ( STARDOT ) -# 1290 "middle_end/flambda2/parser/flambda_lex.ml.new" +# 1292 "middle_end/flambda2/parser/flambda_lex.ml.new" | 30 -> -# 249 "middle_end/flambda2/parser/flambda_lex.mll" +# 251 "middle_end/flambda2/parser/flambda_lex.mll" ( SLASHDOT ) -# 1295 "middle_end/flambda2/parser/flambda_lex.ml.new" +# 1297 "middle_end/flambda2/parser/flambda_lex.ml.new" | 31 -> -# 250 "middle_end/flambda2/parser/flambda_lex.mll" +# 252 "middle_end/flambda2/parser/flambda_lex.mll" ( EQUALDOT ) -# 1300 "middle_end/flambda2/parser/flambda_lex.ml.new" +# 1302 "middle_end/flambda2/parser/flambda_lex.ml.new" | 32 -> -# 251 "middle_end/flambda2/parser/flambda_lex.mll" +# 253 "middle_end/flambda2/parser/flambda_lex.mll" ( NOTEQUALDOT ) -# 1305 "middle_end/flambda2/parser/flambda_lex.ml.new" +# 1307 "middle_end/flambda2/parser/flambda_lex.ml.new" | 33 -> -# 252 "middle_end/flambda2/parser/flambda_lex.mll" +# 254 "middle_end/flambda2/parser/flambda_lex.mll" ( LESSDOT ) -# 1310 "middle_end/flambda2/parser/flambda_lex.ml.new" +# 1312 "middle_end/flambda2/parser/flambda_lex.ml.new" | 34 -> -# 253 "middle_end/flambda2/parser/flambda_lex.mll" +# 255 "middle_end/flambda2/parser/flambda_lex.mll" ( LESSEQUALDOT ) -# 1315 "middle_end/flambda2/parser/flambda_lex.ml.new" +# 1317 "middle_end/flambda2/parser/flambda_lex.ml.new" | 35 -> -# 254 "middle_end/flambda2/parser/flambda_lex.mll" +# 256 "middle_end/flambda2/parser/flambda_lex.mll" ( QMARKDOT ) -# 1320 "middle_end/flambda2/parser/flambda_lex.ml.new" +# 1322 "middle_end/flambda2/parser/flambda_lex.ml.new" | 36 -> -# 255 "middle_end/flambda2/parser/flambda_lex.mll" +# 257 "middle_end/flambda2/parser/flambda_lex.mll" ( LESSMINUS ) -# 1325 "middle_end/flambda2/parser/flambda_lex.ml.new" +# 1327 "middle_end/flambda2/parser/flambda_lex.ml.new" | 37 -> -# 256 "middle_end/flambda2/parser/flambda_lex.mll" +# 258 "middle_end/flambda2/parser/flambda_lex.mll" ( MINUSGREATER ) -# 1330 "middle_end/flambda2/parser/flambda_lex.ml.new" +# 1332 "middle_end/flambda2/parser/flambda_lex.ml.new" | 38 -> -# 257 "middle_end/flambda2/parser/flambda_lex.mll" +# 259 "middle_end/flambda2/parser/flambda_lex.mll" ( AT ) -# 1335 "middle_end/flambda2/parser/flambda_lex.ml.new" +# 1337 "middle_end/flambda2/parser/flambda_lex.ml.new" | 39 -> -# 258 "middle_end/flambda2/parser/flambda_lex.mll" +# 260 "middle_end/flambda2/parser/flambda_lex.mll" ( PIPE ) -# 1340 "middle_end/flambda2/parser/flambda_lex.ml.new" +# 1342 "middle_end/flambda2/parser/flambda_lex.ml.new" | 40 -> -# 259 "middle_end/flambda2/parser/flambda_lex.mll" +# 261 "middle_end/flambda2/parser/flambda_lex.mll" ( TILDE ) -# 1345 "middle_end/flambda2/parser/flambda_lex.ml.new" +# 1347 "middle_end/flambda2/parser/flambda_lex.ml.new" | 41 -> -# 260 "middle_end/flambda2/parser/flambda_lex.mll" +# 262 "middle_end/flambda2/parser/flambda_lex.mll" ( AMP ) -# 1350 "middle_end/flambda2/parser/flambda_lex.ml.new" +# 1352 "middle_end/flambda2/parser/flambda_lex.ml.new" | 42 -> -# 261 "middle_end/flambda2/parser/flambda_lex.mll" +# 263 "middle_end/flambda2/parser/flambda_lex.mll" ( CARET ) -# 1355 "middle_end/flambda2/parser/flambda_lex.ml.new" +# 1357 "middle_end/flambda2/parser/flambda_lex.ml.new" | 43 -> -# 262 "middle_end/flambda2/parser/flambda_lex.mll" +# 264 "middle_end/flambda2/parser/flambda_lex.mll" ( BIGARROW ) -# 1360 "middle_end/flambda2/parser/flambda_lex.ml.new" +# 1362 "middle_end/flambda2/parser/flambda_lex.ml.new" | 44 -> let -# 263 "middle_end/flambda2/parser/flambda_lex.mll" +# 265 "middle_end/flambda2/parser/flambda_lex.mll" ident -# 1366 "middle_end/flambda2/parser/flambda_lex.ml.new" +# 1368 "middle_end/flambda2/parser/flambda_lex.ml.new" = Lexing.sub_lexeme lexbuf lexbuf.Lexing.lex_start_pos lexbuf.Lexing.lex_curr_pos in -# 264 "middle_end/flambda2/parser/flambda_lex.mll" +# 266 "middle_end/flambda2/parser/flambda_lex.mll" ( ident_or_keyword ident ) -# 1370 "middle_end/flambda2/parser/flambda_lex.ml.new" +# 1372 "middle_end/flambda2/parser/flambda_lex.ml.new" | 45 -> let -# 265 "middle_end/flambda2/parser/flambda_lex.mll" +# 267 "middle_end/flambda2/parser/flambda_lex.mll" ident -# 1376 "middle_end/flambda2/parser/flambda_lex.ml.new" +# 1378 "middle_end/flambda2/parser/flambda_lex.ml.new" = Lexing.sub_lexeme lexbuf lexbuf.Lexing.lex_start_pos lexbuf.Lexing.lex_curr_pos in -# 266 "middle_end/flambda2/parser/flambda_lex.mll" +# 268 "middle_end/flambda2/parser/flambda_lex.mll" ( IDENT (unquote_ident ident) ) -# 1380 "middle_end/flambda2/parser/flambda_lex.ml.new" +# 1382 "middle_end/flambda2/parser/flambda_lex.ml.new" | 46 -> let -# 268 "middle_end/flambda2/parser/flambda_lex.mll" +# 270 "middle_end/flambda2/parser/flambda_lex.mll" cunit_ident -# 1386 "middle_end/flambda2/parser/flambda_lex.ml.new" +# 1388 "middle_end/flambda2/parser/flambda_lex.ml.new" = Lexing.sub_lexeme_opt lexbuf lexbuf.Lexing.lex_mem.(2) lexbuf.Lexing.lex_mem.(1) and -# 269 "middle_end/flambda2/parser/flambda_lex.mll" +# 271 "middle_end/flambda2/parser/flambda_lex.mll" cunit_linkage_name -# 1391 "middle_end/flambda2/parser/flambda_lex.ml.new" +# 1393 "middle_end/flambda2/parser/flambda_lex.ml.new" = Lexing.sub_lexeme_opt lexbuf lexbuf.Lexing.lex_mem.(4) lexbuf.Lexing.lex_mem.(3) and -# 271 "middle_end/flambda2/parser/flambda_lex.mll" +# 273 "middle_end/flambda2/parser/flambda_lex.mll" ident -# 1396 "middle_end/flambda2/parser/flambda_lex.ml.new" +# 1398 "middle_end/flambda2/parser/flambda_lex.ml.new" = Lexing.sub_lexeme lexbuf lexbuf.Lexing.lex_mem.(0) lexbuf.Lexing.lex_curr_pos in -# 272 "middle_end/flambda2/parser/flambda_lex.mll" +# 274 "middle_end/flambda2/parser/flambda_lex.mll" ( symbol cunit_ident cunit_linkage_name ident ) -# 1400 "middle_end/flambda2/parser/flambda_lex.ml.new" +# 1402 "middle_end/flambda2/parser/flambda_lex.ml.new" | 47 -> let -# 273 "middle_end/flambda2/parser/flambda_lex.mll" +# 275 "middle_end/flambda2/parser/flambda_lex.mll" p -# 1406 "middle_end/flambda2/parser/flambda_lex.ml.new" +# 1408 "middle_end/flambda2/parser/flambda_lex.ml.new" = Lexing.sub_lexeme lexbuf (lexbuf.Lexing.lex_start_pos + 1) lexbuf.Lexing.lex_curr_pos in -# 274 "middle_end/flambda2/parser/flambda_lex.mll" +# 276 "middle_end/flambda2/parser/flambda_lex.mll" ( prim ~lexbuf p ) -# 1410 "middle_end/flambda2/parser/flambda_lex.ml.new" +# 1412 "middle_end/flambda2/parser/flambda_lex.ml.new" | 48 -> let -# 275 "middle_end/flambda2/parser/flambda_lex.mll" +# 277 "middle_end/flambda2/parser/flambda_lex.mll" lit -# 1416 "middle_end/flambda2/parser/flambda_lex.ml.new" +# 1418 "middle_end/flambda2/parser/flambda_lex.ml.new" = Lexing.sub_lexeme lexbuf lexbuf.Lexing.lex_start_pos lexbuf.Lexing.lex_mem.(0) and -# 275 "middle_end/flambda2/parser/flambda_lex.mll" +# 277 "middle_end/flambda2/parser/flambda_lex.mll" modif -# 1421 "middle_end/flambda2/parser/flambda_lex.ml.new" +# 1423 "middle_end/flambda2/parser/flambda_lex.ml.new" = Lexing.sub_lexeme_char_opt lexbuf lexbuf.Lexing.lex_mem.(1) in -# 276 "middle_end/flambda2/parser/flambda_lex.mll" +# 278 "middle_end/flambda2/parser/flambda_lex.mll" ( INT (lit, modif) ) -# 1425 "middle_end/flambda2/parser/flambda_lex.ml.new" +# 1427 "middle_end/flambda2/parser/flambda_lex.ml.new" | 49 -> let -# 277 "middle_end/flambda2/parser/flambda_lex.mll" +# 279 "middle_end/flambda2/parser/flambda_lex.mll" lit -# 1431 "middle_end/flambda2/parser/flambda_lex.ml.new" +# 1433 "middle_end/flambda2/parser/flambda_lex.ml.new" = Lexing.sub_lexeme lexbuf lexbuf.Lexing.lex_start_pos lexbuf.Lexing.lex_curr_pos in -# 278 "middle_end/flambda2/parser/flambda_lex.mll" +# 280 "middle_end/flambda2/parser/flambda_lex.mll" ( FLOAT (lit |> Float.of_string) ) -# 1435 "middle_end/flambda2/parser/flambda_lex.ml.new" +# 1437 "middle_end/flambda2/parser/flambda_lex.ml.new" | 50 -> let -# 279 "middle_end/flambda2/parser/flambda_lex.mll" +# 281 "middle_end/flambda2/parser/flambda_lex.mll" lit -# 1441 "middle_end/flambda2/parser/flambda_lex.ml.new" +# 1443 "middle_end/flambda2/parser/flambda_lex.ml.new" = Lexing.sub_lexeme lexbuf lexbuf.Lexing.lex_start_pos lexbuf.Lexing.lex_curr_pos in -# 280 "middle_end/flambda2/parser/flambda_lex.mll" +# 282 "middle_end/flambda2/parser/flambda_lex.mll" ( error ~lexbuf (Invalid_literal lit) ) -# 1445 "middle_end/flambda2/parser/flambda_lex.ml.new" +# 1447 "middle_end/flambda2/parser/flambda_lex.ml.new" | 51 -> let -# 281 "middle_end/flambda2/parser/flambda_lex.mll" +# 283 "middle_end/flambda2/parser/flambda_lex.mll" s -# 1451 "middle_end/flambda2/parser/flambda_lex.ml.new" +# 1453 "middle_end/flambda2/parser/flambda_lex.ml.new" = Lexing.sub_lexeme lexbuf (lexbuf.Lexing.lex_start_pos + 1) (lexbuf.Lexing.lex_curr_pos + -1) in -# 283 "middle_end/flambda2/parser/flambda_lex.mll" +# 285 "middle_end/flambda2/parser/flambda_lex.mll" ( STRING s ) -# 1455 "middle_end/flambda2/parser/flambda_lex.ml.new" +# 1457 "middle_end/flambda2/parser/flambda_lex.ml.new" | 52 -> -# 284 "middle_end/flambda2/parser/flambda_lex.mll" +# 286 "middle_end/flambda2/parser/flambda_lex.mll" ( EOF ) -# 1460 "middle_end/flambda2/parser/flambda_lex.ml.new" +# 1462 "middle_end/flambda2/parser/flambda_lex.ml.new" | 53 -> let -# 285 "middle_end/flambda2/parser/flambda_lex.mll" +# 287 "middle_end/flambda2/parser/flambda_lex.mll" ch -# 1466 "middle_end/flambda2/parser/flambda_lex.ml.new" +# 1468 "middle_end/flambda2/parser/flambda_lex.ml.new" = Lexing.sub_lexeme_char lexbuf lexbuf.Lexing.lex_start_pos in -# 286 "middle_end/flambda2/parser/flambda_lex.mll" +# 288 "middle_end/flambda2/parser/flambda_lex.mll" ( error ~lexbuf (Illegal_character ch) ) -# 1470 "middle_end/flambda2/parser/flambda_lex.ml.new" +# 1472 "middle_end/flambda2/parser/flambda_lex.ml.new" | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_token_rec lexbuf __ocaml_lex_state @@ -1476,25 +1478,25 @@ and comment n lexbuf = and __ocaml_lex_comment_rec n lexbuf __ocaml_lex_state = match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with | 0 -> -# 290 "middle_end/flambda2/parser/flambda_lex.mll" +# 292 "middle_end/flambda2/parser/flambda_lex.mll" ( Lexing.new_line lexbuf; comment n lexbuf ) -# 1482 "middle_end/flambda2/parser/flambda_lex.ml.new" +# 1484 "middle_end/flambda2/parser/flambda_lex.ml.new" | 1 -> -# 292 "middle_end/flambda2/parser/flambda_lex.mll" +# 294 "middle_end/flambda2/parser/flambda_lex.mll" ( if n = 1 then () else comment (n-1) lexbuf ) -# 1488 "middle_end/flambda2/parser/flambda_lex.ml.new" +# 1490 "middle_end/flambda2/parser/flambda_lex.ml.new" | 2 -> -# 295 "middle_end/flambda2/parser/flambda_lex.mll" +# 297 "middle_end/flambda2/parser/flambda_lex.mll" ( comment (n+1) lexbuf ) -# 1493 "middle_end/flambda2/parser/flambda_lex.ml.new" +# 1495 "middle_end/flambda2/parser/flambda_lex.ml.new" | 3 -> -# 297 "middle_end/flambda2/parser/flambda_lex.mll" +# 299 "middle_end/flambda2/parser/flambda_lex.mll" ( comment n lexbuf ) -# 1498 "middle_end/flambda2/parser/flambda_lex.ml.new" +# 1500 "middle_end/flambda2/parser/flambda_lex.ml.new" | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_comment_rec n lexbuf __ocaml_lex_state diff --git a/middle_end/flambda2/parser/flambda_lex.mll b/middle_end/flambda2/parser/flambda_lex.mll index af0f29c118a..5ccffa3493f 100644 --- a/middle_end/flambda2/parser/flambda_lex.mll +++ b/middle_end/flambda2/parser/flambda_lex.mll @@ -115,6 +115,7 @@ let prim_table = "array_length", PRIM_ARRAY_LENGTH; "array_load", PRIM_ARRAY_LOAD; "array_set", PRIM_ARRAY_SET; + "begin_region", PRIM_BEGIN_REGION; "Block", PRIM_BLOCK; "block_load", PRIM_BLOCK_LOAD; "Box_float", PRIM_BOX_FLOAT; @@ -122,6 +123,7 @@ let prim_table = "Box_int64", PRIM_BOX_INT64; "Box_nativeint", PRIM_BOX_NATIVEINT; "bytes_length", PRIM_BYTES_LENGTH; + "end_region", PRIM_END_REGION; "get_tag", PRIM_GET_TAG; "int_arith", PRIM_INT_ARITH; "int_comp", PRIM_INT_COMP; diff --git a/middle_end/flambda2/parser/flambda_parser.ml b/middle_end/flambda2/parser/flambda_parser.ml index e364ed6b7ca..43fb3f27e7a 100644 --- a/middle_end/flambda2/parser/flambda_parser.ml +++ b/middle_end/flambda2/parser/flambda_parser.ml @@ -53,6 +53,7 @@ module MenhirBasics = struct | PRIM_INT_COMP | PRIM_INT_ARITH | PRIM_GET_TAG + | PRIM_END_REGION | PRIM_BYTES_LENGTH | PRIM_BOX_NATIVEINT | PRIM_BOX_INT64 @@ -60,6 +61,7 @@ module MenhirBasics = struct | PRIM_BOX_FLOAT | PRIM_BLOCK_LOAD | PRIM_BLOCK + | PRIM_BEGIN_REGION | PRIM_ARRAY_SET | PRIM_ARRAY_LOAD | PRIM_ARRAY_LENGTH @@ -154,12 +156,12 @@ module MenhirBasics = struct | INT of ( # 74 "flambda_parser.mly" (string * char option) -# 158 "flambda_parser_in.ml" +# 160 "flambda_parser_in.ml" ) | IDENT of ( # 73 "flambda_parser.mly" (string) -# 163 "flambda_parser_in.ml" +# 165 "flambda_parser_in.ml" ) | GREATEREQUALDOT | GREATEREQUAL @@ -168,7 +170,7 @@ module MenhirBasics = struct | FLOAT of ( # 68 "flambda_parser.mly" (float) -# 172 "flambda_parser_in.ml" +# 174 "flambda_parser_in.ml" ) | EQUALDOT | EQUAL @@ -244,7 +246,7 @@ let make_boxed_const_int (i, m) : static_data = | Some c -> Misc.fatal_errorf "Bad int modifier for static data: %c" c -# 248 "flambda_parser_in.ml" +# 250 "flambda_parser_in.ml" module Tables = struct @@ -254,236 +256,240 @@ module Tables = struct fun _tok -> match _tok with | AMP -> - 152 + 154 | AT -> - 151 + 153 | BIGARROW -> - 150 + 152 | BLANK -> - 149 + 151 | CARET -> - 148 + 150 | COLON -> - 147 + 149 | COMMA -> - 146 + 148 | DOT -> - 145 + 147 | EOF -> - 144 + 146 | EQUAL -> - 143 + 145 | EQUALDOT -> - 142 + 144 | FLOAT _ -> - 141 + 143 | GREATER -> - 140 + 142 | GREATERDOT -> - 139 + 141 | GREATEREQUAL -> - 138 + 140 | GREATEREQUALDOT -> - 137 + 139 | IDENT _ -> - 136 + 138 | INT _ -> - 135 + 137 | KWD_ALWAYS -> - 134 + 136 | KWD_AND -> - 133 + 135 | KWD_ANDWHERE -> - 132 + 134 | KWD_ANY -> - 131 + 133 | KWD_APPLY -> - 130 + 132 | KWD_ARRAY -> - 129 + 131 | KWD_ASR -> - 128 + 130 | KWD_AVAILABLE -> - 127 + 129 | KWD_BOXED -> - 126 + 128 | KWD_CCALL -> - 125 + 127 | KWD_CLOSURE -> - 124 + 126 | KWD_CODE -> - 123 + 125 | KWD_CONT -> - 122 + 124 | KWD_DEFAULT -> - 121 + 123 | KWD_DEFINE_ROOT_SYMBOL -> - 120 + 122 | KWD_DELETED -> - 119 + 121 | KWD_DEPTH -> - 118 + 120 | KWD_DIRECT -> - 117 + 119 | KWD_DONE -> - 116 + 118 | KWD_DO_NOT_INLINE -> - 115 + 117 | KWD_END -> - 114 + 116 | KWD_ERROR -> - 113 + 115 | KWD_EXN -> - 112 + 114 | KWD_FLOAT -> - 111 + 113 | KWD_HCF -> - 110 + 112 | KWD_HINT -> - 109 + 111 | KWD_ID -> - 108 + 110 | KWD_IMM -> - 107 + 109 | KWD_IMMUTABLE_UNIQUE -> - 106 + 108 | KWD_IN -> - 105 + 107 | KWD_INF -> - 104 + 106 | KWD_INLINE -> - 103 + 105 | KWD_INLINED -> - 102 + 104 | KWD_INLINING_STATE -> - 101 + 103 | KWD_INT32 -> - 100 + 102 | KWD_INT64 -> - 99 + 101 | KWD_LAND -> - 98 + 100 | KWD_LET -> - 97 + 99 | KWD_LOR -> - 96 + 98 | KWD_LSL -> - 95 + 97 | KWD_LSR -> - 94 + 96 | KWD_LXOR -> - 93 + 95 | KWD_MUTABLE -> - 92 + 94 | KWD_NATIVEINT -> - 91 + 93 | KWD_NEVER -> - 90 + 92 | KWD_NEWER_VERSION_OF -> - 89 + 91 | KWD_NOALLOC -> - 88 + 90 | KWD_NOTRACE -> - 87 + 89 | KWD_OF -> - 86 + 88 | KWD_POP -> - 85 + 87 | KWD_PUSH -> - 84 + 86 | KWD_REC -> - 83 + 85 | KWD_REC_INFO -> - 82 + 84 | KWD_REGION -> - 81 + 83 | KWD_REGULAR -> - 80 + 82 | KWD_RERAISE -> - 79 + 81 | KWD_SET_OF_CLOSURES -> - 78 + 80 | KWD_SIZE -> - 77 + 79 | KWD_SUCC -> - 76 + 78 | KWD_SWITCH -> - 75 + 77 | KWD_TAG -> - 74 + 76 | KWD_TAGGED -> - 73 + 75 | KWD_TOPLEVEL -> - 72 + 74 | KWD_TUPLED -> - 71 + 73 | KWD_UNIT -> - 70 + 72 | KWD_UNREACHABLE -> - 69 + 71 | KWD_UNROLL -> - 68 + 70 | KWD_UNSIGNED -> - 67 + 69 | KWD_VAL -> - 66 + 68 | KWD_WHERE -> - 65 + 67 | KWD_WITH -> - 64 + 66 | LBRACE -> - 63 + 65 | LBRACK -> - 62 + 64 | LBRACKPIPE -> - 61 + 63 | LESS -> - 60 + 62 | LESSDOT -> - 59 + 61 | LESSEQUAL -> - 58 + 60 | LESSEQUALDOT -> - 57 + 59 | LESSMINUS -> - 56 + 58 | LPAREN -> - 55 + 57 | MINUS -> - 54 + 56 | MINUSDOT -> - 53 + 55 | MINUSGREATER -> - 52 + 54 | NOTEQUALDOT -> - 51 + 53 | PERCENT -> - 50 + 52 | PIPE -> - 49 + 51 | PLUS -> - 48 + 50 | PLUSDOT -> - 47 + 49 | PRIM_ARRAY_LENGTH -> - 46 + 48 | PRIM_ARRAY_LOAD -> - 45 + 47 | PRIM_ARRAY_SET -> - 44 + 46 + | PRIM_BEGIN_REGION -> + 45 | PRIM_BLOCK -> - 43 + 44 | PRIM_BLOCK_LOAD -> - 42 + 43 | PRIM_BOX_FLOAT -> - 41 + 42 | PRIM_BOX_INT32 -> - 40 + 41 | PRIM_BOX_INT64 -> - 39 + 40 | PRIM_BOX_NATIVEINT -> - 38 + 39 | PRIM_BYTES_LENGTH -> + 38 + | PRIM_END_REGION -> 37 | PRIM_GET_TAG -> 36 @@ -782,6 +788,8 @@ module Tables = struct Obj.repr () | PRIM_ARRAY_SET -> Obj.repr () + | PRIM_BEGIN_REGION -> + Obj.repr () | PRIM_BLOCK -> Obj.repr () | PRIM_BLOCK_LOAD -> @@ -796,6 +804,8 @@ module Tables = struct Obj.repr () | PRIM_BYTES_LENGTH -> Obj.repr () + | PRIM_END_REGION -> + Obj.repr () | PRIM_GET_TAG -> Obj.repr () | PRIM_INT_ARITH -> @@ -870,22 +880,22 @@ module Tables = struct Obj.repr () and default_reduction = - (16, "\000\000\000\000\000\t\000\000\001(\0004\001K\0005\000\252\000\251\000\000\000\000\0002\000\000\000\000\000\000\000\198\000\000\000\209\000\210\000\211\000\207\000\208\000\000\000\206\000\205\000\000\000\212\000\000\000\000\0003\000\254\000\185\000\011\000\000\001.\000\000\000\000\001\004\001\003\000;\0007\0006\000\000\000\000\000\000\000\000\0013\000\000\000\000\000\203\000\202\000\204\000\195\000\000\000\000\0014\000\197\000\000\000\000\000\000\000\000\000\228\000\253\000\000\001\000\000\003\001'\000\000\000\000\000\240\000\158\001&\000\000\000\000\000\000\000\000\000\000\0000\000\000\000\000\000`\000b\000]\001\n\000\000\000\000\000\232\000\000\000\000\000\000\001J\000\000\000\000\000\000\000\000\000\000\000\244\000\162\000\000\001N\000\000\001\024\000\000\000\214\000\000\000\000\000\000\000\000\000n\000\000\000\000\000\000\000m\000\000\000o\000\000\000l\000\000\000k\000\000\000\000\000\000\0001\000\000\000\000\000\000\000\000\000\000\000\181\000\000\000/\000\193\000\187\000\000\000J\000\000\000\000\001H\001G\001F\001E\001D\001C\001B\000\000\000\000\000\000\001@\000\000\000\000\000\000\000\000\000\000\001A\000\201\000\200\001?\000\000\000\000\000D\000C\000B\000\000\000?\000A\000\000\000\000\000\000\001>\001=\001<\000\000\001\t\001\b\001\007\001\006\000\000\000\000\000\127\000~\000\128\000\000\000\000\000\000\000\000\000\250\000\000\000\000\000}\000{\000y\000|\000z\000\000\000\000\000\000\000\000\000\000\000\020\000\021\000\018\000\022\000\019\000\025\000\024\000\023\000\000\000\000\001;\001:\0019\0018\0017\0016\000\000\000\164\000\165\000\000\000$\000\000\000\000\000\000\0011\000\000\001\002\000&\000\199\000\000\000\000\000\000\000\000\001/\000\000\000%\000\000\000\000\000\000\000\000\000\154\000\000\000\"\000\000\000\006\000\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\216\000\215\000j\000h\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\028\0015\000\000\000\180\000\000\000\000\000\177\000\000\000\016\000\017\000Z\000\014\000U\000\015\000X\000V\000Y\000W\000T\000e\000d\000\000\000\000\000g\000c\000f\000\000\000\000\000\000\000\000\000\000\000\026\000\142\000\179\000\178\000\176\000\000\000\000\000\000\000\000\001\018\000\000\000\000\000[\000\\\000\152\000\000\001\015\000\000\000\000\000\224\000\000\000\000\000\160\000\000\001\016\000\000\000\000\000\242\000\000\000\000\000\000\000\000\000R\000Q\000P\000\150\000\000\001\011\000\000\000\000\000\222\000\000\001\017\001\r\001\012\000\000\000\000\000\000\001\023\000\000\001\022\000\000\001\021\000\000\001\020\001\014\001\019\001-\001)\001,\000\234\001+\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001#\000\000\001\029\000\000\001\028\000\000\001\027\000\000\001\030\001\"\000\000\001\026\001!\000\000\001\031\000\000\001$\000\182\000\000\000\000\000\248\001%\000\183\000I\000\000\000\000\000\238\000H\000F\000\000\001 \000\131\000\132\000\000\000\000\000\000\000\000\000\000\000\130\000\129\000\134\000\137\000\000\000\136\000\000\000\000\000\226\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000L\000\000\000\000\000\138\000\139\000\220\000\000\000\000\000\246\000\000\000*\000\000\000\000\000\b\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000,\000\000\000(\000-\000\000\000\000\000\000\000\000\000s\000\000\000\000\000\000\000r\000\000\000q\000\000\000t\000\000\000p\000\000\000\000\000\000\000\000\000\000\000\000\000v\000\000\000u\000\000\000\000\000\173\000\172\000\000\000\000\000 \000!\000\000\000\000\000\000\000_\000^\000\000\000\000\000\000\000\000\000\000\000\218\000\000\000\000\000K\000\004\000\217\000\191\000\189\000\012\000w\000\146\000N\000\000\000\000\000\000\000\156\001L\000\000\000=\000>\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\144\0009\000\147\000:\000\000\000\000\000\000\000\140\000\000\000\000\000\230\000\143\001*\0008\000\000\000\000\000\236\000.\000x\000\000\000\000\000\000\000\148\000\000\000\000\000\000\000\141\000\145\000\000\000\r\000\000\000\000\000\000\000M\000\163\000\001\000\000\000\000\000S\000\002") + (16, "\000\000\000\000\000\t\000\000\001*\0004\001N\0005\000\254\000\253\000\000\000\000\0002\000\000\000\000\000\000\000\200\000\000\000\211\000\212\000\213\000\209\000\210\000\000\000\208\000\207\000\000\000\214\000\000\000\000\0003\001\000\000\187\000\011\000\000\0010\000\000\000\000\001\006\001\005\000;\0007\0006\000\000\000\000\000\000\000\000\0015\000\000\000\000\000\205\000\204\000\206\000\197\000\000\000\000\0016\000\199\000\000\000\000\000\000\000\000\000\230\000\255\000\000\001\002\000\003\001)\000\000\000\000\000\242\000\158\001(\000\000\000\000\000\000\000\000\000\000\0000\000\000\000\000\000`\000b\000]\001\012\000\000\000\000\000\234\000\000\000\000\000\000\001M\000\000\000\000\000\000\000\000\000\000\000\246\000\162\000\000\001Q\000\000\001\026\000\000\000\216\000\000\000\000\000\000\000\000\000n\000\000\000\000\000\000\000m\000\000\000o\000\000\000l\000\000\000k\000\000\000\000\000\000\0001\000\000\000\000\000\000\000\000\000\000\000\182\000\000\000/\000\195\000\189\000\000\000J\000\000\000\000\001K\001J\001I\001H\001G\001F\001E\000\000\000\000\000\000\001C\000\000\000\000\000\000\000\000\000\000\001D\000\203\000\202\001B\000\000\000\000\000D\000C\000B\000\000\000?\000A\000\000\000\000\000\000\001A\001@\001?\000\000\001\011\001\n\001\t\001\b\000\000\000\000\000\127\000~\000\128\000\000\000\000\000\000\000\000\000\252\000\000\000\000\000}\000{\000y\000|\000z\000\000\000\000\000\000\000\000\000\000\000\020\000\021\000\018\000\022\000\019\000\025\000\024\000\023\000\000\000\000\001>\001=\001<\001;\001:\0019\0018\000\000\000\164\000\165\000\000\000$\000\000\000\000\000\000\0013\000\000\001\004\000&\000\201\000\000\000\000\000\000\000\000\0011\000\000\000%\000\000\000\000\000\000\000\000\000\154\000\000\000\"\000\185\000\000\000\006\000\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\218\000\217\000j\000h\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\028\0017\000\000\000\181\000\000\000\000\000\178\000\000\000\016\000\017\000Z\000\014\000U\000\015\000X\000V\000Y\000W\000T\000e\000d\000\000\000\000\000g\000c\000f\000\000\000\000\000\000\000\000\000\000\000\026\000\175\000\142\000\180\000\179\000\177\000\000\000\000\000\000\000\000\001\020\000\000\000\000\000[\000\\\000\152\000\000\001\017\000\000\000\000\000\226\000\000\000\000\000\160\000\000\001\018\000\000\000\000\000\244\000\000\000\000\000\000\000\000\000R\000Q\000P\000\150\000\000\001\r\000\000\000\000\000\224\000\000\001\019\001\015\001\014\000\000\000\000\000\000\001\025\000\000\001\024\000\000\001\023\000\000\001\022\001\016\001\021\001/\001+\001.\000\236\001-\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001%\000\000\001\031\000\000\001\030\000\000\001\029\000\000\001 \001$\000\000\001\028\001#\000\000\001!\000\000\001&\000\183\000\000\000\000\000\250\001'\000\184\000I\000\000\000\000\000\240\000H\000F\000\000\001\"\000\131\000\132\000\000\000\000\000\000\000\000\000\000\000\130\000\129\000\134\000\137\000\000\000\136\000\000\000\000\000\228\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000L\000\000\000\000\000\138\000\139\000\222\000\000\000\000\000\248\000\000\000*\000\000\000\000\000\b\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000,\000\000\000(\000-\000\000\000\000\000\000\000\000\000s\000\000\000\000\000\000\000r\000\000\000q\000\000\000t\000\000\000p\000\000\000\000\000\000\000\000\000\000\000\000\000v\000\000\000u\000\000\000\000\000\173\000\172\000\000\000\000\000 \000!\000\000\000\000\000\000\000_\000^\000\000\000\000\000\000\000\000\000\000\000\220\000\000\000\000\000K\000\004\000\219\000\193\000\191\000\012\000w\000\146\000N\000\000\000\000\000\000\000\156\001O\000\000\000=\000>\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\144\0009\000\147\000:\000\000\000\000\000\000\000\140\000\000\000\000\000\232\000\143\001,\0008\000\000\000\000\000\238\000.\000x\000\000\000\000\000\000\000\148\000\000\000\000\000\000\000\141\000\145\000\000\000\r\000\000\000\000\000\000\000M\000\163\000\001\000\000\000\000\000S\000\002") and error = - (153, "\000\000\000\000\000\000\001\000\004\016\000\000@\002\000 \000\000\000\000\000\000\000\000\000\128\002\b\000\000 \001\000\016\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\002\000\000\000\000\016\0000\000\000\000\000\016\000\000\003@ \128\000\000\000\000\000\000\000\000\000\000\000\000\001\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000@@\000\000\004\000\128\000\012\000\000\000\000\000\000\000\000\004\000 \000\000\002\000@\000\006\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000@\b\000\000\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\001\000 \000\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000@@\000\000\004\000\128\000\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\0000\000\000\000\000\016\000\000\003@ \128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002@\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\b \024\000\001\128\000\b\000\000\001\128\016@\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002@\000\004\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\192\128\000\000$\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001 \000\002\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\016@0\000\000\000\000\016\000\000\003\000 \132\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0000\128\004\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\004\000\012\000\000\000\000\004\000\000\000\192\b \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\001\000\000\000\000\000\b\000@\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\128@\000\b\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\001\000\000 \000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012 \001\000D\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\b \000\002\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\002\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\130\004\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\004\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\016\000\031\255\255\255\000\000\000\000\016\000\000\000\000\004\000\194\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 0\"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\001\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 0\"\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\001\001\129\000\000\000\024@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\194\000\016\000\000\000\000\000\000\000\000\000\000\000\192\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\016\000\128\000\000\000\000\000\000\001\000\000\000\000\000\128\000\000\b\000\000 \000\000\000\000\000\000\000\016\000\000\016\024\016\000\000\001\132\000\016\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\194\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0000\128\004\000\004\000\000\000\000\002\128\000\000\000\000\000\000\000\000\002\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000a\000\b\000\000\000\000\000\000\000\016\000\000\000\000\b\000\000\000\128\000\002\000\000\000\000\000\000\000\000\000\000\001\001\129\000\000\000\024@\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012 \001\002\128\000\000\000\002\136\000\000\000\000\018\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\b\000@\000\000\000\000\000\000\000\128\000\000\000\000@\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000H\000\016\000b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\t\000\000\000\004@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\002@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\004\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\128 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\004@\000\000a\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012 \001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\132\000 \004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000@\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0000\128\016\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\194\000\016\000\000\000\000\000\000\000 \000\000\000\000\016\000\000\001\000\000\004\000\000\000\000\000\000\000\000\000\000\001\000\006 \000\0000\128\002\000\000\000\000\000\000\000\000\000\000\000\128\002\000\000\000\024@\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012 \001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\132\000 \004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\b\001\000\000\024\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\016\000\128\000\000\000\000\000\000\001\000\000\000\000\000\128\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \240`\000\000\000\219<@\000\000\003\208 \000\000B=\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\b\000@\000\000\000\000\000\000\000\128\000\000\000\000@\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012 \001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\b\000@\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\001\000\000\000\016\000\000@\000\000\000\000\000\000\000\000\004\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\015\000\000\000\000\000\000\000\000\000\000\004\000\000\000\004\000\194\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\001\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000 \b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000 0\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\024\000\000\000\000\000\000\000\000\136\000\024\004\006\004@\000\004\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000 \000\000\000\004\000\000\000\000 \000\000\000\000\000\000\000\000\000\016\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002 \000\000\016\024\017\000\000\016\000\000\000E\000\000\000\000$\000\000\128\000\000\000\000\000\000 \000\144\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000$\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b \000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\000\000\000\128\192\136\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\000\000\000\000\001\000\000 \000\000\000\000\000\000@\000$\000\b\128\000\000\000\000\128\000\016\000\000\000\000\000\000 \000\018\000\004@\000\000\000\000@\000\b\000\000\000\000\000\000\016\000\t\000\002 \000\000\000\000 \000\005\000\000\000\000\000\000\001\000\004\128\001\016\000\000\000\000\016\000\002\000\000\000\000\000\000\004\128\002P\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\136\000\000\000\000\000\000\000\000\136\128\024\004\006\004@\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002 \000\000\000\000 \000\004\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\004@\000\192 0\"\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\016\000A\000\000\004\000 \002\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001 \000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\001\000\b\000\000\000\006\000\004\004\000\128\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\004\000 \000\002\000\024\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\128\004\000\000\000\003\000\000\000\000@\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\b\000\128\004\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\001\000\000\000\000\000\004\000\000\000\000\128\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000@\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\b\136\001\128@`D\000\000@\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\136\128\024\004\006\004@\000\004\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\018\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002@\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\001\128\000\000\000\000\128\000\000\b\001\004\000\b\000\000\000\000\000\000\192\000\016\000\000@\000\000\004\128\130\000\004\000\000\000\000\000\000`\000\000\000\000 \000\000\002@A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\b\b\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\128\002\b\000\000 \001\000\016\016\000\000\b\000\000\000\000\000\000\000\000\000\128\000\000\000\000\004\000 \000\000\000\000\000\000\000\000\000\016\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\b\000 \128\000\002\000\016\001\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\016\000A\000\000\004\000 \002\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\001\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\012\000\000\000\000\004\000\000\000\192\b \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000 \000\130\000\000\b\000@\004\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\002\000\b \000\000\128\004\000@@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\b\000 \128\000\002\000\016\001\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\001\004\000\000\016\000\128\b\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000") + (155, "\000\000\000\000\000\000\000@\001\004\000\000\016\000\128\b\b\000\000\000\000\000\000\000\000\000\b\000 \128\000\002\000\016\001\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000 \000\000\000\000@\000\192\000\000\000\000@\000\000\r\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\004\004\000\000\000@\b\000\000\192\000\000\000\000\000\000\000\000\016\000\128\128\000\000\b\001\000\000\024\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\004\000\128\000\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\001\000 \000\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\004\004\000\000\000@\b\000\000\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\192\000\000\000\000@\000\000\r\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000$\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\b \024\000\001\128\000\b\000\000\001\128\016@\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000$\000\000@\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\b\000\000\002@\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\128\000\b\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000A\000\192\000\000\000\000@\000\000\012\000\130\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0000\128\004\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\194\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\001\000\003\000\000\000\000\001\000\000\0000\002\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\128\004\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\128@\000\b\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\016\000\002\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\194\000\016\004@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\136\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\b \000\002\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@ \000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\130\004\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000@\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\004\000\007\255\255\255\240\000\000\000\001\000\000\000\000\000@\012 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 0\"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\001\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 0\"\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000@`@\000\000\006\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012 \001\000\000\000\000\000\000\000\000\000\000\000\003\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\024@\002\000\000\000\000\000\000\000\001\000\000\000\000\000\128\000\000\b\000\000 \000\000\000\000\000\000\000\004\000\000\004\006\004\000\000\000a\000\004\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\012 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0000\128\004\000\004\000\000\000\000\000\160\000\000\000\000\000\000\000\000\000\160\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\132\000 \000\000\000\000\000\000\000\016\000\000\000\000\b\000\000\000\128\000\002\000\000\000\000\000\000\000\000\000\000\000@`@\000\000\006\016\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\194\000\016(\000\000\000\000\n \000\000\000\000J\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\b\000@\000\000\000\000\000\000\000 \000\000\000\000\016\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\t\000\002\000\012@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\004\128\000\000\002 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\018\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\128\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\001\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000D\000\000\006\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\b\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\132\000 \004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\004\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\194\000@\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0000\128\004\000\000\000\000\000\000\000\002\000\000\000\000\001\000\000\000\016\000\000@\000\000\000\000\000\000\000\000\000\000\004\000\024\128\000\000\194\000\b\000\000\000\000\000\000\000\000\000\000\000\128\002\000\000\000\024@\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\b\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\132\000 \004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\b\001\000\000\024\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000a\000\b\000\000\000\000\000\000\000\004\000\000\000\000\002\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \240`\000\000\0006\207\016\000\000\000\244\b\000\000\016\143@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012 \001\000\000\000\000\000\000\000\000\128\000\000\000\000@\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\b\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012 \001\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\002\000\000\000 \000\000\128\000\000\000\000\000\000\000\000\002\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \001\224\000\000\000\000\000\000\000\000\000\000 \000\000\000 \006\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000(\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\b\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\016\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\016\024\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\192\000\000\000\000\000\000\000\001\016\0000\b\012\b\128\000\b\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\016\000\000\000\000\128\000\000\000\004\000\000\000\000\000\000\000\000\000\002\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000D\000\000\002\003\002 \000\002\000\000\000\b\160\000\000\000\001 \000\004\000\000\000\000\000\000\001\000\004\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\128\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\016\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\136\000\000\004\006\004@\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\"\000\000\000\000\000\128\000\016\000\000\000\000\000\000 \000\018\000\004@\000\000\000\000\016\000\002\000\000\000\000\000\000\004\000\002@\000\136\000\000\000\000\002\000\000@\000\000\000\000\000\000\128\000H\000\017\000\000\000\000\000@\000\n\000\000\000\000\000\000\002\000\t\000\002 \000\000\000\000\b\000\001\000\000\000\000\000\000\002@\001(\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\004@\000\000\000\000\000\000\000\001\017\0000\b\012\b\128\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\000\000\000\000\000@\000\b\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\002 \000`\016\024\017\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\002\000\b \000\000\128\004\000@@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002@\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000 \001\000\000\000\000\192\000\128\128\016\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\b\000@\000\004\0000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\004\000 \000\000\000\024\000\000\000\002\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\004\000@\002\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000 \000\000\000\000\000\128\000\000\000\016\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\002\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\017\016\003\000\128\192\136\000\000\128\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\017\0000\b\012\b\128\000\b\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000$\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\192\000\000\000\000@\000\000\004\000\130\000\004\000\000\000\000\000\000\024\000\002\000\000\b\000\000\000\144\016@\000\128\000\000\000\000\000\003\000\000\000\000\001\000\000\000\018\002\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\001\001\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\004\000\016@\000\001\000\b\000\128\128\000\000@\000\000\000\000\000\000\000\000\001\000\000\000\000\000\b\000@\000\000\000\000\000\000\000\000\000\b\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000@\001\004\000\000\016\000\128\b\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\002\000\b \000\000\128\004\000@@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\002\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\001\128\000\000\000\000\128\000\000\024\001\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\016\000A\000\000\004\000 \002\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\001\000\004\016\000\000@\002\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000@\001\004\000\000\016\000\128\b\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\002\b\000\000 \001\000\016\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000") and start = 2 and action = - ((16, "\002\016\002\016\000\000\000\005\000\000\000\000\000\000\000\000\000\000\000\000\000z\000\215\000\000\002\n\002\n\000\255\000\000\000[\000\000\000\000\000\000\000\000\000\000\000[\000\000\000\000\000\000\000\000\000\026\002\n\000\000\000\000\000\000\000\000\000\206\000\000\000\130\000\016\000\000\000\000\000\000\000\000\000\000\000\006\001>\000\016\001\206\000\000\001\150\000E\000\000\000\000\000\000\000\000\000\016\002*\000\000\000\000\000\130\000\005\002\016\000\005\000\000\000\000\0024\000\000\000\000\000\000\000\214\000\206\000\000\000\000\000\000\000v\000\005\0010\000\005\001\t\000\000\000\148\001\t\000\000\000\000\000\000\000\000\000\031\000\005\000\000\002v\001\212\000\132\000\000\002\192\000\005\000\224\000\019\000\132\000\000\000\000\003\200\000\000\003\n\000\000\001\192\000\000\001J\003\134\000\255\003\224\000\000\003\140\000\200\003\230\000\000\003\234\000\000\003\240\000\000\003\244\000\000\003t\003\162\000\255\000\000\003\250\000\153\003\166\001\t\004\000\000\000\001\t\000\000\000\000\000\000\003.\000\000\003\000\000\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\t\002\254\000\132\000\000\003\180\001\t\003\188\001\t\004\016\000\000\000\000\000\000\000\000\003\188\002x\000\000\000\000\000\000\001\152\000\000\000\000\003\196\002x\004\022\000\000\000\000\000\000\0016\000\000\000\000\000\000\000\000\000\005\000^\000\000\000\000\000\000\000\005\000\224\0016\001\160\000\000\000\005\000^\000\000\000\000\000\000\000\000\000\000\000\005\001\180\0016\000\005\000^\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\002T\000\000\000\000\000\000\000\000\000\000\000\000\000l\000\000\000\000\002\142\000\000\000 \003\194\003$\000\000\004\030\000\000\000\000\000\000\000\011\003\204\000\206\004$\000\000\000 \000\000\000\007\000\206\003\208\002\220\000\000\004(\000\000\001N\000\000\000\000\000\005\000z\003\212\000\005\000\004\000\214\002\146\002\162\000\000\000\000\000\000\000\000\000\005\002\252\001N\002:\000\005\001\180\003\214\000\005\001\240\000\000\000\000\000[\000\000\000\005\003\016\000\000\000^\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\003*\000\000\000\000\000\000\003\218\000\005\000\164\000\005\003\156\000\000\000\000\000\000\000\000\000\000\001N\000v\003,\001\"\000\000\003\222\0010\000\000\000\000\000\000\0046\000\000\002b\001\t\000\000\003\214\002n\000\000\004:\000\000\000\r\001\t\000\000\000\007\000\206\003\232\002\226\000\000\000\000\000\000\000\000\004@\000\000\002\172\002|\000\000\004T\000\000\000\000\000\000\0036\0003\003b\000\000\003d\000\000\003f\000\000\003h\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000.\001\t\002\148\000\184\003^\003\020\003\162\003Z\003\190\000\031\001\168\000\000\002T\000\000\002t\000\000\002\168\000\000\002\006\000\000\000\000\001\128\000\000\000\000\000\255\000\000\003l\000\000\000\000\003~\000\031\000\000\000\000\000\000\000\000\003\168\000\206\000\000\000\000\000\000\004T\000\000\000\000\000\000\002T\002t\002\168\002\006\001\128\000\000\000\000\000\000\000\000\004Z\000\000\003.\001\t\000\000\001\t\001\t\001\t\004\014\000\016\004h\000\016\000\000\002\190\000\184\000\000\000\000\000\000\003H\000\184\000\000\003(\000\000\003^\002\016\000\000\000\016\000\000\001\166\004\016\001\t\001\156\004h\000\000\002p\000\000\000\000\002\202\004\020\000\255\004l\000\000\004\024\002\144\004p\000\000\004r\000\000\004t\000\000\004v\000\000\002\152\004\"\003\166\004&\000\255\004~\000\000\004\128\000\000\003d\000\005\000\000\000\000\003t\000\184\000\000\000\000\0044\000\184\004\134\000\000\000\000\000r\003p\002\162\004:\000\130\000\000\004\148\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\156\001J\001\184\000\000\000\000\002\248\000\000\000\000\003\\\003\136\002\128\000v\003T\003\214\002\128\000\000\000\000\000\000\000\000\003T\003\216\002\128\000\000\003.\001\t\000\000\000\000\000\000\000\000\001\224\000\016\000\000\000\000\000\000\003T\003\218\002\016\000\000\003T\003\220\002\016\000\000\000\000\004\152\000\000\003\134\002\016\003\148\000\000\000\000\000\000\002\016\003\150\000\000\000\000"), (16, "\000\018\0002\001\130\000.\000\026\005\014\003\201\003\193\000B\004\214\000:\0006\000n\001\250\003\234\003\r\002*\002.\0022\0026\002:\002>\002B\002F\002V\002n\002r\002v\002z\002\170\002\174\002\178\002\226\003\018\003F\003J\003N\003R\003V\003Z\003^\003\174\003\202\004\014\004.\000\202\000\206\005\174\000.\003\153\004\189\005\198\003\r\000\210\004J\003\030\004N\003\"\003\r\000J\002\253\000\018\000.\004R\002\246\000v\005b\003\r\003\r\003\150\000N\004\001\004\189\002\221\005j\005r\005\206\003\249\005\162\003\005\0042\002\129\003\005\000.\005\214\005\222\005z\000\178\000\194\003b\000B\000\026\005\230\003v\004V\003&\005\242\003*\004Z\003\153\004^\003.\003\005\003f\004b\002\250\004f\002\254\003\r\002\149\000\130\002\181\000\238\000.\003\249\002q\006\006\000\150\001Z\003\185\000\238\000\154\0016\005!\000\158\002\221\002\221\005!\002\149\003\249\003\249\002\149\002\149\000\022\000\026\003\r\003\r\001*\001\129\000\030\0032\002\206\002\210\0036\000\162\003:\003b\003\r\004\202\004\206\004\246\005\022\002\181\003\r\005\174\007\174\001\022\004\017\005\198\002\025\003f\002\149\006\174\003\238\002Y\002\149\002\221\002q\002q\000\017\003\249\003\185\003\185\006F\006J\002\214\000y\003Q\000\154\001\129\002\181\000\158\001\158\006N\004j\003\002\004n\003\006\001\129\004r\001\194\006R\006V\002\221\002\221\000\026\002\221\003\249\003\249\006Z\002\157\000\162\001n\006^\002\157\002\221\003\222\001\129\002q\003\249\003\225\002\221\003\185\000\169\000\182\003\249\000\253\000y\001\129\000.\004a\001\202\004\017\006\006\004a\001B\004a\001\210\004\158\003Q\003Q\003\161\002i\001\170\001\218\002q\002q\005J\000\142\003\185\003\185\007~\002\229\000\190\002\157\000y\002\182\002q\001\162\000.\004\002\003\185\003\169\002q\002\186\002\190\000\253\003\185\000\198\000\017\004*\004a\002\194\002\157\004a\000.\000\169\002\153\001\186\0016\003Q\002\153\003\161\000\017\003\206\002\234\003\137\002\146\003\210\000\169\005R\000\026\000u\004a\002i\002i\005V\002\149\000\026\000\226\004\017\004\017\003Q\004\214\001\006\0012\004\017\001j\003Q\000.\004\190\003Q\000\017\000\017\003\169\003\169\002\169\001\162\000\017\003Q\002\169\002\153\000\169\000\169\000\153\003Q\000:\003y\005\246\000\006\000\018\005\250\002\165\000u\002y\002i\002\165\003Q\006\230\000>\002\153\001\161\005\234\000\n\002\245\002\157\006\250\000^\002\157\000\014\005\254\005\202\002\017\003\225\003\225\003\169\0019\000\169\002\161\003\225\002\169\000u\002\161\002i\003q\004a\000\162\001B\004a\002\237\000\026\001&\000q\004\030\002i\000J\002\165\000\153\000\018\002\169\002i\000\018\bV\003\169\006\214\000\006\000N\003b\002a\001f\000\153\002Q\000\137\000.\003\169\002\165\006\218\002\245\005\238\000\n\003\169\003f\002\161\000.\006\226\000\014\000B\000\026\0019\007\226\006\254\000\137\002\153\000q\000\137\002\153\000.\002\130\004\193\003\246\000\246\002\161\002\237\000\153\000\153\002\134\002\138\b\n\007\"\003\129\002\149\002\149\003i\002\142\005\210\007\n\002\149\002\150\006\190\0051\006\214\000q\003\209\007F\003n\000\237\000\018\007*\003r\0019\005\218\002\169\006\218\004\193\002\169\001\017\004\197\000\026\000\153\0072\006\226\004\238\004\214\005&\000\026\006\022\002\185\002\165\002\237\007\026\002\165\003\217\007:\000.\001\161\001\161\005\226\0019\002\245\000i\001\161\003\145\003\209\000\026\004\166\006\202\002\017\005\170\0019\001\025\004\181\003\242\003\177\002\161\0019\005\162\002\161\004\197\005B\007j\001f\003\209\007\246\002\237\003i\001v\003\217\002\185\006\170\001\146\007\250\000\022\000\026\001\154\005&\000\026\001\174\000\030\001\182\001\190\000i\001\198\003\145\001\206\005\186\004\197\001\214\006.\001\222\001\230\001\234\001\246\001\254\000\237\002\006\002\185\002\030\002&\002N\002Z\002b\0051\002j\002~\002\158\002\166\003z\003~\000i\003\134\b>\003\154\003\162\003\186\003\198\003\226\004\"\000\161\004\150\004\198\004\210\004\230\004\250\006~\005\006\005\"\005:\005N\005^\005f\005n\005v\005~\003\209\005\178\005\194\005\178\006\n\006B\006v\000\026\006\150\006\158\002\025\006\210\006\234\006\246\007\014\007\022\007\030\007&\007.\0076\007>\007J\007N\007R\007Z\007b\007z\007\138\007\146\007\162\007\170\007\182\b\006\b\022\b2\bn\b~\b\142\b\150\b\159\b\179")) + ((16, "\000D\000D\000\000\000\005\000\000\000\000\000\000\000\000\000\000\000\000\000\142\000\215\000\000\002$\002$\000\127\000\000\002$\000\000\000\000\000\000\000\000\000\000\002$\000\000\000\000\000\144\000\000\000d\002$\000\000\000\000\000\000\000\000\000\226\000\000\001P\001\020\000\000\000\000\000\000\000\000\000\000\000~\001f\001\020\001\236\000\000\001\218\000/\000\000\000\000\000\000\000\000\001\020\002l\000\000\000\000\000z\000\005\000\000\000\005\000\000\000\000\002x\000\000\000\000\000\000\000\210\000\226\000\000\000\000\000\000\001\168\000\005\001~\000\005\000#\000\000\000o\000#\000\000\000\000\000\000\000\000\000\172\000\005\000\000\000\031\003V\000\015\000\000\002\186\000\005\003\170\000\019\000\015\000\000\000\000\003\196\000\000\002\252\000\000\000#\000\000\000\248\003v\000\127\003\210\000\000\003z\000U\003\216\000\000\003\222\000\000\003\226\000\000\003\228\000\000\003d\003\146\000\127\000\000\003\238\000\r\003\154\000#\003\246\000\000\000#\000\000\000\000\000\000\003\030\000\000\002\240\000\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000#\002\240\000\015\000\000\003\166\000#\003\174\000#\004\004\000\000\000\000\000\000\000\000\003\172\000x\000\000\000\000\000\000\003(\000\000\000\000\003\182\000x\004\012\000\000\000\000\000\000\001\b\000\000\000\000\000\000\000\000\000\005\000^\000\000\000\000\000\000\000\005\001\240\001\b\002h\000\000\000\005\000^\000\000\000\000\000\000\000\000\000\000\000\005\002|\001\b\000\005\000^\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\002\162\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002:\000\000\000\000\000\020\000\000\000\021\003\184\003\026\000\000\004\022\000\000\000\000\000\000\000\028\003\190\000\226\004\026\000\000\000\021\000\000\000\248\000\226\003\194\000\005\000\000\004\030\000\000\000\000\001\\\000\000\000\000\000\005\001\250\003\198\000\005\000`\002@\002\134\000\180\000\000\000\000\000\000\000\000\000\005\002\210\001\\\000\248\000\005\002\156\003\202\000\005\002 \000\000\000\000\002$\000\000\000\005\002\216\000\000\000^\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\003\024\000\000\000\000\000\000\003\204\000\005\000\142\000\005\003F\000\000\000\000\000\000\000\000\000\000\000\000\002\230\001\168\003\030\000\146\000\000\003\210\002\234\000\000\000\000\000\000\004.\000\000\003^\000,\000\000\003\202\002\178\000\000\0040\000\000\000\r\000,\000\000\000\248\000\226\003\218\000\004\000\000\000\000\000\000\000\000\0046\000\000\003t\000\004\000\000\004J\000\000\000\000\000\000\003(\002\180\003T\000\000\003V\000\000\003X\000\000\003Z\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\200\000#\002h\000\182\003\014\001\248\001\202\003\014\003\172\001\136\001\190\000\000\002,\000\000\002>\000\000\002\178\000\000\000\133\000\000\000\000\001,\000\000\000\000\000\127\000\000\003X\000\000\000\000\002L\001\136\000\000\000\000\000\000\000\000\003\174\000\226\000\000\000\000\000\000\004D\000\000\000\000\000\000\002,\002>\002\178\001\180\001Z\000\000\000\000\000\000\000\000\004J\000\000\003\158\000#\000\000\000#\000#\000#\003\248\001\020\004V\001\020\000\000\002\214\000\182\000\000\000\000\000\000\003\024\000\182\000\000\000\220\000\000\003F\000D\000\000\001\020\000\000\002\026\003\248\000#\002\160\004T\000\000\002<\000\000\000\000\002\138\003\252\000\127\004X\000\000\004\000\002\146\004\\\000\000\004^\000\000\004`\000\000\004b\000\000\000\026\004\012\003\144\004\016\000\127\004l\000\000\004p\000\000\002\202\000\005\000\000\000\000\003`\000\182\000\000\000\000\004 \000\182\004v\000\000\000\000\000j\003\\\000\180\004&\002\186\000\000\004\132\001\020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002^\001d\001\224\000\000\000\000\002\208\000\000\000\000\003Z\003t\002l\001\168\003R\003\194\002l\000\000\000\000\000\000\000\000\003R\003\196\002l\000\000\0034\000#\000\000\000\000\000\000\000\000\002\022\001\020\000\000\000\000\000\000\003R\003\200\000D\000\000\003R\003\202\000D\000\000\000\000\004\138\000\000\003t\000D\003\130\000\000\000\000\000\000\000D\003\132\000\000\000\000"), (16, "\000\018\000.\001\130\0002\000\018\005\026\003\209\003\201\002\129\005\246\002a\001\129\003\145\0006\002Q\002\253\002*\002.\0022\0026\002:\002>\002B\002F\002V\002n\002r\002v\002z\002\170\002\174\002\178\002\226\003\018\003F\003J\003N\003R\003V\003Z\003^\003b\003\178\003\206\003\210\004\022\0046\004\t\000.\000.\001\194\001f\001\129\003Y\004R\003\030\004V\003\"\000\202\000\206\003\242\001\129\003Y\004Z\002\246\005\250\000\210\000\137\001\162\003z\002\253\004\197\000.\004\001\000B\003\021\004\214\004\218\005\002\005\"\001\129\001\202\004:\002\229\000n\001\250\000\137\001\210\003Y\000\137\003\154\000\006\003\r\004\197\001\218\003\r\004^\003&\001B\003*\004b\005=\004f\003.\000v\000\n\004j\002\250\004n\002\254\000\238\000\014\004\001\002\181\003\021\003\r\007R\003\193\000\238\003r\003\021\000\026\000\130\003v\0016\002q\002\149\004\001\004\001\003\021\003\021\001n\003\005\001&\004\025\000\022\000\026\002\229\002\229\0052\000\026\000\030\0032\002\206\002\210\0036\006\226\003:\000\246\000\178\000\194\002\253\003\161\002\130\002\181\005\186\001\022\005\174\006\230\005\210\000\026\002\134\002\138\006\186\003\254\004\226\006\238\005V\004\001\002\142\003\021\003\193\003\193\002\150\006R\006V\000\017\002\214\002\229\002q\002q\002\157\002\181\006\214\006Z\002\157\004r\003\002\004v\003\006\003Y\004z\006^\006b\001\170\004\001\004\001\003\021\003\021\0016\006f\004\025\003\161\002\237\006j\002\229\002\229\004\001\002\229\003\021\005^\000\026\003\193\004\001\000\018\003\021\005b\002\229\003f\004\166\002q\001Z\000\150\002\229\006\018\002\182\002\153\002\157\000\026\001\186\002\153\004i\003j\002\186\002\190\004i\000\182\004i\002\025\003\193\003\193\002\194\007\138\001\025\003Y\003Y\002\157\002q\002q\000.\000\142\003\193\002i\000\154\000.\000\161\000\158\003\193\000\190\002q\005\186\002\149\002\149\001\162\005\210\002q\004\201\002\149\000\017\004\025\004\025\000\169\002\153\000.\004i\004\025\000\162\004i\006\002\003\177\005\198\006\006\000\017\003\214\0042\003Y\002\169\003\218\000\153\005\218\002\169\002\153\001*\005\246\000\198\002\165\004i\005\226\005\234\002\165\006\n\006\002\006\"\004\201\006\006\005\242\002i\002i\003\225\005\254\003\233\000\017\000\017\003Y\000y\0019\003Y\000\017\002\157\000.\002\017\002\157\000\226\006\n\003Y\001\161\000\169\002\245\001\006\006\018\003Y\000:\002\169\003\177\003\177\000.\0012\001\158\000.\000\169\004\189\002\165\002\149\000\153\000>\003\225\003\246\002i\001\129\005\250\000\026\002\169\000^\002\161\005\214\000y\000\153\002\161\002y\000\018\002\165\002\149\000.\002\153\002\149\000.\002\153\000\006\004i\0019\007\238\004i\000\169\000\169\003\177\002i\007\n\002\234\000\162\003f\000J\000\n\002\245\000y\000u\002Y\002i\000\014\006\242\000\153\000\153\000N\002i\003j\002\149\007\022\007\006\000.\002\149\002\161\003\230\bb\003\177\000q\006\202\001\017\005\222\000\169\003\217\b\022\0019\000B\000\026\003\177\007v\005\230\000\253\000\237\002\161\003\177\000.\007.\006\226\002\169\000\153\000u\002\169\004\205\002\245\007&\002\189\004\174\002\165\004\n\006\230\002\165\003q\003\169\0019\005n\0076\007\186\006\238\003\129\000q\003\233\003\233\005v\005~\0019\003\217\003\233\007>\000u\003y\0019\002\017\005\182\000\253\005\134\001\161\001\161\000i\002\245\000\154\007F\001\161\000\158\004\205\003\217\000.\002\189\000q\005\238\b\002\003\137\003\153\003\250\003\169\002\146\005-\004&\b\006\000\026\005-\003\185\005\174\000\162\004\226\001B\002\161\001f\001j\002\161\001v\000\026\004\205\001\146\001\154\002\189\001\174\001\182\001\190\000i\001\198\000\237\004\202\001\206\003q\001\214\001\222\000\026\006\182\001\230\001\234\001\246\004\226\003\153\001\254\002\006\002\030\002&\006:\002N\002Z\002b\002j\002~\005\190\002\158\002\166\000i\005=\003~\003\130\003\138\003\158\003\166\003\190\003\202\003\234\003\217\004*\004\158\004\210\bJ\004\222\004\242\005\006\005\018\005.\005F\005Z\005j\005r\005z\005\130\005\138\005\206\006\022\006N\006\130\006\162\006\170\006\222\006\246\007\002\007\026\007\"\007*\0072\007:\007B\007J\002\025\007V\007Z\007^\007f\004\250\007n\007\134\007\150\007\158\007\174\007\182\007\194\b\018\b\"\b>\005N\bz\b\138\b\154\b\162\b\171\b\191\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\138")) and lhs = - (8, "\001\000\136\135\134\134\134\133\133\133\133\133\133\132\132\132\132\131\131\131\131\131\131\131\131\130\130\130\130\130\130\129\129\128\127\127~~}}||{{{zyxwvvuuttsrrqpppoooooonnmmmlkjihhgggfeeeeeeeddcbba``_____^^^]]]]]\\\\\\\\\\[ZYYXXXXXWWWVVVVUUTTSRRQPONNMMLKJJIIHHGGFFEEDDCBBBAAAAA@@???????>=<;;::9988776655433322211100000//..--,,++**))((''&&%%$$##\"\"!! \031\031\030\030\029\029\028\028\028\028\027\027\026\026\025\025\024\024\024\024\024\023\022\022\022\022\022\022\022\022\021\020\020\020\020\019\018\018\018\018\018\018\018\018\018\018\018\018\017\016\015\014\r\r\r\r\r\012\011\011\n\t\b\b\007\007\007\007\007\007\007\007\007\007\007\007\007\007\007\007\007\007\007\007\006\005\004\003\002\002") + (8, "\001\000\137\136\135\135\135\134\134\134\134\134\134\133\133\133\133\132\132\132\132\132\132\132\132\131\131\131\131\131\131\130\130\129\128\128\127\127~~}}|||{zyxwwvvuutssrqqqppppppoonnnmlkjiihhhgfffffffeedccbaa`````___^^^^^]]]]]\\[ZZYYYYYXXXWWWWVVUUTSSRQPOONNMLKKJJIIHHGGFFEEDCCCBBBBBAA@@@@@@@@?>=<;;::9988776655433322211100000//..--,,++**))((''&&%%$$##\"\"!! \031\031\030\030\029\029\028\028\028\028\027\027\026\026\025\025\024\024\024\024\024\023\022\022\022\022\022\022\022\022\021\020\020\020\020\019\018\018\018\018\018\018\018\018\018\018\018\018\017\016\015\014\r\r\r\r\r\012\011\011\n\t\b\b\007\007\007\007\007\007\007\007\007\007\007\007\007\007\007\007\007\007\007\007\007\006\005\004\003\002\002") and goto = - ((16, "\000\b\000v\000\000\001\018\000\000\000\000\000\000\000\000\000\000\000\000\000\029\000\177\000\000\001\020\001:\000x\000\000\001.\000\000\000\000\000\000\000\000\000\000\001\250\000\000\000\000\000\000\000\000\000\000\001T\000\000\000\000\000\000\000\000\000\015\000\000\000\000\000\160\000\000\000\000\000\000\000\000\000\000\000r\000\000\001\170\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\002\012\000\000\000\000\000\000\000\178\000x\000\000\000~\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000N\000\000\000\000\000\000\000\t\0020\000\000\000l\001h\000\000\000\146\000j\000\000\000\000\000\000\000\000\000\000\0028\000\000\001T\000\000\001`\000\000\000\000\001\130\000\000\000\000\002d\000\000\000\000\000\000\000\000\000\000\000\000\002\n\000\000\001\220\000\000\001F\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002Z\000\000\000\000\0016\000\000\002\190\000\000\000\000\002\196\000\000\000\000\000\000\000\000\000\000\000\000\000\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002B\000\000\002\212\000\000\000\000\002\202\000\000\002\206\000\000\000\000\000\000\000\000\000\000\000\000\002\"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002$\000\000\000\000\000\000\000\000\002\214\000\000\000\000\000\000\000\000\001\138\002\\\000\000\000\000\000\000\001\144\000\000\002\220\002\212\000\000\001\182\002b\000\000\000\000\000\000\000\000\000\000\001\184\000\000\002\228\001\188\002\018\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\198\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\150\000\000\000\000\000\197\000\000\002\234\000\000\003\014\000\000\000\000\000\000\000\000\000\000\003\016\000\000\003\020\000\000\000\000\002\250\000\000\002\172\003\028\000\000\000\024\000\000\000\000\000\000\002*\000\000\000\000\001\200\000\000\000\000\001\206\000\000\002|\000\000\001(\000\000\000\000\000\000\000\000\001\214\000\000\002.\002\184\001\222\000\000\000\000\001\238\000\000\000\000\000\000\002N\000\000\001\240\000\000\000\000\000[\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\252\000\000\000\000\000\000\000\000\000\000\002\000\000\000\002\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000$\000\000\000\158\000\000\000\000\000&\000\000\000\000\000\000\000\000\000\000\000\000\002@\000\000\000\000\001\210\000\000\000\000\000\000\000\000\000\204\000\000\002\186\003(\000\000\000\248\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\000\000\000\000\000\000\000\000\000\000\003\026\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\158\002F\002\160\002<\000J\000\000\000\000\000D\000\000\002\136\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\228\000\000\000\000\000\000\000\000\000\000\002\188\000\000\000\000\000\000\000\000\000\000\002:\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002j\000\000\003F\003H\003J\000\000\002r\002\130\002v\000\000\003\002\000\006\000\000\000\000\000\000\000\000\001\252\000\000\002d\000\000\000\000\000\158\000\000\001T\000\000\002\b\000\000\002\212\002\158\000\000\000\000\002f\000\000\000\000\002p\000\000\002\250\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002t\000\000\002\176\000\000\002\254\000\000\000\000\000\000\000\000\001\196\002\178\000\000\000\000\000\000\000\168\000\000\000\000\000\000\000\186\000\000\000\000\000\000\0032\000\000\002\232\000\000\001\232\000\000\002\148\002\020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\014\001\164\000\000\000\000\002\142\000\000\000\000\002\200\000\000\001\134\000\003\003n\000\000\001\146\000\000\000\000\000\000\000\000\003p\000\000\001\148\000\000\000\000\002\134\000\000\000\000\000\000\000\000\000\000\002:\000\000\000\000\000\000\003r\000\000\000\174\000\000\003t\000\000\000\192\000\000\000\000\000\000\000\000\000\000\000p\000\000\000\000\000\000\000\000\000n\000\000\000\000\000\000"), (16, "\000\137\000\t\000\"\000\137\001\015\000%\001\017\001\245\000E\001/\0011\000\n\001/\0011\001K\001c\000\t\001d\001c\001e\001d\001\153\001e\0017\001L\001\018\000\n\000H\000\228\000\229\000 \001/\0011\002\026\001\173\002\030\002\004\001c\002\011\001d\000=\001e\001\030\001\031\001n\000#\001p\001n\001%\001p\001 \000%\000\240\001R\000E\001f\001\"\000R\001\245\001\245\001+\0018\001\245\000I\000\t\000:\0006\000\t\001\154\001\137\0007\002%\001\137\000G\000\n\002\015\002\"\000\n\002\015\001\246\002\018\001\247\001\245\001W\000\241\001\174\001#\001$\000=\001\175\001\245\000=\0019\001\248\001\138\001\139\001,\001\138\001\139\001\245\000A\001b\001\153\000?\001g\000*\0017\001g\002)\002*\000;\001\153\000\018\001P\000@\001\173\000C\001h\002\019\001;\001h\002\019\002,\002'\001\173\001-\001g\001.\001K\000@\001\246\001\246\001\247\001\247\001\246\001E\001\247\002\025\001L\001h\002\019\000\t\000\021\001\142\001\248\001\248\001\143\001\144\001\248\001\154\000S\000\n\000\255\000U\001\246\000\021\001\247\002.\001\154\002)\002)\000\021\001\246\002#\001\247\000\011\001\225\001M\001\248\000T\001\175\001\246\000f\001\247\000\021\001\228\001\248\000@\000U\001\175\000@\000]\000`\002\024\000O\001\248\000\026\000\029\002\025\002\025\000\023\002\029\002\025\000+\001\000\000*\000,\000\t\001N\000\022\002!\000\t\001C\000\023\000\t\000\026\000\027\000\n\000c\000\023\000\131\000\n\002\025\001\226\000\n\000m\000D\000\133\000\026\000\031\002\025\000_\000\023\000\t\000\t\000\179\000\t\001P\000\184\002\025\001\220\000\t\000\t\000\n\000\n\000\t\000\n\0017\000*\000\t\001\221\000\n\000\n\000\t\000d\000\n\001\251\000\189\000\196\000\n\000\199\000\t\000\t\000\n\000@\000\209\000\247\000\021\000\t\000\250\000\t\000\n\000\n\001\003\000\t\000O\001@\001\007\000\n\000*\000\n\002\007\001\153\002\b\000\n\001\n\001\016\002\007\002\007\002\b\002\b\001\252\001!\000+\001'\001\177\000,\000*\001)\001\237\001\230\000*\0017\000R\000L\001j\000y\001p\000L\000\021\000P\000\025\001A\000V\001\153\000\023\001\184\000V\000j\002\020\000@\000]\000`\001j\000@\002\t\002\014\000@\000Y\001\154\001\141\002\023\000X\001\253\001\231\002\021\000+\000\137\002\n\000/\001=\000\134\001\157\001C\002\n\002\n\000@\000@\000b\000@\001\175\001\132\001\133\001\014\000@\000@\001\139\000\023\000@\001\220\001\161\001\154\000@\000|\001\136\000O\000@\000+\000O\001\221\001\241\000R\002\017\000R\000@\000@\000O\000\149\001\133\001\209\001\218\000@\001\155\000@\001\159\000+\000\255\000@\0008\000+\001\135\000\135\001\239\001\194\000\167\000\169\000\147\000\178\001;\000\183\000\186\000\188\001\159\000\195\000\198\001\244\000\208\000\219\001\253\000\227\002\021\000\225\002\015\000\234\001\243\001\242\000\232\000\235\000\237\001\222\000\238\000\246\001\002\001\005\001\006\001G\001H\001a\001\234\001\162\000}\001\156\001\129\001\163\001\164\001\165\001\167\001\170\001\169\001\178\001\180\001\189\001\193\001\197\001\216\001\214\001\232\001\240\001\250\002\000\002\001\002\005\002\012\002\027\002\031\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\152\000\000\000\154\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\129\000\000\000\000\000\132\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\188")) + ((16, "\000\b\000z\000\000\001\022\000\000\000\000\000\000\000\000\000\000\000\000\000\014\000\223\000\000\000\242\001,\000\016\000\000\002\014\000\000\000\000\000\000\000\000\000\000\002@\000\000\000\000\000\000\000\000\000\000\001T\000\000\000\000\000\000\000\000\001F\000\000\000\000\000\003\000\000\000\000\000\000\000\000\000\000\000\r\000\000\001v\000\000\000\000\000\000\001\004\000\000\000\000\000\000\000\000\002\026\000\000\000\000\000\000\000\\\000\128\000\000\000\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000n\000\000\000\000\000\000\000\t\000\014\000\000\0003\000\168\000\000\000\002\0010\000\000\000\000\000\000\000\000\000\000\002B\000\000\001\024\000\000\000,\000\000\000\000\001\128\000\000\000\000\002v\000\000\000\000\000\000\000\000\000\000\000\000\002p\000\000\000;\000\000\001\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002D\000\000\000\000\002Z\000\000\000\214\000\000\000\000\001p\000\000\000\000\000\000\000\000\000\000\000\000\000\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\168\000\000\001l\000\000\000\000\002\200\000\000\002\218\000\000\000\000\000\000\000\000\000\000\000\000\000\164\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001X\000\000\000\000\000\000\000\000\002\208\000\000\000\000\000\000\000\000\001\142\002V\000\000\000\000\000\000\001\164\000\000\002\222\002\216\000\000\001\168\002b\000\000\000\000\000\000\000\000\000\000\001\186\000\000\002\232\001\194\002\018\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\198\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\150\000\000\000\000\001\238\000\000\002\234\000\000\003\012\000\000\000\000\000\000\000\000\000\000\003\012\000\000\003\012\000\000\000\000\002\242\000\000\002\166\003\024\000\000\000\024\000\000\000\000\000\000\000\000\002*\000\000\000\000\001\200\000\000\000\000\001\208\000\000\002|\000\000\001\138\000\000\000\000\000\000\000\000\001\224\000\000\002.\002\186\001\232\000\000\000\000\001\238\000\000\000\000\000\000\002v\000\000\001\254\000\000\000\000\000]\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\006\000\000\000\000\000\000\000\000\000\000\002\b\000\000\002\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000$\000\000\002:\000\000\000\000\001\154\000\000\000\000\000\000\000\000\000\000\000\000\0022\000\000\000\000\000\002\000\000\000\000\000\000\000\000\002`\000\000\002\190\003.\000\000\001(\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\020\000\000\000\000\000\000\000\000\000\000\000\000\003 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\162\002\128\002\162\000\t\000N\000\000\000\000\000D\000\000\002h\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\232\000\000\000\000\000\000\000\000\000\000\001\174\000\000\000\000\000\000\000\000\000\000\002d\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\150\000\000\003J\003L\003N\000\000\002t\002\132\002x\000\000\003\006\000\178\000\000\000\000\000\000\000\000\001\142\000\000\002f\000\000\000\000\000\162\000\000\001r\000\000\001\248\000\000\002$\002\162\000\000\000\000\002j\000\000\000\000\002t\000\000\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\138\000\000\002\180\000\000\003\006\000\000\000\000\000\000\000\000\002\022\000b\000\000\000\000\000\000\000\162\000\000\000\000\000\000\000\234\000\000\000\000\000\000\003:\000\000\002\238\000\000\001\218\000\000\002\154\002&\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\022\001\226\000\000\000\000\002\148\000\000\000\000\002\206\000\000\001\172\000\003\003v\000\000\001\180\000\000\000\000\000\000\000\000\003x\000\000\001\182\000\000\000\000\002l\000\000\000\000\000\000\000\000\000\000\002N\000\000\000\000\000\000\003z\000\000\000\174\000\000\003|\000\000\000\206\000\000\000\000\000\000\000\000\000\000\000p\000\000\000\000\000\000\000\000\000n\000\000\000\000\000\000"), (16, "\000\137\000\t\000:\000\137\001\017\001:\001\019\001\248\000 \0012\0014\000\n\0012\0014\001\156\001f\000\t\001g\001f\001h\001g\000L\001h\000\"\000*\001\020\000\n\000]\000`\000y\000V\0012\0014\002\029\001C\002!\002\007\001f\002\014\001g\000=\001h\001 \001!\001q\000Y\001s\000;\001'\001q\001\"\001s\000\241\001\223\000c\001i\001$\001-\001\248\001\248\000\018\001.\001\157\001\224\001\248\000\134\000#\000%\000\t\001\140\000E\001D\002(\000C\001\140\000U\002\018\002%\000\n\002\018\001\249\002\021\001\250\001\158\001\248\000\242\001%\001&\000O\000G\001\248\000d\000=\000\t\001\251\001\141\001\142\001/\000T\001\156\001\141\001\142\001F\000\n\000A\001j\001\248\001\156\001j\002,\002-\000O\001\176\000+\001\225\000@\000,\000=\001k\002\022\001\176\001k\002\022\002/\002*\000\021\0010\001j\0011\000?\000@\001\249\001\249\001\250\001\250\001\156\000D\001\249\002\028\001\250\001k\002\022\000f\000\t\001\145\001\251\001\251\001\157\001\176\001\146\001\147\001\251\001N\000\n\000\021\001\157\000R\001\249\0021\001\250\002,\002,\001O\001\249\001\228\001\250\002&\000\011\001\178\000\026\000\029\001\251\001\177\000\023\000\021\000%\001\178\001\251\000E\001\249\0006\001\250\000@\001\157\0007\000m\002\027\000\149\000O\002\028\002\028\001P\002 \001\251\000\167\002\028\000\t\000H\000\026\000\027\001\231\001\001\000\023\000\t\001\178\000P\000\n\000@\002$\001:\000*\001\229\000*\000\n\000\t\002\028\000\t\001\156\000\026\000\031\000_\002\028\000\023\001Q\000\n\000\t\000\n\000\179\000\129\000\t\001\180\000\t\000\t\001\136\000I\000\n\000\t\002\028\000\184\000\n\000\189\000\n\000\n\001\002\000\t\001\138\000\n\001;\000\t\000\196\000S\000\t\001S\000\199\000\n\000\209\000\249\000@\000\n\000\t\000\252\000\n\000*\000\t\000\t\001\157\000\t\000\021\001\005\000\n\001N\001\223\001\t\000\n\000\n\001\012\000\n\001\254\000O\001<\001O\001\224\001\240\001\018\000\169\001:\001\178\001#\001)\001Z\001+\002\n\000\021\002\011\000*\002\n\002\n\002\011\002\011\000+\000*\000+\000,\000L\000/\000\132\001>\001e\001:\001U\000@\000\022\000V\001\255\000\137\000\023\000O\000@\001s\000\021\000]\000`\001\187\001@\001m\001\135\001\136\000X\000@\002\023\000@\002\026\001\233\002\012\002\017\001m\000\025\001H\001\139\000@\000\023\001\144\000|\000@\000R\000@\000@\000b\002\r\002\020\000@\000+\002\r\002\r\001\244\002\000\000\131\002\024\000@\000j\000R\001\160\000@\001\016\000\133\000@\001\234\000\023\001\142\000R\001S\001\212\001\164\000@\000\229\000\230\001\197\000@\000@\001\001\000@\001\221\001>\000+\000\178\000U\0008\000\183\001\247\000+\002\018\000\186\001\242\000\188\000\195\001\191\000\198\000\208\000\220\000\228\000\226\000\235\000\233\000\236\001\162\001F\000\238\001\246\000\239\002\000\000}\002\024\000\248\001\004\001\007\001\162\001\b\001\245\001J\001K\001d\001\237\001\165\001\159\001\132\001\166\001\167\001\168\001\170\001\173\001\172\001\181\001\183\000\135\001\192\001\196\001\200\001\219\000\147\001\217\001\235\001\243\001\253\002\003\002\004\002\b\002\015\002\030\002\"\000\000\000\000\000\000\000\000\000\000\000\152\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\154")) and semantic_action = [| @@ -913,17 +923,17 @@ module Tables = struct let args : 'tv_simple_args = Obj.magic args in let trap_action : 'tv_option_trap_action_ = Obj.magic trap_action in let cont : ( -# 220 "flambda_parser.mly" +# 222 "flambda_parser.mly" (Fexpr.continuation) -# 919 "flambda_parser_in.ml" +# 929 "flambda_parser_in.ml" ) = Obj.magic cont in let _endpos__0_ = _menhir_stack.CamlinternalMenhirLib.EngineTypes.endp in let _startpos = _startpos_cont_ in let _endpos = _endpos_args_ in let _v : 'tv_apply_cont_expr = -# 763 "flambda_parser.mly" +# 771 "flambda_parser.mly" ( { cont; args; trap_action } ) -# 927 "flambda_parser_in.ml" +# 937 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -999,9 +1009,9 @@ module Tables = struct let r : 'tv_result_continuation = Obj.magic r in let _8 : unit = Obj.magic _8 in let region : ( -# 239 "flambda_parser.mly" +# 241 "flambda_parser.mly" (Fexpr.region) -# 1005 "flambda_parser_in.ml" +# 1015 "flambda_parser_in.ml" ) = Obj.magic region in let _6 : unit = Obj.magic _6 in let args : 'tv_simple_args = Obj.magic args in @@ -1013,7 +1023,7 @@ module Tables = struct let _startpos = _startpos_call_kind_ in let _endpos = _endpos_e_ in let _v : 'tv_apply_expr = -# 705 "flambda_parser.mly" +# 713 "flambda_parser.mly" ( let (func, arities) = func in { func; continuation = r; @@ -1025,7 +1035,7 @@ module Tables = struct arities; region; } ) -# 1029 "flambda_parser_in.ml" +# 1039 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -1041,13 +1051,13 @@ module Tables = struct let _startpos = _menhir_stack.CamlinternalMenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : ( -# 215 "flambda_parser.mly" +# 217 "flambda_parser.mly" (Fexpr.array_kind) -# 1047 "flambda_parser_in.ml" +# 1057 "flambda_parser_in.ml" ) = -# 397 "flambda_parser.mly" +# 404 "flambda_parser.mly" ( Values ) -# 1051 "flambda_parser_in.ml" +# 1061 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -1070,13 +1080,13 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : ( -# 215 "flambda_parser.mly" +# 217 "flambda_parser.mly" (Fexpr.array_kind) -# 1076 "flambda_parser_in.ml" +# 1086 "flambda_parser_in.ml" ) = -# 398 "flambda_parser.mly" +# 405 "flambda_parser.mly" ( Immediates ) -# 1080 "flambda_parser_in.ml" +# 1090 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -1099,13 +1109,13 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : ( -# 215 "flambda_parser.mly" +# 217 "flambda_parser.mly" (Fexpr.array_kind) -# 1105 "flambda_parser_in.ml" +# 1115 "flambda_parser_in.ml" ) = -# 399 "flambda_parser.mly" +# 406 "flambda_parser.mly" ( Naked_floats ) -# 1109 "flambda_parser_in.ml" +# 1119 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -1128,9 +1138,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_atomic_expr = -# 638 "flambda_parser.mly" +# 646 "flambda_parser.mly" ( Invalid { message = "halt-and-catch-fire" } ) -# 1134 "flambda_parser_in.ml" +# 1144 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -1153,9 +1163,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_atomic_expr = -# 639 "flambda_parser.mly" +# 647 "flambda_parser.mly" ( Invalid { message = "treat-as-unreachable" } ) -# 1159 "flambda_parser_in.ml" +# 1169 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -1185,9 +1195,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos_ac_ in let _v : 'tv_atomic_expr = -# 640 "flambda_parser.mly" +# 648 "flambda_parser.mly" ( Apply_cont ac ) -# 1191 "flambda_parser_in.ml" +# 1201 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -1224,9 +1234,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos_cases_ in let _v : 'tv_atomic_expr = -# 641 "flambda_parser.mly" +# 649 "flambda_parser.mly" ( Switch {scrutinee; cases} ) -# 1230 "flambda_parser_in.ml" +# 1240 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -1256,9 +1266,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos_e_ in let _v : 'tv_atomic_expr = -# 642 "flambda_parser.mly" +# 650 "flambda_parser.mly" ( Apply e ) -# 1262 "flambda_parser_in.ml" +# 1272 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -1295,9 +1305,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_atomic_expr = -# 643 "flambda_parser.mly" +# 651 "flambda_parser.mly" ( e ) -# 1301 "flambda_parser_in.ml" +# 1311 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -1320,13 +1330,13 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : ( -# 216 "flambda_parser.mly" +# 218 "flambda_parser.mly" (Fexpr.binary_float_arith_op) -# 1326 "flambda_parser_in.ml" +# 1336 "flambda_parser_in.ml" ) = -# 451 "flambda_parser.mly" +# 458 "flambda_parser.mly" ( Add ) -# 1330 "flambda_parser_in.ml" +# 1340 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -1349,13 +1359,13 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : ( -# 216 "flambda_parser.mly" +# 218 "flambda_parser.mly" (Fexpr.binary_float_arith_op) -# 1355 "flambda_parser_in.ml" +# 1365 "flambda_parser_in.ml" ) = -# 452 "flambda_parser.mly" +# 459 "flambda_parser.mly" ( Sub ) -# 1359 "flambda_parser_in.ml" +# 1369 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -1378,13 +1388,13 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : ( -# 216 "flambda_parser.mly" +# 218 "flambda_parser.mly" (Fexpr.binary_float_arith_op) -# 1384 "flambda_parser_in.ml" +# 1394 "flambda_parser_in.ml" ) = -# 453 "flambda_parser.mly" +# 460 "flambda_parser.mly" ( Mul ) -# 1388 "flambda_parser_in.ml" +# 1398 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -1407,13 +1417,13 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : ( -# 216 "flambda_parser.mly" +# 218 "flambda_parser.mly" (Fexpr.binary_float_arith_op) -# 1413 "flambda_parser_in.ml" +# 1423 "flambda_parser_in.ml" ) = -# 454 "flambda_parser.mly" +# 461 "flambda_parser.mly" ( Div ) -# 1417 "flambda_parser_in.ml" +# 1427 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -1436,13 +1446,13 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : ( -# 217 "flambda_parser.mly" +# 219 "flambda_parser.mly" (Fexpr.binary_int_arith_op) -# 1442 "flambda_parser_in.ml" +# 1452 "flambda_parser_in.ml" ) = -# 441 "flambda_parser.mly" +# 448 "flambda_parser.mly" ( Add ) -# 1446 "flambda_parser_in.ml" +# 1456 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -1465,13 +1475,13 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : ( -# 217 "flambda_parser.mly" +# 219 "flambda_parser.mly" (Fexpr.binary_int_arith_op) -# 1471 "flambda_parser_in.ml" +# 1481 "flambda_parser_in.ml" ) = -# 442 "flambda_parser.mly" +# 449 "flambda_parser.mly" ( Sub ) -# 1475 "flambda_parser_in.ml" +# 1485 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -1494,13 +1504,13 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : ( -# 217 "flambda_parser.mly" +# 219 "flambda_parser.mly" (Fexpr.binary_int_arith_op) -# 1500 "flambda_parser_in.ml" +# 1510 "flambda_parser_in.ml" ) = -# 443 "flambda_parser.mly" +# 450 "flambda_parser.mly" ( Mul ) -# 1504 "flambda_parser_in.ml" +# 1514 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -1523,13 +1533,13 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : ( -# 217 "flambda_parser.mly" +# 219 "flambda_parser.mly" (Fexpr.binary_int_arith_op) -# 1529 "flambda_parser_in.ml" +# 1539 "flambda_parser_in.ml" ) = -# 444 "flambda_parser.mly" +# 451 "flambda_parser.mly" ( Div ) -# 1533 "flambda_parser_in.ml" +# 1543 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -1552,13 +1562,13 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : ( -# 217 "flambda_parser.mly" +# 219 "flambda_parser.mly" (Fexpr.binary_int_arith_op) -# 1558 "flambda_parser_in.ml" +# 1568 "flambda_parser_in.ml" ) = -# 445 "flambda_parser.mly" +# 452 "flambda_parser.mly" ( Mod ) -# 1562 "flambda_parser_in.ml" +# 1572 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -1581,13 +1591,13 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : ( -# 217 "flambda_parser.mly" +# 219 "flambda_parser.mly" (Fexpr.binary_int_arith_op) -# 1587 "flambda_parser_in.ml" +# 1597 "flambda_parser_in.ml" ) = -# 446 "flambda_parser.mly" +# 453 "flambda_parser.mly" ( And ) -# 1591 "flambda_parser_in.ml" +# 1601 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -1610,13 +1620,13 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : ( -# 217 "flambda_parser.mly" +# 219 "flambda_parser.mly" (Fexpr.binary_int_arith_op) -# 1616 "flambda_parser_in.ml" +# 1626 "flambda_parser_in.ml" ) = -# 447 "flambda_parser.mly" +# 454 "flambda_parser.mly" ( Or ) -# 1620 "flambda_parser_in.ml" +# 1630 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -1639,13 +1649,13 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : ( -# 217 "flambda_parser.mly" +# 219 "flambda_parser.mly" (Fexpr.binary_int_arith_op) -# 1645 "flambda_parser_in.ml" +# 1655 "flambda_parser_in.ml" ) = -# 448 "flambda_parser.mly" +# 455 "flambda_parser.mly" ( Xor ) -# 1649 "flambda_parser_in.ml" +# 1659 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -1703,9 +1713,9 @@ module Tables = struct let _startpos = _startpos_op_ in let _endpos = _endpos__6_ in let _v : 'tv_binop_app = -# 481 "flambda_parser.mly" +# 488 "flambda_parser.mly" ( Binary (op, arg1, arg2) ) -# 1709 "flambda_parser_in.ml" +# 1719 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -1737,18 +1747,18 @@ module Tables = struct } = _menhir_stack in let arg2 : 'tv_simple = Obj.magic arg2 in let op : ( -# 228 "flambda_parser.mly" +# 230 "flambda_parser.mly" (Fexpr.infix_binop) -# 1743 "flambda_parser_in.ml" +# 1753 "flambda_parser_in.ml" ) = Obj.magic op in let arg1 : 'tv_simple = Obj.magic arg1 in let _endpos__0_ = _menhir_stack.CamlinternalMenhirLib.EngineTypes.endp in let _startpos = _startpos_arg1_ in let _endpos = _endpos_arg2_ in let _v : 'tv_binop_app = -# 483 "flambda_parser.mly" +# 490 "flambda_parser.mly" ( Binary (Infix op, arg1, arg2) ) -# 1752 "flambda_parser_in.ml" +# 1762 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -1814,23 +1824,23 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let arg1 : 'tv_simple = Obj.magic arg1 in let mut : ( -# 233 "flambda_parser.mly" +# 235 "flambda_parser.mly" (Fexpr.mutability) -# 1820 "flambda_parser_in.ml" +# 1830 "flambda_parser_in.ml" ) = Obj.magic mut in let ak : ( -# 215 "flambda_parser.mly" +# 217 "flambda_parser.mly" (Fexpr.array_kind) -# 1825 "flambda_parser_in.ml" +# 1835 "flambda_parser_in.ml" ) = Obj.magic ak in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.CamlinternalMenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__8_ in let _v : 'tv_binop_app = -# 486 "flambda_parser.mly" +# 493 "flambda_parser.mly" ( Binary (Array_load (ak, mut), arg1, arg2) ) -# 1834 "flambda_parser_in.ml" +# 1844 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -1874,24 +1884,24 @@ module Tables = struct } = _menhir_stack in let arg2 : 'tv_simple = Obj.magic arg2 in let c : ( -# 217 "flambda_parser.mly" +# 219 "flambda_parser.mly" (Fexpr.binary_int_arith_op) -# 1880 "flambda_parser_in.ml" +# 1890 "flambda_parser_in.ml" ) = Obj.magic c in let arg1 : 'tv_simple = Obj.magic arg1 in let i : ( -# 241 "flambda_parser.mly" +# 243 "flambda_parser.mly" (Fexpr.standard_int) -# 1886 "flambda_parser_in.ml" +# 1896 "flambda_parser_in.ml" ) = Obj.magic i in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.CamlinternalMenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_arg2_ in let _v : 'tv_binop_app = -# 489 "flambda_parser.mly" +# 496 "flambda_parser.mly" ( Binary (Int_arith (i, c), arg1, arg2) ) -# 1895 "flambda_parser_in.ml" +# 1905 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -1941,25 +1951,25 @@ module Tables = struct } = _menhir_stack in let arg2 : 'tv_simple = Obj.magic arg2 in let c : ( -# 229 "flambda_parser.mly" +# 231 "flambda_parser.mly" (Fexpr.signed_or_unsigned -> Fexpr.signed_or_unsigned Fexpr.comparison_behaviour) -# 1947 "flambda_parser_in.ml" +# 1957 "flambda_parser_in.ml" ) = Obj.magic c in let arg1 : 'tv_simple = Obj.magic arg1 in let s : 'tv_signed_or_unsigned = Obj.magic s in let i : ( -# 241 "flambda_parser.mly" +# 243 "flambda_parser.mly" (Fexpr.standard_int) -# 1954 "flambda_parser_in.ml" +# 1964 "flambda_parser_in.ml" ) = Obj.magic i in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.CamlinternalMenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_arg2_ in let _v : 'tv_binop_app = -# 493 "flambda_parser.mly" +# 500 "flambda_parser.mly" ( Binary (Int_comp (i, c s), arg1, arg2) ) -# 1963 "flambda_parser_in.ml" +# 1973 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -2005,18 +2015,18 @@ module Tables = struct let s : 'tv_int_shift = Obj.magic s in let arg1 : 'tv_simple = Obj.magic arg1 in let i : ( -# 241 "flambda_parser.mly" +# 243 "flambda_parser.mly" (Fexpr.standard_int) -# 2011 "flambda_parser_in.ml" +# 2021 "flambda_parser_in.ml" ) = Obj.magic i in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.CamlinternalMenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_arg2_ in let _v : 'tv_binop_app = -# 496 "flambda_parser.mly" +# 503 "flambda_parser.mly" ( Binary (Int_shift (i, s), arg1, arg2) ) -# 2020 "flambda_parser_in.ml" +# 2030 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -2039,9 +2049,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_blank_or_kinds_with_subkinds_ = -# 885 "flambda_parser.mly" +# 893 "flambda_parser.mly" ( None ) -# 2045 "flambda_parser_in.ml" +# 2055 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -2060,17 +2070,17 @@ module Tables = struct CamlinternalMenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let a : ( -# 232 "flambda_parser.mly" +# 234 "flambda_parser.mly" (Fexpr.kind_with_subkind list) -# 2066 "flambda_parser_in.ml" +# 2076 "flambda_parser_in.ml" ) = Obj.magic a in let _endpos__0_ = _menhir_stack.CamlinternalMenhirLib.EngineTypes.endp in let _startpos = _startpos_a_ in let _endpos = _endpos_a_ in let _v : 'tv_blank_or_kinds_with_subkinds_ = -# 886 "flambda_parser.mly" +# 894 "flambda_parser.mly" ( Some a ) -# 2074 "flambda_parser_in.ml" +# 2084 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -2123,9 +2133,9 @@ module Tables = struct let _4 : unit = Obj.magic _4 in let t : 'tv_tag = Obj.magic t in let m : ( -# 233 "flambda_parser.mly" +# 235 "flambda_parser.mly" (Fexpr.mutability) -# 2129 "flambda_parser_in.ml" +# 2139 "flambda_parser_in.ml" ) = Obj.magic m in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.CamlinternalMenhirLib.EngineTypes.endp in @@ -2134,12 +2144,12 @@ module Tables = struct let _v : 'tv_block = let elts = # 232 "" ( xs ) -# 2138 "flambda_parser_in.ml" +# 2148 "flambda_parser_in.ml" in -# 510 "flambda_parser.mly" +# 517 "flambda_parser.mly" ( Variadic (Make_block (t, m), elts) ) -# 2143 "flambda_parser_in.ml" +# 2153 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -2155,13 +2165,13 @@ module Tables = struct let _startpos = _menhir_stack.CamlinternalMenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : ( -# 218 "flambda_parser.mly" +# 220 "flambda_parser.mly" (Fexpr.block_access_field_kind) -# 2161 "flambda_parser_in.ml" +# 2171 "flambda_parser_in.ml" ) = -# 409 "flambda_parser.mly" +# 416 "flambda_parser.mly" ( Any_value ) -# 2165 "flambda_parser_in.ml" +# 2175 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -2184,13 +2194,13 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : ( -# 218 "flambda_parser.mly" +# 220 "flambda_parser.mly" (Fexpr.block_access_field_kind) -# 2190 "flambda_parser_in.ml" +# 2200 "flambda_parser_in.ml" ) = -# 410 "flambda_parser.mly" +# 417 "flambda_parser.mly" ( Immediate ) -# 2194 "flambda_parser_in.ml" +# 2204 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -2223,17 +2233,17 @@ module Tables = struct let size : 'tv_size_opt = Obj.magic size in let tag : 'tv_tag_opt = Obj.magic tag in let field_kind : ( -# 218 "flambda_parser.mly" +# 220 "flambda_parser.mly" (Fexpr.block_access_field_kind) -# 2229 "flambda_parser_in.ml" +# 2239 "flambda_parser_in.ml" ) = Obj.magic field_kind in let _endpos__0_ = _menhir_stack.CamlinternalMenhirLib.EngineTypes.endp in let _startpos = _startpos_field_kind_ in let _endpos = _endpos_size_ in let _v : 'tv_block_access_kind = -# 403 "flambda_parser.mly" +# 410 "flambda_parser.mly" ( Values { field_kind; tag; size } ) -# 2237 "flambda_parser_in.ml" +# 2247 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -2263,9 +2273,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos_size_ in let _v : 'tv_block_access_kind = -# 405 "flambda_parser.mly" +# 412 "flambda_parser.mly" ( Naked_floats { size } ) -# 2269 "flambda_parser_in.ml" +# 2279 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -2283,7 +2293,7 @@ module Tables = struct let _v : 'tv_boption_KWD_NOALLOC_ = # 133 "" ( false ) -# 2287 "flambda_parser_in.ml" +# 2297 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -2308,7 +2318,7 @@ module Tables = struct let _v : 'tv_boption_KWD_NOALLOC_ = # 135 "" ( true ) -# 2312 "flambda_parser_in.ml" +# 2322 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -2326,7 +2336,7 @@ module Tables = struct let _v : 'tv_boption_KWD_TUPLED_ = # 133 "" ( false ) -# 2330 "flambda_parser_in.ml" +# 2340 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -2351,7 +2361,7 @@ module Tables = struct let _v : 'tv_boption_KWD_TUPLED_ = # 135 "" ( true ) -# 2355 "flambda_parser_in.ml" +# 2365 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -2367,9 +2377,9 @@ module Tables = struct let _startpos = _menhir_stack.CamlinternalMenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : 'tv_call_kind = -# 719 "flambda_parser.mly" +# 727 "flambda_parser.mly" ( Function Indirect ) -# 2373 "flambda_parser_in.ml" +# 2383 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -2420,9 +2430,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in let _v : 'tv_call_kind = -# 721 "flambda_parser.mly" +# 729 "flambda_parser.mly" ( Function (Direct { code_id; function_slot }) ) -# 2426 "flambda_parser_in.ml" +# 2436 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -2452,9 +2462,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos_noalloc_ in let _v : 'tv_call_kind = -# 723 "flambda_parser.mly" +# 731 "flambda_parser.mly" ( C_call { alloc = not noalloc } ) -# 2458 "flambda_parser_in.ml" +# 2468 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -2554,13 +2564,13 @@ module Tables = struct let _startpos = _startpos_header_ in let _endpos = _endpos_body_ in let _v : 'tv_code = -# 309 "flambda_parser.mly" +# 311 "flambda_parser.mly" ( let recursive, inline, id, newer_version_of, code_size = header in { id; newer_version_of; param_arity = None; ret_arity; recursive; inline; params_and_body = { params; closure_var; region_var; depth_var; ret_cont; exn_cont; body }; code_size; is_tupled; } ) -# 2564 "flambda_parser_in.ml" +# 2574 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -2639,9 +2649,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos_id_ in let _v : 'tv_code_header = -# 323 "flambda_parser.mly" +# 325 "flambda_parser.mly" ( recursive, inline, id, newer_version_of, code_size ) -# 2645 "flambda_parser_in.ml" +# 2655 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -2664,9 +2674,9 @@ module Tables = struct let _startpos = _startpos_v_ in let _endpos = _endpos_v_ in let _v : 'tv_code_id = -# 917 "flambda_parser.mly" +# 925 "flambda_parser.mly" ( v ) -# 2670 "flambda_parser_in.ml" +# 2680 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -2689,9 +2699,9 @@ module Tables = struct let _startpos = _startpos_i_ in let _endpos = _endpos_i_ in let _v : 'tv_code_size = -# 921 "flambda_parser.mly" +# 929 "flambda_parser.mly" ( i ) -# 2695 "flambda_parser_in.ml" +# 2705 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -2714,9 +2724,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_coercion = -# 897 "flambda_parser.mly" +# 905 "flambda_parser.mly" ( Id ) -# 2720 "flambda_parser_in.ml" +# 2730 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -2753,24 +2763,24 @@ module Tables = struct }; } = _menhir_stack in let to_ : ( -# 237 "flambda_parser.mly" +# 239 "flambda_parser.mly" (Fexpr.rec_info) -# 2759 "flambda_parser_in.ml" +# 2769 "flambda_parser_in.ml" ) = Obj.magic to_ in let _3 : unit = Obj.magic _3 in let from : ( -# 237 "flambda_parser.mly" +# 239 "flambda_parser.mly" (Fexpr.rec_info) -# 2765 "flambda_parser_in.ml" +# 2775 "flambda_parser_in.ml" ) = Obj.magic from in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.CamlinternalMenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_to__ in let _v : 'tv_coercion = -# 899 "flambda_parser.mly" +# 907 "flambda_parser.mly" ( Change_depth { from; to_; } ) -# 2774 "flambda_parser_in.ml" +# 2784 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -2791,19 +2801,19 @@ module Tables = struct let c : ( # 74 "flambda_parser.mly" (string * char option) -# 2795 "flambda_parser_in.ml" +# 2805 "flambda_parser_in.ml" ) = Obj.magic c in let _endpos__0_ = _menhir_stack.CamlinternalMenhirLib.EngineTypes.endp in let _startpos = _startpos_c_ in let _endpos = _endpos_c_ in let _v : ( -# 219 "flambda_parser.mly" +# 221 "flambda_parser.mly" (Fexpr.const) -# 2803 "flambda_parser_in.ml" +# 2813 "flambda_parser_in.ml" ) = -# 866 "flambda_parser.mly" +# 874 "flambda_parser.mly" ( make_const_int c ) -# 2807 "flambda_parser_in.ml" +# 2817 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -2824,19 +2834,19 @@ module Tables = struct let c : ( # 68 "flambda_parser.mly" (float) -# 2828 "flambda_parser_in.ml" +# 2838 "flambda_parser_in.ml" ) = Obj.magic c in let _endpos__0_ = _menhir_stack.CamlinternalMenhirLib.EngineTypes.endp in let _startpos = _startpos_c_ in let _endpos = _endpos_c_ in let _v : ( -# 219 "flambda_parser.mly" +# 221 "flambda_parser.mly" (Fexpr.const) -# 2836 "flambda_parser_in.ml" +# 2846 "flambda_parser_in.ml" ) = -# 867 "flambda_parser.mly" +# 875 "flambda_parser.mly" ( Naked_float c ) -# 2840 "flambda_parser_in.ml" +# 2850 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -2859,13 +2869,13 @@ module Tables = struct let _startpos = _startpos_e_ in let _endpos = _endpos_e_ in let _v : ( -# 220 "flambda_parser.mly" +# 222 "flambda_parser.mly" (Fexpr.continuation) -# 2865 "flambda_parser_in.ml" +# 2875 "flambda_parser_in.ml" ) = -# 945 "flambda_parser.mly" +# 953 "flambda_parser.mly" ( Named e ) -# 2869 "flambda_parser_in.ml" +# 2879 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -2884,21 +2894,21 @@ module Tables = struct CamlinternalMenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let s : ( -# 240 "flambda_parser.mly" +# 242 "flambda_parser.mly" (Fexpr.special_continuation) -# 2890 "flambda_parser_in.ml" +# 2900 "flambda_parser_in.ml" ) = Obj.magic s in let _endpos__0_ = _menhir_stack.CamlinternalMenhirLib.EngineTypes.endp in let _startpos = _startpos_s_ in let _endpos = _endpos_s_ in let _v : ( -# 220 "flambda_parser.mly" +# 222 "flambda_parser.mly" (Fexpr.continuation) -# 2898 "flambda_parser_in.ml" +# 2908 "flambda_parser_in.ml" ) = -# 946 "flambda_parser.mly" +# 954 "flambda_parser.mly" ( Special s ) -# 2902 "flambda_parser_in.ml" +# 2912 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -2944,18 +2954,18 @@ module Tables = struct let _4 : unit = Obj.magic _4 in let params : 'tv_kinded_args = Obj.magic params in let sort : ( -# 226 "flambda_parser.mly" +# 228 "flambda_parser.mly" (Fexpr.continuation_sort option) -# 2950 "flambda_parser_in.ml" +# 2960 "flambda_parser_in.ml" ) = Obj.magic sort in let name : 'tv_continuation_id = Obj.magic name in let _endpos__0_ = _menhir_stack.CamlinternalMenhirLib.EngineTypes.endp in let _startpos = _startpos_name_ in let _endpos = _endpos_handler_ in let _v : 'tv_continuation_binding = -# 788 "flambda_parser.mly" +# 796 "flambda_parser.mly" ( { name; params; handler; sort } ) -# 2959 "flambda_parser_in.ml" +# 2969 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -2978,9 +2988,9 @@ module Tables = struct let _startpos = _startpos_l_ in let _endpos = _endpos_l_ in let _v : 'tv_continuation_body = -# 633 "flambda_parser.mly" +# 641 "flambda_parser.mly" ( l ) -# 2984 "flambda_parser_in.ml" +# 2994 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -3003,9 +3013,9 @@ module Tables = struct let _startpos = _startpos_a_ in let _endpos = _endpos_a_ in let _v : 'tv_continuation_body = -# 634 "flambda_parser.mly" +# 642 "flambda_parser.mly" ( a ) -# 3009 "flambda_parser_in.ml" +# 3019 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -3026,7 +3036,7 @@ module Tables = struct let e : ( # 73 "flambda_parser.mly" (string) -# 3030 "flambda_parser_in.ml" +# 3040 "flambda_parser_in.ml" ) = Obj.magic e in let _endpos__0_ = _menhir_stack.CamlinternalMenhirLib.EngineTypes.endp in let _startpos = _startpos_e_ in @@ -3034,9 +3044,9 @@ module Tables = struct let _v : 'tv_continuation_id = let _endpos = _endpos_e_ in let _startpos = _startpos_e_ in -# 941 "flambda_parser.mly" +# 949 "flambda_parser.mly" ( make_located e (_startpos, _endpos) ) -# 3040 "flambda_parser_in.ml" +# 3050 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -3052,13 +3062,13 @@ module Tables = struct let _startpos = _menhir_stack.CamlinternalMenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : ( -# 226 "flambda_parser.mly" +# 228 "flambda_parser.mly" (Fexpr.continuation_sort option) -# 3058 "flambda_parser_in.ml" +# 3068 "flambda_parser_in.ml" ) = -# 780 "flambda_parser.mly" +# 788 "flambda_parser.mly" ( None ) -# 3062 "flambda_parser_in.ml" +# 3072 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -3081,13 +3091,13 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : ( -# 226 "flambda_parser.mly" +# 228 "flambda_parser.mly" (Fexpr.continuation_sort option) -# 3087 "flambda_parser_in.ml" +# 3097 "flambda_parser_in.ml" ) = -# 781 "flambda_parser.mly" +# 789 "flambda_parser.mly" ( Some Exn ) -# 3091 "flambda_parser_in.ml" +# 3101 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -3110,13 +3120,13 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : ( -# 226 "flambda_parser.mly" +# 228 "flambda_parser.mly" (Fexpr.continuation_sort option) -# 3116 "flambda_parser_in.ml" +# 3126 "flambda_parser_in.ml" ) = -# 782 "flambda_parser.mly" +# 790 "flambda_parser.mly" ( Some Define_root_symbol ) -# 3120 "flambda_parser_in.ml" +# 3130 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -3146,13 +3156,13 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : ( -# 221 "flambda_parser.mly" +# 223 "flambda_parser.mly" (Fexpr.standard_int_or_float) -# 3152 "flambda_parser_in.ml" +# 3162 "flambda_parser_in.ml" ) = -# 424 "flambda_parser.mly" +# 431 "flambda_parser.mly" ( Tagged_immediate ) -# 3156 "flambda_parser_in.ml" +# 3166 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -3175,13 +3185,13 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : ( -# 221 "flambda_parser.mly" +# 223 "flambda_parser.mly" (Fexpr.standard_int_or_float) -# 3181 "flambda_parser_in.ml" +# 3191 "flambda_parser_in.ml" ) = -# 425 "flambda_parser.mly" +# 432 "flambda_parser.mly" ( Naked_immediate ) -# 3185 "flambda_parser_in.ml" +# 3195 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -3204,13 +3214,13 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : ( -# 221 "flambda_parser.mly" +# 223 "flambda_parser.mly" (Fexpr.standard_int_or_float) -# 3210 "flambda_parser_in.ml" +# 3220 "flambda_parser_in.ml" ) = -# 426 "flambda_parser.mly" +# 433 "flambda_parser.mly" ( Naked_float ) -# 3214 "flambda_parser_in.ml" +# 3224 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -3233,13 +3243,13 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : ( -# 221 "flambda_parser.mly" +# 223 "flambda_parser.mly" (Fexpr.standard_int_or_float) -# 3239 "flambda_parser_in.ml" +# 3249 "flambda_parser_in.ml" ) = -# 427 "flambda_parser.mly" +# 434 "flambda_parser.mly" ( Naked_int32 ) -# 3243 "flambda_parser_in.ml" +# 3253 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -3262,13 +3272,13 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : ( -# 221 "flambda_parser.mly" +# 223 "flambda_parser.mly" (Fexpr.standard_int_or_float) -# 3268 "flambda_parser_in.ml" +# 3278 "flambda_parser_in.ml" ) = -# 428 "flambda_parser.mly" +# 435 "flambda_parser.mly" ( Naked_int64 ) -# 3272 "flambda_parser_in.ml" +# 3282 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -3291,13 +3301,13 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : ( -# 221 "flambda_parser.mly" +# 223 "flambda_parser.mly" (Fexpr.standard_int_or_float) -# 3297 "flambda_parser_in.ml" +# 3307 "flambda_parser_in.ml" ) = -# 429 "flambda_parser.mly" +# 436 "flambda_parser.mly" ( Naked_nativeint ) -# 3301 "flambda_parser_in.ml" +# 3311 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -3313,9 +3323,9 @@ module Tables = struct let _startpos = _menhir_stack.CamlinternalMenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : 'tv_ctors = -# 580 "flambda_parser.mly" +# 588 "flambda_parser.mly" ( [], [] ) -# 3319 "flambda_parser_in.ml" +# 3329 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -3338,9 +3348,9 @@ module Tables = struct let _startpos = _startpos_ctors_ in let _endpos = _endpos_ctors_ in let _v : 'tv_ctors = -# 581 "flambda_parser.mly" +# 589 "flambda_parser.mly" ( ctors ) -# 3344 "flambda_parser_in.ml" +# 3354 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -3363,9 +3373,9 @@ module Tables = struct let _startpos = _startpos_tag_ in let _endpos = _endpos_tag_ in let _v : 'tv_ctors_nonempty = -# 583 "flambda_parser.mly" +# 591 "flambda_parser.mly" ( [ tag ], [] ) -# 3369 "flambda_parser_in.ml" +# 3379 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -3402,9 +3412,9 @@ module Tables = struct let _startpos = _startpos_tag_ in let _endpos = _endpos_ctors_ in let _v : 'tv_ctors_nonempty = -# 585 "flambda_parser.mly" +# 593 "flambda_parser.mly" ( let (c, nc) = ctors in (tag :: c, nc) ) -# 3408 "flambda_parser_in.ml" +# 3418 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -3427,9 +3437,9 @@ module Tables = struct let _startpos = _startpos_nonconsts_ in let _endpos = _endpos_nonconsts_ in let _v : 'tv_ctors_nonempty = -# 586 "flambda_parser.mly" +# 594 "flambda_parser.mly" ( [], nonconsts ) -# 3433 "flambda_parser_in.ml" +# 3443 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -3466,9 +3476,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_deleted_code = -# 295 "flambda_parser.mly" +# 297 "flambda_parser.mly" ( code_id ) -# 3472 "flambda_parser_in.ml" +# 3482 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -3493,18 +3503,18 @@ module Tables = struct }; } = _menhir_stack in let cont : ( -# 220 "flambda_parser.mly" +# 222 "flambda_parser.mly" (Fexpr.continuation) -# 3499 "flambda_parser_in.ml" +# 3509 "flambda_parser_in.ml" ) = Obj.magic cont in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.CamlinternalMenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_cont_ in let _v : 'tv_exn_continuation = -# 273 "flambda_parser.mly" +# 275 "flambda_parser.mly" ( cont ) -# 3508 "flambda_parser_in.ml" +# 3518 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -3534,9 +3544,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos_cont_ in let _v : 'tv_exn_continuation_id = -# 276 "flambda_parser.mly" +# 278 "flambda_parser.mly" ( cont ) -# 3540 "flambda_parser_in.ml" +# 3550 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -3580,13 +3590,13 @@ module Tables = struct let _startpos = _startpos_before_ in let _endpos = _endpos__4_ in let _v : ( -# 222 "flambda_parser.mly" +# 224 "flambda_parser.mly" (Fexpr.expect_test_spec) -# 3586 "flambda_parser_in.ml" +# 3596 "flambda_parser_in.ml" ) = -# 260 "flambda_parser.mly" +# 262 "flambda_parser.mly" ( { before; after } ) -# 3590 "flambda_parser_in.ml" +# 3600 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -3609,9 +3619,9 @@ module Tables = struct let _startpos = _startpos_l_ in let _endpos = _endpos_l_ in let _v : 'tv_expr = -# 612 "flambda_parser.mly" +# 620 "flambda_parser.mly" ( l ) -# 3615 "flambda_parser_in.ml" +# 3625 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -3634,9 +3644,9 @@ module Tables = struct let _startpos = _startpos_i_ in let _endpos = _endpos_i_ in let _v : 'tv_expr = -# 613 "flambda_parser.mly" +# 621 "flambda_parser.mly" ( i ) -# 3640 "flambda_parser_in.ml" +# 3650 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -3659,13 +3669,13 @@ module Tables = struct let _startpos = _startpos_s_ in let _endpos = _endpos_s_ in let _v : ( -# 223 "flambda_parser.mly" +# 225 "flambda_parser.mly" (Fexpr.field_of_block) -# 3665 "flambda_parser_in.ml" +# 3675 "flambda_parser_in.ml" ) = -# 847 "flambda_parser.mly" +# 855 "flambda_parser.mly" ( Symbol s ) -# 3669 "flambda_parser_in.ml" +# 3679 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -3688,13 +3698,13 @@ module Tables = struct let _startpos = _startpos_v_ in let _endpos = _endpos_v_ in let _v : ( -# 223 "flambda_parser.mly" +# 225 "flambda_parser.mly" (Fexpr.field_of_block) -# 3694 "flambda_parser_in.ml" +# 3704 "flambda_parser_in.ml" ) = -# 848 "flambda_parser.mly" +# 856 "flambda_parser.mly" ( Dynamically_computed v ) -# 3698 "flambda_parser_in.ml" +# 3708 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -3715,21 +3725,21 @@ module Tables = struct let i : ( # 74 "flambda_parser.mly" (string * char option) -# 3719 "flambda_parser_in.ml" +# 3729 "flambda_parser_in.ml" ) = Obj.magic i in let _endpos__0_ = _menhir_stack.CamlinternalMenhirLib.EngineTypes.endp in let _startpos = _startpos_i_ in let _endpos = _endpos_i_ in let _v : ( -# 223 "flambda_parser.mly" +# 225 "flambda_parser.mly" (Fexpr.field_of_block) -# 3727 "flambda_parser_in.ml" +# 3737 "flambda_parser_in.ml" ) = let _endpos = _endpos_i_ in let _startpos = _startpos_i_ in -# 849 "flambda_parser.mly" +# 857 "flambda_parser.mly" ( Tagged_immediate ( make_tagged_immediate ~loc:(_startpos, _endpos) i ) ) -# 3733 "flambda_parser_in.ml" +# 3743 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -3759,13 +3769,13 @@ module Tables = struct let _startpos = _startpos_body_ in let _endpos = _endpos__2_ in let _v : ( -# 224 "flambda_parser.mly" +# 226 "flambda_parser.mly" (Fexpr.flambda_unit) -# 3765 "flambda_parser_in.ml" +# 3775 "flambda_parser_in.ml" ) = -# 255 "flambda_parser.mly" +# 257 "flambda_parser.mly" ( body ) -# 3769 "flambda_parser_in.ml" +# 3779 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -3788,13 +3798,13 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : ( -# 225 "flambda_parser.mly" +# 227 "flambda_parser.mly" (unit Fexpr.comparison_behaviour) -# 3794 "flambda_parser_in.ml" +# 3804 "flambda_parser_in.ml" ) = -# 464 "flambda_parser.mly" +# 471 "flambda_parser.mly" ( Yielding_bool Eq ) -# 3798 "flambda_parser_in.ml" +# 3808 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -3817,13 +3827,13 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : ( -# 225 "flambda_parser.mly" +# 227 "flambda_parser.mly" (unit Fexpr.comparison_behaviour) -# 3823 "flambda_parser_in.ml" +# 3833 "flambda_parser_in.ml" ) = -# 465 "flambda_parser.mly" +# 472 "flambda_parser.mly" ( Yielding_bool Neq ) -# 3827 "flambda_parser_in.ml" +# 3837 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -3846,13 +3856,13 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : ( -# 225 "flambda_parser.mly" +# 227 "flambda_parser.mly" (unit Fexpr.comparison_behaviour) -# 3852 "flambda_parser_in.ml" +# 3862 "flambda_parser_in.ml" ) = -# 466 "flambda_parser.mly" +# 473 "flambda_parser.mly" ( Yielding_bool ( Lt ()) ) -# 3856 "flambda_parser_in.ml" +# 3866 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -3875,13 +3885,13 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : ( -# 225 "flambda_parser.mly" +# 227 "flambda_parser.mly" (unit Fexpr.comparison_behaviour) -# 3881 "flambda_parser_in.ml" +# 3891 "flambda_parser_in.ml" ) = -# 467 "flambda_parser.mly" +# 474 "flambda_parser.mly" ( Yielding_bool ( Gt ()) ) -# 3885 "flambda_parser_in.ml" +# 3895 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -3904,13 +3914,13 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : ( -# 225 "flambda_parser.mly" +# 227 "flambda_parser.mly" (unit Fexpr.comparison_behaviour) -# 3910 "flambda_parser_in.ml" +# 3920 "flambda_parser_in.ml" ) = -# 468 "flambda_parser.mly" +# 475 "flambda_parser.mly" ( Yielding_bool (Le()) ) -# 3914 "flambda_parser_in.ml" +# 3924 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -3933,13 +3943,13 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : ( -# 225 "flambda_parser.mly" +# 227 "flambda_parser.mly" (unit Fexpr.comparison_behaviour) -# 3939 "flambda_parser_in.ml" +# 3949 "flambda_parser_in.ml" ) = -# 469 "flambda_parser.mly" +# 476 "flambda_parser.mly" ( Yielding_bool (Ge ()) ) -# 3943 "flambda_parser_in.ml" +# 3953 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -3962,13 +3972,13 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : ( -# 225 "flambda_parser.mly" +# 227 "flambda_parser.mly" (unit Fexpr.comparison_behaviour) -# 3968 "flambda_parser_in.ml" +# 3978 "flambda_parser_in.ml" ) = -# 470 "flambda_parser.mly" +# 477 "flambda_parser.mly" ( (Yielding_int_like_compare_functions ()) ) -# 3972 "flambda_parser_in.ml" +# 3982 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -3989,19 +3999,19 @@ module Tables = struct let f : ( # 68 "flambda_parser.mly" (float) -# 3993 "flambda_parser_in.ml" +# 4003 "flambda_parser_in.ml" ) = Obj.magic f in let _endpos__0_ = _menhir_stack.CamlinternalMenhirLib.EngineTypes.endp in let _startpos = _startpos_f_ in let _endpos = _endpos_f_ in let _v : ( -# 227 "flambda_parser.mly" +# 229 "flambda_parser.mly" (float Fexpr.or_variable) -# 4001 "flambda_parser_in.ml" +# 4011 "flambda_parser_in.ml" ) = -# 827 "flambda_parser.mly" +# 835 "flambda_parser.mly" ( Const f ) -# 4005 "flambda_parser_in.ml" +# 4015 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -4024,13 +4034,13 @@ module Tables = struct let _startpos = _startpos_v_ in let _endpos = _endpos_v_ in let _v : ( -# 227 "flambda_parser.mly" +# 229 "flambda_parser.mly" (float Fexpr.or_variable) -# 4030 "flambda_parser_in.ml" +# 4040 "flambda_parser_in.ml" ) = -# 828 "flambda_parser.mly" +# 836 "flambda_parser.mly" ( Var v ) -# 4034 "flambda_parser_in.ml" +# 4044 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -4067,9 +4077,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos_function_slot_ in let _v : 'tv_fun_decl = -# 693 "flambda_parser.mly" +# 701 "flambda_parser.mly" ( { code_id; function_slot; } ) -# 4073 "flambda_parser_in.ml" +# 4083 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -4088,17 +4098,17 @@ module Tables = struct CamlinternalMenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let n : ( -# 235 "flambda_parser.mly" +# 237 "flambda_parser.mly" (Fexpr.name) -# 4094 "flambda_parser_in.ml" +# 4104 "flambda_parser_in.ml" ) = Obj.magic n in let _endpos__0_ = _menhir_stack.CamlinternalMenhirLib.EngineTypes.endp in let _startpos = _startpos_n_ in let _endpos = _endpos_n_ in let _v : 'tv_func_name_with_optional_arities = -# 876 "flambda_parser.mly" +# 884 "flambda_parser.mly" ( n, None ) -# 4102 "flambda_parser_in.ml" +# 4112 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -4154,26 +4164,26 @@ module Tables = struct } = _menhir_stack in let _7 : unit = Obj.magic _7 in let ret_arity : ( -# 232 "flambda_parser.mly" +# 234 "flambda_parser.mly" (Fexpr.kind_with_subkind list) -# 4160 "flambda_parser_in.ml" +# 4170 "flambda_parser_in.ml" ) = Obj.magic ret_arity in let _5 : unit = Obj.magic _5 in let params_arity : 'tv_blank_or_kinds_with_subkinds_ = Obj.magic params_arity in let _3 : unit = Obj.magic _3 in let n : ( -# 235 "flambda_parser.mly" +# 237 "flambda_parser.mly" (Fexpr.name) -# 4168 "flambda_parser_in.ml" +# 4178 "flambda_parser_in.ml" ) = Obj.magic n in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.CamlinternalMenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__7_ in let _v : 'tv_func_name_with_optional_arities = -# 881 "flambda_parser.mly" +# 889 "flambda_parser.mly" ( n, Some ({ params_arity; ret_arity } : function_arities) ) -# 4177 "flambda_parser_in.ml" +# 4187 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -4196,9 +4206,9 @@ module Tables = struct let _startpos = _startpos_v_ in let _endpos = _endpos_v_ in let _v : 'tv_function_slot = -# 924 "flambda_parser.mly" +# 932 "flambda_parser.mly" ( v ) -# 4202 "flambda_parser_in.ml" +# 4212 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -4214,9 +4224,9 @@ module Tables = struct let _startpos = _menhir_stack.CamlinternalMenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : 'tv_function_slot_opt = -# 928 "flambda_parser.mly" +# 936 "flambda_parser.mly" ( None ) -# 4220 "flambda_parser_in.ml" +# 4230 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -4246,9 +4256,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos_cid_ in let _v : 'tv_function_slot_opt = -# 929 "flambda_parser.mly" +# 937 "flambda_parser.mly" ( Some cid ) -# 4252 "flambda_parser_in.ml" +# 4262 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -4267,21 +4277,21 @@ module Tables = struct CamlinternalMenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let o : ( -# 217 "flambda_parser.mly" +# 219 "flambda_parser.mly" (Fexpr.binary_int_arith_op) -# 4273 "flambda_parser_in.ml" +# 4283 "flambda_parser_in.ml" ) = Obj.magic o in let _endpos__0_ = _menhir_stack.CamlinternalMenhirLib.EngineTypes.endp in let _startpos = _startpos_o_ in let _endpos = _endpos_o_ in let _v : ( -# 228 "flambda_parser.mly" +# 230 "flambda_parser.mly" (Fexpr.infix_binop) -# 4281 "flambda_parser_in.ml" +# 4291 "flambda_parser_in.ml" ) = -# 376 "flambda_parser.mly" +# 383 "flambda_parser.mly" ( Int_arith o ) -# 4285 "flambda_parser_in.ml" +# 4295 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -4300,21 +4310,21 @@ module Tables = struct CamlinternalMenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let c : ( -# 229 "flambda_parser.mly" +# 231 "flambda_parser.mly" (Fexpr.signed_or_unsigned -> Fexpr.signed_or_unsigned Fexpr.comparison_behaviour) -# 4306 "flambda_parser_in.ml" +# 4316 "flambda_parser_in.ml" ) = Obj.magic c in let _endpos__0_ = _menhir_stack.CamlinternalMenhirLib.EngineTypes.endp in let _startpos = _startpos_c_ in let _endpos = _endpos_c_ in let _v : ( -# 228 "flambda_parser.mly" +# 230 "flambda_parser.mly" (Fexpr.infix_binop) -# 4314 "flambda_parser_in.ml" +# 4324 "flambda_parser_in.ml" ) = -# 377 "flambda_parser.mly" +# 384 "flambda_parser.mly" ( Int_comp (c Signed) ) -# 4318 "flambda_parser_in.ml" +# 4328 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -4337,13 +4347,13 @@ module Tables = struct let _startpos = _startpos_s_ in let _endpos = _endpos_s_ in let _v : ( -# 228 "flambda_parser.mly" +# 230 "flambda_parser.mly" (Fexpr.infix_binop) -# 4343 "flambda_parser_in.ml" +# 4353 "flambda_parser_in.ml" ) = -# 378 "flambda_parser.mly" +# 385 "flambda_parser.mly" ( Int_shift s ) -# 4347 "flambda_parser_in.ml" +# 4357 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -4362,21 +4372,21 @@ module Tables = struct CamlinternalMenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let o : ( -# 216 "flambda_parser.mly" +# 218 "flambda_parser.mly" (Fexpr.binary_float_arith_op) -# 4368 "flambda_parser_in.ml" +# 4378 "flambda_parser_in.ml" ) = Obj.magic o in let _endpos__0_ = _menhir_stack.CamlinternalMenhirLib.EngineTypes.endp in let _startpos = _startpos_o_ in let _endpos = _endpos_o_ in let _v : ( -# 228 "flambda_parser.mly" +# 230 "flambda_parser.mly" (Fexpr.infix_binop) -# 4376 "flambda_parser_in.ml" +# 4386 "flambda_parser_in.ml" ) = -# 379 "flambda_parser.mly" +# 386 "flambda_parser.mly" ( Float_arith o ) -# 4380 "flambda_parser_in.ml" +# 4390 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -4395,21 +4405,21 @@ module Tables = struct CamlinternalMenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let c : ( -# 225 "flambda_parser.mly" +# 227 "flambda_parser.mly" (unit Fexpr.comparison_behaviour) -# 4401 "flambda_parser_in.ml" +# 4411 "flambda_parser_in.ml" ) = Obj.magic c in let _endpos__0_ = _menhir_stack.CamlinternalMenhirLib.EngineTypes.endp in let _startpos = _startpos_c_ in let _endpos = _endpos_c_ in let _v : ( -# 228 "flambda_parser.mly" +# 230 "flambda_parser.mly" (Fexpr.infix_binop) -# 4409 "flambda_parser_in.ml" +# 4419 "flambda_parser_in.ml" ) = -# 380 "flambda_parser.mly" +# 387 "flambda_parser.mly" ( Float_comp c ) -# 4413 "flambda_parser_in.ml" +# 4423 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -4432,9 +4442,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_init_or_assign = -# 432 "flambda_parser.mly" +# 439 "flambda_parser.mly" ( Initialization ) -# 4438 "flambda_parser_in.ml" +# 4448 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -4457,9 +4467,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_init_or_assign = -# 433 "flambda_parser.mly" +# 440 "flambda_parser.mly" ( Assignment Heap ) -# 4463 "flambda_parser_in.ml" +# 4473 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -4490,9 +4500,9 @@ module Tables = struct }; } = _menhir_stack in let region : ( -# 239 "flambda_parser.mly" +# 241 "flambda_parser.mly" (Fexpr.region) -# 4496 "flambda_parser_in.ml" +# 4506 "flambda_parser_in.ml" ) = Obj.magic region in let _2 : unit = Obj.magic _2 in let _1 : unit = Obj.magic _1 in @@ -4500,9 +4510,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos_region_ in let _v : 'tv_init_or_assign = -# 434 "flambda_parser.mly" +# 441 "flambda_parser.mly" ( Assignment (Local { region }) ) -# 4506 "flambda_parser_in.ml" +# 4516 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -4546,9 +4556,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in let _v : 'tv_inline = -# 727 "flambda_parser.mly" +# 735 "flambda_parser.mly" ( Always_inline ) -# 4552 "flambda_parser_in.ml" +# 4562 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -4592,9 +4602,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in let _v : 'tv_inline = -# 728 "flambda_parser.mly" +# 736 "flambda_parser.mly" ( Available_inline ) -# 4598 "flambda_parser_in.ml" +# 4608 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -4638,9 +4648,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in let _v : 'tv_inline = -# 729 "flambda_parser.mly" +# 737 "flambda_parser.mly" ( Never_inline ) -# 4644 "flambda_parser_in.ml" +# 4654 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -4684,9 +4694,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in let _v : 'tv_inline = -# 730 "flambda_parser.mly" +# 738 "flambda_parser.mly" ( Inline_attribute.Unroll i ) -# 4690 "flambda_parser_in.ml" +# 4700 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -4730,9 +4740,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in let _v : 'tv_inline = -# 731 "flambda_parser.mly" +# 739 "flambda_parser.mly" ( Default_inline ) -# 4736 "flambda_parser_in.ml" +# 4746 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -4776,9 +4786,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in let _v : 'tv_inlined = -# 734 "flambda_parser.mly" +# 742 "flambda_parser.mly" ( Always_inlined ) -# 4782 "flambda_parser_in.ml" +# 4792 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -4822,9 +4832,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in let _v : 'tv_inlined = -# 735 "flambda_parser.mly" +# 743 "flambda_parser.mly" ( Hint_inlined ) -# 4828 "flambda_parser_in.ml" +# 4838 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -4868,9 +4878,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in let _v : 'tv_inlined = -# 736 "flambda_parser.mly" +# 744 "flambda_parser.mly" ( Never_inlined ) -# 4874 "flambda_parser_in.ml" +# 4884 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -4914,9 +4924,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in let _v : 'tv_inlined = -# 737 "flambda_parser.mly" +# 745 "flambda_parser.mly" ( Unroll i ) -# 4920 "flambda_parser_in.ml" +# 4930 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -4960,9 +4970,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in let _v : 'tv_inlined = -# 738 "flambda_parser.mly" +# 746 "flambda_parser.mly" ( Default_inlined ) -# 4966 "flambda_parser_in.ml" +# 4976 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -5006,12 +5016,12 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in let _v : 'tv_inlining_state = -# 742 "flambda_parser.mly" +# 750 "flambda_parser.mly" ( (* CR poechsel: Parse the inlining arguments *) { depth } ) -# 5015 "flambda_parser_in.ml" +# 5025 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -5055,9 +5065,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in let _v : 'tv_inlining_state_depth = -# 748 "flambda_parser.mly" +# 756 "flambda_parser.mly" ( i ) -# 5061 "flambda_parser_in.ml" +# 5071 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -5080,9 +5090,9 @@ module Tables = struct let _startpos = _startpos_w_ in let _endpos = _endpos_w_ in let _v : 'tv_inner_expr = -# 622 "flambda_parser.mly" +# 630 "flambda_parser.mly" ( w ) -# 5086 "flambda_parser_in.ml" +# 5096 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -5105,9 +5115,9 @@ module Tables = struct let _startpos = _startpos_a_ in let _endpos = _endpos_a_ in let _v : 'tv_inner_expr = -# 623 "flambda_parser.mly" +# 631 "flambda_parser.mly" ( a ) -# 5111 "flambda_parser_in.ml" +# 5121 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -5130,13 +5140,13 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : ( -# 229 "flambda_parser.mly" +# 231 "flambda_parser.mly" (Fexpr.signed_or_unsigned -> Fexpr.signed_or_unsigned Fexpr.comparison_behaviour) -# 5136 "flambda_parser_in.ml" +# 5146 "flambda_parser_in.ml" ) = -# 457 "flambda_parser.mly" +# 464 "flambda_parser.mly" ( fun s -> Yielding_bool (Lt s) ) -# 5140 "flambda_parser_in.ml" +# 5150 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -5159,13 +5169,13 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : ( -# 229 "flambda_parser.mly" +# 231 "flambda_parser.mly" (Fexpr.signed_or_unsigned -> Fexpr.signed_or_unsigned Fexpr.comparison_behaviour) -# 5165 "flambda_parser_in.ml" +# 5175 "flambda_parser_in.ml" ) = -# 458 "flambda_parser.mly" +# 465 "flambda_parser.mly" ( fun s -> Yielding_bool (Gt s) ) -# 5169 "flambda_parser_in.ml" +# 5179 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -5188,13 +5198,13 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : ( -# 229 "flambda_parser.mly" +# 231 "flambda_parser.mly" (Fexpr.signed_or_unsigned -> Fexpr.signed_or_unsigned Fexpr.comparison_behaviour) -# 5194 "flambda_parser_in.ml" +# 5204 "flambda_parser_in.ml" ) = -# 459 "flambda_parser.mly" +# 466 "flambda_parser.mly" ( fun s -> Yielding_bool (Le s) ) -# 5198 "flambda_parser_in.ml" +# 5208 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -5217,13 +5227,13 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : ( -# 229 "flambda_parser.mly" +# 231 "flambda_parser.mly" (Fexpr.signed_or_unsigned -> Fexpr.signed_or_unsigned Fexpr.comparison_behaviour) -# 5223 "flambda_parser_in.ml" +# 5233 "flambda_parser_in.ml" ) = -# 460 "flambda_parser.mly" +# 467 "flambda_parser.mly" ( fun s -> Yielding_bool (Ge s) ) -# 5227 "flambda_parser_in.ml" +# 5237 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -5246,13 +5256,13 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : ( -# 229 "flambda_parser.mly" +# 231 "flambda_parser.mly" (Fexpr.signed_or_unsigned -> Fexpr.signed_or_unsigned Fexpr.comparison_behaviour) -# 5252 "flambda_parser_in.ml" +# 5262 "flambda_parser_in.ml" ) = -# 461 "flambda_parser.mly" +# 468 "flambda_parser.mly" ( fun s -> Yielding_int_like_compare_functions s ) -# 5256 "flambda_parser_in.ml" +# 5266 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -5275,9 +5285,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_int_shift = -# 474 "flambda_parser.mly" +# 481 "flambda_parser.mly" ( Lsl ) -# 5281 "flambda_parser_in.ml" +# 5291 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -5300,9 +5310,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_int_shift = -# 475 "flambda_parser.mly" +# 482 "flambda_parser.mly" ( Lsr ) -# 5306 "flambda_parser_in.ml" +# 5316 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -5325,9 +5335,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_int_shift = -# 476 "flambda_parser.mly" +# 483 "flambda_parser.mly" ( Asr ) -# 5331 "flambda_parser_in.ml" +# 5341 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -5346,21 +5356,21 @@ module Tables = struct CamlinternalMenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let nnk : ( -# 234 "flambda_parser.mly" +# 236 "flambda_parser.mly" (Flambda_kind.Naked_number_kind.t) -# 5352 "flambda_parser_in.ml" +# 5362 "flambda_parser_in.ml" ) = Obj.magic nnk in let _endpos__0_ = _menhir_stack.CamlinternalMenhirLib.EngineTypes.endp in let _startpos = _startpos_nnk_ in let _endpos = _endpos_nnk_ in let _v : ( -# 231 "flambda_parser.mly" +# 233 "flambda_parser.mly" (Fexpr.kind_with_subkind) -# 5360 "flambda_parser_in.ml" +# 5370 "flambda_parser_in.ml" ) = -# 551 "flambda_parser.mly" +# 559 "flambda_parser.mly" ( Naked_number nnk ) -# 5364 "flambda_parser_in.ml" +# 5374 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -5379,21 +5389,21 @@ module Tables = struct CamlinternalMenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let subkind : ( -# 244 "flambda_parser.mly" +# 246 "flambda_parser.mly" (Fexpr.subkind) -# 5385 "flambda_parser_in.ml" +# 5395 "flambda_parser_in.ml" ) = Obj.magic subkind in let _endpos__0_ = _menhir_stack.CamlinternalMenhirLib.EngineTypes.endp in let _startpos = _startpos_subkind_ in let _endpos = _endpos_subkind_ in let _v : ( -# 231 "flambda_parser.mly" +# 233 "flambda_parser.mly" (Fexpr.kind_with_subkind) -# 5393 "flambda_parser_in.ml" +# 5403 "flambda_parser_in.ml" ) = -# 552 "flambda_parser.mly" +# 560 "flambda_parser.mly" ( Value subkind ) -# 5397 "flambda_parser_in.ml" +# 5407 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -5416,13 +5426,13 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : ( -# 231 "flambda_parser.mly" +# 233 "flambda_parser.mly" (Fexpr.kind_with_subkind) -# 5422 "flambda_parser_in.ml" +# 5432 "flambda_parser_in.ml" ) = -# 553 "flambda_parser.mly" +# 561 "flambda_parser.mly" ( Region ) -# 5426 "flambda_parser_in.ml" +# 5436 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -5445,13 +5455,13 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : ( -# 231 "flambda_parser.mly" +# 233 "flambda_parser.mly" (Fexpr.kind_with_subkind) -# 5451 "flambda_parser_in.ml" +# 5461 "flambda_parser_in.ml" ) = -# 554 "flambda_parser.mly" +# 562 "flambda_parser.mly" ( Rec_info ) -# 5455 "flambda_parser_in.ml" +# 5465 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -5467,9 +5477,9 @@ module Tables = struct let _startpos = _menhir_stack.CamlinternalMenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : 'tv_kind_with_subkind_opt = -# 857 "flambda_parser.mly" +# 865 "flambda_parser.mly" ( None ) -# 5473 "flambda_parser_in.ml" +# 5483 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -5494,18 +5504,18 @@ module Tables = struct }; } = _menhir_stack in let kind : ( -# 231 "flambda_parser.mly" +# 233 "flambda_parser.mly" (Fexpr.kind_with_subkind) -# 5500 "flambda_parser_in.ml" +# 5510 "flambda_parser_in.ml" ) = Obj.magic kind in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.CamlinternalMenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_kind_ in let _v : 'tv_kind_with_subkind_opt = -# 858 "flambda_parser.mly" +# 866 "flambda_parser.mly" ( Some kind ) -# 5509 "flambda_parser_in.ml" +# 5519 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -5521,9 +5531,9 @@ module Tables = struct let _startpos = _menhir_stack.CamlinternalMenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : 'tv_kinded_args = -# 792 "flambda_parser.mly" +# 800 "flambda_parser.mly" ( [] ) -# 5527 "flambda_parser_in.ml" +# 5537 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -5560,9 +5570,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_kinded_args = -# 793 "flambda_parser.mly" +# 801 "flambda_parser.mly" ( vs ) -# 5566 "flambda_parser_in.ml" +# 5576 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -5592,9 +5602,9 @@ module Tables = struct let _startpos = _startpos_param_ in let _endpos = _endpos_kind_ in let _v : 'tv_kinded_variable = -# 853 "flambda_parser.mly" +# 861 "flambda_parser.mly" ( { param; kind } ) -# 5598 "flambda_parser_in.ml" +# 5608 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -5617,13 +5627,13 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : ( -# 232 "flambda_parser.mly" +# 234 "flambda_parser.mly" (Fexpr.kind_with_subkind list) -# 5623 "flambda_parser_in.ml" +# 5633 "flambda_parser_in.ml" ) = -# 557 "flambda_parser.mly" +# 565 "flambda_parser.mly" ( [] ) -# 5627 "flambda_parser_in.ml" +# 5637 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -5646,13 +5656,13 @@ module Tables = struct let _startpos = _startpos_ks_ in let _endpos = _endpos_ks_ in let _v : ( -# 232 "flambda_parser.mly" +# 234 "flambda_parser.mly" (Fexpr.kind_with_subkind list) -# 5652 "flambda_parser_in.ml" +# 5662 "flambda_parser_in.ml" ) = -# 558 "flambda_parser.mly" +# 566 "flambda_parser.mly" ( ks ) -# 5656 "flambda_parser_in.ml" +# 5666 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -5696,9 +5706,9 @@ module Tables = struct let _startpos = _startpos_bindings_ in let _endpos = _endpos_body_ in let _v : 'tv_let__continuation_body_ = -# 670 "flambda_parser.mly" +# 678 "flambda_parser.mly" ( ({ bindings; value_slots; body } : let_) ) -# 5702 "flambda_parser_in.ml" +# 5712 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -5742,9 +5752,9 @@ module Tables = struct let _startpos = _startpos_bindings_ in let _endpos = _endpos_body_ in let _v : 'tv_let__expr_ = -# 670 "flambda_parser.mly" +# 678 "flambda_parser.mly" ( ({ bindings; value_slots; body } : let_) ) -# 5748 "flambda_parser_in.ml" +# 5758 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -5775,9 +5785,9 @@ module Tables = struct }; } = _menhir_stack in let defining_expr : ( -# 236 "flambda_parser.mly" +# 238 "flambda_parser.mly" (Fexpr.named) -# 5781 "flambda_parser_in.ml" +# 5791 "flambda_parser_in.ml" ) = Obj.magic defining_expr in let _2 : unit = Obj.magic _2 in let var : 'tv_variable = Obj.magic var in @@ -5785,9 +5795,9 @@ module Tables = struct let _startpos = _startpos_var_ in let _endpos = _endpos_defining_expr_ in let _v : 'tv_let_binding = -# 675 "flambda_parser.mly" +# 683 "flambda_parser.mly" ( { var; defining_expr } ) -# 5791 "flambda_parser_in.ml" +# 5801 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -5817,9 +5827,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos_l_ in let _v : 'tv_let_expr_continuation_body_ = -# 617 "flambda_parser.mly" +# 625 "flambda_parser.mly" ( Let l ) -# 5823 "flambda_parser_in.ml" +# 5833 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -5842,9 +5852,9 @@ module Tables = struct let _startpos = _startpos_ls_ in let _endpos = _endpos_ls_ in let _v : 'tv_let_expr_continuation_body_ = -# 618 "flambda_parser.mly" +# 626 "flambda_parser.mly" ( Let_symbol ls ) -# 5848 "flambda_parser_in.ml" +# 5858 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -5874,9 +5884,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos_l_ in let _v : 'tv_let_expr_expr_ = -# 617 "flambda_parser.mly" +# 625 "flambda_parser.mly" ( Let l ) -# 5880 "flambda_parser_in.ml" +# 5890 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -5899,9 +5909,9 @@ module Tables = struct let _startpos = _startpos_ls_ in let _endpos = _endpos_ls_ in let _v : 'tv_let_expr_expr_ = -# 618 "flambda_parser.mly" +# 626 "flambda_parser.mly" ( Let_symbol ls ) -# 5905 "flambda_parser_in.ml" +# 5915 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -5952,9 +5962,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos_body_ in let _v : 'tv_let_symbol_continuation_body_ = -# 283 "flambda_parser.mly" +# 285 "flambda_parser.mly" ( { bindings; value_slots; body } ) -# 5958 "flambda_parser_in.ml" +# 5968 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -6005,9 +6015,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos_body_ in let _v : 'tv_let_symbol_expr_ = -# 283 "flambda_parser.mly" +# 285 "flambda_parser.mly" ( { bindings; value_slots; body } ) -# 6011 "flambda_parser_in.ml" +# 6021 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -6025,7 +6035,7 @@ module Tables = struct let _v : 'tv_loption_separated_nonempty_list_COMMA_field_of_block__ = # 142 "" ( [] ) -# 6029 "flambda_parser_in.ml" +# 6039 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -6050,7 +6060,7 @@ module Tables = struct let _v : 'tv_loption_separated_nonempty_list_COMMA_field_of_block__ = # 144 "" ( x ) -# 6054 "flambda_parser_in.ml" +# 6064 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -6068,7 +6078,7 @@ module Tables = struct let _v : 'tv_loption_separated_nonempty_list_COMMA_float_or_variable__ = # 142 "" ( [] ) -# 6072 "flambda_parser_in.ml" +# 6082 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -6093,7 +6103,7 @@ module Tables = struct let _v : 'tv_loption_separated_nonempty_list_COMMA_float_or_variable__ = # 144 "" ( x ) -# 6097 "flambda_parser_in.ml" +# 6107 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -6111,7 +6121,7 @@ module Tables = struct let _v : 'tv_loption_separated_nonempty_list_COMMA_simple__ = # 142 "" ( [] ) -# 6115 "flambda_parser_in.ml" +# 6125 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -6136,7 +6146,7 @@ module Tables = struct let _v : 'tv_loption_separated_nonempty_list_COMMA_simple__ = # 144 "" ( x ) -# 6140 "flambda_parser_in.ml" +# 6150 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -6154,7 +6164,7 @@ module Tables = struct let _v : 'tv_loption_separated_nonempty_list_KWD_ANDWHERE_continuation_binding__ = # 142 "" ( [] ) -# 6158 "flambda_parser_in.ml" +# 6168 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -6179,7 +6189,7 @@ module Tables = struct let _v : 'tv_loption_separated_nonempty_list_KWD_ANDWHERE_continuation_binding__ = # 144 "" ( x ) -# 6183 "flambda_parser_in.ml" +# 6193 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -6197,7 +6207,7 @@ module Tables = struct let _v : 'tv_loption_separated_nonempty_list_PIPE_switch_case__ = # 142 "" ( [] ) -# 6201 "flambda_parser_in.ml" +# 6211 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -6222,7 +6232,7 @@ module Tables = struct let _v : 'tv_loption_separated_nonempty_list_PIPE_switch_case__ = # 144 "" ( x ) -# 6226 "flambda_parser_in.ml" +# 6236 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -6240,7 +6250,7 @@ module Tables = struct let _v : 'tv_loption_separated_nonempty_list_SEMICOLON_float_or_variable__ = # 142 "" ( [] ) -# 6244 "flambda_parser_in.ml" +# 6254 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -6265,7 +6275,7 @@ module Tables = struct let _v : 'tv_loption_separated_nonempty_list_SEMICOLON_float_or_variable__ = # 144 "" ( x ) -# 6269 "flambda_parser_in.ml" +# 6279 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -6283,7 +6293,7 @@ module Tables = struct let _v : 'tv_loption_separated_nonempty_list_SEMICOLON_value_slot__ = # 142 "" ( [] ) -# 6287 "flambda_parser_in.ml" +# 6297 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -6308,7 +6318,7 @@ module Tables = struct let _v : 'tv_loption_separated_nonempty_list_SEMICOLON_value_slot__ = # 144 "" ( x ) -# 6312 "flambda_parser_in.ml" +# 6322 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -6331,9 +6341,9 @@ module Tables = struct let _startpos = _startpos_body_ in let _endpos = _endpos_body_ in let _v : 'tv_module_ = -# 269 "flambda_parser.mly" +# 271 "flambda_parser.mly" ( { body } ) -# 6337 "flambda_parser_in.ml" +# 6347 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -6356,13 +6366,13 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : ( -# 233 "flambda_parser.mly" +# 235 "flambda_parser.mly" (Fexpr.mutability) -# 6362 "flambda_parser_in.ml" +# 6372 "flambda_parser_in.ml" ) = -# 392 "flambda_parser.mly" +# 399 "flambda_parser.mly" ( Mutable ) -# 6366 "flambda_parser_in.ml" +# 6376 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -6385,13 +6395,13 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : ( -# 233 "flambda_parser.mly" +# 235 "flambda_parser.mly" (Fexpr.mutability) -# 6391 "flambda_parser_in.ml" +# 6401 "flambda_parser_in.ml" ) = -# 393 "flambda_parser.mly" +# 400 "flambda_parser.mly" ( Immutable_unique ) -# 6395 "flambda_parser_in.ml" +# 6405 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -6407,13 +6417,13 @@ module Tables = struct let _startpos = _menhir_stack.CamlinternalMenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : ( -# 233 "flambda_parser.mly" +# 235 "flambda_parser.mly" (Fexpr.mutability) -# 6413 "flambda_parser_in.ml" +# 6423 "flambda_parser_in.ml" ) = -# 394 "flambda_parser.mly" +# 401 "flambda_parser.mly" ( Immutable ) -# 6417 "flambda_parser_in.ml" +# 6427 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -6436,13 +6446,13 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : ( -# 234 "flambda_parser.mly" +# 236 "flambda_parser.mly" (Flambda_kind.Naked_number_kind.t) -# 6442 "flambda_parser_in.ml" +# 6452 "flambda_parser_in.ml" ) = -# 536 "flambda_parser.mly" +# 544 "flambda_parser.mly" ( Naked_immediate ) -# 6446 "flambda_parser_in.ml" +# 6456 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -6465,13 +6475,13 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : ( -# 234 "flambda_parser.mly" +# 236 "flambda_parser.mly" (Flambda_kind.Naked_number_kind.t) -# 6471 "flambda_parser_in.ml" +# 6481 "flambda_parser_in.ml" ) = -# 537 "flambda_parser.mly" +# 545 "flambda_parser.mly" ( Naked_float ) -# 6475 "flambda_parser_in.ml" +# 6485 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -6494,13 +6504,13 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : ( -# 234 "flambda_parser.mly" +# 236 "flambda_parser.mly" (Flambda_kind.Naked_number_kind.t) -# 6500 "flambda_parser_in.ml" +# 6510 "flambda_parser_in.ml" ) = -# 538 "flambda_parser.mly" +# 546 "flambda_parser.mly" ( Naked_int32 ) -# 6504 "flambda_parser_in.ml" +# 6514 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -6523,13 +6533,13 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : ( -# 234 "flambda_parser.mly" +# 236 "flambda_parser.mly" (Flambda_kind.Naked_number_kind.t) -# 6529 "flambda_parser_in.ml" +# 6539 "flambda_parser_in.ml" ) = -# 539 "flambda_parser.mly" +# 547 "flambda_parser.mly" ( Naked_int64 ) -# 6533 "flambda_parser_in.ml" +# 6543 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -6552,13 +6562,13 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : ( -# 234 "flambda_parser.mly" +# 236 "flambda_parser.mly" (Flambda_kind.Naked_number_kind.t) -# 6558 "flambda_parser_in.ml" +# 6568 "flambda_parser_in.ml" ) = -# 540 "flambda_parser.mly" +# 548 "flambda_parser.mly" ( Naked_nativeint ) -# 6562 "flambda_parser_in.ml" +# 6572 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -6581,13 +6591,13 @@ module Tables = struct let _startpos = _startpos_s_ in let _endpos = _endpos_s_ in let _v : ( -# 235 "flambda_parser.mly" +# 237 "flambda_parser.mly" (Fexpr.name) -# 6587 "flambda_parser_in.ml" +# 6597 "flambda_parser_in.ml" ) = -# 871 "flambda_parser.mly" +# 879 "flambda_parser.mly" ( (Symbol s:name) ) -# 6591 "flambda_parser_in.ml" +# 6601 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -6610,13 +6620,13 @@ module Tables = struct let _startpos = _startpos_v_ in let _endpos = _endpos_v_ in let _v : ( -# 235 "flambda_parser.mly" +# 237 "flambda_parser.mly" (Fexpr.name) -# 6616 "flambda_parser_in.ml" +# 6626 "flambda_parser_in.ml" ) = -# 872 "flambda_parser.mly" +# 880 "flambda_parser.mly" ( (Var v:name) ) -# 6620 "flambda_parser_in.ml" +# 6630 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -6639,13 +6649,42 @@ module Tables = struct let _startpos = _startpos_s_ in let _endpos = _endpos_s_ in let _v : ( -# 236 "flambda_parser.mly" +# 238 "flambda_parser.mly" (Fexpr.named) -# 6645 "flambda_parser_in.ml" +# 6655 "flambda_parser_in.ml" ) = -# 514 "flambda_parser.mly" +# 521 "flambda_parser.mly" ( Simple s ) -# 6649 "flambda_parser_in.ml" +# 6659 "flambda_parser_in.ml" + in + { + CamlinternalMenhirLib.EngineTypes.state = _menhir_s; + CamlinternalMenhirLib.EngineTypes.semv = Obj.repr _v; + CamlinternalMenhirLib.EngineTypes.startp = _startpos; + CamlinternalMenhirLib.EngineTypes.endp = _endpos; + CamlinternalMenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.CamlinternalMenhirLib.EngineTypes.stack in + let { + CamlinternalMenhirLib.EngineTypes.state = _menhir_s; + CamlinternalMenhirLib.EngineTypes.semv = n; + CamlinternalMenhirLib.EngineTypes.startp = _startpos_n_; + CamlinternalMenhirLib.EngineTypes.endp = _endpos_n_; + CamlinternalMenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let n : 'tv_nullop = Obj.magic n in + let _endpos__0_ = _menhir_stack.CamlinternalMenhirLib.EngineTypes.endp in + let _startpos = _startpos_n_ in + let _endpos = _endpos_n_ in + let _v : ( +# 238 "flambda_parser.mly" + (Fexpr.named) +# 6684 "flambda_parser_in.ml" + ) = +# 522 "flambda_parser.mly" + ( Prim (Nullary n) ) +# 6688 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -6675,13 +6714,13 @@ module Tables = struct let _startpos = _startpos_u_ in let _endpos = _endpos_a_ in let _v : ( -# 236 "flambda_parser.mly" +# 238 "flambda_parser.mly" (Fexpr.named) -# 6681 "flambda_parser_in.ml" +# 6720 "flambda_parser_in.ml" ) = -# 515 "flambda_parser.mly" +# 523 "flambda_parser.mly" ( Prim (Unary (u, a)) ) -# 6685 "flambda_parser_in.ml" +# 6724 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -6704,13 +6743,13 @@ module Tables = struct let _startpos = _startpos_b_ in let _endpos = _endpos_b_ in let _v : ( -# 236 "flambda_parser.mly" +# 238 "flambda_parser.mly" (Fexpr.named) -# 6710 "flambda_parser_in.ml" +# 6749 "flambda_parser_in.ml" ) = -# 516 "flambda_parser.mly" +# 524 "flambda_parser.mly" ( Prim b ) -# 6714 "flambda_parser_in.ml" +# 6753 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -6733,13 +6772,13 @@ module Tables = struct let _startpos = _startpos_t_ in let _endpos = _endpos_t_ in let _v : ( -# 236 "flambda_parser.mly" +# 238 "flambda_parser.mly" (Fexpr.named) -# 6739 "flambda_parser_in.ml" +# 6778 "flambda_parser_in.ml" ) = -# 517 "flambda_parser.mly" +# 525 "flambda_parser.mly" ( Prim t ) -# 6743 "flambda_parser_in.ml" +# 6782 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -6762,13 +6801,13 @@ module Tables = struct let _startpos = _startpos_b_ in let _endpos = _endpos_b_ in let _v : ( -# 236 "flambda_parser.mly" +# 238 "flambda_parser.mly" (Fexpr.named) -# 6768 "flambda_parser_in.ml" +# 6807 "flambda_parser_in.ml" ) = -# 518 "flambda_parser.mly" +# 526 "flambda_parser.mly" ( Prim b ) -# 6772 "flambda_parser_in.ml" +# 6811 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -6791,13 +6830,13 @@ module Tables = struct let _startpos = _startpos_c_ in let _endpos = _endpos_c_ in let _v : ( -# 236 "flambda_parser.mly" +# 238 "flambda_parser.mly" (Fexpr.named) -# 6797 "flambda_parser_in.ml" +# 6836 "flambda_parser_in.ml" ) = -# 519 "flambda_parser.mly" +# 527 "flambda_parser.mly" ( Closure c ) -# 6801 "flambda_parser_in.ml" +# 6840 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -6822,22 +6861,22 @@ module Tables = struct }; } = _menhir_stack in let ri : ( -# 238 "flambda_parser.mly" +# 240 "flambda_parser.mly" (Fexpr.rec_info) -# 6828 "flambda_parser_in.ml" +# 6867 "flambda_parser_in.ml" ) = Obj.magic ri in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.CamlinternalMenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_ri_ in let _v : ( -# 236 "flambda_parser.mly" +# 238 "flambda_parser.mly" (Fexpr.named) -# 6837 "flambda_parser_in.ml" +# 6876 "flambda_parser_in.ml" ) = -# 525 "flambda_parser.mly" +# 533 "flambda_parser.mly" ( Rec_info ri ) -# 6841 "flambda_parser_in.ml" +# 6880 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -6881,9 +6920,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in let _v : 'tv_newer_version_of = -# 327 "flambda_parser.mly" +# 329 "flambda_parser.mly" ( id ) -# 6887 "flambda_parser_in.ml" +# 6926 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -6914,9 +6953,9 @@ module Tables = struct }; } = _menhir_stack in let kinds : ( -# 245 "flambda_parser.mly" +# 247 "flambda_parser.mly" (Fexpr.subkind list) -# 6920 "flambda_parser_in.ml" +# 6959 "flambda_parser_in.ml" ) = Obj.magic kinds in let _2 : unit = Obj.magic _2 in let tag : 'tv_tag = Obj.magic tag in @@ -6924,9 +6963,9 @@ module Tables = struct let _startpos = _startpos_tag_ in let _endpos = _endpos_kinds_ in let _v : 'tv_nonconst_ctor = -# 591 "flambda_parser.mly" +# 599 "flambda_parser.mly" ( tag, kinds ) -# 6930 "flambda_parser_in.ml" +# 6969 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -6949,9 +6988,34 @@ module Tables = struct let _startpos = _startpos_ctors_ in let _endpos = _endpos_ctors_ in let _v : 'tv_nonconst_ctors_nonempty = -# 588 "flambda_parser.mly" +# 596 "flambda_parser.mly" ( ctors ) -# 6955 "flambda_parser_in.ml" +# 6994 "flambda_parser_in.ml" + in + { + CamlinternalMenhirLib.EngineTypes.state = _menhir_s; + CamlinternalMenhirLib.EngineTypes.semv = Obj.repr _v; + CamlinternalMenhirLib.EngineTypes.startp = _startpos; + CamlinternalMenhirLib.EngineTypes.endp = _endpos; + CamlinternalMenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.CamlinternalMenhirLib.EngineTypes.stack in + let { + CamlinternalMenhirLib.EngineTypes.state = _menhir_s; + CamlinternalMenhirLib.EngineTypes.semv = _1; + CamlinternalMenhirLib.EngineTypes.startp = _startpos__1_; + CamlinternalMenhirLib.EngineTypes.endp = _endpos__1_; + CamlinternalMenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let _1 : unit = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.CamlinternalMenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : 'tv_nullop = +# 349 "flambda_parser.mly" + ( Begin_region ) +# 7019 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -6969,7 +7033,7 @@ module Tables = struct let _v : 'tv_option_PIPE_ = # 114 "" ( None ) -# 6973 "flambda_parser_in.ml" +# 7037 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -6994,7 +7058,7 @@ module Tables = struct let _v : 'tv_option_PIPE_ = # 116 "" ( Some x ) -# 6998 "flambda_parser_in.ml" +# 7062 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -7012,7 +7076,7 @@ module Tables = struct let _v : 'tv_option_inline_ = # 114 "" ( None ) -# 7016 "flambda_parser_in.ml" +# 7080 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -7037,7 +7101,7 @@ module Tables = struct let _v : 'tv_option_inline_ = # 116 "" ( Some x ) -# 7041 "flambda_parser_in.ml" +# 7105 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -7055,7 +7119,7 @@ module Tables = struct let _v : 'tv_option_inlined_ = # 114 "" ( None ) -# 7059 "flambda_parser_in.ml" +# 7123 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -7080,7 +7144,7 @@ module Tables = struct let _v : 'tv_option_inlined_ = # 116 "" ( Some x ) -# 7084 "flambda_parser_in.ml" +# 7148 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -7098,7 +7162,7 @@ module Tables = struct let _v : 'tv_option_inlining_state_ = # 114 "" ( None ) -# 7102 "flambda_parser_in.ml" +# 7166 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -7123,7 +7187,7 @@ module Tables = struct let _v : 'tv_option_inlining_state_ = # 116 "" ( Some x ) -# 7127 "flambda_parser_in.ml" +# 7191 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -7141,7 +7205,7 @@ module Tables = struct let _v : 'tv_option_newer_version_of_ = # 114 "" ( None ) -# 7145 "flambda_parser_in.ml" +# 7209 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -7166,7 +7230,7 @@ module Tables = struct let _v : 'tv_option_newer_version_of_ = # 116 "" ( Some x ) -# 7170 "flambda_parser_in.ml" +# 7234 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -7184,7 +7248,7 @@ module Tables = struct let _v : 'tv_option_raise_kind_ = # 114 "" ( None ) -# 7188 "flambda_parser_in.ml" +# 7252 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -7209,7 +7273,7 @@ module Tables = struct let _v : 'tv_option_raise_kind_ = # 116 "" ( Some x ) -# 7213 "flambda_parser_in.ml" +# 7277 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -7227,7 +7291,7 @@ module Tables = struct let _v : 'tv_option_trap_action_ = # 114 "" ( None ) -# 7231 "flambda_parser_in.ml" +# 7295 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -7252,7 +7316,7 @@ module Tables = struct let _v : 'tv_option_trap_action_ = # 116 "" ( Some x ) -# 7256 "flambda_parser_in.ml" +# 7320 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -7273,15 +7337,15 @@ module Tables = struct let i : ( # 74 "flambda_parser.mly" (string * char option) -# 7277 "flambda_parser_in.ml" +# 7341 "flambda_parser_in.ml" ) = Obj.magic i in let _endpos__0_ = _menhir_stack.CamlinternalMenhirLib.EngineTypes.endp in let _startpos = _startpos_i_ in let _endpos = _endpos_i_ in let _v : 'tv_plain_int = -# 843 "flambda_parser.mly" +# 851 "flambda_parser.mly" ( make_plain_int i ) -# 7285 "flambda_parser_in.ml" +# 7349 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -7313,18 +7377,18 @@ module Tables = struct } = _menhir_stack in let kind : 'tv_block_access_kind = Obj.magic kind in let mutability : ( -# 233 "flambda_parser.mly" +# 235 "flambda_parser.mly" (Fexpr.mutability) -# 7319 "flambda_parser_in.ml" +# 7383 "flambda_parser_in.ml" ) = Obj.magic mutability in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.CamlinternalMenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_kind_ in let _v : 'tv_prefix_binop = -# 387 "flambda_parser.mly" +# 394 "flambda_parser.mly" ( Block_load (kind, mutability) ) -# 7328 "flambda_parser_in.ml" +# 7392 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -7347,9 +7411,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_prefix_binop = -# 388 "flambda_parser.mly" +# 395 "flambda_parser.mly" ( Phys_equal Eq ) -# 7353 "flambda_parser_in.ml" +# 7417 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -7372,9 +7436,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_prefix_binop = -# 389 "flambda_parser.mly" +# 396 "flambda_parser.mly" ( Phys_equal Neq ) -# 7378 "flambda_parser_in.ml" +# 7442 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -7397,9 +7461,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_raise_kind = -# 775 "flambda_parser.mly" +# 783 "flambda_parser.mly" ( Regular ) -# 7403 "flambda_parser_in.ml" +# 7467 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -7422,9 +7486,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_raise_kind = -# 776 "flambda_parser.mly" +# 784 "flambda_parser.mly" ( Reraise ) -# 7428 "flambda_parser_in.ml" +# 7492 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -7447,9 +7511,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_raise_kind = -# 777 "flambda_parser.mly" +# 785 "flambda_parser.mly" ( No_trace ) -# 7453 "flambda_parser_in.ml" +# 7517 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -7468,21 +7532,21 @@ module Tables = struct CamlinternalMenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let ri : ( -# 238 "flambda_parser.mly" +# 240 "flambda_parser.mly" (Fexpr.rec_info) -# 7474 "flambda_parser_in.ml" +# 7538 "flambda_parser_in.ml" ) = Obj.magic ri in let _endpos__0_ = _menhir_stack.CamlinternalMenhirLib.EngineTypes.endp in let _startpos = _startpos_ri_ in let _endpos = _endpos_ri_ in let _v : ( -# 237 "flambda_parser.mly" +# 239 "flambda_parser.mly" (Fexpr.rec_info) -# 7482 "flambda_parser_in.ml" +# 7546 "flambda_parser_in.ml" ) = -# 911 "flambda_parser.mly" +# 919 "flambda_parser.mly" ( ri ) -# 7486 "flambda_parser_in.ml" +# 7550 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -7507,22 +7571,22 @@ module Tables = struct }; } = _menhir_stack in let ri : ( -# 238 "flambda_parser.mly" +# 240 "flambda_parser.mly" (Fexpr.rec_info) -# 7513 "flambda_parser_in.ml" +# 7577 "flambda_parser_in.ml" ) = Obj.magic ri in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.CamlinternalMenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_ri_ in let _v : ( -# 237 "flambda_parser.mly" +# 239 "flambda_parser.mly" (Fexpr.rec_info) -# 7522 "flambda_parser_in.ml" +# 7586 "flambda_parser_in.ml" ) = -# 912 "flambda_parser.mly" +# 920 "flambda_parser.mly" ( Succ ri ) -# 7526 "flambda_parser_in.ml" +# 7590 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -7553,9 +7617,9 @@ module Tables = struct }; } = _menhir_stack in let ri : ( -# 238 "flambda_parser.mly" +# 240 "flambda_parser.mly" (Fexpr.rec_info) -# 7559 "flambda_parser_in.ml" +# 7623 "flambda_parser_in.ml" ) = Obj.magic ri in let d : 'tv_plain_int = Obj.magic d in let _1 : unit = Obj.magic _1 in @@ -7563,13 +7627,13 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos_ri_ in let _v : ( -# 237 "flambda_parser.mly" +# 239 "flambda_parser.mly" (Fexpr.rec_info) -# 7569 "flambda_parser_in.ml" +# 7633 "flambda_parser_in.ml" ) = -# 913 "flambda_parser.mly" +# 921 "flambda_parser.mly" ( Unroll (d, ri) ) -# 7573 "flambda_parser_in.ml" +# 7637 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -7592,13 +7656,13 @@ module Tables = struct let _startpos = _startpos_i_ in let _endpos = _endpos_i_ in let _v : ( -# 238 "flambda_parser.mly" +# 240 "flambda_parser.mly" (Fexpr.rec_info) -# 7598 "flambda_parser_in.ml" +# 7662 "flambda_parser_in.ml" ) = -# 903 "flambda_parser.mly" +# 911 "flambda_parser.mly" ( Depth i ) -# 7602 "flambda_parser_in.ml" +# 7666 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -7621,13 +7685,13 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : ( -# 238 "flambda_parser.mly" +# 240 "flambda_parser.mly" (Fexpr.rec_info) -# 7627 "flambda_parser_in.ml" +# 7691 "flambda_parser_in.ml" ) = -# 904 "flambda_parser.mly" +# 912 "flambda_parser.mly" ( Infinity ) -# 7631 "flambda_parser_in.ml" +# 7695 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -7650,13 +7714,13 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : ( -# 238 "flambda_parser.mly" +# 240 "flambda_parser.mly" (Fexpr.rec_info) -# 7656 "flambda_parser_in.ml" +# 7720 "flambda_parser_in.ml" ) = -# 905 "flambda_parser.mly" +# 913 "flambda_parser.mly" ( Do_not_inline ) -# 7660 "flambda_parser_in.ml" +# 7724 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -7679,13 +7743,13 @@ module Tables = struct let _startpos = _startpos_dv_ in let _endpos = _endpos_dv_ in let _v : ( -# 238 "flambda_parser.mly" +# 240 "flambda_parser.mly" (Fexpr.rec_info) -# 7685 "flambda_parser_in.ml" +# 7749 "flambda_parser_in.ml" ) = -# 906 "flambda_parser.mly" +# 914 "flambda_parser.mly" ( Var dv ) -# 7689 "flambda_parser_in.ml" +# 7753 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -7717,22 +7781,22 @@ module Tables = struct } = _menhir_stack in let _3 : unit = Obj.magic _3 in let ri : ( -# 237 "flambda_parser.mly" +# 239 "flambda_parser.mly" (Fexpr.rec_info) -# 7723 "flambda_parser_in.ml" +# 7787 "flambda_parser_in.ml" ) = Obj.magic ri in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.CamlinternalMenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : ( -# 238 "flambda_parser.mly" +# 240 "flambda_parser.mly" (Fexpr.rec_info) -# 7732 "flambda_parser_in.ml" +# 7796 "flambda_parser_in.ml" ) = -# 907 "flambda_parser.mly" +# 915 "flambda_parser.mly" ( ri ) -# 7736 "flambda_parser_in.ml" +# 7800 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -7748,9 +7812,9 @@ module Tables = struct let _startpos = _menhir_stack.CamlinternalMenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : 'tv_recursive = -# 342 "flambda_parser.mly" +# 344 "flambda_parser.mly" ( Nonrecursive ) -# 7754 "flambda_parser_in.ml" +# 7818 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -7773,9 +7837,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_recursive = -# 343 "flambda_parser.mly" +# 345 "flambda_parser.mly" ( Recursive ) -# 7779 "flambda_parser_in.ml" +# 7843 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -7798,13 +7862,13 @@ module Tables = struct let _startpos = _startpos_v_ in let _endpos = _endpos_v_ in let _v : ( -# 239 "flambda_parser.mly" +# 241 "flambda_parser.mly" (Fexpr.region) -# 7804 "flambda_parser_in.ml" +# 7868 "flambda_parser_in.ml" ) = -# 752 "flambda_parser.mly" +# 760 "flambda_parser.mly" ( Named v ) -# 7808 "flambda_parser_in.ml" +# 7872 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -7827,13 +7891,13 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : ( -# 239 "flambda_parser.mly" +# 241 "flambda_parser.mly" (Fexpr.region) -# 7833 "flambda_parser_in.ml" +# 7897 "flambda_parser_in.ml" ) = -# 753 "flambda_parser.mly" +# 761 "flambda_parser.mly" ( Toplevel ) -# 7837 "flambda_parser_in.ml" +# 7901 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -7852,17 +7916,17 @@ module Tables = struct CamlinternalMenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let c : ( -# 220 "flambda_parser.mly" +# 222 "flambda_parser.mly" (Fexpr.continuation) -# 7858 "flambda_parser_in.ml" +# 7922 "flambda_parser_in.ml" ) = Obj.magic c in let _endpos__0_ = _menhir_stack.CamlinternalMenhirLib.EngineTypes.endp in let _startpos = _startpos_c_ in let _endpos = _endpos_c_ in let _v : 'tv_result_continuation = -# 757 "flambda_parser.mly" +# 765 "flambda_parser.mly" ( Return c ) -# 7866 "flambda_parser_in.ml" +# 7930 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -7885,9 +7949,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_result_continuation = -# 758 "flambda_parser.mly" +# 766 "flambda_parser.mly" ( Never_returns ) -# 7891 "flambda_parser_in.ml" +# 7955 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -7903,9 +7967,9 @@ module Tables = struct let _startpos = _menhir_stack.CamlinternalMenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : 'tv_return_arity = -# 594 "flambda_parser.mly" +# 602 "flambda_parser.mly" ( None ) -# 7909 "flambda_parser_in.ml" +# 7973 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -7930,18 +7994,18 @@ module Tables = struct }; } = _menhir_stack in let k : ( -# 232 "flambda_parser.mly" +# 234 "flambda_parser.mly" (Fexpr.kind_with_subkind list) -# 7936 "flambda_parser_in.ml" +# 8000 "flambda_parser_in.ml" ) = Obj.magic k in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.CamlinternalMenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_k_ in let _v : 'tv_return_arity = -# 595 "flambda_parser.mly" +# 603 "flambda_parser.mly" ( Some k ) -# 7945 "flambda_parser_in.ml" +# 8009 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -7960,9 +8024,9 @@ module Tables = struct CamlinternalMenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let x : ( -# 223 "flambda_parser.mly" +# 225 "flambda_parser.mly" (Fexpr.field_of_block) -# 7966 "flambda_parser_in.ml" +# 8030 "flambda_parser_in.ml" ) = Obj.magic x in let _endpos__0_ = _menhir_stack.CamlinternalMenhirLib.EngineTypes.endp in let _startpos = _startpos_x_ in @@ -7970,7 +8034,7 @@ module Tables = struct let _v : 'tv_separated_nonempty_list_COMMA_field_of_block_ = # 241 "" ( [ x ] ) -# 7974 "flambda_parser_in.ml" +# 8038 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -8003,9 +8067,9 @@ module Tables = struct let xs : 'tv_separated_nonempty_list_COMMA_field_of_block_ = Obj.magic xs in let _2 : unit = Obj.magic _2 in let x : ( -# 223 "flambda_parser.mly" +# 225 "flambda_parser.mly" (Fexpr.field_of_block) -# 8009 "flambda_parser_in.ml" +# 8073 "flambda_parser_in.ml" ) = Obj.magic x in let _endpos__0_ = _menhir_stack.CamlinternalMenhirLib.EngineTypes.endp in let _startpos = _startpos_x_ in @@ -8013,7 +8077,7 @@ module Tables = struct let _v : 'tv_separated_nonempty_list_COMMA_field_of_block_ = # 243 "" ( x :: xs ) -# 8017 "flambda_parser_in.ml" +# 8081 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -8032,9 +8096,9 @@ module Tables = struct CamlinternalMenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let x : ( -# 227 "flambda_parser.mly" +# 229 "flambda_parser.mly" (float Fexpr.or_variable) -# 8038 "flambda_parser_in.ml" +# 8102 "flambda_parser_in.ml" ) = Obj.magic x in let _endpos__0_ = _menhir_stack.CamlinternalMenhirLib.EngineTypes.endp in let _startpos = _startpos_x_ in @@ -8042,7 +8106,7 @@ module Tables = struct let _v : 'tv_separated_nonempty_list_COMMA_float_or_variable_ = # 241 "" ( [ x ] ) -# 8046 "flambda_parser_in.ml" +# 8110 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -8075,9 +8139,9 @@ module Tables = struct let xs : 'tv_separated_nonempty_list_COMMA_float_or_variable_ = Obj.magic xs in let _2 : unit = Obj.magic _2 in let x : ( -# 227 "flambda_parser.mly" +# 229 "flambda_parser.mly" (float Fexpr.or_variable) -# 8081 "flambda_parser_in.ml" +# 8145 "flambda_parser_in.ml" ) = Obj.magic x in let _endpos__0_ = _menhir_stack.CamlinternalMenhirLib.EngineTypes.endp in let _startpos = _startpos_x_ in @@ -8085,7 +8149,7 @@ module Tables = struct let _v : 'tv_separated_nonempty_list_COMMA_float_or_variable_ = # 243 "" ( x :: xs ) -# 8089 "flambda_parser_in.ml" +# 8153 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -8110,7 +8174,7 @@ module Tables = struct let _v : 'tv_separated_nonempty_list_COMMA_kinded_variable_ = # 241 "" ( [ x ] ) -# 8114 "flambda_parser_in.ml" +# 8178 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -8149,7 +8213,7 @@ module Tables = struct let _v : 'tv_separated_nonempty_list_COMMA_kinded_variable_ = # 243 "" ( x :: xs ) -# 8153 "flambda_parser_in.ml" +# 8217 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -8174,7 +8238,7 @@ module Tables = struct let _v : 'tv_separated_nonempty_list_COMMA_simple_ = # 241 "" ( [ x ] ) -# 8178 "flambda_parser_in.ml" +# 8242 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -8213,7 +8277,7 @@ module Tables = struct let _v : 'tv_separated_nonempty_list_COMMA_simple_ = # 243 "" ( x :: xs ) -# 8217 "flambda_parser_in.ml" +# 8281 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -8238,7 +8302,7 @@ module Tables = struct let _v : 'tv_separated_nonempty_list_KWD_AND_let_binding_ = # 241 "" ( [ x ] ) -# 8242 "flambda_parser_in.ml" +# 8306 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -8277,7 +8341,7 @@ module Tables = struct let _v : 'tv_separated_nonempty_list_KWD_AND_let_binding_ = # 243 "" ( x :: xs ) -# 8281 "flambda_parser_in.ml" +# 8345 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -8302,7 +8366,7 @@ module Tables = struct let _v : 'tv_separated_nonempty_list_KWD_AND_static_closure_binding_ = # 241 "" ( [ x ] ) -# 8306 "flambda_parser_in.ml" +# 8370 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -8341,7 +8405,7 @@ module Tables = struct let _v : 'tv_separated_nonempty_list_KWD_AND_static_closure_binding_ = # 243 "" ( x :: xs ) -# 8345 "flambda_parser_in.ml" +# 8409 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -8360,9 +8424,9 @@ module Tables = struct CamlinternalMenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let x : ( -# 247 "flambda_parser.mly" +# 249 "flambda_parser.mly" (Fexpr.symbol_binding) -# 8366 "flambda_parser_in.ml" +# 8430 "flambda_parser_in.ml" ) = Obj.magic x in let _endpos__0_ = _menhir_stack.CamlinternalMenhirLib.EngineTypes.endp in let _startpos = _startpos_x_ in @@ -8370,7 +8434,7 @@ module Tables = struct let _v : 'tv_separated_nonempty_list_KWD_AND_symbol_binding_ = # 241 "" ( [ x ] ) -# 8374 "flambda_parser_in.ml" +# 8438 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -8403,9 +8467,9 @@ module Tables = struct let xs : 'tv_separated_nonempty_list_KWD_AND_symbol_binding_ = Obj.magic xs in let _2 : unit = Obj.magic _2 in let x : ( -# 247 "flambda_parser.mly" +# 249 "flambda_parser.mly" (Fexpr.symbol_binding) -# 8409 "flambda_parser_in.ml" +# 8473 "flambda_parser_in.ml" ) = Obj.magic x in let _endpos__0_ = _menhir_stack.CamlinternalMenhirLib.EngineTypes.endp in let _startpos = _startpos_x_ in @@ -8413,7 +8477,7 @@ module Tables = struct let _v : 'tv_separated_nonempty_list_KWD_AND_symbol_binding_ = # 243 "" ( x :: xs ) -# 8417 "flambda_parser_in.ml" +# 8481 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -8438,7 +8502,7 @@ module Tables = struct let _v : 'tv_separated_nonempty_list_KWD_ANDWHERE_continuation_binding_ = # 241 "" ( [ x ] ) -# 8442 "flambda_parser_in.ml" +# 8506 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -8477,7 +8541,7 @@ module Tables = struct let _v : 'tv_separated_nonempty_list_KWD_ANDWHERE_continuation_binding_ = # 243 "" ( x :: xs ) -# 8481 "flambda_parser_in.ml" +# 8545 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -8502,7 +8566,7 @@ module Tables = struct let _v : 'tv_separated_nonempty_list_PIPE_nonconst_ctor_ = # 241 "" ( [ x ] ) -# 8506 "flambda_parser_in.ml" +# 8570 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -8541,7 +8605,7 @@ module Tables = struct let _v : 'tv_separated_nonempty_list_PIPE_nonconst_ctor_ = # 243 "" ( x :: xs ) -# 8545 "flambda_parser_in.ml" +# 8609 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -8566,7 +8630,7 @@ module Tables = struct let _v : 'tv_separated_nonempty_list_PIPE_switch_case_ = # 241 "" ( [ x ] ) -# 8570 "flambda_parser_in.ml" +# 8634 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -8605,7 +8669,7 @@ module Tables = struct let _v : 'tv_separated_nonempty_list_PIPE_switch_case_ = # 243 "" ( x :: xs ) -# 8609 "flambda_parser_in.ml" +# 8673 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -8624,9 +8688,9 @@ module Tables = struct CamlinternalMenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let x : ( -# 227 "flambda_parser.mly" +# 229 "flambda_parser.mly" (float Fexpr.or_variable) -# 8630 "flambda_parser_in.ml" +# 8694 "flambda_parser_in.ml" ) = Obj.magic x in let _endpos__0_ = _menhir_stack.CamlinternalMenhirLib.EngineTypes.endp in let _startpos = _startpos_x_ in @@ -8634,7 +8698,7 @@ module Tables = struct let _v : 'tv_separated_nonempty_list_SEMICOLON_float_or_variable_ = # 241 "" ( [ x ] ) -# 8638 "flambda_parser_in.ml" +# 8702 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -8667,9 +8731,9 @@ module Tables = struct let xs : 'tv_separated_nonempty_list_SEMICOLON_float_or_variable_ = Obj.magic xs in let _2 : unit = Obj.magic _2 in let x : ( -# 227 "flambda_parser.mly" +# 229 "flambda_parser.mly" (float Fexpr.or_variable) -# 8673 "flambda_parser_in.ml" +# 8737 "flambda_parser_in.ml" ) = Obj.magic x in let _endpos__0_ = _menhir_stack.CamlinternalMenhirLib.EngineTypes.endp in let _startpos = _startpos_x_ in @@ -8677,7 +8741,7 @@ module Tables = struct let _v : 'tv_separated_nonempty_list_SEMICOLON_float_or_variable_ = # 243 "" ( x :: xs ) -# 8681 "flambda_parser_in.ml" +# 8745 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -8702,7 +8766,7 @@ module Tables = struct let _v : 'tv_separated_nonempty_list_SEMICOLON_value_slot_ = # 241 "" ( [ x ] ) -# 8706 "flambda_parser_in.ml" +# 8770 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -8741,7 +8805,7 @@ module Tables = struct let _v : 'tv_separated_nonempty_list_SEMICOLON_value_slot_ = # 243 "" ( x :: xs ) -# 8745 "flambda_parser_in.ml" +# 8809 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -8760,9 +8824,9 @@ module Tables = struct CamlinternalMenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let x : ( -# 231 "flambda_parser.mly" +# 233 "flambda_parser.mly" (Fexpr.kind_with_subkind) -# 8766 "flambda_parser_in.ml" +# 8830 "flambda_parser_in.ml" ) = Obj.magic x in let _endpos__0_ = _menhir_stack.CamlinternalMenhirLib.EngineTypes.endp in let _startpos = _startpos_x_ in @@ -8770,7 +8834,7 @@ module Tables = struct let _v : 'tv_separated_nonempty_list_STAR_kind_with_subkind_ = # 241 "" ( [ x ] ) -# 8774 "flambda_parser_in.ml" +# 8838 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -8803,9 +8867,9 @@ module Tables = struct let xs : 'tv_separated_nonempty_list_STAR_kind_with_subkind_ = Obj.magic xs in let _2 : unit = Obj.magic _2 in let x : ( -# 231 "flambda_parser.mly" +# 233 "flambda_parser.mly" (Fexpr.kind_with_subkind) -# 8809 "flambda_parser_in.ml" +# 8873 "flambda_parser_in.ml" ) = Obj.magic x in let _endpos__0_ = _menhir_stack.CamlinternalMenhirLib.EngineTypes.endp in let _startpos = _startpos_x_ in @@ -8813,7 +8877,7 @@ module Tables = struct let _v : 'tv_separated_nonempty_list_STAR_kind_with_subkind_ = # 243 "" ( x :: xs ) -# 8817 "flambda_parser_in.ml" +# 8881 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -8832,9 +8896,9 @@ module Tables = struct CamlinternalMenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let x : ( -# 244 "flambda_parser.mly" +# 246 "flambda_parser.mly" (Fexpr.subkind) -# 8838 "flambda_parser_in.ml" +# 8902 "flambda_parser_in.ml" ) = Obj.magic x in let _endpos__0_ = _menhir_stack.CamlinternalMenhirLib.EngineTypes.endp in let _startpos = _startpos_x_ in @@ -8842,7 +8906,7 @@ module Tables = struct let _v : 'tv_separated_nonempty_list_STAR_subkind_ = # 241 "" ( [ x ] ) -# 8846 "flambda_parser_in.ml" +# 8910 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -8875,9 +8939,9 @@ module Tables = struct let xs : 'tv_separated_nonempty_list_STAR_subkind_ = Obj.magic xs in let _2 : unit = Obj.magic _2 in let x : ( -# 244 "flambda_parser.mly" +# 246 "flambda_parser.mly" (Fexpr.subkind) -# 8881 "flambda_parser_in.ml" +# 8945 "flambda_parser_in.ml" ) = Obj.magic x in let _endpos__0_ = _menhir_stack.CamlinternalMenhirLib.EngineTypes.endp in let _startpos = _startpos_x_ in @@ -8885,7 +8949,7 @@ module Tables = struct let _v : 'tv_separated_nonempty_list_STAR_subkind_ = # 243 "" ( x :: xs ) -# 8889 "flambda_parser_in.ml" +# 8953 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -8901,9 +8965,9 @@ module Tables = struct let _startpos = _menhir_stack.CamlinternalMenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : 'tv_signed_or_unsigned = -# 437 "flambda_parser.mly" +# 444 "flambda_parser.mly" ( Signed ) -# 8907 "flambda_parser_in.ml" +# 8971 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -8926,9 +8990,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_signed_or_unsigned = -# 438 "flambda_parser.mly" +# 445 "flambda_parser.mly" ( Unsigned ) -# 8932 "flambda_parser_in.ml" +# 8996 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -8951,9 +9015,9 @@ module Tables = struct let _startpos = _startpos_s_ in let _endpos = _endpos_s_ in let _v : 'tv_simple = -# 890 "flambda_parser.mly" +# 898 "flambda_parser.mly" ( Symbol s ) -# 8957 "flambda_parser_in.ml" +# 9021 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -8976,9 +9040,9 @@ module Tables = struct let _startpos = _startpos_v_ in let _endpos = _endpos_v_ in let _v : 'tv_simple = -# 891 "flambda_parser.mly" +# 899 "flambda_parser.mly" ( Var v ) -# 8982 "flambda_parser_in.ml" +# 9046 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -8997,17 +9061,17 @@ module Tables = struct CamlinternalMenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let c : ( -# 219 "flambda_parser.mly" +# 221 "flambda_parser.mly" (Fexpr.const) -# 9003 "flambda_parser_in.ml" +# 9067 "flambda_parser_in.ml" ) = Obj.magic c in let _endpos__0_ = _menhir_stack.CamlinternalMenhirLib.EngineTypes.endp in let _startpos = _startpos_c_ in let _endpos = _endpos_c_ in let _v : 'tv_simple = -# 892 "flambda_parser.mly" +# 900 "flambda_parser.mly" ( Const c ) -# 9011 "flambda_parser_in.ml" +# 9075 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -9044,9 +9108,9 @@ module Tables = struct let _startpos = _startpos_s_ in let _endpos = _endpos_c_ in let _v : 'tv_simple = -# 893 "flambda_parser.mly" +# 901 "flambda_parser.mly" ( Coerce (s, c) ) -# 9050 "flambda_parser_in.ml" +# 9114 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -9062,9 +9126,9 @@ module Tables = struct let _startpos = _menhir_stack.CamlinternalMenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : 'tv_simple_args = -# 861 "flambda_parser.mly" +# 869 "flambda_parser.mly" ( [] ) -# 9068 "flambda_parser_in.ml" +# 9132 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -9101,9 +9165,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_simple_args = -# 862 "flambda_parser.mly" +# 870 "flambda_parser.mly" ( s ) -# 9107 "flambda_parser_in.ml" +# 9171 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -9119,9 +9183,9 @@ module Tables = struct let _startpos = _menhir_stack.CamlinternalMenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : 'tv_size_opt = -# 413 "flambda_parser.mly" +# 420 "flambda_parser.mly" ( None ) -# 9125 "flambda_parser_in.ml" +# 9189 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -9165,9 +9229,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in let _v : 'tv_size_opt = -# 414 "flambda_parser.mly" +# 421 "flambda_parser.mly" ( Some size ) -# 9171 "flambda_parser_in.ml" +# 9235 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -9190,13 +9254,13 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : ( -# 240 "flambda_parser.mly" +# 242 "flambda_parser.mly" (Fexpr.special_continuation) -# 9196 "flambda_parser_in.ml" +# 9260 "flambda_parser_in.ml" ) = -# 950 "flambda_parser.mly" +# 958 "flambda_parser.mly" ( Done ) -# 9200 "flambda_parser_in.ml" +# 9264 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -9219,13 +9283,13 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : ( -# 240 "flambda_parser.mly" +# 242 "flambda_parser.mly" (Fexpr.special_continuation) -# 9225 "flambda_parser_in.ml" +# 9289 "flambda_parser_in.ml" ) = -# 951 "flambda_parser.mly" +# 959 "flambda_parser.mly" ( Error ) -# 9229 "flambda_parser_in.ml" +# 9293 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -9241,13 +9305,13 @@ module Tables = struct let _startpos = _menhir_stack.CamlinternalMenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : ( -# 241 "flambda_parser.mly" +# 243 "flambda_parser.mly" (Fexpr.standard_int) -# 9247 "flambda_parser_in.ml" +# 9311 "flambda_parser_in.ml" ) = -# 417 "flambda_parser.mly" +# 424 "flambda_parser.mly" ( Tagged_immediate ) -# 9251 "flambda_parser_in.ml" +# 9315 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -9270,13 +9334,13 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : ( -# 241 "flambda_parser.mly" +# 243 "flambda_parser.mly" (Fexpr.standard_int) -# 9276 "flambda_parser_in.ml" +# 9340 "flambda_parser_in.ml" ) = -# 418 "flambda_parser.mly" +# 425 "flambda_parser.mly" ( Naked_immediate ) -# 9280 "flambda_parser_in.ml" +# 9344 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -9299,13 +9363,13 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : ( -# 241 "flambda_parser.mly" +# 243 "flambda_parser.mly" (Fexpr.standard_int) -# 9305 "flambda_parser_in.ml" +# 9369 "flambda_parser_in.ml" ) = -# 419 "flambda_parser.mly" +# 426 "flambda_parser.mly" ( Naked_int32 ) -# 9309 "flambda_parser_in.ml" +# 9373 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -9328,13 +9392,13 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : ( -# 241 "flambda_parser.mly" +# 243 "flambda_parser.mly" (Fexpr.standard_int) -# 9334 "flambda_parser_in.ml" +# 9398 "flambda_parser_in.ml" ) = -# 420 "flambda_parser.mly" +# 427 "flambda_parser.mly" ( Naked_int64 ) -# 9338 "flambda_parser_in.ml" +# 9402 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -9357,13 +9421,13 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : ( -# 241 "flambda_parser.mly" +# 243 "flambda_parser.mly" (Fexpr.standard_int) -# 9363 "flambda_parser_in.ml" +# 9427 "flambda_parser_in.ml" ) = -# 421 "flambda_parser.mly" +# 428 "flambda_parser.mly" ( Naked_nativeint ) -# 9367 "flambda_parser_in.ml" +# 9431 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -9400,9 +9464,9 @@ module Tables = struct let _startpos = _startpos_symbol_ in let _endpos = _endpos_fun_decl_ in let _v : 'tv_static_closure_binding = -# 331 "flambda_parser.mly" +# 333 "flambda_parser.mly" ( { symbol; fun_decl } ) -# 9406 "flambda_parser_in.ml" +# 9470 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -9455,27 +9519,27 @@ module Tables = struct let _4 : unit = Obj.magic _4 in let tag : 'tv_tag = Obj.magic tag in let m : ( -# 233 "flambda_parser.mly" +# 235 "flambda_parser.mly" (Fexpr.mutability) -# 9461 "flambda_parser_in.ml" +# 9525 "flambda_parser_in.ml" ) = Obj.magic m in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.CamlinternalMenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__6_ in let _v : ( -# 242 "flambda_parser.mly" +# 244 "flambda_parser.mly" (Fexpr.static_data) -# 9470 "flambda_parser_in.ml" +# 9534 "flambda_parser_in.ml" ) = let elements = # 232 "" ( xs ) -# 9474 "flambda_parser_in.ml" +# 9538 "flambda_parser_in.ml" in -# 804 "flambda_parser.mly" +# 812 "flambda_parser.mly" ( (Block { tag; mutability = m; elements } : static_data) ) -# 9479 "flambda_parser_in.ml" +# 9543 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -9496,19 +9560,19 @@ module Tables = struct let f : ( # 68 "flambda_parser.mly" (float) -# 9500 "flambda_parser_in.ml" +# 9564 "flambda_parser_in.ml" ) = Obj.magic f in let _endpos__0_ = _menhir_stack.CamlinternalMenhirLib.EngineTypes.endp in let _startpos = _startpos_f_ in let _endpos = _endpos_f_ in let _v : ( -# 242 "flambda_parser.mly" +# 244 "flambda_parser.mly" (Fexpr.static_data) -# 9508 "flambda_parser_in.ml" +# 9572 "flambda_parser_in.ml" ) = -# 805 "flambda_parser.mly" +# 813 "flambda_parser.mly" ( Boxed_float (Const f) ) -# 9512 "flambda_parser_in.ml" +# 9576 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -9529,19 +9593,19 @@ module Tables = struct let i : ( # 74 "flambda_parser.mly" (string * char option) -# 9533 "flambda_parser_in.ml" +# 9597 "flambda_parser_in.ml" ) = Obj.magic i in let _endpos__0_ = _menhir_stack.CamlinternalMenhirLib.EngineTypes.endp in let _startpos = _startpos_i_ in let _endpos = _endpos_i_ in let _v : ( -# 242 "flambda_parser.mly" +# 244 "flambda_parser.mly" (Fexpr.static_data) -# 9541 "flambda_parser_in.ml" +# 9605 "flambda_parser_in.ml" ) = -# 806 "flambda_parser.mly" +# 814 "flambda_parser.mly" ( make_boxed_const_int i ) -# 9545 "flambda_parser_in.ml" +# 9609 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -9572,9 +9636,9 @@ module Tables = struct }; } = _menhir_stack in let k : ( -# 246 "flambda_parser.mly" +# 248 "flambda_parser.mly" (Fexpr.variable -> Fexpr.static_data) -# 9578 "flambda_parser_in.ml" +# 9642 "flambda_parser_in.ml" ) = Obj.magic k in let _2 : unit = Obj.magic _2 in let v : 'tv_variable = Obj.magic v in @@ -9582,13 +9646,13 @@ module Tables = struct let _startpos = _startpos_v_ in let _endpos = _endpos_k_ in let _v : ( -# 242 "flambda_parser.mly" +# 244 "flambda_parser.mly" (Fexpr.static_data) -# 9588 "flambda_parser_in.ml" +# 9652 "flambda_parser_in.ml" ) = -# 807 "flambda_parser.mly" +# 815 "flambda_parser.mly" ( k v ) -# 9592 "flambda_parser_in.ml" +# 9656 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -9632,18 +9696,18 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in let _v : ( -# 242 "flambda_parser.mly" +# 244 "flambda_parser.mly" (Fexpr.static_data) -# 9638 "flambda_parser_in.ml" +# 9702 "flambda_parser_in.ml" ) = let fs = # 232 "" ( xs ) -# 9642 "flambda_parser_in.ml" +# 9706 "flambda_parser_in.ml" in -# 811 "flambda_parser.mly" +# 819 "flambda_parser.mly" ( Immutable_float_block fs ) -# 9647 "flambda_parser_in.ml" +# 9711 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -9687,18 +9751,18 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in let _v : ( -# 242 "flambda_parser.mly" +# 244 "flambda_parser.mly" (Fexpr.static_data) -# 9693 "flambda_parser_in.ml" +# 9757 "flambda_parser_in.ml" ) = let fs = # 232 "" ( xs ) -# 9697 "flambda_parser_in.ml" +# 9761 "flambda_parser_in.ml" in -# 815 "flambda_parser.mly" +# 823 "flambda_parser.mly" ( Immutable_float_array fs ) -# 9702 "flambda_parser_in.ml" +# 9766 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -9725,20 +9789,20 @@ module Tables = struct let s : ( # 103 "flambda_parser.mly" (string) -# 9729 "flambda_parser_in.ml" +# 9793 "flambda_parser_in.ml" ) = Obj.magic s in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.CamlinternalMenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_s_ in let _v : ( -# 242 "flambda_parser.mly" +# 244 "flambda_parser.mly" (Fexpr.static_data) -# 9738 "flambda_parser_in.ml" +# 9802 "flambda_parser_in.ml" ) = -# 816 "flambda_parser.mly" +# 824 "flambda_parser.mly" ( Mutable_string { initial_value = s } ) -# 9742 "flambda_parser_in.ml" +# 9806 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -9759,19 +9823,19 @@ module Tables = struct let s : ( # 103 "flambda_parser.mly" (string) -# 9763 "flambda_parser_in.ml" +# 9827 "flambda_parser_in.ml" ) = Obj.magic s in let _endpos__0_ = _menhir_stack.CamlinternalMenhirLib.EngineTypes.endp in let _startpos = _startpos_s_ in let _endpos = _endpos_s_ in let _v : ( -# 242 "flambda_parser.mly" +# 244 "flambda_parser.mly" (Fexpr.static_data) -# 9771 "flambda_parser_in.ml" +# 9835 "flambda_parser_in.ml" ) = -# 817 "flambda_parser.mly" +# 825 "flambda_parser.mly" ( Immutable_string s ) -# 9775 "flambda_parser_in.ml" +# 9839 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -9802,9 +9866,9 @@ module Tables = struct }; } = _menhir_stack in let sp : ( -# 242 "flambda_parser.mly" +# 244 "flambda_parser.mly" (Fexpr.static_data) -# 9808 "flambda_parser_in.ml" +# 9872 "flambda_parser_in.ml" ) = Obj.magic sp in let _2 : unit = Obj.magic _2 in let s : 'tv_symbol = Obj.magic s in @@ -9812,13 +9876,13 @@ module Tables = struct let _startpos = _startpos_s_ in let _endpos = _endpos_sp_ in let _v : ( -# 243 "flambda_parser.mly" +# 245 "flambda_parser.mly" (Fexpr.static_data_binding) -# 9818 "flambda_parser_in.ml" +# 9882 "flambda_parser_in.ml" ) = -# 798 "flambda_parser.mly" +# 806 "flambda_parser.mly" ( { symbol = s; defining_expr = sp } ) -# 9822 "flambda_parser_in.ml" +# 9886 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -9848,13 +9912,13 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : ( -# 246 "flambda_parser.mly" +# 248 "flambda_parser.mly" (Fexpr.variable -> Fexpr.static_data) -# 9854 "flambda_parser_in.ml" +# 9918 "flambda_parser_in.ml" ) = -# 821 "flambda_parser.mly" +# 829 "flambda_parser.mly" ( fun v -> Boxed_float (Var v) ) -# 9858 "flambda_parser_in.ml" +# 9922 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -9884,13 +9948,13 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : ( -# 246 "flambda_parser.mly" +# 248 "flambda_parser.mly" (Fexpr.variable -> Fexpr.static_data) -# 9890 "flambda_parser_in.ml" +# 9954 "flambda_parser_in.ml" ) = -# 822 "flambda_parser.mly" +# 830 "flambda_parser.mly" ( fun v -> Boxed_int32 (Var v) ) -# 9894 "flambda_parser_in.ml" +# 9958 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -9920,13 +9984,13 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : ( -# 246 "flambda_parser.mly" +# 248 "flambda_parser.mly" (Fexpr.variable -> Fexpr.static_data) -# 9926 "flambda_parser_in.ml" +# 9990 "flambda_parser_in.ml" ) = -# 823 "flambda_parser.mly" +# 831 "flambda_parser.mly" ( fun v -> Boxed_int64 (Var v) ) -# 9930 "flambda_parser_in.ml" +# 9994 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -9956,13 +10020,13 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : ( -# 246 "flambda_parser.mly" +# 248 "flambda_parser.mly" (Fexpr.variable -> Fexpr.static_data) -# 9962 "flambda_parser_in.ml" +# 10026 "flambda_parser_in.ml" ) = -# 824 "flambda_parser.mly" +# 832 "flambda_parser.mly" ( fun v -> Boxed_nativeint (Var v) ) -# 9966 "flambda_parser_in.ml" +# 10030 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -10006,9 +10070,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in let _v : 'tv_static_set_of_closures = -# 339 "flambda_parser.mly" +# 341 "flambda_parser.mly" ( { bindings; elements } ) -# 10012 "flambda_parser_in.ml" +# 10076 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -10031,13 +10095,13 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : ( -# 244 "flambda_parser.mly" +# 246 "flambda_parser.mly" (Fexpr.subkind) -# 10037 "flambda_parser_in.ml" +# 10101 "flambda_parser_in.ml" ) = -# 561 "flambda_parser.mly" +# 569 "flambda_parser.mly" ( Anything ) -# 10041 "flambda_parser_in.ml" +# 10105 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -10067,13 +10131,13 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : ( -# 244 "flambda_parser.mly" +# 246 "flambda_parser.mly" (Fexpr.subkind) -# 10073 "flambda_parser_in.ml" +# 10137 "flambda_parser_in.ml" ) = -# 562 "flambda_parser.mly" +# 570 "flambda_parser.mly" ( Boxed_float ) -# 10077 "flambda_parser_in.ml" +# 10141 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -10103,13 +10167,13 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : ( -# 244 "flambda_parser.mly" +# 246 "flambda_parser.mly" (Fexpr.subkind) -# 10109 "flambda_parser_in.ml" +# 10173 "flambda_parser_in.ml" ) = -# 563 "flambda_parser.mly" +# 571 "flambda_parser.mly" ( Boxed_int32 ) -# 10113 "flambda_parser_in.ml" +# 10177 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -10139,13 +10203,13 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : ( -# 244 "flambda_parser.mly" +# 246 "flambda_parser.mly" (Fexpr.subkind) -# 10145 "flambda_parser_in.ml" +# 10209 "flambda_parser_in.ml" ) = -# 564 "flambda_parser.mly" +# 572 "flambda_parser.mly" ( Boxed_int64 ) -# 10149 "flambda_parser_in.ml" +# 10213 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -10175,13 +10239,13 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : ( -# 244 "flambda_parser.mly" +# 246 "flambda_parser.mly" (Fexpr.subkind) -# 10181 "flambda_parser_in.ml" +# 10245 "flambda_parser_in.ml" ) = -# 565 "flambda_parser.mly" +# 573 "flambda_parser.mly" ( Boxed_nativeint ) -# 10185 "flambda_parser_in.ml" +# 10249 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -10211,13 +10275,13 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : ( -# 244 "flambda_parser.mly" +# 246 "flambda_parser.mly" (Fexpr.subkind) -# 10217 "flambda_parser_in.ml" +# 10281 "flambda_parser_in.ml" ) = -# 566 "flambda_parser.mly" +# 574 "flambda_parser.mly" ( Tagged_immediate ) -# 10221 "flambda_parser_in.ml" +# 10285 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -10254,13 +10318,13 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos_num_fields_ in let _v : ( -# 244 "flambda_parser.mly" +# 246 "flambda_parser.mly" (Fexpr.subkind) -# 10260 "flambda_parser_in.ml" +# 10324 "flambda_parser_in.ml" ) = -# 567 "flambda_parser.mly" +# 575 "flambda_parser.mly" ( Float_block { num_fields } ) -# 10264 "flambda_parser_in.ml" +# 10328 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -10297,13 +10361,13 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : ( -# 244 "flambda_parser.mly" +# 246 "flambda_parser.mly" (Fexpr.subkind) -# 10303 "flambda_parser_in.ml" +# 10367 "flambda_parser_in.ml" ) = -# 569 "flambda_parser.mly" +# 577 "flambda_parser.mly" ( let consts, non_consts = ctors in Variant { consts; non_consts; }) -# 10307 "flambda_parser_in.ml" +# 10371 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -10333,13 +10397,13 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : ( -# 244 "flambda_parser.mly" +# 246 "flambda_parser.mly" (Fexpr.subkind) -# 10339 "flambda_parser_in.ml" +# 10403 "flambda_parser_in.ml" ) = -# 570 "flambda_parser.mly" +# 578 "flambda_parser.mly" ( Float_array ) -# 10343 "flambda_parser_in.ml" +# 10407 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -10369,13 +10433,13 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : ( -# 244 "flambda_parser.mly" +# 246 "flambda_parser.mly" (Fexpr.subkind) -# 10375 "flambda_parser_in.ml" +# 10439 "flambda_parser_in.ml" ) = -# 571 "flambda_parser.mly" +# 579 "flambda_parser.mly" ( Immediate_array ) -# 10379 "flambda_parser_in.ml" +# 10443 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -10405,13 +10469,13 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : ( -# 244 "flambda_parser.mly" +# 246 "flambda_parser.mly" (Fexpr.subkind) -# 10411 "flambda_parser_in.ml" +# 10475 "flambda_parser_in.ml" ) = -# 572 "flambda_parser.mly" +# 580 "flambda_parser.mly" ( Value_array ) -# 10415 "flambda_parser_in.ml" +# 10479 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -10441,13 +10505,13 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : ( -# 244 "flambda_parser.mly" +# 246 "flambda_parser.mly" (Fexpr.subkind) -# 10447 "flambda_parser_in.ml" +# 10511 "flambda_parser_in.ml" ) = -# 573 "flambda_parser.mly" +# 581 "flambda_parser.mly" ( Generic_array ) -# 10451 "flambda_parser_in.ml" +# 10515 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -10470,13 +10534,13 @@ module Tables = struct let _startpos = _startpos_sks_ in let _endpos = _endpos_sks_ in let _v : ( -# 245 "flambda_parser.mly" +# 247 "flambda_parser.mly" (Fexpr.subkind list) -# 10476 "flambda_parser_in.ml" +# 10540 "flambda_parser_in.ml" ) = -# 576 "flambda_parser.mly" +# 584 "flambda_parser.mly" ( sks ) -# 10480 "flambda_parser_in.ml" +# 10544 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -10508,12 +10572,12 @@ module Tables = struct let _v : 'tv_switch = let cs = # 232 "" ( xs ) -# 10512 "flambda_parser_in.ml" +# 10576 "flambda_parser_in.ml" in -# 533 "flambda_parser.mly" +# 541 "flambda_parser.mly" ( cs ) -# 10517 "flambda_parser_in.ml" +# 10581 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -10550,9 +10614,9 @@ module Tables = struct let _startpos = _startpos_i_ in let _endpos = _endpos_ac_ in let _v : 'tv_switch_case = -# 529 "flambda_parser.mly" +# 537 "flambda_parser.mly" ( i,ac ) -# 10556 "flambda_parser_in.ml" +# 10620 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -10573,7 +10637,7 @@ module Tables = struct let e : ( # 104 "flambda_parser.mly" (Fexpr.compilation_unit option * string) -# 10577 "flambda_parser_in.ml" +# 10641 "flambda_parser_in.ml" ) = Obj.magic e in let _endpos__0_ = _menhir_stack.CamlinternalMenhirLib.EngineTypes.endp in let _startpos = _startpos_e_ in @@ -10581,9 +10645,9 @@ module Tables = struct let _v : 'tv_symbol = let _endpos = _endpos_e_ in let _startpos = _startpos_e_ in -# 933 "flambda_parser.mly" +# 941 "flambda_parser.mly" ( make_located e (_startpos, _endpos) ) -# 10587 "flambda_parser_in.ml" +# 10651 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -10602,21 +10666,21 @@ module Tables = struct CamlinternalMenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let s : ( -# 243 "flambda_parser.mly" +# 245 "flambda_parser.mly" (Fexpr.static_data_binding) -# 10608 "flambda_parser_in.ml" +# 10672 "flambda_parser_in.ml" ) = Obj.magic s in let _endpos__0_ = _menhir_stack.CamlinternalMenhirLib.EngineTypes.endp in let _startpos = _startpos_s_ in let _endpos = _endpos_s_ in let _v : ( -# 247 "flambda_parser.mly" +# 249 "flambda_parser.mly" (Fexpr.symbol_binding) -# 10616 "flambda_parser_in.ml" +# 10680 "flambda_parser_in.ml" ) = -# 287 "flambda_parser.mly" +# 289 "flambda_parser.mly" ( Data s ) -# 10620 "flambda_parser_in.ml" +# 10684 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -10639,13 +10703,13 @@ module Tables = struct let _startpos = _startpos_code_ in let _endpos = _endpos_code_ in let _v : ( -# 247 "flambda_parser.mly" +# 249 "flambda_parser.mly" (Fexpr.symbol_binding) -# 10645 "flambda_parser_in.ml" +# 10709 "flambda_parser_in.ml" ) = -# 288 "flambda_parser.mly" +# 290 "flambda_parser.mly" ( Code code ) -# 10649 "flambda_parser_in.ml" +# 10713 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -10668,13 +10732,13 @@ module Tables = struct let _startpos = _startpos_code_id_ in let _endpos = _endpos_code_id_ in let _v : ( -# 247 "flambda_parser.mly" +# 249 "flambda_parser.mly" (Fexpr.symbol_binding) -# 10674 "flambda_parser_in.ml" +# 10738 "flambda_parser_in.ml" ) = -# 289 "flambda_parser.mly" +# 291 "flambda_parser.mly" ( Deleted_code code_id ) -# 10678 "flambda_parser_in.ml" +# 10742 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -10697,13 +10761,13 @@ module Tables = struct let _startpos = _startpos_s_ in let _endpos = _endpos_s_ in let _v : ( -# 247 "flambda_parser.mly" +# 249 "flambda_parser.mly" (Fexpr.symbol_binding) -# 10703 "flambda_parser_in.ml" +# 10767 "flambda_parser_in.ml" ) = -# 290 "flambda_parser.mly" +# 292 "flambda_parser.mly" ( Closure s ) -# 10707 "flambda_parser_in.ml" +# 10771 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -10726,13 +10790,13 @@ module Tables = struct let _startpos = _startpos_s_ in let _endpos = _endpos_s_ in let _v : ( -# 247 "flambda_parser.mly" +# 249 "flambda_parser.mly" (Fexpr.symbol_binding) -# 10732 "flambda_parser_in.ml" +# 10796 "flambda_parser_in.ml" ) = -# 291 "flambda_parser.mly" +# 293 "flambda_parser.mly" ( Set_of_closures s ) -# 10736 "flambda_parser_in.ml" +# 10800 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -10753,7 +10817,7 @@ module Tables = struct let tag : ( # 74 "flambda_parser.mly" (string * char option) -# 10757 "flambda_parser_in.ml" +# 10821 "flambda_parser_in.ml" ) = Obj.magic tag in let _endpos__0_ = _menhir_stack.CamlinternalMenhirLib.EngineTypes.endp in let _startpos = _startpos_tag_ in @@ -10761,9 +10825,9 @@ module Tables = struct let _v : 'tv_tag = let _endpos = _endpos_tag_ in let _startpos = _startpos_tag_ in -# 834 "flambda_parser.mly" +# 842 "flambda_parser.mly" ( make_tag ~loc:(make_loc (_startpos, _endpos)) tag ) -# 10767 "flambda_parser_in.ml" +# 10831 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -10807,9 +10871,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in let _v : 'tv_tag_opt = -# 838 "flambda_parser.mly" +# 846 "flambda_parser.mly" ( Some tag ) -# 10813 "flambda_parser_in.ml" +# 10877 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -10825,9 +10889,9 @@ module Tables = struct let _startpos = _menhir_stack.CamlinternalMenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : 'tv_tag_opt = -# 839 "flambda_parser.mly" +# 847 "flambda_parser.mly" ( None ) -# 10831 "flambda_parser_in.ml" +# 10895 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -10848,15 +10912,15 @@ module Tables = struct let i : ( # 74 "flambda_parser.mly" (string * char option) -# 10852 "flambda_parser_in.ml" +# 10916 "flambda_parser_in.ml" ) = Obj.magic i in let _endpos__0_ = _menhir_stack.CamlinternalMenhirLib.EngineTypes.endp in let _startpos = _startpos_i_ in let _endpos = _endpos_i_ in let _v : 'tv_targetint = -# 831 "flambda_parser.mly" +# 839 "flambda_parser.mly" ( make_targetint i ) -# 10860 "flambda_parser_in.ml" +# 10924 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -10930,18 +10994,18 @@ module Tables = struct let _4 : unit = Obj.magic _4 in let arr : 'tv_simple = Obj.magic arr in let ak : ( -# 215 "flambda_parser.mly" +# 217 "flambda_parser.mly" (Fexpr.array_kind) -# 10936 "flambda_parser_in.ml" +# 11000 "flambda_parser_in.ml" ) = Obj.magic ak in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.CamlinternalMenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_v_ in let _v : 'tv_ternop_app = -# 503 "flambda_parser.mly" +# 510 "flambda_parser.mly" ( Ternary (Array_set (ak, ia), arr, ix, v) ) -# 10945 "flambda_parser_in.ml" +# 11009 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -10979,9 +11043,9 @@ module Tables = struct } = _menhir_stack in let _4 : unit = Obj.magic _4 in let exn_handler : ( -# 220 "flambda_parser.mly" +# 222 "flambda_parser.mly" (Fexpr.continuation) -# 10985 "flambda_parser_in.ml" +# 11049 "flambda_parser_in.ml" ) = Obj.magic exn_handler in let _2 : unit = Obj.magic _2 in let _1 : unit = Obj.magic _1 in @@ -10989,9 +11053,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in let _v : 'tv_trap_action = -# 767 "flambda_parser.mly" +# 775 "flambda_parser.mly" ( Push { exn_handler } ) -# 10995 "flambda_parser_in.ml" +# 11059 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -11035,9 +11099,9 @@ module Tables = struct } = _menhir_stack in let _5 : unit = Obj.magic _5 in let exn_handler : ( -# 220 "flambda_parser.mly" +# 222 "flambda_parser.mly" (Fexpr.continuation) -# 11041 "flambda_parser_in.ml" +# 11105 "flambda_parser_in.ml" ) = Obj.magic exn_handler in let raise_kind : 'tv_option_raise_kind_ = Obj.magic raise_kind in let _2 : unit = Obj.magic _2 in @@ -11046,9 +11110,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in let _v : 'tv_trap_action = -# 771 "flambda_parser.mly" +# 779 "flambda_parser.mly" ( Pop { exn_handler; raise_kind } ) -# 11052 "flambda_parser_in.ml" +# 11116 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -11071,9 +11135,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_unop = -# 347 "flambda_parser.mly" +# 353 "flambda_parser.mly" ( Array_length ) -# 11077 "flambda_parser_in.ml" +# 11141 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -11096,9 +11160,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_unop = -# 348 "flambda_parser.mly" +# 354 "flambda_parser.mly" ( Box_number Naked_float ) -# 11102 "flambda_parser_in.ml" +# 11166 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -11121,9 +11185,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_unop = -# 349 "flambda_parser.mly" +# 355 "flambda_parser.mly" ( Box_number Naked_int32 ) -# 11127 "flambda_parser_in.ml" +# 11191 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -11146,9 +11210,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_unop = -# 350 "flambda_parser.mly" +# 356 "flambda_parser.mly" ( Box_number Naked_int64 ) -# 11152 "flambda_parser_in.ml" +# 11216 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -11171,9 +11235,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_unop = -# 351 "flambda_parser.mly" +# 357 "flambda_parser.mly" ( Box_number Naked_nativeint ) -# 11177 "flambda_parser_in.ml" +# 11241 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -11196,9 +11260,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_unop = -# 352 "flambda_parser.mly" +# 358 "flambda_parser.mly" ( String_length Bytes ) -# 11202 "flambda_parser_in.ml" +# 11266 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -11221,9 +11285,34 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_unop = -# 353 "flambda_parser.mly" +# 359 "flambda_parser.mly" + ( End_region ) +# 11291 "flambda_parser_in.ml" + in + { + CamlinternalMenhirLib.EngineTypes.state = _menhir_s; + CamlinternalMenhirLib.EngineTypes.semv = Obj.repr _v; + CamlinternalMenhirLib.EngineTypes.startp = _startpos; + CamlinternalMenhirLib.EngineTypes.endp = _endpos; + CamlinternalMenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.CamlinternalMenhirLib.EngineTypes.stack in + let { + CamlinternalMenhirLib.EngineTypes.state = _menhir_s; + CamlinternalMenhirLib.EngineTypes.semv = _1; + CamlinternalMenhirLib.EngineTypes.startp = _startpos__1_; + CamlinternalMenhirLib.EngineTypes.endp = _endpos__1_; + CamlinternalMenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let _1 : unit = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.CamlinternalMenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : 'tv_unop = +# 360 "flambda_parser.mly" ( Get_tag ) -# 11227 "flambda_parser_in.ml" +# 11316 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -11246,9 +11335,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_unop = -# 354 "flambda_parser.mly" +# 361 "flambda_parser.mly" ( Is_flat_float_array ) -# 11252 "flambda_parser_in.ml" +# 11341 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -11271,9 +11360,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_unop = -# 355 "flambda_parser.mly" +# 362 "flambda_parser.mly" ( Is_int ) -# 11277 "flambda_parser_in.ml" +# 11366 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -11323,15 +11412,15 @@ module Tables = struct } = _menhir_stack in let _6 : unit = Obj.magic _6 in let dst : ( -# 221 "flambda_parser.mly" +# 223 "flambda_parser.mly" (Fexpr.standard_int_or_float) -# 11329 "flambda_parser_in.ml" +# 11418 "flambda_parser_in.ml" ) = Obj.magic dst in let _4 : unit = Obj.magic _4 in let src : ( -# 221 "flambda_parser.mly" +# 223 "flambda_parser.mly" (Fexpr.standard_int_or_float) -# 11335 "flambda_parser_in.ml" +# 11424 "flambda_parser_in.ml" ) = Obj.magic src in let _2 : unit = Obj.magic _2 in let _1 : unit = Obj.magic _1 in @@ -11339,9 +11428,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__6_ in let _v : 'tv_unop = -# 359 "flambda_parser.mly" +# 366 "flambda_parser.mly" ( Num_conv { src; dst } ) -# 11345 "flambda_parser_in.ml" +# 11434 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -11364,9 +11453,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_unop = -# 360 "flambda_parser.mly" +# 367 "flambda_parser.mly" ( Opaque_identity ) -# 11370 "flambda_parser_in.ml" +# 11459 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -11410,9 +11499,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos_value_slot_ in let _v : 'tv_unop = -# 362 "flambda_parser.mly" +# 369 "flambda_parser.mly" ( Project_value_slot { project_from; value_slot } ) -# 11416 "flambda_parser_in.ml" +# 11505 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -11470,9 +11559,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__6_ in let _v : 'tv_unop = -# 366 "flambda_parser.mly" +# 373 "flambda_parser.mly" ( Project_function_slot { move_from; move_to } ) -# 11476 "flambda_parser_in.ml" +# 11565 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -11495,9 +11584,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_unop = -# 367 "flambda_parser.mly" +# 374 "flambda_parser.mly" ( String_length String ) -# 11501 "flambda_parser_in.ml" +# 11590 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -11520,9 +11609,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_unop = -# 368 "flambda_parser.mly" +# 375 "flambda_parser.mly" ( Tag_immediate ) -# 11526 "flambda_parser_in.ml" +# 11615 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -11545,9 +11634,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_unop = -# 369 "flambda_parser.mly" +# 376 "flambda_parser.mly" ( Unbox_number Naked_float ) -# 11551 "flambda_parser_in.ml" +# 11640 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -11570,9 +11659,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_unop = -# 370 "flambda_parser.mly" +# 377 "flambda_parser.mly" ( Unbox_number Naked_int32 ) -# 11576 "flambda_parser_in.ml" +# 11665 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -11595,9 +11684,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_unop = -# 371 "flambda_parser.mly" +# 378 "flambda_parser.mly" ( Unbox_number Naked_int64 ) -# 11601 "flambda_parser_in.ml" +# 11690 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -11620,9 +11709,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_unop = -# 372 "flambda_parser.mly" +# 379 "flambda_parser.mly" ( Unbox_number Naked_nativeint ) -# 11626 "flambda_parser_in.ml" +# 11715 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -11645,9 +11734,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_unop = -# 373 "flambda_parser.mly" +# 380 "flambda_parser.mly" ( Untag_immediate ) -# 11651 "flambda_parser_in.ml" +# 11740 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -11684,9 +11773,9 @@ module Tables = struct let _startpos = _startpos_var_ in let _endpos = _endpos_value_ in let _v : 'tv_value_slot = -# 687 "flambda_parser.mly" +# 695 "flambda_parser.mly" ( { var; value; } ) -# 11690 "flambda_parser_in.ml" +# 11779 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -11707,7 +11796,7 @@ module Tables = struct let e : ( # 73 "flambda_parser.mly" (string) -# 11711 "flambda_parser_in.ml" +# 11800 "flambda_parser_in.ml" ) = Obj.magic e in let _endpos__0_ = _menhir_stack.CamlinternalMenhirLib.EngineTypes.endp in let _startpos = _startpos_e_ in @@ -11715,9 +11804,9 @@ module Tables = struct let _v : 'tv_value_slot_for_projection = let _endpos = _endpos_e_ in let _startpos = _startpos_e_ in -# 955 "flambda_parser.mly" +# 963 "flambda_parser.mly" ( make_located e (_startpos, _endpos) ) -# 11721 "flambda_parser_in.ml" +# 11810 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -11738,7 +11827,7 @@ module Tables = struct let e : ( # 73 "flambda_parser.mly" (string) -# 11742 "flambda_parser_in.ml" +# 11831 "flambda_parser_in.ml" ) = Obj.magic e in let _endpos__0_ = _menhir_stack.CamlinternalMenhirLib.EngineTypes.endp in let _startpos = _startpos_e_ in @@ -11746,9 +11835,9 @@ module Tables = struct let _v : 'tv_variable = let _endpos = _endpos_e_ in let _startpos = _startpos_e_ in -# 937 "flambda_parser.mly" +# 945 "flambda_parser.mly" ( make_located e (_startpos, _endpos) ) -# 11752 "flambda_parser_in.ml" +# 11841 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -11794,12 +11883,12 @@ module Tables = struct let _v : 'tv_where_expr = let bindings = # 232 "" ( xs ) -# 11798 "flambda_parser_in.ml" +# 11887 "flambda_parser_in.ml" in -# 629 "flambda_parser.mly" +# 637 "flambda_parser.mly" ( Let_cont { recursive; body; bindings } ) -# 11803 "flambda_parser_in.ml" +# 11892 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -11815,9 +11904,9 @@ module Tables = struct let _startpos = _menhir_stack.CamlinternalMenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : 'tv_with_value_slots_opt = -# 679 "flambda_parser.mly" +# 687 "flambda_parser.mly" ( None ) -# 11821 "flambda_parser_in.ml" +# 11910 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -11863,12 +11952,12 @@ module Tables = struct let _v : 'tv_with_value_slots_opt = let elements = # 232 "" ( xs ) -# 11867 "flambda_parser_in.ml" +# 11956 "flambda_parser_in.ml" in -# 683 "flambda_parser.mly" +# 691 "flambda_parser.mly" ( Some elements ) -# 11872 "flambda_parser_in.ml" +# 11961 "flambda_parser_in.ml" in { CamlinternalMenhirLib.EngineTypes.state = _menhir_s; @@ -11896,46 +11985,46 @@ end let flambda_unit = fun lexer lexbuf -> - (Obj.magic (MenhirInterpreter.entry `Legacy 554 lexer lexbuf) : ( -# 224 "flambda_parser.mly" + (Obj.magic (MenhirInterpreter.entry `Legacy 557 lexer lexbuf) : ( +# 226 "flambda_parser.mly" (Fexpr.flambda_unit) -# 11903 "flambda_parser_in.ml" +# 11992 "flambda_parser_in.ml" )) and expect_test_spec = fun lexer lexbuf -> (Obj.magic (MenhirInterpreter.entry `Legacy 0 lexer lexbuf) : ( -# 222 "flambda_parser.mly" +# 224 "flambda_parser.mly" (Fexpr.expect_test_spec) -# 11911 "flambda_parser_in.ml" +# 12000 "flambda_parser_in.ml" )) module Incremental = struct let flambda_unit = fun initial_position -> - (Obj.magic (MenhirInterpreter.start 554 initial_position) : ( -# 224 "flambda_parser.mly" + (Obj.magic (MenhirInterpreter.start 557 initial_position) : ( +# 226 "flambda_parser.mly" (Fexpr.flambda_unit) -# 11921 "flambda_parser_in.ml" +# 12010 "flambda_parser_in.ml" ) MenhirInterpreter.checkpoint) and expect_test_spec = fun initial_position -> (Obj.magic (MenhirInterpreter.start 0 initial_position) : ( -# 222 "flambda_parser.mly" +# 224 "flambda_parser.mly" (Fexpr.expect_test_spec) -# 11929 "flambda_parser_in.ml" +# 12018 "flambda_parser_in.ml" ) MenhirInterpreter.checkpoint) end -# 958 "flambda_parser.mly" +# 966 "flambda_parser.mly" -# 11937 "flambda_parser_in.ml" +# 12026 "flambda_parser_in.ml" # 269 "" -# 11942 "flambda_parser_in.ml" +# 12031 "flambda_parser_in.ml" diff --git a/middle_end/flambda2/parser/flambda_parser.mli b/middle_end/flambda2/parser/flambda_parser.mli index a6228e1513b..3f1732c3ce0 100644 --- a/middle_end/flambda2/parser/flambda_parser.mli +++ b/middle_end/flambda2/parser/flambda_parser.mli @@ -38,6 +38,7 @@ type token = | PRIM_INT_COMP | PRIM_INT_ARITH | PRIM_GET_TAG + | PRIM_END_REGION | PRIM_BYTES_LENGTH | PRIM_BOX_NATIVEINT | PRIM_BOX_INT64 @@ -45,6 +46,7 @@ type token = | PRIM_BOX_FLOAT | PRIM_BLOCK_LOAD | PRIM_BLOCK + | PRIM_BEGIN_REGION | PRIM_ARRAY_SET | PRIM_ARRAY_LOAD | PRIM_ARRAY_LENGTH diff --git a/middle_end/flambda2/parser/flambda_parser.mly b/middle_end/flambda2/parser/flambda_parser.mly index 86d42a06b8a..764bc740e4a 100644 --- a/middle_end/flambda2/parser/flambda_parser.mly +++ b/middle_end/flambda2/parser/flambda_parser.mly @@ -180,6 +180,7 @@ let make_boxed_const_int (i, m) : static_data = %token PRIM_ARRAY_LENGTH [@symbol "%array_length"] %token PRIM_ARRAY_LOAD [@symbol "%array_load"] %token PRIM_ARRAY_SET [@symbol "%array_set"] +%token PRIM_BEGIN_REGION [@symbol "%begin_region"] %token PRIM_BLOCK [@symbol "%Block"] %token PRIM_BLOCK_LOAD [@symbol "%block_load"] %token PRIM_BOX_FLOAT [@symbol "%Box_float"] @@ -187,6 +188,7 @@ let make_boxed_const_int (i, m) : static_data = %token PRIM_BOX_INT64 [@symbol "%Box_int64"] %token PRIM_BOX_NATIVEINT [@symbol "%Box_nativeint"] %token PRIM_BYTES_LENGTH [@symbol "%bytes_length"] +%token PRIM_END_REGION [@symbol "%end_region"] %token PRIM_GET_TAG [@symbol "%get_tag"] %token PRIM_INT_ARITH [@symbol "%int_arith"] %token PRIM_INT_COMP [@symbol "%int_comp"] @@ -343,6 +345,10 @@ recursive: | KWD_REC { Recursive } ; +nullop: + | PRIM_BEGIN_REGION { Begin_region } +; + unop: | PRIM_ARRAY_LENGTH { Array_length } | PRIM_BOX_FLOAT { Box_number Naked_float } @@ -350,6 +356,7 @@ unop: | PRIM_BOX_INT64 { Box_number Naked_int64 } | PRIM_BOX_NATIVEINT { Box_number Naked_nativeint } | PRIM_BYTES_LENGTH { String_length Bytes } + | PRIM_END_REGION { End_region } | PRIM_GET_TAG { Get_tag } | PRIM_IS_FLAT_FLOAT_ARRAY { Is_flat_float_array } | PRIM_IS_INT { Is_int } @@ -512,6 +519,7 @@ block: named: | s = simple { Simple s } + | n = nullop { Prim (Nullary n) } | u = unop a = simple { Prim (Unary (u, a)) } | b = binop_app { Prim b } | t = ternop_app { Prim t } diff --git a/middle_end/flambda2/parser/flambda_to_fexpr.ml b/middle_end/flambda2/parser/flambda_to_fexpr.ml index 5dd0b5c804d..a7703e25fe5 100644 --- a/middle_end/flambda2/parser/flambda_to_fexpr.ml +++ b/middle_end/flambda2/parser/flambda_to_fexpr.ml @@ -476,6 +476,13 @@ let targetint_ocaml (i : Targetint_31_63.t) : Fexpr.targetint = let recursive_flag (r : Recursive.t) : Fexpr.is_recursive = match r with Recursive -> Recursive | Non_recursive -> Nonrecursive +let nullop _env (op : Flambda_primitive.nullary_primitive) : Fexpr.nullop = + match op with + | Begin_region -> Begin_region + | Invalid _ | Optimised_out _ | Probe_is_enabled _ -> + Misc.fatal_errorf "TODO: Nullary primitive: %a" Flambda_primitive.print + (Flambda_primitive.Nullary op) + let unop env (op : Flambda_primitive.unary_primitive) : Fexpr.unop = match op with | Array_length -> Array_length @@ -483,6 +490,7 @@ let unop env (op : Flambda_primitive.unary_primitive) : Fexpr.unop = | Box_number (bk, _alloc_mode) -> Box_number bk | Tag_immediate -> Tag_immediate | Get_tag -> Get_tag + | End_region -> End_region | Is_flat_float_array -> Is_flat_float_array | Is_int _ -> Is_int (* CR vlaviron: discuss *) | Num_conv { src; dst } -> Num_conv { src; dst } @@ -500,7 +508,7 @@ let unop env (op : Flambda_primitive.unary_primitive) : Fexpr.unop = | String_length string_or_bytes -> String_length string_or_bytes | Int_as_pointer | Boolean_not | Duplicate_block _ | Duplicate_array _ | Bigarray_length _ | Int_arith _ | Float_arith _ | Reinterpret_int64_as_float - | Is_boxed_float | Begin_try_region | End_region | Obj_dup -> + | Is_boxed_float | Begin_try_region | Obj_dup -> Misc.fatal_errorf "TODO: Unary primitive: %a" Flambda_primitive.Without_args.print (Flambda_primitive.Without_args.Unary op) @@ -571,7 +579,7 @@ let varop (op : Flambda_primitive.variadic_primitive) : Fexpr.varop = let prim env (p : Flambda_primitive.t) : Fexpr.prim = match p with - | Nullary _ -> Misc.fatal_errorf "TODO: Nullary primitive" + | Nullary op -> Nullary (nullop env op) | Unary (op, arg) -> Unary (unop env op, simple env arg) | Binary (op, arg1, arg2) -> Binary (binop op, simple env arg1, simple env arg2) diff --git a/middle_end/flambda2/parser/print_fexpr.ml b/middle_end/flambda2/parser/print_fexpr.ml index a9780c3f681..e607ed2a263 100644 --- a/middle_end/flambda2/parser/print_fexpr.ml +++ b/middle_end/flambda2/parser/print_fexpr.ml @@ -334,6 +334,9 @@ let static_data ppf : static_data -> unit = function let static_data_binding ppf { symbol = s; defining_expr = sp } = Format.fprintf ppf "%a =@ %a" symbol s static_data sp +let nullop ppf (o : nullop) = + Format.pp_print_string ppf @@ match o with Begin_region -> "%begin_region" + let binary_int_arith_op ppf (o : binary_int_arith_op) = Format.pp_print_string ppf @@ @@ -466,6 +469,7 @@ let unop ppf u = match u with | Array_length -> str "%array_length" | Box_number bk -> box_or_unbox "Box" bk + | End_region -> str "%end_region" | Get_tag -> str "%get_tag" | Is_flat_float_array -> str "%is_flat_float_array" | Is_int -> str "%is_int" @@ -493,6 +497,7 @@ let ternop ppf t a1 a2 a3 = a3 let prim ppf = function + | Nullary n -> nullop ppf n | Unary (u, a) -> Format.fprintf ppf "%a %a" unop u simple a | Binary (b, a1, a2) -> binop ppf b a1 a2 | Ternary (t, a1, a2, a3) -> ternop ppf t a1 a2 a3 diff --git a/middle_end/flambda2/tests/mlexamples/dune b/middle_end/flambda2/tests/mlexamples/dune index 6f2aafe762d..49e115a1ab3 100644 --- a/middle_end/flambda2/tests/mlexamples/dune +++ b/middle_end/flambda2/tests/mlexamples/dune @@ -11,6 +11,8 @@ tests0 tests3 tests4 + tests4a tests5 + tests6 tests11)) (diff generated-rules.inc generated-rules.inc.new)))) diff --git a/middle_end/flambda2/tests/mlexamples/generated-rules.inc b/middle_end/flambda2/tests/mlexamples/generated-rules.inc index aa99dfa5f92..ba3817f94eb 100644 --- a/middle_end/flambda2/tests/mlexamples/generated-rules.inc +++ b/middle_end/flambda2/tests/mlexamples/generated-rules.inc @@ -132,6 +132,49 @@ (alias regen) (action (diff tests4.flt tests4.flt.new))) +(rule + (alias runtest) + (action + (progn + (run ../tools/flexpect.exe tests4a.flt) + (diff? tests4a.flt tests4a.flt.corrected)))) + +(rule + (alias runtest) + (action + (progn + (run ../tools/roundtrip.exe tests4a_in.fl) + (diff? tests4a_in.fl tests4a_in.fl.corrected)))) + +(rule + (alias runtest) + (action + (progn + (run ../tools/roundtrip.exe tests4a_out.fl) + (diff? tests4a_out.fl tests4a_out.fl.corrected)))) + +(rule + (alias regen) + (targets tests4a.flt.new tests4a_in.fl.new tests4a_out.fl.new) + (deps tests4a.ml) + (action + (run ocamlopt -c tests4a.ml -nopervasives -nostdlib + -drawfexpr-to tests4a_in.fl.new + -dfexpr-to tests4a_out.fl.new + -dflexpect-to tests4a.flt.new))) + +(rule + (alias regen) + (action (diff tests4a_in.fl tests4a_in.fl.new))) + +(rule + (alias regen) + (action (diff tests4a_out.fl tests4a_out.fl.new))) + +(rule + (alias regen) + (action (diff tests4a.flt tests4a.flt.new))) + (rule (alias runtest) (action @@ -175,6 +218,49 @@ (alias regen) (action (diff tests5.flt tests5.flt.new))) +(rule + (alias runtest) + (action + (progn + (run ../tools/flexpect.exe tests6.flt) + (diff? tests6.flt tests6.flt.corrected)))) + +(rule + (alias runtest) + (action + (progn + (run ../tools/roundtrip.exe tests6_in.fl) + (diff? tests6_in.fl tests6_in.fl.corrected)))) + +(rule + (alias runtest) + (action + (progn + (run ../tools/roundtrip.exe tests6_out.fl) + (diff? tests6_out.fl tests6_out.fl.corrected)))) + +(rule + (alias regen) + (targets tests6.flt.new tests6_in.fl.new tests6_out.fl.new) + (deps tests6.ml) + (action + (run ocamlopt -c tests6.ml -nopervasives -nostdlib + -drawfexpr-to tests6_in.fl.new + -dfexpr-to tests6_out.fl.new + -dflexpect-to tests6.flt.new))) + +(rule + (alias regen) + (action (diff tests6_in.fl tests6_in.fl.new))) + +(rule + (alias regen) + (action (diff tests6_out.fl tests6_out.fl.new))) + +(rule + (alias regen) + (action (diff tests6.flt tests6.flt.new))) + (rule (alias runtest) (action diff --git a/middle_end/flambda2/tests/mlexamples/tests4a.flt b/middle_end/flambda2/tests/mlexamples/tests4a.flt index 4f0dad4f0f2..5c189492653 100644 --- a/middle_end/flambda2/tests/mlexamples/tests4a.flt +++ b/middle_end/flambda2/tests/mlexamples/tests4a.flt @@ -1,7 +1,9 @@ -let $camlTests4a__first_const16 = Block 0 () in -let code size(21) pr2162_3_as_int64_0 (z : imm tagged, x : imm tagged) - my_closure my_region my_depth -> k * k1 : imm tagged = - let next_depth = rec_info (succ my_depth) in +let $camlTests4a__first_const17 = Block 0 () in +let code size(21) + pr2162_3_as_int64_0 (z : imm tagged, x : imm tagged) + my_closure my_region my_depth + -> k * k1 + : imm tagged = (let untagged = %untag_imm z in switch untagged | 0 -> k2 (x) @@ -18,19 +20,16 @@ in let Pmakeblock = %Block 0 (pr2162_3_as_int64) in cont k (Pmakeblock)) where k define_root_symbol (module_block) = - let field_0 = %block_load 0 size(1) (module_block, 0) in + let field_0 = %block_load tag(0) size(1) (module_block, 0) in let $camlTests4a = Block 0 (field_0) in cont done ($camlTests4a) ===> -let code size(21) pr2162_3_as_int64_0 deleted : - imm tagged * imm tagged -> imm tagged -in -let code size(21) newer_version_of(pr2162_3_as_int64_0) pr2162_3_as_int64_0_1 - (z : imm tagged, - x : imm tagged) - my_closure my_region my_depth - -> k * k1 - : imm tagged = +let code pr2162_3_as_int64_0 deleted in +let code size(21) newer_version_of(pr2162_3_as_int64_0) + pr2162_3_as_int64_0_1 (z : imm tagged, x : imm tagged) + my_closure my_region my_depth + -> k * k1 + : imm tagged = (let untagged = %untag_imm z in switch untagged | 0 -> k2 (x) diff --git a/middle_end/flambda2/tests/mlexamples/tests4a_in.fl b/middle_end/flambda2/tests/mlexamples/tests4a_in.fl new file mode 100644 index 00000000000..c85da7c2ccb --- /dev/null +++ b/middle_end/flambda2/tests/mlexamples/tests4a_in.fl @@ -0,0 +1,25 @@ +let $camlTests4a__first_const17 = Block 0 () in +let code size(21) + pr2162_3_as_int64_0 (z : imm tagged, x : imm tagged) + my_closure my_region my_depth + -> k * k1 + : imm tagged = + (let untagged = %untag_imm z in + switch untagged + | 0 -> k2 (x) + | 1 -> k3) + where k3 = + let Pmulint = x * 2 in + cont k2 (Pmulint) + where k2 (y : imm tagged) = + let prim = %phys_eq (y, x) in + let Pintcomp = %Tag_imm prim in + cont k (Pintcomp) +in +(let pr2162_3_as_int64 = closure pr2162_3_as_int64_0 @pr2162_3_as_int64 in + let Pmakeblock = %Block 0 (pr2162_3_as_int64) in + cont k (Pmakeblock)) + where k define_root_symbol (module_block) = + let field_0 = %block_load tag(0) size(1) (module_block, 0) in + let $camlTests4a = Block 0 (field_0) in + cont done ($camlTests4a) diff --git a/middle_end/flambda2/tests/mlexamples/tests4a_out.fl b/middle_end/flambda2/tests/mlexamples/tests4a_out.fl new file mode 100644 index 00000000000..f73390c8bf8 --- /dev/null +++ b/middle_end/flambda2/tests/mlexamples/tests4a_out.fl @@ -0,0 +1,23 @@ +let code pr2162_3_as_int64_0 deleted in +let code size(21) newer_version_of(pr2162_3_as_int64_0) + pr2162_3_as_int64_0_1 (z : imm tagged, x : imm tagged) + my_closure my_region my_depth + -> k * k1 + : imm tagged = + (let untagged = %untag_imm z in + switch untagged + | 0 -> k2 (x) + | 1 -> k3) + where k3 = + let Pmulint = x * 2 in + cont k2 (Pmulint) + where k2 (y : imm tagged) = + let prim = %phys_eq (y, x) in + let Pintcomp = %Tag_imm prim in + cont k (Pintcomp) +in +let $camlTests4a__pr2162_3_as_int64_1 = + closure pr2162_3_as_int64_0_1 @pr2162_3_as_int64 +in +let $camlTests4a = Block 0 ($camlTests4a__pr2162_3_as_int64_1) in +cont done ($camlTests4a) diff --git a/middle_end/flambda2/tests/mlexamples/tests6.flt b/middle_end/flambda2/tests/mlexamples/tests6.flt index f1c22351bf2..457f8f82c1f 100644 --- a/middle_end/flambda2/tests/mlexamples/tests6.flt +++ b/middle_end/flambda2/tests/mlexamples/tests6.flt @@ -1,58 +1,67 @@ -let $camlTests6__first_const17 = Block 0 () in -let code rec size(26) f_0 (x : imm tagged) my_closure my_region my_depth -> k * k1 - : imm tagged = +let $camlTests6__first_const21 = Block 0 () in +let code rec size(24) + f_0 (x : imm tagged) + my_closure my_region my_depth + -> k * k1 + : imm tagged = let next_depth = rec_info (succ my_depth) in - let prim = x > 0 in + let prim = %int_comp x > 0 in let Pintcomp = %Tag_imm prim in (let untagged = %untag_imm Pintcomp in switch untagged | 0 -> k (42) | 1 -> k2) where k2 = - let Psubint = x - 1 in - (apply my_closure (Psubint) -> k2 * k1 - where k2 (apply_result) = + ((let Psubint = x - 1 in + apply direct(f_0) + (my_closure : _ -> imm tagged) (Psubint) &my_region -> k2 * k1) + where k2 (apply_result : imm tagged) = let Paddint = 1 + apply_result in cont k (Paddint)) in -(let f = closure f_0 @f in - apply unroll(10) f (3) -> k1 * error) +(let `region` = %begin_region in + (let f = closure f_0 @f in + apply direct(f_0) unroll(10) + (f : _ -> imm tagged) (3) &`region` -> k2 * error) + where k2 (region_return : imm tagged) = + let `unit` = %end_region `region` in + cont k1 (region_return)) where k1 (n : imm tagged) = let Pmakeblock = %Block 0 (n) in cont k (Pmakeblock) where k define_root_symbol (module_block) = - let field_0 = %block_load 0 size(1) (module_block, 0) in + let field_0 = %block_load tag(0) size(1) (module_block, 0) in let $camlTests6 = Block 0 (field_0) in cont done ($camlTests6) ===> -let code rec size(26) f_0 deleted : imm tagged -> imm tagged in +let code f_0 deleted in +let `region` = %begin_region in let $camlTests6__f_1 = closure f_0_1 @f -and code rec size(22) newer_version_of(f_0) f_0_1 (x : imm tagged) my_closure - my_depth -> k * k1 : imm tagged = - let prim = x > 0 in +and code rec size(21) newer_version_of(f_0) + f_0_1 (x : imm tagged) + my_closure my_region my_depth + -> k * k1 + : imm tagged = + let prim = %int_comp x > 0 in switch prim | 0 -> k (42) | 1 -> k2 where k2 = - let Psubint = x - 1 in - (apply direct(f_0_1 @f) - ($camlTests6__f_1 : _ -> imm tagged) - (Psubint) - -> k3 * k1 - where k3 (param : imm tagged) = - cont k2 (param) - where k2 (apply_result) = + ((let Psubint = x - 1 in + apply direct(f_0_1) + ($camlTests6__f_1 : _ -> imm tagged) + (Psubint) + &my_region + -> k2 * k1) + where k2 (apply_result : imm tagged) = let Paddint = 1 + apply_result in cont k (Paddint)) in -apply direct(f_0_1 @f) unroll(10) - ($camlTests6__f_1 : _ -> imm tagged) - (3) - -> k1 * error - where k1 (param : imm tagged) = - cont k (param) - where k (n : imm tagged) = - let dominator_scoped $camlTests6__Pmakeblock36 = Block 0 (n) in - let $camlTests6 = Block 0 (n) in +apply direct(f_0_1) inlining_state(depth(10)) + ($camlTests6__f_1 : _ -> imm tagged) (2) &`region` -> k * error + where k (apply_result : imm tagged) = + let Paddint = 1 + apply_result in + let `unit` = %end_region `region` in + let $camlTests6 = Block 0 (Paddint) in cont done ($camlTests6) diff --git a/middle_end/flambda2/tests/mlexamples/tests6_in.fl b/middle_end/flambda2/tests/mlexamples/tests6_in.fl new file mode 100644 index 00000000000..bc250f24d6b --- /dev/null +++ b/middle_end/flambda2/tests/mlexamples/tests6_in.fl @@ -0,0 +1,35 @@ +let $camlTests6__first_const21 = Block 0 () in +let code rec size(24) + f_0 (x : imm tagged) + my_closure my_region my_depth + -> k * k1 + : imm tagged = + let next_depth = rec_info (succ my_depth) in + let prim = %int_comp x > 0 in + let Pintcomp = %Tag_imm prim in + (let untagged = %untag_imm Pintcomp in + switch untagged + | 0 -> k (42) + | 1 -> k2) + where k2 = + ((let Psubint = x - 1 in + apply direct(f_0) + (my_closure : _ -> imm tagged) (Psubint) &my_region -> k2 * k1) + where k2 (apply_result : imm tagged) = + let Paddint = 1 + apply_result in + cont k (Paddint)) +in +(let `region` = %begin_region in + (let f = closure f_0 @f in + apply direct(f_0) unroll(10) + (f : _ -> imm tagged) (3) &`region` -> k2 * error) + where k2 (region_return : imm tagged) = + let `unit` = %end_region `region` in + cont k1 (region_return)) + where k1 (n : imm tagged) = + let Pmakeblock = %Block 0 (n) in + cont k (Pmakeblock) + where k define_root_symbol (module_block) = + let field_0 = %block_load tag(0) size(1) (module_block, 0) in + let $camlTests6 = Block 0 (field_0) in + cont done ($camlTests6) diff --git a/middle_end/flambda2/tests/mlexamples/tests6_out.fl b/middle_end/flambda2/tests/mlexamples/tests6_out.fl new file mode 100644 index 00000000000..0d524f2cc6c --- /dev/null +++ b/middle_end/flambda2/tests/mlexamples/tests6_out.fl @@ -0,0 +1,31 @@ +let code f_0 deleted in +let `region` = %begin_region in +let $camlTests6__f_1 = + closure f_0_1 @f +and code rec size(21) newer_version_of(f_0) + f_0_1 (x : imm tagged) + my_closure my_region my_depth + -> k * k1 + : imm tagged = + let prim = %int_comp x > 0 in + switch prim + | 0 -> k (42) + | 1 -> k2 + where k2 = + ((let Psubint = x - 1 in + apply direct(f_0_1) + ($camlTests6__f_1 : _ -> imm tagged) + (Psubint) + &my_region + -> k2 * k1) + where k2 (apply_result : imm tagged) = + let Paddint = 1 + apply_result in + cont k (Paddint)) +in +apply direct(f_0_1) inlining_state(depth(10)) + ($camlTests6__f_1 : _ -> imm tagged) (2) &`region` -> k * error + where k (apply_result : imm tagged) = + let Paddint = 1 + apply_result in + let `unit` = %end_region `region` in + let $camlTests6 = Block 0 (Paddint) in + cont done ($camlTests6)