25 lines
1010 B
OCaml
25 lines
1010 B
OCaml
(***********************************************************************)
|
|
(* *)
|
|
(* Objective Caml *)
|
|
(* *)
|
|
(* Xavier Leroy, projet Cristal, INRIA Rocquencourt *)
|
|
(* *)
|
|
(* Copyright 1996 Institut National de Recherche en Informatique et *)
|
|
(* Automatique. Distributed only by permission. *)
|
|
(* *)
|
|
(***********************************************************************)
|
|
|
|
(* $Id$ *)
|
|
|
|
type t =
|
|
Lident of string
|
|
| Ldot of t * string
|
|
| Lapply of t * t
|
|
|
|
let rec flat accu = function
|
|
Lident s -> s :: accu
|
|
| Ldot(lid, s) -> flat (s :: accu) lid
|
|
| Lapply(l1, l2) -> Misc.fatal_error "Longident.flat"
|
|
|
|
let flatten lid = flat [] lid
|