Tools and libs shared by Verimag/synchronous tools (lustre, lutin, rdbg)
Library lutils
Module RifIO
val read_interface : ?debug:bool -> ?label:string -> in_channel -> out_channel option -> Data.vntl * Data.vntl

read_interface label ic oc_opt reads the IO names and types on ic. The string read on ic should looks like : #inputs v1:t1 v2:t2 ... #outputs x1:tx1 ... #step

label is a string used in debug mode to hint who is calling.

exception Bye
exception Reset
val read : ?debug:bool -> ?label:string -> ?pragma:string list -> in_channel -> out_channel option -> Data.vntl -> Data.subst list

Reads the input values. raises Bye if a line equal to "q" is read.

val write : out_channel -> string -> unit
val write_outputs : out_channel -> ( float -> string ) -> Data.vntl -> Data.subst list -> unit

write_outputs oc float_to_string outputs writes the outputs

val write_interface : out_channel -> Data.vntl -> Data.vntl -> Data.vntl option -> Data.vntl list option -> unit

write_interface oc in_vars_ out_vars loc_vars oracle_vars writes the input and output var names and types

val flush : out_channel -> unit