summaryrefslogtreecommitdiff
path: root/arg.h
diff options
context:
space:
mode:
Diffstat (limited to 'arg.h')
-rw-r--r--arg.h1103
1 files changed, 532 insertions, 571 deletions
diff --git a/arg.h b/arg.h
index 8947baac3c..16e4a05945 100644
--- a/arg.h
+++ b/arg.h
@@ -1,4 +1,4 @@
-/* $Header: arg.h,v 3.0.1.8 90/11/10 01:04:36 lwall Locked $
+/* $Header: arg.h,v 4.0 91/03/20 01:03:09 lwall Locked $
*
* Copyright (c) 1989, Larry Wall
*
@@ -6,331 +6,305 @@
* as specified in the README file that comes with the perl 3.0 kit.
*
* $Log: arg.h,v $
- * Revision 3.0.1.8 90/11/10 01:04:36 lwall
- * patch38: added alarm function
- * patch38: socket, recv, select, socketpair, setsockopt didn't eval all args
- *
- * Revision 3.0.1.7 90/10/15 14:53:59 lwall
- * patch29: added SysV IPC
- * patch29: added waitpid
- * patch29: added cmp and <=>
- * patch29: added caller
- * patch29: added scalar
- * patch29: added sysread and syswrite
- * patch29: added -M, -A and -C
- * patch29: index and substr now have optional 3rd args
- * patch29: you can now read into the middle string
- * patch29: various portability fixes
- *
- * Revision 3.0.1.6 90/08/09 02:25:14 lwall
- * patch19: added require operator
- * patch19: added truncate operator
- *
- * Revision 3.0.1.5 90/03/27 15:29:41 lwall
- * patch16: MSDOS support
- *
- * Revision 3.0.1.4 90/03/12 16:18:21 lwall
- * patch13: added list slice operator (LIST)[LIST]
- * patch13: added splice operator: @oldelems = splice(@array,$offset,$len,LIST)
- *
- * Revision 3.0.1.3 90/02/28 16:21:55 lwall
- * patch9: added pipe function
- *
- * Revision 3.0.1.2 89/12/21 19:13:14 lwall
- * patch7: send() didn't allow a TO argument
- *
- * Revision 3.0.1.1 89/10/26 23:02:35 lwall
- * patch1: reverse didn't work
- *
- * Revision 3.0 89/10/18 15:08:27 lwall
- * 3.0 baseline
+ * Revision 4.0 91/03/20 01:03:09 lwall
+ * 4.0 baseline.
*
*/
#define O_NULL 0
-#define O_ITEM 1
-#define O_ITEM2 2
-#define O_ITEM3 3
-#define O_CONCAT 4
-#define O_MATCH 5
-#define O_NMATCH 6
-#define O_SUBST 7
-#define O_NSUBST 8
-#define O_ASSIGN 9
-#define O_MULTIPLY 10
-#define O_DIVIDE 11
-#define O_MODULO 12
-#define O_ADD 13
-#define O_SUBTRACT 14
-#define O_LEFT_SHIFT 15
-#define O_RIGHT_SHIFT 16
-#define O_LT 17
-#define O_GT 18
-#define O_LE 19
-#define O_GE 20
-#define O_EQ 21
-#define O_NE 22
-#define O_BIT_AND 23
-#define O_XOR 24
-#define O_BIT_OR 25
-#define O_AND 26
-#define O_OR 27
-#define O_COND_EXPR 28
-#define O_COMMA 29
-#define O_NEGATE 30
-#define O_NOT 31
-#define O_COMPLEMENT 32
-#define O_WRITE 33
-#define O_OPEN 34
-#define O_TRANS 35
-#define O_NTRANS 36
-#define O_CLOSE 37
-#define O_ARRAY 38
-#define O_HASH 39
-#define O_LARRAY 40
-#define O_LHASH 41
-#define O_PUSH 42
-#define O_POP 43
-#define O_SHIFT 44
-#define O_SPLIT 45
-#define O_LENGTH 46
-#define O_SPRINTF 47
-#define O_SUBSTR 48
-#define O_JOIN 49
-#define O_SLT 50
-#define O_SGT 51
-#define O_SLE 52
-#define O_SGE 53
-#define O_SEQ 54
-#define O_SNE 55
-#define O_SUBR 56
-#define O_PRINT 57
-#define O_CHDIR 58
-#define O_DIE 59
-#define O_EXIT 60
-#define O_RESET 61
-#define O_LIST 62
-#define O_SELECT 63
-#define O_EOF 64
-#define O_TELL 65
-#define O_SEEK 66
-#define O_LAST 67
-#define O_NEXT 68
-#define O_REDO 69
-#define O_GOTO 70
-#define O_INDEX 71
-#define O_TIME 72
-#define O_TMS 73
-#define O_LOCALTIME 74
-#define O_GMTIME 75
-#define O_STAT 76
-#define O_CRYPT 77
-#define O_EXP 78
-#define O_LOG 79
-#define O_SQRT 80
-#define O_INT 81
-#define O_PRTF 82
-#define O_ORD 83
-#define O_SLEEP 84
-#define O_FLIP 85
-#define O_FLOP 86
-#define O_KEYS 87
-#define O_VALUES 88
-#define O_EACH 89
-#define O_CHOP 90
-#define O_FORK 91
-#define O_EXEC_OP 92
-#define O_SYSTEM 93
-#define O_OCT 94
-#define O_HEX 95
-#define O_CHMOD 96
-#define O_CHOWN 97
-#define O_KILL 98
-#define O_RENAME 99
-#define O_UNLINK 100
-#define O_UMASK 101
-#define O_UNSHIFT 102
-#define O_LINK 103
-#define O_REPEAT 104
-#define O_EVAL 105
-#define O_FTEREAD 106
-#define O_FTEWRITE 107
-#define O_FTEEXEC 108
-#define O_FTEOWNED 109
-#define O_FTRREAD 110
-#define O_FTRWRITE 111
-#define O_FTREXEC 112
-#define O_FTROWNED 113
-#define O_FTIS 114
-#define O_FTZERO 115
-#define O_FTSIZE 116
-#define O_FTFILE 117
-#define O_FTDIR 118
-#define O_FTLINK 119
-#define O_SYMLINK 120
-#define O_FTPIPE 121
-#define O_FTSOCK 122
-#define O_FTBLK 123
-#define O_FTCHR 124
-#define O_FTSUID 125
-#define O_FTSGID 126
-#define O_FTSVTX 127
-#define O_FTTTY 128
-#define O_DOFILE 129
-#define O_FTTEXT 130
-#define O_FTBINARY 131
-#define O_UTIME 132
-#define O_WAIT 133
-#define O_SORT 134
-#define O_DELETE 135
-#define O_STUDY 136
-#define O_ATAN2 137
-#define O_SIN 138
-#define O_COS 139
-#define O_RAND 140
-#define O_SRAND 141
-#define O_POW 142
-#define O_RETURN 143
-#define O_GETC 144
-#define O_MKDIR 145
-#define O_RMDIR 146
-#define O_GETPPID 147
-#define O_GETPGRP 148
-#define O_SETPGRP 149
-#define O_GETPRIORITY 150
-#define O_SETPRIORITY 151
-#define O_CHROOT 152
-#define O_IOCTL 153
-#define O_FCNTL 154
-#define O_FLOCK 155
-#define O_RINDEX 156
-#define O_PACK 157
-#define O_UNPACK 158
-#define O_READ 159
-#define O_WARN 160
-#define O_DBMOPEN 161
-#define O_DBMCLOSE 162
-#define O_ASLICE 163
-#define O_HSLICE 164
-#define O_LASLICE 165
-#define O_LHSLICE 166
-#define O_F_OR_R 167
-#define O_RANGE 168
-#define O_RCAT 169
-#define O_AASSIGN 170
-#define O_SASSIGN 171
-#define O_DUMP 172
-#define O_REVERSE 173
-#define O_ADDROF 174
-#define O_SOCKET 175
-#define O_BIND 176
-#define O_CONNECT 177
-#define O_LISTEN 178
-#define O_ACCEPT 179
-#define O_SEND 180
-#define O_RECV 181
-#define O_SSELECT 182
-#define O_SOCKPAIR 183
-#define O_DBSUBR 184
-#define O_DEFINED 185
-#define O_UNDEF 186
-#define O_READLINK 187
-#define O_LSTAT 188
-#define O_AELEM 189
-#define O_HELEM 190
-#define O_LAELEM 191
-#define O_LHELEM 192
-#define O_LOCAL 193
-#define O_PIPE 194
-#define O_FILENO 195
-#define O_GHBYNAME 196
-#define O_GHBYADDR 197
-#define O_GHOSTENT 198
-#define O_SHOSTENT 199
-#define O_EHOSTENT 200
-#define O_GSBYNAME 201
-#define O_GSBYPORT 202
-#define O_GSERVENT 203
-#define O_SSERVENT 204
-#define O_ESERVENT 205
-#define O_GPBYNAME 206
-#define O_GPBYNUMBER 207
-#define O_GPROTOENT 208
-#define O_SPROTOENT 209
-#define O_EPROTOENT 210
-#define O_GNBYNAME 211
-#define O_GNBYADDR 212
-#define O_GNETENT 213
-#define O_SNETENT 214
-#define O_ENETENT 215
-#define O_VEC 216
-#define O_GREP 217
-#define O_GPWNAM 218
-#define O_GPWUID 219
-#define O_GPWENT 220
-#define O_SPWENT 221
-#define O_EPWENT 222
-#define O_GGRNAM 223
-#define O_GGRGID 224
-#define O_GGRENT 225
-#define O_SGRENT 226
-#define O_EGRENT 227
-#define O_SHUTDOWN 228
-#define O_OPENDIR 229
-#define O_READDIR 230
-#define O_TELLDIR 231
-#define O_SEEKDIR 232
-#define O_REWINDDIR 233
-#define O_CLOSEDIR 234
-#define O_GETLOGIN 235
-#define O_SYSCALL 236
-#define O_GSOCKOPT 237
-#define O_SSOCKOPT 238
-#define O_GETSOCKNAME 239
-#define O_GETPEERNAME 240
-#define O_LSLICE 241
-#define O_SPLICE 242
-#define O_BINMODE 243
-#define O_REQUIRE 244
-#define O_TRUNCATE 245
-#define O_MSGGET 246
-#define O_MSGCTL 247
-#define O_MSGSND 248
-#define O_MSGRCV 249
-#define O_SEMGET 250
-#define O_SEMCTL 251
-#define O_SEMOP 252
-#define O_SHMGET 253
-#define O_SHMCTL 254
-#define O_SHMREAD 255
-#define O_SHMWRITE 256
-#define O_NCMP 257
-#define O_SCMP 258
-#define O_CALLER 259
-#define O_SCALAR 260
-#define O_SYSREAD 261
-#define O_SYSWRITE 262
-#define O_FTMTIME 263
-#define O_FTATIME 264
-#define O_FTCTIME 265
-#define O_WAITPID 266
-#define O_ALARM 267
-#define MAXO 268
+#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_OPENDIR 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 266
+#define MAXO 267
#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",
@@ -344,6 +318,7 @@ char *opname[] = {
"GE",
"EQ",
"NE",
+ "NCMP",
"BIT_AND",
"XOR",
"BIT_OR",
@@ -354,22 +329,42 @@ char *opname[] = {
"NEGATE",
"NOT",
"COMPLEMENT",
+ "SELECT",
"WRITE",
+ "DBMOPEN",
+ "DBMCLOSE",
"OPEN",
"TRANS",
"NTRANS",
"CLOSE",
- "ARRAY",
- "HASH",
+ "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",
@@ -377,168 +372,166 @@ char *opname[] = {
"SGE",
"SEQ",
"SNE",
+ "SCMP",
"SUBR",
+ "DBSUBR",
+ "CALLER",
+ "SORT",
+ "REVERSE",
+ "WARN",
+ "DIE",
+ "PRINTF",
"PRINT",
"CHDIR",
- "DIE",
"EXIT",
"RESET",
"LIST",
- "SELECT",
"EOF",
+ "GETC",
"TELL",
+ "RECV",
+ "READ",
+ "SYSREAD",
+ "SYSWRITE",
+ "SEND",
"SEEK",
- "LAST",
- "NEXT",
+ "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",
- "PRINTF",
"ORD",
+ "ALARM",
"SLEEP",
+ "RANGE",
+ "FLIP_OR_RANGE",
"FLIP",
"FLOP",
- "KEYS",
- "VALUES",
- "EACH",
- "CHOP",
"FORK",
- "EXEC",
+ "WAIT",
+ "WAITPID",
"SYSTEM",
- "OCT",
+ "EXEC",
"HEX",
- "CHMOD",
+ "OCT",
"CHOWN",
"KILL",
- "RENAME",
"UNLINK",
+ "CHMOD",
+ "UTIME",
"UMASK",
- "UNSHIFT",
+ "MSGGET",
+ "SHMGET",
+ "SEMGET",
+ "MSGCTL",
+ "SHMCTL",
+ "SEMCTL",
+ "MSGSND",
+ "MSGRCV",
+ "SEMOP",
+ "SHMREAD",
+ "SHMWRITE",
+ "RENAME",
"LINK",
- "REPEAT",
+ "MKDIR",
+ "RMDIR",
+ "GETPPID",
+ "GETPGRP",
+ "SETPGRP",
+ "GETPRIORITY",
+ "SETPRIORITY",
+ "CHROOT",
+ "FCNTL",
+ "SYSIOCTL",
+ "FLOCK",
+ "UNSHIFT",
+ "REQUIRE",
+ "DOFILE",
"EVAL",
+ "FTRREAD",
+ "FTRWRITE",
+ "FTREXEC",
"FTEREAD",
"FTEWRITE",
"FTEEXEC",
+ "FTIS",
"FTEOWNED",
- "FTRREAD",
- "FTRWRITE",
- "FTREXEC",
"FTROWNED",
- "FTIS",
"FTZERO",
"FTSIZE",
+ "FTMTIME",
+ "FTATIME",
+ "FTCTIME",
+ "FTSOCK",
+ "FTCHR",
+ "FTBLK",
"FTFILE",
"FTDIR",
+ "FTPIPE",
"FTLINK",
"SYMLINK",
- "FTPIPE",
- "FTSOCK",
- "FTBLK",
- "FTCHR",
+ "READLINK",
"FTSUID",
"FTSGID",
"FTSVTX",
"FTTTY",
- "DOFILE",
"FTTEXT",
"FTBINARY",
- "UTIME",
- "WAIT",
- "SORT",
- "DELETE",
- "STUDY",
- "ATAN2",
- "SIN",
- "COS",
- "RAND",
- "SRAND",
- "POW",
- "RETURN",
- "GETC",
- "MKDIR",
- "RMDIR",
- "GETPPID",
- "GETPGRP",
- "SETPGRP",
- "GETPRIORITY",
- "SETPRIORITY",
- "CHROOT",
- "IOCTL",
- "FCNTL",
- "FLOCK",
- "RINDEX",
- "PACK",
- "UNPACK",
- "READ",
- "WARN",
- "DBMOPEN",
- "DBMCLOSE",
- "ASLICE",
- "HSLICE",
- "LASLICE",
- "LHSLICE",
- "FLIP_OR_RANGE",
- "RANGE",
- "RCAT",
- "AASSIGN",
- "SASSIGN",
- "DUMP",
- "REVERSE",
- "ADDRESS_OF",
"SOCKET",
"BIND",
"CONNECT",
"LISTEN",
"ACCEPT",
- "SEND",
- "RECV",
- "SSELECT",
- "SOCKPAIR",
- "DBSUBR",
- "DEFINED",
- "UNDEF",
- "READLINK",
- "LSTAT",
- "AELEM",
- "HELEM",
- "LAELEM",
- "LHELEM",
- "LOCAL",
- "PIPE",
- "FILENO",
"GHBYNAME",
"GHBYADDR",
"GHOSTENT",
- "SHOSTENT",
- "EHOSTENT",
- "GSBYNAME",
- "GSBYPORT",
- "GSERVENT",
- "SSERVENT",
- "ESERVENT",
- "GPBYNAME",
- "GPBYNUMBER",
- "GPROTOENT",
- "SPROTOENT",
- "EPROTOENT",
"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",
- "GREP",
"GPWNAM",
"GPWUID",
"GPWENT",
@@ -549,47 +542,16 @@ char *opname[] = {
"GGRENT",
"SGRENT",
"EGRENT",
- "SHUTDOWN",
+ "GETLOGIN",
"OPENDIR",
"READDIR",
"TELLDIR",
"SEEKDIR",
"REWINDDIR",
"CLOSEDIR",
- "GETLOGIN",
"SYSCALL",
- "GSOCKOPT",
- "SSOCKOPT",
- "GETSOCKNAME",
- "GETPEERNAME",
- "LSLICE",
- "SPLICE",
- "BINMODE",
- "REQUIRE",
- "TRUNCATE",
- "MSGGET",
- "MSGCTL",
- "MSGSND",
- "MSGRCV",
- "SEMGET",
- "SEMCTL",
- "SEMOP",
- "SHMGET",
- "SHMCTL",
- "SHMREAD",
- "SHMWRITE",
- "NCMP",
- "SCMP",
- "CALLER",
- "SCALAR",
- "SYSREAD",
- "SYSWRITE",
- "FTMTIME",
- "FTATIME",
- "FTCTIME",
- "WAITPID",
- "ALARM",
- "268"
+ "PIPE",
+ "267"
};
#endif
@@ -698,7 +660,7 @@ struct arg {
#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_UNUSED 32 /* */
+#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 */
@@ -721,15 +683,26 @@ EXT unsigned short opargs[MAXO+1];
#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 */
@@ -743,6 +716,7 @@ unsigned short opargs[MAXO+1] = {
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 */
@@ -753,22 +727,42 @@ unsigned short opargs[MAXO+1] = {
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), /* ARRAY */
- A(0,0,0), /* HASH */
+ 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 */
@@ -776,168 +770,166 @@ unsigned short opargs[MAXO+1] = {
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(0,3,0), /* DIE */
A(1,0,0), /* EXIT */
A(1,0,0), /* RESET */
A(3,0,0), /* LIST */
- A(1,0,0), /* SELECT */
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,0,0), /* LAST */
- A(0,0,0), /* NEXT */
+ 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,3,0), /* PRINTF */
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), /* KEYS */
- A(0,0,0), /* VALUES */
- A(0,0,0), /* EACH */
- A(3,0,0), /* CHOP */
A(0,0,0), /* FORK */
- A(1,3,0), /* EXEC */
+ A(0,0,0), /* WAIT */
+ A(1,1,0), /* WAITPID */
A(1,3,0), /* SYSTEM */
- A(1,0,0), /* OCT */
+ A(1,3,0), /* EXEC */
A(1,0,0), /* HEX */
- A(0,3,0), /* CHMOD */
+ A(1,0,0), /* OCT */
A(0,3,0), /* CHOWN */
A(0,3,0), /* KILL */
- A(1,1,0), /* RENAME */
A(0,3,0), /* UNLINK */
+ A(0,3,0), /* CHMOD */
+ A(0,3,0), /* UTIME */
A(1,0,0), /* UMASK */
- A(0,3,0), /* UNSHIFT */
+ 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), /* REPEAT */
+ 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), /* FTRREAD */
- A(1,0,0), /* FTRWRITE */
- A(1,0,0), /* FTREXEC */
A(1,0,0), /* FTROWNED */
- A(1,0,0), /* FTIS */
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), /* FTPIPE */
- A(1,0,0), /* FTSOCK */
- A(1,0,0), /* FTBLK */
- A(1,0,0), /* FTCHR */
+ 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), /* DOFILE */
A(1,0,0), /* FTTEXT */
A(1,0,0), /* FTBINARY */
- A(0,3,0), /* UTIME */
- A(0,0,0), /* WAIT */
- A(1,3,0), /* SORT */
- A(0,1,0), /* DELETE */
- A(1,0,0), /* STUDY */
- 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,1,0), /* POW */
- A(0,3,0), /* RETURN */
- A(1,0,0), /* GETC */
- 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), /* IOCTL */
- A(1,1,1), /* FCNTL */
- A(1,1,0), /* FLOCK */
- A(1,1,1), /* RINDEX */
- A(1,3,0), /* PACK */
- A(1,1,0), /* UNPACK */
- A(1,1,3), /* READ */
- A(0,3,0), /* WARN */
- A(1,1,1), /* DBMOPEN */
- A(1,0,0), /* DBMCLOSE */
- A(0,3,0), /* ASLICE */
- A(0,3,0), /* HSLICE */
- A(0,3,0), /* LASLICE */
- A(0,3,0), /* LHSLICE */
- A(1,0,0), /* F_OR_R */
- A(1,1,0), /* RANGE */
- A(1,1,0), /* RCAT */
- A(3,3,0), /* AASSIGN */
- A(0,0,0), /* SASSIGN */
- A(0,0,0), /* DUMP */
- A(0,3,0), /* REVERSE */
- A(1,0,0), /* ADDROF */
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,1,3), /* SEND */
- A5(1,1,1,1,0), /* RECV */
- A5(1,1,1,1,0), /* SSELECT */
- A5(1,1,1,1,1), /* SOCKPAIR */
- A(0,3,0), /* DBSUBR */
- A(1,0,0), /* DEFINED */
- A(1,0,0), /* UNDEF */
- A(1,0,0), /* READLINK */
- A(1,0,0), /* LSTAT */
- A(0,1,0), /* AELEM */
- A(0,1,0), /* HELEM */
- A(0,1,0), /* LAELEM */
- A(0,1,0), /* LHELEM */
- A(1,0,0), /* LOCAL */
- A(1,1,0), /* PIPE */
- A(1,0,0), /* FILENO */
A(1,0,0), /* GHBYNAME */
A(1,1,0), /* GHBYADDR */
A(0,0,0), /* GHOSTENT */
- A(1,0,0), /* SHOSTENT */
- A(0,0,0), /* EHOSTENT */
- A(1,1,0), /* GSBYNAME */
- A(1,1,0), /* GSBYPORT */
- A(0,0,0), /* GSERVENT */
- A(1,0,0), /* SSERVENT */
- A(0,0,0), /* ESERVENT */
- A(1,0,0), /* GPBYNAME */
- A(1,0,0), /* GPBYNUMBER */
- A(0,0,0), /* GPROTOENT */
- A(1,0,0), /* SPROTOENT */
- A(0,0,0), /* EPROTOENT */
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(0,3,0), /* GREP */
A(1,0,0), /* GPWNAM */
A(1,0,0), /* GPWUID */
A(0,0,0), /* GPWENT */
@@ -948,46 +940,15 @@ unsigned short opargs[MAXO+1] = {
A(0,0,0), /* GGRENT */
A(0,0,0), /* SGRENT */
A(0,0,0), /* EGRENT */
- A(1,1,0), /* SHUTDOWN */
+ 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(0,0,0), /* GETLOGIN */
A(1,3,0), /* SYSCALL */
- A(1,1,1), /* GSOCKOPT */
- A5(1,1,1,1,0), /* SSOCKOPT */
- A(1,0,0), /* GETSOCKNAME */
- A(1,0,0), /* GETPEERNAME */
- A(0,3,3), /* LSLICE */
- A(0,3,1), /* SPLICE */
- A(1,0,0), /* BINMODE */
- A(1,0,0), /* REQUIRE */
- A(1,1,0), /* TRUNCATE */
- A(1,1,0), /* MSGGET */
- A(1,1,1), /* MSGCTL */
- A(1,1,1), /* MSGSND */
- A5(1,1,1,1,1), /* MSGRCV */
- A(1,1,1), /* SEMGET */
- A5(1,1,1,1,0), /* SEMCTL */
- A(1,1,1), /* SEMOP */
- A(1,1,1), /* SHMGET */
- A(1,1,1), /* SHMCTL */
- A5(1,1,1,1,0), /* SHMREAD */
- A5(1,1,1,1,0), /* SHMWRITE */
- A(1,1,0), /* NCMP */
- A(1,1,0), /* SCMP */
- A(1,0,0), /* CALLER */
- A(1,0,0), /* SCALAR */
- A(1,1,3), /* SYSREAD */
- A(1,1,3), /* SYSWRITE */
- A(1,0,0), /* FTMTIME */
- A(1,0,0), /* FTATIME */
- A(1,0,0), /* FTCTIME */
- A(1,1,0), /* WAITPID */
- A(1,0,0), /* ALARM */
+ A(1,1,0), /* PIPE */
0
};
#undef A