%%%----- Licensing notice ---------------------------------------------------
%%%
-%%% This file is part of the Sensble Object Design, an object system for C.
+%%% This file is part of the Sensible Object Design, an object system for C.
%%%
%%% SOD is free software; you can redistribute it and/or modify
%%% it under the terms of the GNU General Public License as published by
These symbols are defined in the @|sod-utilities| package.
\begin{describe}{mac}
- {with-gensyms (@{ @<var> @! (@<var> @[@<name>@]) @}^*) \\ \ind
- @<declaration>^* \\
+ {with-gensyms (@{ @<var> @! (@<var> @[@<name>@]) @}^*) \\ \ind
+ @<declaration>^* \\
@<form>^*}
\end{describe}
\begin{describe}{mac}
{once-only (@[[ :environment @<env> @]]
- @{ @<var> @! (@<var> @[@<value-form>@]) @}^*) \\ \ind
- @<declaration>^* \\
+ @{ @<var> @! (@<var> @[@<value-form>@]) @}^*) \\ \ind
+ @<declaration>^* \\
@<form>^*}
\end{describe}
\begin{describe}{mac}
{with-locatives
@{ @<var> @! (@{ @<var> @!
- (@<var> @[@<locative>@]) @}^*) @} \\ \ind
- @<declaration>^* \\
+ (@<var> @[@<locative>@]) @}^*) @} \\ \ind
+ @<declaration>^* \\
@<form>^*}
\end{describe}
\begin{describe}{mac}
{categorize (\=@<item-var> @<items>
- @[[ :bind (@{ @<var> @! (@<var> @[@<value>@]) @}^*) @]])
- \\ \ind\ind
- (@{ (@<cat-var> @<cat-predicate>) @}^*) \- \\
- @<declaration>^* \\
- @<body-form>^* \-
- \nlret @<value>^*}
+ @[[ :bind (@{ @<var> @!
+ (@<var> @[@<value>@]) @}^*) @]])
+ \\ \ind\ind
+ (@{ (@<cat-var> @<cat-predicate>) @}^*) \-\\
+ @<declaration>^* \\
+ @<form>^*
+ \-\nlret @<value>^*}
\end{describe}
\begin{describe}{fun}
\end{describe}
\begin{describe}{mac}
- {maybe-print-unreadable-object (@<object> @<stream>
- @[[ :type @<type> @!
- :identity @<identity> @]]) \\ \ind
- @<declaration>^* \\
+ {maybe-print-unreadable-object
+ (@<object> @<stream>
+ @[[ :type @<type> @!
+ :identity @<identity> @]]) \\ \ind
+ @<declaration>^* \\
@<form>^*}
\end{describe}
+\begin{describe}{fun}{print-ugly-stuff @<stream> @<func> @> @<value>^*}
+\end{describe}
+
\begin{describe}{mac}
{dosequence (@<var> @<sequence>
@[[ :start @<start> @! :end @<end> @!
- :indexvar @<var> @]]) \\ \ind
- @<declaration>^* \\
+ :indexvar @<var> @]]) \\ \ind
+ @<declaration>^* \\
@{ @<tag> @! @<statement> @}^*}
\end{describe}
\end{describe}
\begin{describe}{mac}
- {default-slot (@<instance> @<slot> @[@<slot-names>@]) \\ \ind
+ {default-slot (@<instance> @<slot> @[@<slot-names>@]) \\ \ind
@<form>^*}
\end{describe}
\begin{describe}{mac}
- {define-on-demand-slot @<class> @<slot> (@<instance>) \\ \ind
- @[[ @<declaration>^* @! @<doc-string> @]] \\
+ {define-on-demand-slot @<class> @<slot> (@<instance>) \\ \ind
+ @[[ @<declaration>^* @! @<doc-string> @]] \\
@<form>^*}
\end{describe}
\end{describe}
\begin{describe}{fun}
- {make-option \=@<long-name> @<short-name> \+ \\
- \&optional @<arg-name> \\
- \&key :tag :negated-tag :arg-optional-p :documentation \-
+ {make-option \=@<long-name> @<short-name> \+\\
+ \&optional @<arg-name> \\
+ \&key :tag :negated-tag
+ :arg-optional-p :documentation \-
\nlret @<option>}
\end{describe}
(:long-name @<string>) @! \\
(@<string> @<format-arg>^+) @!
(:doc @<string> @<format-arg>^*) @! \\
- (:opt-arg @<arg-name>) @! \\
+ (:arg @<arg-name>) @! (:opt-arg @<arg-name>) @! \\
@<keyword> @! (:tag @<tag>) @!
(:negated-tag @<tag>) @! \\
@{ (@<handler> @<var> @<handler-arg>^*) @}^*
\begin{describe*}
{\dhead{fun}{p-name @<property> @> @<name>}
- \dhead{fun}{setf (p-name @<property>) @<name>}
\dhead{fun}{p-value @<property> @> @<value>}
- \dhead{fun}{setf (p-value @<property>) @<value>}
\dhead{fun}{p-type @<property> @> @<type>}
- \dhead{fun}{setf (p-type @<property>) @<type>}
\dhead{fun}{p-key @<property> @> @<symbol>}
- \dhead{fun}{setf (p-key @<property>) @<symbol>}
\dhead{fun}{p-seenp @<property> @> @<boolean>}
\dhead{fun}{setf (p-seenp @<property>) @<boolean>}}
\end{describe*}
\end{describe}
\begin{describe}{fun}
+ {parse-property @<scanner> @<pset>
+ @> @<result> @<success-flag> @<consumed-flag>}
+\end{describe}
+
+\begin{describe}{fun}
{parse-property-set @<scanner>
@> @<result> @<success-flag> @<consumed-flag>}
\end{describe}
\begin{describe}{fun}{test-module @<path> @<reason>}
\end{describe}
+\begin{describe}{fun}
+ {test-parse-c-type @<string>
+ @> t @<c-type> @<kernel> @<string> @! nil @<indicator>}
+\end{describe}
+
+\begin{describe}{mac}
+ {test-parser (@<scanner>) @<parser> @<input>
+ @> @<success-flag> @<result> @<remainder>}
+\end{describe}
+
\begin{describe}{fun}{exercise}
\end{describe}