Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  

TAO_PSDL_Scope Class Reference

#include <PSDL_Scope.h>

Inheritance diagram for TAO_PSDL_Scope:

Inheritance graph
[legend]
Collaboration diagram for TAO_PSDL_Scope:

Collaboration graph
[legend]
List of all members.

Public Methods

 TAO_PSDL_Scope (void)
virtual ~TAO_PSDL_Scope (void)
virtual int add_module (ACE_CString identifier)
virtual int add_interface (ACE_CString identifier)
virtual int add_struct (ACE_CString identifier)
virtual int add_typedef (ACE_CString identifier, ACE_CString identifier_type)
virtual int add_const_decl (ACE_CString identifier, ACE_CString identifier_type)
virtual int add_except_decl (ACE_CString identifier, ACE_CString identifier_type)
virtual int add_exception (ACE_CString identifier)
virtual int add_op_dcl (ACE_CString identifier)
virtual int add_member_decl (ACE_CString identifier, ACE_CString identifier_type)
virtual TAO_PSDL_Scope * pop_top_scope (void)
 Return the top scope.

virtual void push_scope (TAO_PSDL_Scope *scope)
 Push the scope that is passed into the stack of scopes.

virtual TAO_PSDL_Scope * parent_scope (void)
 Return the pointer to the parent scope.

virtual Scope_Mapscope_map (void)
 Return the pointer to Scope_Map of the instance.

virtual void dump (CORBA::ULong depth)
 Function to help indent the output of the parse tree.

virtual int find (const ACE_CString &identifier_name, ACE_CString &identifier_type)
 Function to find the TAO_PSDL_Scope for the given identifier_name.

virtual int find (const ACE_CString &identifier_name)
virtual int get_module_name (const ACE_CString &identifier_name, ACE_CString &module_name)
virtual int get_interface_name (const ACE_CString &identifier_name, ACE_CString &interface_name)
virtual ACE_CString identifier_type (void)
virtual ACE_CString module_name (void)
virtual ACE_CString interface_name (void)
int add_module_to_scope (ACE_CString identifier, TAO_PSDL_Scope *scope)
int add_interface_to_scope (ACE_CString identifier, TAO_PSDL_Scope *scope)
int add_interface_dcl_to_scope (ACE_CString identifier, TAO_PSDL_Scope *scope)
int add_struct_to_scope (ACE_CString identifier, TAO_PSDL_Scope *scope)
int add_typedef_to_scope (ACE_CString identifier, ACE_CString identifier_type, TAO_PSDL_Scope *scope)
int add_const_decl_to_scope (ACE_CString identifier, ACE_CString identifier_type, TAO_PSDL_Scope *scope)
int add_except_decl_to_scope (ACE_CString identifier, ACE_CString identifier_type, TAO_PSDL_Scope *scope)
int add_exception_to_scope (ACE_CString identifier, TAO_PSDL_Scope *scope)
int add_scoped_decl_to_scope (ACE_CString identifier, ACE_CString identifier_type, TAO_PSDL_Scope *scope)
int add_enum_decl_to_scope (ACE_CString identifier, ACE_CString identifier_type, TAO_PSDL_Scope *scope)
int add_op_dcl_to_scope (ACE_CString identifier, TAO_PSDL_Scope *scope)
int add_member_decl_to_scope (ACE_CString identifier, ACE_CString identifier_type, TAO_PSDL_Scope *scope)
void set_root_scope (void)
 Set the root scope the very first time.

void set_stub_prefix (const char *filename)
const ACE_CStringget_stub_prefix (void)
void header_initialization (TAO_PSDL_Stream *ps_sh)
void stub_initialization (TAO_PSDL_Stream *ps_si)
TAO_PSDL_Streamget_sh (void)
 Get the pointer to the TAO_PSDL_Stream for the stub header.

TAO_PSDL_Streamget_si (void)
TAO_PSDL_Streamget_sinline (void)
int check_identifier (ACE_CString identifier, TAO_PSDL_Scope *scope)
void check_name_in_scope (ACE_CString identifier, TAO_PSDL_Scope *scope)
void print_depth (CORBA::ULong depth)
void set_scope (void)
 Method used to set the scope back to the previous one.

