/* * (c) copyright 1987 by the Vrije Universiteit, Amsterdam, The Netherlands. * See the copyright notice in the ACK home directory, in the file "Copyright". * * Author: Ceriel J.H. Jacobs */ /* T O K E N D E F I N I T I O N S */ /* $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"}, {REAL, "real"}, {CHAR, "char"}, {BIN_OP, ""}, {PREF_OR_BIN_OP, ""}, {PREF_OP, ""}, {POST_OP, ""}, {SEL_OP, ""}, {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"}, {-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++; } }