(symbol_number): Renamed from symbol_number_t.

(struct symbol): Renamed from struct symbol_s.
(symbol): Renamed from symbol_t.
This commit is contained in:
Paul Eggert
2002-12-11 06:53:20 +00:00
parent e39214489e
commit 7486e51b76

View File

@@ -22,9 +22,9 @@
#ifndef SYMTAB_H_ #ifndef SYMTAB_H_
# define SYMTAB_H_ # define SYMTAB_H_
# include "struniq.h"
# include "location.h"
# include "assoc.h" # include "assoc.h"
# include "location.h"
# include "uniqstr.h"
/*----------. /*----------.
| Symbols. | | Symbols. |
@@ -40,34 +40,34 @@ typedef enum
/* Internal token numbers. */ /* Internal token numbers. */
typedef short symbol_number_t; typedef short symbol_number;
#define SYMBOL_NUMBER_MAX ((symbol_number_t) SHRT_MAX) #define SYMBOL_NUMBER_MAXIMUM SHRT_MAX
typedef struct symbol_s symbol_t; typedef struct symbol symbol;
struct symbol_s struct symbol
{ {
/* The key, name of the symbol. */ /* The key, name of the symbol. */
struniq_t tag; uniqstr tag;
/* The location of its first occurence. */ /* The location of its first occurrence. */
location_t location; location location;
/* Its %type and associated printer and destructor. */ /* Its %type and associated printer and destructor. */
struniq_t type_name; uniqstr type_name;
char *destructor; char *destructor;
location_t destructor_location; location destructor_location;
char *printer; char *printer;
location_t printer_location; location printer_location;
symbol_number_t number; symbol_number number;
short prec; short prec;
assoc_t assoc; assoc assoc;
int user_token_number; int user_token_number;
/* Points to the other in the identifier-symbol pair for an alias. /* Points to the other in the identifier-symbol pair for an alias.
Special value USER_NUMBER_ALIAS in the identifier half of the Special value USER_NUMBER_ALIAS in the identifier half of the
identifier-symbol pair for an alias. */ identifier-symbol pair for an alias. */
symbol_t *alias; symbol *alias;
symbol_class class; symbol_class class;
}; };
@@ -81,56 +81,49 @@ struct symbol_s
#define USER_NUMBER_ALIAS -9991 #define USER_NUMBER_ALIAS -9991
/* Undefined internal token number. */ /* Undefined internal token number. */
#define NUMBER_UNDEFINED ((symbol_number_t) -1) #define NUMBER_UNDEFINED ((symbol_number) -1)
/* Fetch (or create) the symbol associated to KEY. */ /* Fetch (or create) the symbol associated to KEY. */
symbol_t *symbol_get (const char *key, location_t location); symbol *symbol_get (const char *key, location loc);
/* Generate a dummy nonterminal, whose name cannot conflict with the /* Generate a dummy nonterminal, whose name cannot conflict with the
user's names. */ user's names. */
symbol_t *dummy_symbol_get (location_t location); symbol *dummy_symbol_get (location loc);
/* Declare the new SYMBOL. Make it an alias of SYMVAL. */ /* Declare the new symbol SYM. Make it an alias of SYMVAL. */
void symbol_make_alias (symbol_t *symbol, symbol_t *symval, void symbol_make_alias (symbol *sym, symbol *symval, location loc);
location_t location);
/* Set the TYPE_NAME associated to SYMBOL. Does nothing if passed 0 as /* Set the TYPE_NAME associated with SYM. Do nothing if passed 0 as
TYPE_NAME. */ TYPE_NAME. */
void symbol_type_set (symbol_t *symbol, void symbol_type_set (symbol *sym, uniqstr type_name, location loc);
struniq_t type_name, location_t location);
/* Set the DESTRUCTOR associated to SYMBOL. */ /* Set the DESTRUCTOR associated with SYM. */
void symbol_destructor_set (symbol_t *symbol, void symbol_destructor_set (symbol *sym, char *destructor, location loc);
char *destructor, location_t location);
/* Set the PRINTER associated to SYMBOL. */ /* Set the PRINTER associated with SYM. */
void symbol_printer_set (symbol_t *symbol, void symbol_printer_set (symbol *sym, char *printer, location loc);
char *printer, location_t location);
/* Set the PRECEDENCE associated to SYMBOL. Ensures that SYMBOL is a /* Set the PRECEDENCE associated with SYM. Ensure that SYMBOL is a
terminal. Does nothing if invoked with UNDEF_ASSOC as ASSOC. */ terminal. Do nothing if invoked with UNDEF_ASSOC as ASSOC. */
void symbol_precedence_set (symbol_t *symbol, void symbol_precedence_set (symbol *sym, int prec, assoc a, location loc);
int prec, assoc_t assoc, location_t location);
/* Set the CLASS associated to SYMBOL. */ /* Set the CLASS associated with SYM. */
void symbol_class_set (symbol_t *symbol, void symbol_class_set (symbol *sym, symbol_class class, location loc);
symbol_class class, location_t location);
/* Set the USER_TOKEN_NUMBER associated to SYMBOL. */ /* Set the USER_TOKEN_NUMBER associated with SYM. */
void symbol_user_token_number_set (symbol_t *symbol, void symbol_user_token_number_set (symbol *sym, int user_number, location loc);
int user_number, location_t location);
/* Distinguished symbols. AXIOM is the real start symbol, that used /* Distinguished symbols. AXIOM is the real start symbol, that used
by the automaton. STARTSYMBOL is the one specified by the user. by the automaton. STARTSYMBOL is the one specified by the user.
*/ */
extern symbol_t *errtoken; extern symbol *errtoken;
extern symbol_t *undeftoken; extern symbol *undeftoken;
extern symbol_t *endtoken; extern symbol *endtoken;
extern symbol_t *accept; extern symbol *accept;
extern symbol_t *startsymbol; extern symbol *startsymbol;
extern location_t startsymbol_location; extern location startsymbol_location;
/*---------------. /*---------------.
@@ -142,7 +135,7 @@ extern location_t startsymbol_location;
void symbols_new (void); void symbols_new (void);
/* A function to apply to each symbol. */ /* A function to apply to each symbol. */
typedef bool (*symbol_processor) (symbol_t *); typedef bool (*symbol_processor) (symbol *);
/* Apply PROCESSOR to all the symbols. PROCESSOR must return true: on /* Apply PROCESSOR to all the symbols. PROCESSOR must return true: on
false, the processing stops. */ false, the processing stops. */