package mopsa

  1. Overview
  2. Docs
Legend:
Library
Module
Module type
Parameter
Class
Class type

Types

This modules allows extending Mopsa with new types. This is done by extending the type typ with new variants. For example

type typ += T_int

extends Mopsa types with a new integer type. Registration is performed with

let () = register_typ {
    compare = (fun next -> next);
    print = (fun next -> function
        | T_int -> Format.pp_print_string fmt "int"
        | t    -> next fmt t
      );
  }

Note that is this simple example where the type doesn't have an inner structure no comparison function is required as Stdlib.compare is sufficient to provide a total order.

type typ = ..

Extensible types

val compare_typ : typ -> typ -> int

Compare two types

val pp_typ : Format.formatter -> typ -> unit

Pretty-print a type

Registration

val register_typ : typ Mopsa_utils.TypeExt.info -> unit

Register a new type

val register_typ_compare : typ Mopsa_utils.TypeExt.compare -> unit

Register a new type comparison

val register_typ_pp : typ Mopsa_utils.TypeExt.print -> unit

Register a new type pretty-printer

Common types

type typ +=
  1. | T_any
    (*

    Generic unknown type

    *)
  2. | T_addr
    (*

    Heap addresses type

    *)
OCaml

Innovation. Community. Security.