diff options
author | Pasha <pasha@member.fsf.org> | 2024-02-20 18:49:50 +0000 |
---|---|---|
committer | Pasha <pasha@member.fsf.org> | 2024-02-20 18:49:50 +0000 |
commit | 5e0b8d508ed51004bd836384293be00950ee62c9 (patch) | |
tree | e3f16b1aa8b7177032ce3ec429fbad2b1d92a876 /ddb/db_lex.h | |
download | gnumach-riscv-5e0b8d508ed51004bd836384293be00950ee62c9.tar.gz gnumach-riscv-5e0b8d508ed51004bd836384293be00950ee62c9.tar.bz2 |
init gnumach copy
Diffstat (limited to 'ddb/db_lex.h')
-rw-r--r-- | ddb/db_lex.h | 99 |
1 files changed, 99 insertions, 0 deletions
diff --git a/ddb/db_lex.h b/ddb/db_lex.h new file mode 100644 index 0000000..f7677df --- /dev/null +++ b/ddb/db_lex.h @@ -0,0 +1,99 @@ +/* + * Mach Operating System + * Copyright (c) 1991,1990 Carnegie Mellon University + * All Rights Reserved. + * + * Permission to use, copy, modify and distribute this software and its + * documentation is hereby granted, provided that both the copyright + * notice and this permission notice appear in all copies of the + * software, derivative works or modified versions, and any portions + * thereof, and that both notices appear in supporting documentation. + * + * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS" + * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR + * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. + * + * Carnegie Mellon requests users of this software to return to + * + * Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU + * School of Computer Science + * Carnegie Mellon University + * Pittsburgh PA 15213-3890 + * + * any improvements or extensions that they make and grant Carnegie Mellon + * the rights to redistribute these changes. + */ +/* + * Author: David B. Golub, Carnegie Mellon University + * Date: 7/90 + */ +/* + * Lexical analyzer. + */ + +#ifndef _DDB_DB_LEX_H_ +#define _DDB_DB_LEX_H_ + +#define TOK_STRING_SIZE 64 +#define DB_LEX_LINE_SIZE 256 + +struct db_lex_context { + int l_char; /* peek char */ + int l_token; /* peek token */ + char *l_ptr; /* line pointer */ + char *l_eptr; /* line end pointer */ +}; + +extern int db_lex(void); +extern int db_read_line(const char *rep_str); +extern void db_flush_line(void); +extern int db_read_char(void); +extern void db_unread_char(int c); +extern int db_read_token(void); +extern void db_unread_token(int t); +extern void db_flush_lex(void); +extern void db_switch_input(char *, int); +extern void db_save_lex_context(struct db_lex_context *); +extern void db_restore_lex_context(const struct db_lex_context *); +extern void db_skip_to_eol(void); + +extern db_expr_t db_tok_number; +extern char db_tok_string[TOK_STRING_SIZE]; +extern db_expr_t db_radix; + +#define tEOF (-1) +#define tEOL 1 +#define tNUMBER 2 +#define tIDENT 3 +#define tPLUS 4 +#define tMINUS 5 +#define tDOT 6 +#define tSTAR 7 +#define tSLASH 8 +#define tEQ 9 +#define tLPAREN 10 +#define tRPAREN 11 +#define tPCT 12 +#define tHASH 13 +#define tCOMMA 14 +#define tQUOTE 15 +#define tDOLLAR 16 +#define tEXCL 17 +#define tSHIFT_L 18 +#define tSHIFT_R 19 +#define tDOTDOT 20 +#define tSEMI_COLON 21 +#define tLOG_EQ 22 +#define tLOG_NOT_EQ 23 +#define tLESS 24 +#define tLESS_EQ 25 +#define tGREATER 26 +#define tGREATER_EQ 27 +#define tBIT_AND 28 +#define tBIT_OR 29 +#define tLOG_AND 30 +#define tLOG_OR 31 +#define tSTRING 32 +#define tQUESTION 33 + +#endif /* _DDB_DB_LEX_H_ */ |