|    
 |   3.12 Pragma: Indentation When FunnelWeb expands a macro, it can do so in two ways. First it can treat the text it is processing as a one-dimensional stream of text, and merely insert the body of the macro in place of the macro call. Second, it can treat the text of the macro as a two dimensional object and indent each line of the macro body by the amount that the macro call itself was indented. Consider the following macros. 
 
@$@<Loop Structure@>@{@-
i=1;
while (i<=N)
   @<Loop body@>
endwhile
@}
@$@<Loop body@>@{@-
a[i]:=0;
i:=i+1;@}
Under the regime of no indentation the loop structure macro expands to: 
 i=1; while (i<=N) a[i]:=0; i:=i+1; endwhile Under the regime of blank indentation the loop structure macro expands to: 
 i=1; while (i<=N) a[i]:=0; i:=i+1; endwhile The indentation pragma determines which of these two regimes will be used to expand the macros when constructing the product files. The syntax of the pragma is: 
 
pragma_ident = ps "indentation" s "=" s
               ("blank" | "none")
Its two forms look like this: 
 @p indentation = blank @p indentation = none In the current version of FunnelWeb, the indentation regime is an attribute that is attached to an entire run of Tangle; it is not possible to bind it to particular product files or to particular macros. As a result, it doesn't matter where indentation pragmas occur in the input file or how many there are so long as they are all the same. By default FunnelWeb uses blank indentation. 
 
 
 Webmaster Copyright © Ross N. Williams 1992,1999. All rights reserved. |