/* * (c) copyright 1987 by the Vrije Universiteit, Amsterdam, The Netherlands. * See the copyright notice in the ACK home directory, in the file "Copyright". */ /* $Id$ */ /* TOKEN NAME DEFINITIONS */ #include "idf.h" #include "arith.h" #include "LLlex.h" #include "Lpars.h" struct tokenname { /* Used for defining the name of a token as identified by its symbol */ int tn_symbol; char *tn_name; }; /* 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. Moreover, rather than looking up a symbol in all these lists to find its printable name, a fast version of symbol2str() is generated from these tables. Consequenty some of these tables are not referenced explicitly in the C text any more. To save space and to avoid lint confusion, these have been made pseudo-invisible by #ifdefs. */ #ifdef ____ struct tokenname tkspec[] = { /* the names of the special tokens */ {IDENTIFIER, "identifier"}, {STRING, "string"}, {FILESPECIFIER, "filespecifier"}, {INTEGER, "integer"}, {0, ""} }; struct tokenname tkcomp[] = { /* names of the composite tokens */ {PLUSAB, "+="}, {MINAB, "-="}, {TIMESAB, "*="}, {DIVAB, "/="}, {MODAB, "%="}, {LEFTAB, "<<="}, {RIGHTAB, ">>="}, {ANDAB, "&="}, {XORAB, "^="}, {ORAB, "|="}, {NOTEQUAL, "!="}, {AND, "&&"}, {PLUSPLUS, "++"}, {MINMIN, "--"}, {ARROW, "->"}, {LEFT, "<<"}, {LESSEQ, "<="}, {EQUAL, "=="}, {GREATEREQ, ">="}, {RIGHT, ">>"}, {OR, "||"}, {ELLIPSIS, "..."}, {0, ""} }; struct tokenname tkfunny[] = { /* internal keywords */ {ERRONEOUS, "erroneous"}, {0, ""} }; #endif /* ____ */