Adds parsing for all of the options that can be used in defstruct, which are
:conc-name
:constructor
:copier
:initial-offset
:named
:predicate
:print-function
:print-object
:type
Most of them are fairly simple. But some require thought on how to represent in the resulting struct-node class. I'm not sure the way I did them was best (they might need to be changed). I implemented
:conc-name as a string
constructor as the symbol or if it is a boa-constructor like (make-foo a b c)
include as two slots include-name for the symbol name of the included struct and include-slots for the list of slot description overrides.
For each option, I tried all the ways they could be passed and still be considered valid based on the text in the draft of the ANSI standard.
Adds parsing for all of the options that can be used in
defstruct
, which are:conc-name
:constructor
:copier
:initial-offset
:named
:predicate
:print-function
:print-object
:type
Most of them are fairly simple. But some require thought on how to represent in the resulting
struct-node
class. I'm not sure the way I did them was best (they might need to be changed). I implemented:conc-name
as a stringconstructor
as the symbol or if it is a boa-constructor like(make-foo a b c)
include
as two slotsinclude-name
for the symbol name of the included struct andinclude-slots
for the list of slot description overrides.For each option, I tried all the ways they could be passed and still be considered valid based on the text in the draft of the ANSI standard.