diff options
Diffstat (limited to 'TAO/TAO_IDL/include/ast_generator.h')
-rw-r--r-- | TAO/TAO_IDL/include/ast_generator.h | 311 |
1 files changed, 154 insertions, 157 deletions
diff --git a/TAO/TAO_IDL/include/ast_generator.h b/TAO/TAO_IDL/include/ast_generator.h index e6ae673407b..a9fd8a7064a 100644 --- a/TAO/TAO_IDL/include/ast_generator.h +++ b/TAO/TAO_IDL/include/ast_generator.h @@ -62,196 +62,193 @@ NOTE: SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are trademarks or registered trademarks of Sun Microsystems, Inc. - */ +*/ #ifndef _AST_GENERATOR_AST_GENERATOR_HH #define _AST_GENERATOR_AST_GENERATOR_HH -// ast_generator.h -// -// Defines base class for generators - -/* -** DEPENDENCIES: ast_predefined_type.hh utl_scoped_name.hh utl_strlist.hh -** ast_module.hh ast_root.hh ast_interface.hh -** ast_interface_fwd.hh ast_exception.hh ast_structure.hh -** ast_enum.hh ast_operation.hh ast_type.hh ast_field.hh -** ast_argument.hh ast_attribute.hh ast_union.hh -** ast_concrete_type.hh ast_union_branch.hh ast_union_label.hh -** ast_expression.hh ast_enum_val.hh ast_array.hh -** ast_sequence.hh ast_string.hh ast_typedef.hh -** -** USE: Included from ast.hh -*/ +// Defines base class for node generators. class TAO_IDL_FE_Export AST_Generator { public: - // Operations - - // Create a node representing a predefined type - virtual AST_PredefinedType - *create_predefined_type(AST_PredefinedType::PredefinedType t, - UTL_ScopedName *n, - UTL_StrList *p); - - // Create a node representing a module - virtual AST_Module *create_module(UTL_Scope *s, - UTL_ScopedName *n, - UTL_StrList *p); - - // Create a node representing a module which is the root of an AST - virtual AST_Root *create_root(UTL_ScopedName *n, + // Operations. + + // Create a node representing a predefined type. + virtual AST_PredefinedType *create_predefined_type ( + AST_PredefinedType::PredefinedType t, + UTL_ScopedName *n, + UTL_StrList *p + ); + + // Create a node representing a module. + virtual AST_Module *create_module (UTL_Scope *s, + UTL_ScopedName *n, UTL_StrList *p); - // Create a node representing an interface - virtual AST_Interface *create_interface(UTL_ScopedName *n, - AST_Interface **ih, - long nih, - AST_Interface **ih_flat, - long nih_flat, - UTL_StrList *p, - idl_bool local, - idl_bool abstract); - - // Create a node representing a forward declaration of an interface - virtual AST_InterfaceFwd *create_interface_fwd(UTL_ScopedName *n, - UTL_StrList *p, - idl_bool local, - idl_bool abstract); - - // Create a node representing an valuetype - virtual AST_Interface *create_valuetype(UTL_ScopedName *n, - AST_Interface **ih, - long nih, - UTL_StrList *p); - - // Create a node representing a forward declaration of an valuetype - virtual AST_InterfaceFwd *create_valuetype_fwd(UTL_ScopedName *n, - UTL_StrList *p); - - // Create a node representing an exception - virtual AST_Exception *create_exception(UTL_ScopedName *n, - UTL_StrList *p, - idl_bool local, - idl_bool abstract); - - // Create a node representing a structure - virtual AST_Structure *create_structure(UTL_ScopedName *n, - UTL_StrList *p, - idl_bool local, - idl_bool abstract); - - // Create a node representing an enum - virtual AST_Enum *create_enum(UTL_ScopedName *n, - UTL_StrList *p, - idl_bool local, - idl_bool abstract); - - // Create a node representing an operation on an interface - virtual AST_Operation *create_operation(AST_Type *rt, - AST_Operation::Flags fl, - UTL_ScopedName *n, - UTL_StrList *p, - idl_bool local, - idl_bool abstract); + // Create a node representing a module which is the root of an AST. + virtual AST_Root *create_root (UTL_ScopedName *n, + UTL_StrList *p); + + // Create a node representing an interface. + virtual AST_Interface *create_interface (UTL_ScopedName *n, + AST_Interface **ih, + long nih, + AST_Interface **ih_flat, + long nih_flat, + UTL_StrList *p, + idl_bool local, + idl_bool abstract); + + // Create a node representing a forward declaration of an interface. + virtual AST_InterfaceFwd *create_interface_fwd (UTL_ScopedName *n, + UTL_StrList *p, + idl_bool local, + idl_bool abstract); + + // Create a node representing an valuetype. + virtual AST_Interface *create_valuetype (UTL_ScopedName *n, + AST_Interface **ih, + long nih, + UTL_StrList *p); + + // Create a node representing a forward declaration of an valuetype. + virtual AST_InterfaceFwd *create_valuetype_fwd (UTL_ScopedName *n, + UTL_StrList *p); + + // Create a node representing an exception. + virtual AST_Exception *create_exception (UTL_ScopedName *n, + UTL_StrList *p, + idl_bool local, + idl_bool abstract); + + // Create a node representing a structure. + virtual AST_Structure *create_structure (UTL_ScopedName *n, + UTL_StrList *p, + idl_bool local, + idl_bool abstract); + + // Create a node representing an enum. + virtual AST_Enum *create_enum (UTL_ScopedName *n, + UTL_StrList *p, + idl_bool local, + idl_bool abstract); + + // Create a node representing an operation on an interface. + virtual AST_Operation *create_operation (AST_Type *rt, + AST_Operation::Flags fl, + UTL_ScopedName *n, + UTL_StrList *p, + idl_bool local, + idl_bool abstract); // Create a node representing a field in a structure, exception or - // union - virtual AST_Field *create_field(AST_Type *ft, - UTL_ScopedName *n, - UTL_StrList *p, - AST_Field::Visibility vis = AST_Field::vis_NA); - - // Create a node representing an argument to an operation - virtual AST_Argument *create_argument(AST_Argument::Direction d, + // union. + virtual AST_Field *create_field (AST_Type *ft, + UTL_ScopedName *n, + UTL_StrList *p, + AST_Field::Visibility vis = + AST_Field::vis_NA); + + // Create a node representing an argument to an operation. + virtual AST_Argument *create_argument (AST_Argument::Direction d, AST_Type *ft, UTL_ScopedName *n, UTL_StrList *p); - // Create a node representing an attribute - virtual AST_Attribute *create_attribute(idl_bool ro, - AST_Type *ft, - UTL_ScopedName *n, - UTL_StrList *p, - idl_bool local, - idl_bool abstract); - - // Create a node representing a union - virtual AST_Union *create_union(AST_ConcreteType *dt, - UTL_ScopedName *n, - UTL_StrList *p, - idl_bool local, - idl_bool abstract); - - // Create a node representing one branch in a union - virtual AST_UnionBranch *create_union_branch(UTL_LabelList *ll, - AST_Type *ft, - UTL_ScopedName *n, - UTL_StrList *p); - - // Create a node representing a label on a union branch + // Create a node representing an attribute. + virtual AST_Attribute *create_attribute (idl_bool ro, + AST_Type *ft, + UTL_ScopedName *n, + UTL_StrList *p, + idl_bool local, + idl_bool abstract); + + // Create a node representing a union. + virtual AST_Union *create_union (AST_ConcreteType *dt, + UTL_ScopedName *n, + UTL_StrList *p, + idl_bool local, + idl_bool abstract); + + // Create a node representing one branch in a union. + virtual AST_UnionBranch *create_union_branch (UTL_LabelList *ll, + AST_Type *ft, + UTL_ScopedName *n, + UTL_StrList *p); + + // Create a node representing a label on a union branch. virtual AST_UnionLabel *create_union_label(AST_UnionLabel::UnionLabel ul, AST_Expression *lv); // Create a node representing a constant - virtual AST_Constant *create_constant(AST_Expression::ExprType et, + virtual AST_Constant *create_constant (AST_Expression::ExprType et, AST_Expression *ev, UTL_ScopedName *n, UTL_StrList *p); - // Create various kinds of nodes representing expressions - virtual AST_Expression *create_expr(UTL_ScopedName *n); - virtual AST_Expression *create_expr(AST_Expression *v, - AST_Expression::ExprType t); - virtual AST_Expression *create_expr(AST_Expression::ExprComb c, - AST_Expression *v1, - AST_Expression *v2); - virtual AST_Expression *create_expr(long v); - virtual AST_Expression *create_expr(long v, - AST_Expression::ExprType t); - virtual AST_Expression *create_expr(unsigned long v); - virtual AST_Expression *create_expr(UTL_String *s); - virtual AST_Expression *create_expr(char *s); - virtual AST_Expression *create_expr(char c); - virtual AST_Expression *create_expr(ACE_OutputCDR::from_wchar wc); - virtual AST_Expression *create_expr(double d); - - // Create a node representing an enumerator - virtual AST_EnumVal *create_enum_val(unsigned long v, - UTL_ScopedName *n, - UTL_StrList *p); + // Create various kinds of nodes representing expressions. - // Create a node representing an array type - virtual AST_Array *create_array(UTL_ScopedName *n, - unsigned long ndims, - UTL_ExprList *dims, - idl_bool local, - idl_bool abstract); + virtual AST_Expression *create_expr (UTL_ScopedName *n); + + virtual AST_Expression *create_expr (AST_Expression *v, + AST_Expression::ExprType t); - // Create a node representing a sequence type - virtual AST_Sequence *create_sequence(AST_Expression *v, + virtual AST_Expression *create_expr (AST_Expression::ExprComb c, + AST_Expression *v1, + AST_Expression *v2); + + virtual AST_Expression *create_expr (long v); + + virtual AST_Expression *create_expr (long v, + AST_Expression::ExprType t); + + virtual AST_Expression *create_expr (unsigned long v); + + virtual AST_Expression *create_expr (UTL_String *s); + + virtual AST_Expression *create_expr (char *s); + + virtual AST_Expression *create_expr (char c); + + virtual AST_Expression *create_expr (ACE_OutputCDR::from_wchar wc); + + virtual AST_Expression *create_expr (double d); + + // Create a node representing an enumerator. + virtual AST_EnumVal *create_enum_val (unsigned long v, + UTL_ScopedName *n, + UTL_StrList *p); + + // Create a node representing an array type. + virtual AST_Array *create_array (UTL_ScopedName *n, + unsigned long ndims, + UTL_ExprList *dims, + idl_bool local, + idl_bool abstract); + + // Create a node representing a sequence type. + virtual AST_Sequence *create_sequence (AST_Expression *v, AST_Type *bt, idl_bool local, idl_bool abstract); - // Create a node representing a string type - virtual AST_String *create_string(AST_Expression *v); + // Create a node representing a string type. + virtual AST_String *create_string (AST_Expression *v); - // Create a node representing a wide string type - virtual AST_String *create_wstring(AST_Expression *v); + // Create a node representing a wide string type. + virtual AST_String *create_wstring (AST_Expression *v); - // Create a node representing a type renaming (typedef) - virtual AST_Typedef *create_typedef(AST_Type *bt, - UTL_ScopedName *n, - UTL_StrList *p, - idl_bool local, - idl_bool abstract); - - // Create a node representing a native - virtual AST_Native *create_native (UTL_ScopedName *n, - UTL_StrList *p); + // Create a node representing a type renaming (typedef). + virtual AST_Typedef*create_typedef (AST_Type *bt, + UTL_ScopedName *n, + UTL_StrList *p, + idl_bool local, + idl_bool abstract); + // Create a node representing a native. + virtual AST_Native *create_native (UTL_ScopedName *n, + UTL_StrList *p); }; #endif // _AST_GENERATOR_AST_GENERATOR_HH |