void set_interface_scope (void)
 Set interface scope to the previous one.

void set_module_scope (void)
 Set module scope to the previous one.

void save_identifier (ACE_CString identifier)
 Methods to save and retrieve the identifier values.

ACE_CString get_identifier (void)
void set_name_space (ACE_CString name_space)
 Accessor methods to the name of the name_space: Module name.

ACE_CString get_name_space (void)
void set_interface_name (ACE_CString interface_name)
 Accessor methods to the name of the current interface.

ACE_CString get_interface_name (void)
void to_lower_case (ACE_CString &identifier)
ACE_CString convert_str (int identifier_type)

Static Public Methods

TAO_PSDL_Scope * instance (void)
 Return a unique instance.


Private Attributes

TAO_PSDL_Scope ** psdl_scope_
ACE_Array_Base< TAO_PSDL_Scope * > ast_scope_
ACE_Array_Base< ACE_CStringmodule_names_
 Arrays to save the module and interface names.

ACE_Array_Base< ACE_CStringinterface_names_
unsigned long psdl_scope_top_
 Count of the members in the psdl_scope_.

TAO_PSDL_Root_Scoperoot_scope_
 Pointer to the instance of the TAO_PSDL_Root_Scope.

ACE_CString identifier_
ACE_CString name_space_
 Save for use while writing to stubs.

ACE_CString interface_name_
ACE_CString stub_prefix_
 Name of the filename that is passed to the compiler psdl_tao.

TAO_PSDL_Streamps_sh_
TAO_PSDL_Streamps_si_
TAO_PSDL_Streamps_sin_

Friends

class TAO_Singleton< TAO_PSDL_Scope, TAO_SYNCH_MUTEX >

Constructor & Destructor Documentation

TAO_PSDL_Scope::TAO_PSDL_Scope void   
 

TAO_PSDL_Scope::~TAO_PSDL_Scope void    [virtual]
 


Member Function Documentation

int TAO_PSDL_Scope::add_const_decl ACE_CString    identifier,
ACE_CString    identifier_type
[virtual]
 

Reimplemented in TAO_PSDL_Interface_Scope, TAO_PSDL_Module_Scope, TAO_PSDL_Op_Dcl_Scope, TAO_PSDL_Root_Scope, TAO_PSDL_Simple_Scope, and TAO_PSDL_Struct_Scope.

int TAO_PSDL_Scope::add_const_decl_to_scope ACE_CString    identifier,
ACE_CString    identifier_type,
TAO_PSDL_Scope *    scope
 

int TAO_PSDL_Scope::add_enum_decl_to_scope ACE_CString    identifier,
ACE_CString    identifier_type,
TAO_PSDL_Scope *    scope
 

int TAO_PSDL_Scope::add_except_decl ACE_CString    identifier,
ACE_CString    identifier_type
[virtual]
 

Reimplemented in TAO_PSDL_Interface_Scope, TAO_PSDL_Module_Scope, TAO_PSDL_Root_Scope, TAO_PSDL_Simple_Scope, and TAO_PSDL_Struct_Scope.

int TAO_PSDL_Scope::add_except_decl_to_scope ACE_CString    identifier,
ACE_CString    identifier_type,
TAO_PSDL_Scope *    scope
 

int TAO_PSDL_Scope::add_exception ACE_CString    identifier [virtual]
 

Reimplemented in TAO_PSDL_Interface_Scope, and TAO_PSDL_Module_Scope.

int TAO_PSDL_Scope::add_exception_to_scope ACE_CString    identifier,
TAO_PSDL_Scope *    scope
 

int TAO_PSDL_Scope::add_interface ACE_CString    identifier [virtual]
 

Reimplemented in TAO_PSDL_Interface_Scope, TAO_PSDL_Module_Scope, and TAO_PSDL_Root_Scope.

int TAO_PSDL_Scope::add_interface_dcl_to_scope ACE_CString    identifier,
TAO_PSDL_Scope *    scope
 

@ Rather than here .. you must have actually save the identifier name in the instance of the module itself .. or may be I should rather figure out a

