www.pudn.com > ASM86_64.rar > lable.h


#ifndef _LABLE_H_
#define _LABLE_H_

/* lable and variable link struct */
struct token {
	char *name;
	unsigned long long address;
	unsigned long line;
};


struct token_link {
	struct token *token;
	struct token_link *next, *prev;
};

/* indicate the lable direction of pc-relative instruction */
enum lable_direction {
	LABLE_UNKNOWN,
	LABLE_THIS,
	LABLE_UP,
	LABLE_DOWN
};

/* encode hole */
struct encode_hole {
	enum lable_direction direction;
	struct encode_hole *next, *prev;
};



struct token_link *lable_table;
struct token_link *var_table;

struct token_link *tail_lable_table;
struct token_link *head_lable_table;
struct token_link *tail_var_table;
struct token_link *head_var_table;

/*
struct token_link *get_lable_table();
struct token_link *get_var_table();

*/
int is_free_sym(char *s);
int is_lable(char *s);
int is_variable(char *s);
int is_valid_sym(char *s);


#endif