1995-08-09 08:06:35 -07:00
|
|
|
(***********************************************************************)
|
|
|
|
(* *)
|
2011-07-27 07:17:02 -07:00
|
|
|
(* OCaml *)
|
1995-08-09 08:06:35 -07:00
|
|
|
(* *)
|
|
|
|
(* Xavier Leroy, projet Cristal, INRIA Rocquencourt *)
|
|
|
|
(* *)
|
1996-04-30 07:53:58 -07:00
|
|
|
(* Copyright 1996 Institut National de Recherche en Informatique et *)
|
1999-11-17 10:59:06 -08:00
|
|
|
(* en Automatique. All rights reserved. This file is distributed *)
|
|
|
|
(* under the terms of the Q Public License version 1.0. *)
|
1995-08-09 08:06:35 -07:00
|
|
|
(* *)
|
|
|
|
(***********************************************************************)
|
|
|
|
|
1995-05-04 03:15:53 -07:00
|
|
|
(* Compilation of pattern-matching *)
|
|
|
|
|
|
|
|
open Typedtree
|
|
|
|
open Lambda
|
|
|
|
|
2014-03-21 10:02:44 -07:00
|
|
|
|
|
|
|
(* Entry points to match compiler *)
|
1995-05-04 03:15:53 -07:00
|
|
|
val for_function:
|
1997-03-27 12:53:30 -08:00
|
|
|
Location.t -> int ref option -> lambda -> (pattern * lambda) list ->
|
1999-11-30 08:07:38 -08:00
|
|
|
partial -> lambda
|
1995-05-04 03:15:53 -07:00
|
|
|
val for_trywith:
|
1995-12-15 02:18:29 -08:00
|
|
|
lambda -> (pattern * lambda) list -> lambda
|
1995-05-04 03:15:53 -07:00
|
|
|
val for_let:
|
1995-12-15 02:18:29 -08:00
|
|
|
Location.t -> lambda -> pattern -> lambda -> lambda
|
|
|
|
val for_multiple_match:
|
1999-11-30 08:07:38 -08:00
|
|
|
Location.t -> lambda list -> (pattern * lambda) list -> partial ->
|
2000-01-07 07:56:27 -08:00
|
|
|
lambda
|
2001-02-19 12:27:52 -08:00
|
|
|
|
1996-10-22 06:36:59 -07:00
|
|
|
val for_tupled_function:
|
1999-11-30 08:07:38 -08:00
|
|
|
Location.t -> Ident.t list -> (pattern list * lambda) list ->
|
2000-01-07 07:56:27 -08:00
|
|
|
partial -> lambda
|
1996-10-22 06:36:59 -07:00
|
|
|
|
|
|
|
exception Cannot_flatten
|
|
|
|
|
|
|
|
val flatten_pattern: int -> pattern -> pattern list
|
2004-05-26 04:10:52 -07:00
|
|
|
|
2014-03-21 10:02:44 -07:00
|
|
|
(* Expand stringswitch to string test tree *)
|
|
|
|
|
|
|
|
val expand_stringswitch: lambda -> (string * lambda) list -> lambda -> lambda
|
|
|
|
|
|
|
|
(*
|
2004-05-26 04:10:52 -07:00
|
|
|
val make_test_sequence:
|
|
|
|
lambda option -> primitive -> primitive -> lambda ->
|
|
|
|
(Asttypes.constant * lambda) list -> lambda
|
2014-03-21 10:02:44 -07:00
|
|
|
*)
|
2008-08-01 09:57:10 -07:00
|
|
|
|
|
|
|
val inline_lazy_force : lambda -> Location.t -> lambda
|