package orsetto

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

Module Cf_record_scan

Parser combinators for record types.

Overview

This module provides functional combinators for parsing records comprising lists of indexed fields, where an index is a value of totally ordered type, and the associated value has a type that depends on the value of the index.

Theory of Operation: Define a Basis that provides the scanners for field indexes and separators. Use that to Create() a profile of the record scanner in the syntax of each interchange language. Its users may then define a schema for each application record to scan, and use them to define scanners that first produce a pack by scanning according to the schema, then unpack the scanned records from the pack into application data structures.

Interface

Define a module of this signature according to the syntax of record types for a given structural interchange language.

module type Basis = sig ... end

The basis signature of a record scanning module.

module type Profile = sig ... end

The signature of a record scanning module.

module Create (B : Basis) : Profile with type index := B.Index.t and type 'a form := 'a B.Form.t and type 'a t := 'a B.Scan.t

Use Create(B) to make a record scanning module with basis B.

OCaml

Innovation. Community. Security.