summaryrefslogtreecommitdiff
path: root/TAO/TAO_IDL/fe/fe_interface_header.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/TAO_IDL/fe/fe_interface_header.cpp')
-rw-r--r--TAO/TAO_IDL/fe/fe_interface_header.cpp369
1 files changed, 181 insertions, 188 deletions
diff --git a/TAO/TAO_IDL/fe/fe_interface_header.cpp b/TAO/TAO_IDL/fe/fe_interface_header.cpp
index 4920f4d41ba..8d44332cf3d 100644
--- a/TAO/TAO_IDL/fe/fe_interface_header.cpp
+++ b/TAO/TAO_IDL/fe/fe_interface_header.cpp
@@ -62,25 +62,32 @@ NOTE:
SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are
trademarks or registered trademarks of Sun Microsystems, Inc.
-*/
+ */
-// FE_InterfaceHeader instances are used to store information about an
-// interface header as the interface is being parsed and before the
-// AST_Interface node used to represent this interface is created.
+/*
+ * fe_interface_header.cc - Implements the FE private class FE_InterfaceHeader
+ *
+ * FE_InterfaceHeader instances are used to store information about an
+ * interface header as the interface is being parsed and before the
+ * AST_Interface node used to represent this interface is created.
+ */
+
+#include "idl.h"
+#include "idl_extern.h"
-#include "idl.h"
-#include "idl_extern.h"
-#include "fe_private.h"
+#include "fe_private.h"
ACE_RCSID(fe, fe_interface_header, "$Id$")
-// Constructor(s) and destructor
+/*
+ * Constructor(s) and destructor
+ */
FE_InterfaceHeader::FE_InterfaceHeader (UTL_ScopedName *n,
UTL_NameList *nl,
UTL_NameList *supports,
idl_bool compile_now)
- : pd_interface_name (n)
+ : pd_interface_name(n)
{
if (compile_now)
{
@@ -93,107 +100,115 @@ FE_InterfaceHeader::~FE_InterfaceHeader (void)
{
}
+/*
+ * Private operations
+ */
+
// Compute flattened, non-repeating list of inherited interfaces
#undef INCREMENT
-#define INCREMENT 512
+#define INCREMENT 512
-// Private storage used to store interfaces seen already in the
-// computation of the unique inheritance list.
-static AST_Interface **iseen = 0;
-static long iallocated = 0;
-static long iused = 0;
+/*
+ * Private storage used to store interfaces seen already in the
+ * computation of the unique inheritance list
+ */
+static AST_Interface **iseen = NULL;
+static long iallocated = 0;
+static long iused = 0;
// Same as above, but the list is flattened and
// includes all ancestors, not just immediate ones.
-static AST_Interface **iseen_flat = 0;
-static long iallocated_flat = 0;
-static long iused_flat = 0;
+static AST_Interface **iseen_flat = NULL;
+static long iallocated_flat = 0;
+static long iused_flat = 0;
-// Add an interface to an inheritance spec.
+/*
+ * Add an interface to an inheritance spec
+ */
static void
add_inheritance (AST_Interface *i)
{
- AST_Interface **oiseen;
+ long k;
+ AST_Interface **oiseen;
- // Make sure there's space for one more.
+ /*
+ * Make sure there's space for one more
+ */
if (iallocated == iused)
{
if (iallocated == 0)
{
iallocated = INCREMENT;
-
- ACE_NEW (iseen,
- AST_Interface *[iallocated]);
+ iseen = new AST_Interface *[iallocated];
}
else
{
oiseen = iseen;
iallocated += INCREMENT;
+ iseen = new AST_Interface *[iallocated];
- ACE_NEW (iseen,
- AST_Interface *[iallocated]);
-
- for (long k = 0; k < iused; k++)
- {
- iseen[k] = oiseen[k];
- }
+ for (k = 0; k < iused; k++)
+ iseen[k] = oiseen[k];
delete oiseen;
}
}
-
- // OK, now insert it.
- iseen[iused++] = i;
+ /*
+ * OK, now insert it
+ */
+ iseen[iused] = i;
+ iused++;
}
// Add an interface to the flat list.
static void
add_inheritance_flat (AST_Interface *i)
{
- AST_Interface **oiseen_flat;
+ long k;
+ AST_Interface **oiseen_flat;
- // Make sure there's space for one more
+ /*
+ * Make sure there's space for one more
+ */
if (iallocated_flat == iused_flat)
{
if (iallocated_flat == 0)
{
iallocated_flat = INCREMENT;
-
- ACE_NEW (iseen_flat,
- AST_Interface *[iallocated_flat]);
+ iseen_flat = new AST_Interface *[iallocated_flat];
}
else
{
oiseen_flat = iseen_flat;
iallocated_flat += INCREMENT;
+ iseen_flat = new AST_Interface *[iallocated_flat];
- ACE_NEW (iseen_flat,
- AST_Interface *[iallocated_flat]);
-
- for (long k = 0; k < iused_flat; k++)
- {
- iseen_flat[k] = oiseen_flat[k];
- }
+ for (k = 0; k < iused_flat; k++)
+ iseen_flat[k] = oiseen_flat[k];
delete oiseen_flat;
}
}
-
- // OK, now insert it
- iseen_flat[iused_flat++] = i;
+ /*
+ * OK, now insert it
+ */
+ iseen_flat[iused_flat] = i;
+ iused_flat++;
}
-// Have we already seen this interface?
+/*
+ * Have we already seen this interface?
+ */
static long
already_seen (AST_Interface *ip)
{
- for (long i = 0; i < iused; i++)
+ long i;
+
+ for (i = 0; i < iused; i++)
{
if (iseen[i] == ip)
- {
- return I_TRUE;
- }
+ return I_TRUE;
}
return I_FALSE;
@@ -203,12 +218,12 @@ already_seen (AST_Interface *ip)
static long
already_seen_flat (AST_Interface *ip)
{
- for (long i = 0; i < iused_flat; i++)
+ long i;
+
+ for (i = 0; i < iused_flat; i++)
{
if (iseen_flat[i] == ip)
- {
- return I_TRUE;
- }
+ return I_TRUE;
}
return I_FALSE;
@@ -226,30 +241,30 @@ FE_InterfaceHeader::is_abstract (void)
return 0;
}
-// Add this interface to the list of inherited if not already there.
+/*
+ * Add this interface to the list of inherited if not already there
+ */
void
FE_InterfaceHeader::compile_one_inheritance (AST_Interface *i)
{
- // Check for badly formed interface.
+ /*
+ * Check for badly formed interface
+ */
if (i == NULL)
- {
- return;
- }
-
- // If we've seen it already then don't expand again.
+ return;
+ /*
+ * If we've seen it already then don't expand again
+ */
if (already_seen (i))
- {
- return;
- }
-
- // OK, add i to the list of inherited interfaces.
+ return;
+ /*
+ * OK, add i to the list of inherited interfaces
+ */
add_inheritance (i);
- // And add i to the flat list as well.
+ // And add i to the flat list as well
if (!already_seen_flat (i))
- {
- add_inheritance_flat (i);
- }
+ add_inheritance_flat (i);
// Add i's parents to the flat list.
AST_Interface **parents = i->inherits ();
@@ -260,107 +275,89 @@ FE_InterfaceHeader::compile_one_inheritance (AST_Interface *i)
AST_Interface *tmp = parents[j];
if (already_seen_flat (tmp))
- {
- continue;
- }
+ continue;
add_inheritance_flat (tmp);
}
}
-// Compute the list of top-level interfaces this one inherits from.
+/*
+ * Compute the list of top-level interfaces this one inherits from
+ */
void
FE_InterfaceHeader::compile_inheritance (UTL_NameList *ifaces,
UTL_NameList *supports)
{
- UTL_NamelistActiveIterator *l = 0;
- AST_Decl *d = 0;
- AST_Interface *i = 0;
- long j, k;
- UTL_NameList *nl = ifaces;
- long ichecked = 0;
- idl_bool inh_err = 0;
- idl_bool in_supports = 0;
+ UTL_NamelistActiveIterator *l;
+ AST_Decl *d;
+ AST_Interface *i;
+ long j, k;
+ UTL_NameList *nl;
+ int loops;
+ long ichecked = 0;
+ idl_bool inh_err = 0;
+ idl_bool in_supports = 0;
iused = 0;
iused_flat = 0;
-
- //Compute expanded flattened non-repeating list of interfaces
- // which this one inherits from.
-
- // Loop twice if nl and supports are nonempty.
- for (int loops = 0; loops < 2; ++loops)
+ /*
+ * Compute expanded flattened non-repeating list of interfaces
+ * which this one inherits from
+ */
+ nl = ifaces;
+ // loop twice if nl and supports are nonempty
+ for (loops = 0; loops < 2; ++loops)
{
if (nl != NULL)
{
- ACE_NEW (l,
- UTL_NamelistActiveIterator (nl));
+ l = new UTL_NamelistActiveIterator (nl);
- while (!l->is_done ())
+ while (!(l->is_done ()))
{
- // Check that scope stack is valid
- if (idl_global->scopes ()->top () == 0)
+ /*
+ * Check that scope stack is valid
+ */
+ if (idl_global->scopes ()->top () == NULL)
{
idl_global->err ()->lookup_error (l->item ());
return;
}
-
- // Look it up
- UTL_Scope *s = idl_global->scopes ()->top ();
-
- d = s->lookup_by_name (l->item (),
- I_TRUE);
-
- if (d == 0)
- {
- AST_Decl *sad = ScopeAsDecl (s);
-
- if (sad->node_type () == AST_Decl::NT_module)
- {
- AST_Module *m = AST_Module::narrow_from_decl (sad);
-
- d = m->look_in_previous (l->item ()->last_component ());
- }
- }
-
- // Not found?
- if (d == 0)
+ /*
+ * Look it up
+ */
+ d = idl_global->scopes ()->top ()->lookup_by_name (l->item (),
+ I_TRUE);
+ /*
+ * Not found?
+ */
+ if (d == NULL)
{
idl_global->err ()->lookup_error (l->item ());
return;
}
-
- // Not an appropriate interface?
+ /*
+ * Not an appropriate interface?
+ */
while (d->node_type () == AST_Decl::NT_typedef)
- {
- d = AST_Typedef::narrow_from_decl (d)->base_type ();
- }
+ d = AST_Typedef::narrow_from_decl (d)->base_type ();
if (d->node_type () == AST_Decl::NT_interface)
- {
- i = AST_Interface::narrow_from_decl (d);
- }
+ i = AST_Interface::narrow_from_decl (d);
else
- {
- i = 0;
- }
+ i = NULL;
- if (i != 0)
+ if (i != NULL)
{
if (in_supports)
{
- inh_err = !this->check_supports (i);
+ inh_err = ! this->check_supports (i);
}
else
{
if (ichecked == 0)
- {
- inh_err = !this->check_first (i);
- }
+ inh_err = ! this->check_first (i);
else
- {
- inh_err = !this->check_further (i);
- }
+ inh_err = ! this->check_further (i);
}
}
else
@@ -372,10 +369,12 @@ FE_InterfaceHeader::compile_inheritance (UTL_NameList *ifaces,
{
idl_global->err ()->inheritance_error (pd_interface_name,
d);
- return; // @@ really ? inh_err=0; and test the remaining...?
+ return; //%! really ? inh_err=0; and test the remaining...?
}
- // Forward declared interface?
+ /*
+ * Forward declared interface?
+ */
if (!i->is_defined ())
{
idl_global->err ()->inheritance_fwd_error (pd_interface_name,
@@ -383,18 +382,20 @@ FE_InterfaceHeader::compile_inheritance (UTL_NameList *ifaces,
return;
}
- // OK, see if we have to add this to the list of interfaces
- // inherited from.
- this->compile_one_inheritance (i);
+ /*
+ * OK, see if we have to add this to the list of interfaces
+ * inherited from
+ */
+ compile_one_inheritance (i);
- // Next element in header list.
- ++ichecked;
+ /*
+ * Next element in header list
+ */
+ ++ ichecked;
l->next ();
}
-
delete l;
}
-
in_supports = 1;
nl = supports;
}
@@ -404,39 +405,33 @@ FE_InterfaceHeader::compile_inheritance (UTL_NameList *ifaces,
this->pd_inherits_flat = new AST_Interface *[iused_flat];
for (j = 0; j < iused_flat; j++)
- {
- this->pd_inherits_flat[j] = iseen_flat[j];
- }
+ this->pd_inherits_flat[j] = iseen_flat[j];
this->pd_n_inherits_flat = iused_flat;
// Then the list of immediate ancestors
- ACE_NEW (this->pd_inherits,
- AST_Interface *[iused]);
+ pd_inherits = new AST_Interface *[iused];
for (k = 0; k < iused; k++)
- {
- this->pd_inherits[k] = iseen[k];
- }
+ this->pd_inherits[k] = iseen[k];
this->pd_n_inherits = iused;
}
// check_ methods called from compile_inheritance()
-// overridden in derived classes.
+// overridden in derived classes
idl_bool
FE_InterfaceHeader::check_first (AST_Interface *i)
{
- // Nothing special for the first.
+ // nothing special for the first
return this->check_further (i);
}
idl_bool
FE_InterfaceHeader::check_further (AST_Interface *i)
{
- if (i != 0
- && !i->is_valuetype ()
- && (this->is_local () || !i->is_local ()))
+ if (i && ! i->is_valuetype () &&
+ (this->is_local () || !i->is_local ()))
{
return 1;
}
@@ -452,45 +447,53 @@ FE_InterfaceHeader::check_supports (AST_Interface *)
return 0;
}
-// Data accessors
+
+/*
+ * Public operations
+ */
+
+/*
+ * Redefinition of inherited virtual operations
+ */
+
+/*
+ * Data accessors
+ */
UTL_ScopedName *
FE_InterfaceHeader::interface_name (void)
{
- return this->pd_interface_name;
+ return pd_interface_name;
}
AST_Interface **
FE_InterfaceHeader::inherits (void)
{
- return this->pd_inherits;
+ return pd_inherits;
}
long
FE_InterfaceHeader::n_inherits (void)
{
- return this->pd_n_inherits;
+ return pd_n_inherits;
}
AST_Interface **
FE_InterfaceHeader::inherits_flat (void)
{
- return this->pd_inherits_flat;
+ return pd_inherits_flat;
}
long
FE_InterfaceHeader::n_inherits_flat (void)
{
- return this->pd_n_inherits_flat;
+ return pd_n_inherits_flat;
}
FE_Local_InterfaceHeader::FE_Local_InterfaceHeader (UTL_ScopedName *n,
UTL_NameList *nl,
UTL_NameList *supports)
- : FE_InterfaceHeader (n,
- nl,
- supports,
- 0)
+ : FE_InterfaceHeader (n, nl, supports, 0)
{
compile_inheritance (nl,
supports);
@@ -506,10 +509,7 @@ FE_Abstract_InterfaceHeader::FE_Abstract_InterfaceHeader (UTL_ScopedName *n,
UTL_NameList *nl,
UTL_NameList *supports)
- : FE_InterfaceHeader (n,
- nl,
- supports,
- 0)
+ : FE_InterfaceHeader (n, nl, supports, 0)
{
compile_inheritance (nl,
supports);
@@ -528,10 +528,7 @@ FE_Abstract_InterfaceHeader::is_abstract (void)
FE_obv_header::FE_obv_header (UTL_ScopedName *n,
UTL_NameList *nl,
UTL_NameList *supports)
- : FE_InterfaceHeader (n,
- nl,
- supports,
- 0),
+ : FE_InterfaceHeader (n, nl, supports,0),
truncatable_ (0),
n_concrete_ (0)
{
@@ -543,12 +540,10 @@ FE_obv_header::FE_obv_header (UTL_ScopedName *n,
idl_bool
FE_obv_header::check_first (AST_Interface *i)
{
- if (i != 0 && i->is_valuetype ())
+ if (i && i->is_valuetype ())
{
- if (!i->is_abstract_valuetype ())
- {
- ++this->n_concrete_;
- }
+ if (! i->is_abstract_valuetype ())
+ ++ n_concrete_;
return 1;
}
@@ -561,9 +556,7 @@ FE_obv_header::check_first (AST_Interface *i)
idl_bool
FE_obv_header::check_further (AST_Interface *i)
{
- if (i != 0
- && i->is_valuetype ()
- && i->is_abstract_valuetype ())
+ if (i && i->is_valuetype () && i->is_abstract_valuetype ())
{
return 1;
}
@@ -576,7 +569,7 @@ FE_obv_header::check_further (AST_Interface *i)
idl_bool
FE_obv_header::check_supports (AST_Interface *i)
{
- if (i && !i->is_valuetype ())
+ if (i && ! i->is_valuetype ())
{
return 1;
}
@@ -588,9 +581,9 @@ FE_obv_header::check_supports (AST_Interface *i)
long
-FE_obv_header::n_concrete (void)
+FE_obv_header::n_concrete ()
{
- return this->n_concrete_;
+ return n_concrete_;
}
// #endif /* IDL_HAS_VALUETYPE */