This file is indexed.

/usr/lib/ocaml/galax/regexp.mli is in libgalax-ocaml-dev 1.1-15+b2.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
(***********************************************************************)
(*                                                                     *)
(*                                 GALAX                               *)
(*                              XQuery Engine                          *)
(*                                                                     *)
(*  Copyright 2001-2007.                                               *)
(*  Distributed only by permission.                                    *)
(*                                                                     *)
(***********************************************************************)

(* $Id: regexp.mli,v 1.5 2007/02/01 22:08:46 simeon Exp $ *)

(* Module Regexp
   Description:
     This module implements basic regular expressions over an alphabet
     of letters, and the Glushkov construction for both NFA's and
     DFA's over the same alphabet. The Glushkov module is a functor
     parameterized by a letter types.
*)

open Occurrence
open Error
open Nfa
open Dfa


(***********************)
(* Regular expressions *)
(***********************)

module type RegexpType =
  sig
    (* Positions within a regular expression *)
    type position = int    (* a symbol is denoted with its position
			      - each symbol as a unique position *)

    module Position : Set.OrderedType with type t = position

    module PositionSet : Set.S with type elt = position

    type letter

    (* Regular expressions *)

    type regexp =
      | RSym of (letter * position)
      | RSeq of (regexp * regexp)
      | REmpty
      | RChoice of (regexp * regexp)
      | RNone
      | RPlus of regexp
      | RStar of regexp
      | RAmp of (regexp * regexp)

    (* helper function on Glushkov construction *)

    val nullable : regexp -> bool

    (* returns a set of position of the expression *)

    val pos : regexp -> PositionSet.t

    val first : regexp -> PositionSet.t
    val last : regexp -> PositionSet.t
    val follow : regexp -> position -> PositionSet.t

    (* the chi function: it takes a regular expression and a position (integer). *)
    (* returns the label at that position. *)

    val chi : regexp -> position -> letter

    (* Creates a regular expression in star normal form *)
    (* it's a two step process *)

    val star_normalize_aux : regexp -> regexp
    val star_normalize : regexp -> regexp

  end

module MakeRegexpType (Letter : Set.OrderedType) :
    RegexpType with type letter = Letter.t

module type GlushkovType =
  sig
    module Regexp : RegexpType
    module NFA : NFA
    module DFA : DFA

    module NFAPair : NFA

    val build_glushkov : Regexp.regexp -> NFA.nfa
    val build_dtm_glushkov : Regexp.regexp -> DFA.dfa

    val negates_in_alphabet_space : DFA.dfa -> DFA.Alphabet.t -> DFA.dfa

    val intersects : NFA.nfa -> NFA.nfa -> NFAPair.nfa
    val intersects_dtm : NFA.nfa -> DFA.dfa -> NFAPair.nfa
    val print_intersection :
	(NFAPair.Alphabet.elt -> unit) ->
	  (NFAPair.StateSet.elt -> unit) -> NFAPair.nfa -> unit
  end

module MakeGlushkovType (Letter : Set.OrderedType) :
    GlushkovType with type Regexp.letter = Letter.t
       and type NFA.letter = Letter.t
       and type NFA.Alphabet.elt = Letter.t
       and type NFA.StateToTransitionMap.key = int
       and type NFA.TransitionMap.key = Letter.t
       and type NFA.StateSet.elt = int
       and type DFA.letter = Letter.t
       and type DFA.Alphabet.elt = Letter.t
       and type DFA.StateToTransitionMap.key = int
       and type DFA.TransitionMap.key = Letter.t
       and type DFA.StateSet.elt = int
       and type NFAPair.letter = Letter.t
       and type NFAPair.Alphabet.elt = Letter.t
       and type NFAPair.StateToTransitionMap.key = int * int
       and type NFAPair.TransitionMap.key = Letter.t
       and type NFAPair.StateSet.elt = int * int