68 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			68 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
#include "em_parser.h"
 | 
						|
 | 
						|
#define NOSEG		5
 | 
						|
#define UNKNOWN		(-1)
 | 
						|
 | 
						|
 | 
						|
#define TRUE		1
 | 
						|
#define	FALSE		0
 | 
						|
 | 
						|
 | 
						|
#define MAX_ARGS	4
 | 
						|
 | 
						|
/* All the different types of C_INSTR's, based on types of the arguments. */
 | 
						|
#define NO_ARGS		0
 | 
						|
#define C_ARG		1
 | 
						|
#define D_ARG		2
 | 
						|
#define F_ARG		3
 | 
						|
#define L_ARG		4
 | 
						|
#define N_ARG		5
 | 
						|
#define O_ARG		6
 | 
						|
#define R_ARG		7
 | 
						|
#define S_ARG		8
 | 
						|
#define Z_ARG		9
 | 
						|
#define W_ARG		10
 | 
						|
#define EXTERNAL	11
 | 
						|
#define EXTERNAL_DNAM	12
 | 
						|
#define EXTERNAL_DLB	13
 | 
						|
#define P_ARG		14
 | 
						|
#define B_ARG		15
 | 
						|
#define STRING_ARITH	16
 | 
						|
#define BSS_EXT_DNAM	17
 | 
						|
#define BSS_EXT_DLB	18
 | 
						|
#define BSS_STR_AR	19
 | 
						|
#define BSS_W_ARG	20
 | 
						|
#define BSS_PNAM	21
 | 
						|
#define BSS_ILB		22
 | 
						|
#define ID_N_ARG	23
 | 
						|
#define ARITH_ARITH	24
 | 
						|
#define EXT_DNAM 	25
 | 
						|
#define EXT_DLB		26
 | 
						|
#define ONE_INT		27
 | 
						|
#define _STRING		28
 | 
						|
 | 
						|
 | 
						|
typedef struct {
 | 
						|
		char *header;		 /* The declaration of parameters for
 | 
						|
					  * each type of C_INSTR.
 | 
						|
					  */
 | 
						|
		int arg_type[MAX_ARGS];	 /* Type of the $i's after the
 | 
						|
					  * conversions ( extnd_name(), etc.).
 | 
						|
					  */
 | 
						|
		char *arg_id[MAX_ARGS],	 /* Names of the parameters, to be used
 | 
						|
					  * left of the '==>' sign.
 | 
						|
					  */
 | 
						|
		     *arg_conv[MAX_ARGS];/* Names of the parameters, to be used
 | 
						|
					  * right of the '==>' sign.
 | 
						|
					  */
 | 
						|
	} t_C_info;
 | 
						|
 | 
						|
 | 
						|
typedef struct {
 | 
						|
		char *lexeme;
 | 
						|
		int C_instr_type;
 | 
						|
	} t_token;
 | 
						|
 | 
						|
 | 
						|
extern t_C_info C_info[], *C_instr_info;
 | 
						|
extern int storage_default[4][3], segment;
 |