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 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
22 (
\kwd{:conc-name
} \Op{\NEV{\VAR{slot-prefix
}}\DF{\VAR{foo
}\LIT{-
}}})
}{.
}\\
26 \OP{\NEV{\VAR{maker
}}\DF{\LIT{MAKE-
}\VAR{foo
}}\text{ }
27 \Op{(
{\OPn{\NEV{\VAR{ord-$
\lambda$
}}}})
}})
}{\
}^
{\!\!*
}}\\
31 \Op{\NEV{\VAR{copier
}}\DF{\LIT{COPY-
}\VAR{foo
}}})
}{.
}\\
32 (
\kwd{:include
} \NEV{\VAR{struct
}}\text{ }
35 (
\NEV{\VAR{slot
}}\text{ } \Op{\VAR{init
}\text{ }
37 \kwd{:type
} \NEV{\VAR{type
}}\\
38 \kwd{:read-only
} \NEV{\VAR{bool
}}}{\
}}})\\
41 (
\kwd{:type
} \xorGOO{\kwd{list
}\\
43 (
\kwd{vector
}\NEV{\VAR{size
}})
}{\
}})
\text{ }
46 (
\kwd{:initial-offset
} \NEV{\VAR{n
}})\\
49 (
\kwd{:print-object
} \Op{\NEV{\VAR{o-printer
}}})\\
50 (
\kwd{:print-function
} \Op{\NEV{\VAR{f-printer
}}})
55 (
\kwd{:predicate
} \Op{\NEV{\VAR{p-name
}}\DF{\VAR{foo
}\LIT{-P
}}})
}{.
}
62 (
\VAR{slot
} \Op{\VAR{init
}\text{ }
64 \kwd{:type
} \NEV{\VAR{type
}}\\
65 \kwd{:read-only
} \NEV{\VAR{bool
}}
70 Define structure type
\retval{\VAR{foo
}} together with functions
71 \LIT{MAKE-
}\VAR{foo
},
\LIT{COPY-
}\VAR{foo
} and (unless
\kwd{:type
}
72 without
\kwd{:named
} is used)
73 \VAR{foo
}\LIT{-P
}; and
\kwd{setf
}able accessors
74 \VAR{foo
}\LIT{-
}\VAR{slot
}. Instances of type
\VAR{foo
} can be
75 created by (
\LIT{MAKE-
}\VAR{foo
} \Goos{\kwd{:
}\VAR{slot
}
76 \VAR{value
}}) or, if
\VAR{ord-$
\lambda$
} (see
77 p.\
\pageref{section:Functions
}) is given, by (
\VAR{maker
}
78 \OPn{\VAR{arg
}} \Goos{\kwd{:
}\VAR{key
} \VAR{value
}}). In the latter
79 case,
\VAR{arg
}s and
\kwd{:
}\VAR{key
}s correspond to the positional
80 and keyword parameters defined in
\VAR{ord-$
\lambda$
} whose
\VAR{var
}s
81 in turn correspond to
\VAR{slot
}s.
82 \kwd{:print-object
}/
\kwd{:print-function
} generate a
83 \GFU{print-object
} method for an instance
\VAR{bar
} of
\VAR{foo
}
84 calling (
\VAR{o-printer
} \VAR{bar
} \VAR{stream
}) or (
\VAR{f-printer
}
85 \VAR{bar
} \VAR{stream
} \VAR{print-level
}), respectively.
88 \IT{(
\FU*
{COPY-STRUCTURE
} \VAR{structure
})
}
90 Return
\retval{copy of
\VAR{structure
}} with shared slot values.
99 %%% TeX-master: "clqr"