src/class-output.lisp: Leave `*instance-class*' unbound at top-level.
[sod] / doc / sod.tex
1 %%% -*-latex-*-
2 %%%
3 %%% Description of the internal class structure and protocol
4 %%%
5 %%% (c) 2009 Straylight/Edgeware
6 %%%
7
8 %%%----- Licensing notice ---------------------------------------------------
9 %%%
10 %%% This file is part of the Simple Object Definition system.
11 %%%
12 %%% SOD is free software; you can redistribute it and/or modify
13 %%% it under the terms of the GNU General Public License as published by
14 %%% the Free Software Foundation; either version 2 of the License, or
15 %%% (at your option) any later version.
16 %%%
17 %%% SOD is distributed in the hope that it will be useful,
18 %%% but WITHOUT ANY WARRANTY; without even the implied warranty of
19 %%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20 %%% GNU General Public License for more details.
21 %%%
22 %%% You should have received a copy of the GNU General Public License
23 %%% along with SOD; if not, write to the Free Software Foundation,
24 %%% Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
25
26 \documentclass[noarticle, titlepage]{strayman}
27
28 \errorcontextlines=999
29
30 \usepackage[T1]{fontenc}
31 \usepackage[utf8]{inputenc}
32 \usepackage[palatino, helvetica, courier, maths=cmr]{mdwfonts}
33 \usepackage{makeidx}
34 \usepackage
35 [columns=2, justific=raggedright,
36 totoc=true, font=small]
37 {idxlayout}
38 \usepackage{tikz}
39 \usetikzlibrary{calc}
40 \usetikzlibrary{positioning}
41 \usepackage{syntax}
42 \usepackage{sverb}
43 \usepackage{longtable, mdwtab}
44 \usepackage[mdwmargin, within=section]{mdwthm}
45 \usepackage{amssymb}
46 \usepackage{footnote}
47 \usepackage{at}
48 \usepackage{mdwref}
49
50 \usepackage{sod}
51
52 \makeindex
53 \let\indexstheadcase\relax
54 \bibliographystyle{mdwalpha}
55
56 \ifx\pkgversion\xxundefined
57 \immediate\typeout{WARNING: \string\pkgversion\ not defined}
58 \def\pkgversion{UNSET}
59 \fi
60
61 \title{A Sensible Object Design for C}
62 \author{Mark Wooding}
63 \date{\today; version \pkgversion}
64 \innerhead[Version \pkgversion]{}
65
66 %%\includeonly{...}
67
68 \begin{document}
69
70 \frontmatter
71 \maketitle
72
73 %%%--------------------------------------------------------------------------
74
75 \tableofcontents
76
77 \mainmatter
78
79 \include{intro}
80
81 %%%--------------------------------------------------------------------------
82 \part{Tutorial\label{p:tut}}
83
84 \include{tutorial}
85
86 %%%--------------------------------------------------------------------------
87 \part{Reference\label{p:ref}}
88
89 \include{refintro}
90 \include{concepts}
91 \include{cmdline}
92 \include{syntax}
93 \include{runtime}
94 \include{structures}
95
96 %%%--------------------------------------------------------------------------
97 \part{Lisp interface\label{p:lisp}}
98
99 \include{lispintro}
100 %% package.lisp
101 %% sod.asd.in
102 %% sod-frontend.asd.in
103 %% auto.lisp.in
104
105 \include{misc}
106 %% utilities.lisp
107 %% pset-impl.lisp
108 %% pset-parse.lisp
109 %% pset-proto.lisp
110 %% optparse.lisp
111 %% frontend.lisp
112 %% final.lisp
113
114 \include{parsing}
115 %% package.lisp
116 %% floc-impl.lisp
117 %% floc-proto.lisp
118 %% streams-impl.lisp
119 %% streams-proto.lisp
120 %% scanner-context-impl.lisp
121 %% scanner-impl.lisp
122 %% scanner-proto.lisp
123 %% scanner-token-impl.lisp
124 %% scanner-charbuf-impl.lisp
125 %% parser-impl.lisp
126 %% parser-proto.lisp
127 %% parser-expr-impl.lisp
128 %% parser-expr-proto.lisp
129 %% lexer-impl.lisp
130 %% lexer-proto.lisp
131
132 \include{clang}
133 %% c-types-class-impl.lisp
134 %% c-types-impl.lisp
135 %% c-types-parse.lisp
136 %% c-types-proto.lisp
137 %% codegen-impl.lisp
138 %% codegen-proto.lisp
139 %% fragment-parse.lisp
140
141 \include{meta}
142 %% classes.lisp
143 %% class-utilities.lisp
144 %% class-make-impl.lisp
145 %% class-make-proto.lisp
146 %% class-finalize-impl.lisp
147 %% class-finalize-proto.lisp
148
149 \include{layout}
150 %% class-layout-impl.lisp
151 %% class-layout-proto.lisp
152 %% method-impl.lisp
153 %% method-proto.lisp
154 %% method-aggregate.lisp
155
156 \include{module}
157 %% module-impl.lisp
158 %% module-parse.lisp
159 %% module-proto.lisp
160 %% builtin.lisp
161
162 \include{output}
163 %% output-impl.lisp
164 %% output-proto.lisp
165 %% class-output.lisp
166 %% module-output.lisp
167
168 %%%--------------------------------------------------------------------------
169 \part{Appendices}
170 \appendix
171
172 \include{cutting-room-floor}
173
174 %%%--------------------------------------------------------------------------
175 \backmatter
176
177 \bibliography{sod}
178 \printindex
179
180 %%%----- That's all, folks --------------------------------------------------
181 \end{document}
182
183 %%% Local variables:
184 %%% mode: LaTeX
185 %%% TeX-PDF-mode: t
186 %%% End: