a68g-transput.h

     
   1  //! @file a68g-transput.h
   2  //! @author J. Marcel van der Veer
   3  
   4  //! @section Copyright
   5  //!
   6  //! This file is part of Algol68G - an Algol 68 compiler-interpreter.
   7  //! Copyright 2001-2024 J. Marcel van der Veer [algol68g@xs4all.nl].
   8  
   9  //! @section License
  10  //!
  11  //! This program is free software; you can redistribute it and/or modify it 
  12  //! under the terms of the GNU General Public License as published by the 
  13  //! Free Software Foundation; either version 3 of the License, or 
  14  //! (at your option) any later version.
  15  //!
  16  //! This program is distributed in the hope that it will be useful, but 
  17  //! WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 
  18  //! or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for 
  19  //! more details. You should have received a copy of the GNU General Public 
  20  //! License along with this program. If not, see [http://www.gnu.org/licenses/].
  21  
  22  //! @section Synopsis
  23  //!
  24  //! Transput related definitions.
  25  
  26  #if !defined (__A68G_TRANSPUT_H__)
  27  #define __A68G_TRANSPUT_H__
  28  
  29  #if (A68_LEVEL >= 3)
  30  extern char *long_sub_whole_double (NODE_T *, DOUBLE_NUM_T, int);
  31  #endif
  32  
  33  BOOL_T convert_radix_mp (NODE_T *, MP_T *, int, int, MOID_T *, MP_T *, MP_T *);
  34  BOOL_T convert_radix (NODE_T *, UNSIGNED_T, int, int);
  35  BOOL_T genie_string_to_value_internal (NODE_T *, MOID_T *, char *, BYTE_T *);
  36  char digchar (int);
  37  char *error_chars (char *, int);
  38  char *fixed (NODE_T * p);
  39  char *get_transput_buffer (int);
  40  char *long_sub_fixed (NODE_T *, MP_T *, int, int, int);
  41  char *long_sub_whole (NODE_T *, MP_T *, int, int);
  42  char pop_char_transput_buffer (int);
  43  char *real (NODE_T *);
  44  char *stack_string (NODE_T *, int);
  45  char *sub_fixed_double (NODE_T *, DOUBLE_T, int, int, int);
  46  char *sub_fixed (NODE_T *, REAL_T, int, int);
  47  char *sub_whole (NODE_T *, INT_T, int);
  48  char *whole (NODE_T * p);
  49  FILE *a68_fopen (char *, char *, char *);
  50  FILE_T open_physical_file (NODE_T *, A68_REF, int, mode_t);
  51  GPROC genie_fixed;
  52  GPROC genie_float;
  53  GPROC genie_real;
  54  GPROC genie_whole;
  55  int char_scanner (A68_FILE *);
  56  int end_of_format (NODE_T *, A68_REF);
  57  int get_replicator_value (NODE_T *, BOOL_T);
  58  int get_transput_buffer_index (int);
  59  int get_transput_buffer_size (int);
  60  int get_unblocked_transput_buffer (NODE_T *);
  61  int store_file_entry (NODE_T *, FILE_T, char *, BOOL_T);
  62  void add_a_string_transput_buffer (NODE_T *, int, BYTE_T *);
  63  void add_chars_transput_buffer (NODE_T *, int, int, char *);
  64  void add_string_from_stack_transput_buffer (NODE_T *, int);
  65  void add_string_transput_buffer (NODE_T *, int, char *);
  66  void end_of_file_error (NODE_T * p, A68_REF ref_file);
  67  void enlarge_transput_buffer (NODE_T *, int, int);
  68  void format_error (NODE_T *, A68_REF, char *);
  69  void long_standardise (NODE_T *, MP_T *, int, int, int, int *);
  70  void on_event_handler (NODE_T *, A68_PROCEDURE, A68_REF);
  71  void open_error (NODE_T *, A68_REF, char *);
  72  void open_for_reading (NODE_T *, A68_REF);
  73  void open_for_writing (NODE_T *, A68_REF);
  74  void pattern_error (NODE_T *, MOID_T *, int);
  75  void plusab_transput_buffer (NODE_T *, int, char);
  76  void plusto_transput_buffer (NODE_T *, char, int);
  77  void read_insertion (NODE_T *, A68_REF);
  78  void read_sound (NODE_T *, A68_REF, A68_SOUND *);
  79  void reset_transput_buffer (int);
  80  void set_default_event_procedure (A68_PROCEDURE *);
  81  void set_default_event_procedures (A68_FILE *);
  82  void set_transput_buffer_index (int, int);
  83  void set_transput_buffer_size (int, int);
  84  void standardise (REAL_T *, int, int, int *);
  85  void transput_error (NODE_T *, A68_REF, MOID_T *);
  86  void unblock_transput_buffer (int);
  87  void unchar_scanner (NODE_T *, A68_FILE *, char);
  88  void value_error (NODE_T *, MOID_T *, A68_REF);
  89  void write_insertion (NODE_T *, A68_REF, MOOD_T);
  90  void write_purge_buffer (NODE_T *, A68_REF, int);
  91  void write_sound (NODE_T *, A68_REF, A68_SOUND *);
  92  
  93  #endif