aboutsummaryrefslogtreecommitdiffstats
path: root/include/podf
diff options
context:
space:
mode:
authorJeffrey H. Kingston <jeff@it.usyd.edu.au>2010-09-14 20:36:01 +0000
committerJeffrey H. Kingston <jeff@it.usyd.edu.au>2010-09-14 20:36:01 +0000
commit2f4268e5e02216be53cd85816362191373512463 (patch)
tree57165bf2889337044bc3633854e5aa38f7d89e6b /include/podf
parent73d840b9f14b65166b92e6b43f930fd0ef7b8267 (diff)
downloadlout-2f4268e5e02216be53cd85816362191373512463.tar.gz
Lout 3.20.
git-svn-id: http://svn.savannah.nongnu.org/svn/lout/trunk@9 9365b830-b601-4143-9ba8-b4a8e2c3339c
Diffstat (limited to 'include/podf')
-rw-r--r--include/podf513
1 files changed, 513 insertions, 0 deletions
diff --git a/include/podf b/include/podf
new file mode 100644
index 0000000..108f455
--- /dev/null
+++ b/include/podf
@@ -0,0 +1,513 @@
+
+###############################################################################
+# #
+# Lout @PodSetup package for formatting Pod programs #
+# #
+# Jeffrey H. Kingston #
+# 25 March 2000 #
+# #
+# This package uses a filtered body parameter to convert Pod source #
+# code into Lout source. The filter program is prg2lout, which is #
+# distributed with Lout and should be compiled and installed wherever #
+# Lout itself is. #
+# #
+###############################################################################
+
+export @Pod
+def @PodSetup
+ named pipe { } # pipe through this first
+ named style
+ named @OrIfPlain left x right y
+ { @BackEnd @Case { PlainText @Yield y else @Yield x } }
+ { varying @OrIfPlain fixed } # print style
+
+
+ # the following options apply when style is "fixed"
+
+ named fixedtextfont { Courier Base -1p } # text font
+ named fixedtextbreak { adjust 1.0vx hyphen } # text para breaking
+ named fixedverbatimfont { Courier Base } # verbatim font
+ named fixedtabin { 8 } # tab interval
+ named fixedtabout { 8s } # tab width
+
+ named fixedparagap { 1.0v } # gap between paras
+ named fixedlistgap { 1.0v } # gap within lists
+ named fixedlistindent { 0s } # list label indent
+ named fixedlistrightindent { 0s } # list right indent
+ named fixedlistlabelwidth { 2.0f } # default label space
+ named fixedlistlabelfont { } # list label font
+ named fixedlistlabelformat right @Body { @Body } # list label format
+
+ named fixedaheadfont { Bold +4p } # =head1 font
+ named fixedaheadbreak { lines 1.1vx } # =head1 para break
+ named fixedaheadformat right @Body { @DP @Body } # =head1 format
+ named fixedbheadfont { Bold +2p } # =head2 font
+ named fixedbheadbreak { lines 1.1vx } # =head2 para break
+ named fixedbheadformat right @Body { @Body } # =head2 format
+ named fixedcheadfont { Bold } # =head3 font
+ named fixedcheadbreak { lines 1.1vx } # =head3 para break
+ named fixedcheadformat right @Body { @Body } # =head3 format
+
+ named fixeditalicfont { Slope } # font of I<>
+ named fixeditalicformat right @Body { @Body } # format of I<>
+ named fixedboldfont { Bold } # font of B<>
+ named fixedboldformat right @Body { @Body } # format of B<>
+ named fixedcodefont { Base } # font of C<>
+ named fixedcodeformat right @Body { @Body } # format of C<>
+ named fixedfilefont { Slope } # font of F<>
+ named fixedfileformat right @Body { @Body } # format of F<>
+ named fixedlinkfont { Slope } # font of L<>
+ named fixedlinkformat right @Body { @Underline @Body } # format of L<>
+ named fixedindexfont { Slope } # font of X<>
+ named fixedindexformat right @Body { @Body } # format of X<>
+
+
+ # the following options apply when style is "varying"
+
+ named varyingtextfont { } # text font
+ named varyingtextbreak { adjust 1.0vx hyphen } # text para breaking
+ named varyingverbatimfont { Courier Base -1p } # verbatim font
+ named varyingtabin { 8 } # tab interval
+ named varyingtabout { 8s } # tab width
+
+ named varyingparagap { 1.0v } # gap between paras
+ named varyinglistgap { 1.0v } # gap within lists
+ named varyinglistindent { 0s } # list label indent
+ named varyinglistrightindent { 0s } # list right indent
+ named varyinglistlabelwidth { 2.0f } # default label space
+ named varyinglistlabelfont { } # list label font
+ named varyinglistlabelformat right @Body { @Body } # list label format
+
+ named varyingaheadfont { Bold +4p } # =head1 font
+ named varyingaheadbreak { lines 1.1vx } # =head1 para break
+ named varyingaheadformat right @Body{ @DP @Body } # =head1 format
+ named varyingbheadfont { Bold +2p } # =head2 font
+ named varyingbheadbreak { lines 1.1vx } # =head2 para break
+ named varyingbheadformat right @Body{ @Body } # =head2 format
+ named varyingcheadfont { Bold } # =head3 font
+ named varyingcheadbreak { lines 1.1vx } # =head3 para break
+ named varyingcheadformat right @Body{ @Body } # =head3 format
+
+ named varyingitalicfont { Slope } # font of I<>
+ named varyingitalicformat right @Body { @Body } # format of I<>
+ named varyingboldfont { Bold } # font of B<>
+ named varyingboldformat right @Body { @Body } # format of B<>
+ named varyingcodefont { Courier Base -1p } # font of C<>
+ named varyingcodeformat right @Body { @Body } # format of C<>
+ named varyingfilefont { Slope } # font of F<>
+ named varyingfileformat right @Body { @Body } # format of F<>
+ named varyinglinkfont { Slope } # font of L<>
+ named varyinglinkformat right @Body { @Underline @Body } # format of L<>
+ named varyingindexfont { Slope } # font of X<>
+ named varyingindexformat right @Body{ @Body } # format of X<>
+
+ # the following options apply when style is "symbol"
+
+ named symboltextfont { } # text font
+ named symboltextbreak { adjust 1.0vx hyphen } # text para breaking
+ named symbolverbatimfont { Courier Base -1p } # verbatim font
+ named symboltabin { 8 } # tab interval
+ named symboltabout { 8s } # tab width
+
+ named symbolparagap { 1.0v } # gap between paras
+ named symbollistgap { 1.0v } # gap within lists
+ named symbollistindent { 0s } # list label indent
+ named symbollistrightindent { 0s } # list right indent
+ named symbollistlabelwidth { 2.0f } # default label space
+ named symbollistlabelfont { } # list label font
+ named symbollistlabelformat right @Body { @Body } # list label format
+
+ named symbolaheadfont { Bold +4p } # =head1 font
+ named symbolaheadbreak { lines 1.1vx } # =head1 para break
+ named symbolaheadformat right @Body { @DP @Body } # =head1 format
+ named symbolbheadfont { Bold +2p } # =head2 font
+ named symbolbheadbreak { lines 1.1vx } # =head2 para break
+ named symbolbheadformat right @Body { @Body } # =head2 format
+ named symbolcheadfont { Bold } # =head3 font
+ named symbolcheadbreak { lines 1.1vx } # =head3 para break
+ named symbolcheadformat right @Body { @Body } # =head3 format
+
+ named symbolitalicfont { Slope } # font of I<>
+ named symbolitalicformat right @Body{ @Body } # format of I<>
+ named symbolboldfont { Bold } # font of B<>
+ named symbolboldformat right @Body { @Body } # format of B<>
+ named symbolcodefont { Courier Base -1p } # font of C<>
+ named symbolcodeformat right @Body { @Body } # format of C<>
+ named symbolfilefont { Slope } # font of F<>
+ named symbolfileformat right @Body { @Body } # format of F<>
+ named symbollinkfont { Slope } # font of L<>
+ named symbollinkformat right @Body { @Underline @Body } # format of L<>
+ named symbolindexfont { Slope } # font of X<>
+ named symbolindexformat right @Body { @Body } # format of X<>
+
+@Begin
+
+
+ export
+
+ @PV @PPG @PLG @PLI @PLRI @PLLW @PLL @PHA @PHB @PHC
+ @PFI @PFB @PFC @PFF @PFL @PFX @A "$>"
+
+ def @Pod
+ named style { style } # style
+ named pipe { pipe } # pipe through this
+ named textfont { dft } # text font
+ named textbreak { dft } # text para breaking
+ named verbatimfont { dft } # verbatim font
+ named tabin { dft } # tab interval
+ named tabout { dft } # tab width
+ named paragap { dft } # gap between paras
+ named listgap { dft } # gap within lists
+ named listindent { dft } # list label indent
+ named listrightindent { dft } # list right indent
+ named listlabelwidth { dft } # default label space
+ named listlabelfont { dft } # list label font
+ named aheadfont { dft } # =head1 font
+ named aheadbreak { dft } # =head1 para break
+ named bheadfont { dft } # =head2 font
+ named bheadbreak { dft } # =head2 para break
+ named cheadfont { dft } # =head3 font
+ named cheadbreak { dft } # =head3 para break
+ named italicfont { dft } # font of I<>
+ named boldfont { dft } # font of B<>
+ named codefont { dft } # font of C<>
+ named filefont { dft } # font of F<>
+ named linkfont { dft } # font of L<>
+ named indexfont { dft } # font of X<>
+ body @Body # filtered, see below
+ @Begin
+
+ def @Test # returns x unless x is dft
+ left x
+ named iffixed {}
+ named ifvarying {}
+ named ifsymbol {}
+ {
+ x @Case {
+ dft @Yield {
+ style @Case {
+ fixed @Yield { iffixed }
+ varying @Yield { ifvarying }
+ symbol @Yield { ifsymbol }
+ }
+ }
+ else @Yield x
+ }
+ }
+
+
+ def @Else # returns x, or y if x is dft
+ left x
+ right y
+ {
+ x @Case {
+ dft @Yield y
+ else @Yield x
+ }
+ }
+
+
+ def @InitTab
+ {
+ tabin @Test
+ iffixed { fixedtabin }
+ ifvarying { varyingtabin }
+ ifsymbol { symboltabin }
+ }
+
+
+ def @InitTabWidth
+ {
+ tabout @Test
+ iffixed { fixedtabout }
+ ifvarying { varyingtabout }
+ ifsymbol { symboltabout }
+ }
+
+
+ def @Filter
+ {
+ pipe @Case {
+ "" @Yield {
+ "prg2lout -r -lPod" -i{@FilterIn} -o{@FilterOut} -e{@FilterErr}
+ -t{@InitTab} -T{@InitTabWidth}
+ }
+ else @Yield {
+ "cat" @FilterIn "|" pipe "|"
+ "prg2lout -r -lPod" -o{@FilterOut}
+ -e{@FilterErr} -t{@InitTab} -T{@InitTabWidth}
+ }
+ }
+ }
+
+
+ def @InitFont
+ {
+ textfont @Test
+ iffixed { fixedtextfont }
+ ifvarying { varyingtextfont }
+ ifsymbol { symboltextfont }
+ }
+
+
+
+ def @InitBreak
+ {
+ textbreak @Test
+ iffixed { fixedtextbreak }
+ ifvarying { varyingtextbreak }
+ ifsymbol { symboltextbreak }
+ }
+
+
+ def printverbatim
+ right x
+ {
+ def verbfont
+ {
+ verbatimfont @Test
+ iffixed { fixedverbatimfont }
+ ifvarying { varyingverbatimfont }
+ ifsymbol { symbolverbatimfont }
+ }
+
+ def verbatimstrut { @VContract { 0.5v @High ^/ / 0.5v @High } }
+
+ @OneCol verbfont @Font x |0io verbatimstrut
+ }
+
+
+ macro @PV { // printverbatim }
+
+
+ def paragraphgap
+ {
+ paragap @Test
+ iffixed { fixedparagap }
+ ifvarying { varyingparagap }
+ ifsymbol { symbolparagap }
+ }
+
+
+ macro @PPG { //paragraphgap }
+
+
+ def @PLG
+ {
+ listgap @Test
+ iffixed { fixedlistgap }
+ ifvarying { varyinglistgap }
+ ifsymbol { symbollistgap }
+ }
+
+
+ def @PLI
+ {
+ listindent @Test
+ iffixed { fixedlistindent }
+ ifvarying { varyinglistindent }
+ ifsymbol { symbollistindent }
+ }
+
+
+ def @PLRI
+ {
+ listrightindent @Test
+ iffixed { fixedlistrightindent }
+ ifvarying { varyinglistrightindent }
+ ifsymbol { symbollistrightindent }
+ }
+
+
+ def @PLLW right x
+ {
+ def defaultwidth
+ {
+ listlabelwidth @Test
+ iffixed { fixedlistlabelwidth }
+ ifvarying { varyinglistlabelwidth }
+ ifsymbol { symbollistlabelwidth }
+ }
+
+ def givenwidth
+ {
+ style @Case {
+ fixed @Yield { x"s" }
+ varying @Yield { x"f" }
+ symbol @Yield { x"f" }
+ }
+ }
+
+ x @Case {
+ "" @Yield defaultwidth
+ else @Yield givenwidth
+ }
+ }
+
+
+ def @PLL right x
+ {
+ def value
+ {
+ x @Case {
+ "*" @Yield @Bullet
+ else @Yield x
+ }
+ }
+
+ style @Case {
+ fixed @Yield fixedlistlabelformat {
+ { listlabelfont @Else fixedlistlabelfont } @Font value }
+ varying @Yield varyinglistlabelformat {
+ { listlabelfont @Else varyinglistlabelfont } @Font value }
+ symbol @Yield symbollistlabelformat {
+ { listlabelfont @Else symbollistlabelfont } @Font value }
+ }
+ }
+
+
+ def @PHA right x
+ {
+ style @Case {
+ fixed @Yield fixedaheadformat {
+ { aheadfont @Else fixedaheadfont } @Font
+ { aheadbreak @Else fixedaheadbreak } @Break x }
+ varying @Yield varyingaheadformat {
+ { aheadfont @Else varyingaheadfont } @Font
+ { aheadbreak @Else varyingaheadbreak } @Break x }
+ symbol @Yield symbolaheadformat {
+ { aheadfont @Else symbolaheadfont } @Font
+ { aheadbreak @Else varyingaheadbreak } @Break x }
+ }
+ }
+
+
+ def @PHB right x
+ {
+ style @Case {
+ fixed @Yield fixedbheadformat {
+ { bheadfont @Else fixedbheadfont } @Font
+ { bheadbreak @Else fixedbheadbreak } @Break x }
+ varying @Yield varyingbheadformat {
+ { bheadfont @Else varyingbheadfont } @Font
+ { bheadbreak @Else varyingbheadbreak } @Break x }
+ symbol @Yield symbolbheadformat {
+ { bheadfont @Else symbolbheadfont } @Font
+ { bheadbreak @Else varyingbheadbreak } @Break x }
+ }
+ }
+
+
+ def @PHC right x
+ {
+ style @Case {
+ fixed @Yield fixedcheadformat {
+ { cheadfont @Else fixedcheadfont } @Font
+ { cheadbreak @Else fixedcheadbreak } @Break x }
+ varying @Yield varyingcheadformat {
+ { cheadfont @Else varyingcheadfont } @Font
+ { cheadbreak @Else varyingcheadbreak } @Break x }
+ symbol @Yield symbolcheadformat {
+ { cheadfont @Else symbolcheadfont } @Font
+ { cheadbreak @Else varyingcheadbreak } @Break x }
+ }
+ }
+
+
+ def @PFI right x
+ {
+ style @Case {
+ fixed @Yield fixeditalicformat {
+ { italicfont @Else fixeditalicfont } @Font x }
+ varying @Yield varyingitalicformat {
+ { italicfont @Else varyingitalicfont } @Font x }
+ symbol @Yield symbolitalicformat {
+ { italicfont @Else symbolitalicfont } @Font x }
+ }
+ }
+
+
+ def @PFB right x
+ {
+ style @Case {
+ fixed @Yield fixedboldformat {
+ { boldfont @Else fixedboldfont } @Font x }
+ varying @Yield varyingboldformat {
+ { boldfont @Else varyingboldfont } @Font x }
+ symbol @Yield symbolboldformat {
+ { boldfont @Else symbolboldfont } @Font x }
+ }
+ }
+
+
+ def @PFC right x
+ {
+ style @Case {
+ fixed @Yield fixedcodeformat {
+ { codefont @Else fixedcodefont } @Font x }
+ varying @Yield varyingcodeformat {
+ { codefont @Else varyingcodefont } @Font x }
+ symbol @Yield symbolcodeformat {
+ { codefont @Else symbolcodefont } @Font x }
+ }
+ }
+
+
+ def @PFF right x
+ {
+ style @Case {
+ fixed @Yield fixedfileformat {
+ { filefont @Else fixedfilefont } @Font x }
+ varying @Yield varyingfileformat {
+ { filefont @Else varyingfilefont } @Font x }
+ symbol @Yield symbolfileformat {
+ { filefont @Else symbolfilefont } @Font x }
+ }
+ }
+
+
+ def @PFL right x
+ {
+ style @Case {
+ fixed @Yield fixedlinkformat {
+ { linkfont @Else fixedlinkfont } @Font x }
+ varying @Yield varyinglinkformat {
+ { linkfont @Else varyinglinkfont } @Font x }
+ symbol @Yield symbollinkformat {
+ { linkfont @Else symbollinkfont } @Font x }
+ }
+ }
+
+
+ def @PFX right x
+ {
+ style @Case {
+ fixed @Yield fixedindexformat {
+ { indexfont @Else fixedindexfont } @Font x }
+ varying @Yield varyingindexformat {
+ { indexfont @Else varyingindexfont } @Font x }
+ symbol @Yield symbolindexformat {
+ { indexfont @Else symbolindexfont } @Font x }
+ }
+ }
+
+
+ def @A # get characters from the Adobe Symbol font
+ left sym
+ right x
+ {
+ style @Case {
+ symbol @Yield { { Symbol Base } @Font @Char sym }
+ else @Yield { x }
+ }
+ }
+
+
+ macro "$>" { {} & }
+
+
+ @InitFont @Font @InitBreak @Break @Body
+
+ @End @Pod
+
+@End @PodSetup