package mopsa

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

Module Ast.TypSource

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.

Sourcetype typ = ..

Extensible types

Sourceval compare_typ : typ -> typ -> int

Compare two types

Sourceval pp_typ : Stdlib.Format.formatter -> typ -> unit

Pretty-print a type

Registration

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

Register a new type

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

Register a new type comparison

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

Register a new type pretty-printer

Common types

Sourcetype typ +=
  1. | T_any
    (*

    Generic unknown type

    *)
  2. | T_addr
    (*

    Heap addresses type

    *)
  3. | T_bool
    (*

    Boolean type

    *)
OCaml

Innovation. Community. Security.