4979b236e5529550920adac506b41f457a27cbcd
[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]{strayman}
27
28 \errorcontextlines=999
29
30 \usepackage[T1]{fontenc}
31 \usepackage[utf8]{inputenc}
32 \usepackage[palatino, helvetica, courier, maths=cmr]{mdwfonts}
33 \usepackage{tikz}
34 \usepackage{syntax}
35 \usepackage{sverb}
36 \usepackage{mdwtab}
37 \usepackage[mdwmargin]{mdwthm}
38 \usepackage{amssymb}
39 \usepackage{footnote}
40 \usepackage{at}
41 \usepackage{mdwref}
42
43 \usepackage{sod}
44
45 \title{A Sensible Object Design for C}
46 \author{Mark Wooding}
47
48 \begin{document}
49
50 \maketitle
51
52 %%%--------------------------------------------------------------------------
53 \frontmatter
54
55 \tableofcontents
56
57 \mainmatter
58
59 %%%--------------------------------------------------------------------------
60 \part{Tutorial} \label{p:tut}
61
62 \include{tutorial}
63
64 %%%--------------------------------------------------------------------------
65 \part{Reference} \label{p:ref}
66
67 \include{concepts}
68 \include{cmdline}
69 \include{syntax}
70 \include{structures}
71 \include{runtime}
72
73 %%%--------------------------------------------------------------------------
74 \part{Lisp interface} \label{p:lisp}
75
76 \include{lispintro}
77 %% package.lisp
78 %% sod.asd.in
79 %% sod-frontend.asd.in
80 %% auto.lisp.in
81
82 \include{misc}
83 %% pset-impl.lisp
84 %% pset-parse.lisp
85 %% pset-proto.lisp
86 %% lexer-bits.lisp
87 %% lexer-impl.lisp
88 %% lexer-proto.lisp
89 %% utilities.lisp
90 %% optparse.lisp
91 %% frontend.lisp
92 %% final.lisp
93
94 \include{parsing}
95 %% package.lisp
96 %% floc-impl.lisp
97 %% floc-proto.lisp
98 %% streams-impl.lisp
99 %% streams-proto.lisp
100 %% scanner-context-impl.lisp
101 %% scanner-impl.lisp
102 %% scanner-proto.lisp
103 %% scanner-token-impl.lisp
104 %% scanner-charbuf-impl.lisp
105 %% parser-impl.lisp
106 %% parser-proto.lisp
107 %% parser-expr-impl.lisp
108 %% parser-expr-proto.lisp
109
110 \include{clang}
111 %% c-types-class-impl.lisp
112 %% c-types-impl.lisp
113 %% c-types-parse.lisp
114 %% c-types-proto.lisp
115 %% codegen-impl.lisp
116 %% codegen-proto.lisp
117 %% fragment-parse.lisp
118
119 \include{meta}
120 %% classes.lisp
121 %% class-utilities.lisp
122 %% class-make-impl.lisp
123 %% class-make-proto.lisp
124 %% class-finalize-impl.lisp
125 %% class-finalize-proto.lisp
126
127 \include{layout}
128 %% class-layout-impl.lisp
129 %% class-layout-proto.lisp
130 %% method-impl.lisp
131 %% method-proto.lisp
132 %% method-aggregate.lisp
133
134 \include{module}
135 %% module-impl.lisp
136 %% module-parse.lisp
137 %% module-proto.lisp
138 %% builtin.lisp
139
140 \include{output}
141 %% output-impl.lisp
142 %% output-proto.lisp
143 %% class-output.lisp
144 %% module-output.lisp
145
146 %%%--------------------------------------------------------------------------
147 \part{Appendices}
148 \appendix
149
150 \include{cutting-room-floor}
151
152 %%%----- That's all, folks --------------------------------------------------
153 \end{document}
154
155 %%% Local variables:
156 %%% mode: LaTeX
157 %%% TeX-PDF-mode: t
158 %%% End: