(**************************************************************************) (* *) (* Menhir *) (* *) (* François Pottier and Yann Régis-Gianas, INRIA Rocquencourt *) (* *) (* Copyright 2005 Institut National de Recherche en Informatique et *) (* en Automatique. All rights reserved. This file is distributed *) (* under the terms of the Q Public License version 1.0, with the *) (* change described in file LICENSE. *) (* *) (**************************************************************************) (* Input-output utilities. *) (* [exhaust channel] reads all of the data that's available on [channel]. *) val exhaust: in_channel -> string (* [invoke command] invokes an external command (which expects no input) and returns its output, if the command succeeds. It returns [None] if the command fails. *) val invoke: string -> string option (* [winvoke writers command cleaners] invokes each of the [writer] functions, invokes the command [command], and runs each of the [cleaner] functions. Then, it either returns the command's output, if the command succeeded, or exits, otherwise. *) val winvoke: (unit -> unit) list -> string -> (unit -> unit) list -> string