Cobol_ir.Typesmodule NEL = Cobol_common.Basics.NELRepresentations are parametric in the type 'f of field values, as well as the type 'r of record memory.
Manipulated COBOL fields may either be constant or lie in memory.
and 'f mutable_field = {field_value : 'f addressable_field;field_initial_value : 'f immutable_field option;field_definition : Cobol_data.Types.field_definition
Cobol_common.Srcloc.TYPES.with_loc;}A field in memory is addressable and may have an initial value. It always comes from a definition in a COBOL source.
Adressable fields may either be fixed, or require subscript data.
Handle for record memory; we just keep the definition.
In addition to the type variables above, the type of modules is parametric in the type 'm of module memory.
module FIELDS_MAP = Cobol_unit.Resolver_maptype 'f fields_map = 'f mutable_field FIELDS_MAP.tNamed fields are always associated with fields that lie in memory (immutable fields typically come from literals in source programs).
type 'f fields_data = {map : 'f fields_map;working_storage : 'f mutable_field list;local_storage : 'f mutable_field list;}Structure that gathers elements from the DATA DIVISION of a module.
type 'f code_block = 'f statement Cobol_common.Srcloc.TYPES.with_loc listA block of code that is amenable to interpretation; for now, only a list of statements.
type ('f, 'm) module_handle = {module_memory : 'm;module_unit : Cobol_unit.Types.t;module_fields : 'f fields_data;module_proc : 'f code_block;mutable module_initialized : bool;}type unsupported_stuff += | Statement of Cobol_ptree.statement| Term : 'a Cobol_ptree.term -> unsupported_stuff| Field_in_occurs| Variable_length_fieldtype error += | Unsupported of {loc : Cobol_common.Srcloc.TYPES.srcloc;stuff : unsupported_stuff;}| Undefined of {loc : Cobol_common.Srcloc.TYPES.srcloc;stuff : undefined_stuff;}| Ambiguous of {loc : Cobol_common.Srcloc.TYPES.srcloc;stuff : ambiguous_stuff;candidates : Cobol_ptree.qualname NEL.t;}exception FATAL of errorstype ('f, 'r, 'm) value_manager = {create_record_data : Cobol_data.Types.record -> 'r record_handle;create_mutable_field : Cobol_data.Types.field_definition
Cobol_common.Srcloc.TYPES.with_loc ->
'r record_handle ->
('f mutable_field, errors) Stdlib.result;create_field_from_literal : Cobol_ptree.literal
Cobol_common.Srcloc.TYPES.with_loc ->
('f immutable_field, errors) Stdlib.result;create_module : name:string -> source_file:string -> 'm;enter_module : ('f, 'm) module_handle -> params:'f array -> unit;leave_module : ('f, 'm) module_handle -> unit;init_field : vm:('f, 'r, 'm) value_manager ->
'f mutable_field ->
(unit, errors) Stdlib.result;field_as_int : vm:('f, 'r, 'm) value_manager ->
'f field ->
(int, errors) Stdlib.result;display_fields : vm:('f, 'r, 'm) value_manager ->
advancing:bool ->
'f field array ->
(unit, errors) Stdlib.result;}