123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114 |
- /*
- * (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 */
- /* $Id$ */
- #include "tokenname.h"
- #include "Lpars.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.
- */
- #ifdef ___XXX___
- struct tokenname tkspec[] = { /* the names of the special tokens */
- {IDENT, "identifier"},
- {STRING, "string"},
- {INTEGER, "number"},
- {REAL, "real"},
- {0, ""}
- };
- struct tokenname tkcomp[] = { /* names of the composite tokens */
- {LESSEQUAL, "<="},
- {GREATEREQUAL, ">="},
- {UPTO, ".."},
- {BECOMES, ":="},
- {0, ""}
- };
- #endif
- struct tokenname tkidf[] = { /* names of the identifier tokens */
- {AND, "AND"},
- {ARRAY, "ARRAY"},
- {BEGIN, "BEGIN"},
- {BY, "BY"},
- {CASE, "CASE"},
- {CONST, "CONST"},
- {DEFINITION, "DEFINITION"},
- {DIV, "DIV"},
- {DO, "DO"},
- {ELSE, "ELSE"},
- {ELSIF, "ELSIF"},
- {END, "END"},
- {EXIT, "EXIT"},
- {EXPORT, "EXPORT"},
- {FOR, "FOR"},
- {FROM, "FROM"},
- {IF, "IF"},
- {IMPLEMENTATION, "IMPLEMENTATION"},
- {IMPORT, "IMPORT"},
- {IN, "IN"},
- {LOOP, "LOOP"},
- {MOD, "MOD"},
- {MODULE, "MODULE"},
- {NOT, "NOT"},
- {OF, "OF"},
- {OR, "OR"},
- {POINTER, "POINTER"},
- {PROCEDURE, "PROCEDURE"},
- {QUALIFIED, "QUALIFIED"},
- {RECORD, "RECORD"},
- {REPEAT, "REPEAT"},
- {RETURN, "RETURN"},
- {SET, "SET"},
- {THEN, "THEN"},
- {TO, "TO"},
- {TYPE, "TYPE"},
- {UNTIL, "UNTIL"},
- {VAR, "VAR"},
- {WHILE, "WHILE"},
- {WITH, "WITH"},
- {0, ""}
- };
- #ifdef ___XXX___
- struct tokenname tkinternal[] = { /* internal keywords */
- {PROGRAM, ""},
- {COERCION, ""},
- {CAST, ""},
- {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 t_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++;
- }
- }
|