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]; +}