lex.h (690B)
1 enum lex_type { 2 UNKNOWN, 3 4 STRING, 5 NAME, 6 NUM, 7 SEMI, 8 PTR, 9 DEREF, 10 UNARRAY, 11 QUOTE, 12 OBRACE, 13 CBRACE, 14 ASSIGN, 15 EQU, 16 NEQ, 17 LT, 18 GT, 19 LTE, 20 GTE, 21 FUNC, 22 COMMA, 23 ADD, 24 SUB, 25 DIV, 26 MUL, 27 BYTE, 28 SHORT, 29 LONG, 30 OCBRACE, 31 CCBRACE, 32 EOI 33 }; 34 35 typedef struct lex_val { 36 enum lex_type type; 37 char *data; 38 } lex_val; 39 40 extern char *input, *startpos, *endpos; 41 extern lex_val *(*nextfn)(void); 42 43 lex_val *lex_type(void); 44 lex_val *lex_number(void); 45 lex_val *lex_assign(void); 46 lex_val *lex_name(void); 47 lex_val *lex_value(void); 48 lex_val *lex_sym(void); 49 lex_val *lex_comma(void); 50 lex_val *lex_semi(void); 51 52 int get_err_len(void); 53 int get_line_num(char *); 54 lex_val *get_next(void); 55 void init_lexer(FILE *);