~ubuntu-branches/ubuntu/gutsy/funnelweb-doc/gutsy

« back to all changes in this revision

Viewing changes to reference/tangle.html

  • Committer: Bazaar Package Importer
  • Author(s): Yann Dirson
  • Date: 2002-03-28 23:21:07 UTC
  • Revision ID: james.westby@ubuntu.com-20020328232107-3d1jiqv1eqmco3j9
Tags: upstream-3.2d
ImportĀ upstreamĀ versionĀ 3.2d

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
 
 
2
<HTML>
 
3
<!--
 
4
***********************************************************************
 
5
FUNNELWEB MANUAL WEB PAGE
 
6
=========================
 
7
Copyright (c) Ross N. Williams 1992,1999. All rights reserved.
 
8
 
 
9
Permission is granted to redistribute and use this manual in
 
10
any medium, with or without modification, provided that all
 
11
notices (including, without limitation, the copyright
 
12
notice, this permission notice, any record of modification,
 
13
and all legal notices) are preserved on all copies, that all
 
14
modifications are clearly marked, and that modified versions
 
15
are not represented as the original version unless all the
 
16
modifications since the manual's original release by Ross N.
 
17
Williams (www.ross.net) consist of translations or other
 
18
transformations that alter only the manual's form, not its
 
19
content. THIS MANUAL IS PROVIDED "AS IS" AND WITHOUT ANY
 
20
EXPRESS OR IMPLIED WARRANTIES, INCLUDING, WITHOUT
 
21
LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND
 
22
FITNESS FOR A PARTICULAR PURPOSE. TO THE EXTENT PERMITTED BY
 
23
LAW THERE IS ABSOLUTELY NO WARRANTY.
 
24
 
 
25
***********************************************************************
 
26
-->
 
27
 
 
28
<HEAD>
 
29
<TITLE>6 Tangle</TITLE>
 
30
<STYLE TYPE="text/css"> <!-- A {text-decoration: none} // --> </STYLE>
 
31
</HEAD>
 
32
<BODY BACKGROUND="binary/background.gif"
 
33
      BGCOLOR="#FFFFFF"
 
34
      TEXT="#000000"
 
35
      VLINK="#660000"
 
36
      LINK="#FF0000"
 
37
      ALINK="#CC0000">
 
38
 
 
39
<TABLE WIDTH="490">
 
40
<TR>
 
41
<TD WIDTH="130" VALIGN="top">
 
42
<IMG SRC="binary/d_clear.gif" ALT="" WIDTH="130" HEIGHT="1"><BR>
 
43
 
 
44
<FONT SIZE="2">
 
45
<BR>
 
46
 
 
47
<A HREF="http://www.ross.net/"
 
48
 TARGET="rosshome"
 
49
 onClick="window.open('','rosshome','location,status,menubar,scrollbars,resizable',false).focus(); return true;"
 
50
>
 
51
 <IMG SRC="binary/rossnet_logo.gif"
 
52
  WIDTH="64" HEIGHT="32"
 
53
  BORDER="0" ALT="RossNet"
 
54
  HSPACE="0" VSPACE="1"></A><BR>
 
55
<BR>
 
56
 
 
57
<A HREF="../index.shtml"
 
58
 TARGET="funnelweb"
 
59
 onClick="window.open('','funnelweb','location,status,menubar,scrollbars,resizable',false).focus(); return true;"
 
60
>
 
61
 <IMG SRC="binary/linklogo.gif"
 
62
  WIDTH="64" HEIGHT="32"
 
63
  BORDER="0" ALT="FunnelWeb"
 
64
  HSPACE="0" VSPACE="1"></A><BR>
 
65
<BR>
 
66
<TABLE CELLSPACING=0 CELLPADDING=0 BORDER=0><TR><TD BGCOLOR="#000000">
 
67
<A HREF="../tutorial/index.html"
 
68
 TARGET="funnelwebtutorial"
 
69
 onClick="window.open('','funnelwebtutorial','location,status,menubar,scrollbars,resizable',false).focus(); return true;"
 
70
><FONT COLOR="#FFFFFF"><B>Tutorial</B></FONT></A><BR>
 
71
<BR>
 
72
<A HREF="../developer/index.html"
 
73
 TARGET="funnelwebdeveloper"
 
74
 onClick="window.open('','funnelwebdeveloper','location,status,menubar,scrollbars,resizable',false).focus(); return true;"
 
75
><FONT COLOR="#FFFFFF"><B>Developer</B></FONT></A><BR>
 
76
<BR>
 
77
<A HREF="index.html"><FONT COLOR="#FFFFFF"><B>Reference</B></FONT></A><BR>
 
78
<A HREF="intro.html"><FONT COLOR="#FFFFFF">1 Introduction</FONT></A><BR>
 
79
<A HREF="interface.html"><FONT COLOR="#FFFFFF">2 Interface</FONT></A><BR>
 
80
<A HREF="scanner.html"><FONT COLOR="#FFFFFF">3 Scanner</FONT></A><BR>
 
81
<A HREF="parser.html"><FONT COLOR="#FFFFFF">4 Parser</FONT></A><BR>
 
82
<A HREF="analyser.html"><FONT COLOR="#FFFFFF">5 Analyser</FONT></A><BR>
 
83
<A HREF="tangle.html"><FONT COLOR="#FFFFFF">6 Tangle</FONT></A><BR>
 
84
<A HREF="weave.html"><FONT COLOR="#FFFFFF">7 Weave</FONT></A><BR>
 
