1 /********************************************************************/
2 /*                                                                  */
3 /*  s7   Seed7 interpreter                                          */
4 /*  Copyright (C) 1990 - 2000  Thomas Mertes                        */
5 /*                                                                  */
6 /*  This program is free software; you can redistribute it and/or   */
7 /*  modify it under the terms of the GNU General Public License as  */
8 /*  published by the Free Software Foundation; either version 2 of  */
9 /*  the License, or (at your option) any later version.             */
10 /*                                                                  */
11 /*  This program is distributed in the hope that it will be useful, */
12 /*  but WITHOUT ANY WARRANTY; without even the implied warranty of  */
13 /*  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the   */
14 /*  GNU General Public License for more details.                    */
15 /*                                                                  */
16 /*  You should have received a copy of the GNU General Public       */
17 /*  License along with this program; if not, write to the           */
18 /*  Free Software Foundation, Inc., 51 Franklin Street,             */
19 /*  Fifth Floor, Boston, MA  02110-1301, USA.                       */
20 /*                                                                  */
21 /*  Module: General                                                 */
22 /*  File: seed7/src/syvarutl.h                                      */
23 /*  Changes: 1991, 1992, 1993, 1994  Thomas Mertes                  */
24 /*  Content: Maintains the interpreter system variables.            */
25 /*                                                                  */
26 /********************************************************************/
27 
28 /* If the number of values in sys_var is increased the definition */
29 /* of NUMBER_OF_SYSVARS in data.h must be adjusted also.          */
30 
31 #define EMPTY_OBJECT(prog)          (prog)->sys_var[ 0]
32 #define MEM_EXCEPTION(prog)         (prog)->sys_var[ 1]
33 #define NUM_EXCEPTION(prog)         (prog)->sys_var[ 2]
34 #define OVF_EXCEPTION(prog)         (prog)->sys_var[ 3]
35 #define RNG_EXCEPTION(prog)         (prog)->sys_var[ 4]
36 #define IDX_EXCEPTION(prog)         (prog)->sys_var[ 5]
37 #define FIL_EXCEPTION(prog)         (prog)->sys_var[ 6]
38 #define DB_EXCEPTION(prog)          (prog)->sys_var[ 7]
39 #define CLOSE_EXCEPTION(prog)       (prog)->sys_var[ 8]
40 #define ACT_ILLEGAL_EXCEPTION(prog) (prog)->sys_var[ 9]
41 #define FALSE_OBJECT(prog)          (prog)->sys_var[10]
42 #define TRUE_OBJECT(prog)           (prog)->sys_var[11]
43 #define EXPR_TYPE(prog)             (prog)->sys_var[12]
44 #define INT_TYPE(prog)              (prog)->sys_var[13]
45 #define BIGINT_TYPE(prog)           (prog)->sys_var[14]
46 #define CHAR_TYPE(prog)             (prog)->sys_var[15]
47 #define STRI_TYPE(prog)             (prog)->sys_var[16]
48 #define PROC_TYPE(prog)             (prog)->sys_var[17]
49 #define FLT_TYPE(prog)              (prog)->sys_var[18]
50 #define ASSIGN_OBJECT(prog)         (prog)->sys_var[19]
51 #define CREA_OBJECT(prog)           (prog)->sys_var[20]
52 #define DESTR_OBJECT(prog)          (prog)->sys_var[21]
53 #define ORD_OBJECT(prog)            (prog)->sys_var[22]
54 #define IN_OBJECT(prog)             (prog)->sys_var[23]
55 #define DOT_OBJECT(prog)            (prog)->sys_var[24]
56 #define VALUE_OBJECT(prog)          (prog)->sys_var[25]
57 #define PROT_OUTFILE_OBJECT(prog)   (prog)->sys_var[26]
58 #define FLUSH_OBJECT(prog)          (prog)->sys_var[27]
59 #define WRITE_OBJECT(prog)          (prog)->sys_var[28]
60 #define WRLN_OBJECT(prog)           (prog)->sys_var[29]
61 #define MAIN_OBJECT(prog)           (prog)->sys_var[30]
62 
63 #define SYS_EMPTY_OBJECT          EMPTY_OBJECT(prog)
64 #define SYS_MEM_EXCEPTION         MEM_EXCEPTION(prog)
65 #define SYS_NUM_EXCEPTION         NUM_EXCEPTION(prog)
66 #define SYS_OVF_EXCEPTION         OVF_EXCEPTION(prog)
67 #define SYS_RNG_EXCEPTION         RNG_EXCEPTION(prog)
68 #define SYS_IDX_EXCEPTION         IDX_EXCEPTION(prog)
69 #define SYS_FIL_EXCEPTION         FIL_EXCEPTION(prog)
70 #define SYS_DB_EXCEPTION          DB_EXCEPTION(prog)
71 #define SYS_CLOSE_EXCEPTION       CLOSE_EXCEPTION(prog)
72 #define SYS_ACT_ILLEGAL_EXCEPTION ACT_ILLEGAL_EXCEPTION(prog)
73 #define SYS_FALSE_OBJECT          FALSE_OBJECT(prog)
74 #define SYS_TRUE_OBJECT           TRUE_OBJECT(prog)
75 #define SYS_EXPR_TYPE             EXPR_TYPE(prog)
76 #define SYS_INT_TYPE              INT_TYPE(prog)
77 #define SYS_BIGINT_TYPE           BIGINT_TYPE(prog)
78 #define SYS_CHAR_TYPE             CHAR_TYPE(prog)
79 #define SYS_STRI_TYPE             STRI_TYPE(prog)
80 #define SYS_PROC_TYPE             PROC_TYPE(prog)
81 #define SYS_FLT_TYPE              FLT_TYPE(prog)
82 #define SYS_ASSIGN_OBJECT         ASSIGN_OBJECT(prog)
83 #define SYS_CREA_OBJECT           CREA_OBJECT(prog)
84 #define SYS_DESTR_OBJECT          DESTR_OBJECT(prog)
85 #define SYS_ORD_OBJECT            ORD_OBJECT(prog)
86 #define SYS_IN_OBJECT             IN_OBJECT(prog)
87 #define SYS_DOT_OBJECT            DOT_OBJECT(prog)
88 #define SYS_VALUE_OBJECT          VALUE_OBJECT(prog)
89 #define SYS_PROT_OUTFILE_OBJECT   PROT_OUTFILE_OBJECT(prog)
90 #define SYS_FLUSH_OBJECT          FLUSH_OBJECT(prog)
91 #define SYS_WRITE_OBJECT          WRITE_OBJECT(prog)
92 #define SYS_WRLN_OBJECT           WRLN_OBJECT(prog)
93 #define SYS_MAIN_OBJECT           MAIN_OBJECT(prog)
94 
95 
96 int findSysvar (const_striType stri);
97 void init_sysvar (progType aProgram);
98