1 % Copyright (C) 2008 Bert Burgemeister
3 % Permission is granted to copy, distribute and/or modify this
4 % document under the terms of the GNU Free Documentation License,
5 % Version 1.2 or any later version published by the Free Software
6 % Foundation; with no Invariant Sections, no Front-Cover Texts and
7 % no Back-Cover Texts. For details see file COPYING.
10 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
12 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
16 \IT{(
\FU*
{SLOT-EXISTS-P
} \VAR{foo
} \VAR{bar
})
}
18 \retval{\T} if
\VAR{foo
} has a slot
\VAR{bar
}.
27 (
\kwd{:conc-name
} \Op{\VAR{slot-prefix
}\DF{\VAR{name
}\LIT{-
}}})
}{.
}\\
31 \OP{\VAR{maker
}\DF{\LIT{make-
}\VAR{name
}}\text{ }
32 \Op{(
{\OPn{\VAR{arg
}}})
}})
}{\
}^
{\!\!*
}}\\
36 \Op{\VAR{copier
}\DF{\LIT{copy-
}\VAR{name
}}})
}{.
}\\
37 (
\kwd{:include
} \VAR{ struct
}\text{ }
40 (
\VAR{slot
} \Op{\VAR{init
}\text{ }
42 \kwd{:type
} \NEV{\VAR{type
}}\\
43 \kwd{:read-only
} \NEV{\VAR{bool
}}}{\
}}})\\
45 (
\kwd{:type
} \xorGOO{\kwd{list
}\\
47 (
\kwd{vector
}\VAR{ size
})
}{\
}})
\text{ }\Op{\kwd{:named
}}\\
48 (
\kwd{:initial-offset
} \VAR{ n
})\\
51 (
\kwd{:predicate
} \Op{\VAR{p-name
}\DF{\VAR{name
}\LIT{-p
}}})
}{.
}\\
53 (
\kwd{:print-object
} \Op{\VAR{printer
}})\\
54 (
\kwd{:print-function
} \Op{\VAR{printer
}})
62 (
\VAR{slot-name
} \Op{\VAR{init
}\text{ }
64 \kwd{:type
} \NEV{\VAR{type
}}\\
65 \kwd{:read-only
} \NEV{\VAR{bool
}}
70 Define structure
\retval{\VAR{name
}} together with functions
71 \LIT{make-
}\VAR{name
},
\LIT{copy-
}\VAR{name
} and
72 \VAR{name
}\LIT{-p
}; and accessors
\VAR{name
}\LIT{-
}\VAR{slot-name
}.
75 \IT{(
\FU*
{COPY-STRUCTURE
} \VAR{structure
})
}
77 Return
\retval{copy of
\VAR{structure
}} with shared slot values.