a68g-enums.h
1 //! @file a68g-enums.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 [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 #if !defined (__A68G_ENUMS_H__)
23 #define __A68G_ENUMS_H__
24
25 // Enumerated constants
26
27 enum
28 { UPPER_STROPPING = 1, QUOTE_STROPPING };
29
30 enum
31 {
32 NO_OPTIMISE = 0,
33 OPTIMISE_0,
34 OPTIMISE_1,
35 OPTIMISE_2,
36 OPTIMISE_3,
37 OPTIMISE_FAST,
38 };
39
40 enum
41 {
42 STOP = 0,
43 A68_PATTERN,
44 ACCO_SYMBOL,
45 ACTUAL_DECLARER_MARK,
46 ALIF_IF_PART, ALIF_PART, ALIF_SYMBOL,
47 ALT_DO_PART, ALT_DO_SYMBOL, ALT_EQUALS_SYMBOL, ALT_FORMAL_BOUNDS_LIST,
48 ANDF_SYMBOL,
49 AND_FUNCTION,
50 ANONYMOUS,
51 ARGUMENT, ARGUMENT_LIST,
52 ASSERTION, ASSERT_SYMBOL,
53 ASSIGNATION, ASSIGN_SYMBOL, ASSIGN_TO_SYMBOL,
54 AT_SYMBOL,
55 BEGIN_SYMBOL,
56 BITS_C_PATTERN, BITS_DENOTATION, BITS_PATTERN, BITS_SYMBOL,
57 BOLD_COMMENT_SYMBOL, BOLD_PRAGMAT_SYMBOL, BOLD_TAG,
58 BOOLEAN_PATTERN,
59 BOOL_SYMBOL,
60 BOUND, BOUNDS, BOUNDS_LIST,
61 BRIEF_OUSE_PART, BRIEF_CONFORMITY_OUSE_PART, BRIEF_ELIF_PART, BRIEF_OPERATOR_DECLARATION,
62 BUS_SYMBOL,
63 BYTES_SYMBOL,
64 BY_PART, BY_SYMBOL,
65 CALL,
66 CASE_CHOICE_CLAUSE, CASE_CLAUSE, CASE_IN_PART, CASE_OUSE_PART, CASE_PART, CASE_SYMBOL, CAST,
67 CHANNEL_SYMBOL,
68 CHAR_C_PATTERN, CHAR_SYMBOL,
69 CHOICE, CHOICE_PATTERN,
70 CLASS_SYMBOL,
71 CLOSED_CLAUSE,
72 CLOSE_SYMBOL,
73 CODE_CLAUSE, CODE_LIST, CODE_SYMBOL,
74 COLLATERAL_CLAUSE,
75 COLLECTION,
76 COLON_SYMBOL,
77 COLUMN_FUNCTION, COLUMN_SYMBOL,
78 COMMA_SYMBOL,
79 COMPLEX_PATTERN, COMPLEX_SYMBOL, COMPL_SYMBOL,
80 CONDITIONAL_CLAUSE,
81 CONFORMITY_CHOICE, CONFORMITY_CLAUSE, CONFORMITY_IN_PART, CONFORMITY_OUSE_PART,
82 CONSTRUCT,
83 DECLARATION_LIST, DECLARER,
84 DEFINING_IDENTIFIER, DEFINING_INDICANT, DEFINING_OPERATOR,
85 DENOTATION,
86 DEPROCEDURING,
87 DEREFERENCING,
88 DIAGONAL_FUNCTION, DIAGONAL_SYMBOL,
89 DOTDOT_SYMBOL,
90 DOWNTO_SYMBOL,
91 DO_PART, DO_SYMBOL,
92 DYNAMIC_REPLICATOR,
93 EDOC_SYMBOL,
94 ELIF_IF_PART, ELIF_PART, ELIF_SYMBOL,
95 ELSE_BAR_SYMBOL, ELSE_OPEN_PART, ELSE_PART, ELSE_SYMBOL,
96 EMPTY_SYMBOL,
97 ENCLOSED_CLAUSE,
98 END_SYMBOL,
99 ENQUIRY_CLAUSE,
100 ENVIRON_NAME, ENVIRON_SYMBOL,
101 EQUALS_SYMBOL,
102 ERROR,
103 ERROR_IDENTIFIER,
104 ESAC_SYMBOL,
105 EXIT_SYMBOL,
106 EXPONENT_FRAME,
107 FALSE_SYMBOL,
108 FIELD, FIELD_IDENTIFIER,
109 FILE_SYMBOL,
110 FIRM,
111 FIXED_C_PATTERN,
112 FI_SYMBOL,
113 FLEX_SYMBOL,
114 FLOAT_C_PATTERN,
115 FORMAL_BOUNDS, FORMAL_BOUNDS_LIST,
116 FORMAL_DECLARERS, FORMAL_DECLARERS_LIST, FORMAL_DECLARER_MARK,
117 FORMAT_CLOSE_SYMBOL,
118 FORMAT_DELIMITER_SYMBOL,
119 FORMAT_IDENTIFIER,
120 FORMAT_A_FRAME, FORMAT_D_FRAME, FORMAT_E_FRAME, FORMAT_I_FRAME,
121 FORMAT_ITEM_A, FORMAT_ITEM_B, FORMAT_ITEM_C, FORMAT_ITEM_D,
122 FORMAT_ITEM_E, FORMAT_ITEM_F, FORMAT_ITEM_G, FORMAT_ITEM_H,
123 FORMAT_ITEM_I, FORMAT_ITEM_J, FORMAT_ITEM_K, FORMAT_ITEM_L,
124 FORMAT_ITEM_M, FORMAT_ITEM_N, FORMAT_ITEM_O, FORMAT_ITEM_P,
125 FORMAT_ITEM_Q, FORMAT_ITEM_R, FORMAT_ITEM_S, FORMAT_ITEM_T,
126 FORMAT_ITEM_U, FORMAT_ITEM_V, FORMAT_ITEM_W, FORMAT_ITEM_X,
127 FORMAT_ITEM_Y, FORMAT_ITEM_Z,
128 FORMAT_ITEM_ESCAPE, FORMAT_ITEM_MINUS, FORMAT_ITEM_PLUS, FORMAT_ITEM_POINT,
129 FORMAT_OPEN_SYMBOL, FORMAT_PATTERN, FORMAT_POINT_FRAME, FORMAT_SYMBOL, FORMAT_TEXT, FORMAT_Z_FRAME,
130 FORMULA,
131 FOR_PART, FOR_SYMBOL,
132 FROM_PART, FROM_SYMBOL,
133 GENERAL_C_PATTERN, GENERAL_PATTERN,
134 GENERATOR,
135 GENERIC_ARGUMENT, GENERIC_ARGUMENT_LIST,
136 GOTO_SYMBOL, GO_SYMBOL,
137 GUARDED_CONDITIONAL_CLAUSE, GUARDED_LOOP_CLAUSE,
138 HEAP_SYMBOL,
139 IDENTIFIER, IDENTITY_DECLARATION, IDENTITY_RELATION,
140 IF_PART, IF_SYMBOL,
141 INDICANT,
142 INITIALISER_SERIES,
143 INSERTION,
144 INTEGRAL_C_PATTERN, INTEGRAL_MOULD, INTEGRAL_PATTERN,
145 INT_DENOTATION, INT_SYMBOL,
146 IN_SYMBOL,
147 IN_TYPE_MODE,
148 ISNT_SYMBOL, IS_SYMBOL,
149 JUMP,
150 KEYWORD,
151 LABEL, LABELED_UNIT, LABEL_IDENTIFIER, LABEL_SEQUENCE,
152 LITERAL,
153 LOCAL_LABEL,
154 LOC_SYMBOL,
155 LONGETY, LONG_SYMBOL,
156 LOOP_CLAUSE, LOOP_IDENTIFIER,
157 MAIN_SYMBOL,
158 MEEK,
159 MODE_BITS, MODE_BOOL, MODE_BYTES, MODE_CHAR,
160 MODE_COMPLEX, MODE_DECLARATION, MODE_FILE, MODE_FORMAT,
161 MODE_INT, MODE_LONG_LONG_BITS, MODE_LONG_LONG_COMPLEX, MODE_LONG_LONG_INT,
162 MODE_LONG_LONG_REAL, MODE_LONG_BITS, MODE_LONG_BYTES, MODE_LONG_COMPLEX,
163 MODE_LONG_INT, MODE_LONG_REAL, MODE_NO_CHECK, MODE_PIPE,
164 MODE_REAL, MODE_SOUND,
165 MODE_SYMBOL,
166 MONADIC_FORMULA, MONAD_SEQUENCE,
167 NEW_SYMBOL,
168 NIHIL, NIL_SYMBOL,
169 NORMAL_IDENTIFIER,
170 NO_SORT,
171 OCCA_SYMBOL,
172 OD_SYMBOL,
173 OF_SYMBOL,
174 OPEN_PART, OPEN_SYMBOL,
175 OPERATOR, OPERATOR_DECLARATION, OPERATOR_PLAN, OP_SYMBOL,
176 ORF_SYMBOL,
177 OR_FUNCTION,
178 OUSE_PART, OUSE_SYMBOL,
179 OUT_PART, OUT_SYMBOL,
180 OUT_TYPE_MODE,
181 PARALLEL_CLAUSE,
182 PARAMETER, PARAMETER_IDENTIFIER, PARAMETER_LIST, PARAMETER_PACK,
183 PARTICULAR_PROGRAM,
184 PAR_SYMBOL,
185 PICTURE, PICTURE_LIST,
186 PIPE_SYMBOL,
187 POINT_SYMBOL,
188 PRIMARY,
189 PRIORITY, PRIORITY_DECLARATION, PRIO_SYMBOL,
190 PROCEDURE_DECLARATION, PROCEDURE_VARIABLE_DECLARATION, PROCEDURING, PROC_SYMBOL,
191 QUALIFIER,
192 RADIX_FRAME,
193 REAL_DENOTATION, REAL_PATTERN, REAL_SYMBOL, REF_SYMBOL,
194 REPLICATOR,
195 ROUTINE_TEXT, ROUTINE_UNIT,
196 ROWING,
197 ROWS_SYMBOL,
198 ROW_CHAR_DENOTATION,
199 ROW_FUNCTION,
200 ROW_SYMBOL,
201 SECONDARY,
202 SELECTION, SELECTOR,
203 SEMA_SYMBOL,
204 SEMI_SYMBOL,
205 SERIAL_CLAUSE,
206 SERIES_MODE,
207 SHORTETY, SHORT_SYMBOL,
208 SIGN_MOULD,
209 SKIP,
210 SKIP_SYMBOL,
211 SLICE,
212 SOFT,
213 SOME_CLAUSE,
214 SOUND_SYMBOL,
215 SPECIFICATION, SPECIFIED_UNIT, SPECIFIED_UNIT_LIST, SPECIFIED_UNIT_UNIT, SPECIFIER, SPECIFIER_IDENTIFIER,
216 STANDARD,
217 STATIC_REPLICATOR,
218 STOWED_MODE,
219 STRING_C_PATTERN, STRING_PATTERN, STRING_SYMBOL,
220 STRONG,
221 STRUCTURED_FIELD, STRUCTURED_FIELD_LIST, STRUCTURE_PACK, STRUCT_SYMBOL,
222 STYLE_II_COMMENT_SYMBOL,
223 STYLE_I_COMMENT_SYMBOL,
224 STYLE_I_PRAGMAT_SYMBOL,
225 SUB_SYMBOL,
226 SUB_UNIT,
227 TERTIARY,
228 THEN_BAR_SYMBOL, THEN_PART, THEN_SYMBOL,
229 TO_PART, TO_SYMBOL,
230 TRANSPOSE_FUNCTION, TRANSPOSE_SYMBOL,
231 TRIMMER,
232 TRUE_SYMBOL,
233 UNION_DECLARER_LIST, UNION_PACK, UNION_SYMBOL,
234 UNIT,
235 UNITING,
236 UNIT_LIST, UNIT_SERIES,
237 UNTIL_PART, UNTIL_SYMBOL,
238 VARIABLE_DECLARATION,
239 VIRTUAL_DECLARER_MARK,
240 VOIDING, VOID_SYMBOL,
241 WEAK,
242 WHILE_PART, WHILE_SYMBOL,
243 WIDENING,
244 WILDCARD
245 };
246
247 enum
248 {
249 INPUT_BUFFER = 0, OUTPUT_BUFFER, EDIT_BUFFER, UNFORMATTED_BUFFER,
250 FORMATTED_BUFFER, DOMAIN_BUFFER, PATH_BUFFER, REQUEST_BUFFER,
251 CONTENT_BUFFER, STRING_BUFFER, PATTERN_BUFFER, REPLACE_BUFFER,
252 FIXED_TRANSPUT_BUFFERS
253 };
254
255 enum
256 {
257 NO_DEFLEXING = 1, SAFE_DEFLEXING, ALIAS_DEFLEXING, FORCE_DEFLEXING,
258 SKIP_DEFLEXING
259 };
260
261 #endif