*/
register t_token *dotp = ˙
- error("%s missing", symbol2str(tk));
+ error("%s missing before %s", symbol2str(tk), symbol2str(dotp->tk_symb));
aside = *dotp;
cat <<'--EOT--'
+/* Generated by make.tokcase */
+/* $Header$ */
#include "Lpars.h"
char *
symbol2str(tok)
int tok;
{
- static char buf[2] = { '\0', '\0' };
+#define SIZBUF 8
+ /* allow for a few invocations in f.i. an argument list */
+ static char buf[SIZBUF];
+ static int index;
- if (040 <= tok && tok < 0177) {
- buf[0] = tok;
- buf[1] = '\0';
- return buf;
- }
switch (tok) {
--EOT--
+
sed '
/{[A-Z]/!d
s/.*{\(.*\),.*\(".*"\).*$/ case \1 :\
return \2;/
'
+
cat <<'--EOT--'
+ default:
+ if (tok <= 0) return "end of file";
+ if (tok < 040 || tok >= 0177) {
+ return "bad token";
+ }
+ /* fall through */
case '\n':
case '\f':
case '\v':
case '\r':
case '\t':
- buf[0] = tok;
- return buf;
- default:
- return "bad token";
+ index = (index+2) & (SIZBUF-1);
+ buf[index] = tok;
+ return &buf[index];
}
}
--EOT--
if (tk > 0) {
/* if (tk > 0), it represents the token to be inserted.
*/
- register struct token *dotp = ˙
+ error("%s missing before %s", symbol2str(tk), symbol2str(dot.tk_symb));
- error("%s missing", symbol2str(tk));
+ aside = dot;
- aside = *dotp;
-
- dotp->tk_symb = tk;
+ dot.tk_symb = tk;
switch (tk) {
/* The operands need some body */
case IDENT:
- dotp->TOK_IDF = gen_anon_idf();
+ dot.TOK_IDF = gen_anon_idf();
break;
}
}
cat <<'--EOT--'
+/* Generated by make.tokcase */
+/* $Header$ */
#include "Lpars.h"
char *
symbol2str(tok)
int tok;
{
- static char buf[2] = { '\0', '\0' };
+#define SIZBUF 8
+ /* allow for a few invocations in f.i. an argument list */
+ static char buf[SIZBUF];
+ static int index;
- if (040 <= tok && tok < 0177) {
- buf[0] = tok;
- buf[1] = '\0';
- return buf;
- }
switch (tok) {
--EOT--
+
sed '
/{[A-Z]/!d
s/.*{\(.*\),.*\(".*"\).*$/ case \1 :\
return \2;/
'
+
cat <<'--EOT--'
+ default:
+ if (tok <= 0) return "end of file";
+ if (tok < 040 || tok >= 0177) {
+ return "bad token";
+ }
+ /* fall through */
case '\n':
case '\f':
case '\v':
case '\r':
case '\t':
- buf[0] = tok;
- return buf;
- default:
- return "bad token";
+ index = (index+2) & (SIZBUF-1);
+ buf[index] = tok;
+ return &buf[index];
}
}
--EOT--