32 lines
1.5 KiB
OCaml
32 lines
1.5 KiB
OCaml
(***********************************************************************)
|
|
(* *)
|
|
(* OCaml *)
|
|
(* *)
|
|
(* Jerome Vouillon, projet Cristal, INRIA Rocquencourt *)
|
|
(* OCaml port by John Malecki and Xavier Leroy *)
|
|
(* *)
|
|
(* Copyright 1996 Institut National de Recherche en Informatique et *)
|
|
(* en Automatique. All rights reserved. This file is distributed *)
|
|
(* under the terms of the Q Public License version 1.0. *)
|
|
(* *)
|
|
(***********************************************************************)
|
|
|
|
(*open Globals*)
|
|
|
|
open Primitives
|
|
|
|
type expression =
|
|
E_ident of Longident.t (* x or Mod.x *)
|
|
| E_name of int (* $xxx *)
|
|
| E_item of expression * int (* x.1 x.[2] x.(3) *)
|
|
| E_field of expression * string (* x.lbl !x *)
|
|
| E_result
|
|
|
|
type break_arg =
|
|
BA_none (* break *)
|
|
| BA_pc of int (* break PC *)
|
|
| BA_function of expression (* break FUNCTION *)
|
|
| BA_pos1 of Longident.t option * int * int option
|
|
(* break @ [MODULE] LINE [POS] *)
|
|
| BA_pos2 of Longident.t option * int (* break @ [MODULE] # OFFSET *)
|