|
|
1.1 ! root 1: #ifndef SYMBOL_H ! 2: #define SYMBOL_H ! 3: ! 4: /* ! 5: *-IMPORTS: ! 6: * <sys/compat.h> ! 7: * CONST ! 8: * EXTERN_C_BEGIN ! 9: * EXTERN_C_END ! 10: * PROTO () ! 11: * <stddef.h> ! 12: * size_t ! 13: */ ! 14: ! 15: #include <sys/compat.h> ! 16: #include <stddef.h> ! 17: ! 18: ! 19: /* ! 20: * Don't pull in the other application #includes. ! 21: */ ! 22: ! 23: #ifndef BUILD_T ! 24: #define BUILD_T ! 25: typedef struct builder build_t; ! 26: #endif ! 27: ! 28: #ifndef INPUT_T ! 29: #define INPUT_T ! 30: typedef struct input input_t; ! 31: #endif ! 32: ! 33: #ifndef SYMBOL_T ! 34: #define SYMBOL_T ! 35: typedef struct symbol symbol_t; ! 36: #endif ! 37: ! 38: #ifndef LEX_T ! 39: #define LEX_T ! 40: typedef struct lexinfo lex_t; ! 41: #endif ! 42: ! 43: #ifndef TOKEN_T ! 44: #define TOKEN_T ! 45: typedef struct token token_t; ! 46: #endif ! 47: ! 48: ! 49: /* ! 50: * This is the structure tokens are built into. ! 51: */ ! 52: ! 53: struct symbol { ! 54: symbol_t * s_next; /* next symbol */ ! 55: CONST unsigned char ! 56: * s_data; /* octets occupied by symbol data */ ! 57: size_t s_size; /* length of symbol data */ ! 58: }; ! 59: ! 60: ! 61: /* ! 62: * Alternate EOF character so our clients don't have to pull in <stdio.h>, ! 63: * should be the same as READ_EOF and IN_EOF. ! 64: */ ! 65: ! 66: #define SYM_EOF -1 ! 67: ! 68: ! 69: typedef int (* dev_func_p) PROTO ((input_t * _input, lex_t * _lexp, ! 70: VOID * _extra)); ! 71: ! 72: ! 73: EXTERN_C_BEGIN ! 74: ! 75: int symbol_init PROTO ((void)); ! 76: ! 77: void read_dev_file PROTO ((CONST char * _inname, ! 78: CONST char * _outname, ! 79: dev_func_p _devfuncp, VOID * extra)); ! 80: void read_dev_string PROTO ((CONST char * _string, ! 81: dev_func_p _devfuncp, VOID * extra)); ! 82: int read_symbol PROTO ((input_t * _input, lex_t * _lexp, ! 83: symbol_t ** _sym)); ! 84: symbol_t * sym_intern PROTO ((token_t * tok)); ! 85: symbol_t * sym_find PROTO ((CONST unsigned char * data, ! 86: size_t len)); ! 87: symbol_t * string_to_symbol PROTO ((CONST unsigned char * str, ! 88: size_t len)); ! 89: ! 90: EXTERN_C_END ! 91: ! 92: #endif /* ! defined (SYMBOL_H) */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.