summaryrefslogtreecommitdiff
path: root/keywords.h
diff options
context:
space:
mode:
authorPaul "LeoNerd" Evans <leonerd@leonerd.org.uk>2021-07-27 14:55:14 +0100
committerPaul Evans <leonerd@leonerd.org.uk>2021-08-25 13:52:09 +0100
commitf79e2ff95fbb22eaf18e130c7cba8a9d40be3d75 (patch)
tree18bedb48e757671114f8f63c8691677a06b62a1b /keywords.h
parent4b21956ed64a9303ab72a46be1cd68c22bff2560 (diff)
downloadperl-f79e2ff95fbb22eaf18e130c7cba8a9d40be3d75.tar.gz
Create `defer` syntax and `OP_PUSHDEFER` opcode
Adds syntax `defer { BLOCK }` to create a deferred block; code that is deferred until the scope exits. This syntax is guarded by use feature 'defer'; Adds a new opcode, `OP_PUSHDEFER`, which is a LOGOP whose `op_other` field gives the start of an optree to be deferred until scope exit. That op pointer will be stored on the save stack and invoked as part of scope unwind. Included is support for `B::Deparse` to deparse the optree back into syntax.
Diffstat (limited to 'keywords.h')
-rw-r--r--keywords.h435
1 files changed, 218 insertions, 217 deletions
diff --git a/keywords.h b/keywords.h
index 82694905cb..84e7719148 100644
--- a/keywords.h
+++ b/keywords.h
@@ -55,223 +55,224 @@
#define KEY_dbmclose 39
#define KEY_dbmopen 40
#define KEY_default 41
-#define KEY_defined 42
-#define KEY_delete 43
-#define KEY_die 44
-#define KEY_do 45
-#define KEY_dump 46
-#define KEY_each 47
-#define KEY_else 48
-#define KEY_elsif 49
-#define KEY_endgrent 50
-#define KEY_endhostent 51
-#define KEY_endnetent 52
-#define KEY_endprotoent 53
-#define KEY_endpwent 54
-#define KEY_endservent 55
-#define KEY_eof 56
-#define KEY_eq 57
-#define KEY_eval 58
-#define KEY_evalbytes 59
-#define KEY_exec 60
-#define KEY_exists 61
-#define KEY_exit 62
-#define KEY_exp 63
-#define KEY_fc 64
-#define KEY_fcntl 65
-#define KEY_fileno 66
-#define KEY_flock 67
-#define KEY_for 68
-#define KEY_foreach 69
-#define KEY_fork 70
-#define KEY_format 71
-#define KEY_formline 72
-#define KEY_ge 73
-#define KEY_getc 74
-#define KEY_getgrent 75
-#define KEY_getgrgid 76
-#define KEY_getgrnam 77
-#define KEY_gethostbyaddr 78
-#define KEY_gethostbyname 79
-#define KEY_gethostent 80
-#define KEY_getlogin 81
-#define KEY_getnetbyaddr 82
-#define KEY_getnetbyname 83
-#define KEY_getnetent 84
-#define KEY_getpeername 85
-#define KEY_getpgrp 86
-#define KEY_getppid 87
-#define KEY_getpriority 88
-#define KEY_getprotobyname 89
-#define KEY_getprotobynumber 90
-#define KEY_getprotoent 91
-#define KEY_getpwent 92
-#define KEY_getpwnam 93
-#define KEY_getpwuid 94
-#define KEY_getservbyname 95
-#define KEY_getservbyport 96
-#define KEY_getservent 97
-#define KEY_getsockname 98
-#define KEY_getsockopt 99
-#define KEY_given 100
-#define KEY_glob 101
-#define KEY_gmtime 102
-#define KEY_goto 103
-#define KEY_grep 104
-#define KEY_gt 105
-#define KEY_hex 106
-#define KEY_if 107
-#define KEY_index 108
-#define KEY_int 109
-#define KEY_ioctl 110
-#define KEY_isa 111
-#define KEY_join 112
-#define KEY_keys 113
-#define KEY_kill 114
-#define KEY_last 115
-#define KEY_lc 116
-#define KEY_lcfirst 117
-#define KEY_le 118
-#define KEY_length 119
-#define KEY_link 120
-#define KEY_listen 121
-#define KEY_local 122
-#define KEY_localtime 123
-#define KEY_lock 124
-#define KEY_log 125
-#define KEY_lstat 126
-#define KEY_lt 127
-#define KEY_m 128
-#define KEY_map 129
-#define KEY_mkdir 130
-#define KEY_msgctl 131
-#define KEY_msgget 132
-#define KEY_msgrcv 133
-#define KEY_msgsnd 134
-#define KEY_my 135
-#define KEY_ne 136
-#define KEY_next 137
-#define KEY_no 138
-#define KEY_not 139
-#define KEY_oct 140
-#define KEY_open 141
-#define KEY_opendir 142
-#define KEY_or 143
-#define KEY_ord 144
-#define KEY_our 145
-#define KEY_pack 146
-#define KEY_package 147
-#define KEY_pipe 148
-#define KEY_pop 149
-#define KEY_pos 150
-#define KEY_print 151
-#define KEY_printf 152
-#define KEY_prototype 153
-#define KEY_push 154
-#define KEY_q 155
-#define KEY_qq 156
-#define KEY_qr 157
-#define KEY_quotemeta 158
-#define KEY_qw 159
-#define KEY_qx 160
-#define KEY_rand 161
-#define KEY_read 162
-#define KEY_readdir 163
-#define KEY_readline 164
-#define KEY_readlink 165
-#define KEY_readpipe 166
-#define KEY_recv 167
-#define KEY_redo 168
-#define KEY_ref 169
-#define KEY_rename 170
-#define KEY_require 171
-#define KEY_reset 172
-#define KEY_return 173
-#define KEY_reverse 174
-#define KEY_rewinddir 175
-#define KEY_rindex 176
-#define KEY_rmdir 177
-#define KEY_s 178
-#define KEY_say 179
-#define KEY_scalar 180
-#define KEY_seek 181
-#define KEY_seekdir 182
-#define KEY_select 183
-#define KEY_semctl 184
-#define KEY_semget 185
-#define KEY_semop 186
-#define KEY_send 187
-#define KEY_setgrent 188
-#define KEY_sethostent 189
-#define KEY_setnetent 190
-#define KEY_setpgrp 191
-#define KEY_setpriority 192
-#define KEY_setprotoent 193
-#define KEY_setpwent 194
-#define KEY_setservent 195
-#define KEY_setsockopt 196
-#define KEY_shift 197
-#define KEY_shmctl 198
-#define KEY_shmget 199
-#define KEY_shmread 200
-#define KEY_shmwrite 201
-#define KEY_shutdown 202
-#define KEY_sin 203
-#define KEY_sleep 204
-#define KEY_socket 205
-#define KEY_socketpair 206
-#define KEY_sort 207
-#define KEY_splice 208
-#define KEY_split 209
-#define KEY_sprintf 210
-#define KEY_sqrt 211
-#define KEY_srand 212
-#define KEY_stat 213
-#define KEY_state 214
-#define KEY_study 215
-#define KEY_sub 216
-#define KEY_substr 217
-#define KEY_symlink 218
-#define KEY_syscall 219
-#define KEY_sysopen 220
-#define KEY_sysread 221
-#define KEY_sysseek 222
-#define KEY_system 223
-#define KEY_syswrite 224
-#define KEY_tell 225
-#define KEY_telldir 226
-#define KEY_tie 227
-#define KEY_tied 228
-#define KEY_time 229
-#define KEY_times 230
-#define KEY_tr 231
-#define KEY_try 232
-#define KEY_truncate 233
-#define KEY_uc 234
-#define KEY_ucfirst 235
-#define KEY_umask 236
-#define KEY_undef 237
-#define KEY_unless 238
-#define KEY_unlink 239
-#define KEY_unpack 240
-#define KEY_unshift 241
-#define KEY_untie 242
-#define KEY_until 243
-#define KEY_use 244
-#define KEY_utime 245
-#define KEY_values 246
-#define KEY_vec 247
-#define KEY_wait 248
-#define KEY_waitpid 249
-#define KEY_wantarray 250
-#define KEY_warn 251
-#define KEY_when 252
-#define KEY_while 253
-#define KEY_write 254
-#define KEY_x 255
-#define KEY_xor 256
-#define KEY_y 257
+#define KEY_defer 42
+#define KEY_defined 43
+#define KEY_delete 44
+#define KEY_die 45
+#define KEY_do 46
+#define KEY_dump 47
+#define KEY_each 48
+#define KEY_else 49
+#define KEY_elsif 50
+#define KEY_endgrent 51
+#define KEY_endhostent 52
+#define KEY_endnetent 53
+#define KEY_endprotoent 54
+#define KEY_endpwent 55
+#define KEY_endservent 56
+#define KEY_eof 57
+#define KEY_eq 58
+#define KEY_eval 59
+#define KEY_evalbytes 60
+#define KEY_exec 61
+#define KEY_exists 62
+#define KEY_exit 63
+#define KEY_exp 64
+#define KEY_fc 65
+#define KEY_fcntl 66
+#define KEY_fileno 67
+#define KEY_flock 68
+#define KEY_for 69
+#define KEY_foreach 70
+#define KEY_fork 71
+#define KEY_format 72
+#define KEY_formline 73
+#define KEY_ge 74
+#define KEY_getc 75
+#define KEY_getgrent 76
+#define KEY_getgrgid 77
+#define KEY_getgrnam 78
+#define KEY_gethostbyaddr 79
+#define KEY_gethostbyname 80
+#define KEY_gethostent 81
+#define KEY_getlogin 82
+#define KEY_getnetbyaddr 83
+#define KEY_getnetbyname 84
+#define KEY_getnetent 85
+#define KEY_getpeername 86
+#define KEY_getpgrp 87
+#define KEY_getppid 88
+#define KEY_getpriority 89
+#define KEY_getprotobyname 90
+#define KEY_getprotobynumber 91
+#define KEY_getprotoent 92
+#define KEY_getpwent 93
+#define KEY_getpwnam 94
+#define KEY_getpwuid 95
+#define KEY_getservbyname 96
+#define KEY_getservbyport 97
+#define KEY_getservent 98
+#define KEY_getsockname 99
+#define KEY_getsockopt 100
+#define KEY_given 101
+#define KEY_glob 102
+#define KEY_gmtime 103
+#define KEY_goto 104
+#define KEY_grep 105
+#define KEY_gt 106
+#define KEY_hex 107
+#define KEY_if 108
+#define KEY_index 109
+#define KEY_int 110
+#define KEY_ioctl 111
+#define KEY_isa 112
+#define KEY_join 113
+#define KEY_keys 114
+#define KEY_kill 115
+#define KEY_last 116
+#define KEY_lc 117
+#define KEY_lcfirst 118
+#define KEY_le 119
+#define KEY_length 120
+#define KEY_link 121
+#define KEY_listen 122
+#define KEY_local 123
+#define KEY_localtime 124
+#define KEY_lock 125
+#define KEY_log 126
+#define KEY_lstat 127
+#define KEY_lt 128
+#define KEY_m 129
+#define KEY_map 130
+#define KEY_mkdir 131
+#define KEY_msgctl 132
+#define KEY_msgget 133
+#define KEY_msgrcv 134
+#define KEY_msgsnd 135
+#define KEY_my 136
+#define KEY_ne 137
+#define KEY_next 138
+#define KEY_no 139
+#define KEY_not 140
+#define KEY_oct 141
+#define KEY_open 142
+#define KEY_opendir 143
+#define KEY_or 144
+#define KEY_ord 145
+#define KEY_our 146
+#define KEY_pack 147
+#define KEY_package 148
+#define KEY_pipe 149
+#define KEY_pop 150
+#define KEY_pos 151
+#define KEY_print 152
+#define KEY_printf 153
+#define KEY_prototype 154
+#define KEY_push 155
+#define KEY_q 156
+#define KEY_qq 157
+#define KEY_qr 158
+#define KEY_quotemeta 159
+#define KEY_qw 160
+#define KEY_qx 161
+#define KEY_rand 162
+#define KEY_read 163
+#define KEY_readdir 164
+#define KEY_readline 165
+#define KEY_readlink 166
+#define KEY_readpipe 167
+#define KEY_recv 168
+#define KEY_redo 169
+#define KEY_ref 170
+#define KEY_rename 171
+#define KEY_require 172
+#define KEY_reset 173
+#define KEY_return 174
+#define KEY_reverse 175
+#define KEY_rewinddir 176
+#define KEY_rindex 177
+#define KEY_rmdir 178
+#define KEY_s 179
+#define KEY_say 180
+#define KEY_scalar 181
+#define KEY_seek 182
+#define KEY_seekdir 183
+#define KEY_select 184
+#define KEY_semctl 185
+#define KEY_semget 186
+#define KEY_semop 187
+#define KEY_send 188
+#define KEY_setgrent 189
+#define KEY_sethostent 190
+#define KEY_setnetent 191
+#define KEY_setpgrp 192
+#define KEY_setpriority 193
+#define KEY_setprotoent 194
+#define KEY_setpwent 195
+#define KEY_setservent 196
+#define KEY_setsockopt 197
+#define KEY_shift 198
+#define KEY_shmctl 199
+#define KEY_shmget 200
+#define KEY_shmread 201
+#define KEY_shmwrite 202
+#define KEY_shutdown 203
+#define KEY_sin 204
+#define KEY_sleep 205
+#define KEY_socket 206
+#define KEY_socketpair 207
+#define KEY_sort 208
+#define KEY_splice 209
+#define KEY_split 210
+#define KEY_sprintf 211
+#define KEY_sqrt 212
+#define KEY_srand 213
+#define KEY_stat 214
+#define KEY_state 215
+#define KEY_study 216
+#define KEY_sub 217
+#define KEY_substr 218
+#define KEY_symlink 219
+#define KEY_syscall 220
+#define KEY_sysopen 221
+#define KEY_sysread 222
+#define KEY_sysseek 223
+#define KEY_system 224
+#define KEY_syswrite 225
+#define KEY_tell 226
+#define KEY_telldir 227
+#define KEY_tie 228
+#define KEY_tied 229
+#define KEY_time 230
+#define KEY_times 231
+#define KEY_tr 232
+#define KEY_try 233
+#define KEY_truncate 234
+#define KEY_uc 235
+#define KEY_ucfirst 236
+#define KEY_umask 237
+#define KEY_undef 238
+#define KEY_unless 239
+#define KEY_unlink 240
+#define KEY_unpack 241
+#define KEY_unshift 242
+#define KEY_untie 243
+#define KEY_until 244
+#define KEY_use 245
+#define KEY_utime 246
+#define KEY_values 247
+#define KEY_vec 248
+#define KEY_wait 249
+#define KEY_waitpid 250
+#define KEY_wantarray 251
+#define KEY_warn 252
+#define KEY_when 253
+#define KEY_while 254
+#define KEY_write 255
+#define KEY_x 256
+#define KEY_xor 257
+#define KEY_y 258
/* Generated from:
- * 3a4f2004642b00b871c01cbdc018f6ca5ead6b4e0b2b184120c60b0b62a229dd regen/keywords.pl
+ * de1ee232f68ea8ae75d09f4f70b58fee8a6e6244dec3ab68baab54f7af9ce306 regen/keywords.pl
* ex: set ro: */