96 lines
		
	
	
	
		
			1.9 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			96 lines
		
	
	
	
		
			1.9 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /* $Header$ */
 | |
| 
 | |
| #include	"tokenname.h"
 | |
| #include	"Lpars.h"
 | |
| #include	"position.h"
 | |
| #include	"file.h"
 | |
| #include	"idf.h"
 | |
| 
 | |
| /*	To centralize the declaration of %tokens, their presence in this
 | |
| 	file is taken as their declaration. The Makefile will produce
 | |
| 	a grammar file (tokenfile.g) from this file. This scheme ensures
 | |
| 	that all tokens have a printable name.
 | |
| 	Also, the "token2str.c" file is produced from this file.
 | |
| */
 | |
| 
 | |
| #if 0
 | |
| struct tokenname tkspec[] =	{	/* the names of the special tokens */
 | |
| 	{NAME, "name"},
 | |
| 	{STRING, "string"},
 | |
| 	{INTEGER, "number"},
 | |
| 	{EXPRESSION, "<expression>"},
 | |
| 	{REAL, "real"},
 | |
| 	{CHAR, "char"},
 | |
| 	{BIN_OP, "<operator>"},
 | |
| 	{PREF_OR_BIN_OP, "<operator>"},
 | |
| 	{PREF_OP, "<operator>"},
 | |
| 	{POST_OP, "<operator>"},
 | |
| 	{SEL_OP, "<operator>"},
 | |
| 	{0, ""}
 | |
| };
 | |
| #endif
 | |
| 
 | |
| struct tokenname tkidf[] =	{	/* names of the identifier tokens */
 | |
| 	{LIST, "list"},
 | |
| 	{XFILE, "file"},
 | |
| 	{RUN, "run"},
 | |
| 	{RERUN, "rerun"},
 | |
| 	{STOP, "stop"},
 | |
| 	{WHEN, "when"},
 | |
| 	{AT, "at"},
 | |
| 	{IN, "in"},
 | |
| 	{ON, "on"},
 | |
| 	{IF, "if"},
 | |
| 	{CONT, "cont"},
 | |
| 	{STEP, "step"},
 | |
| 	{NEXT, "next"},
 | |
| 	{REGS, "regs"},
 | |
| 	{WHERE, "where"},
 | |
| 	{STATUS, "status"},
 | |
| 	{DELETE, "delete"},
 | |
| 	{PRINT, "print"},
 | |
| 	{DUMP, "dump"},
 | |
| 	{RESTORE, "restore"},
 | |
| 	{TRACE, "trace"},
 | |
| 	{SET, "set"},
 | |
| 	{TO, "to"},
 | |
| 	{FIND, "find"},
 | |
| 	{DISPLAY, "display"},
 | |
| 	{WHICH, "which"},
 | |
| 	{HELP, "help"},
 | |
| 	{DISABLE,"disable"},
 | |
| 	{ENABLE,"enable"},
 | |
| 	{SOURCE, "source"},
 | |
| 	{FRAME, "frame"},
 | |
| 	{LOG, "log"},
 | |
| 	{-1, "quit"},
 | |
| 	{0, ""}
 | |
| };
 | |
| 
 | |
| #if 0
 | |
| struct tokenname tkinternal[] = {	/* internal keywords	*/
 | |
| 	{0, "0"}
 | |
| };
 | |
| 
 | |
| struct tokenname tkstandard[] =	{	/* standard identifiers */
 | |
| 	{0, ""}
 | |
| };
 | |
| #endif
 | |
| 
 | |
| /* Some routines to handle tokennames */
 | |
| 
 | |
| reserve(resv)
 | |
| 	register struct tokenname *resv;
 | |
| {
 | |
| 	/*	The names of the tokens described in resv are entered
 | |
| 		as reserved words.
 | |
| 	*/
 | |
| 	register struct idf *p;
 | |
| 
 | |
| 	while (resv->tn_symbol)	{
 | |
| 		p = str2idf(resv->tn_name, 0);
 | |
| 		if (!p) fatal("out of Memory");
 | |
| 		p->id_reserved = resv->tn_symbol;
 | |
| 		resv++;
 | |
| 	}
 | |
| }
 |