
(********************************************************************)
(*                                                                  *)
(*  enable_io.s7i Templates to enable file I/O for a given type     *)
(*  Copyright (C) 1989 - 2011  Thomas Mertes                        *)
(*                                                                  *)
(*  This file is part of the Seed7 Runtime Library.                 *)
(*                                                                  *)
(*  The Seed7 Runtime Library is free software; you can             *)
(*  redistribute it and/or modify it under the terms of the GNU     *)
(*  Lesser General Public License as published by the Free Software *)
(*  Foundation; either version 2.1 of the License, or (at your      *)
(*  option) any later version.                                      *)
(*                                                                  *)
(*  The Seed7 Runtime Library is distributed in the hope that it    *)
(*  will be useful, but WITHOUT ANY WARRANTY; without even the      *)
(*  implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR *)
(*  PURPOSE.  See the GNU Lesser General Public License for more    *)
(*  details.                                                        *)
(*                                                                  *)
(*  You should have received a copy of the GNU Lesser General       *)
(*  Public License along with this program; if not, write to the    *)
(*  Free Software Foundation, Inc., 51 Franklin Street,             *)
(*  Fifth Floor, Boston, MA  02110-1301, USA.                       *)
(*                                                                  *)
(********************************************************************)


include "enable_input.s7i";
include "enable_output.s7i";


(**
 *  Template function to define I/O functions for ''aType''.
 *  It defines the functions [[enable_input#read(inout_aType)|read]],
 *  [[enable_input#readln(inout_aType)|readln]],
 *  [[enable_output#write(in_aType)|write]]
 *  and [[enable_output#writeln(in_aType)|writeln]] and the
 *  operators [[enable_output#(in_aType)lpad(in_integer)|lpad]],
 *  [[enable_output#(in_aType)rpad(in_integer)|rpad]]
 *  and [[enable_output#(in_string)<&(in_aType)|<&]]. To do this it
 *  calls the templates [[enable_input]] and [[enable_output]].
 *)
const proc: enable_io (in type: aType) is func
  begin
    enable_input(aType);
    enable_output(aType);
  end func;


enable_io(char);
enable_io(integer);
enable_io(boolean);
enable_io(bitset);
# enable_output(type);
# enable_output(ACTION);
