Module Ecaml.Syntax_table

A syntax table specifies the syntactic textual function of each character. This information is used by the parsing functions, the complex movement commands, and others to determine where words, symbols, and other syntactic constructs begin and end.

(Info-goto-node "(elisp)Syntax Tables")

include Ecaml__.Import.Value.Subtype
type value
type t = private value

We expose private value for free identity conversions when the value is nested in some covariant type, e.g. (symbols : Symbol.t list :> Value.t list) rather than List.map symbols ~f:Symbol.to_value.

val sexp_of_t : t -> Ppx_sexp_conv_lib.Sexp.t
val eq : t -> t -> bool

eq t1 t2 = Value.eq (to_value t1) (to_value t2), i.e. eq checks whether the Emacs values underlying t1 and t2 are physically equal. This is different than phys_equal t1 t2, because we don't always wrap eq Emacs values in phys_equal OCaml values. I.e. phys_equal t1 t2 implies eq t1 t2, but not the converse.

val is_in_subtype : value -> bool
include Ecaml_value__.Valueable0.S with type t := t
type t
type 'a type_
val of_value_exn : Ecaml_value__.Value0.t -> t
val to_value : t -> Ecaml_value__.Value0.t
val type_ : t type_
val t : t type_
include Core_kernel.Equal.S with type t := t
type t
val equal : t Core_kernel.Equal.equal
val standard : t

(describe-function 'standard-syntax-table) (Info-goto-node "(elisp)Standard Syntax Tables")

val create : ?⁠parent:t -> unit -> t

(describe-function 'make-syntax-table) (Info-goto-node "(elisp)Syntax Table Functions")

val copy : t -> t

(describe-function 'copy-syntax-table) (Info-goto-node "(elisp)Syntax Table Functions")

module Class : sig ... end

(Info-goto-node "(elisp)Syntax Class Table")

module Flag : sig ... end

(Info-goto-node "(elisp)Syntax Flags")

module Descriptor : sig ... end
val set : t -> Char_code.t -> Class.t -> Flag.t list -> unit

(describe-function 'modify-syntax-entry) (Info-goto-node "(elisp)Syntax Table Functions")

val set_char : t -> char -> Class.t -> Flag.t list -> unit