package acgtk

  1. Overview
  2. Docs
Module type
Class type

Table implements correspondance tables with the current identifiers

type identifier = id

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.


Innovation. Community. Security.