summaryrefslogtreecommitdiff
path: root/arg.h
diff options
context:
space:
mode:
Diffstat (limited to 'arg.h')
-rw-r--r--arg.h991
1 files changed, 0 insertions, 991 deletions
diff --git a/arg.h b/arg.h
deleted file mode 100644
index cbcf4ebf07..0000000000
--- a/arg.h
+++ /dev/null
@@ -1,991 +0,0 @@
-/* $RCSfile: arg.h,v $$Revision: 4.0.1.3 $$Date: 92/06/08 11:44:06 $
- *
- * Copyright (c) 1991, Larry Wall
- *
- * You may distribute under the terms of either the GNU General Public
- * License or the Artistic License, as specified in the README file.
- *
- * $Log: arg.h,v $
- * Revision 4.0.1.3 92/06/08 11:44:06 lwall
- * patch20: O_PIPE conflicted with Atari
- * patch20: clarified debugging output for literals and double-quoted strings
- *
- * Revision 4.0.1.2 91/11/05 15:51:05 lwall
- * patch11: added eval {}
- * patch11: added sort {} LIST
- *
- * Revision 4.0.1.1 91/06/07 10:18:30 lwall
- * patch4: length($`), length($&), length($') now optimized to avoid string copy
- * patch4: new copyright notice
- * patch4: many, many itty-bitty portability fixes
- *
- * Revision 4.0 91/03/20 01:03:09 lwall
- * 4.0 baseline.
- *
- */
-
-#define O_NULL 0
-#define O_RCAT 1
-#define O_ITEM 2
-#define O_SCALAR 3
-#define O_ITEM2 4
-#define O_ITEM3 5
-#define O_CONCAT 6
-#define O_REPEAT 7
-#define O_MATCH 8
-#define O_NMATCH 9
-#define O_SUBST 10
-#define O_NSUBST 11
-#define O_ASSIGN 12
-#define O_LOCAL 13
-#define O_AASSIGN 14
-#define O_SASSIGN 15
-#define O_CHOP 16
-#define O_DEFINED 17
-#define O_UNDEF 18
-#define O_STUDY 19
-#define O_POW 20
-#define O_MULTIPLY 21
-#define O_DIVIDE 22
-#define O_MODULO 23
-#define O_ADD 24
-#define O_SUBTRACT 25
-#define O_LEFT_SHIFT 26
-#define O_RIGHT_SHIFT 27
-#define O_LT 28
-#define O_GT 29
-#define O_LE 30
-#define O_GE 31
-#define O_EQ 32
-#define O_NE 33
-#define O_NCMP 34
-#define O_BIT_AND 35
-#define O_XOR 36
-#define O_BIT_OR 37
-#define O_AND 38
-#define O_OR 39
-#define O_COND_EXPR 40
-#define O_COMMA 41
-#define O_NEGATE 42
-#define O_NOT 43
-#define O_COMPLEMENT 44
-#define O_SELECT 45
-#define O_WRITE 46
-#define O_DBMOPEN 47
-#define O_DBMCLOSE 48
-#define O_OPEN 49
-#define O_TRANS 50
-#define O_NTRANS 51
-#define O_CLOSE 52
-#define O_EACH 53
-#define O_VALUES 54
-#define O_KEYS 55
-#define O_LARRAY 56
-#define O_ARRAY 57
-#define O_AELEM 58
-#define O_DELETE 59
-#define O_LHASH 60
-#define O_HASH 61
-#define O_HELEM 62
-#define O_LAELEM 63
-#define O_LHELEM 64
-#define O_LSLICE 65
-#define O_ASLICE 66
-#define O_HSLICE 67
-#define O_LASLICE 68
-#define O_LHSLICE 69
-#define O_SPLICE 70
-#define O_PUSH 71
-#define O_POP 72
-#define O_SHIFT 73
-#define O_UNPACK 74
-#define O_SPLIT 75
-#define O_LENGTH 76
-#define O_SPRINTF 77
-#define O_SUBSTR 78
-#define O_PACK 79
-#define O_GREP 80
-#define O_JOIN 81
-#define O_SLT 82
-#define O_SGT 83
-#define O_SLE 84
-#define O_SGE 85
-#define O_SEQ 86
-#define O_SNE 87
-#define O_SCMP 88
-#define O_SUBR 89
-#define O_DBSUBR 90
-#define O_CALLER 91
-#define O_SORT 92
-#define O_REVERSE 93
-#define O_WARN 94
-#define O_DIE 95
-#define O_PRTF 96
-#define O_PRINT 97
-#define O_CHDIR 98
-#define O_EXIT 99
-#define O_RESET 100
-#define O_LIST 101
-#define O_EOF 102
-#define O_GETC 103
-#define O_TELL 104
-#define O_RECV 105
-#define O_READ 106
-#define O_SYSREAD 107
-#define O_SYSWRITE 108
-#define O_SEND 109
-#define O_SEEK 110
-#define O_RETURN 111
-#define O_REDO 112
-#define O_NEXT 113
-#define O_LAST 114
-#define O_DUMP 115
-#define O_GOTO 116
-#define O_INDEX 117
-#define O_RINDEX 118
-#define O_TIME 119
-#define O_TMS 120
-#define O_LOCALTIME 121
-#define O_GMTIME 122
-#define O_TRUNCATE 123
-#define O_LSTAT 124
-#define O_STAT 125
-#define O_CRYPT 126
-#define O_ATAN2 127
-#define O_SIN 128
-#define O_COS 129
-#define O_RAND 130
-#define O_SRAND 131
-#define O_EXP 132
-#define O_LOG 133
-#define O_SQRT 134
-#define O_INT 135
-#define O_ORD 136
-#define O_ALARM 137
-#define O_SLEEP 138
-#define O_RANGE 139
-#define O_F_OR_R 140
-#define O_FLIP 141
-#define O_FLOP 142
-#define O_FORK 143
-#define O_WAIT 144
-#define O_WAITPID 145
-#define O_SYSTEM 146
-#define O_EXEC_OP 147
-#define O_HEX 148
-#define O_OCT 149
-#define O_CHOWN 150
-#define O_KILL 151
-#define O_UNLINK 152
-#define O_CHMOD 153
-#define O_UTIME 154
-#define O_UMASK 155
-#define O_MSGGET 156
-#define O_SHMGET 157
-#define O_SEMGET 158
-#define O_MSGCTL 159
-#define O_SHMCTL 160
-#define O_SEMCTL 161
-#define O_MSGSND 162
-#define O_MSGRCV 163
-#define O_SEMOP 164
-#define O_SHMREAD 165
-#define O_SHMWRITE 166
-#define O_RENAME 167
-#define O_LINK 168
-#define O_MKDIR 169
-#define O_RMDIR 170
-#define O_GETPPID 171
-#define O_GETPGRP 172
-#define O_SETPGRP 173
-#define O_GETPRIORITY 174
-#define O_SETPRIORITY 175
-#define O_CHROOT 176
-#define O_FCNTL 177
-#define O_IOCTL 178
-#define O_FLOCK 179
-#define O_UNSHIFT 180
-#define O_REQUIRE 181
-#define O_DOFILE 182
-#define O_EVAL 183
-#define O_FTRREAD 184
-#define O_FTRWRITE 185
-#define O_FTREXEC 186
-#define O_FTEREAD 187
-#define O_FTEWRITE 188
-#define O_FTEEXEC 189
-#define O_FTIS 190
-#define O_FTEOWNED 191
-#define O_FTROWNED 192
-#define O_FTZERO 193
-#define O_FTSIZE 194
-#define O_FTMTIME 195
-#define O_FTATIME 196
-#define O_FTCTIME 197
-#define O_FTSOCK 198
-#define O_FTCHR 199
-#define O_FTBLK 200
-#define O_FTFILE 201
-#define O_FTDIR 202
-#define O_FTPIPE 203
-#define O_FTLINK 204
-#define O_SYMLINK 205
-#define O_READLINK 206
-#define O_FTSUID 207
-#define O_FTSGID 208
-#define O_FTSVTX 209
-#define O_FTTTY 210
-#define O_FTTEXT 211
-#define O_FTBINARY 212
-#define O_SOCKET 213
-#define O_BIND 214
-#define O_CONNECT 215
-#define O_LISTEN 216
-#define O_ACCEPT 217
-#define O_GHBYNAME 218
-#define O_GHBYADDR 219
-#define O_GHOSTENT 220
-#define O_GNBYNAME 221
-#define O_GNBYADDR 222
-#define O_GNETENT 223
-#define O_GPBYNAME 224
-#define O_GPBYNUMBER 225
-#define O_GPROTOENT 226
-#define O_GSBYNAME 227
-#define O_GSBYPORT 228
-#define O_GSERVENT 229
-#define O_SHOSTENT 230
-#define O_SNETENT 231
-#define O_SPROTOENT 232
-#define O_SSERVENT 233
-#define O_EHOSTENT 234
-#define O_ENETENT 235
-#define O_EPROTOENT 236
-#define O_ESERVENT 237
-#define O_SOCKPAIR 238
-#define O_SHUTDOWN 239
-#define O_GSOCKOPT 240
-#define O_SSOCKOPT 241
-#define O_GETSOCKNAME 242
-#define O_GETPEERNAME 243
-#define O_SSELECT 244
-#define O_FILENO 245
-#define O_BINMODE 246
-#define O_VEC 247
-#define O_GPWNAM 248
-#define O_GPWUID 249
-#define O_GPWENT 250
-#define O_SPWENT 251
-#define O_EPWENT 252
-#define O_GGRNAM 253
-#define O_GGRGID 254
-#define O_GGRENT 255
-#define O_SGRENT 256
-#define O_EGRENT 257
-#define O_GETLOGIN 258
-#define O_OPEN_DIR 259
-#define O_READDIR 260
-#define O_TELLDIR 261
-#define O_SEEKDIR 262
-#define O_REWINDDIR 263
-#define O_CLOSEDIR 264
-#define O_SYSCALL 265
-#define O_PIPE_OP 266
-#define O_TRY 267
-#define O_EVALONCE 268
-#define MAXO 269
-
-#ifndef DOINIT
-extern char *opname[];
-#else
-char *opname[] = {
- "NULL",
- "RCAT",
- "ITEM",
- "SCALAR",
- "ITEM2",
- "ITEM3",
- "CONCAT",
- "REPEAT",
- "MATCH",
- "NMATCH",
- "SUBST",
- "NSUBST",
- "ASSIGN",
- "LOCAL",
- "AASSIGN",
- "SASSIGN",
- "CHOP",
- "DEFINED",
- "UNDEF",
- "STUDY",
- "POW",
- "MULTIPLY",
- "DIVIDE",
- "MODULO",
- "ADD",
- "SUBTRACT",
- "LEFT_SHIFT",
- "RIGHT_SHIFT",
- "LT",
- "GT",
- "LE",
- "GE",
- "EQ",
- "NE",
- "NCMP",
- "BIT_AND",
- "XOR",
- "BIT_OR",
- "AND",
- "OR",
- "COND_EXPR",
- "COMMA",
- "NEGATE",
- "NOT",
- "COMPLEMENT",
- "SELECT",
- "WRITE",
- "DBMOPEN",
- "DBMCLOSE",
- "OPEN",
- "TRANS",
- "NTRANS",
- "CLOSE",
- "EACH",
- "VALUES",
- "KEYS",
- "LARRAY",
- "ARRAY",
- "AELEM",
- "DELETE",
- "LHASH",
- "HASH",
- "HELEM",
- "LAELEM",
- "LHELEM",
- "LSLICE",
- "ASLICE",
- "HSLICE",
- "LASLICE",
- "LHSLICE",
- "SPLICE",
- "PUSH",
- "POP",
- "SHIFT",
- "UNPACK",
- "SPLIT",
- "LENGTH",
- "SPRINTF",
- "SUBSTR",
- "PACK",
- "GREP",
- "JOIN",
- "SLT",
- "SGT",
- "SLE",
- "SGE",
- "SEQ",
- "SNE",
- "SCMP",
- "SUBR",
- "DBSUBR",
- "CALLER",
- "SORT",
- "REVERSE",
- "WARN",
- "DIE",
- "PRINTF",
- "PRINT",
- "CHDIR",
- "EXIT",
- "RESET",
- "LIST",
- "EOF",
- "GETC",
- "TELL",
- "RECV",
- "READ",
- "SYSREAD",
- "SYSWRITE",
- "SEND",
- "SEEK",
- "RETURN",
- "REDO",
- "NEXT",
- "LAST",
- "DUMP",
- "GOTO",/* shudder */
- "INDEX",
- "RINDEX",
- "TIME",
- "TIMES",
- "LOCALTIME",
- "GMTIME",
- "TRUNCATE",
- "LSTAT",
- "STAT",
- "CRYPT",
- "ATAN2",
- "SIN",
- "COS",
- "RAND",
- "SRAND",
- "EXP",
- "LOG",
- "SQRT",
- "INT",
- "ORD",
- "ALARM",
- "SLEEP",
- "RANGE",
- "FLIP_OR_RANGE",
- "FLIP",
- "FLOP",
- "FORK",
- "WAIT",
- "WAITPID",
- "SYSTEM",
- "EXEC",
- "HEX",
- "OCT",
- "CHOWN",
- "KILL",
- "UNLINK",
- "CHMOD",
- "UTIME",
- "UMASK",
- "MSGGET",
- "SHMGET",
- "SEMGET",
- "MSGCTL",
- "SHMCTL",
- "SEMCTL",
- "MSGSND",
- "MSGRCV",
- "SEMOP",
- "SHMREAD",
- "SHMWRITE",
- "RENAME",
- "LINK",
- "MKDIR",
- "RMDIR",
- "GETPPID",
- "GETPGRP",
- "SETPGRP",
- "GETPRIORITY",
- "SETPRIORITY",
- "CHROOT",
- "FCNTL",
- "SYSIOCTL",
- "FLOCK",
- "UNSHIFT",
- "REQUIRE",
- "DOFILE",
- "EVAL",
- "FTRREAD",
- "FTRWRITE",
- "FTREXEC",
- "FTEREAD",
- "FTEWRITE",
- "FTEEXEC",
- "FTIS",
- "FTEOWNED",
- "FTROWNED",
- "FTZERO",
- "FTSIZE",
- "FTMTIME",
- "FTATIME",
- "FTCTIME",
- "FTSOCK",
- "FTCHR",
- "FTBLK",
- "FTFILE",
- "FTDIR",
- "FTPIPE",
- "FTLINK",
- "SYMLINK",
- "READLINK",
- "FTSUID",
- "FTSGID",
- "FTSVTX",
- "FTTTY",
- "FTTEXT",
- "FTBINARY",
- "SOCKET",
- "BIND",
- "CONNECT",
- "LISTEN",
- "ACCEPT",
- "GHBYNAME",
- "GHBYADDR",
- "GHOSTENT",
- "GNBYNAME",
- "GNBYADDR",
- "GNETENT",
- "GPBYNAME",
- "GPBYNUMBER",
- "GPROTOENT",
- "GSBYNAME",
- "GSBYPORT",
- "GSERVENT",
- "SHOSTENT",
- "SNETENT",
- "SPROTOENT",
- "SSERVENT",
- "EHOSTENT",
- "ENETENT",
- "EPROTOENT",
- "ESERVENT",
- "SOCKPAIR",
- "SHUTDOWN",
- "GSOCKOPT",
- "SSOCKOPT",
- "GETSOCKNAME",
- "GETPEERNAME",
- "SSELECT",
- "FILENO",
- "BINMODE",
- "VEC",
- "GPWNAM",
- "GPWUID",
- "GPWENT",
- "SPWENT",
- "EPWENT",
- "GGRNAM",
- "GGRGID",
- "GGRENT",
- "SGRENT",
- "EGRENT",
- "GETLOGIN",
- "OPENDIR",
- "READDIR",
- "TELLDIR",
- "SEEKDIR",
- "REWINDDIR",
- "CLOSEDIR",
- "SYSCALL",
- "PIPE",
- "TRY",
- "EVALONCE",
- "269"
-};
-#endif
-
-#define A_NULL 0
-#define A_EXPR 1
-#define A_CMD 2
-#define A_STAB 3
-#define A_LVAL 4
-#define A_SINGLE 5
-#define A_DOUBLE 6
-#define A_BACKTICK 7
-#define A_READ 8
-#define A_SPAT 9
-#define A_LEXPR 10
-#define A_ARYLEN 11
-#define A_ARYSTAB 12
-#define A_LARYLEN 13
-#define A_GLOB 14
-#define A_WORD 15
-#define A_INDREAD 16
-#define A_LARYSTAB 17
-#define A_STAR 18
-#define A_LSTAR 19
-#define A_WANTARRAY 20
-#define A_LENSTAB 21
-
-#define A_MASK 31
-#define A_DONT 32 /* or this into type to suppress evaluation */
-
-#ifndef DOINIT
-extern char *argname[];
-#else
-char *argname[] = {
- "A_NULL",
- "EXPR",
- "CMD",
- "STAB",
- "LVAL",
- "LITERAL",
- "DOUBLEQUOTE",
- "BACKTICK",
- "READ",
- "SPAT",
- "LEXPR",
- "ARYLEN",
- "ARYSTAB",
- "LARYLEN",
- "GLOB",
- "WORD",
- "INDREAD",
- "LARYSTAB",
- "STAR",
- "LSTAR",
- "WANTARRAY",
- "LENSTAB",
- "22"
-};
-#endif
-
-#ifndef DOINIT
-extern bool hoistable[];
-#else
-bool hoistable[] =
- {0, /* A_NULL */
- 0, /* EXPR */
- 1, /* CMD */
- 1, /* STAB */
- 0, /* LVAL */
- 1, /* SINGLE */
- 0, /* DOUBLE */
- 0, /* BACKTICK */
- 0, /* READ */
- 0, /* SPAT */
- 0, /* LEXPR */
- 1, /* ARYLEN */
- 1, /* ARYSTAB */
- 0, /* LARYLEN */
- 0, /* GLOB */
- 1, /* WORD */
- 0, /* INDREAD */
- 0, /* LARYSTAB */
- 1, /* STAR */
- 1, /* LSTAR */
- 1, /* WANTARRAY */
- 0, /* LENSTAB */
- 0, /* 21 */
-};
-#endif
-
-union argptr {
- ARG *arg_arg;
- char *arg_cval;
- STAB *arg_stab;
- SPAT *arg_spat;
- CMD *arg_cmd;
- STR *arg_str;
- HASH *arg_hash;
-};
-
-struct arg {
- union argptr arg_ptr;
- short arg_len;
- unsigned short arg_type;
- unsigned short arg_flags;
-};
-
-#define AF_ARYOK 1 /* op can handle multiple values here */
-#define AF_POST 2 /* post *crement this item */
-#define AF_PRE 4 /* pre *crement this item */
-#define AF_UP 8 /* increment rather than decrement */
-#define AF_COMMON 16 /* left and right have symbols in common */
-#define AF_DEPR 32 /* an older form of the construct */
-#define AF_LISTISH 64 /* turn into list if important */
-#define AF_LOCAL 128 /* list of local variables */
-
-/*
- * Most of the ARG pointers are used as pointers to arrays of ARG. When
- * so used, the 0th element is special, and represents the operator to
- * use on the list of arguments following. The arg_len in the 0th element
- * gives the maximum argument number, and the arg_str is used to store
- * the return value in a more-or-less static location. Sorry it's not
- * re-entrant (yet), but it sure makes it efficient. The arg_type of the
- * 0th element is an operator (O_*) rather than an argument type (A_*).
- */
-
-#define Nullarg Null(ARG*)
-
-#ifndef DOINIT
-EXT unsigned short opargs[MAXO+1];
-#else
-#define A(e1,e2,e3) (e1+(e2<<2)+(e3<<4))
-#define A5(e1,e2,e3,e4,e5) (e1+(e2<<2)+(e3<<4)+(e4<<6)+(e5<<8))
-unsigned short opargs[MAXO+1] = {
- A(0,0,0), /* NULL */
- A(1,1,0), /* RCAT */
- A(1,0,0), /* ITEM */
- A(1,0,0), /* SCALAR */
- A(0,0,0), /* ITEM2 */
- A(0,0,0), /* ITEM3 */
- A(1,1,0), /* CONCAT */
- A(3,1,0), /* REPEAT */
- A(1,0,0), /* MATCH */
- A(1,0,0), /* NMATCH */
- A(1,0,0), /* SUBST */
- A(1,0,0), /* NSUBST */
- A(1,1,0), /* ASSIGN */
- A(1,0,0), /* LOCAL */
- A(3,3,0), /* AASSIGN */
- A(0,0,0), /* SASSIGN */
- A(3,0,0), /* CHOP */
- A(1,0,0), /* DEFINED */
- A(1,0,0), /* UNDEF */
- A(1,0,0), /* STUDY */
- A(1,1,0), /* POW */
- A(1,1,0), /* MULTIPLY */
- A(1,1,0), /* DIVIDE */
- A(1,1,0), /* MODULO */
- A(1,1,0), /* ADD */
- A(1,1,0), /* SUBTRACT */
- A(1,1,0), /* LEFT_SHIFT */
- A(1,1,0), /* RIGHT_SHIFT */
- A(1,1,0), /* LT */
- A(1,1,0), /* GT */
- A(1,1,0), /* LE */
- A(1,1,0), /* GE */
- A(1,1,0), /* EQ */
- A(1,1,0), /* NE */
- A(1,1,0), /* NCMP */
- A(1,1,0), /* BIT_AND */
- A(1,1,0), /* XOR */
- A(1,1,0), /* BIT_OR */
- A(1,0,0), /* AND */
- A(1,0,0), /* OR */
- A(1,0,0), /* COND_EXPR */
- A(1,1,0), /* COMMA */
- A(1,0,0), /* NEGATE */
- A(1,0,0), /* NOT */
- A(1,0,0), /* COMPLEMENT */
- A(1,0,0), /* SELECT */
- A(1,0,0), /* WRITE */
- A(1,1,1), /* DBMOPEN */
- A(1,0,0), /* DBMCLOSE */
- A(1,1,0), /* OPEN */
- A(1,0,0), /* TRANS */
- A(1,0,0), /* NTRANS */
- A(1,0,0), /* CLOSE */
- A(0,0,0), /* EACH */
- A(0,0,0), /* VALUES */
- A(0,0,0), /* KEYS */
- A(0,0,0), /* LARRAY */
- A(0,0,0), /* ARRAY */
- A(0,1,0), /* AELEM */
- A(0,1,0), /* DELETE */
- A(0,0,0), /* LHASH */
- A(0,0,0), /* HASH */
- A(0,1,0), /* HELEM */
- A(0,1,0), /* LAELEM */
- A(0,1,0), /* LHELEM */
- A(0,3,3), /* LSLICE */
- A(0,3,0), /* ASLICE */
- A(0,3,0), /* HSLICE */
- A(0,3,0), /* LASLICE */
- A(0,3,0), /* LHSLICE */
- A(0,3,1), /* SPLICE */
- A(0,3,0), /* PUSH */
- A(0,0,0), /* POP */
- A(0,0,0), /* SHIFT */
- A(1,1,0), /* UNPACK */
- A(1,0,1), /* SPLIT */
- A(1,0,0), /* LENGTH */
- A(3,0,0), /* SPRINTF */
- A(1,1,1), /* SUBSTR */
- A(1,3,0), /* PACK */
- A(0,3,0), /* GREP */
- A(1,3,0), /* JOIN */
- A(1,1,0), /* SLT */
- A(1,1,0), /* SGT */
- A(1,1,0), /* SLE */
- A(1,1,0), /* SGE */
- A(1,1,0), /* SEQ */
- A(1,1,0), /* SNE */
- A(1,1,0), /* SCMP */
- A(0,3,0), /* SUBR */
- A(0,3,0), /* DBSUBR */
- A(1,0,0), /* CALLER */
- A(1,3,0), /* SORT */
- A(0,3,0), /* REVERSE */
- A(0,3,0), /* WARN */
- A(0,3,0), /* DIE */
- A(1,3,0), /* PRINTF */
- A(1,3,0), /* PRINT */
- A(1,0,0), /* CHDIR */
- A(1,0,0), /* EXIT */
- A(1,0,0), /* RESET */
- A(3,0,0), /* LIST */
- A(1,0,0), /* EOF */
- A(1,0,0), /* GETC */
- A(1,0,0), /* TELL */
- A5(1,1,1,1,0), /* RECV */
- A(1,1,3), /* READ */
- A(1,1,3), /* SYSREAD */
- A(1,1,3), /* SYSWRITE */
- A(1,1,3), /* SEND */
- A(1,1,1), /* SEEK */
- A(0,3,0), /* RETURN */
- A(0,0,0), /* REDO */
- A(0,0,0), /* NEXT */
- A(0,0,0), /* LAST */
- A(0,0,0), /* DUMP */
- A(0,0,0), /* GOTO */
- A(1,1,1), /* INDEX */
- A(1,1,1), /* RINDEX */
- A(0,0,0), /* TIME */
- A(0,0,0), /* TIMES */
- A(1,0,0), /* LOCALTIME */
- A(1,0,0), /* GMTIME */
- A(1,1,0), /* TRUNCATE */
- A(1,0,0), /* LSTAT */
- A(1,0,0), /* STAT */
- A(1,1,0), /* CRYPT */
- A(1,1,0), /* ATAN2 */
- A(1,0,0), /* SIN */
- A(1,0,0), /* COS */
- A(1,0,0), /* RAND */
- A(1,0,0), /* SRAND */
- A(1,0,0), /* EXP */
- A(1,0,0), /* LOG */
- A(1,0,0), /* SQRT */
- A(1,0,0), /* INT */
- A(1,0,0), /* ORD */
- A(1,0,0), /* ALARM */
- A(1,0,0), /* SLEEP */
- A(1,1,0), /* RANGE */
- A(1,0,0), /* F_OR_R */
- A(1,0,0), /* FLIP */
- A(0,1,0), /* FLOP */
- A(0,0,0), /* FORK */
- A(0,0,0), /* WAIT */
- A(1,1,0), /* WAITPID */
- A(1,3,0), /* SYSTEM */
- A(1,3,0), /* EXEC */
- A(1,0,0), /* HEX */
- A(1,0,0), /* OCT */
- A(0,3,0), /* CHOWN */
- A(0,3,0), /* KILL */
- A(0,3,0), /* UNLINK */
- A(0,3,0), /* CHMOD */
- A(0,3,0), /* UTIME */
- A(1,0,0), /* UMASK */
- A(1,1,0), /* MSGGET */
- A(1,1,1), /* SHMGET */
- A(1,1,1), /* SEMGET */
- A(1,1,1), /* MSGCTL */
- A(1,1,1), /* SHMCTL */
- A5(1,1,1,1,0), /* SEMCTL */
- A(1,1,1), /* MSGSND */
- A5(1,1,1,1,1), /* MSGRCV */
- A(1,1,1), /* SEMOP */
- A5(1,1,1,1,0), /* SHMREAD */
- A5(1,1,1,1,0), /* SHMWRITE */
- A(1,1,0), /* RENAME */
- A(1,1,0), /* LINK */
- A(1,1,0), /* MKDIR */
- A(1,0,0), /* RMDIR */
- A(0,0,0), /* GETPPID */
- A(1,0,0), /* GETPGRP */
- A(1,1,0), /* SETPGRP */
- A(1,1,0), /* GETPRIORITY */
- A(1,1,1), /* SETPRIORITY */
- A(1,0,0), /* CHROOT */
- A(1,1,1), /* FCNTL */
- A(1,1,1), /* SYSIOCTL */
- A(1,1,0), /* FLOCK */
- A(0,3,0), /* UNSHIFT */
- A(1,0,0), /* REQUIRE */
- A(1,0,0), /* DOFILE */
- A(1,0,0), /* EVAL */
- A(1,0,0), /* FTRREAD */
- A(1,0,0), /* FTRWRITE */
- A(1,0,0), /* FTREXEC */
- A(1,0,0), /* FTEREAD */
- A(1,0,0), /* FTEWRITE */
- A(1,0,0), /* FTEEXEC */
- A(1,0,0), /* FTIS */
- A(1,0,0), /* FTEOWNED */
- A(1,0,0), /* FTROWNED */
- A(1,0,0), /* FTZERO */
- A(1,0,0), /* FTSIZE */
- A(1,0,0), /* FTMTIME */
- A(1,0,0), /* FTATIME */
- A(1,0,0), /* FTCTIME */
- A(1,0,0), /* FTSOCK */
- A(1,0,0), /* FTCHR */
- A(1,0,0), /* FTBLK */
- A(1,0,0), /* FTFILE */
- A(1,0,0), /* FTDIR */
- A(1,0,0), /* FTPIPE */
- A(1,0,0), /* FTLINK */
- A(1,1,0), /* SYMLINK */
- A(1,0,0), /* READLINK */
- A(1,0,0), /* FTSUID */
- A(1,0,0), /* FTSGID */
- A(1,0,0), /* FTSVTX */
- A(1,0,0), /* FTTTY */
- A(1,0,0), /* FTTEXT */
- A(1,0,0), /* FTBINARY */
- A5(1,1,1,1,0), /* SOCKET */
- A(1,1,0), /* BIND */
- A(1,1,0), /* CONNECT */
- A(1,1,0), /* LISTEN */
- A(1,1,0), /* ACCEPT */
- A(1,0,0), /* GHBYNAME */
- A(1,1,0), /* GHBYADDR */
- A(0,0,0), /* GHOSTENT */
- A(1,0,0), /* GNBYNAME */
- A(1,1,0), /* GNBYADDR */
- A(0,0,0), /* GNETENT */
- A(1,0,0), /* GPBYNAME */
- A(1,0,0), /* GPBYNUMBER */
- A(0,0,0), /* GPROTOENT */
- A(1,1,0), /* GSBYNAME */
- A(1,1,0), /* GSBYPORT */
- A(0,0,0), /* GSERVENT */
- A(1,0,0), /* SHOSTENT */
- A(1,0,0), /* SNETENT */
- A(1,0,0), /* SPROTOENT */
- A(1,0,0), /* SSERVENT */
- A(0,0,0), /* EHOSTENT */
- A(0,0,0), /* ENETENT */
- A(0,0,0), /* EPROTOENT */
- A(0,0,0), /* ESERVENT */
- A5(1,1,1,1,1), /* SOCKPAIR */
- A(1,1,0), /* SHUTDOWN */
- A(1,1,1), /* GSOCKOPT */
- A5(1,1,1,1,0), /* SSOCKOPT */
- A(1,0,0), /* GETSOCKNAME */
- A(1,0,0), /* GETPEERNAME */
- A5(1,1,1,1,0), /* SSELECT */
- A(1,0,0), /* FILENO */
- A(1,0,0), /* BINMODE */
- A(1,1,1), /* VEC */
- A(1,0,0), /* GPWNAM */
- A(1,0,0), /* GPWUID */
- A(0,0,0), /* GPWENT */
- A(0,0,0), /* SPWENT */
- A(0,0,0), /* EPWENT */
- A(1,0,0), /* GGRNAM */
- A(1,0,0), /* GGRGID */
- A(0,0,0), /* GGRENT */
- A(0,0,0), /* SGRENT */
- A(0,0,0), /* EGRENT */
- A(0,0,0), /* GETLOGIN */
- A(1,1,0), /* OPENDIR */
- A(1,0,0), /* READDIR */
- A(1,0,0), /* TELLDIR */
- A(1,1,0), /* SEEKDIR */
- A(1,0,0), /* REWINDDIR */
- A(1,0,0), /* CLOSEDIR */
- A(1,3,0), /* SYSCALL */
- A(1,1,0), /* PIPE */
- A(0,0,0), /* TRY */
- A(1,0,0), /* EVALONCE */
- 0
-};
-#undef A
-#undef A5
-#endif
-
-int do_trans();
-int do_split();
-bool do_eof();
-long do_tell();
-bool do_seek();
-int do_tms();
-int do_time();
-int do_stat();
-STR *do_push();
-FILE *nextargv();
-STR *do_fttext();
-int do_slice();