(* * Copyright (c) 2017 - present Facebook, Inc. * All rights reserved. * * This source code is licensed under the BSD style license found in the * LICENSE file in the root directory of this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. *) open! IStd type keyword = Doc_url | Message | Mode | Name | Report_when | Severity | Suggestion type formula_id = Formula_id of string (** a regexp and its cached compiled version *) type cached_regexp = {string: string; regexp: Str.regexp Lazy.t} [@@deriving compare] type alexp = | Const of string | Regexp of cached_regexp | Var of string | FId of formula_id [@@deriving compare] type t = alexp val equal : t -> t -> bool val formula_id_to_string : formula_id -> string val alexp_to_string : t -> string val keyword_to_string : keyword -> string val is_report_when_keyword : keyword -> bool val is_message_keyword : keyword -> bool val is_suggestion_keyword : keyword -> bool val is_severity_keyword : keyword -> bool val is_mode_keyword : keyword -> bool val is_doc_url_keyword : keyword -> bool val is_name_keyword : keyword -> bool val str_match_forward : string -> Str.regexp -> bool val compare_str_with_alexp : string -> alexp -> bool module FormulaIdMap : Caml.Map.S with type key = formula_id module VarMap : Caml.Map.S with type key = string