5965fd777b
* Works fine under Debian GNU/Linux 7.4, NetBSD/amd64 6.99.36 * Merge pkgsrc specific changes Changelog: Dec 20, 2012: fiddled makefile to get correct yacc and bison flags. pick yacc (linux) or bison (mac) as necessary. added __attribute__((__noreturn__)) to a couple of lines in proto.h, to silence someone's enthusiastic checker. fixed obscure call by value bug in split(a[1],a) reported on 9fans. the management of temporary values is just a mess; i took a shortcut by making an extra string copy. thanks to paul patience and arnold robbins for passing it on and for proposed patches. tiny fiddle in setfval to eliminate -0 results in T.expr, which has irritated me for 20+ years. Aug 10, 2011: another fix to avoid core dump with delete(ARGV); again, many thanks to ruslan ermilov. Aug 7, 2011: split(s, a, //) now behaves the same as split(s, a, "") Jun 12, 2011: /pat/, \n /pat/ {...} is now legal, though bad style to use. added checks to new -v code that permits -vnospace; thanks to ruslan ermilov for spotting this and providing the patch. removed fixed limit on number of open files; thanks to aleksey cheusov and christos zoulos. fixed day 1 bug that resurrected deleted elements of ARGV when used as filenames (in lib.c). minor type fiddles to make gcc -Wall -pedantic happier (but not totally so); turned on -fno-strict-aliasing in makefile. May 6, 2011: added #ifdef for isblank. now allows -ffoo as well as -f foo arguments. (thanks, ruslan) May 1, 2011: after advice from todd miller, kevin lo, ruslan ermilov, and arnold robbins, changed srand() to return the previous seed (which is 1 on the first call of srand). the seed is an Awkfloat internally though converted to unsigned int to pass to the library srand(). thanks, everyone. fixed a subtle (and i hope low-probability) overflow error in fldbld, by adding space for one extra \0. thanks to robert bassett for spotting this one and providing a fix. removed the files related to compilation on windows. i no longer have anything like a current windows environment, so i can't test any of it. May 23, 2010: fixed long-standing overflow bug in run.c; many thanks to nelson beebe for spotting it and providing the fix. fixed bug that didn't parse -vd=1 properly; thanks to santiago vila for spotting it. Feb 8, 2010: i give up. replaced isblank with isspace in b.c; there are no consistent header files. Nov 26, 2009: fixed a long-standing issue with when FS takes effect. a change to FS is now noticed immediately for subsequent splits. changed the name getline() to awkgetline() to avoid yet another name conflict somewhere. Feb 11, 2009: temporarily for now defined HAS_ISBLANK, since that seems to be the best way through the thicket. isblank arrived in C99, but seems to be arriving at different systems at different times. Oct 8, 2008: fixed typo in b.c that set tmpvec wrongly. no one had ever run into the problem, apparently. thanks to alistair crooks. Oct 23, 2007: minor fix in lib.c: increase inputFS to 100, change malloc for fields to n+1. fixed memory fault caused by out of order test in setsval. thanks to david o'brien, freebsd, for both fixes. May 1, 2007: fiddle in makefile to fix for BSD make; thanks to igor sobrado. Mar 31, 2007: fixed some null pointer refs calling adjbuf. Feb 21, 2007: fixed a bug in matching the null RE in sub and gsub. thanks to al aho who actually did the fix (in b.c), and to wolfgang seeberg for finding it and providing a very compact test case. fixed quotation in b.c; thanks to Hal Pratt and the Princeton Dante Project. removed some no-effect asserts in run.c. fiddled maketab.c to not complain about bison-generated values. removed the obsolete -V argument; fixed --version to print the version and exit. fixed wording and an outright error in the usage message; thanks to igor sobrado and jason mcintyre. fixed a bug in -d that caused core dump if no program followed. Jan 1, 2007: dropped mac.code from makefile; there are few non-MacOSX mac's these days. Jan 17, 2006: system() not flagged as unsafe in the unadvertised -safe option. found it while enhancing tests before shipping the ;login: article. practice what you preach. removed the 9-years-obsolete -mr and -mf flags. added -version and --version options. core dump on linux with BEGIN {nextfile}, now fixed. removed some #ifdef's in run.c and lex.c that appear to no longer be necessary.
104 lines
2 KiB
C
104 lines
2 KiB
C
/* $NetBSD: ytab.h,v 1.2 2014/03/12 14:20:43 ryoon Exp $ */
|
|
|
|
/* A Bison parser, made by GNU Bison 1.875. */
|
|
|
|
typedef union {
|
|
Node *p;
|
|
Cell *cp;
|
|
int i;
|
|
char *s;
|
|
} YYSTYPE;
|
|
extern YYSTYPE yylval;
|
|
#define FIRSTTOKEN 57346
|
|
#define PROGRAM 57347
|
|
#define PASTAT 57348
|
|
#define PASTAT2 57349
|
|
#define XBEGIN 57350
|
|
#define XEND 57351
|
|
#define NL 57352
|
|
#define ARRAY 57353
|
|
#define MATCH 57354
|
|
#define NOTMATCH 57355
|
|
#define MATCHOP 57356
|
|
#define FINAL 57357
|
|
#define DOT 57358
|
|
#define ALL 57359
|
|
#define CCL 57360
|
|
#define NCCL 57361
|
|
#define CHAR 57362
|
|
#define OR 57363
|
|
#define STAR 57364
|
|
#define QUEST 57365
|
|
#define PLUS 57366
|
|
#define EMPTYRE 57367
|
|
#define AND 57368
|
|
#define BOR 57369
|
|
#define APPEND 57370
|
|
#define EQ 57371
|
|
#define GE 57372
|
|
#define GT 57373
|
|
#define LE 57374
|
|
#define LT 57375
|
|
#define NE 57376
|
|
#define IN 57377
|
|
#define ARG 57378
|
|
#define BLTIN 57379
|
|
#define BREAK 57380
|
|
#define CLOSE 57381
|
|
#define CONTINUE 57382
|
|
#define DELETE 57383
|
|
#define DO 57384
|
|
#define EXIT 57385
|
|
#define FOR 57386
|
|
#define FUNC 57387
|
|
#define SUB 57388
|
|
#define GSUB 57389
|
|
#define IF 57390
|
|
#define INDEX 57391
|
|
#define LSUBSTR 57392
|
|
#define MATCHFCN 57393
|
|
#define NEXT 57394
|
|
#define NEXTFILE 57395
|
|
#define ADD 57396
|
|
#define MINUS 57397
|
|
#define MULT 57398
|
|
#define DIVIDE 57399
|
|
#define MOD 57400
|
|
#define ASSIGN 57401
|
|
#define ASGNOP 57402
|
|
#define ADDEQ 57403
|
|
#define SUBEQ 57404
|
|
#define MULTEQ 57405
|
|
#define DIVEQ 57406
|
|
#define MODEQ 57407
|
|
#define POWEQ 57408
|
|
#define PRINT 57409
|
|
#define PRINTF 57410
|
|
#define SPRINTF 57411
|
|
#define ELSE 57412
|
|
#define INTEST 57413
|
|
#define CONDEXPR 57414
|
|
#define POSTINCR 57415
|
|
#define PREINCR 57416
|
|
#define POSTDECR 57417
|
|
#define PREDECR 57418
|
|
#define VAR 57419
|
|
#define IVAR 57420
|
|
#define VARNF 57421
|
|
#define CALL 57422
|
|
#define NUMBER 57423
|
|
#define STRING 57424
|
|
#define REGEXPR 57425
|
|
#define GETLINE 57426
|
|
#define RETURN 57427
|
|
#define SPLIT 57428
|
|
#define SUBSTR 57429
|
|
#define WHILE 57430
|
|
#define CAT 57431
|
|
#define NOT 57432
|
|
#define UMINUS 57433
|
|
#define POWER 57434
|
|
#define DECR 57435
|
|
#define INCR 57436
|
|
#define INDIRECT 57437
|
|
#define LASTTOKEN 57438
|