summaryrefslogtreecommitdiffstats
path: root/parser.c
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2024-07-19 17:22:22 -0700
committerKaz Kylheku <kaz@kylheku.com>2024-07-19 17:22:22 -0700
commit1676d6a255354329bde19f9ab141ce672112a358 (patch)
tree19707f312ed035cbd46440469977ad6a15d9a093 /parser.c
parent8f026a4fc707243151faffb89586460354d41cd2 (diff)
downloadtxr-1676d6a255354329bde19f9ab141ce672112a358.tar.gz
txr-1676d6a255354329bde19f9ab141ce672112a358.tar.bz2
txr-1676d6a255354329bde19f9ab141ce672112a358.zip
oop: special methods to handle missing slots.
* struct.h (slotset_s, static_slot_s, static_slot_set_s): New symbol variables declared. (enum special_slot): New enum symbols: slot_m, slotset_m, static_slot_m, static_slot_set_m. * struct.c (slotset_s, static_slot_s, static_slot_set_s): New symbol variables. (special_sym): Associate new symbols with new enums. (struct_init): Intern slotset, static-slot and static-slot-set symbols, initializing the variables. Change the registrations of the same-named functions to use the variables. (slot, maybe_slot, slotset, static_slot, static_slot_set): In the no-such-slot case, check for the special method and call it. * tests/012/oop.tl: New tests. * txr.1: Documented.
Diffstat (limited to 'parser.c')
0 files changed, 0 insertions, 0 deletions