int TAO_PSDL_Scope::add_interface_to_scope ACE_CString    identifier,
TAO_PSDL_Scope *    scope
 

int TAO_PSDL_Scope::add_member_decl ACE_CString    identifier,
ACE_CString    identifier_type
[virtual]
 

Reimplemented in TAO_PSDL_Exception_Scope, and TAO_PSDL_Op_Dcl_Scope.

int TAO_PSDL_Scope::add_member_decl_to_scope ACE_CString    identifier,
ACE_CString    identifier_type,
TAO_PSDL_Scope *    scope
 

int TAO_PSDL_Scope::add_module ACE_CString    identifier [virtual]
 

The add functions are overridden by the derived classes to add the respective types in their scopes. The return value is a '0' if successful and '-1' if it ends up as a failure.

Reimplemented in TAO_PSDL_Module_Scope, TAO_PSDL_Root_Scope, and TAO_PSDL_Struct_Scope.

int TAO_PSDL_Scope::add_module_to_scope ACE_CString    identifier,
TAO_PSDL_Scope *    scope
 

As the function name implies, the following methods help add the respective types to the scope passed in. The return value is a '0' on success and '-1' on a failure.

int TAO_PSDL_Scope::add_op_dcl ACE_CString    identifier [virtual]
 

Reimplemented in TAO_PSDL_Interface_Scope, TAO_PSDL_Module_Scope, TAO_PSDL_Root_Scope, and TAO_PSDL_Simple_Scope.

int TAO_PSDL_Scope::add_op_dcl_to_scope ACE_CString    identifier,
TAO_PSDL_Scope *    scope
 

int TAO_PSDL_Scope::add_scoped_decl_to_scope ACE_CString    identifier,
ACE_CString    identifier_type,
TAO_PSDL_Scope *    scope
 

int TAO_PSDL_Scope::add_struct ACE_CString    identifier [virtual]
 

Reimplemented in TAO_PSDL_Interface_Scope, TAO_PSDL_Module_Scope, TAO_PSDL_Root_Scope, and TAO_PSDL_Struct_Scope.

int TAO_PSDL_Scope::add_struct_to_scope ACE_CString    identifier,
TAO_PSDL_Scope *    scope
 

int TAO_PSDL_Scope::add_typedef ACE_CString    identifier,
ACE_CString    identifier_type
[virtual]
 

Reimplemented in TAO_PSDL_Interface_Scope, TAO_PSDL_Module_Scope, TAO_PSDL_Root_Scope, TAO_PSDL_Simple_Scope, and TAO_PSDL_Struct_Scope.

int TAO_PSDL_Scope::add_typedef_to_scope ACE_CString    identifier,
ACE_CString    identifier_type,
TAO_PSDL_Scope *    scope
 

int TAO_PSDL_Scope::check_identifier ACE_CString    identifier,
TAO_PSDL_Scope *    scope
 

As the name suggests, check if the identifier name is already used for something else in the sc

void TAO_PSDL_Scope::check_name_in_scope ACE_CString    identifier,
TAO_PSDL_Scope *    scope
 

This is to check if a forward declaration has been done already.

ACE_CString TAO_PSDL_Scope::convert_str int    identifier_type
 

Helper method to convert the int value of the identifier type to its string equivalent based on the conversion values generated by the Yacc Parser (please see PSDL_y.h for the conversion values).

void TAO_PSDL_Scope::dump CORBA::ULong    depth [virtual]
 

Function to help indent the output of the parse tree.

Reimplemented in TAO_PSDL_Exception_Scope, TAO_PSDL_Interface_Scope, TAO_PSDL_Module_Scope, TAO_PSDL_Op_Dcl_Scope, TAO_PSDL_Root_Scope, TAO_PSDL_Simple_Scope, and TAO_PSDL_Struct_Scope.

int TAO_PSDL_Scope::find const ACE_CString   identifier_name [virtual]
 

Function to check if a particular identifier_name exists in the scope.

Reimplemented in TAO_PSDL_Exception_Scope, TAO_PSDL_Interface_Scope, TAO_PSDL_Module_Scope, TAO_PSDL_Root_Scope, TAO_PSDL_Simple_Scope, and TAO_PSDL_Struct_Scope.

