Commit | Line | Data |
---|---|---|
f87489ac WJ |
1 | /* const.h: Constants for bc. */ |
2 | ||
3 | /* This file is part of bc written for MINIX. | |
4 | Copyright (C) 1991 Free Software Foundation, Inc. | |
5 | ||
6 | This program is free software; you can redistribute it and/or modify | |
7 | it under the terms of the GNU General Public License as published by | |
8 | the Free Software Foundation; either version 2 of the License , or | |
9 | (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 License | |
17 | along with this program; see the file COPYING. If not, write to | |
18 | the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. | |
19 | ||
20 | You may contact the author by: | |
21 | e-mail: phil@cs.wwu.edu | |
22 | us-mail: Philip A. Nelson | |
23 | Computer Science Department, 9062 | |
24 | Western Washington University | |
25 | Bellingham, WA 98226-9062 | |
26 | ||
27 | *************************************************************************/ | |
28 | ||
29 | ||
30 | /* Define INT_MAX and LONG_MAX if not defined. Assuming 32 bits... */ | |
31 | ||
32 | #ifdef NO_LIMITS | |
33 | #define INT_MAX 0x7FFFFFFF | |
34 | #define LONG_MAX 0x7FFFFFFF | |
35 | #endif | |
36 | ||
37 | ||
38 | /* Define constants in some reasonable size. The next 4 constants are | |
39 | POSIX constants. */ | |
40 | ||
41 | #define BC_BASE_MAX 999 /* No good reason for this value. */ | |
42 | #define BC_SCALE_MAX INT_MAX | |
43 | #define BC_STRING_MAX INT_MAX | |
44 | ||
45 | ||
46 | /* Definitions for arrays. */ | |
47 | ||
48 | #define BC_DIM_MAX 65535 /* this should be NODE_SIZE^NODE_DEPTH-1 */ | |
49 | ||
50 | #define NODE_SIZE 16 /* Must be a power of 2. */ | |
51 | #define NODE_MASK 0xf /* Must be NODE_SIZE-1. */ | |
52 | #define NODE_SHIFT 4 /* Number of 1 bits in NODE_MASK. */ | |
53 | #define NODE_DEPTH 4 | |
54 | ||
55 | ||
56 | /* Other BC limits defined but not part of POSIX. */ | |
57 | ||
58 | #define BC_LABEL_GROUP 64 | |
59 | #define BC_LABEL_LOG 6 | |
60 | #define BC_MAX_SEGS 10 /* Code segments. */ | |
61 | #define BC_SEG_SIZE 1024 | |
62 | #define BC_SEG_LOG 10 | |
63 | ||
64 | /* Maximum number of variables, arrays and functions and the | |
65 | allocation increment for the dynamic arrays. */ | |
66 | ||
67 | #define MAX_STORE 32767 | |
68 | #define STORE_INCR 32 | |
69 | ||
70 | /* Other interesting constants. */ | |
71 | ||
72 | #define FALSE 0 | |
73 | #define TRUE 1 | |
74 | #define SIMPLE 0 | |
75 | #define ARRAY 1 | |
76 | #define FUNCT 2 | |
77 | #define EXTERN extern | |
78 | #ifdef __STDC__ | |
79 | #define CONST const | |
80 | #define VOID void | |
81 | #else | |
82 | #define CONST | |
83 | #define VOID | |
84 | #endif | |
85 | ||
86 | /* Include the version definition. */ | |
87 | #include "version.h" |