Pristine Ack-5.5
[Ack-5.5.git] / util / grind / make.tokcase
1 cat <<'--EOT--'
2 /* Generated by make.tokcase */
3 /* $Id: make.tokcase,v 1.2 1994/06/24 11:00:22 ceriel Exp $ */
4 #include "Lpars.h"
5
6 char *
7 symbol2str(tok)
8         int tok;
9 {
10 #define SIZBUF  8
11         /* allow for a few invocations in f.i. an argument list */
12         static char buf[SIZBUF] = { '\'', 0, '\'', 0, '\'', 0, '\'', 0};
13         static int index = 1;
14
15         switch (tok) {
16 --EOT--
17
18 sed '
19 /{[A-Z]/!d
20 s/.*{\(.*\),.*\(".*"\).*$/      case \1 :\
21                 return \2;/
22 '
23
24 cat <<'--EOT--'
25         default:
26                 if (tok <= 0) return "end of file";
27                 if (tok == '\n') return "<newline>";
28                 if (tok < 040 || tok >= 0177) {
29                         return "bad token";
30                 }
31                 index = (index+4) & (SIZBUF-1);
32                 buf[index] = tok;
33                 return &buf[index-1];
34         }
35 }
36 --EOT--