a68g-nil.h

You can download the current version of Algol 68 Genie and its documentation here.

   1 //! @file a68g-nil.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-2023 J. Marcel van der Veer .
   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 .
  21 
  22 //! @section Synopsis
  23 //!
  24 //! Various forms of NIL.
  25 
  26 #if !defined (__A68G_NIL_H__)
  27 #define __A68G_NIL_H__
  28 
  29 #define NO_A68_REF ((A68_REF *) NULL)
  30 #define NO_ARRAY ((A68_ARRAY *) NULL)
  31 #define NO_BOOK ((BOOK_T *) NULL)
  32 #define NO_BOOL ((BOOL_T *) NULL)
  33 #define NO_BYTE ((BYTE_T *) NULL)
  34 #define NO_CONSTANT ((void *) NULL)
  35 #define NO_DEC ((DEC_T *) NULL)
  36 #define NO_DIAGNOSTIC ((DIAGNOSTIC_T *) NULL)
  37 #define NO_EDLIN ((EDLIN_T *) NULL)
  38 #define NO_FILE ((FILE *) NULL)
  39 #define NO_FORMAT ((A68_FORMAT *) NULL)
  40 #define NO_GINFO ((GINFO_T *) NULL)
  41 #define NO_GPROC ((void (*) (NODE_T *)) NULL)
  42 #define NO_HANDLE ((A68_HANDLE *) NULL)
  43 #define NO_INT ((int *) NULL)
  44 #define NO_JMP_BUF ((jmp_buf *) NULL)
  45 #define NO_KEYWORD ((KEYWORD_T *) NULL)
  46 #define NO_NINFO ((NODE_INFO_T *) NULL)
  47 #define NO_NOTE ((void (*) (NODE_T *)) NULL)
  48 #define NO_OPTION_LIST ((OPTION_LIST_T *) NULL)
  49 #define NO_PACK ((PACK_T *) NULL)
  50 #define NO_POSTULATE ((POSTULATE_T *) NULL)
  51 #define NO_PPROC ((PROP_T (*) (NODE_T *)) NULL)
  52 #define NO_PROCEDURE ((A68_PROCEDURE *) NULL)
  53 #define NO_REAL ((REAL_T *) NULL)
  54 #define NO_REFINEMENT ((REFINEMENT_T *) NULL)
  55 #define NO_REGMATCH ((regmatch_t *) NULL)
  56 #define NO_SCOPE ((SCOPE_T *) NULL)
  57 #define NO_SOID ((SOID_T *) NULL)
  58 #define NO_SOUND ((A68_SOUND *) NULL)
  59 #define NO_STREAM NO_FILE
  60 #define NO_TEXT ((char *) NULL)
  61 #define NO_TICK ((BOOL_T *) NULL)
  62 #define NO_TOKEN ((TOKEN_T *) NULL)
  63 #define NO_TUPLE ((A68_TUPLE *) NULL)
  64 #define NO_VAR (NULL)
  65 
  66 static const A68_FORMAT nil_format = {
  67   INIT_MASK, NULL, 0
  68 };
  69 
  70 static const A68_HANDLE nil_handle = {
  71   INIT_MASK,
  72   NO_BYTE,
  73   0,
  74   NO_MOID,
  75   NO_HANDLE,
  76   NO_HANDLE
  77 };
  78 
  79 static const A68_REF nil_ref = {
  80   (STATUS_MASK_T) (INIT_MASK | NIL_MASK),
  81   0,
  82   0,
  83   NO_HANDLE
  84 };
  85 
  86 #endif