2 Copyright (c) 2000-2014 Ericsson Telecom AB
4 All rights reserved. This program and the accompanying materials
5 are made available under the terms of the Eclipse Public License v1.0
6 which accompanies this distribution, and is available at
7 http://www.eclipse.org/legal/epl-v10.html
11 <meta http-equiv=
"Content-Type" content=
"text/html; charset=utf-8">
12 <meta http-equiv=
"Content-Language" content=
"en-us">
15 <body bgcolor=
"#DAD3C5" vlink=
"#0094D2" link=
"#003258">
16 <table align=
"left" border=
"0" cellspacing=
"0" cellpadding=
"0" valign=top
>
18 <td width=
105 height=
40><a href=
"https://projects.eclipse.org/projects/tools.titan"><img src=
"../images/titan_transparent.gif" border=
0 width=
105 height=
40 align=
"left" alt=
"Titan"></a></td>
21 <table border=
"0" align=
"right" cellpadding=
"0" cellspacing=
"0">
23 <td><a href=
"../titan_main.html" alt=
"contents"><img border=
"0" src=
"../images/ao.jpg" width=
"53" height=
"40"></a></td>
24 <td><a href=
"../titan_index.html" alt=
"index"><img border=
"0" src=
"../images/up.jpg" width=
"53" height=
"40"></a></td>
25 <td><a href=
"for.html" alt=
"previous"><img border=
"0" src=
"../images/left.jpg" width=
"53" height=
"40"></a></td>
26 <td><a href=
"from.html" alt=
"next"><img border=
"0" src=
"../images/right.jpg" width=
"53" height=
"40"></a></td>
34 <p>1.
<a href=
"#1."> Declaring a definition with friend visibility
</a></p>
35 <p>2.
<a href=
"#2."> Declaring a friend module
</a></p>
37 <hr align=
"left" width=
"75%">
38 <h4><a name=
"1.">1. Declaring a definition with friend visibility
</a></h4>
39 <hr align=
"left" width=
"50%">
40 <p>Friend is a visibility modifier, that can be atteched to definitions on module level. Where it means that the definition is visible in every friend module where it is imported to.
43 <table border=
"0" width=
"90%" bgcolor=
"#FFB599" cellpadding=
"4">
46 <h3 align=
"center"><font face=
"Courier New" color=
"#003258" size=
"5"><b>friend definition;
</b></font></h3>
52 <p><a href=
"#Ex1">Example
</a></p>
53 <hr align=
"left" width=
"75%">
54 <h4><a name=
"1.">2. Declaring a friend module
</a></h4>
55 <hr align=
"left" width=
"50%">
56 <p>A module can declare his friend modules, for which its friend definition will be visible.
59 <table border=
"0" width=
"90%" bgcolor=
"#FFB599" cellpadding=
"4">
62 <h3 align=
"center"><font face=
"Courier New" color=
"#003258" size=
"5"><b>friend module identifier_list;
</b></font></h3>
68 <p><a href=
"#Ex1">Example
</a></p>
69 <hr align=
"left" width=
"75%">
70 <p>Related keywords:
</p>
72 <li><a href=
"public.html"><b><font face=
"Courier New" color=
"#003258" size=
"4">public
</font></b></a></li>
73 <li><a href=
"private.html"><b><font face=
"Courier New" color=
"#003258" size=
"4">private
</font></b></a></li>
75 <p><a name=
"Ex1">Example
1</a>:
76 <p><font face=
"Courier New">module module1 {
<br>
77 import from module2 all;
<br>
79 const module2Type c_example1 :=
4; //by default public, visible
<br>
80 const module2PublieType c_example2 :=
4; //public, visible
<br>
81 const module2FriendType c_example3 :=
4; //this is a friend module, visible
<br>
82 const module2PrivateType c_example4 :=
4; //ERROR, not visible
<br>
84 <p><font face=
"Courier New">module module2 {
<br>
87 type integer module2Type;//by default public, visible in every module
<br>
88 public type integer module2PublieType; //public, visible in every module
<br>
89 friend type integer module2FriendType; //friend, visible only in friend modules
<br>
90 private type module2PrivateType; //private, visible only in this module
<br>
92 <hr align=
"left" width=
"25%">
93 <hr align=
"left" width=
"25%">