int TAO_PSDL_Scope::find const ACE_CString   identifier_name,
ACE_CString   identifier_type
[virtual]
 

Function to find the TAO_PSDL_Scope for the given identifier_name.

Reimplemented in TAO_PSDL_Exception_Scope, TAO_PSDL_Interface_Scope, TAO_PSDL_Module_Scope, TAO_PSDL_Root_Scope, TAO_PSDL_Simple_Scope, and TAO_PSDL_Struct_Scope.

ACE_CString TAO_PSDL_Scope::get_identifier void   
 

ACE_CString TAO_PSDL_Scope::get_interface_name void   
 

int TAO_PSDL_Scope::get_interface_name const ACE_CString   identifier_name,
ACE_CString   interface_name
[virtual]
 

To get the name of the interface to which an identifier_name belongs. returns '0' on succes and '-1' on failure.

Reimplemented in TAO_PSDL_Interface_Scope, TAO_PSDL_Module_Scope, and TAO_PSDL_Root_Scope.

int TAO_PSDL_Scope::get_module_name const ACE_CString   identifier_name,
ACE_CString   module_name
[virtual]
 

To get the name of the module to which an identifier_name belongs. returns '0' on succes and '-1' on failure.

Reimplemented in TAO_PSDL_Interface_Scope, TAO_PSDL_Module_Scope, and TAO_PSDL_Root_Scope.

ACE_CString TAO_PSDL_Scope::get_name_space void   
 

TAO_PSDL_Stream * TAO_PSDL_Scope::get_sh void   
 

Get the pointer to the TAO_PSDL_Stream for the stub header.

TAO_PSDL_Stream * TAO_PSDL_Scope::get_si void   
 

Get the pointer to the TAO_PSDL_Stream for the stub implementation file.

TAO_PSDL_Stream * TAO_PSDL_Scope::get_sinline void   
 

Get the pointer to the TAO_PSDL_Stream for the stub inline file.

const ACE_CString & TAO_PSDL_Scope::get_stub_prefix void   
 

void TAO_PSDL_Scope::header_initialization TAO_PSDL_Stream   ps_sh
 

These methods help write the header files that needs to be included and other initialization part to the stubs.

ACE_CString TAO_PSDL_Scope::identifier_type void    [virtual]
 

Each identifier will have an instance of a derived type of TAO_PSDL_Scope *.. the following method is an accessor to the type of the identifier name

Reimplemented in TAO_PSDL_Exception_Scope, TAO_PSDL_Interface_Scope, TAO_PSDL_Module_Scope, TAO_PSDL_Simple_Scope, and TAO_PSDL_Struct_Scope.

TAO_PSDL_Scope * TAO_PSDL_Scope::instance void    [static]
 

Return a unique instance.

ACE_CString TAO_PSDL_Scope::interface_name void    [virtual]
 

Reimplemented in TAO_PSDL_Exception_Scope, TAO_PSDL_Interface_Scope, TAO_PSDL_Module_Scope, TAO_PSDL_Simple_Scope, and TAO_PSDL_Struct_Scope.

ACE_CString TAO_PSDL_Scope::module_name void    [virtual]
 

Reimplemented in TAO_PSDL_Exception_Scope, TAO_PSDL_Interface_Scope, TAO_PSDL_Module_Scope, TAO_PSDL_Simple_Scope, and TAO_PSDL_Struct_Scope.

TAO_PSDL_Scope * TAO_PSDL_Scope::parent_scope void    [virtual]
 

Return the pointer to the parent scope.

Reimplemented in TAO_PSDL_Exception_Scope, TAO_PSDL_Interface_Scope, TAO_PSDL_Module_Scope, TAO_PSDL_Op_Dcl_Scope, TAO_PSDL_Root_Scope, TAO_PSDL_Simple_Scope, and TAO_PSDL_Struct_Scope.

TAO_PSDL_Scope * TAO_PSDL_Scope::pop_top_scope void    [virtual]
 

Return the top scope.

void TAO_PSDL_Scope::print_depth CORBA::ULong    depth
 

