From d4b68bb27f42afb8338f35f9fda0c467ec5d8787 Mon Sep 17 00:00:00 2001 From: "Jeffrey H. Kingston" Date: Tue, 14 Sep 2010 19:35:24 +0000 Subject: Lout 3.18. git-svn-id: http://svn.savannah.nongnu.org/svn/lout/trunk@5 9365b830-b601-4143-9ba8-b4a8e2c3339c --- doc/user/cpp | 89 ++++++++++++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 74 insertions(+), 15 deletions(-) (limited to 'doc/user/cpp') diff --git a/doc/user/cpp b/doc/user/cpp index 9b413ed..0e7748a 100644 --- a/doc/user/cpp +++ b/doc/user/cpp @@ -1,27 +1,86 @@ @Chapter - @Title { C and C++ Programs } + @Title { Computer Programs } @Tag { cprint } @Begin @LP -This chapter describes how to typeset C and C++ program text using the -cp. @Index @Code "@CP" -c. @Index { C++ } -@Code "@CP" symbol in conjunction with the @Code c2lout filter. The -@Code "@CP" symbol looks after printing keywords in bold, variables -in italic, and so on, depending on a style you choose. It does not lay -out programs in the sense of choosing indenting, it preserves the layout -you give to the program. From now on, `C' means `C or C++' wherever -it occurs. +This chapter describes how to typeset computer program text using Lout +in conjunction with the @Code prg2lout +prg2lout. @Index { @Code prg2lout filter program } +@FootNote { +Prior to Version 3.18 of Lout, this chapter described how to typeset +programs written in the C programming language using the +@Code c2lout filter, and Eiffel programs using the @Code eif2lout +filter. These have now been withdrawn and replaced by {@Code prg2lout}, +which handles multiple languages. Ordinary Lout documents require no +modifications as a result of this change. +} +filter program, which is always installed wherever Lout is. @PP -It is possible to simply print out one or more C files; we call this -@I { stand-alone mode }. Alternatively, the C program text may be printed -as part of a larger Lout document; we call this @I { embedded mode }. +It is possible to simply print out one or more program files independently +of any document. Alternatively, the program text may be printed as part of +a larger Lout document. Either way, Lout does not lay out the programs in +the sense of choosing line breaks and indenting; it uses whatever line +breaks and indenting you give to the program. What Lout does do is cope +with characters in the program text that it would ordinarily either reject +or interpret in some way (braces and so on), ensuring that you can include +program texts with absolutely no modifications; plus, if you wish, Lout +will print keywords in bold, identifiers in italics, etc. +@PP +At the time of writing, the available programming languages are: +eiffel. @Index { Eiffel program printing } +c. @Index { C and C++ program printing } +blue. @Index { Blue program printing } +@CD @Tbl + mv { 0.5vx } + af { Italic } + arb { yes } + aformat { @Cell A | @Cell B | @Cell C | @Cell D | @Cell E } + bformat { @Cell A | @Cell @Code B | @Cell @Code C | @Cell @Code D | @Cell E } +{ +@Rowa + A { Language name } + B { Setup file name } + C { Lout symbol } + D { Default style } + E { ` ' escapes } +@Rowb + A { C, C++ } + B { cprint } + C { "@CP" } + D { fixed } + E { No } +@Rowb + A { Eiffel } + B { eiffel } + C { "@Eiffel" } + D { varying } + E { Yes } +@Rowb + A { Blue } + B { blue } + C { "@Blue" } + D { varying } + E { Yes } +} +C and C++ are handled together since, for formatting purposes, they +differ only in that C++ has some additional keywords plus an extra +way to make comments. Whenever we mention C from now on, we mean +both C and C++. The second to fifth columns of this table will be +explained at various points later in this chapter. +@PP +The list of languages is likely to expand, because the @Code "prg2lout" +program has been designed to make it easy to add new languages. Consult +the instructions at the top of the source file of that program if you +want to try it yourself. @BeginSections @Include { cpp_lone } @Include { cpp_embe } +@Include { cpp_opti } @Include { cpp_chan } -@Include { cpp_comm } @Include { cpp_tabs } -@Include { cpp_eiff } +@Include { cpp_comm } +@Include { cpp_prog } +@Include { cpp_pipe } +@Include { cpp_erro } @EndSections @End @Chapter -- cgit