sig
  val matrix_of_string : string -> string array array
  val matrix_of_file : string -> string array array
  type t_state = State of int
  type t_symbol = Space | Dash | Letter of string | Out
  type t_action = Left | Right | Up | Down | Stay
  type t_token =
      HSEP
    | RSEP of int
    | VSEP
    | FML_LETTER of string
    | RULE_LETTER of string
  type t_stack = Stack of int list
  type t_automaton = {
    transition :
      PRF_sequencer.t_state ->
      PRF_sequencer.t_symbol ->
      PRF_sequencer.t_stack ->
      PRF_sequencer.t_action * PRF_sequencer.t_state *
      PRF_sequencer.t_token option * PRF_sequencer.t_stack;
    end_state : PRF_sequencer.t_state;
  }
  exception Error of string
  exception Automaton_error of PRF_sequencer.t_state
  val default_automaton : PRF_sequencer.t_automaton
  val lexer_of_matrix :
    ?print_trace:bool ->
    ?automaton:PRF_sequencer.t_automaton ->
    string array array -> PRF_sequencer.t_token list
  val lexer_of_string :
    ?print_trace:bool -> string -> PRF_sequencer.t_token list
  val lexer_of_file :
    ?print_trace:bool -> string -> PRF_sequencer.t_token list
  type t_prf_seq = Prf_seq of string
  val string_of_token : PRF_sequencer.t_token -> string
  val prf_seq_of_string :
    ?print_trace:bool -> string -> PRF_sequencer.t_prf_seq
  val prf_seq_of_file :
    ?print_trace:bool -> string -> PRF_sequencer.t_prf_seq
end