File: node53.html

package info (click to toggle)
babel 0.10.2-1
  • links: PTS
  • area: contrib
  • in suites: sarge
  • size: 43,932 kB
  • ctags: 29,707
  • sloc: java: 74,695; ansic: 73,142; cpp: 40,649; sh: 18,411; f90: 10,062; fortran: 6,727; python: 6,406; makefile: 3,866; xml: 118; perl: 48
file content (140 lines) | stat: -rw-r--r-- 5,093 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<!--Converted with LaTeX2HTML 2002-2-1 (1.70)
original version by:  Nikos Drakos, CBLU, University of Leeds
* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
* with significant contributions from:
  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML>
<HEAD>
<TITLE>Re-entrant Packages</TITLE>
<META NAME="description" CONTENT="Re-entrant Packages">
<META NAME="keywords" CONTENT="users_guide">
<META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global">

<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">

<LINK REL="STYLESHEET" HREF="users_guide.css">

<LINK REL="previous" HREF="node52.html">
<LINK REL="up" HREF="node49.html">
<LINK REL="next" HREF="node54.html">
</HEAD>

<BODY >

<DIV CLASS="navigation"><!--Navigation Panel-->
<A NAME="tex2html1412"
  HREF="node54.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> 
<A NAME="tex2html1406"
  HREF="node49.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> 
<A NAME="tex2html1402"
  HREF="node52.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> 
<A NAME="tex2html1408"
  HREF="node14.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> 
<A NAME="tex2html1410"
  HREF="node317.html">
<IMG WIDTH="43" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="index" SRC="index.png"></A> 
<BR>
<B> Next:</B> <A NAME="tex2html1413"
  HREF="node54.html">Fundamental Types</A>
<B> Up:</B> <A NAME="tex2html1407"
  HREF="node49.html">SIDL Files</A>
<B> Previous:</B> <A NAME="tex2html1403"
  HREF="node52.html">Packages and Versions</A>
 &nbsp; <B>  <A NAME="tex2html1409"
  HREF="node14.html">Contents</A></B> 
 &nbsp; <B>  <A NAME="tex2html1411"
  HREF="node317.html">Index</A></B> 
<BR>
<BR></DIV>
<!--End of Navigation Panel-->

<H2><A NAME="SECTION02424000000000000000"></A><A NAME="1930"></A><A NAME="1931"></A>
<BR>
Re-entrant Packages
</H2>

<P>
By default, SIDL packages are re-entrant.  This means that Babel allows sub-packages to be 
broken into separate files, but you'd still have to run Babel on 
all the files at the same time.  Here's how it works.

<P>
First define the outermost package in a file.
<BR>
<PRE  CLASS="verbatim">package mypkg version 2.0 { 

}
</I></PRE></td></tr></table></blockquote>
<P>
Then define a sub-package in a second file.
<BR>
<PRE  CLASS="verbatim">package mypkg.subpkg version 2.0 { 

}
</I></PRE></td></tr></table></blockquote>
<P>
Note that both files begin with the identical version statement.
Now as long as you run Babel on both SIDL files at the same time
(with the outermost one first on the commandline), all is fine.

<P>
This works because the package statement takes  a scoped identifier
as an argument.  As long as Babel knows that a package <TT><I CLASS="slanted">mypkg</I></TT>
exists, it can handle a new package called <TT><I CLASS="slanted">subpkg</I></TT>. (This would
also work if <TT><I CLASS="slanted">subpkg</I></TT> were a class. Version 
statements require an identifier for the outermost package.  Since
packages cannot have dots ``.'' in their names, the only dots in 
version statements should appear at the numbers, not the package names.

<P>
Running the second file without the first will (and should) generate
an error since the enclosing package was not declared.  Re-entrance 
should be used judiciously.  This feature may be disabled by labeling
a given package as <TT><I CLASS="slanted">final</I></TT>.

<P>

<P>

<DIV CLASS="navigation"><HR>
<!--Navigation Panel-->
<A NAME="tex2html1412"
  HREF="node54.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> 
<A NAME="tex2html1406"
  HREF="node49.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> 
<A NAME="tex2html1402"
  HREF="node52.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> 
<A NAME="tex2html1408"
  HREF="node14.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> 
<A NAME="tex2html1410"
  HREF="node317.html">
<IMG WIDTH="43" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="index" SRC="index.png"></A> 
<BR>
<B> Next:</B> <A NAME="tex2html1413"
  HREF="node54.html">Fundamental Types</A>
<B> Up:</B> <A NAME="tex2html1407"
  HREF="node49.html">SIDL Files</A>
<B> Previous:</B> <A NAME="tex2html1403"
  HREF="node52.html">Packages and Versions</A>
 &nbsp; <B>  <A NAME="tex2html1409"
  HREF="node14.html">Contents</A></B> 
 &nbsp; <B>  <A NAME="tex2html1411"
  HREF="node317.html">Index</A></B> </DIV>
<!--End of Navigation Panel-->
<ADDRESS>
<br><br>babel-0.10.2<br>users_guide Last Modified 2005-03-23<br><br><a href="http://www.llnl.gov/CASC/components">http://www.llnl.gov/CASC/components</a><br><a href="mailto:components@llnl.gov">components@llnl.gov</a>
</ADDRESS>
</BODY>
</HTML>