Sys.Signals module for a Variant type of signals (and a set_signal function that...
[ocaml.git] / lex / compact.mli
blobe52dc7d2c8c00a0ddb61bc6450ec11aa34a13d69
1 (***********************************************************************)
2 (* *)
3 (* Objective Caml *)
4 (* *)
5 (* Xavier Leroy, projet Cristal, INRIA Rocquencourt *)
6 (* *)
7 (* Copyright 1996 Institut National de Recherche en Informatique et *)
8 (* en Automatique. All rights reserved. This file is distributed *)
9 (* under the terms of the Q Public License version 1.0. *)
10 (* *)
11 (***********************************************************************)
13 (* $Id$ *)
15 (* Compaction of an automata *)
16 type lex_tables =
17 { tbl_base: int array; (* Perform / Shift *)
18 tbl_backtrk: int array; (* No_remember / Remember *)
19 tbl_default: int array; (* Default transition *)
20 tbl_trans: int array; (* Transitions (compacted) *)
21 tbl_check: int array; (* Check (compacted) *)
22 (* code addresses are managed in a similar fashion as transitions *)
23 tbl_base_code : int array; (* code ptr / base for Shift *)
24 tbl_backtrk_code : int array; (* nothing / code when Remember *)
25 (* moves to execute before transitions (compacted) *)
26 tbl_default_code : int array;
27 tbl_trans_code : int array;
28 tbl_check_code : int array;
29 (* byte code itself *)
30 tbl_code: int array;}
33 val compact_tables: Lexgen.automata array -> lex_tables