blob: 1351bb03e926b47ebc5dad11eb0d1b9c02cb6f7c [file] [log] [blame]
<html lang="en">
<head>
<title>M2 Scope - Debugging with GDB</title>
<meta http-equiv="Content-Type" content="text/html">
<meta name="description" content="Debugging with GDB">
<meta name="generator" content="makeinfo 4.13">
<link title="Top" rel="start" href="index.html#Top">
<link rel="up" href="Modula_002d2.html#Modula_002d2" title="Modula-2">
<link rel="prev" href="M2-Checks.html#M2-Checks" title="M2 Checks">
<link rel="next" href="GDB_002fM2.html#GDB_002fM2" title="GDB/M2">
<link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage">
<!--
Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996,
1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
Free Software Foundation, Inc.
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3 or
any later version published by the Free Software Foundation; with the
Invariant Sections being ``Free Software'' and ``Free Software Needs
Free Documentation'', with the Front-Cover Texts being ``A GNU Manual,''
and with the Back-Cover Texts as in (a) below.
(a) The FSF's Back-Cover Text is: ``You are free to copy and modify
this GNU Manual. Buying copies from GNU Press supports the FSF in
developing GNU and promoting software freedom.''-->
<meta http-equiv="Content-Style-Type" content="text/css">
<style type="text/css"><!--
pre.display { font-family:inherit }
pre.format { font-family:inherit }
pre.smalldisplay { font-family:inherit; font-size:smaller }
pre.smallformat { font-family:inherit; font-size:smaller }
pre.smallexample { font-size:smaller }
pre.smalllisp { font-size:smaller }
span.sc { font-variant:small-caps }
span.roman { font-family:serif; font-weight:normal; }
span.sansserif { font-family:sans-serif; font-weight:normal; }
--></style>
<link rel="stylesheet" type="text/css" href="../cs.css">
</head>
<body>
<div class="node">
<a name="M2-Scope"></a>
<p>
Next:&nbsp;<a rel="next" accesskey="n" href="GDB_002fM2.html#GDB_002fM2">GDB/M2</a>,
Previous:&nbsp;<a rel="previous" accesskey="p" href="M2-Checks.html#M2-Checks">M2 Checks</a>,
Up:&nbsp;<a rel="up" accesskey="u" href="Modula_002d2.html#Modula_002d2">Modula-2</a>
<hr>
</div>
<h5 class="subsubsection">15.4.6.8 The Scope Operators <code>::</code> and <code>.</code></h5>
<p><a name="index-scope-853"></a><a name="index-g_t_0040code_007b_002e_007d_002c-Modula_002d2-scope-operator-854"></a><a name="index-colon_002c-doubled-as-scope-operator-855"></a><a name="index-g_t_003a_003a_0040r_007b_002c-in-Modula_002d2_007d-856"></a>
There are a few subtle differences between the Modula-2 scope operator
(<code>.</code>) and the <span class="sc">gdb</span> scope operator (<code>::</code>). The two have
similar syntax:
<pre class="smallexample">
<var>module</var> . <var>id</var>
<var>scope</var> :: <var>id</var>
</pre>
<p class="noindent">where <var>scope</var> is the name of a module or a procedure,
<var>module</var> the name of a module, and <var>id</var> is any declared
identifier within your program, except another module.
<p>Using the <code>::</code> operator makes <span class="sc">gdb</span> search the scope
specified by <var>scope</var> for the identifier <var>id</var>. If it is not
found in the specified scope, then <span class="sc">gdb</span> searches all scopes
enclosing the one specified by <var>scope</var>.
<p>Using the <code>.</code> operator makes <span class="sc">gdb</span> search the current scope for
the identifier specified by <var>id</var> that was imported from the
definition module specified by <var>module</var>. With this operator, it is
an error if the identifier <var>id</var> was not imported from definition
module <var>module</var>, or if <var>id</var> is not an identifier in
<var>module</var>.
</body></html>