diff options
author | Paul "LeoNerd" Evans <leonerd@leonerd.org.uk> | 2022-12-24 13:17:47 +0000 |
---|---|---|
committer | Paul "LeoNerd" Evans <leonerd@leonerd.org.uk> | 2023-02-10 12:07:02 +0000 |
commit | 99b497aa90ed7db99d29a301b47c91fba65c9cb3 (patch) | |
tree | 09e231f3a6838cdb2df9db9454981b9205046ba1 /keywords.h | |
parent | b40895ae558e0aff0c347785dafeaaff40a01801 (diff) | |
download | perl-99b497aa90ed7db99d29a301b47c91fba65c9cb3.tar.gz |
Initial attack at basic 'class' feature
Adds a new experimental warning, feature, keywords and enough parsing to
implement basic classes with an empty `new` constructor method.
Inject a $self lexical into method bodies; populate it with the object instance, suitably shifted
Creates a new OP_METHSTART opcode to perform method setup
Define an aux flag to remark which stashes are classes
Basic implementation of fields.
Basic anonymous methods.
Diffstat (limited to 'keywords.h')
-rw-r--r-- | keywords.h | 512 |
1 files changed, 258 insertions, 254 deletions
diff --git a/keywords.h b/keywords.h index f2304ba9cf..feae6f6dce 100644 --- a/keywords.h +++ b/keywords.h @@ -20,260 +20,264 @@ #define KEY___DATA__ 4 #define KEY___END__ 5 #define KEY___SUB__ 6 -#define KEY_AUTOLOAD 7 -#define KEY_BEGIN 8 -#define KEY_UNITCHECK 9 -#define KEY_DESTROY 10 -#define KEY_END 11 -#define KEY_INIT 12 -#define KEY_CHECK 13 -#define KEY_abs 14 -#define KEY_accept 15 -#define KEY_alarm 16 -#define KEY_and 17 -#define KEY_atan2 18 -#define KEY_bind 19 -#define KEY_binmode 20 -#define KEY_bless 21 -#define KEY_break 22 -#define KEY_caller 23 -#define KEY_catch 24 -#define KEY_chdir 25 -#define KEY_chmod 26 -#define KEY_chomp 27 -#define KEY_chop 28 -#define KEY_chown 29 -#define KEY_chr 30 -#define KEY_chroot 31 -#define KEY_close 32 -#define KEY_closedir 33 -#define KEY_cmp 34 -#define KEY_connect 35 -#define KEY_continue 36 -#define KEY_cos 37 -#define KEY_crypt 38 -#define KEY_dbmclose 39 -#define KEY_dbmopen 40 -#define KEY_default 41 -#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_finally 68 -#define KEY_flock 69 -#define KEY_for 70 -#define KEY_foreach 71 -#define KEY_fork 72 -#define KEY_format 73 -#define KEY_formline 74 -#define KEY_ge 75 -#define KEY_getc 76 -#define KEY_getgrent 77 -#define KEY_getgrgid 78 -#define KEY_getgrnam 79 -#define KEY_gethostbyaddr 80 -#define KEY_gethostbyname 81 -#define KEY_gethostent 82 -#define KEY_getlogin 83 -#define KEY_getnetbyaddr 84 -#define KEY_getnetbyname 85 -#define KEY_getnetent 86 -#define KEY_getpeername 87 -#define KEY_getpgrp 88 -#define KEY_getppid 89 -#define KEY_getpriority 90 -#define KEY_getprotobyname 91 -#define KEY_getprotobynumber 92 -#define KEY_getprotoent 93 -#define KEY_getpwent 94 -#define KEY_getpwnam 95 -#define KEY_getpwuid 96 -#define KEY_getservbyname 97 -#define KEY_getservbyport 98 -#define KEY_getservent 99 -#define KEY_getsockname 100 -#define KEY_getsockopt 101 -#define KEY_given 102 -#define KEY_glob 103 -#define KEY_gmtime 104 -#define KEY_goto 105 -#define KEY_grep 106 -#define KEY_gt 107 -#define KEY_hex 108 -#define KEY_if 109 -#define KEY_index 110 -#define KEY_int 111 -#define KEY_ioctl 112 -#define KEY_isa 113 -#define KEY_join 114 -#define KEY_keys 115 -#define KEY_kill 116 -#define KEY_last 117 -#define KEY_lc 118 -#define KEY_lcfirst 119 -#define KEY_le 120 -#define KEY_length 121 -#define KEY_link 122 -#define KEY_listen 123 -#define KEY_local 124 -#define KEY_localtime 125 -#define KEY_lock 126 -#define KEY_log 127 -#define KEY_lstat 128 -#define KEY_lt 129 -#define KEY_m 130 -#define KEY_map 131 -#define KEY_mkdir 132 -#define KEY_msgctl 133 -#define KEY_msgget 134 -#define KEY_msgrcv 135 -#define KEY_msgsnd 136 -#define KEY_my 137 -#define KEY_ne 138 -#define KEY_next 139 -#define KEY_no 140 -#define KEY_not 141 -#define KEY_oct 142 -#define KEY_open 143 -#define KEY_opendir 144 -#define KEY_or 145 -#define KEY_ord 146 -#define KEY_our 147 -#define KEY_pack 148 -#define KEY_package 149 -#define KEY_pipe 150 -#define KEY_pop 151 -#define KEY_pos 152 -#define KEY_print 153 -#define KEY_printf 154 -#define KEY_prototype 155 -#define KEY_push 156 -#define KEY_q 157 -#define KEY_qq 158 -#define KEY_qr 159 -#define KEY_quotemeta 160 -#define KEY_qw 161 -#define KEY_qx 162 -#define KEY_rand 163 -#define KEY_read 164 -#define KEY_readdir 165 -#define KEY_readline 166 -#define KEY_readlink 167 -#define KEY_readpipe 168 -#define KEY_recv 169 -#define KEY_redo 170 -#define KEY_ref 171 -#define KEY_rename 172 -#define KEY_require 173 -#define KEY_reset 174 -#define KEY_return 175 -#define KEY_reverse 176 -#define KEY_rewinddir 177 -#define KEY_rindex 178 -#define KEY_rmdir 179 -#define KEY_s 180 -#define KEY_say 181 -#define KEY_scalar 182 -#define KEY_seek 183 -#define KEY_seekdir 184 -#define KEY_select 185 -#define KEY_semctl 186 -#define KEY_semget 187 -#define KEY_semop 188 -#define KEY_send 189 -#define KEY_setgrent 190 -#define KEY_sethostent 191 -#define KEY_setnetent 192 -#define KEY_setpgrp 193 -#define KEY_setpriority 194 -#define KEY_setprotoent 195 -#define KEY_setpwent 196 -#define KEY_setservent 197 -#define KEY_setsockopt 198 -#define KEY_shift 199 -#define KEY_shmctl 200 -#define KEY_shmget 201 -#define KEY_shmread 202 -#define KEY_shmwrite 203 -#define KEY_shutdown 204 -#define KEY_sin 205 -#define KEY_sleep 206 -#define KEY_socket 207 -#define KEY_socketpair 208 -#define KEY_sort 209 -#define KEY_splice 210 -#define KEY_split 211 -#define KEY_sprintf 212 -#define KEY_sqrt 213 -#define KEY_srand 214 -#define KEY_stat 215 -#define KEY_state 216 -#define KEY_study 217 -#define KEY_sub 218 -#define KEY_substr 219 -#define KEY_symlink 220 -#define KEY_syscall 221 -#define KEY_sysopen 222 -#define KEY_sysread 223 -#define KEY_sysseek 224 -#define KEY_system 225 -#define KEY_syswrite 226 -#define KEY_tell 227 -#define KEY_telldir 228 -#define KEY_tie 229 -#define KEY_tied 230 -#define KEY_time 231 -#define KEY_times 232 -#define KEY_tr 233 -#define KEY_try 234 -#define KEY_truncate 235 -#define KEY_uc 236 -#define KEY_ucfirst 237 -#define KEY_umask 238 -#define KEY_undef 239 -#define KEY_unless 240 -#define KEY_unlink 241 -#define KEY_unpack 242 -#define KEY_unshift 243 -#define KEY_untie 244 -#define KEY_until 245 -#define KEY_use 246 -#define KEY_utime 247 -#define KEY_values 248 -#define KEY_vec 249 -#define KEY_wait 250 -#define KEY_waitpid 251 -#define KEY_wantarray 252 -#define KEY_warn 253 -#define KEY_when 254 -#define KEY_while 255 -#define KEY_write 256 -#define KEY_x 257 -#define KEY_xor 258 -#define KEY_y 259 +#define KEY_ADJUST 7 +#define KEY_AUTOLOAD 8 +#define KEY_BEGIN 9 +#define KEY_UNITCHECK 10 +#define KEY_DESTROY 11 +#define KEY_END 12 +#define KEY_INIT 13 +#define KEY_CHECK 14 +#define KEY_abs 15 +#define KEY_accept 16 +#define KEY_alarm 17 +#define KEY_and 18 +#define KEY_atan2 19 +#define KEY_bind 20 +#define KEY_binmode 21 +#define KEY_bless 22 +#define KEY_break 23 +#define KEY_caller 24 +#define KEY_catch 25 +#define KEY_chdir 26 +#define KEY_chmod 27 +#define KEY_chomp 28 +#define KEY_chop 29 +#define KEY_chown 30 +#define KEY_chr 31 +#define KEY_chroot 32 +#define KEY_class 33 +#define KEY_close 34 +#define KEY_closedir 35 +#define KEY_cmp 36 +#define KEY_connect 37 +#define KEY_continue 38 +#define KEY_cos 39 +#define KEY_crypt 40 +#define KEY_dbmclose 41 +#define KEY_dbmopen 42 +#define KEY_default 43 +#define KEY_defer 44 +#define KEY_defined 45 +#define KEY_delete 46 +#define KEY_die 47 +#define KEY_do 48 +#define KEY_dump 49 +#define KEY_each 50 +#define KEY_else 51 +#define KEY_elsif 52 +#define KEY_endgrent 53 +#define KEY_endhostent 54 +#define KEY_endnetent 55 +#define KEY_endprotoent 56 +#define KEY_endpwent 57 +#define KEY_endservent 58 +#define KEY_eof 59 +#define KEY_eq 60 +#define KEY_eval 61 +#define KEY_evalbytes 62 +#define KEY_exec 63 +#define KEY_exists 64 +#define KEY_exit 65 +#define KEY_exp 66 +#define KEY_fc 67 +#define KEY_fcntl 68 +#define KEY_field 69 +#define KEY_fileno 70 +#define KEY_finally 71 +#define KEY_flock 72 +#define KEY_for 73 +#define KEY_foreach 74 +#define KEY_fork 75 +#define KEY_format 76 +#define KEY_formline 77 +#define KEY_ge 78 +#define KEY_getc 79 +#define KEY_getgrent 80 +#define KEY_getgrgid 81 +#define KEY_getgrnam 82 +#define KEY_gethostbyaddr 83 +#define KEY_gethostbyname 84 +#define KEY_gethostent 85 +#define KEY_getlogin 86 +#define KEY_getnetbyaddr 87 +#define KEY_getnetbyname 88 +#define KEY_getnetent 89 +#define KEY_getpeername 90 +#define KEY_getpgrp 91 +#define KEY_getppid 92 +#define KEY_getpriority 93 +#define KEY_getprotobyname 94 +#define KEY_getprotobynumber 95 +#define KEY_getprotoent 96 +#define KEY_getpwent 97 +#define KEY_getpwnam 98 +#define KEY_getpwuid 99 +#define KEY_getservbyname 100 +#define KEY_getservbyport 101 +#define KEY_getservent 102 +#define KEY_getsockname 103 +#define KEY_getsockopt 104 +#define KEY_given 105 +#define KEY_glob 106 +#define KEY_gmtime 107 +#define KEY_goto 108 +#define KEY_grep 109 +#define KEY_gt 110 +#define KEY_hex 111 +#define KEY_if 112 +#define KEY_index 113 +#define KEY_int 114 +#define KEY_ioctl 115 +#define KEY_isa 116 +#define KEY_join 117 +#define KEY_keys 118 +#define KEY_kill 119 +#define KEY_last 120 +#define KEY_lc 121 +#define KEY_lcfirst 122 +#define KEY_le 123 +#define KEY_length 124 +#define KEY_link 125 +#define KEY_listen 126 +#define KEY_local 127 +#define KEY_localtime 128 +#define KEY_lock 129 +#define KEY_log 130 +#define KEY_lstat 131 +#define KEY_lt 132 +#define KEY_m 133 +#define KEY_map 134 +#define KEY_method 135 +#define KEY_mkdir 136 +#define KEY_msgctl 137 +#define KEY_msgget 138 +#define KEY_msgrcv 139 +#define KEY_msgsnd 140 +#define KEY_my 141 +#define KEY_ne 142 +#define KEY_next 143 +#define KEY_no 144 +#define KEY_not 145 +#define KEY_oct 146 +#define KEY_open 147 +#define KEY_opendir 148 +#define KEY_or 149 +#define KEY_ord 150 +#define KEY_our 151 +#define KEY_pack 152 +#define KEY_package 153 +#define KEY_pipe 154 +#define KEY_pop 155 +#define KEY_pos 156 +#define KEY_print 157 +#define KEY_printf 158 +#define KEY_prototype 159 +#define KEY_push 160 +#define KEY_q 161 +#define KEY_qq 162 +#define KEY_qr 163 +#define KEY_quotemeta 164 +#define KEY_qw 165 +#define KEY_qx 166 +#define KEY_rand 167 +#define KEY_read 168 +#define KEY_readdir 169 +#define KEY_readline 170 +#define KEY_readlink 171 +#define KEY_readpipe 172 +#define KEY_recv 173 +#define KEY_redo 174 +#define KEY_ref 175 +#define KEY_rename 176 +#define KEY_require 177 +#define KEY_reset 178 +#define KEY_return 179 +#define KEY_reverse 180 +#define KEY_rewinddir 181 +#define KEY_rindex 182 +#define KEY_rmdir 183 +#define KEY_s 184 +#define KEY_say 185 +#define KEY_scalar 186 +#define KEY_seek 187 +#define KEY_seekdir 188 +#define KEY_select 189 +#define KEY_semctl 190 +#define KEY_semget 191 +#define KEY_semop 192 +#define KEY_send 193 +#define KEY_setgrent 194 +#define KEY_sethostent 195 +#define KEY_setnetent 196 +#define KEY_setpgrp 197 +#define KEY_setpriority 198 +#define KEY_setprotoent 199 +#define KEY_setpwent 200 +#define KEY_setservent 201 +#define KEY_setsockopt 202 +#define KEY_shift 203 +#define KEY_shmctl 204 +#define KEY_shmget 205 +#define KEY_shmread 206 +#define KEY_shmwrite 207 +#define KEY_shutdown 208 +#define KEY_sin 209 +#define KEY_sleep 210 +#define KEY_socket 211 +#define KEY_socketpair 212 +#define KEY_sort 213 +#define KEY_splice 214 +#define KEY_split 215 +#define KEY_sprintf 216 +#define KEY_sqrt 217 +#define KEY_srand 218 +#define KEY_stat 219 +#define KEY_state 220 +#define KEY_study 221 +#define KEY_sub 222 +#define KEY_substr 223 +#define KEY_symlink 224 +#define KEY_syscall 225 +#define KEY_sysopen 226 +#define KEY_sysread 227 +#define KEY_sysseek 228 +#define KEY_system 229 +#define KEY_syswrite 230 +#define KEY_tell 231 +#define KEY_telldir 232 +#define KEY_tie 233 +#define KEY_tied 234 +#define KEY_time 235 +#define KEY_times 236 +#define KEY_tr 237 +#define KEY_try 238 +#define KEY_truncate 239 +#define KEY_uc 240 +#define KEY_ucfirst 241 +#define KEY_umask 242 +#define KEY_undef 243 +#define KEY_unless 244 +#define KEY_unlink 245 +#define KEY_unpack 246 +#define KEY_unshift 247 +#define KEY_untie 248 +#define KEY_until 249 +#define KEY_use 250 +#define KEY_utime 251 +#define KEY_values 252 +#define KEY_vec 253 +#define KEY_wait 254 +#define KEY_waitpid 255 +#define KEY_wantarray 256 +#define KEY_warn 257 +#define KEY_when 258 +#define KEY_while 259 +#define KEY_write 260 +#define KEY_x 261 +#define KEY_xor 262 +#define KEY_y 263 /* Generated from: - * b680fb3a27b173b65d9c4e534ad92897c925e336476879a6be1da18ac55cbe8b regen/keywords.pl + * eb67e851da14ede1aad67aec4a387fa250c1345407fad0a02988d2d8d3cc27f2 regen/keywords.pl * ex: set ro: */ |