summaryrefslogtreecommitdiff
path: root/TAO/TAO_IDL/be/be_scope.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/TAO_IDL/be/be_scope.cpp')
-rw-r--r--TAO/TAO_IDL/be/be_scope.cpp105
1 files changed, 105 insertions, 0 deletions
diff --git a/TAO/TAO_IDL/be/be_scope.cpp b/TAO/TAO_IDL/be/be_scope.cpp
new file mode 100644
index 00000000000..c335fee14c3
--- /dev/null
+++ b/TAO/TAO_IDL/be/be_scope.cpp
@@ -0,0 +1,105 @@
+//
+// $Id$
+//
+#include "be_scope.h"
+#include "be_valuetype.h"
+#include "be_eventtype.h"
+#include "be_component.h"
+#include "be_home.h"
+#include "be_module.h"
+#include "be_exception.h"
+#include "be_union.h"
+#include "be_structure.h"
+#include "be_enum.h"
+#include "be_operation.h"
+#include "be_factory.h"
+#include "be_root.h"
+#include "be_visitor.h"
+
+ACE_RCSID (be,
+ be_scope,
+ "$Id$")
+
+// Default Constructor.
+be_scope::be_scope (void)
+ : UTL_Scope (),
+ comma_ (0)
+{
+}
+
+// Constructor.
+be_scope::be_scope (AST_Decl::NodeType type)
+ : UTL_Scope (type),
+ comma_ (0)
+{
+}
+
+be_scope::~be_scope (void)
+{
+}
+
+// Code generation methods.
+
+void
+be_scope::comma (unsigned short comma)
+{
+ this->comma_ = comma;
+}
+
+int
+be_scope::comma (void) const
+{
+ return this->comma_;
+}
+
+// Return the scope created by this node (if one exists, else NULL).
+be_decl *
+be_scope::decl (void)
+{
+ switch (this->scope_node_type ())
+ {
+ case AST_Decl::NT_interface:
+ return be_interface::narrow_from_scope (this);
+ case AST_Decl::NT_valuetype:
+ return be_valuetype::narrow_from_scope (this);
+ case AST_Decl::NT_eventtype:
+ return be_eventtype::narrow_from_scope (this);
+ case AST_Decl::NT_component:
+ return be_component::narrow_from_scope (this);
+ case AST_Decl::NT_home:
+ return be_home::narrow_from_scope (this);
+ case AST_Decl::NT_module:
+ return be_module::narrow_from_scope (this);
+ case AST_Decl::NT_root:
+ return be_root::narrow_from_scope (this);
+ case AST_Decl::NT_except:
+ return be_exception::narrow_from_scope (this);
+ case AST_Decl::NT_union:
+ return be_union::narrow_from_scope (this);
+ case AST_Decl::NT_struct:
+ return be_structure::narrow_from_scope (this);
+ case AST_Decl::NT_enum:
+ return be_enum::narrow_from_scope (this);
+ case AST_Decl::NT_op:
+ return be_operation::narrow_from_scope (this);
+ case AST_Decl::NT_factory:
+ return be_factory::narrow_from_scope (this);
+ default:
+ return (be_decl *)0;
+ }
+}
+
+void
+be_scope::destroy (void)
+{
+}
+
+int
+be_scope::accept (be_visitor *visitor)
+{
+ return visitor->visit_scope (this);
+}
+
+// Narrowing methods.
+IMPL_NARROW_METHODS1 (be_scope, UTL_Scope)
+IMPL_NARROW_FROM_SCOPE (be_scope)