Pristine Ack-5.5
[Ack-5.5.git] / util / ceg / EM_parser / common / decl.h
1 #include "em_parser.h"
2
3 #define NOSEG           5
4 #define UNKNOWN         (-1)
5
6
7 #define TRUE            1
8 #define FALSE           0
9
10
11 #define MAX_ARGS        4
12
13 /* All the different types of C_INSTR's, based on types of the arguments. */
14 #define NO_ARGS         0
15 #define C_ARG           1
16 #define D_ARG           2
17 #define F_ARG           3
18 #define L_ARG           4
19 #define N_ARG           5
20 #define O_ARG           6
21 #define R_ARG           7
22 #define S_ARG           8
23 #define Z_ARG           9
24 #define W_ARG           10
25 #define EXTERNAL        11
26 #define EXTERNAL_DNAM   12
27 #define EXTERNAL_DLB    13
28 #define P_ARG           14
29 #define B_ARG           15
30 #define STRING_ARITH    16
31 #define BSS_EXT_DNAM    17
32 #define BSS_EXT_DLB     18
33 #define BSS_STR_AR      19
34 #define BSS_W_ARG       20
35 #define BSS_PNAM        21
36 #define BSS_ILB         22
37 #define ID_N_ARG        23
38 #define ARITH_ARITH     24
39 #define EXT_DNAM        25
40 #define EXT_DLB         26
41 #define ONE_INT         27
42 #define _STRING         28
43
44
45 typedef struct {
46                 char *header;            /* The declaration of parameters for
47                                           * each type of C_INSTR.
48                                           */
49                 int arg_type[MAX_ARGS];  /* Type of the $i's after the
50                                           * conversions ( extnd_name(), etc.).
51                                           */
52                 char *arg_id[MAX_ARGS],  /* Names of the parameters, to be used
53                                           * left of the '==>' sign.
54                                           */
55                      *arg_conv[MAX_ARGS];/* Names of the parameters, to be used
56                                           * right of the '==>' sign.
57                                           */
58         } t_C_info;
59
60
61 typedef struct {
62                 char *lexeme;
63                 int C_instr_type;
64         } t_token;
65
66
67 extern t_C_info C_info[], *C_instr_info;
68 extern int storage_default[4][3], segment;