85
<A HREF="shell.html"><FONT COLOR="#FFFFFF">8 Shell</FONT></A><BR>
 
86
<A HREF="commands.html"><FONT COLOR="#FFFFFF">9 Commands</FONT></A><BR>
 
87
<A HREF="glossary.html"><FONT COLOR="#FFFFFF">10 Glossary</FONT></A><BR>
 
88
<A HREF="references.html"><FONT COLOR="#FFFFFF">11 References</FONT></A><BR>
 
89
 
 
90
<BR>
 
91
<A HREF="search.html"><FONT COLOR="#FFFFFF"><B>SEARCH</B></FONT></A><BR>
 
92
</FONT>
 
93
</TD></TR></TABLE>
 
94
 
 
95
 
 
96
</TD>
 
97
<TD WIDTH="360" VALIGN="top">
 
98
<FONT SIZE="3">
 
99
 
 
100
 
 
101
<A HREF="index.html"><IMG SRC="binary/title.gif"
 
102
 WIDTH="316" HEIGHT="24"
 
103
 BORDER="0" ALT="FunnelWeb Reference Manual"
 
104
 HSPACE="0" VSPACE="0"></A>
 
105
<P><FONT SIZE="5">6 Tangle</FONT><BR>
 
106
 
 
107
 
 
108
 
 
109
<P>If the scanner, parser, and analyser have successfully
 
110
(i.e. with no errors, severe errors, or fatal errors)
 
111
completed, and the Tangle option (<SAMP>+O</SAMP>) is turned on
 
112
(it is by default), then the Tangle component of FunnelWeb
 
113
is invoked to generate the product files specified in the
 
114
<SAMP>@O</SAMP> macros of the input file.
 
115
 
 
116
<P>The operation of Tangle is very simple. Each
 
117
<SAMP>@O</SAMP> macro is expanded and written to a file of the
 
118
same name. As there are a finite number of macros, and the
 
119
analyser guarantees that the macro structure is
 
120
non-recursive, Tangle is guaranteed to terminate.
 
121
 
 
122
<P>Three remaining points are worth mentioning.
 
123
 
 
124
<P>
 
125
<UL>
 
126
 
 
127
<LI> Tangle expands macros using blank indentation unless
 
128
the user has specified otherwise in an indentation pragma in
 
129
the input file.
 
130
 
 
131
<LI> Tangle keeps track of the length of the lines that
 
132
it is writing and issues an error if any line of any product
 
133
file that it generates is longer than the maximum. The
 
134
maximum is the minimum of a value defaulted or specified in
 
135
the input file, and the value (if any) provided by the
 
136
<SAMP>+w</SAMP> command line argument.
 
137
 
 
138
<LI> If there is more than one macro definition of the
 
139
same name, then each such definition must have a different
 
140
library level (<SAMP>@L</SAMP>). Tangle uses the macro
 
141
definition that has the lowest library level and ignores
 
142
the others completely.
 
143
 
 
144
</UL>
 
145
 
 
146
<P><BR><FONT SIZE="4"><STRONG>Memory Use During Tangling</STRONG></FONT><BR>
 
147
 
 
148
<P>When FunnelWeb executes, it reads each input file (the
 
149
main input file and any include files) into memory where
 
150
they are kept for the duration of the run. This means that
 
151
there must be room in memory for all of the input files.
 
152
This approach is necessary to support FunnelWeb's
 
153
unrestricted forward referencing.
 
154
 
 
155
<P>In contrast, there is no requirement that there be
 
156
enough memory to hold the product files, as these are
 
157
written to disk sequentially during their expansion.
 
158
Furthermore, FunnelWeb does not expand the values of actual
 
159
parameters in memory.
 
160
 
 
161
<P>This means that, so long as the input files fit in
 
162
memory, your product files can be arbitrarily large. You can
 
163
also pass arbitrary large arguments to FunnelWeb macros.
 
164
 
 
165
 
 
166
<P>
 
167
<TABLE WIDTH="100%">
 
168
<TR>
 
169
<TD ALIGN="left"   VALIGN="bottom"><A HREF="analyser.html"><IMG SRC="binary/fw_left.gif" HEIGHT="32" WIDTH="32" BORDER="0" ALT="Prev"></A></TD>
 
170
<TD ALIGN="center" VALIGN="bottom"><A HREF="index.html"><IMG SRC="binary/fw_up.gif" HEIGHT="32" WIDTH="32" BORDER="0" ALT="Up"></A></TD>
 
171
<TD ALIGN="right"  VALIGN="bottom"><A HREF="weave.html"><IMG SRC="binary/fw_right.gif" HEIGHT="32" WIDTH="32" BORDER="0" ALT="Next"></A></TD>
 
172
</TR>
 
173
</TABLE>
 
174
 
 
175
 
 
176
 
 
177
<P>
 
178
<HR>
 
179
<FONT SIZE="2">
 
180
<A HREF="mailto:webmaster@ross.net">Webmaster</A>&nbsp;&nbsp;&nbsp;
 
181
<A HREF="copyright.html">Copyright &copy; Ross N. Williams 1992,1999. All rights reserved.</A><BR>
 
182
</FONT>
 
183
 
 
184
</FONT>
 
185
</TD>
 
186
</TR>
 
187
</TABLE>
 
188
 
 
189
 
 
190
</FONT>
 
191
</BODY>
 
192
 
 
193
<!-- *********************************************************************** -->
 
194
<!--      End Of A FunnelWeb Manual Web Page (www.ross.net/funnelweb/)       -->
 
195
<!-- *********************************************************************** -->
 
196
 
 
197
</HTML>