1 (***********************************************************************)
5 (* Xavier Leroy, projet Cristal, INRIA Rocquencourt *)
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. *)
11 (***********************************************************************)
15 (* Compaction of an automata *)
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 *)
33 val compact_tables
: Lexgen.automata array
-> lex_tables