Module Name: src
Committed By: christos
Date: Sun Aug 18 14:10:43 UTC 2024
Modified Files:
src/external/historical/nawk/bin: Makefile
src/external/historical/nawk/bin/awk: Makefile
Added Files:
src/external/historical/nawk/dist: proctab.c
Removed Files:
src/external/historical/nawk/bin/maketab: Makefile Makefile.maketab
Log Message:
remove maketab and go back to using a pre-fabricated proctab.c. Not worth
going all the way an creating a tool for it.
To generate a diff of this commit:
cvs rdiff -u -r1.12 -r1.13 src/external/historical/nawk/bin/Makefile
cvs rdiff -u -r1.2 -r1.3 src/external/historical/nawk/bin/awk/Makefile
cvs rdiff -u -r1.1 -r0 src/external/historical/nawk/bin/maketab/Makefile \
src/external/historical/nawk/bin/maketab/Makefile.maketab
cvs rdiff -u -r0 -r1.8 src/external/historical/nawk/dist/proctab.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/external/historical/nawk/bin/Makefile
diff -u src/external/historical/nawk/bin/Makefile:1.12 src/external/historical/nawk/bin/Makefile:1.13
--- src/external/historical/nawk/bin/Makefile:1.12 Sat Aug 17 18:22:28 2024
+++ src/external/historical/nawk/bin/Makefile Sun Aug 18 10:10:42 2024
@@ -1,7 +1,7 @@
-# $NetBSD: Makefile,v 1.12 2024/08/17 22:22:28 christos Exp $
+# $NetBSD: Makefile,v 1.13 2024/08/18 14:10:42 christos Exp $
.include <bsd.own.mk>
-SUBDIR = maketab .WAIT awk
+SUBDIR = awk
.include <bsd.subdir.mk>
Index: src/external/historical/nawk/bin/awk/Makefile
diff -u src/external/historical/nawk/bin/awk/Makefile:1.2 src/external/historical/nawk/bin/awk/Makefile:1.3
--- src/external/historical/nawk/bin/awk/Makefile:1.2 Sat Aug 17 19:21:55 2024
+++ src/external/historical/nawk/bin/awk/Makefile Sun Aug 18 10:10:43 2024
@@ -1,19 +1,10 @@
-# $NetBSD: Makefile,v 1.2 2024/08/17 23:21:55 mrg Exp $
+# $NetBSD: Makefile,v 1.3 2024/08/18 14:10:43 christos Exp $
WARNS?= 4
CWARNFLAGS.clang+= -Wno-self-assign
.include <bsd.own.mk>
-.if !defined(HOSTPROG)
-MAKETABDIR != cd ${.CURDIR}/../maketab && ${PRINTOBJDIR}
-MAKETAB = ${MAKETABDIR}/maketab
-.else
-MAKETABDIR != cd ${NETBSDSRCDIR}/tools/maketab && ${PRINTOBJDIR}
-MAKETAB = ${MAKETABDIR}/${_TOOL_PREFIX}maketab
-.endif
-
-
BINDIR?= /usr/bin
DIST= ${.CURDIR}/../../dist
.PATH: ${DIST}
@@ -44,9 +35,4 @@ TEXINFO= awk.info
.include <bsd.info.mk>
.endif
-proctab.c: ${MAKETAB} awkgram.h
- ${.ALLSRC} > ${.TARGET}
-
-CLEANFILES += proctab.c
-
.include <bsd.prog.mk>
Added files:
Index: src/external/historical/nawk/dist/proctab.c
diff -u /dev/null src/external/historical/nawk/dist/proctab.c:1.8
--- /dev/null Sun Aug 18 10:10:43 2024
+++ src/external/historical/nawk/dist/proctab.c Sun Aug 18 10:10:43 2024
@@ -0,0 +1,213 @@
+#include <stdio.h>
+#include "awk.h"
+#include "awkgram.h"
+
+static const char * const printname[96] = {
+ "FIRSTTOKEN", /* 257 */
+ "PROGRAM", /* 258 */
+ "PASTAT", /* 259 */
+ "PASTAT2", /* 260 */
+ "XBEGIN", /* 261 */
+ "XEND", /* 262 */
+ "NL", /* 263 */
+ "ARRAY", /* 264 */
+ "MATCH", /* 265 */
+ "NOTMATCH", /* 266 */
+ "MATCHOP", /* 267 */
+ "FINAL", /* 268 */
+ "DOT", /* 269 */
+ "ALL", /* 270 */
+ "CCL", /* 271 */
+ "NCCL", /* 272 */
+ "CHAR", /* 273 */
+ "OR", /* 274 */
+ "STAR", /* 275 */
+ "QUEST", /* 276 */
+ "PLUS", /* 277 */
+ "EMPTYRE", /* 278 */
+ "ZERO", /* 279 */
+ "AND", /* 280 */
+ "BOR", /* 281 */
+ "APPEND", /* 282 */
+ "EQ", /* 283 */
+ "GE", /* 284 */
+ "GT", /* 285 */
+ "LE", /* 286 */
+ "LT", /* 287 */
+ "NE", /* 288 */
+ "IN", /* 289 */
+ "ARG", /* 290 */
+ "BLTIN", /* 291 */
+ "BREAK", /* 292 */
+ "CLOSE", /* 293 */
+ "CONTINUE", /* 294 */
+ "DELETE", /* 295 */
+ "DO", /* 296 */
+ "EXIT", /* 297 */
+ "FOR", /* 298 */
+ "FUNC", /* 299 */
+ "GENSUB", /* 300 */
+ "SUB", /* 301 */
+ "GSUB", /* 302 */
+ "IF", /* 303 */
+ "INDEX", /* 304 */
+ "LSUBSTR", /* 305 */
+ "MATCHFCN", /* 306 */
+ "NEXT", /* 307 */
+ "NEXTFILE", /* 308 */
+ "ADD", /* 309 */
+ "MINUS", /* 310 */
+ "MULT", /* 311 */
+ "DIVIDE", /* 312 */
+ "MOD", /* 313 */
+ "ASSIGN", /* 314 */
+ "ASGNOP", /* 315 */
+ "ADDEQ", /* 316 */
+ "SUBEQ", /* 317 */
+ "MULTEQ", /* 318 */
+ "DIVEQ", /* 319 */
+ "MODEQ", /* 320 */
+ "POWEQ", /* 321 */
+ "PRINT", /* 322 */
+ "PRINTF", /* 323 */
+ "SPRINTF", /* 324 */
+ "ELSE", /* 325 */
+ "INTEST", /* 326 */
+ "CONDEXPR", /* 327 */
+ "POSTINCR", /* 328 */
+ "PREINCR", /* 329 */
+ "POSTDECR", /* 330 */
+ "PREDECR", /* 331 */
+ "VAR", /* 332 */
+ "IVAR", /* 333 */
+ "VARNF", /* 334 */
+ "CALL", /* 335 */
+ "NUMBER", /* 336 */
+ "STRING", /* 337 */
+ "REGEXPR", /* 338 */
+ "GETLINE", /* 339 */
+ "RETURN", /* 340 */
+ "SPLIT", /* 341 */
+ "SUBSTR", /* 342 */
+ "WHILE", /* 343 */
+ "CAT", /* 344 */
+ "NOT", /* 345 */
+ "UMINUS", /* 346 */
+ "UPLUS", /* 347 */
+ "POWER", /* 348 */
+ "DECR", /* 349 */
+ "INCR", /* 350 */
+ "INDIRECT", /* 351 */
+ "LASTTOKEN", /* 352 */
+};
+
+
+Cell *(*proctab[96])(Node **, int) = {
+ nullproc, /* FIRSTTOKEN */
+ program, /* PROGRAM */
+ pastat, /* PASTAT */
+ dopa2, /* PASTAT2 */
+ nullproc, /* XBEGIN */
+ nullproc, /* XEND */
+ nullproc, /* NL */
+ array, /* ARRAY */
+ matchop, /* MATCH */
+ matchop, /* NOTMATCH */
+ nullproc, /* MATCHOP */
+ nullproc, /* FINAL */
+ nullproc, /* DOT */
+ nullproc, /* ALL */
+ nullproc, /* CCL */
+ nullproc, /* NCCL */
+ nullproc, /* CHAR */
+ nullproc, /* OR */
+ nullproc, /* STAR */
+ nullproc, /* QUEST */
+ nullproc, /* PLUS */
+ nullproc, /* EMPTYRE */
+ nullproc, /* ZERO */
+ boolop, /* AND */
+ boolop, /* BOR */
+ nullproc, /* APPEND */
+ relop, /* EQ */
+ relop, /* GE */
+ relop, /* GT */
+ relop, /* LE */
+ relop, /* LT */
+ relop, /* NE */
+ instat, /* IN */
+ arg, /* ARG */
+ bltin, /* BLTIN */
+ jump, /* BREAK */
+ closefile, /* CLOSE */
+ jump, /* CONTINUE */
+ awkdelete, /* DELETE */
+ dostat, /* DO */
+ jump, /* EXIT */
+ forstat, /* FOR */
+ nullproc, /* FUNC */
+ gensub, /* GENSUB */
+ dosub, /* SUB */
+ dosub, /* GSUB */
+ ifstat, /* IF */
+ sindex, /* INDEX */
+ nullproc, /* LSUBSTR */
+ matchop, /* MATCHFCN */
+ jump, /* NEXT */
+ jump, /* NEXTFILE */
+ arith, /* ADD */
+ arith, /* MINUS */
+ arith, /* MULT */
+ arith, /* DIVIDE */
+ arith, /* MOD */
+ assign, /* ASSIGN */
+ nullproc, /* ASGNOP */
+ assign, /* ADDEQ */
+ assign, /* SUBEQ */
+ assign, /* MULTEQ */
+ assign, /* DIVEQ */
+ assign, /* MODEQ */
+ assign, /* POWEQ */
+ printstat, /* PRINT */
+ awkprintf, /* PRINTF */
+ awksprintf, /* SPRINTF */
+ nullproc, /* ELSE */
+ intest, /* INTEST */
+ condexpr, /* CONDEXPR */
+ incrdecr, /* POSTINCR */
+ incrdecr, /* PREINCR */
+ incrdecr, /* POSTDECR */
+ incrdecr, /* PREDECR */
+ nullproc, /* VAR */
+ nullproc, /* IVAR */
+ getnf, /* VARNF */
+ call, /* CALL */
+ nullproc, /* NUMBER */
+ nullproc, /* STRING */
+ nullproc, /* REGEXPR */
+ awkgetline, /* GETLINE */
+ jump, /* RETURN */
+ split, /* SPLIT */
+ substr, /* SUBSTR */
+ whilestat, /* WHILE */
+ cat, /* CAT */
+ boolop, /* NOT */
+ arith, /* UMINUS */
+ arith, /* UPLUS */
+ arith, /* POWER */
+ nullproc, /* DECR */
+ nullproc, /* INCR */
+ indirect, /* INDIRECT */
+ nullproc, /* LASTTOKEN */
+};
+
+const char *tokname(int n)
+{
+ static char buf[100];
+
+ if (n < FIRSTTOKEN || n > LASTTOKEN) {
+ snprintf(buf, sizeof(buf), "token %d", n);
+ return buf;
+ }
+ return printname[n-FIRSTTOKEN];
+}