X-Git-Url: https://git.distorted.org.uk/~mdw/sod/blobdiff_plain/ebf5ae2e5caf1e843c313328f43c9e8c6fda0081..7a3da82906a0439313b1a075c739046836e4a80f:/doc/tutorial.tex diff --git a/doc/tutorial.tex b/doc/tutorial.tex index f313e0e..3d90293 100644 --- a/doc/tutorial.tex +++ b/doc/tutorial.tex @@ -96,10 +96,10 @@ The main consequences of this are as follows. Of course, this means that your build system needs to become more complicated. If you use \man{make}{1}, then something like \begin{prog} - SOD = sod - \\+ - .SUFFIXES: .sod .c .h \\ - .sod.c:; \$(SOD) -tc \$< \\ + SOD = sod \\+ + + .SUFFIXES: .sod .c .h \\ + .sod.c:; \$(SOD) -tc \$< \\ .sod.h:; \$(SOD) -th \$< \end{prog} ought to do the job. @@ -109,21 +109,21 @@ ought to do the job. The following is a simple Sod input file. \begin{prog} - /* -*-sod-*- */ - \\+ - code c : includes \{ \\ - \#include "greeter.h" \\ - \} - \\+ - code h : includes \{ \\ - \#include \\ - \#include \\ - \} - \\+ - class Greeter : SodObject \{ \\ \ind - void greet(FILE *fp) \{ \\ \ind - fputs("Hello, world!\textbackslash n", fp); \- \\ - \} \- \\ + /* -*-sod-*- */ \\+ + + code c: includes \{ \\ + \#include "greeter.h" \\ + \} \\+ + + code h: includes \{ \\ + \#include \\ + \#include \\ + \} \\+ + + class Greeter: SodObject \{ \\ \ind + void greet(FILE *fp) \{ \\ \ind + fputs("Hello, world!\textbackslash n", fp); \-\\ + \} \-\\ \} \end{prog} Save it as @"greeter.sod", and run @@ -133,21 +133,21 @@ Save it as @"greeter.sod", and run This will create files @"greeter.c" and @"greeter.h" in the current directory. Here's how we might use such a simple thing. \begin{prog} - \#include "greeter.h" - \\+ - int main(void) \\ - \{ \\ \ind - SOD_DECL(Greeter, g); - \\+ - Greeter_greet(g, stdout); \\ - return (0); \- \\ + \#include "greeter.h" \\+ + + int main(void) \\ + \{ \\ \ind + SOD_DECL(Greeter, g); \\+ + + Greeter_greet(g, stdout); \\ + return (0); \-\\ \} \end{prog} Compare this to the traditional \begin{prog} - \#include - \\+ - int main(void) \\ \ind + \#include \\+ + + int main(void) \\ \ind \{ fputs("Hello, world@\\n", stdout); return (0); \} \end{prog} and I'm sure you'll appreciate the benefits of using Sod already -- mostly to @@ -164,7 +164,7 @@ c"~\ldots, says that \end{prog} needs to appear in the generated @|greeter.c| file; the second says that \begin{prog} - \#include \\ + \#include \\ \#include \end{prog} needs to appear in the header file @|greeter.h|. The generated C files need @@ -175,8 +175,8 @@ approach to all of this: it expects you, the programmer, to deal with it. The basic syntax for @"code" stanzas is \begin{prog} - code @ : @
\{ \\ \ind - @ \- \\ + code @: @
\{ \\ \ind + @ \-\\ \} \end{prog} The @ is either @"c" or @"h", and says which output file the code