package acgtk

  1. Overview
  2. Docs

Signature of modules encoding symbol tables

type identifier

identifier is the type of the identifier stored in the table. It is meant to be associated with a string

type table

The type of the table

exception CT_Not_found

This exception can be raised when some identifier or some symbol is not found in a query

val empty : table

empty is an empty table

val find_id_of_sym : string -> table -> identifier

find_id_of_sym sym t returns the identifier of the string sym stored in t. Raises CT_Not_found if no such identifier exists.

val find_id_of_sym_opt : string -> table -> identifier option

find_id_of_sym_opt sym t returns Some id where id is the identifier of the string sym stored in t, and returns None if no such identifier exists.

val find_sym_from_id : identifier -> table -> string

find_sym_from_id id t returns the string (i.e. the symbol) corresponding to the identifier id in table t. Raises CT_Not_found if no such symbol exists.

val add_sym : string -> table -> identifier * table

add_sym sym t returns a pair (id,t') where id is the identifier associated with sym in t'. If sym already was in t then t'=t and id is the identifier which it was associated with. Otherwise, a new identifier is generated and the new association is stored in t'.

val pp : Stdlib.Format.formatter -> table -> unit

pp f t pretty prints the table t on the formatter f

val fold : (identifier -> string -> 'a -> 'a) -> table -> 'a -> 'a

fold f table a returns f id1 sym1 (f id2 sym2 ( ... ( f idN symN a) ... )) where the (id,sym) pairs are the ones that are stored in the table table. The order of these key-value pairs in the table is unspecified.

OCaml

Innovation. Community. Security.