This wont be necessary in the final version .. its helpful to print the symbol table to the std output for now.

void TAO_PSDL_Scope::push_scope TAO_PSDL_Scope *    scope [virtual]
 

Push the scope that is passed into the stack of scopes.

void TAO_PSDL_Scope::save_identifier ACE_CString    identifier
 

Methods to save and retrieve the identifier values.

Scope_Map * TAO_PSDL_Scope::scope_map void    [virtual]
 

Return the pointer to Scope_Map of the instance.

Reimplemented in TAO_PSDL_Exception_Scope, TAO_PSDL_Interface_Scope, TAO_PSDL_Module_Scope, TAO_PSDL_Op_Dcl_Scope, TAO_PSDL_Root_Scope, TAO_PSDL_Simple_Scope, and TAO_PSDL_Struct_Scope.

void TAO_PSDL_Scope::set_interface_name ACE_CString    interface_name
 

Accessor methods to the name of the current interface.

void TAO_PSDL_Scope::set_interface_scope void   
 

Set interface scope to the previous one.

void TAO_PSDL_Scope::set_module_scope void   
 

Set module scope to the previous one.

void TAO_PSDL_Scope::set_name_space ACE_CString    name_space
 

Accessor methods to the name of the name_space: Module name.

void TAO_PSDL_Scope::set_root_scope void   
 

Set the root scope the very first time.

void TAO_PSDL_Scope::set_scope void   
 

Method used to set the scope back to the previous one.

void TAO_PSDL_Scope::set_stub_prefix const char *    filename
 

Set and get the name of the stub that has to be generated. The name is based on the input file that is passed to the compiler.

void TAO_PSDL_Scope::stub_initialization TAO_PSDL_Stream   ps_si
 

void TAO_PSDL_Scope::to_lower_case ACE_CString   identifier
 


Friends And Related Function Documentation

friend class TAO_Singleton< TAO_PSDL_Scope, TAO_SYNCH_MUTEX > [friend]
 


Member Data Documentation

ACE_Array_Base<TAO_PSDL_Scope *> TAO_PSDL_Scope::ast_scope_ [private]
 

Save the psdl_scopes for use while writing to stubs.

ACE_CString TAO_PSDL_Scope::identifier_ [private]
 

Identifier used for the save_identifier and get_identifier methods.

ACE_CString TAO_PSDL_Scope::interface_name_ [private]
 

Reimplemented in TAO_PSDL_Exception_Scope, TAO_PSDL_Interface_Scope, TAO_PSDL_Module_Scope, TAO_PSDL_Simple_Scope, and TAO_PSDL_Struct_Scope.

ACE_Array_Base<ACE_CString> TAO_PSDL_Scope::interface_names_ [private]
 

ACE_Array_Base<ACE_CString> TAO_PSDL_Scope::module_names_ [private]
 

Arrays to save the module and interface names.

ACE_CString TAO_PSDL_Scope::name_space_ [private]
 

Save for use while writing to stubs.

TAO_PSDL_Stream* TAO_PSDL_Scope::ps_sh_ [private]
 

Pointers to the TAO_PSDL_Streams for the stub header, implementation and inline files.

TAO_PSDL_Stream* TAO_PSDL_Scope::ps_si_ [private]
 

TAO_PSDL_Stream* TAO_PSDL_Scope::ps_sin_ [private]
 

TAO_PSDL_Scope** TAO_PSDL_Scope::psdl_scope_ [private]
 

Array of TAO_PSDL_Scope pointers to be used with the singleton instance.

unsigned long TAO_PSDL_Scope::psdl_scope_top_ [private]
 

Count of the members in the psdl_scope_.

TAO_PSDL_Root_Scope* TAO_PSDL_Scope::root_scope_ [private]
 

Pointer to the instance of the TAO_PSDL_Root_Scope.

ACE_CString TAO_PSDL_Scope::stub_prefix_ [private]
 

Name of the filename that is passed to the compiler psdl_tao.


The documentation for this class was generated from the following files:
Generated on Fri Apr 2 19:36:41 2004 for TAO_PSS by doxygen1.2.18