diff options
author | nanbor <nanbor@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2000-04-18 03:46:32 +0000 |
---|---|---|
committer | nanbor <nanbor@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2000-04-18 03:46:32 +0000 |
commit | f160b447991864a60b77bce6ae4c837923152233 (patch) | |
tree | a5f193c5d83e3a75dc5f98ac2b4c4b3f31fed5a6 | |
parent | 1053555959f6617d5bdca4f712d15c940f8fcb60 (diff) | |
download | ATCD-f160b447991864a60b77bce6ae4c837923152233.tar.gz |
ChangeLogTag:Mon Apr 17 20:48:42 2000 Nanbor Wang <nanbor@cs.wustl.edu>
-rw-r--r-- | TAO/ChangeLogs/ChangeLog-02a | 57 | ||||
-rw-r--r-- | TAO/TAO_IDL/ast/ast_generator.cpp | 29 | ||||
-rw-r--r-- | TAO/TAO_IDL/ast/ast_interface.cpp | 406 | ||||
-rw-r--r-- | TAO/TAO_IDL/ast/ast_interface_fwd.cpp | 8 | ||||
-rw-r--r-- | TAO/TAO_IDL/be/be_generator.cpp | 70 | ||||
-rw-r--r-- | TAO/TAO_IDL/be/be_interface.cpp | 111 | ||||
-rw-r--r-- | TAO/TAO_IDL/be_include/be_generator.h | 10 | ||||
-rw-r--r-- | TAO/TAO_IDL/be_include/be_interface.h | 37 | ||||
-rw-r--r-- | TAO/TAO_IDL/fe/fe_interface_header.cpp | 88 | ||||
-rw-r--r-- | TAO/TAO_IDL/fe/idl.ll | 1 | ||||
-rw-r--r-- | TAO/TAO_IDL/fe/idl.yy | 115 | ||||
-rw-r--r-- | TAO/TAO_IDL/fe/lex.yy.cpp | 846 | ||||
-rw-r--r-- | TAO/TAO_IDL/fe/lex.yy.cpp.diff | 72 | ||||
-rw-r--r-- | TAO/TAO_IDL/fe/y.tab.cpp | 1973 | ||||
-rw-r--r-- | TAO/TAO_IDL/fe/y.tab.h | 41 | ||||
-rw-r--r-- | TAO/TAO_IDL/include/ast_generator.h | 8 | ||||
-rw-r--r-- | TAO/TAO_IDL/include/ast_interface.h | 5 | ||||
-rw-r--r-- | TAO/TAO_IDL/include/ast_interface_fwd.h | 5 | ||||
-rw-r--r-- | TAO/TAO_IDL/include/fe_interface_header.h | 32 |
19 files changed, 2160 insertions, 1754 deletions
diff --git a/TAO/ChangeLogs/ChangeLog-02a b/TAO/ChangeLogs/ChangeLog-02a index 4245c26b690..18eb832aac7 100644 --- a/TAO/ChangeLogs/ChangeLog-02a +++ b/TAO/ChangeLogs/ChangeLog-02a @@ -1,3 +1,60 @@ +Mon Apr 17 20:48:42 2000 Nanbor Wang <nanbor@cs.wustl.edu> + + * TAO_IDL/fe/y.tab.h: + * TAO_IDL/fe/idl.ll: + * TAO_IDL/fe/lex.yy.cpp: + * TAO_IDL/fe/lex.yy.cpp.diff: Added a new token IDL_LOCAL. + + * TAO_IDL/fe/idl.yy: + * TAO_IDL/fe/y.tab.cpp: Added rules for local and abstract + interfaces. Currently, however, abstract interface is still not + supported. + + * TAO_IDL/include/ast_generator.h: + * TAO_IDL/ast/ast_generator.cpp: + * TAO_IDL/be_include/be_generator.h: + * TAO_IDL/be/be_generator.cpp: Modified the + {be_ast}_generate::create_{interface|interface_fwd} to create + different interface type based on the information passed in from + FE_InterfaceHeader. + + * TAO_IDL/include/fe_interface_header.h: + * TAO_IDL/fe/fe_interface_header.cpp: Added new methods, is_local + and is_abstract to differentiate the type of interface being + parsed. + + * TAO_IDL/ast/ast_interface.cpp: + * TAO_IDL/ast/ast_interface_fwd.cpp: + * TAO_IDL/be/be_interface.cpp: + * TAO_IDL/be_include/be_interface.h: + * TAO_IDL/include/ast_interface.h: + * TAO_IDL/include/ast_interface_fwd.h: Extended + {be|ast}_interface and ast_interface_fwd to represent + "local" and "abstract" interfaces other than regular CORBA + interface. Two new methods, is_local_interface and + is_abstract_interface, are added to differentiate the interface + type. + + I didn't create new visitor classes for either local or abstract + interfaces because they more or less generate subset of regular + interface and it's esier to simply "turn off" some feature of + regular interface depend on the type of interfaces we are + generating. + + TO-DO: Modify code generation for local interface. Abstract + interface will come later. + + Need to add syntax/semantic check for local/abstract interfaces + as defined in CCM. (E.g., a local object can not be the + argument of a remote operation.) + +Mon Apr 17 13:18:29 2000 Nanbor Wang <nanbor@cs.wustl.edu> + + * TAO_IDL/fe/idl.ll: + * TAO_IDL/fe/y.tab.h: + * TAO_IDL/fe/lex.yy.cpp: + * TAO_IDL/fe/lex.yy.cpp.diff: Added the "local" keyword. + Thu Apr 13 02:00:09 2000 Nanbor Wang <nanbor@cs.wustl.edu> * tao/Object.h: diff --git a/TAO/TAO_IDL/ast/ast_generator.cpp b/TAO/TAO_IDL/ast/ast_generator.cpp index 6dc5d80befc..6e2457228bb 100644 --- a/TAO/TAO_IDL/ast/ast_generator.cpp +++ b/TAO/TAO_IDL/ast/ast_generator.cpp @@ -109,7 +109,7 @@ AST_Generator::create_predefined_type(AST_PredefinedType::PredefinedType t, */ AST_Module * AST_Generator::create_module (UTL_Scope *, - UTL_ScopedName *n, + UTL_ScopedName *n, UTL_StrList *p) { return new AST_Module(n, p); @@ -134,13 +134,15 @@ AST_Generator::create_interface (UTL_ScopedName *n, long nih, AST_Interface **ih_flat, long nih_flat, - UTL_StrList *p) -{ - return new AST_Interface (n, - ih, - nih, - ih_flat, - nih_flat, + UTL_StrList *p, + idl_bool, + idl_bool) +{ + return new AST_Interface (n, + ih, + nih, + ih_flat, + nih_flat, p); } @@ -149,9 +151,14 @@ AST_Generator::create_interface (UTL_ScopedName *n, * declaration of an interface) */ AST_InterfaceFwd * -AST_Generator::create_interface_fwd(UTL_ScopedName *n, UTL_StrList *p) +AST_Generator::create_interface_fwd(UTL_ScopedName *n, + UTL_StrList *p, + idl_bool local, + idl_bool abstract) { - return new AST_InterfaceFwd (this->create_interface (n, 0, -1, 0, 0, p), n, p); + return new AST_InterfaceFwd (this->create_interface (n, 0, -1, 0, 0, p, local, abstract), + n, + p); } /* @@ -179,7 +186,7 @@ AST_Generator::create_valuetype(UTL_ScopedName *, * Create a be_valuetype_fwd node */ AST_InterfaceFwd * -AST_Generator::create_valuetype_fwd (UTL_ScopedName *, +AST_Generator::create_valuetype_fwd (UTL_ScopedName *, UTL_StrList *) { // see note in create_valuetype() diff --git a/TAO/TAO_IDL/ast/ast_interface.cpp b/TAO/TAO_IDL/ast/ast_interface.cpp index f05c84a5769..31f2217d514 100644 --- a/TAO/TAO_IDL/ast/ast_interface.cpp +++ b/TAO/TAO_IDL/ast/ast_interface.cpp @@ -124,6 +124,12 @@ idl_bool AST_Interface::is_abstract_interface (void) } +idl_bool AST_Interface::is_local_interface (void) +{ + return 0; +} + + idl_bool AST_Interface::is_valuetype (void) { return 0; @@ -144,10 +150,10 @@ void AST_Interface::set_abstract_valuetype (void) void AST_Interface::be_replace_operation (AST_Decl *old_op, AST_Decl *new_op) { - replace_scope (old_op, + replace_scope (old_op, new_op); - replace_referenced (old_op, + replace_referenced (old_op, new_op); } @@ -170,39 +176,39 @@ AST_Constant *AST_Interface::fe_add_constant (AST_Constant *t) /* * Can't add to interface which was not yet defined */ - if (!is_defined ()) + if (!is_defined ()) { - idl_global->err ()->error2 (UTL_Error::EIDL_DECL_NOT_DEFINED, - this, + idl_global->err ()->error2 (UTL_Error::EIDL_DECL_NOT_DEFINED, + this, t); return NULL; } /* * Already defined and cannot be redefined? Or already used? */ - if ((d = lookup_for_add (t, I_FALSE)) != NULL) + if ((d = lookup_for_add (t, I_FALSE)) != NULL) { - if (!can_be_redefined(d)) + if (!can_be_redefined(d)) { - idl_global->err ()->error3 (UTL_Error::EIDL_REDEF, - t, - this, + idl_global->err ()->error3 (UTL_Error::EIDL_REDEF, + t, + this, d); return NULL; } - if (referenced (d, t->local_name ())) + if (referenced (d, t->local_name ())) { - idl_global->err ()->error3 (UTL_Error::EIDL_DEF_USE, - t, - this, + idl_global->err ()->error3 (UTL_Error::EIDL_DEF_USE, + t, + this, d); return NULL; } - if (t->has_ancestor(d)) + if (t->has_ancestor(d)) { - idl_global->err ()->redefinition_in_scope (t, + idl_global->err ()->redefinition_in_scope (t, d); return NULL; } @@ -214,8 +220,8 @@ AST_Constant *AST_Interface::fe_add_constant (AST_Constant *t) /* * Add it to set of locally referenced symbols */ - add_to_referenced (t, - I_FALSE, + add_to_referenced (t, + I_FALSE, t->local_name ()); return t; @@ -231,39 +237,39 @@ AST_Exception *AST_Interface::fe_add_exception (AST_Exception *t) /* * Can't add to interface which was not yet defined */ - if (!is_defined ()) + if (!is_defined ()) { - idl_global->err ()->error2 (UTL_Error::EIDL_DECL_NOT_DEFINED, - this, + idl_global->err ()->error2 (UTL_Error::EIDL_DECL_NOT_DEFINED, + this, t); return NULL; } /* * Already defined and cannot be redefined? Or already used? */ - if ((d = lookup_for_add (t, I_FALSE)) != NULL) + if ((d = lookup_for_add (t, I_FALSE)) != NULL) { - if (!can_be_redefined(d)) + if (!can_be_redefined(d)) { - idl_global->err ()->error3 (UTL_Error::EIDL_REDEF, - t, - this, + idl_global->err ()->error3 (UTL_Error::EIDL_REDEF, + t, + this, d); return NULL; } - if (referenced (d, t->local_name ())) + if (referenced (d, t->local_name ())) { - idl_global->err ()->error3 (UTL_Error::EIDL_DEF_USE, - t, - this, + idl_global->err ()->error3 (UTL_Error::EIDL_DEF_USE, + t, + this, d); return NULL; } - if (t->has_ancestor (d)) + if (t->has_ancestor (d)) { - idl_global->err ()->redefinition_in_scope (t, + idl_global->err ()->redefinition_in_scope (t, d); return NULL; } @@ -275,8 +281,8 @@ AST_Exception *AST_Interface::fe_add_exception (AST_Exception *t) /* * Add it to set of locally referenced symbols */ - add_to_referenced (t, - I_FALSE, + add_to_referenced (t, + I_FALSE, t->local_name ()); return t; @@ -292,39 +298,39 @@ AST_Attribute *AST_Interface::fe_add_attribute (AST_Attribute *t) /* * Can't add to interface which was not yet defined */ - if (!is_defined()) + if (!is_defined()) { - idl_global->err ()->error2 (UTL_Error::EIDL_DECL_NOT_DEFINED, - this, + idl_global->err ()->error2 (UTL_Error::EIDL_DECL_NOT_DEFINED, + this, t); return NULL; } /* * Already defined and cannot be redefined? Or already used? */ - if ((d = lookup_for_add (t, I_FALSE)) != NULL) + if ((d = lookup_for_add (t, I_FALSE)) != NULL) { - if (!can_be_redefined (d)) + if (!can_be_redefined (d)) { - idl_global->err ()->error3 (UTL_Error::EIDL_REDEF, - t, - this, + idl_global->err ()->error3 (UTL_Error::EIDL_REDEF, + t, + this, d); return NULL; } - if (referenced (d, t->local_name ())) + if (referenced (d, t->local_name ())) { - idl_global->err ()->error3 (UTL_Error::EIDL_DEF_USE, - t, - this, + idl_global->err ()->error3 (UTL_Error::EIDL_DEF_USE, + t, + this, d); return NULL; } - if (t->has_ancestor(d)) + if (t->has_ancestor(d)) { - idl_global->err ()->redefinition_in_scope (t, + idl_global->err ()->redefinition_in_scope (t, d); return NULL; } @@ -336,8 +342,8 @@ AST_Attribute *AST_Interface::fe_add_attribute (AST_Attribute *t) /* * Add it to set of locally referenced symbols */ - add_to_referenced (t, - I_FALSE, + add_to_referenced (t, + I_FALSE, t->local_name ()); return t; @@ -355,29 +361,29 @@ AST_Field *AST_Interface::fe_add_field (AST_Field *t) /* * Already defined and cannot be redefined? Or already used? */ - if ((d = lookup_for_add(t, I_FALSE)) != NULL) + if ((d = lookup_for_add(t, I_FALSE)) != NULL) { - if (!can_be_redefined (d)) + if (!can_be_redefined (d)) { - idl_global->err ()->error3 (UTL_Error::EIDL_REDEF, - t, - this, + idl_global->err ()->error3 (UTL_Error::EIDL_REDEF, + t, + this, d); return NULL; } - if (referenced (d, t->local_name ())) + if (referenced (d, t->local_name ())) { - idl_global->err ()->error3 (UTL_Error::EIDL_DEF_USE, - t, - this, + idl_global->err ()->error3 (UTL_Error::EIDL_DEF_USE, + t, + this, d); return NULL; } - if (t->has_ancestor (d)) + if (t->has_ancestor (d)) { - idl_global->err ()->redefinition_in_scope (t, + idl_global->err ()->redefinition_in_scope (t, d); return NULL; } @@ -389,8 +395,8 @@ AST_Field *AST_Interface::fe_add_field (AST_Field *t) /* * Add it to set of locally referenced symbols */ - add_to_referenced (t, - I_FALSE, + add_to_referenced (t, + I_FALSE, t->local_name ()); return t; @@ -412,39 +418,39 @@ AST_Operation *AST_Interface::fe_add_operation(AST_Operation *t) /* * Can't add to interface which was not yet defined */ - if (!is_defined ()) + if (!is_defined ()) { - idl_global->err ()->error2 (UTL_Error::EIDL_DECL_NOT_DEFINED, - this, + idl_global->err ()->error2 (UTL_Error::EIDL_DECL_NOT_DEFINED, + this, t); return NULL; } /* * Already defined and cannot be redefined? Or already used? */ - if ((d = lookup_for_add (t, I_FALSE)) != NULL) + if ((d = lookup_for_add (t, I_FALSE)) != NULL) { - if (!can_be_redefined(d)) + if (!can_be_redefined(d)) { - idl_global->err ()->error3 (UTL_Error::EIDL_REDEF, - t, - this, + idl_global->err ()->error3 (UTL_Error::EIDL_REDEF, + t, + this, d); return NULL; } - if (referenced (d, t->local_name ())) + if (referenced (d, t->local_name ())) { - idl_global->err ()->error3 (UTL_Error::EIDL_DEF_USE, - t, - this, + idl_global->err ()->error3 (UTL_Error::EIDL_DEF_USE, + t, + this, d); return NULL; } - if (t->has_ancestor (d)) + if (t->has_ancestor (d)) { - idl_global->err ()->redefinition_in_scope (t, + idl_global->err ()->redefinition_in_scope (t, d); return NULL; } @@ -456,8 +462,8 @@ AST_Operation *AST_Interface::fe_add_operation(AST_Operation *t) /* * Add it to set of locally referenced symbols */ - add_to_referenced (t, - I_FALSE, + add_to_referenced (t, + I_FALSE, t->local_name ()); return t; @@ -473,39 +479,39 @@ AST_Structure *AST_Interface::fe_add_structure (AST_Structure *t) /* * Can't add to interface which was not yet defined */ - if (!is_defined ()) + if (!is_defined ()) { - idl_global->err ()->error2 (UTL_Error::EIDL_DECL_NOT_DEFINED, - this, + idl_global->err ()->error2 (UTL_Error::EIDL_DECL_NOT_DEFINED, + this, t); return NULL; } /* * Already defined and cannot be redefined? Or already used? */ - if ((d = lookup_for_add (t, I_FALSE)) != NULL) + if ((d = lookup_for_add (t, I_FALSE)) != NULL) { - if (!can_be_redefined(d)) + if (!can_be_redefined(d)) { - idl_global->err ()->error3 (UTL_Error::EIDL_REDEF, - t, - this, + idl_global->err ()->error3 (UTL_Error::EIDL_REDEF, + t, + this, d); return NULL; } - if (referenced (d, t->local_name ())) + if (referenced (d, t->local_name ())) { - idl_global->err ()->error3 (UTL_Error::EIDL_DEF_USE, - t, + idl_global->err ()->error3 (UTL_Error::EIDL_DEF_USE, + t, this, d); return NULL; } - if (t->has_ancestor (d)) - { - idl_global->err ()->redefinition_in_scope (t, + if (t->has_ancestor (d)) + { + idl_global->err ()->redefinition_in_scope (t, d); return NULL; } @@ -517,8 +523,8 @@ AST_Structure *AST_Interface::fe_add_structure (AST_Structure *t) /* * Add it to set of locally referenced symbols */ - add_to_referenced (t, - I_FALSE, + add_to_referenced (t, + I_FALSE, t->local_name ()); return t; @@ -534,39 +540,39 @@ AST_Enum *AST_Interface::fe_add_enum (AST_Enum *t) /* * Can't add to interface which was not yet defined */ - if (!is_defined ()) + if (!is_defined ()) { - idl_global->err ()->error2 (UTL_Error::EIDL_DECL_NOT_DEFINED, - this, + idl_global->err ()->error2 (UTL_Error::EIDL_DECL_NOT_DEFINED, + this, t); return NULL; } /* * Already defined and cannot be redefined? Or already used? */ - if ((d = lookup_for_add (t, I_FALSE)) != NULL) + if ((d = lookup_for_add (t, I_FALSE)) != NULL) { - if (!can_be_redefined (d)) + if (!can_be_redefined (d)) { - idl_global->err ()->error3 (UTL_Error::EIDL_REDEF, - t, - this, + idl_global->err ()->error3 (UTL_Error::EIDL_REDEF, + t, + this, d); return NULL; } - if (referenced (d, t->local_name ())) + if (referenced (d, t->local_name ())) { - idl_global->err ()->error3 (UTL_Error::EIDL_DEF_USE, - t, - this, + idl_global->err ()->error3 (UTL_Error::EIDL_DEF_USE, + t, + this, d); return NULL; } - if (t->has_ancestor (d)) + if (t->has_ancestor (d)) { - idl_global->err ()->redefinition_in_scope (t, + idl_global->err ()->redefinition_in_scope (t, d); return NULL; } @@ -578,8 +584,8 @@ AST_Enum *AST_Interface::fe_add_enum (AST_Enum *t) /* * Add it to set of locally referenced symbols */ - add_to_referenced (t, - I_FALSE, + add_to_referenced (t, + I_FALSE, t->local_name ()); return t; @@ -595,39 +601,39 @@ AST_Union *AST_Interface::fe_add_union (AST_Union *t) /* * Can't add to interface which was not yet defined */ - if (!is_defined ()) + if (!is_defined ()) { - idl_global->err ()->error2 (UTL_Error::EIDL_DECL_NOT_DEFINED, - this, + idl_global->err ()->error2 (UTL_Error::EIDL_DECL_NOT_DEFINED, + this, t); return NULL; } /* * Already defined and cannot be redefined? Or already used? */ - if ((d = lookup_for_add (t, I_FALSE)) != NULL) + if ((d = lookup_for_add (t, I_FALSE)) != NULL) { - if (!can_be_redefined(d)) + if (!can_be_redefined(d)) { - idl_global->err ()->error3 (UTL_Error::EIDL_REDEF, - t, - this, + idl_global->err ()->error3 (UTL_Error::EIDL_REDEF, + t, + this, d); return NULL; } - if (referenced (d, t->local_name ())) + if (referenced (d, t->local_name ())) { - idl_global->err ()->error3 (UTL_Error::EIDL_DEF_USE, - t, - this, + idl_global->err ()->error3 (UTL_Error::EIDL_DEF_USE, + t, + this, d); return NULL; } - if (t->has_ancestor (d)) + if (t->has_ancestor (d)) { - idl_global->err ()->redefinition_in_scope (t, + idl_global->err ()->redefinition_in_scope (t, d); return NULL; } @@ -639,7 +645,7 @@ AST_Union *AST_Interface::fe_add_union (AST_Union *t) /* * Add it to set of locally referenced symbols */ - add_to_referenced (t, + add_to_referenced (t, I_FALSE, t->local_name ()); @@ -659,39 +665,39 @@ AST_EnumVal *AST_Interface::fe_add_enum_val (AST_EnumVal *t) /* * Can't add to interface which was not yet defined */ - if (!is_defined ()) + if (!is_defined ()) { - idl_global->err ()->error2 (UTL_Error::EIDL_DECL_NOT_DEFINED, - this, + idl_global->err ()->error2 (UTL_Error::EIDL_DECL_NOT_DEFINED, + this, t); return NULL; } /* * Already defined and cannot be redefined? Or already used? */ - if ((d = lookup_for_add (t, I_FALSE)) != NULL) + if ((d = lookup_for_add (t, I_FALSE)) != NULL) { - if (!can_be_redefined(d)) + if (!can_be_redefined(d)) { - idl_global->err ()->error3 (UTL_Error::EIDL_REDEF, - t, - this, + idl_global->err ()->error3 (UTL_Error::EIDL_REDEF, + t, + this, d); return NULL; } - if (referenced (d, t->local_name ())) + if (referenced (d, t->local_name ())) { - idl_global->err ()->error3 (UTL_Error::EIDL_DEF_USE, - t, - this, + idl_global->err ()->error3 (UTL_Error::EIDL_DEF_USE, + t, + this, d); return NULL; } - if (t->has_ancestor(d)) + if (t->has_ancestor(d)) { - idl_global->err ()->redefinition_in_scope (t, + idl_global->err ()->redefinition_in_scope (t, d); return NULL; } @@ -703,8 +709,8 @@ AST_EnumVal *AST_Interface::fe_add_enum_val (AST_EnumVal *t) /* * Add it to set of locally referenced symbols */ - add_to_referenced (t, - I_FALSE, + add_to_referenced (t, + I_FALSE, t->local_name ()); return t; @@ -720,39 +726,39 @@ AST_Typedef *AST_Interface::fe_add_typedef(AST_Typedef *t) /* * Can't add to interface which was not yet defined */ - if (!is_defined ()) + if (!is_defined ()) { - idl_global->err ()->error2 (UTL_Error::EIDL_DECL_NOT_DEFINED, - this, + idl_global->err ()->error2 (UTL_Error::EIDL_DECL_NOT_DEFINED, + this, t); return NULL; } /* * Already defined and cannot be redefined? Or already used? */ - if ((d = lookup_for_add (t, I_FALSE)) != NULL) + if ((d = lookup_for_add (t, I_FALSE)) != NULL) { - if (!can_be_redefined (d)) + if (!can_be_redefined (d)) { - idl_global->err ()->error3 (UTL_Error::EIDL_REDEF, - t, - this, + idl_global->err ()->error3 (UTL_Error::EIDL_REDEF, + t, + this, d); return NULL; } - if (referenced (d, t->local_name ())) + if (referenced (d, t->local_name ())) { - idl_global->err ()->error3 (UTL_Error::EIDL_DEF_USE, - t, - this, + idl_global->err ()->error3 (UTL_Error::EIDL_DEF_USE, + t, + this, d); return NULL; } - if (t->has_ancestor (d)) + if (t->has_ancestor (d)) { - idl_global->err ()->redefinition_in_scope (t, + idl_global->err ()->redefinition_in_scope (t, d); return NULL; } @@ -764,8 +770,8 @@ AST_Typedef *AST_Interface::fe_add_typedef(AST_Typedef *t) /* * Add it to set of locally referenced symbols */ - add_to_referenced (t, - I_FALSE, + add_to_referenced (t, + I_FALSE, t->local_name ()); return t; @@ -781,39 +787,39 @@ AST_Native *AST_Interface::fe_add_native (AST_Native *t) /* * Can't add to interface which was not yet defined */ - if (!is_defined ()) + if (!is_defined ()) { - idl_global->err ()->error2 (UTL_Error::EIDL_DECL_NOT_DEFINED, - this, + idl_global->err ()->error2 (UTL_Error::EIDL_DECL_NOT_DEFINED, + this, t); return NULL; } /* * Already defined and cannot be redefined? Or already used? */ - if ((d = lookup_for_add (t, I_FALSE)) != NULL) + if ((d = lookup_for_add (t, I_FALSE)) != NULL) { - if (!can_be_redefined (d)) + if (!can_be_redefined (d)) { - idl_global->err ()->error3 (UTL_Error::EIDL_REDEF, + idl_global->err ()->error3 (UTL_Error::EIDL_REDEF, t, this, d); return NULL; } - if (referenced (d, t->local_name ())) + if (referenced (d, t->local_name ())) { - idl_global->err ()->error3 (UTL_Error::EIDL_DEF_USE, - t, - this, + idl_global->err ()->error3 (UTL_Error::EIDL_DEF_USE, + t, + this, d); return NULL; } - if (t->has_ancestor (d)) + if (t->has_ancestor (d)) { - idl_global->err ()->redefinition_in_scope (t, + idl_global->err ()->redefinition_in_scope (t, d); return NULL; } @@ -825,8 +831,8 @@ AST_Native *AST_Interface::fe_add_native (AST_Native *t) /* * Add it to set of locally referenced symbols */ - add_to_referenced (t, - I_FALSE, + add_to_referenced (t, + I_FALSE, t->local_name ()); return t; @@ -857,11 +863,11 @@ AST_Interface::dump (ostream &o) local_name ()->dump (o); o << " "; - if (pd_n_inherits > 0) + if (pd_n_inherits > 0) { o << ": "; - for (i = 0; i < pd_n_inherits; i++) + for (i = 0; i < pd_n_inherits; i++) { pd_inherits[i]->local_name( )->dump (o); @@ -877,7 +883,7 @@ AST_Interface::dump (ostream &o) } void -AST_Interface::fwd_redefinition_helper (AST_Interface *&i, +AST_Interface::fwd_redefinition_helper (AST_Interface *&i, UTL_Scope *s, UTL_StrList *p) { @@ -887,29 +893,29 @@ AST_Interface::fwd_redefinition_helper (AST_Interface *&i, AST_Interface *fd = NULL; - if (i != NULL && d != NULL) + if (i != NULL && d != NULL) { // See if we're defining a forward declared interface. - if (d->node_type () == AST_Decl::NT_interface) + if (d->node_type () == AST_Decl::NT_interface) { // Narrow to an interface fd = AST_Interface::narrow_from_decl (d); // Successful? - if (fd == NULL) + if (fd == NULL) { // Should we give an error here? ... no, look in fe_add_interface } // If it is a forward declared interface.. - else if (!fd->is_defined ()) + else if (!fd->is_defined ()) { // Check if redefining in same scope. If a module is reopened, // a new pointer in created, and the first term below will be true. // In that case, the scoped names must be compared. - if (fd->defined_in () != s - && !AST_Interface::compare_names (fd, - i)) + if (fd->defined_in () != s + && !AST_Interface::compare_names (fd, + i)) { idl_global->err ()->error2 (UTL_Error::EIDL_SCOPE_CONFLICT, i, @@ -917,24 +923,24 @@ AST_Interface::fwd_redefinition_helper (AST_Interface *&i, } // All OK, do the redefinition - else + else { # ifdef IDL_HAS_VALUETYPE // only redefinition of the same kind - if ((i->is_valuetype () != fd->is_valuetype ()) - || (i->is_abstract_valuetype () != fd->is_abstract_valuetype ()) + if ((i->is_valuetype () != fd->is_valuetype ()) + || (i->is_abstract_valuetype () != fd->is_abstract_valuetype ()) || (i->is_abstract_interface () != fd->is_abstract_interface ())) { - idl_global->err ()->error2 (UTL_Error::EIDL_REDEF, - i, + idl_global->err ()->error2 (UTL_Error::EIDL_REDEF, + i, fd); return; } # endif /* IDL_HAS_VALUETYPE */ - fd->redefine (i, + fd->redefine (i, p); // Use full definition node @@ -952,7 +958,7 @@ AST_Interface::fwd_redefinition_helper (AST_Interface *&i, */ void -AST_Interface::redefine (AST_Interface *from, +AST_Interface::redefine (AST_Interface *from, UTL_StrList *p) { this->set_inherits (from->inherits ()); @@ -1017,7 +1023,7 @@ AST_Interface::set_n_inherits_flat (long i) pd_n_inherits_flat = i; } -// Get the scoped names and, if they are the same +// Get the scoped names and, if they are the same // length, iterate over them, comparing each term. idl_bool AST_Interface::compare_names (AST_Interface *that, @@ -1036,9 +1042,9 @@ AST_Interface::compare_names (AST_Interface *that, Identifier *that_id = 0; Identifier *other_id = 0; - UTL_IdListActiveIterator *that_iter = + UTL_IdListActiveIterator *that_iter = new UTL_IdListActiveIterator (that_name); - UTL_IdListActiveIterator *other_iter = + UTL_IdListActiveIterator *other_iter = new UTL_IdListActiveIterator (other_name); for (int i = 0; i < that_length; i++) @@ -1070,7 +1076,7 @@ AST_Interface::inherited_name_clash () // Compare our members with those of each parent. - UTL_ScopeActiveIterator *my_members = + UTL_ScopeActiveIterator *my_members = new UTL_ScopeActiveIterator (DeclAsScope (this), UTL_Scope::IK_decls); @@ -1093,7 +1099,7 @@ AST_Interface::inherited_name_clash () // All other member types but these may be redefined in // the child. if (nt == AST_Decl::NT_op || nt == AST_Decl::NT_attr) - { + { Identifier *pid = parent1_member->local_name (); if (id->compare (pid) == I_TRUE) @@ -1113,7 +1119,7 @@ AST_Interface::inherited_name_clash () ); } else - { + { idl_global->err ()->warning2 ( UTL_Error::EIDL_NAME_CASE_WARNING, my_member, @@ -1137,7 +1143,7 @@ AST_Interface::inherited_name_clash () // Now compare members of each parent with each other. for (int i = 0; i < this->pd_n_inherits_flat - 1; i++) - { + { UTL_ScopeActiveIterator *parent1_members = new UTL_ScopeActiveIterator (DeclAsScope (pd_inherits_flat[i]), UTL_Scope::IK_decls); @@ -1150,7 +1156,7 @@ AST_Interface::inherited_name_clash () // Only these member types may cause a clash with other // parents' member of the same type. if (nt1 == AST_Decl::NT_op || nt1 == AST_Decl::NT_attr) - { + { Identifier *pid1 = parent1_member->local_name (); for (int j = i + 1; j < this->pd_n_inherits_flat; j++) @@ -1164,13 +1170,13 @@ AST_Interface::inherited_name_clash () while (!(parent2_members->is_done ())) { parent2_member = parent2_members->item (); - AST_Decl::NodeType nt2 = + AST_Decl::NodeType nt2 = parent2_member->node_type (); // Only these member types may cause a clash // with other parents' member of the same type. if (nt2 == AST_Decl::NT_op || nt2 == AST_Decl::NT_attr) - { + { Identifier *pid2 = parent2_member->local_name (); if (pid1->compare (pid2) == I_TRUE) @@ -1183,7 +1189,7 @@ AST_Interface::inherited_name_clash () ); } else if (pid1->case_compare_quiet (pid2) == I_TRUE) - { + { if (idl_global->case_diff_error ()) { idl_global->err ()->error3 ( diff --git a/TAO/TAO_IDL/ast/ast_interface_fwd.cpp b/TAO/TAO_IDL/ast/ast_interface_fwd.cpp index ef215bbc4e2..e978533a1da 100644 --- a/TAO/TAO_IDL/ast/ast_interface_fwd.cpp +++ b/TAO/TAO_IDL/ast/ast_interface_fwd.cpp @@ -87,7 +87,7 @@ AST_InterfaceFwd::AST_InterfaceFwd () } AST_InterfaceFwd::AST_InterfaceFwd( AST_Interface *dummy, - UTL_ScopedName *n, + UTL_ScopedName *n, UTL_StrList *p) : AST_Decl (AST_Decl::NT_interface_fwd, n, p) { @@ -123,6 +123,12 @@ idl_bool AST_InterfaceFwd::is_abstract_interface () } +idl_bool AST_InterfaceFwd::is_local_interface () +{ + return this->full_definition()->is_local_interface(); +} + + idl_bool AST_InterfaceFwd::is_valuetype () { return this->full_definition()->is_valuetype(); diff --git a/TAO/TAO_IDL/be/be_generator.cpp b/TAO/TAO_IDL/be/be_generator.cpp index bcc5f8d72c7..2a8418c00b3 100644 --- a/TAO/TAO_IDL/be/be_generator.cpp +++ b/TAO/TAO_IDL/be/be_generator.cpp @@ -121,21 +121,21 @@ be_generator::create_predefined_type (AST_PredefinedType::PredefinedType t, */ AST_Module * be_generator::create_module (UTL_Scope *s, - UTL_ScopedName *n, + UTL_ScopedName *n, UTL_StrList *p) { AST_Decl *d = 0; - UTL_ScopeActiveIterator *iter = + UTL_ScopeActiveIterator *iter = new UTL_ScopeActiveIterator (s, UTL_Scope::IK_decls); - + // We create this first so if we find a module with the - // same name from an included file, we can add its + // same name from an included file, we can add its // members to the new module's scope. AST_Module *retval = (AST_Module *) new be_module (n, p); - // Check for another module of the same name in this scope. + // Check for another module of the same name in this scope. while (!iter->is_done ()) { d = iter->item (); @@ -163,7 +163,7 @@ be_generator::create_module (UTL_Scope *s, // one), but the one being created is not. We add // the #included module's members to the new node // and return it. - UTL_ScopeActiveIterator *i = + UTL_ScopeActiveIterator *i = new UTL_ScopeActiveIterator (DeclAsScope (d), UTL_Scope::IK_decls); @@ -182,7 +182,7 @@ be_generator::create_module (UTL_Scope *s, } i->next (); - } + } delete i; } @@ -213,30 +213,54 @@ be_generator::create_interface (UTL_ScopedName *n, long nih, AST_Interface **ih_flat, long nih_flat, - UTL_StrList *p) -{ - return (AST_Interface *) new be_interface (n, - ih, - nih, - ih_flat, - nih_flat, - p); + UTL_StrList *p, + idl_bool local, + idl_bool abstract) +{ + if (! local && ! abstract) + return (AST_Interface *) new be_interface (n, + ih, + nih, + ih_flat, + nih_flat, + p); + else if (local && ! abstract) + return (AST_Interface *) new be_local_interface (n, + ih, + nih, + ih_flat, + nih_flat, + p); + else if (abstract && !local) + return (AST_Interface *) new be_abstract_interface (n, + ih, + nih, + ih_flat, + nih_flat, + p); + else + ACE_ASSERT (0); + return 0; } /* * Create a BE_InterfaceFwd node */ AST_InterfaceFwd * -be_generator::create_interface_fwd (UTL_ScopedName *n, - UTL_StrList *p) +be_generator::create_interface_fwd (UTL_ScopedName *n, + UTL_StrList *p, + idl_bool local, + idl_bool abstract) { - return (AST_InterfaceFwd *) new be_interface_fwd (this->create_interface (n, - 0, + return (AST_InterfaceFwd *) new be_interface_fwd (this->create_interface (n, + 0, -1, 0, - 0, - p), - n, + 0, + p, + local, + abstract), + n, p); } @@ -537,7 +561,7 @@ be_generator::create_string(AST_Expression *v) AST_String * be_generator::create_wstring(AST_Expression *v) { - return (AST_String *) new be_string (v, + return (AST_String *) new be_string (v, sizeof (ACE_CDR::WChar)); } diff --git a/TAO/TAO_IDL/be/be_interface.cpp b/TAO/TAO_IDL/be/be_interface.cpp index 21774096fb1..b5a0afa46f6 100644 --- a/TAO/TAO_IDL/be/be_interface.cpp +++ b/TAO/TAO_IDL/be/be_interface.cpp @@ -333,14 +333,14 @@ be_interface::gen_copy_ctors_helper (be_interface* node, be_interface* base, TAO { if(first) { - *os << idl_global->impl_class_prefix () << base->flat_name () + *os << idl_global->impl_class_prefix () << base->flat_name () << idl_global->impl_class_suffix () << " (t)" << ", " << base->full_skel_name () << " (t)"; first = 0; } else { - *os << ", " << idl_global->impl_class_prefix () << base->flat_name () + *os << ", " << idl_global->impl_class_prefix () << base->flat_name () << idl_global->impl_class_suffix () << " (t)" << ", " << base->full_skel_name () << " (t)"; ; @@ -374,13 +374,13 @@ be_interface::gen_def_ctors_helper (be_interface* node, be_interface* base, TAO_ { if(first) { - *os << idl_global->impl_class_prefix () << base->flat_name () + *os << idl_global->impl_class_prefix () << base->flat_name () << idl_global->impl_class_suffix () << " ()"; first = 0; } else { - *os << ", " << idl_global->impl_class_prefix () << base->flat_name () + *os << ", " << idl_global->impl_class_prefix () << base->flat_name () << idl_global->impl_class_suffix () << " ()"; } @@ -411,8 +411,8 @@ be_interface::gen_var_defn (char* interface_name) interface_name = (char *) this->local_name (); // Buffer with name of the var class. - ACE_OS::memset (namebuf, - '\0', + ACE_OS::memset (namebuf, + '\0', NAMEBUFSIZE); ACE_OS::sprintf (namebuf, @@ -510,20 +510,20 @@ be_interface::gen_var_impl (char *interface_local_name, interface_full_name = (char *) this->full_name (); } - ACE_OS::memset (fname, - '\0', + ACE_OS::memset (fname, + '\0', NAMEBUFSIZE); - ACE_OS::sprintf (fname, - "%s_var", + ACE_OS::sprintf (fname, + "%s_var", interface_full_name); - ACE_OS::memset (lname, - '\0', + ACE_OS::memset (lname, + '\0', NAMEBUFSIZE); - ACE_OS::sprintf (lname, - "%s_var", + ACE_OS::sprintf (lname, + "%s_var", interface_local_name); // retrieve a singleton instance of the code generator @@ -544,16 +544,16 @@ be_interface::gen_var_impl (char *interface_local_name, // default constr *ci << "ACE_INLINE" << nl; - *ci << fname << "::" << lname + *ci << fname << "::" << lname << " (void) // default constructor" << nl; - *ci << " " << ": ptr_ (" << interface_local_name + *ci << " " << ": ptr_ (" << interface_local_name << "::_nil ())" << nl; *ci << "{}\n\n"; // constr from a _ptr ci->indent (); *ci << "ACE_INLINE" << nl; - *ci << fname << "::" << lname << " (" << interface_local_name + *ci << fname << "::" << lname << " (" << interface_local_name << "_ptr p)" << nl; *ci << " : ptr_ (p)" << nl; *ci << "{}\n\n"; @@ -574,9 +574,9 @@ be_interface::gen_var_impl (char *interface_local_name, // copy constructor ci->indent (); *ci << "ACE_INLINE" << nl; - *ci << fname << "::" << lname << " (const " << "::" << interface_full_name + *ci << fname << "::" << lname << " (const " << "::" << interface_full_name << "_var &p) // copy constructor" << nl; - *ci << " : ptr_ (" << interface_local_name + *ci << " : ptr_ (" << interface_local_name << "::_duplicate (p.ptr ()))" << nl; *ci << "{}\n\n"; @@ -593,7 +593,7 @@ be_interface::gen_var_impl (char *interface_local_name, // assignment operator ci->indent (); *ci << "ACE_INLINE " << fname << " &" << nl; - *ci << fname << "::operator= (" << interface_local_name + *ci << fname << "::operator= (" << interface_local_name << "_ptr p)" << nl; *ci << "{\n"; ci->incr_indent (); @@ -606,7 +606,7 @@ be_interface::gen_var_impl (char *interface_local_name, // assignment operator from _var ci->indent (); *ci << "ACE_INLINE " << fname << " &" << nl; - *ci << fname << "::operator= (const " + *ci << fname << "::operator= (const " << "::" << interface_full_name << "_var &p)" << nl; *ci << "{\n"; ci->incr_indent (); @@ -614,7 +614,7 @@ be_interface::gen_var_impl (char *interface_local_name, *ci << "{\n"; ci->incr_indent (); *ci << "CORBA::release (this->ptr_);" << nl; - *ci << "this->ptr_ = " << "::" << interface_full_name + *ci << "this->ptr_ = " << "::" << interface_full_name << "::_duplicate (p.ptr ());\n"; ci->decr_indent (); *ci << "}" << nl; @@ -625,7 +625,7 @@ be_interface::gen_var_impl (char *interface_local_name, // other extra methods - cast operator () ci->indent (); *ci << "ACE_INLINE " << nl; - *ci << fname << "::operator const " << "::" << interface_full_name + *ci << fname << "::operator const " << "::" << interface_full_name << "_ptr &() const // cast" << nl; *ci << "{\n"; ci->incr_indent (); @@ -635,7 +635,7 @@ be_interface::gen_var_impl (char *interface_local_name, ci->indent (); *ci << "ACE_INLINE " << nl; - *ci << fname << "::operator " << "::" << interface_full_name + *ci << fname << "::operator " << "::" << interface_full_name << "_ptr &() // cast " << nl; *ci << "{\n"; ci->incr_indent (); @@ -678,7 +678,7 @@ be_interface::gen_var_impl (char *interface_local_name, *ci << "{\n"; ci->incr_indent (); *ci << "CORBA::release (this->ptr_);" << nl; - *ci << "this->ptr_ = " << "::" << interface_full_name + *ci << "this->ptr_ = " << "::" << interface_full_name << "::_nil ();" << nl; *ci << "return this->ptr_;\n"; ci->decr_indent (); @@ -691,7 +691,7 @@ be_interface::gen_var_impl (char *interface_local_name, ci->incr_indent (); *ci << "// yield ownership of managed obj reference" << nl; *ci << "::" << interface_full_name << "_ptr val = this->ptr_;" << nl; - *ci << "this->ptr_ = " << "::" << interface_full_name + *ci << "this->ptr_ = " << "::" << interface_full_name << "::_nil ();" << nl; *ci << "return val;\n"; ci->decr_indent (); @@ -813,12 +813,12 @@ be_interface::gen_out_impl (char *interface_local_name, // constr from a _ptr ci->indent (); *ci << "ACE_INLINE" << nl; - *ci << fname << "::" << lname << " (" << interface_local_name + *ci << fname << "::" << lname << " (" << interface_local_name << "_ptr &p)" << nl; *ci << " : ptr_ (p)" << nl; *ci << "{\n"; ci->incr_indent (); - *ci << "this->ptr_ = " << "::" << interface_full_name + *ci << "this->ptr_ = " << "::" << interface_full_name << "::_nil ();\n"; ci->decr_indent (); *ci << "}\n\n"; @@ -826,13 +826,13 @@ be_interface::gen_out_impl (char *interface_local_name, // constructor from _var & ci->indent (); *ci << "ACE_INLINE" << nl; - *ci << fname << "::" << lname << " (" << interface_local_name + *ci << fname << "::" << lname << " (" << interface_local_name << "_var &p) // constructor from _var" << nl; *ci << " : ptr_ (p.out ())" << nl; *ci << "{\n"; ci->incr_indent (); *ci << "CORBA::release (this->ptr_);" << nl; - *ci << "this->ptr_ = " << "::" << interface_full_name + *ci << "this->ptr_ = " << "::" << interface_full_name << "::_nil ();\n"; ci->decr_indent (); *ci << "}\n\n"; @@ -840,20 +840,20 @@ be_interface::gen_out_impl (char *interface_local_name, // copy constructor ci->indent (); *ci << "ACE_INLINE" << nl; - *ci << fname << "::" << lname << " (const " << "::" << interface_full_name + *ci << fname << "::" << lname << " (const " << "::" << interface_full_name << "_out &p) // copy constructor" << nl; - *ci << " : ptr_ (ACE_const_cast (" << interface_local_name + *ci << " : ptr_ (ACE_const_cast (" << interface_local_name << "_out &, p).ptr_)" << nl; *ci << "{}\n\n"; // assignment operator from _out & ci->indent (); *ci << "ACE_INLINE ::" << fname << " &" << nl; - *ci << fname << "::operator= (const " << "::" << interface_full_name + *ci << fname << "::operator= (const " << "::" << interface_full_name << "_out &p)" << nl; *ci << "{\n"; ci->incr_indent (); - *ci << "this->ptr_ = ACE_const_cast (" << interface_local_name + *ci << "this->ptr_ = ACE_const_cast (" << interface_local_name << "_out&, p).ptr_;" << nl; *ci << "return *this;\n"; ci->decr_indent (); @@ -862,11 +862,11 @@ be_interface::gen_out_impl (char *interface_local_name, // assignment operator from _var ci->indent (); *ci << "ACE_INLINE " << fname << " &" << nl; - *ci << fname << "::operator= (const " << "::" << interface_full_name + *ci << fname << "::operator= (const " << "::" << interface_full_name << "_var &p)" << nl; *ci << "{\n"; ci->incr_indent (); - *ci << "this->ptr_ = " << "::" << interface_full_name + *ci << "this->ptr_ = " << "::" << interface_full_name << "::_duplicate (p.ptr ());" << nl; *ci << "return *this;\n"; ci->decr_indent (); @@ -875,7 +875,7 @@ be_interface::gen_out_impl (char *interface_local_name, // assignment operator from _ptr ci->indent (); *ci << "ACE_INLINE " << fname << " &" << nl; - *ci << fname << "::operator= (" << interface_local_name + *ci << fname << "::operator= (" << interface_local_name << "_ptr p)" << nl; *ci << "{\n"; ci->incr_indent (); @@ -887,7 +887,7 @@ be_interface::gen_out_impl (char *interface_local_name, // other extra methods - cast operator () ci->indent (); *ci << "ACE_INLINE " << nl; - *ci << fname << "::operator " << "::" << interface_full_name + *ci << fname << "::operator " << "::" << interface_full_name << "_ptr &() // cast" << nl; *ci << "{\n"; ci->incr_indent (); @@ -2049,7 +2049,7 @@ TAO_CodeGen::CG_STATE be_interface::next_state (TAO_CodeGen::CG_STATE current_state, int is_extra_state) { - return this->strategy_->next_state (current_state, is_extra_state); + return this->strategy_->next_state (current_state, is_extra_state); } int @@ -2082,6 +2082,39 @@ IMPL_NARROW_METHODS3 (be_interface, AST_Interface, be_scope, be_type) IMPL_NARROW_FROM_DECL (be_interface) IMPL_NARROW_FROM_SCOPE (be_interface) +be_local_interface::be_local_interface (UTL_ScopedName *n, + AST_Interface **ih, + long nih, + AST_Interface **ih_flat, + long nih_flat, + UTL_StrList *p) + : be_interface (n, ih, nih, ih_flat, nih_flat, p) +{ +} + +idl_bool +be_local_interface::is_local_interface () +{ + return 1; +} + +be_abstract_interface::be_abstract_interface (UTL_ScopedName *n, + AST_Interface **ih, + long nih, + AST_Interface **ih_flat, + long nih_flat, + UTL_StrList *p) + : be_interface (n, ih, nih, ih_flat, nih_flat, p) +{ +} + +idl_bool +be_abstract_interface::is_abstract_interface () +{ + return 1; +} + + #if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) template class ACE_Node <be_interface*>; template class ACE_Unbounded_Queue <be_interface*>; diff --git a/TAO/TAO_IDL/be_include/be_generator.h b/TAO/TAO_IDL/be_include/be_generator.h index a0105cda93f..07d60a32f8d 100644 --- a/TAO/TAO_IDL/be_include/be_generator.h +++ b/TAO/TAO_IDL/be_include/be_generator.h @@ -94,16 +94,20 @@ public: UTL_StrList *p); virtual AST_Module *create_module(UTL_Scope *s, - UTL_ScopedName *n, + UTL_ScopedName *n, UTL_StrList *p); virtual AST_Interface *create_interface(UTL_ScopedName *n, AST_Interface **ih, long nih, AST_Interface **ih_flat, long nih_flat, - UTL_StrList *p); + UTL_StrList *p, + idl_bool local, + idl_bool abstract); virtual AST_InterfaceFwd *create_interface_fwd(UTL_ScopedName *n, - UTL_StrList *p); + UTL_StrList *p, + idl_bool local, + idl_bool abstract); virtual AST_Interface *create_valuetype(UTL_ScopedName *n, AST_Interface **ih, long nih, diff --git a/TAO/TAO_IDL/be_include/be_interface.h b/TAO/TAO_IDL/be_include/be_interface.h index 264e36b0d57..d025711c3bc 100644 --- a/TAO/TAO_IDL/be_include/be_interface.h +++ b/TAO/TAO_IDL/be_include/be_interface.h @@ -226,7 +226,7 @@ public: TAO_CodeGen::CG_STATE next_state (TAO_CodeGen::CG_STATE current_state, int is_extra_state = 0); - // find the next state, used to hide differences between variants of + // find the next state, used to hide differences between variants of // interfaces. int has_extra_code_generation (TAO_CodeGen::CG_STATE current_state); @@ -235,11 +235,11 @@ public: void original_interface (be_interface *original_interface); // Sets the original interface from which this one was created, - // applies only to implied IDL + // applies only to implied IDL be_interface *original_interface (); // Returns the original interface from which this one was created, - // applies only to implied IDL + // applies only to implied IDL be_interface *replacement (); // Returns an interface, which can be used instead. @@ -293,5 +293,34 @@ private: be_interface *original_interface_; }; -#endif // if !defined +class be_local_interface : public be_interface +{ +public: + be_local_interface (UTL_ScopedName *n, + AST_Interface **ih, + long nih, + AST_Interface **ih_flat, + long nih_flat, + UTL_StrList *p); + // Constructor that sets its scoped name <n>, a list of inherited interfaces + // <ih>, the number of inherited interfaces <nih>, and any prgmas <p> + + virtual idl_bool is_local_interface (); +}; +class be_abstract_interface : public be_interface +{ +public: + be_abstract_interface (UTL_ScopedName *n, + AST_Interface **ih, + long nih, + AST_Interface **ih_flat, + long nih_flat, + UTL_StrList *p); + // Constructor that sets its scoped name <n>, a list of inherited interfaces + // <ih>, the number of inherited interfaces <nih>, and any prgmas <p> + + virtual idl_bool is_abstract_interface (); +}; + +#endif // if !defined diff --git a/TAO/TAO_IDL/fe/fe_interface_header.cpp b/TAO/TAO_IDL/fe/fe_interface_header.cpp index 178e1e7fd4a..2d6054398cf 100644 --- a/TAO/TAO_IDL/fe/fe_interface_header.cpp +++ b/TAO/TAO_IDL/fe/fe_interface_header.cpp @@ -83,7 +83,7 @@ ACE_RCSID(fe, fe_interface_header, "$Id$") * Constructor(s) and destructor */ -FE_InterfaceHeader::FE_InterfaceHeader (UTL_ScopedName *n, +FE_InterfaceHeader::FE_InterfaceHeader (UTL_ScopedName *n, UTL_NameList *nl, UTL_NameList *supports, idl_bool compile_now) @@ -91,7 +91,7 @@ FE_InterfaceHeader::FE_InterfaceHeader (UTL_ScopedName *n, { if (compile_now) { - compile_inheritance (nl, + compile_inheritance (nl, supports); } } @@ -135,14 +135,14 @@ add_inheritance (AST_Interface *i) /* * Make sure there's space for one more */ - if (iallocated == iused) + if (iallocated == iused) { - if (iallocated == 0) + if (iallocated == 0) { iallocated = INCREMENT; iseen = new AST_Interface *[iallocated]; - } - else + } + else { oiseen = iseen; iallocated += INCREMENT; @@ -171,14 +171,14 @@ add_inheritance_flat (AST_Interface *i) /* * Make sure there's space for one more */ - if (iallocated_flat == iused_flat) + if (iallocated_flat == iused_flat) { - if (iallocated_flat == 0) + if (iallocated_flat == 0) { iallocated_flat = INCREMENT; iseen_flat = new AST_Interface *[iallocated_flat]; - } - else + } + else { oiseen_flat = iseen_flat; iallocated_flat += INCREMENT; @@ -205,7 +205,7 @@ already_seen (AST_Interface *ip) { long i; - for (i = 0; i < iused; i++) + for (i = 0; i < iused; i++) { if (iseen[i] == ip) return I_TRUE; @@ -220,7 +220,7 @@ already_seen_flat (AST_Interface *ip) { long i; - for (i = 0; i < iused_flat; i++) + for (i = 0; i < iused_flat; i++) { if (iseen_flat[i] == ip) return I_TRUE; @@ -229,6 +229,18 @@ already_seen_flat (AST_Interface *ip) return I_FALSE; } +idl_bool +FE_InterfaceHeader::is_local (void) +{ + return 0; +} + +idl_bool +FE_InterfaceHeader::is_abstract (void) +{ + return 0; +} + /* * Add this interface to the list of inherited if not already there */ @@ -294,18 +306,18 @@ FE_InterfaceHeader::compile_inheritance (UTL_NameList *ifaces, */ nl = ifaces; // loop twice if nl and supports are nonempty - for (loops = 0; loops < 2; ++loops) + for (loops = 0; loops < 2; ++loops) { - if (nl != NULL) + if (nl != NULL) { l = new UTL_NamelistActiveIterator (nl); - while (!(l->is_done ())) + while (!(l->is_done ())) { /* * Check that scope stack is valid */ - if (idl_global->scopes ()->top () == NULL) + if (idl_global->scopes ()->top () == NULL) { idl_global->err ()->lookup_error (l->item ()); return; @@ -313,12 +325,12 @@ FE_InterfaceHeader::compile_inheritance (UTL_NameList *ifaces, /* * Look it up */ - d = idl_global->scopes ()->top ()->lookup_by_name (l->item (), + d = idl_global->scopes ()->top ()->lookup_by_name (l->item (), I_TRUE); /* * Not found? */ - if (d == NULL) + if (d == NULL) { idl_global->err ()->lookup_error (l->item ()); return; @@ -355,7 +367,7 @@ FE_InterfaceHeader::compile_inheritance (UTL_NameList *ifaces, if (inh_err) { - idl_global->err ()->inheritance_error (pd_interface_name, + idl_global->err ()->inheritance_error (pd_interface_name, d); return; //%! really ? inh_err=0; and test the remaining...? } @@ -363,9 +375,9 @@ FE_InterfaceHeader::compile_inheritance (UTL_NameList *ifaces, /* * Forward declared interface? */ - if (!i->is_defined ()) + if (!i->is_defined ()) { - idl_global->err ()->inheritance_fwd_error (pd_interface_name, + idl_global->err ()->inheritance_fwd_error (pd_interface_name, i); return; } @@ -477,18 +489,46 @@ FE_InterfaceHeader::n_inherits_flat (void) return pd_n_inherits_flat; } +FE_Local_InterfaceHeader::FE_Local_InterfaceHeader (UTL_ScopedName *n, + UTL_NameList *nl, + UTL_NameList *supports, + idl_bool compile_now) + : FE_InterfaceHeader (n, nl, supports, compile_now) +{ +} + +idl_bool +FE_Local_InterfaceHeader::is_local (void) +{ + return 1; +} + +FE_Abstract_InterfaceHeader::FE_Abstract_InterfaceHeader (UTL_ScopedName *n, + UTL_NameList *nl, + UTL_NameList *supports, + idl_bool compile_now) + : FE_InterfaceHeader (n, nl, supports, compile_now) +{ +} + +idl_bool +FE_Abstract_InterfaceHeader::is_abstract (void) +{ + return 1; +} + // #ifdef IDL_HAS_VALUETYPE // FE_obv_header -FE_obv_header::FE_obv_header (UTL_ScopedName *n, - UTL_NameList *nl, +FE_obv_header::FE_obv_header (UTL_ScopedName *n, + UTL_NameList *nl, UTL_NameList *supports) : FE_InterfaceHeader (n, nl, supports,0), truncatable_ (0), n_concrete_ (0) { - compile_inheritance (nl, + compile_inheritance (nl, supports); } diff --git a/TAO/TAO_IDL/fe/idl.ll b/TAO/TAO_IDL/fe/idl.ll index 1df32823314..bb64fa47819 100644 --- a/TAO/TAO_IDL/fe/idl.ll +++ b/TAO/TAO_IDL/fe/idl.ll @@ -156,6 +156,7 @@ boolean return IDL_BOOLEAN; octet return IDL_OCTET; void return IDL_VOID; native return IDL_NATIVE; +local return IDL_LOCAL; abstract return scan_obv_token (IDL_ABSTRACT); custom return scan_obv_token (IDL_CUSTOM); init return scan_obv_token (IDL_INIT); diff --git a/TAO/TAO_IDL/fe/idl.yy b/TAO/TAO_IDL/fe/idl.yy index c4bd9219fde..e3db1c40a37 100644 --- a/TAO/TAO_IDL/fe/idl.yy +++ b/TAO/TAO_IDL/fe/idl.yy @@ -167,6 +167,7 @@ extern int yyleng; %token IDL_RAISES %token IDL_CONTEXT %token IDL_NATIVE +%token IDL_LOCAL /* OBV tokens see OMG ptc/98-10-04 3.2.4 */ %token IDL_ABSTRACT %token IDL_CUSTOM @@ -206,7 +207,7 @@ extern int yyleng; %type <slval> string_literals %type <nlval> at_least_one_scoped_name scoped_names inheritance_spec -%type <nlval> opt_raises supports_spec +%type <nlval> opt_raises supports_spec %type <elval> at_least_one_array_dim array_dims @@ -387,7 +388,9 @@ interface : $1->n_inherits (), $1->inherits_flat (), $1->n_inherits_flat (), - p + p, + $1->is_local (), + $1->is_abstract () ); AST_Interface::fwd_redefinition_helper (i,s,p); /* @@ -454,6 +457,36 @@ interface_header : */ $$ = new FE_InterfaceHeader(new UTL_ScopedName($1, NULL), $2); } + | + IDL_LOCAL interface_decl inheritance_spec + { + idl_global->set_parse_state(IDL_GlobalData::PS_InheritSpecSeen); + /* + * Create an AST representation of the information in the header + * part of an interface - this representation contains a computed + * list of all interfaces which this interface inherits from, + * recursively + */ + $$ = new FE_Local_InterfaceHeader(new UTL_ScopedName($2, NULL), $3); + } + | + IDL_ABSTRACT interface_decl inheritance_spec + { + cerr << "error in " << idl_global->filename()->get_string() + << " line " << idl_global->lineno() << ":\n" ; + cerr << "Sorry, I (TAO_IDL) can't handle abstract interface yet\n"; + /* (if not truncatable) */ +#if 0 + idl_global->set_parse_state(IDL_GlobalData::PS_InheritSpecSeen); + /* + * Create an AST representation of the information in the header + * part of an interface - this representation contains a computed + * list of all interfaces which this interface inherits from, + * recursively + */ + $$ = new FE_Abstract_InterfaceHeader(new UTL_ScopedName($2, NULL), $3); +#endif + } ; inheritance_spec @@ -591,8 +624,8 @@ value_abs_decl : ; -value_header : - value_decl +value_header : + value_decl opt_truncatable inheritance_spec supports_spec @@ -614,7 +647,7 @@ value_decl ; opt_truncatable : - IDL_TRUNCATABLE + IDL_TRUNCATABLE { cerr << "warning in " << idl_global->filename()->get_string() << " line " << idl_global->lineno() << ":\n" ; @@ -629,14 +662,14 @@ opt_truncatable : ; supports_spec : - IDL_SUPPORTS - scoped_name - { - $$ = new UTL_NameList($2, NULL); + IDL_SUPPORTS + scoped_name + { + $$ = new UTL_NameList($2, NULL); } - | /* empty */ - { - $$ = NULL; + | /* empty */ + { + $$ = NULL; } ; @@ -683,7 +716,7 @@ value_forward_decl : } ; - + value_box_decl : value_decl type_spec /* in this order %!?*/ { @@ -717,7 +750,7 @@ state_member $<vival>$ = AST_Field::vis_PRIVATE; } member_i - ; + ; exports : exports export @@ -858,7 +891,45 @@ forward : * interface. Store it in the enclosing scope */ if (s != NULL) { - f = idl_global->gen()->create_interface_fwd(n, p); + f = idl_global->gen()->create_interface_fwd(n, p, 0, 0); + (void) s->fe_add_interface_fwd(f); + } + idl_global->set_pragmas (p); + } + | + IDL_LOCAL interface_decl + { + UTL_Scope *s = idl_global->scopes()->top_non_null(); + UTL_ScopedName *n = new UTL_ScopedName($2, NULL); + AST_InterfaceFwd *f = NULL; + UTL_StrList *p = idl_global->pragmas(); + + idl_global->set_parse_state(IDL_GlobalData::PS_ForwardDeclSeen); + /* + * Create a node representing a forward declaration of an + * interface. Store it in the enclosing scope + */ + if (s != NULL) { + f = idl_global->gen()->create_interface_fwd(n, p, 1, 0); + (void) s->fe_add_interface_fwd(f); + } + idl_global->set_pragmas (p); + } + | + IDL_ABSTRACT interface_decl + { + UTL_Scope *s = idl_global->scopes()->top_non_null(); + UTL_ScopedName *n = new UTL_ScopedName($2, NULL); + AST_InterfaceFwd *f = NULL; + UTL_StrList *p = idl_global->pragmas(); + + idl_global->set_parse_state(IDL_GlobalData::PS_ForwardDeclSeen); + /* + * Create a node representing a forward declaration of an + * interface. Store it in the enclosing scope + */ + if (s != NULL) { + f = idl_global->gen()->create_interface_fwd(n, p, 0, 1); (void) s->fe_add_interface_fwd(f); } idl_global->set_pragmas (p); @@ -959,7 +1030,7 @@ const_type $$ = AST_Expression::EV_string; } else if (d->node_type () == AST_Decl::NT_wstring) { $$ = AST_Expression::EV_wstring; - } else + } else $$ = AST_Expression::EV_any; } else $$ = AST_Expression::EV_any; @@ -1375,7 +1446,7 @@ floating_pt_type fixed_type : IDL_FIXED - { + { cerr << "error in " << idl_global->filename()->get_string() << " line " << idl_global->lineno() << ":\n" ; cerr << "Sorry, I (TAO_IDL) can't handle fixed types yet\n"; @@ -1468,8 +1539,8 @@ struct_type : } ; -at_least_one_member - : member members +at_least_one_member + : member members | /* EMPTY */ { idl_global->err()->syntax_error(idl_global->parse_state()); @@ -1501,8 +1572,8 @@ members } ; -member : - { +member : + { /* is $0 to member_i */ $<vival>$ = AST_Field::vis_NA; } @@ -2322,7 +2393,7 @@ exception : /* * Done with this exception. Pop its scope from the scope stack */ - AST_Exception *ex = + AST_Exception *ex = AST_Exception::narrow_from_scope (idl_global->scopes ()->top_non_null ()); UTL_StrList *p = ex->pragmas (); idl_global->scopes()->pop(); diff --git a/TAO/TAO_IDL/fe/lex.yy.cpp b/TAO/TAO_IDL/fe/lex.yy.cpp index 4d2145598d6..f1651d20fce 100644 --- a/TAO/TAO_IDL/fe/lex.yy.cpp +++ b/TAO/TAO_IDL/fe/lex.yy.cpp @@ -1,7 +1,7 @@ /* A lexical scanner generated by flex */ /* Scanner skeleton version: - * $Id$ + * $Header: /home/daffy/u0/vern/flex/RCS/flex.skl,v 2.91 96/09/10 16:58:48 vern Exp $ */ #define FLEX_SCANNER @@ -281,56 +281,57 @@ static void tao_yy_fatal_error TAO_YY_PROTO(( tao_yyconst char msg[] )); tao_yy_flex_strncpy( tao_yytext, tao_yytext_ptr, tao_yyleng + 1 ); \ tao_yy_c_buf_p = tao_yy_cp; -#define TAO_YY_NUM_RULES 83 -#define TAO_YY_END_OF_BUFFER 84 -static tao_yyconst short int tao_yy_accept[420] = +#define TAO_YY_NUM_RULES 84 +#define TAO_YY_END_OF_BUFFER 85 +static tao_yyconst short int tao_yy_accept[423] = { 0, - 80, 80, 84, 82, 80, 81, 81, 82, 82, 82, - 82, 82, 57, 53, 82, 82, 82, 49, 49, 49, - 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, - 49, 49, 49, 49, 49, 49, 49, 49, 49, 82, - 81, 80, 0, 58, 0, 0, 0, 0, 56, 52, - 50, 79, 0, 50, 57, 0, 0, 0, 53, 48, - 46, 47, 49, 49, 0, 0, 49, 49, 49, 49, - 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, - 49, 43, 49, 49, 49, 49, 49, 49, 49, 49, - 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, - - 49, 49, 49, 49, 0, 74, 0, 0, 0, 0, - 0, 0, 0, 60, 0, 60, 0, 0, 56, 0, - 52, 0, 50, 0, 78, 78, 50, 0, 51, 55, - 49, 0, 59, 0, 0, 0, 49, 49, 1, 49, - 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, - 49, 49, 49, 49, 49, 49, 49, 49, 49, 44, - 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, - 49, 49, 49, 49, 49, 49, 49, 0, 0, 0, - 0, 0, 0, 63, 61, 0, 0, 54, 0, 50, - 51, 49, 0, 64, 0, 40, 49, 49, 49, 19, - - 26, 49, 49, 49, 49, 49, 12, 49, 49, 49, - 34, 49, 49, 23, 49, 49, 49, 49, 49, 49, - 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, - 49, 49, 49, 30, 49, 49, 0, 0, 0, 0, - 0, 0, 75, 0, 0, 0, 0, 0, 61, 0, - 62, 0, 41, 0, 0, 49, 49, 49, 9, 49, - 49, 49, 49, 49, 17, 21, 42, 49, 49, 49, - 29, 49, 49, 49, 49, 49, 49, 24, 49, 49, - 49, 49, 49, 49, 16, 49, 49, 27, 49, 70, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - - 65, 0, 49, 49, 49, 49, 33, 49, 22, 49, - 49, 2, 31, 45, 49, 36, 3, 49, 49, 13, - 11, 49, 18, 49, 49, 49, 49, 49, 0, 68, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 49, 49, 28, 7, 20, 49, 49, 35, - 49, 49, 49, 49, 10, 49, 49, 14, 0, 0, - 76, 76, 0, 72, 0, 0, 71, 0, 0, 0, - 0, 0, 0, 32, 49, 49, 49, 4, 15, 37, - 49, 25, 49, 0, 0, 0, 0, 69, 0, 0, - 0, 0, 0, 0, 5, 6, 8, 49, 39, 0, - - 66, 66, 0, 0, 77, 77, 0, 0, 0, 49, - 0, 0, 0, 38, 73, 0, 67, 67, 0 + 81, 81, 85, 83, 81, 82, 82, 83, 83, 83, + 83, 83, 58, 54, 83, 83, 83, 50, 50, 50, + 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, + 50, 50, 50, 50, 50, 50, 50, 50, 50, 83, + 82, 81, 0, 59, 0, 0, 0, 0, 57, 53, + 51, 80, 0, 51, 58, 0, 0, 0, 54, 49, + 47, 48, 50, 50, 0, 0, 50, 50, 50, 50, + 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, + 50, 44, 50, 50, 50, 50, 50, 50, 50, 50, + 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, + + 50, 50, 50, 50, 0, 75, 0, 0, 0, 0, + 0, 0, 0, 61, 0, 61, 0, 0, 57, 0, + 53, 0, 51, 0, 79, 79, 51, 0, 52, 56, + 50, 0, 60, 0, 0, 0, 50, 50, 1, 50, + 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, + 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, + 45, 50, 50, 50, 50, 50, 50, 50, 50, 50, + 50, 50, 50, 50, 50, 50, 50, 50, 0, 0, + 0, 0, 0, 0, 64, 62, 0, 0, 55, 0, + 51, 52, 50, 0, 65, 0, 41, 50, 50, 50, + + 19, 26, 50, 50, 50, 50, 50, 12, 50, 50, + 50, 35, 50, 50, 50, 23, 50, 50, 50, 50, + 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, + 50, 50, 50, 50, 50, 30, 50, 50, 0, 0, + 0, 0, 0, 0, 76, 0, 0, 0, 0, 0, + 62, 0, 63, 0, 42, 0, 0, 50, 50, 50, + 9, 50, 50, 50, 50, 50, 17, 21, 43, 50, + 32, 50, 50, 29, 50, 50, 50, 50, 50, 50, + 24, 50, 50, 50, 50, 50, 50, 16, 50, 50, + 27, 50, 71, 0, 0, 0, 0, 0, 0, 0, + + 0, 0, 0, 66, 0, 50, 50, 50, 50, 34, + 50, 22, 50, 50, 2, 31, 46, 50, 37, 3, + 50, 50, 13, 11, 50, 18, 50, 50, 50, 50, + 50, 0, 69, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 50, 50, 28, 7, 20, + 50, 50, 36, 50, 50, 50, 50, 10, 50, 50, + 14, 0, 0, 77, 77, 0, 73, 0, 0, 72, + 0, 0, 0, 0, 0, 0, 33, 50, 50, 50, + 4, 15, 38, 50, 25, 50, 0, 0, 0, 0, + 70, 0, 0, 0, 0, 0, 0, 5, 6, 8, + + 50, 40, 0, 67, 67, 0, 0, 78, 78, 0, + 0, 0, 50, 0, 0, 0, 39, 74, 0, 68, + 68, 0 } ; static tao_yyconst int tao_yy_ec[256] = @@ -375,113 +376,113 @@ static tao_yyconst int tao_yy_meta[57] = 8, 6, 8, 6, 6, 6 } ; -static tao_yyconst short int tao_yy_base[445] = +static tao_yyconst short int tao_yy_base[448] = { 0, - 0, 50, 865, 866, 56, 866, 866, 53, 831, 48, - 51, 59, 61, 66, 846, 844, 841, 0, 838, 81, - 831, 49, 812, 57, 50, 24, 59, 812, 810, 809, - 820, 61, 43, 36, 67, 58, 808, 76, 75, 124, - 831, 110, 111, 866, 0, 843, 122, 117, 136, 141, - 178, 866, 120, 147, 166, 171, 196, 0, 184, 866, - 866, 866, 0, 823, 114, 816, 817, 797, 790, 794, - 798, 793, 808, 796, 790, 800, 786, 785, 800, 780, - 788, 172, 788, 795, 780, 779, 791, 777, 785, 791, - 783, 790, 775, 776, 772, 773, 777, 766, 770, 92, - - 773, 773, 773, 762, 769, 866, 129, 221, 774, 768, - 760, 789, 137, 866, 799, 798, 161, 797, 215, 0, - 231, 246, 866, 229, 866, 237, 0, 249, 252, 0, - 775, 140, 866, 751, 794, 176, 777, 749, 0, 750, - 755, 759, 747, 108, 744, 760, 758, 748, 753, 752, - 755, 737, 735, 748, 745, 732, 741, 744, 727, 0, - 727, 736, 728, 740, 724, 726, 192, 727, 722, 727, - 733, 724, 727, 716, 730, 732, 716, 758, 757, 724, - 716, 726, 294, 866, 866, 205, 751, 0, 256, 278, - 866, 734, 0, 866, 0, 0, 708, 714, 717, 0, - - 0, 703, 715, 706, 699, 707, 0, 702, 711, 696, - 0, 695, 696, 0, 701, 690, 691, 707, 706, 697, - 700, 691, 698, 684, 689, 697, 686, 695, 694, 692, - 683, 687, 688, 0, 676, 682, 717, 279, 677, 683, - 680, 635, 866, 158, 308, 629, 612, 601, 866, 639, - 866, 636, 0, 336, 624, 595, 585, 575, 0, 538, - 545, 545, 537, 513, 0, 0, 0, 523, 523, 522, - 0, 503, 506, 520, 504, 507, 505, 0, 487, 472, - 468, 472, 477, 468, 0, 457, 435, 0, 434, 866, - 341, 426, 271, 420, 446, 445, 412, 404, 414, 362, - - 866, 435, 406, 389, 391, 381, 0, 379, 0, 379, - 386, 0, 0, 0, 378, 0, 0, 372, 375, 0, - 0, 359, 0, 338, 349, 345, 326, 340, 388, 866, - 403, 285, 333, 423, 345, 362, 360, 322, 328, 314, - 431, 345, 289, 288, 0, 0, 0, 288, 297, 0, - 276, 293, 280, 294, 0, 283, 271, 0, 419, 298, - 866, 391, 455, 866, 308, 246, 866, 469, 256, 473, - 260, 182, 282, 0, 243, 235, 240, 0, 0, 0, - 240, 0, 236, 253, 410, 459, 489, 866, 493, 478, - 510, 514, 311, 220, 0, 0, 0, 195, 0, 497, - - 866, 518, 528, 530, 866, 532, 191, 183, 247, 111, - 77, 534, 537, 0, 866, 542, 866, 544, 866, 565, - 573, 577, 583, 591, 599, 603, 610, 618, 623, 626, - 633, 638, 641, 644, 648, 655, 660, 667, 672, 679, - 687, 695, 703, 711 + 0, 50, 868, 869, 56, 869, 869, 53, 834, 48, + 51, 59, 61, 66, 849, 847, 844, 0, 841, 81, + 834, 49, 815, 57, 50, 24, 59, 815, 813, 812, + 823, 61, 43, 36, 67, 58, 811, 76, 75, 124, + 834, 110, 111, 869, 0, 846, 122, 117, 136, 141, + 178, 869, 120, 147, 166, 171, 196, 0, 184, 869, + 869, 869, 0, 826, 114, 819, 820, 800, 793, 797, + 801, 796, 811, 799, 793, 803, 789, 788, 803, 783, + 791, 172, 98, 799, 784, 783, 795, 781, 789, 795, + 787, 794, 779, 780, 776, 777, 781, 770, 774, 122, + + 777, 777, 777, 766, 773, 869, 170, 221, 778, 772, + 764, 793, 136, 869, 803, 802, 219, 801, 216, 0, + 229, 236, 869, 235, 869, 245, 0, 243, 246, 0, + 779, 140, 869, 755, 798, 167, 781, 753, 0, 754, + 759, 763, 751, 108, 748, 764, 762, 752, 757, 756, + 759, 741, 739, 752, 755, 748, 735, 744, 747, 730, + 0, 730, 739, 731, 743, 727, 729, 213, 730, 725, + 730, 736, 727, 730, 719, 733, 735, 719, 761, 760, + 727, 719, 729, 288, 869, 869, 255, 754, 0, 260, + 272, 869, 737, 0, 869, 0, 0, 711, 717, 720, + + 0, 0, 706, 718, 709, 702, 710, 0, 705, 714, + 699, 0, 698, 699, 704, 0, 703, 692, 693, 709, + 708, 699, 702, 693, 700, 686, 691, 699, 688, 697, + 696, 694, 685, 689, 690, 0, 678, 684, 719, 274, + 679, 685, 682, 678, 869, 258, 302, 683, 677, 628, + 869, 657, 869, 645, 0, 330, 641, 612, 608, 597, + 0, 573, 575, 565, 554, 537, 0, 0, 0, 548, + 0, 536, 525, 0, 505, 508, 521, 506, 510, 509, + 0, 513, 500, 501, 508, 514, 500, 0, 491, 478, + 0, 480, 869, 335, 472, 327, 465, 502, 495, 462, + + 452, 462, 356, 869, 479, 450, 430, 428, 410, 0, + 409, 0, 407, 413, 0, 0, 0, 408, 0, 0, + 394, 381, 0, 0, 358, 0, 357, 365, 345, 326, + 336, 382, 869, 397, 277, 405, 420, 340, 367, 279, + 317, 323, 308, 428, 339, 283, 282, 0, 0, 0, + 282, 291, 0, 270, 287, 274, 287, 0, 283, 267, + 0, 424, 354, 869, 356, 427, 869, 306, 308, 869, + 454, 257, 469, 252, 164, 286, 0, 234, 223, 191, + 0, 0, 0, 185, 0, 177, 195, 385, 451, 474, + 869, 489, 477, 497, 512, 400, 155, 0, 0, 0, + + 145, 0, 503, 869, 512, 516, 518, 869, 531, 178, + 143, 317, 97, 77, 537, 539, 0, 869, 541, 869, + 543, 869, 564, 572, 576, 582, 590, 598, 602, 609, + 617, 622, 625, 632, 637, 640, 643, 647, 654, 659, + 666, 671, 678, 686, 694, 702, 710 } ; -static tao_yyconst short int tao_yy_def[445] = +static tao_yyconst short int tao_yy_def[448] = { 0, - 419, 1, 419, 419, 419, 419, 419, 420, 421, 419, - 419, 419, 419, 419, 419, 419, 419, 422, 422, 422, + 422, 1, 422, 422, 422, 422, 422, 423, 424, 422, + 422, 422, 422, 422, 422, 422, 422, 425, 425, 425, + 425, 425, 425, 425, 425, 425, 425, 425, 425, 425, + 425, 425, 425, 425, 425, 425, 425, 425, 425, 422, + 422, 422, 423, 422, 426, 422, 427, 422, 422, 422, + 422, 422, 428, 51, 422, 422, 422, 429, 422, 422, + 422, 422, 425, 425, 430, 431, 425, 425, 425, 425, + 425, 425, 425, 425, 425, 425, 425, 425, 425, 425, + 425, 425, 425, 425, 425, 425, 425, 425, 425, 425, + 425, 425, 425, 425, 425, 425, 425, 425, 425, 425, + + 425, 425, 425, 425, 40, 422, 40, 422, 422, 422, + 422, 422, 423, 422, 422, 422, 422, 432, 422, 433, + 422, 422, 422, 428, 422, 428, 54, 422, 422, 429, + 425, 430, 422, 422, 422, 422, 425, 425, 425, 425, + 425, 425, 425, 425, 425, 425, 425, 425, 425, 425, + 425, 425, 425, 425, 425, 425, 425, 425, 425, 425, + 425, 425, 425, 425, 425, 425, 425, 425, 425, 425, + 425, 425, 425, 425, 425, 425, 425, 425, 434, 422, + 422, 422, 422, 422, 422, 422, 422, 435, 433, 422, + 422, 422, 425, 436, 422, 437, 425, 425, 425, 425, + + 425, 425, 425, 425, 425, 425, 425, 425, 425, 425, + 425, 425, 425, 425, 425, 425, 425, 425, 425, 425, + 425, 425, 425, 425, 425, 425, 425, 425, 425, 425, + 425, 425, 425, 425, 425, 425, 425, 425, 434, 422, + 422, 422, 422, 184, 422, 184, 422, 422, 422, 422, + 422, 422, 422, 422, 425, 430, 438, 425, 425, 425, + 425, 425, 425, 425, 425, 425, 425, 425, 425, 425, + 425, 425, 425, 425, 425, 425, 425, 425, 425, 425, + 425, 425, 425, 425, 425, 425, 425, 425, 425, 425, + 425, 425, 422, 422, 422, 422, 422, 439, 422, 422, + + 422, 422, 256, 422, 440, 425, 425, 425, 425, 425, + 425, 425, 425, 425, 425, 425, 425, 425, 425, 425, + 425, 425, 425, 425, 425, 425, 425, 425, 425, 425, + 425, 422, 422, 422, 441, 422, 422, 422, 439, 422, + 422, 422, 422, 256, 442, 425, 425, 425, 425, 425, + 425, 425, 425, 425, 425, 425, 425, 425, 425, 425, + 425, 422, 441, 422, 441, 422, 422, 443, 422, 422, + 422, 422, 422, 422, 430, 422, 425, 425, 425, 425, + 425, 425, 425, 425, 425, 425, 443, 422, 444, 422, + 422, 422, 445, 422, 422, 422, 422, 425, 425, 425, + + 425, 425, 444, 422, 444, 422, 445, 422, 445, 446, + 422, 422, 425, 446, 422, 447, 425, 422, 447, 422, + 447, 0, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, - 422, 422, 422, 422, 422, 422, 422, 422, 422, 419, - 419, 419, 420, 419, 423, 419, 424, 419, 419, 419, - 419, 419, 425, 51, 419, 419, 419, 426, 419, 419, - 419, 419, 422, 422, 427, 428, 422, 422, 422, 422, - 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, - 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, - 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, - - 422, 422, 422, 422, 40, 419, 40, 419, 419, 419, - 419, 419, 420, 419, 419, 419, 419, 429, 419, 430, - 419, 419, 419, 425, 419, 425, 54, 419, 419, 426, - 422, 427, 419, 419, 419, 419, 422, 422, 422, 422, - 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, - 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, - 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, - 422, 422, 422, 422, 422, 422, 422, 431, 419, 419, - 419, 419, 419, 419, 419, 419, 432, 430, 419, 419, - 419, 422, 433, 419, 434, 422, 422, 422, 422, 422, - - 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, - 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, - 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, - 422, 422, 422, 422, 422, 422, 431, 419, 419, 419, - 419, 183, 419, 183, 419, 419, 419, 419, 419, 419, - 419, 419, 422, 427, 435, 422, 422, 422, 422, 422, - 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, - 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, - 422, 422, 422, 422, 422, 422, 422, 422, 422, 419, - 419, 419, 419, 419, 436, 419, 419, 419, 419, 254, - - 419, 437, 422, 422, 422, 422, 422, 422, 422, 422, - 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, - 422, 422, 422, 422, 422, 422, 422, 422, 419, 419, - 419, 438, 419, 419, 419, 436, 419, 419, 419, 419, - 254, 439, 422, 422, 422, 422, 422, 422, 422, 422, - 422, 422, 422, 422, 422, 422, 422, 422, 419, 438, - 419, 438, 419, 419, 440, 419, 419, 419, 419, 419, - 419, 427, 419, 422, 422, 422, 422, 422, 422, 422, - 422, 422, 422, 440, 419, 441, 419, 419, 419, 442, - 419, 419, 419, 419, 422, 422, 422, 422, 422, 441, - - 419, 441, 419, 442, 419, 442, 443, 419, 419, 422, - 443, 419, 444, 422, 419, 444, 419, 444, 0, 419, - 419, 419, 419, 419, 419, 419, 419, 419, 419, 419, - 419, 419, 419, 419, 419, 419, 419, 419, 419, 419, - 419, 419, 419, 419 + 422, 422, 422, 422, 422, 422, 422 } ; -static tao_yyconst short int tao_yy_nxt[923] = +static tao_yyconst short int tao_yy_nxt[926] = { 0, 4, 5, 6, 7, 5, 8, 4, 9, 4, 4, 10, 11, 12, 13, 14, 14, 15, 16, 4, 17, @@ -491,103 +492,103 @@ static tao_yyconst short int tao_yy_nxt[923] = 36, 37, 38, 39, 18, 18, 40, 42, 44, 48, 42, 49, 50, 50, 51, 51, 51, 52, 78, 91, 41, 53, 54, 92, 55, 55, 56, 54, 79, 59, - 59, 59, 412, 68, 57, 45, 65, 76, 66, 57, + 59, 59, 415, 68, 57, 45, 65, 76, 66, 57, 72, 89, 58, 69, 90, 77, 86, 73, 57, 70, 80, 81, 74, 57, 93, 87, 98, 94, 75, 101, 103, 42, 88, 99, 42, 58, 44, 95, 96, 133, 97, 102, 125, 126, 104, 105, 106, 106, 107, 116, - 51, 51, 51, 172, 178, 117, 117, 108, 108, 108, - 126, 173, 44, 45, 106, 133, 134, 54, 414, 119, - 119, 56, 54, 118, 121, 121, 121, 202, 203, 57, - 127, 127, 127, 295, 57, 109, 110, 120, 185, 45, - 111, 419, 134, 57, 186, 186, 118, 54, 57, 55, - 55, 56, 54, 194, 56, 56, 56, 133, 407, 57, - 120, 51, 51, 51, 57, 54, 412, 59, 59, 59, - - 419, 122, 123, 57, 123, 128, 128, 57, 57, 129, - 129, 129, 249, 152, 134, 122, 123, 153, 250, 250, - 123, 57, 154, 106, 106, 179, 54, 195, 119, 119, - 56, 125, 126, 225, 108, 108, 108, 410, 57, 125, - 126, 106, 54, 226, 121, 121, 121, 386, 413, 126, - 386, 413, 57, 409, 57, 189, 189, 126, 385, 190, - 190, 190, 129, 129, 129, 129, 129, 129, 57, 190, - 190, 190, 333, 399, 398, 333, 191, 397, 191, 396, - 395, 290, 290, 291, 334, 334, 334, 361, 362, 301, - 191, 190, 190, 190, 191, 242, 243, 243, 244, 290, - - 361, 362, 123, 394, 123, 362, 390, 245, 245, 245, - 243, 243, 296, 385, 243, 408, 123, 383, 362, 382, - 123, 245, 245, 245, 393, 393, 393, 381, 243, 380, - 379, 378, 377, 376, 333, 246, 247, 333, 375, 374, - 248, 133, 329, 330, 330, 329, 334, 334, 334, 300, - 300, 300, 301, 371, 331, 331, 331, 300, 300, 300, - 300, 330, 367, 367, 368, 370, 369, 337, 134, 300, - 300, 300, 300, 300, 300, 341, 341, 341, 366, 358, - 367, 357, 356, 341, 341, 341, 341, 355, 354, 329, - 330, 330, 329, 361, 362, 341, 341, 341, 341, 341, - - 341, 359, 359, 359, 329, 330, 330, 329, 330, 353, - 352, 362, 364, 364, 351, 350, 331, 331, 331, 349, - 348, 330, 330, 330, 363, 364, 364, 363, 365, 347, - 364, 346, 359, 359, 359, 345, 334, 334, 334, 330, - 344, 343, 301, 364, 372, 372, 372, 340, 339, 338, - 295, 337, 372, 372, 372, 372, 363, 364, 364, 363, - 365, 401, 402, 335, 372, 372, 372, 372, 372, 372, - 387, 388, 388, 387, 391, 364, 332, 392, 328, 402, - 405, 406, 389, 389, 389, 327, 393, 393, 393, 388, - 387, 388, 388, 387, 387, 388, 388, 387, 406, 401, - - 402, 326, 403, 403, 403, 325, 389, 389, 389, 388, - 324, 391, 323, 388, 392, 391, 322, 402, 392, 407, - 401, 402, 321, 393, 393, 393, 320, 393, 393, 393, - 388, 388, 405, 406, 405, 406, 415, 415, 402, 417, - 418, 403, 403, 403, 417, 418, 417, 418, 388, 319, - 406, 318, 406, 317, 415, 316, 315, 418, 314, 313, - 312, 311, 418, 310, 418, 43, 43, 43, 43, 43, - 43, 43, 43, 46, 309, 46, 46, 46, 46, 46, - 46, 63, 63, 63, 63, 113, 113, 308, 307, 113, - 113, 115, 306, 115, 115, 115, 115, 115, 115, 124, - - 124, 124, 124, 124, 124, 124, 124, 130, 305, 130, - 132, 132, 132, 132, 132, 132, 132, 132, 135, 304, - 135, 135, 135, 135, 135, 135, 187, 187, 303, 187, - 188, 301, 188, 237, 237, 237, 237, 237, 237, 237, - 237, 252, 252, 251, 252, 254, 249, 254, 255, 299, - 255, 302, 302, 298, 302, 336, 336, 336, 336, 336, - 336, 336, 336, 342, 342, 297, 342, 360, 360, 360, - 360, 360, 360, 360, 360, 373, 373, 419, 373, 384, - 384, 384, 384, 384, 384, 384, 384, 400, 400, 400, - 400, 400, 400, 400, 400, 404, 404, 404, 404, 404, - - 404, 404, 404, 411, 411, 411, 411, 411, 411, 411, - 411, 416, 416, 416, 416, 416, 416, 416, 416, 294, - 293, 292, 238, 289, 288, 287, 286, 285, 284, 283, - 282, 281, 280, 279, 278, 277, 276, 275, 274, 273, - 272, 271, 270, 269, 268, 267, 266, 265, 264, 263, - 262, 261, 260, 259, 258, 257, 256, 253, 251, 241, - 240, 239, 178, 238, 236, 235, 234, 233, 232, 231, - 230, 229, 228, 227, 224, 223, 222, 221, 220, 219, - 218, 217, 216, 215, 214, 213, 212, 211, 210, 209, - 208, 207, 206, 205, 204, 201, 200, 199, 198, 197, - - 196, 194, 193, 192, 184, 184, 184, 183, 182, 181, - 180, 419, 177, 176, 175, 174, 171, 170, 169, 168, - 167, 166, 165, 164, 163, 162, 161, 160, 159, 158, - 157, 156, 155, 151, 150, 149, 148, 147, 146, 145, - 144, 143, 142, 141, 140, 139, 138, 137, 136, 131, - 114, 112, 100, 85, 84, 83, 82, 71, 67, 64, - 62, 61, 60, 47, 419, 3, 419, 419, 419, 419, - 419, 419, 419, 419, 419, 419, 419, 419, 419, 419, - 419, 419, 419, 419, 419, 419, 419, 419, 419, 419, - 419, 419, 419, 419, 419, 419, 419, 419, 419, 419, - - 419, 419, 419, 419, 419, 419, 419, 419, 419, 419, - 419, 419, 419, 419, 419, 419, 419, 419, 419, 419, - 419, 419 + 51, 51, 51, 155, 417, 117, 117, 108, 108, 108, + 126, 44, 156, 45, 106, 133, 134, 54, 410, 119, + 119, 56, 54, 118, 121, 121, 121, 203, 204, 57, + 127, 127, 127, 173, 57, 109, 110, 120, 45, 133, + 111, 174, 134, 57, 195, 179, 118, 54, 57, 55, + 55, 56, 54, 415, 56, 56, 56, 413, 412, 57, + 120, 51, 51, 51, 57, 54, 134, 59, 59, 59, + + 388, 122, 123, 57, 123, 128, 128, 57, 57, 129, + 129, 129, 422, 152, 402, 122, 123, 153, 196, 401, + 123, 57, 154, 106, 106, 180, 186, 54, 400, 119, + 119, 56, 187, 187, 108, 108, 108, 125, 126, 57, + 54, 106, 121, 121, 121, 190, 190, 125, 126, 191, + 191, 191, 57, 57, 227, 126, 129, 129, 129, 129, + 129, 129, 251, 298, 228, 126, 57, 399, 252, 252, + 192, 398, 192, 191, 191, 191, 293, 293, 294, 364, + 365, 370, 370, 371, 192, 191, 191, 191, 192, 244, + 245, 245, 246, 304, 293, 397, 123, 365, 123, 370, + + 422, 247, 247, 247, 245, 245, 299, 393, 245, 389, + 123, 388, 389, 386, 123, 247, 247, 247, 416, 385, + 384, 416, 245, 383, 382, 381, 380, 379, 336, 248, + 249, 336, 378, 377, 250, 133, 332, 333, 333, 332, + 337, 337, 337, 303, 303, 303, 304, 374, 334, 334, + 334, 303, 303, 303, 303, 333, 364, 365, 364, 365, + 373, 372, 134, 303, 303, 303, 303, 303, 303, 344, + 344, 344, 340, 369, 365, 361, 365, 344, 344, 344, + 344, 360, 359, 332, 333, 333, 332, 367, 367, 344, + 344, 344, 344, 344, 344, 362, 362, 362, 332, 333, + + 333, 332, 333, 358, 411, 367, 336, 357, 356, 336, + 334, 334, 334, 396, 396, 396, 355, 333, 337, 337, + 337, 366, 367, 367, 366, 368, 333, 333, 366, 367, + 367, 366, 368, 337, 337, 337, 354, 362, 362, 362, + 367, 375, 375, 375, 333, 353, 352, 367, 351, 375, + 375, 375, 375, 404, 405, 390, 391, 391, 390, 350, + 349, 375, 375, 375, 375, 375, 375, 392, 392, 392, + 394, 405, 348, 395, 391, 390, 391, 391, 390, 408, + 409, 347, 396, 396, 396, 346, 304, 406, 406, 406, + 390, 391, 391, 390, 391, 343, 342, 409, 394, 341, + + 298, 395, 392, 392, 392, 404, 405, 340, 338, 391, + 396, 396, 396, 394, 404, 405, 395, 410, 391, 391, + 408, 409, 335, 405, 331, 396, 396, 396, 330, 406, + 406, 406, 405, 408, 409, 329, 391, 328, 409, 418, + 418, 420, 421, 420, 421, 420, 421, 327, 326, 325, + 324, 409, 323, 322, 321, 320, 319, 418, 318, 421, + 317, 421, 316, 421, 43, 43, 43, 43, 43, 43, + 43, 43, 46, 315, 46, 46, 46, 46, 46, 46, + 63, 63, 63, 63, 113, 113, 314, 313, 113, 113, + 115, 312, 115, 115, 115, 115, 115, 115, 124, 124, + + 124, 124, 124, 124, 124, 124, 130, 311, 130, 132, + 132, 132, 132, 132, 132, 132, 132, 135, 310, 135, + 135, 135, 135, 135, 135, 188, 188, 309, 188, 189, + 308, 189, 239, 239, 239, 239, 239, 239, 239, 239, + 254, 254, 307, 254, 256, 306, 256, 257, 304, 257, + 305, 305, 253, 305, 339, 339, 339, 339, 339, 339, + 339, 339, 345, 345, 251, 345, 363, 363, 363, 363, + 363, 363, 363, 363, 376, 376, 302, 376, 387, 387, + 387, 387, 387, 387, 387, 387, 403, 403, 403, 403, + 403, 403, 403, 403, 407, 407, 407, 407, 407, 407, + + 407, 407, 414, 414, 414, 414, 414, 414, 414, 414, + 419, 419, 419, 419, 419, 419, 419, 419, 301, 300, + 422, 297, 296, 295, 240, 292, 291, 290, 289, 288, + 287, 286, 285, 284, 283, 282, 281, 280, 279, 278, + 277, 276, 275, 274, 273, 272, 271, 270, 269, 268, + 267, 266, 265, 264, 263, 262, 261, 260, 259, 258, + 255, 253, 243, 242, 241, 179, 240, 238, 237, 236, + 235, 234, 233, 232, 231, 230, 229, 226, 225, 224, + 223, 222, 221, 220, 219, 218, 217, 216, 215, 214, + 213, 212, 211, 210, 209, 208, 207, 206, 205, 202, + + 201, 200, 199, 198, 197, 195, 194, 193, 185, 185, + 185, 184, 183, 182, 181, 422, 178, 177, 176, 175, + 172, 171, 170, 169, 168, 167, 166, 165, 164, 163, + 162, 161, 160, 159, 158, 157, 151, 150, 149, 148, + 147, 146, 145, 144, 143, 142, 141, 140, 139, 138, + 137, 136, 131, 114, 112, 100, 85, 84, 83, 82, + 71, 67, 64, 62, 61, 60, 47, 422, 3, 422, + 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, + 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, + 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, + + 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, + 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, + 422, 422, 422, 422, 422 } ; -static tao_yyconst short int tao_yy_chk[923] = +static tao_yyconst short int tao_yy_chk[926] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -597,100 +598,100 @@ static tao_yyconst short int tao_yy_chk[923] = 1, 1, 1, 1, 1, 1, 2, 5, 8, 10, 5, 10, 10, 10, 11, 11, 11, 12, 26, 34, 2, 12, 13, 34, 13, 13, 13, 14, 26, 14, - 14, 14, 411, 22, 13, 8, 20, 25, 20, 14, + 14, 14, 414, 22, 13, 8, 20, 25, 20, 14, 24, 33, 13, 22, 33, 25, 32, 24, 13, 22, 27, 27, 24, 14, 35, 32, 36, 35, 24, 38, 39, 42, 32, 36, 42, 13, 43, 35, 35, 65, 35, 38, 53, 53, 39, 40, 40, 40, 40, 47, - 48, 48, 48, 100, 107, 47, 47, 40, 40, 40, - 53, 100, 113, 43, 40, 132, 65, 49, 410, 49, + 48, 48, 48, 83, 413, 47, 47, 40, 40, 40, + 53, 113, 83, 43, 40, 132, 65, 49, 411, 49, 49, 49, 50, 47, 50, 50, 50, 144, 144, 49, - 54, 54, 54, 244, 50, 40, 40, 49, 117, 113, - 40, 107, 132, 49, 117, 117, 47, 55, 50, 55, - 55, 55, 56, 136, 56, 56, 56, 372, 408, 55, - 49, 51, 51, 51, 56, 59, 407, 59, 59, 59, - - 244, 51, 51, 55, 51, 57, 57, 59, 56, 57, - 57, 57, 186, 82, 372, 51, 51, 82, 186, 186, - 51, 59, 82, 108, 108, 108, 119, 136, 119, 119, - 119, 124, 124, 167, 108, 108, 108, 398, 119, 126, - 126, 108, 121, 167, 121, 121, 121, 366, 409, 124, - 366, 409, 119, 394, 121, 122, 122, 126, 384, 122, - 122, 122, 128, 128, 128, 129, 129, 129, 121, 189, - 189, 189, 293, 383, 381, 293, 129, 377, 129, 376, - 375, 238, 238, 238, 293, 293, 293, 332, 332, 373, - 129, 190, 190, 190, 129, 183, 183, 183, 183, 238, - - 360, 360, 190, 371, 190, 332, 369, 183, 183, 183, - 245, 245, 245, 365, 183, 393, 190, 357, 360, 356, - 190, 245, 245, 245, 393, 393, 393, 354, 245, 353, - 352, 351, 349, 348, 333, 183, 183, 333, 344, 343, - 183, 254, 291, 291, 291, 291, 333, 333, 333, 254, - 254, 254, 342, 340, 291, 291, 291, 254, 254, 254, - 254, 291, 337, 337, 337, 339, 338, 336, 254, 254, - 254, 254, 254, 254, 254, 300, 300, 300, 335, 328, - 337, 327, 326, 300, 300, 300, 300, 325, 324, 329, - 329, 329, 329, 362, 362, 300, 300, 300, 300, 300, - - 300, 329, 329, 329, 331, 331, 331, 331, 329, 322, - 319, 362, 385, 385, 318, 315, 331, 331, 331, 311, - 310, 359, 359, 331, 334, 334, 334, 334, 334, 308, - 385, 306, 359, 359, 359, 305, 334, 334, 334, 359, - 304, 303, 302, 334, 341, 341, 341, 299, 298, 297, - 296, 295, 341, 341, 341, 341, 363, 363, 363, 363, - 363, 386, 386, 294, 341, 341, 341, 341, 341, 341, - 368, 368, 368, 368, 370, 363, 292, 370, 289, 386, - 390, 390, 368, 368, 368, 287, 370, 370, 370, 368, - 387, 387, 387, 387, 389, 389, 389, 389, 390, 400, - - 400, 286, 387, 387, 387, 284, 389, 389, 389, 387, - 283, 391, 282, 389, 391, 392, 281, 400, 392, 392, - 402, 402, 280, 391, 391, 391, 279, 392, 392, 392, - 403, 403, 404, 404, 406, 406, 412, 412, 402, 413, - 413, 403, 403, 403, 416, 416, 418, 418, 403, 277, - 404, 276, 406, 275, 412, 274, 273, 413, 272, 270, - 269, 268, 416, 264, 418, 420, 420, 420, 420, 420, - 420, 420, 420, 421, 263, 421, 421, 421, 421, 421, - 421, 422, 422, 422, 422, 423, 423, 262, 261, 423, - 423, 424, 260, 424, 424, 424, 424, 424, 424, 425, - - 425, 425, 425, 425, 425, 425, 425, 426, 258, 426, - 427, 427, 427, 427, 427, 427, 427, 427, 428, 257, - 428, 428, 428, 428, 428, 428, 429, 429, 256, 429, - 430, 255, 430, 431, 431, 431, 431, 431, 431, 431, - 431, 432, 432, 252, 432, 433, 250, 433, 434, 248, - 434, 435, 435, 247, 435, 436, 436, 436, 436, 436, - 436, 436, 436, 437, 437, 246, 437, 438, 438, 438, - 438, 438, 438, 438, 438, 439, 439, 242, 439, 440, - 440, 440, 440, 440, 440, 440, 440, 441, 441, 441, - 441, 441, 441, 441, 441, 442, 442, 442, 442, 442, - - 442, 442, 442, 443, 443, 443, 443, 443, 443, 443, - 443, 444, 444, 444, 444, 444, 444, 444, 444, 241, - 240, 239, 237, 236, 235, 233, 232, 231, 230, 229, - 228, 227, 226, 225, 224, 223, 222, 221, 220, 219, - 218, 217, 216, 215, 213, 212, 210, 209, 208, 206, - 205, 204, 203, 202, 199, 198, 197, 192, 187, 182, - 181, 180, 179, 178, 177, 176, 175, 174, 173, 172, - 171, 170, 169, 168, 166, 165, 164, 163, 162, 161, - 159, 158, 157, 156, 155, 154, 153, 152, 151, 150, - 149, 148, 147, 146, 145, 143, 142, 141, 140, 138, - - 137, 135, 134, 131, 118, 116, 115, 112, 111, 110, - 109, 105, 104, 103, 102, 101, 99, 98, 97, 96, - 95, 94, 93, 92, 91, 90, 89, 88, 87, 86, - 85, 84, 83, 81, 80, 79, 78, 77, 76, 75, - 74, 73, 72, 71, 70, 69, 68, 67, 66, 64, - 46, 41, 37, 31, 30, 29, 28, 23, 21, 19, - 17, 16, 15, 9, 3, 419, 419, 419, 419, 419, - 419, 419, 419, 419, 419, 419, 419, 419, 419, 419, - 419, 419, 419, 419, 419, 419, 419, 419, 419, 419, - 419, 419, 419, 419, 419, 419, 419, 419, 419, 419, - - 419, 419, 419, 419, 419, 419, 419, 419, 419, 419, - 419, 419, 419, 419, 419, 419, 419, 419, 419, 419, - 419, 419 + 54, 54, 54, 100, 50, 40, 40, 49, 113, 375, + 40, 100, 132, 49, 136, 107, 47, 55, 50, 55, + 55, 55, 56, 410, 56, 56, 56, 401, 397, 55, + 49, 51, 51, 51, 56, 59, 375, 59, 59, 59, + + 387, 51, 51, 55, 51, 57, 57, 59, 56, 57, + 57, 57, 107, 82, 386, 51, 51, 82, 136, 384, + 51, 59, 82, 108, 108, 108, 117, 119, 380, 119, + 119, 119, 117, 117, 108, 108, 108, 124, 124, 119, + 121, 108, 121, 121, 121, 122, 122, 126, 126, 122, + 122, 122, 121, 119, 168, 124, 128, 128, 128, 129, + 129, 129, 187, 246, 168, 126, 121, 379, 187, 187, + 129, 378, 129, 190, 190, 190, 240, 240, 240, 335, + 335, 340, 340, 340, 129, 191, 191, 191, 129, 184, + 184, 184, 184, 376, 240, 374, 191, 335, 191, 340, + + 246, 184, 184, 184, 247, 247, 247, 372, 184, 369, + 191, 368, 369, 360, 191, 247, 247, 247, 412, 359, + 357, 412, 247, 356, 355, 354, 352, 351, 296, 184, + 184, 296, 347, 346, 184, 256, 294, 294, 294, 294, + 296, 296, 296, 256, 256, 256, 345, 343, 294, 294, + 294, 256, 256, 256, 256, 294, 363, 363, 365, 365, + 342, 341, 256, 256, 256, 256, 256, 256, 256, 303, + 303, 303, 339, 338, 363, 331, 365, 303, 303, 303, + 303, 330, 329, 332, 332, 332, 332, 388, 388, 303, + 303, 303, 303, 303, 303, 332, 332, 332, 334, 334, + + 334, 334, 332, 328, 396, 388, 336, 327, 325, 336, + 334, 334, 334, 396, 396, 396, 322, 334, 336, 336, + 336, 337, 337, 337, 337, 337, 362, 362, 366, 366, + 366, 366, 366, 337, 337, 337, 321, 362, 362, 362, + 337, 344, 344, 344, 362, 318, 314, 366, 313, 344, + 344, 344, 344, 389, 389, 371, 371, 371, 371, 311, + 309, 344, 344, 344, 344, 344, 344, 371, 371, 371, + 373, 389, 308, 373, 371, 390, 390, 390, 390, 393, + 393, 307, 373, 373, 373, 306, 305, 390, 390, 390, + 392, 392, 392, 392, 390, 302, 301, 393, 394, 300, + + 299, 394, 392, 392, 392, 403, 403, 298, 297, 392, + 394, 394, 394, 395, 405, 405, 395, 395, 406, 406, + 407, 407, 295, 403, 292, 395, 395, 395, 290, 406, + 406, 406, 405, 409, 409, 289, 406, 287, 407, 415, + 415, 416, 416, 419, 419, 421, 421, 286, 285, 284, + 283, 409, 282, 280, 279, 278, 277, 415, 276, 416, + 275, 419, 273, 421, 423, 423, 423, 423, 423, 423, + 423, 423, 424, 272, 424, 424, 424, 424, 424, 424, + 425, 425, 425, 425, 426, 426, 270, 266, 426, 426, + 427, 265, 427, 427, 427, 427, 427, 427, 428, 428, + + 428, 428, 428, 428, 428, 428, 429, 264, 429, 430, + 430, 430, 430, 430, 430, 430, 430, 431, 263, 431, + 431, 431, 431, 431, 431, 432, 432, 262, 432, 433, + 260, 433, 434, 434, 434, 434, 434, 434, 434, 434, + 435, 435, 259, 435, 436, 258, 436, 437, 257, 437, + 438, 438, 254, 438, 439, 439, 439, 439, 439, 439, + 439, 439, 440, 440, 252, 440, 441, 441, 441, 441, + 441, 441, 441, 441, 442, 442, 250, 442, 443, 443, + 443, 443, 443, 443, 443, 443, 444, 444, 444, 444, + 444, 444, 444, 444, 445, 445, 445, 445, 445, 445, + + 445, 445, 446, 446, 446, 446, 446, 446, 446, 446, + 447, 447, 447, 447, 447, 447, 447, 447, 249, 248, + 244, 243, 242, 241, 239, 238, 237, 235, 234, 233, + 232, 231, 230, 229, 228, 227, 226, 225, 224, 223, + 222, 221, 220, 219, 218, 217, 215, 214, 213, 211, + 210, 209, 207, 206, 205, 204, 203, 200, 199, 198, + 193, 188, 183, 182, 181, 180, 179, 178, 177, 176, + 175, 174, 173, 172, 171, 170, 169, 167, 166, 165, + 164, 163, 162, 160, 159, 158, 157, 156, 155, 154, + 153, 152, 151, 150, 149, 148, 147, 146, 145, 143, + + 142, 141, 140, 138, 137, 135, 134, 131, 118, 116, + 115, 112, 111, 110, 109, 105, 104, 103, 102, 101, + 99, 98, 97, 96, 95, 94, 93, 92, 91, 90, + 89, 88, 87, 86, 85, 84, 81, 80, 79, 78, + 77, 76, 75, 74, 73, 72, 71, 70, 69, 68, + 67, 66, 64, 46, 41, 37, 31, 30, 29, 28, + 23, 21, 19, 17, 16, 15, 9, 3, 422, 422, + 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, + 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, + 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, + + 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, + 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, + 422, 422, 422, 422, 422 } ; static tao_yy_state_type tao_yy_last_accepting_state; @@ -712,7 +713,7 @@ char *tao_yytext_ptr; #line 1 "fe/idl.ll" #define INITIAL 0 #line 2 "fe/idl.ll" -/* $Id: idl.ll,v 1.46 2000/03/26 20:43:15 parsons Exp $ +/* $Id: idl.ll,v 1.47 2000/03/26 20:50:03 parsons Exp $ COPYRIGHT @@ -1036,13 +1037,13 @@ tao_yy_match: while ( tao_yy_chk[tao_yy_base[tao_yy_current_state] + tao_yy_c] != tao_yy_current_state ) { tao_yy_current_state = (int) tao_yy_def[tao_yy_current_state]; - if ( tao_yy_current_state >= 420 ) + if ( tao_yy_current_state >= 423 ) tao_yy_c = tao_yy_meta[(unsigned int) tao_yy_c]; } tao_yy_current_state = tao_yy_nxt[tao_yy_base[tao_yy_current_state] + (unsigned int) tao_yy_c]; ++tao_yy_cp; } - while ( tao_yy_base[tao_yy_current_state] != 866 ); + while ( tao_yy_base[tao_yy_current_state] != 869 ); tao_yy_find_action: tao_yy_act = tao_yy_accept[tao_yy_current_state]; @@ -1226,94 +1227,99 @@ return IDL_NATIVE; case 32: TAO_YY_RULE_SETUP #line 159 "fe/idl.ll" -return scan_obv_token (IDL_ABSTRACT); +return IDL_LOCAL; TAO_YY_BREAK case 33: TAO_YY_RULE_SETUP #line 160 "fe/idl.ll" -return scan_obv_token (IDL_CUSTOM); +return scan_obv_token (IDL_ABSTRACT); TAO_YY_BREAK case 34: TAO_YY_RULE_SETUP #line 161 "fe/idl.ll" -return scan_obv_token (IDL_INIT); +return scan_obv_token (IDL_CUSTOM); TAO_YY_BREAK case 35: TAO_YY_RULE_SETUP #line 162 "fe/idl.ll" -return scan_obv_token (IDL_PRIVATE); +return scan_obv_token (IDL_INIT); TAO_YY_BREAK case 36: TAO_YY_RULE_SETUP #line 163 "fe/idl.ll" -return scan_obv_token (IDL_PUBLIC); +return scan_obv_token (IDL_PRIVATE); TAO_YY_BREAK case 37: TAO_YY_RULE_SETUP #line 164 "fe/idl.ll" -return scan_obv_token (IDL_SUPPORTS); +return scan_obv_token (IDL_PUBLIC); TAO_YY_BREAK case 38: TAO_YY_RULE_SETUP #line 165 "fe/idl.ll" -return scan_obv_token (IDL_TRUNCATABLE); +return scan_obv_token (IDL_SUPPORTS); TAO_YY_BREAK case 39: TAO_YY_RULE_SETUP #line 166 "fe/idl.ll" -return scan_obv_token (IDL_VALUETYPE); +return scan_obv_token (IDL_TRUNCATABLE); TAO_YY_BREAK case 40: TAO_YY_RULE_SETUP -#line 168 "fe/idl.ll" -return IDL_TRUETOK; +#line 167 "fe/idl.ll" +return scan_obv_token (IDL_VALUETYPE); TAO_YY_BREAK case 41: TAO_YY_RULE_SETUP #line 169 "fe/idl.ll" -return IDL_FALSETOK; +return IDL_TRUETOK; TAO_YY_BREAK case 42: TAO_YY_RULE_SETUP -#line 171 "fe/idl.ll" -return IDL_INOUT; +#line 170 "fe/idl.ll" +return IDL_FALSETOK; TAO_YY_BREAK case 43: TAO_YY_RULE_SETUP #line 172 "fe/idl.ll" -return IDL_IN; +return IDL_INOUT; TAO_YY_BREAK case 44: TAO_YY_RULE_SETUP #line 173 "fe/idl.ll" -return IDL_OUT; +return IDL_IN; TAO_YY_BREAK case 45: TAO_YY_RULE_SETUP #line 174 "fe/idl.ll" -return IDL_ONEWAY; +return IDL_OUT; TAO_YY_BREAK case 46: TAO_YY_RULE_SETUP -#line 176 "fe/idl.ll" -return IDL_LEFT_SHIFT; +#line 175 "fe/idl.ll" +return IDL_ONEWAY; TAO_YY_BREAK case 47: TAO_YY_RULE_SETUP #line 177 "fe/idl.ll" -return IDL_RIGHT_SHIFT; +return IDL_LEFT_SHIFT; TAO_YY_BREAK case 48: TAO_YY_RULE_SETUP #line 178 "fe/idl.ll" +return IDL_RIGHT_SHIFT; + TAO_YY_BREAK +case 49: +TAO_YY_RULE_SETUP +#line 179 "fe/idl.ll" { tao_yylval.strval = (char *) "::"; return IDL_SCOPE_DELIMITOR; } TAO_YY_BREAK -case 49: +case 50: TAO_YY_RULE_SETUP -#line 183 "fe/idl.ll" +#line 184 "fe/idl.ll" { // Make sure that this identifier is not a C++ keyword. If it is, // prepend it with a _cxx_. Lookup in the perfect hash table for C++ @@ -1334,73 +1340,73 @@ TAO_YY_RULE_SETUP return IDENTIFIER; } TAO_YY_BREAK -case 50: +case 51: TAO_YY_RULE_SETUP -#line 203 "fe/idl.ll" +#line 204 "fe/idl.ll" { tao_yylval.dval = idl_atof(ace_tao_yytext); return IDL_FLOATING_PT_LITERAL; } TAO_YY_BREAK -case 51: +case 52: TAO_YY_RULE_SETUP -#line 207 "fe/idl.ll" +#line 208 "fe/idl.ll" { tao_yylval.dval = idl_atof(ace_tao_yytext); return IDL_FLOATING_PT_LITERAL; } TAO_YY_BREAK -case 52: +case 53: TAO_YY_RULE_SETUP -#line 212 "fe/idl.ll" +#line 213 "fe/idl.ll" { tao_yylval.ival = idl_atoi(ace_tao_yytext, 10); return IDL_INTEGER_LITERAL; } TAO_YY_BREAK -case 53: +case 54: TAO_YY_RULE_SETUP -#line 216 "fe/idl.ll" +#line 217 "fe/idl.ll" { tao_yylval.uival = idl_atoui(ace_tao_yytext, 10); return IDL_UINTEGER_LITERAL; } TAO_YY_BREAK -case 54: +case 55: TAO_YY_RULE_SETUP -#line 220 "fe/idl.ll" +#line 221 "fe/idl.ll" { tao_yylval.ival = idl_atoi(ace_tao_yytext, 16); return IDL_INTEGER_LITERAL; } TAO_YY_BREAK -case 55: +case 56: TAO_YY_RULE_SETUP -#line 224 "fe/idl.ll" +#line 225 "fe/idl.ll" { tao_yylval.uival = idl_atoui(ace_tao_yytext, 16); return IDL_UINTEGER_LITERAL; } TAO_YY_BREAK -case 56: +case 57: TAO_YY_RULE_SETUP -#line 228 "fe/idl.ll" +#line 229 "fe/idl.ll" { tao_yylval.ival = idl_atoi(ace_tao_yytext, 8); return IDL_INTEGER_LITERAL; } TAO_YY_BREAK -case 57: +case 58: TAO_YY_RULE_SETUP -#line 232 "fe/idl.ll" +#line 233 "fe/idl.ll" { tao_yylval.uival = idl_atoui(ace_tao_yytext, 8); return IDL_UINTEGER_LITERAL; } TAO_YY_BREAK -case 58: +case 59: TAO_YY_RULE_SETUP -#line 237 "fe/idl.ll" +#line 238 "fe/idl.ll" { /* Skip the quotes */ char *tmp = ace_tao_yytext; @@ -1409,9 +1415,9 @@ TAO_YY_RULE_SETUP return IDL_STRING_LITERAL; } TAO_YY_BREAK -case 59: +case 60: TAO_YY_RULE_SETUP -#line 244 "fe/idl.ll" +#line 245 "fe/idl.ll" { /* Skip the bookends */ char *tmp = ACE_OS::strdup (ace_tao_yytext); @@ -1420,125 +1426,125 @@ TAO_YY_RULE_SETUP return IDL_WSTRING_LITERAL; } TAO_YY_BREAK -case 60: +case 61: TAO_YY_RULE_SETUP -#line 251 "fe/idl.ll" +#line 252 "fe/idl.ll" { tao_yylval.cval = ace_tao_yytext [1]; return IDL_CHARACTER_LITERAL; } TAO_YY_BREAK -case 61: +case 62: TAO_YY_RULE_SETUP -#line 255 "fe/idl.ll" +#line 256 "fe/idl.ll" { // octal character constant tao_yylval.cval = idl_escape_reader(ace_tao_yytext + 1); return IDL_CHARACTER_LITERAL; } TAO_YY_BREAK -case 62: +case 63: TAO_YY_RULE_SETUP -#line 260 "fe/idl.ll" +#line 261 "fe/idl.ll" { // hexadecimal character constant tao_yylval.cval = idl_escape_reader(ace_tao_yytext + 1); return IDL_CHARACTER_LITERAL; } TAO_YY_BREAK -case 63: +case 64: TAO_YY_RULE_SETUP -#line 265 "fe/idl.ll" +#line 266 "fe/idl.ll" { tao_yylval.cval = idl_escape_reader(ace_tao_yytext + 1); return IDL_CHARACTER_LITERAL; } TAO_YY_BREAK -case 64: +case 65: TAO_YY_RULE_SETUP -#line 269 "fe/idl.ll" +#line 270 "fe/idl.ll" { // wide character constant tao_yylval.wcval = ace_tao_yytext [2]; return IDL_WCHAR_LITERAL; } TAO_YY_BREAK -case 65: +case 66: TAO_YY_RULE_SETUP -#line 274 "fe/idl.ll" +#line 275 "fe/idl.ll" { // hexadecimal wide character constant tao_yylval.wcval = idl_wchar_escape_reader(ace_tao_yytext + 2); return IDL_WCHAR_LITERAL; } TAO_YY_BREAK -case 66: -#line 280 "fe/idl.ll" case 67: +#line 281 "fe/idl.ll" +case 68: TAO_YY_RULE_SETUP -#line 280 "fe/idl.ll" +#line 281 "fe/idl.ll" {/* remember pragma */ idl_global->set_lineno(idl_global->lineno() + 1); idl_store_pragma(ace_tao_yytext); } break; -case 68: -#line 285 "fe/idl.ll" case 69: +#line 286 "fe/idl.ll" +case 70: TAO_YY_RULE_SETUP -#line 285 "fe/idl.ll" +#line 286 "fe/idl.ll" { idl_parse_line_and_file(ace_tao_yytext); } break; -case 70: -#line 289 "fe/idl.ll" case 71: +#line 290 "fe/idl.ll" +case 72: TAO_YY_RULE_SETUP -#line 289 "fe/idl.ll" +#line 290 "fe/idl.ll" { idl_parse_line_and_file(ace_tao_yytext); } break; -case 72: -#line 293 "fe/idl.ll" case 73: +#line 294 "fe/idl.ll" +case 74: TAO_YY_RULE_SETUP -#line 293 "fe/idl.ll" +#line 294 "fe/idl.ll" { idl_parse_line_and_file(ace_tao_yytext); } break; -case 74: -#line 297 "fe/idl.ll" case 75: +#line 298 "fe/idl.ll" +case 76: TAO_YY_RULE_SETUP -#line 297 "fe/idl.ll" +#line 298 "fe/idl.ll" { idl_parse_line_and_file(ace_tao_yytext); } break; -case 76: -#line 301 "fe/idl.ll" case 77: +#line 302 "fe/idl.ll" +case 78: TAO_YY_RULE_SETUP -#line 301 "fe/idl.ll" +#line 302 "fe/idl.ll" { /* ignore cpp ident */ idl_global->set_lineno(idl_global->lineno() + 1); } break; -case 78: +case 79: TAO_YY_RULE_SETUP -#line 305 "fe/idl.ll" +#line 306 "fe/idl.ll" { /* ignore comments */ idl_global->set_lineno(idl_global->lineno() + 1); } break; -case 79: +case 80: TAO_YY_RULE_SETUP -#line 309 "fe/idl.ll" +#line 310 "fe/idl.ll" { for(;;) { char c = tao_yyinput(); @@ -1554,28 +1560,28 @@ TAO_YY_RULE_SETUP } } break; -case 80: -TAO_YY_RULE_SETUP -#line 323 "fe/idl.ll" -; - break; case 81: TAO_YY_RULE_SETUP #line 324 "fe/idl.ll" +; + break; +case 82: +TAO_YY_RULE_SETUP +#line 325 "fe/idl.ll" { idl_global->set_lineno(idl_global->lineno() + 1); } break; -case 82: +case 83: TAO_YY_RULE_SETUP -#line 327 "fe/idl.ll" +#line 328 "fe/idl.ll" return ace_tao_yytext [0]; TAO_YY_BREAK -case 83: +case 84: TAO_YY_RULE_SETUP -#line 329 "fe/idl.ll" +#line 330 "fe/idl.ll" TAO_YY_ECHO; - break; + break; case TAO_YY_STATE_EOF(INITIAL): tao_yyterminate(); @@ -1868,7 +1874,7 @@ static tao_yy_state_type tao_yy_get_previous_state() while ( tao_yy_chk[tao_yy_base[tao_yy_current_state] + tao_yy_c] != tao_yy_current_state ) { tao_yy_current_state = (int) tao_yy_def[tao_yy_current_state]; - if ( tao_yy_current_state >= 420 ) + if ( tao_yy_current_state >= 423 ) tao_yy_c = tao_yy_meta[(unsigned int) tao_yy_c]; } tao_yy_current_state = tao_yy_nxt[tao_yy_base[tao_yy_current_state] + (unsigned int) tao_yy_c]; @@ -1903,11 +1909,11 @@ tao_yy_state_type tao_yy_current_state; while ( tao_yy_chk[tao_yy_base[tao_yy_current_state] + tao_yy_c] != tao_yy_current_state ) { tao_yy_current_state = (int) tao_yy_def[tao_yy_current_state]; - if ( tao_yy_current_state >= 420 ) + if ( tao_yy_current_state >= 423 ) tao_yy_c = tao_yy_meta[(unsigned int) tao_yy_c]; } tao_yy_current_state = tao_yy_nxt[tao_yy_base[tao_yy_current_state] + (unsigned int) tao_yy_c]; - tao_yy_is_jam = (tao_yy_current_state == 419); + tao_yy_is_jam = (tao_yy_current_state == 422); return tao_yy_is_jam ? 0 : tao_yy_current_state; } @@ -2463,7 +2469,7 @@ int main() return 0; } #endif -#line 329 "fe/idl.ll" +#line 330 "fe/idl.ll" /* subroutines */ diff --git a/TAO/TAO_IDL/fe/lex.yy.cpp.diff b/TAO/TAO_IDL/fe/lex.yy.cpp.diff index 04025962b54..005a45fc6ed 100644 --- a/TAO/TAO_IDL/fe/lex.yy.cpp.diff +++ b/TAO/TAO_IDL/fe/lex.yy.cpp.diff @@ -1,6 +1,6 @@ ---- lex.yy.cpp.orig Wed Dec 29 07:18:42 1999 -+++ lex.yy.cpp Wed Dec 29 07:17:42 1999 -@@ -963,7 +963,7 @@ +--- lex.yy.cpp.orig Mon Apr 17 13:15:44 2000 ++++ lex.yy.cpp Mon Apr 17 13:16:19 2000 +@@ -968,7 +968,7 @@ /* Code executed at the end of each rule. */ #ifndef TAO_YY_BREAK @@ -9,7 +9,7 @@ #endif #define TAO_YY_RULE_SETUP \ -@@ -979,7 +979,7 @@ +@@ -980,7 +980,7 @@ TAO_YY_DECL { register tao_yy_state_type tao_yy_current_state; @@ -18,98 +18,98 @@ register int tao_yy_act; #line 126 "fe/idl.ll" -@@ -1481,7 +1481,7 @@ +@@ -1487,7 +1487,7 @@ idl_global->set_lineno(idl_global->lineno() + 1); idl_store_pragma(ace_tao_yytext); } - TAO_YY_BREAK + break; - case 68: - #line 285 "fe/idl.ll" case 69: -@@ -1490,7 +1490,7 @@ + #line 286 "fe/idl.ll" + case 70: +@@ -1496,7 +1496,7 @@ { idl_parse_line_and_file(ace_tao_yytext); } - TAO_YY_BREAK + break; - case 70: - #line 289 "fe/idl.ll" case 71: -@@ -1499,7 +1499,7 @@ + #line 290 "fe/idl.ll" + case 72: +@@ -1505,7 +1505,7 @@ { idl_parse_line_and_file(ace_tao_yytext); } - TAO_YY_BREAK + break; - case 72: - #line 293 "fe/idl.ll" case 73: -@@ -1508,7 +1508,7 @@ + #line 294 "fe/idl.ll" + case 74: +@@ -1514,7 +1514,7 @@ { idl_parse_line_and_file(ace_tao_yytext); } - TAO_YY_BREAK + break; - case 74: - #line 297 "fe/idl.ll" case 75: -@@ -1517,7 +1517,7 @@ + #line 298 "fe/idl.ll" + case 76: +@@ -1523,7 +1523,7 @@ { idl_parse_line_and_file(ace_tao_yytext); } - TAO_YY_BREAK + break; - case 76: - #line 301 "fe/idl.ll" case 77: -@@ -1527,7 +1527,7 @@ + #line 302 "fe/idl.ll" + case 78: +@@ -1533,7 +1533,7 @@ /* ignore cpp ident */ idl_global->set_lineno(idl_global->lineno() + 1); } - TAO_YY_BREAK + break; - case 78: + case 79: TAO_YY_RULE_SETUP - #line 305 "fe/idl.ll" -@@ -1535,7 +1535,7 @@ + #line 306 "fe/idl.ll" +@@ -1541,7 +1541,7 @@ /* ignore comments */ idl_global->set_lineno(idl_global->lineno() + 1); } - TAO_YY_BREAK + break; - case 79: + case 80: TAO_YY_RULE_SETUP - #line 309 "fe/idl.ll" -@@ -1553,19 +1553,19 @@ + #line 310 "fe/idl.ll" +@@ -1559,19 +1559,19 @@ } } } - TAO_YY_BREAK + break; - case 80: + case 81: TAO_YY_RULE_SETUP - #line 323 "fe/idl.ll" + #line 324 "fe/idl.ll" ; - TAO_YY_BREAK -+ break; - case 81: ++ break; + case 82: TAO_YY_RULE_SETUP - #line 324 "fe/idl.ll" + #line 325 "fe/idl.ll" { idl_global->set_lineno(idl_global->lineno() + 1); } - TAO_YY_BREAK + break; - case 82: + case 83: TAO_YY_RULE_SETUP - #line 327 "fe/idl.ll" -@@ -1575,7 +1575,7 @@ + #line 328 "fe/idl.ll" +@@ -1581,7 +1581,7 @@ TAO_YY_RULE_SETUP - #line 329 "fe/idl.ll" + #line 330 "fe/idl.ll" TAO_YY_ECHO; - TAO_YY_BREAK -+ break; ++ break; case TAO_YY_STATE_EOF(INITIAL): tao_yyterminate(); diff --git a/TAO/TAO_IDL/fe/y.tab.cpp b/TAO/TAO_IDL/fe/y.tab.cpp index e5b0a0c4e7c..66c630d3b5d 100644 --- a/TAO/TAO_IDL/fe/y.tab.cpp +++ b/TAO/TAO_IDL/fe/y.tab.cpp @@ -90,487 +90,495 @@ typedef union { #define IDL_RAISES 291 #define IDL_CONTEXT 292 #define IDL_NATIVE 293 -#define IDL_ABSTRACT 294 -#define IDL_CUSTOM 295 -#define IDL_INIT 296 -#define IDL_PRIVATE 297 -#define IDL_PUBLIC 298 -#define IDL_SUPPORTS 299 -#define IDL_TRUNCATABLE 300 -#define IDL_VALUETYPE 301 -#define IDL_INTEGER_LITERAL 302 -#define IDL_UINTEGER_LITERAL 303 -#define IDL_STRING_LITERAL 304 -#define IDL_CHARACTER_LITERAL 305 -#define IDL_FLOATING_PT_LITERAL 306 -#define IDL_TRUETOK 307 -#define IDL_FALSETOK 308 -#define IDL_SCOPE_DELIMITOR 309 -#define IDL_LEFT_SHIFT 310 -#define IDL_RIGHT_SHIFT 311 -#define IDL_WCHAR_LITERAL 312 -#define IDL_WSTRING_LITERAL 313 +#define IDL_LOCAL 294 +#define IDL_ABSTRACT 295 +#define IDL_CUSTOM 296 +#define IDL_INIT 297 +#define IDL_PRIVATE 298 +#define IDL_PUBLIC 299 +#define IDL_SUPPORTS 300 +#define IDL_TRUNCATABLE 301 +#define IDL_VALUETYPE 302 +#define IDL_INTEGER_LITERAL 303 +#define IDL_UINTEGER_LITERAL 304 +#define IDL_STRING_LITERAL 305 +#define IDL_CHARACTER_LITERAL 306 +#define IDL_FLOATING_PT_LITERAL 307 +#define IDL_TRUETOK 308 +#define IDL_FALSETOK 309 +#define IDL_SCOPE_DELIMITOR 310 +#define IDL_LEFT_SHIFT 311 +#define IDL_RIGHT_SHIFT 312 +#define IDL_WCHAR_LITERAL 313 +#define IDL_WSTRING_LITERAL 314 #define TAO_YYERRCODE 256 short tao_yylhs[] = { -1, 0, 72, 72, 74, 73, 76, 73, 78, 73, 80, 73, 82, 73, 84, 73, 85, 73, 86, 87, 88, 89, 81, 79, 79, 92, 94, 95, 90, 96, 68, - 33, 97, 22, 22, 83, 83, 83, 83, 98, 98, - 103, 105, 106, 102, 107, 108, 109, 99, 34, 110, - 69, 67, 67, 24, 24, 100, 100, 101, 104, 104, - 111, 111, 111, 116, 112, 117, 112, 93, 93, 118, - 113, 119, 113, 120, 113, 122, 113, 124, 113, 125, - 113, 20, 126, 21, 21, 16, 127, 16, 128, 16, - 70, 91, 129, 130, 131, 132, 75, 50, 50, 50, - 50, 50, 50, 50, 50, 50, 35, 36, 37, 37, - 38, 38, 39, 39, 40, 40, 40, 41, 41, 41, - 42, 42, 42, 42, 43, 43, 43, 43, 44, 44, - 44, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 46, 134, 71, 71, 71, 71, 71, 135, 133, 1, - 1, 2, 2, 2, 59, 59, 59, 59, 59, 59, - 59, 4, 4, 4, 3, 3, 3, 29, 136, 30, - 30, 63, 63, 31, 137, 32, 32, 64, 65, 51, - 51, 57, 57, 57, 58, 58, 58, 54, 54, 54, - 56, 52, 52, 60, 53, 55, 138, 139, 141, 142, - 7, 140, 140, 145, 140, 144, 144, 146, 144, 147, - 143, 148, 149, 115, 150, 115, 151, 152, 153, 154, - 155, 156, 158, 159, 10, 9, 9, 9, 9, 9, - 9, 157, 161, 161, 162, 163, 160, 164, 160, 27, - 28, 28, 165, 48, 166, 167, 48, 168, 49, 169, - 170, 172, 173, 8, 171, 176, 175, 175, 174, 177, - 178, 5, 5, 179, 180, 13, 182, 183, 6, 6, - 181, 185, 186, 14, 14, 184, 187, 11, 25, 26, - 26, 188, 189, 47, 190, 191, 121, 66, 66, 192, - 193, 194, 195, 77, 196, 198, 199, 200, 123, 62, - 62, 62, 12, 12, 114, 201, 197, 203, 197, 202, - 206, 205, 205, 207, 208, 204, 15, 15, 15, 15, - 61, 61, 61, 209, 210, 23, 23, 211, 212, 17, - 17, 18, 213, 19, 19, + 33, 33, 33, 97, 22, 22, 83, 83, 83, 83, + 98, 98, 103, 105, 106, 102, 107, 108, 109, 99, + 34, 110, 69, 67, 67, 24, 24, 100, 100, 101, + 104, 104, 111, 111, 111, 116, 112, 117, 112, 93, + 93, 118, 113, 119, 113, 120, 113, 122, 113, 124, + 113, 125, 113, 20, 126, 21, 21, 16, 127, 16, + 128, 16, 70, 91, 91, 91, 129, 130, 131, 132, + 75, 50, 50, 50, 50, 50, 50, 50, 50, 50, + 35, 36, 37, 37, 38, 38, 39, 39, 40, 40, + 40, 41, 41, 41, 42, 42, 42, 42, 43, 43, + 43, 43, 44, 44, 44, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 46, 134, 71, 71, 71, 71, + 71, 135, 133, 1, 1, 2, 2, 2, 59, 59, + 59, 59, 59, 59, 59, 4, 4, 4, 3, 3, + 3, 29, 136, 30, 30, 63, 63, 31, 137, 32, + 32, 64, 65, 51, 51, 57, 57, 57, 58, 58, + 58, 54, 54, 54, 56, 52, 52, 60, 53, 55, + 138, 139, 141, 142, 7, 140, 140, 145, 140, 144, + 144, 146, 144, 147, 143, 148, 149, 115, 150, 115, + 151, 152, 153, 154, 155, 156, 158, 159, 10, 9, + 9, 9, 9, 9, 9, 157, 161, 161, 162, 163, + 160, 164, 160, 27, 28, 28, 165, 48, 166, 167, + 48, 168, 49, 169, 170, 172, 173, 8, 171, 176, + 175, 175, 174, 177, 178, 5, 5, 179, 180, 13, + 182, 183, 6, 6, 181, 185, 186, 14, 14, 184, + 187, 11, 25, 26, 26, 188, 189, 47, 190, 191, + 121, 66, 66, 192, 193, 194, 195, 77, 196, 198, + 199, 200, 123, 62, 62, 62, 12, 12, 114, 201, + 197, 203, 197, 202, 206, 205, 205, 207, 208, 204, + 15, 15, 15, 15, 61, 61, 61, 209, 210, 23, + 23, 211, 212, 17, 17, 18, 213, 19, 19, }; short tao_yylen[] = { 2, 1, 2, 0, 0, 3, 0, 3, 0, 3, 0, 3, 0, 3, 0, 3, 0, 3, 0, 0, 0, 0, 9, 1, 1, 0, 0, 0, 7, 0, 3, - 2, 0, 3, 0, 1, 1, 1, 1, 2, 1, - 0, 0, 0, 7, 0, 0, 0, 8, 4, 0, - 3, 1, 0, 2, 0, 2, 1, 2, 2, 0, - 1, 1, 1, 0, 3, 0, 3, 2, 0, 0, - 3, 0, 3, 0, 3, 0, 3, 0, 3, 0, - 3, 2, 0, 4, 0, 1, 0, 3, 0, 4, - 1, 1, 0, 0, 0, 0, 9, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, - 1, 3, 1, 3, 1, 3, 3, 1, 3, 3, - 1, 3, 3, 3, 1, 2, 2, 2, 1, 1, - 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 0, 3, 1, 1, 1, 2, 0, 3, 1, + 2, 3, 3, 0, 3, 0, 1, 1, 1, 1, + 2, 1, 0, 0, 0, 7, 0, 0, 0, 8, + 4, 0, 3, 1, 0, 2, 0, 2, 1, 2, + 2, 0, 1, 1, 1, 0, 3, 0, 3, 2, + 0, 0, 3, 0, 3, 0, 3, 0, 3, 0, + 3, 0, 3, 2, 0, 4, 0, 1, 0, 3, + 0, 4, 1, 1, 2, 2, 0, 0, 0, 0, + 9, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 3, 1, 3, 1, 3, 1, 3, + 3, 1, 3, 3, 1, 3, 3, 3, 1, 2, + 2, 2, 1, 1, 3, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 0, 3, 1, 1, 1, + 2, 0, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 2, 0, 4, - 0, 1, 1, 2, 0, 4, 0, 1, 1, 1, - 1, 1, 2, 1, 2, 3, 2, 1, 1, 2, - 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, - 9, 2, 0, 0, 3, 2, 0, 0, 3, 0, - 2, 0, 0, 5, 0, 3, 0, 0, 0, 0, - 0, 0, 0, 0, 17, 1, 1, 1, 1, 1, - 1, 2, 2, 0, 0, 0, 5, 0, 3, 2, - 2, 0, 0, 3, 0, 0, 5, 0, 3, 0, - 0, 0, 0, 9, 2, 0, 4, 0, 1, 0, - 0, 6, 2, 0, 0, 5, 0, 0, 6, 1, - 1, 0, 0, 6, 1, 1, 0, 3, 2, 2, - 0, 0, 0, 5, 0, 0, 6, 1, 0, 0, - 0, 0, 0, 9, 0, 0, 0, 0, 10, 1, - 1, 0, 1, 1, 1, 0, 3, 0, 4, 2, - 0, 4, 0, 0, 0, 5, 1, 1, 1, 1, - 1, 1, 1, 0, 0, 6, 0, 0, 0, 6, - 0, 2, 0, 4, 0, + 1, 2, 0, 4, 0, 1, 1, 2, 0, 4, + 0, 1, 1, 1, 1, 1, 2, 1, 2, 3, + 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, + 0, 0, 0, 0, 9, 2, 0, 0, 3, 2, + 0, 0, 3, 0, 2, 0, 0, 5, 0, 3, + 0, 0, 0, 0, 0, 0, 0, 0, 17, 1, + 1, 1, 1, 1, 1, 2, 2, 0, 0, 0, + 5, 0, 3, 2, 2, 0, 0, 3, 0, 0, + 5, 0, 3, 0, 0, 0, 0, 9, 2, 0, + 4, 0, 1, 0, 0, 6, 2, 0, 0, 5, + 0, 0, 6, 1, 1, 0, 0, 6, 1, 1, + 0, 3, 2, 2, 0, 0, 0, 5, 0, 0, + 6, 1, 0, 0, 0, 0, 0, 9, 0, 0, + 0, 0, 10, 1, 1, 0, 1, 1, 1, 0, + 3, 0, 4, 2, 0, 4, 0, 0, 0, 5, + 1, 1, 1, 1, 1, 1, 1, 0, 0, 6, + 0, 0, 0, 6, 0, 2, 0, 4, 0, }; short tao_yydefred[] = { 3, - 0, 0, 16, 93, 18, 29, 142, 197, 217, 250, - 290, 0, 0, 0, 50, 144, 146, 145, 25, 41, - 0, 0, 4, 2, 6, 8, 10, 12, 14, 23, - 24, 35, 36, 37, 38, 40, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 91, 147, 178, 45, 0, - 0, 39, 0, 0, 0, 32, 31, 0, 184, 0, - 188, 189, 192, 193, 194, 195, 191, 196, 264, 271, - 276, 52, 87, 58, 150, 151, 153, 162, 163, 165, - 167, 166, 0, 164, 0, 155, 157, 158, 156, 161, - 160, 180, 181, 152, 159, 0, 86, 0, 0, 0, - 0, 0, 0, 0, 0, 17, 104, 105, 0, 94, - 98, 99, 101, 102, 103, 100, 19, 30, 148, 143, - 198, 218, 251, 291, 0, 51, 26, 42, 0, 183, - 190, 0, 187, 0, 0, 260, 263, 89, 0, 267, - 272, 5, 7, 9, 11, 13, 15, 0, 0, 0, - 0, 0, 0, 0, 46, 69, 60, 0, 33, 186, - 265, 88, 0, 0, 0, 49, 0, 0, 95, 20, - 179, 149, 171, 172, 173, 0, 199, 219, 252, 292, - 69, 0, 0, 0, 0, 132, 133, 134, 136, 138, - 139, 140, 137, 135, 0, 0, 0, 0, 0, 141, - 0, 0, 0, 0, 0, 0, 121, 125, 130, 261, - 90, 0, 268, 273, 0, 3, 0, 0, 0, 0, - 0, 0, 0, 80, 288, 300, 301, 0, 0, 70, - 72, 74, 0, 68, 76, 78, 305, 66, 64, 0, - 59, 61, 62, 63, 83, 266, 126, 127, 128, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 96, 0, 169, 282, 278, 281, 204, - 200, 0, 0, 220, 259, 253, 258, 208, 0, 0, - 0, 304, 318, 295, 319, 303, 0, 317, 285, 0, - 0, 0, 28, 0, 0, 0, 0, 44, 0, 131, - 0, 0, 0, 0, 0, 0, 0, 122, 123, 124, - 262, 269, 274, 0, 0, 0, 0, 0, 0, 0, - 0, 215, 212, 211, 0, 0, 0, 0, 206, 0, - 48, 81, 0, 0, 71, 73, 75, 77, 79, 67, - 65, 0, 97, 107, 22, 170, 283, 280, 205, 201, - 0, 0, 0, 230, 221, 0, 226, 227, 229, 228, - 254, 256, 209, 294, 296, 286, 0, 216, 213, 0, - 0, 0, 0, 284, 0, 222, 257, 0, 297, 287, - 177, 214, 0, 0, 0, 0, 0, 223, 307, 321, - 322, 323, 314, 0, 313, 324, 298, 175, 0, 0, - 309, 0, 0, 0, 0, 238, 245, 243, 235, 242, - 224, 234, 315, 311, 325, 328, 299, 176, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 239, - 246, 244, 248, 236, 241, 225, 233, 316, 312, 0, - 329, 0, 0, 0, 326, 0, 247, 249, 237, 335, - 0, 0, 330, 333, 0, 334, + 0, 0, 16, 97, 18, 29, 146, 201, 221, 254, + 294, 0, 0, 0, 0, 52, 148, 150, 149, 25, + 43, 0, 0, 4, 2, 6, 8, 10, 12, 14, + 23, 24, 37, 38, 39, 40, 42, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 93, 151, 182, 0, + 47, 0, 0, 0, 41, 0, 0, 0, 34, 31, + 0, 188, 0, 192, 193, 196, 197, 198, 199, 195, + 200, 268, 275, 280, 54, 89, 60, 154, 155, 157, + 166, 167, 169, 171, 170, 0, 168, 0, 159, 161, + 162, 160, 165, 164, 184, 185, 156, 163, 0, 88, + 0, 0, 0, 0, 0, 0, 0, 0, 17, 108, + 109, 0, 98, 102, 103, 105, 106, 107, 104, 19, + 30, 152, 147, 202, 222, 255, 295, 32, 0, 33, + 53, 26, 44, 0, 187, 194, 0, 191, 0, 0, + 264, 267, 91, 0, 271, 276, 5, 7, 9, 11, + 13, 15, 0, 0, 0, 0, 0, 0, 0, 48, + 71, 62, 0, 35, 190, 269, 90, 0, 0, 0, + 51, 0, 0, 99, 20, 183, 153, 175, 176, 177, + 0, 203, 223, 256, 296, 71, 0, 0, 0, 0, + 136, 137, 138, 140, 142, 143, 144, 141, 139, 0, + 0, 0, 0, 0, 145, 0, 0, 0, 0, 0, + 0, 125, 129, 134, 265, 92, 0, 272, 277, 0, + 3, 0, 0, 0, 0, 0, 0, 0, 82, 292, + 304, 305, 0, 0, 72, 74, 76, 0, 70, 78, + 80, 309, 68, 66, 0, 61, 63, 64, 65, 85, + 270, 130, 131, 132, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 100, 0, + 173, 286, 282, 285, 208, 204, 0, 0, 224, 263, + 257, 262, 212, 0, 0, 0, 308, 322, 299, 323, + 307, 0, 321, 289, 0, 0, 0, 28, 0, 0, + 0, 0, 46, 0, 135, 0, 0, 0, 0, 0, + 0, 0, 126, 127, 128, 266, 273, 278, 0, 0, + 0, 0, 0, 0, 0, 0, 219, 216, 215, 0, + 0, 0, 0, 210, 0, 50, 83, 0, 0, 73, + 75, 77, 79, 81, 69, 67, 0, 101, 111, 22, + 174, 287, 284, 209, 205, 0, 0, 0, 234, 225, + 0, 230, 231, 233, 232, 258, 260, 213, 298, 300, + 290, 0, 220, 217, 0, 0, 0, 0, 288, 0, + 226, 261, 0, 301, 291, 181, 218, 0, 0, 0, + 0, 0, 227, 311, 325, 326, 327, 318, 0, 317, + 328, 302, 179, 0, 0, 313, 0, 0, 0, 0, + 242, 249, 247, 239, 246, 228, 238, 319, 315, 329, + 332, 303, 180, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 243, 250, 248, 252, 240, 245, + 229, 237, 320, 316, 0, 333, 0, 0, 0, 330, + 0, 251, 253, 241, 339, 0, 0, 334, 337, 0, + 338, }; short tao_yydgoto[] = { 1, - 323, 75, 76, 77, 78, 79, 80, 81, 355, 82, - 171, 284, 83, 84, 286, 199, 417, 451, 452, 159, - 184, 57, 397, 166, 268, 318, 409, 423, 172, 217, - 380, 387, 19, 20, 343, 200, 201, 202, 203, 204, - 205, 206, 207, 208, 209, 210, 269, 410, 434, 110, - 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, - 393, 228, 173, 174, 175, 229, 96, 21, 22, 97, - 230, 2, 24, 100, 231, 101, 232, 102, 27, 103, - 28, 104, 29, 105, 37, 39, 149, 216, 315, 30, - 31, 54, 182, 156, 233, 40, 129, 32, 33, 34, - 35, 36, 55, 183, 157, 240, 125, 181, 280, 53, - 241, 242, 234, 244, 324, 297, 296, 290, 291, 292, - 235, 294, 236, 295, 281, 299, 135, 164, 38, 148, - 215, 314, 120, 41, 150, 316, 405, 42, 151, 271, - 219, 320, 329, 279, 319, 328, 273, 352, 375, 351, - 43, 152, 220, 325, 370, 383, 411, 399, 424, 412, - 425, 422, 444, 419, 421, 420, 442, 443, 44, 153, - 276, 221, 326, 277, 327, 371, 163, 261, 134, 185, - 98, 167, 262, 99, 168, 263, 218, 317, 367, 334, - 373, 45, 154, 222, 330, 333, 379, 372, 386, 404, - 384, 394, 385, 395, 402, 427, 400, 426, 403, 428, - 429, 446, 455, + 328, 78, 79, 80, 81, 82, 83, 84, 360, 85, + 176, 289, 86, 87, 291, 204, 422, 456, 457, 164, + 189, 60, 402, 171, 273, 323, 414, 428, 177, 222, + 385, 392, 20, 21, 348, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 214, 215, 274, 415, 439, 113, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 398, 233, 178, 179, 180, 234, 99, 22, 23, 100, + 235, 2, 25, 103, 236, 104, 237, 105, 28, 106, + 29, 107, 30, 108, 38, 40, 154, 221, 320, 31, + 32, 57, 187, 161, 238, 41, 134, 33, 34, 35, + 36, 37, 58, 188, 162, 245, 129, 186, 285, 56, + 246, 247, 239, 249, 329, 302, 301, 295, 296, 297, + 240, 299, 241, 300, 286, 304, 140, 169, 39, 153, + 220, 319, 123, 42, 155, 321, 410, 43, 156, 276, + 224, 325, 334, 284, 324, 333, 278, 357, 380, 356, + 44, 157, 225, 330, 375, 388, 416, 404, 429, 417, + 430, 427, 449, 424, 426, 425, 447, 448, 45, 158, + 281, 226, 331, 282, 332, 376, 168, 266, 139, 190, + 101, 172, 267, 102, 173, 268, 223, 322, 372, 339, + 378, 46, 159, 227, 335, 338, 384, 377, 391, 409, + 389, 399, 390, 400, 407, 432, 405, 431, 408, 433, + 434, 451, 460, }; short tao_yysindex[] = { 0, - 0, 583, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -231, -254, -254, 0, 0, 0, 0, 0, 0, - 16, 407, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, -10, 559, -186, -231, - 455, -231, -231, -231, -231, 0, 0, 0, 0, -224, - -224, 0, -231, -43, -41, 0, 0, -205, 0, -226, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, -19, 0, -206, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 16, 0, 55, 57, 65, - 71, 73, 94, 96, 100, 0, 0, 0, -206, 0, + 0, 609, 0, 0, 0, 0, 0, 0, 0, 0, + 0, -220, -219, -166, -252, 0, 0, 0, 0, 0, + 0, -4, 437, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 39, 585, -194, + -220, 463, -220, -220, -220, -220, 0, 0, 0, -4, + 0, -4, -214, -214, 0, -220, -28, 2, 0, 0, + -138, 0, -84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 51, 0, 0, 0, -184, 0, - 0, -79, 0, 125, -231, 0, 0, 0, -109, 0, - 0, 0, 0, 0, 0, 0, 0, -231, 86, -231, - 90, -52, 103, 105, 0, 0, 0, -206, 0, 0, - 0, 0, 18, -231, -184, 0, 18, 18, 0, 0, + 0, 0, 0, 0, 0, 20, 0, -199, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, -4, 0, + 77, 89, 100, 113, 127, 129, 135, 138, 0, 0, + 0, -199, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 93, 0, + 0, 0, 0, -222, 0, 0, -40, 0, 171, -220, + 0, 0, 0, -67, 0, 0, 0, 0, 0, 0, + 0, 0, -220, 117, -220, 120, -39, 134, 136, 0, + 0, 0, -199, 0, 0, 0, 0, 16, -220, -222, + 0, 16, 16, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 651, 601, 227, 512, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, + 33, 33, 16, -199, 0, 163, 194, 253, -86, 35, + 168, 0, 0, 0, 0, 0, -199, 0, 0, 228, + 0, 250, 205, 41, 270, 54, 56, 651, 0, 0, + 0, 0, 536, 29, 0, 0, 0, 189, 0, 0, + 0, 0, 0, 0, 190, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 277, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 269, 271, 273, 0, 609, + 0, 0, 0, 0, 0, 0, 56, 413, 0, 0, + 0, 0, 0, 0, 207, 289, 0, 0, 0, 0, + 0, -199, 0, 0, 293, 294, 295, 0, 296, 297, + 413, 413, 0, -222, 0, 194, 253, -86, 35, 35, + 168, 168, 0, 0, 0, 0, 0, 0, 16, 233, + -220, 16, 205, 300, 235, 0, 0, 0, 0, 153, + 236, 320, 308, 0, 240, 0, 0, 111, 562, 0, + 0, 0, 0, 0, 0, 0, -199, 0, 0, 0, + 0, 0, 0, 0, 0, 315, -220, 116, 0, 0, + -199, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 282, 0, 0, 336, 54, 339, -220, 0, 321, + 0, 0, 0, 0, 0, 0, 0, 259, 343, -60, + 94, 342, 0, 0, 0, 0, 0, 0, 348, 0, + 0, 0, 0, -92, 562, 0, 346, 351, 101, -220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 632, 606, 191, 491, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 30, 30, 30, 18, -206, 0, - 112, 154, 213, -191, 19, 124, 0, 0, 0, 0, - 0, -206, 0, 0, 193, 0, 208, 169, 10, 225, - 14, 11, 632, 0, 0, 0, 0, 509, -14, 0, - 0, 0, 147, 0, 0, 0, 0, 0, 0, 148, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 242, - 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, - 222, 226, 227, 0, 583, 0, 0, 0, 0, 0, - 0, 11, 383, 0, 0, 0, 0, 0, 0, 165, - 232, 0, 0, 0, 0, 0, -206, 0, 0, 234, - 243, 244, 0, 247, 250, 383, 383, 0, -184, 0, - 154, 213, -191, 19, 19, 124, 124, 0, 0, 0, - 0, 0, 0, 18, 185, -231, 18, 169, 254, 190, - 0, 0, 0, 0, 158, 194, 272, 282, 0, 203, - 0, 0, 91, 541, 0, 0, 0, 0, 0, 0, - 0, -206, 0, 0, 0, 0, 0, 0, 0, 0, - 288, -231, 87, 0, 0, -206, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 261, 0, 0, 314, - 14, 322, -231, 0, 304, 0, 0, 0, 0, 0, - 0, 0, 249, 324, -49, 83, 331, 0, 0, 0, - 0, 0, 0, 335, 0, 0, 0, 0, -119, 541, - 0, 338, 339, 92, -231, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 326, 18, - 325, 455, -133, 262, -119, -231, -49, -184, 346, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 349, - 0, 333, -231, 336, 0, 99, 0, 0, 0, 0, - 359, 360, 0, 0, 101, 0, + 0, 0, 0, 333, 16, 337, 463, -47, 272, -92, + -220, -60, -222, 354, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 355, 0, 344, -220, 345, 0, + 102, 0, 0, 0, 0, 367, 365, 0, 0, 107, + 0, }; short tao_yyrindex[] = { 0, - 0, 406, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - -5, -35, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 54, - -7, 0, 0, 0, 0, 0, 0, 140, 0, 0, + 0, 414, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, -1, 57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 152, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, -110, 0, 156, 160, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 150, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 42, + 0, 48, 81, -46, 0, 0, 0, 0, 0, 0, + -2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, -93, 0, + 9, 59, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 156, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 116, 0, 0, 0, 0, 0, 0, 287, 0, + 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, + 0, 0, 0, 301, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 53, 0, 0, + 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 110, 0, 0, 0, 0, - 0, 293, 328, 12, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, -3, 0, - 319, 175, 162, 330, 46, 7, 0, 0, 0, 0, - 0, 296, 0, 0, 0, 0, 352, 0, 245, 0, - 0, 269, 354, 0, 0, 0, 0, 0, 0, 0, + 162, 0, 0, 0, 0, 0, 278, 306, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, -19, 0, 155, 179, 550, 125, 51, + 38, 0, 0, 0, 0, 0, 302, 0, 0, 0, + 0, 359, 0, 226, 0, 0, 251, 335, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 291, 0, 0, 0, 0, 0, - 0, 269, 0, 0, 0, 0, 0, 0, 173, 0, - 0, 0, 0, 0, 0, 0, 176, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 188, 572, 511, 48, 88, 34, 40, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 166, 0, 0, - 221, 0, 0, 0, 0, 0, 307, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 303, + 0, 0, 0, 0, 0, 0, 251, 0, 0, 0, + 0, 0, 0, 177, 0, 0, 0, 0, 0, 0, + 0, 173, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 574, 569, 493, 76, 88, + 61, 115, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 49, 0, 0, 202, 0, 0, 0, 0, + 0, 307, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 394, 0, 0, + 396, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 70, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 414, 0, 0, 415, 0, 0, 0, 0, + 0, 0, -27, 0, 0, 0, 0, 0, 0, 0, + -48, 379, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 411, 0, 398, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, -27, 0, 0, - 0, 0, 0, 0, 0, -47, 389, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 486, 0, 352, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 416, 0, 399, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 473, 0, 334, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 419, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 420, 0, 0, 0, + 0, }; short tao_yygindex[] = { 0, - -21, 276, 0, 0, 0, -34, 9, 4, 0, 15, - 0, 0, 0, -33, -305, -20, 0, 0, 0, 35, - 0, 366, 0, 0, 0, 0, 0, 0, 113, 0, - 0, 0, 0, 451, 0, -171, 0, 215, 216, 217, - -87, -77, -16, 62, 0, -100, 151, 49, 0, 0, - -31, -30, -29, 433, 0, 435, 0, 0, -212, -28, - 0, 0, -270, -9, 0, 0, 0, 0, 192, -12, - 13, 258, 0, 0, 17, 0, 20, 0, 0, 0, + -21, 292, 0, 0, 0, -35, 14, 4, 0, 36, + 0, 0, 0, -34, -314, -22, 0, 0, 0, 52, + 0, 34, 0, 0, 0, 0, 0, 0, 105, 0, + 0, 0, 0, 470, 0, -167, 0, 230, 244, 248, + 10, 6, -18, 50, 0, -127, 184, 82, 0, 0, + -32, -31, -30, 472, 0, 487, 0, 0, -178, -29, + 0, 0, -255, -9, 0, 0, 0, 262, 263, -12, + 11, 288, 0, 0, 13, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 294, 0, 0, 0, 0, 0, 0, 0, - 0, 462, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 297, 0, -66, 0, 0, 0, 0, 0, + 0, 0, 347, 0, 0, 0, 0, 0, 0, 0, + 0, 517, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 349, 0, -16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 277, 209, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, + 0, 0, 314, 276, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 132, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 178, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 77, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 126, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; -#define TAO_YYTABLESIZE 925 -short tao_yytable[] = { 48, - 74, 85, 47, 107, 108, 17, 111, 112, 113, 116, - 16, 327, 34, 306, 23, 288, 18, 109, 25, 119, - 85, 26, 53, 57, 136, 46, 250, 118, 366, 121, - 122, 123, 124, 129, 129, 132, 133, 129, 129, 129, - 126, 129, 137, 129, 118, 346, 15, 118, 106, 118, - 53, 118, 82, 92, 129, 129, 130, 198, 129, 131, - 195, 256, 196, 257, 118, 118, 213, 214, 118, 198, - 117, 119, 46, 56, 119, 72, 119, 120, 119, 127, - 120, 128, 120, 115, 120, 116, 115, 53, 116, 129, - 129, 119, 119, 85, 413, 119, 85, 120, 120, 118, - 118, 120, 138, 115, 115, 116, 116, 115, 158, 116, - 84, 53, 56, 84, 140, 53, 141, 34, 254, 255, - 129, 288, 162, 142, 73, 117, 119, 119, 117, 143, - 118, 144, 120, 120, 82, 169, 406, 176, 115, 115, - 116, 116, 344, 197, 212, 117, 117, 407, 408, 117, - 178, 211, 145, 178, 146, 438, 185, 119, 147, 185, - 260, 407, 408, 120, 85, 258, 304, 305, 178, 115, - 259, 116, 448, 155, 185, 85, 53, 185, 306, 307, - 117, 117, 160, 182, 161, 17, 17, 288, 34, 165, - 16, 16, 84, 283, 285, 154, 18, 18, 182, 270, - 277, 182, 111, 275, 50, 51, 279, 287, 170, 279, - 154, 117, 177, 154, 270, 109, 347, 270, 275, 111, - 111, 275, 178, 111, 279, 179, 17, 180, 110, 340, - 341, 16, 109, 109, 245, 251, 109, 18, 390, 391, - 392, 308, 309, 310, 327, 110, 110, 252, 431, 110, - 253, 266, 85, 264, 111, 111, 247, 248, 249, 267, - 308, 308, 308, 53, 274, 270, 278, 109, 17, 289, - 275, 293, 298, 16, 46, 85, 85, 23, 342, 18, - 110, 25, 300, 311, 26, 111, 46, 312, 313, 331, - 332, 53, 335, 357, 358, 359, 360, 293, 109, 283, - 285, 336, 337, 176, 356, 338, 129, 129, 339, 345, - 82, 110, 349, 287, 350, 362, 118, 118, 361, 186, - 187, 188, 189, 190, 191, 192, 73, 364, 354, 193, - 194, 186, 187, 188, 189, 190, 191, 192, 73, 176, - 363, 193, 194, 119, 119, 202, 368, 365, 130, 120, - 120, 85, 53, 374, 376, 115, 115, 116, 116, 108, - 48, 378, 382, 381, 389, 283, 285, 113, 84, 203, - 113, 388, 185, 396, 398, 401, 108, 108, 415, 287, - 108, 414, 432, 416, 430, 441, 436, 113, 113, 445, - 447, 113, 48, 207, 449, 418, 182, 117, 117, 453, - 433, 85, 450, 454, 456, 1, 106, 158, 154, 55, - 168, 108, 270, 176, 46, 21, 275, 27, 54, 353, - 59, 60, 113, 113, 63, 64, 65, 66, 210, 210, - 176, 255, 320, 10, 210, 210, 210, 210, 210, 210, - 210, 210, 210, 210, 210, 210, 210, 174, 210, 210, - 210, 210, 43, 113, 182, 231, 310, 331, 232, 332, - 246, 139, 440, 49, 369, 301, 73, 302, 348, 303, - 114, 435, 115, 265, 223, 52, 210, 210, 47, 243, - 321, 210, 210, 210, 210, 210, 210, 210, 210, 210, - 210, 210, 210, 210, 210, 272, 210, 210, 210, 210, - 437, 210, 377, 439, 0, 0, 210, 210, 210, 210, - 210, 210, 210, 210, 210, 210, 210, 210, 210, 0, - 210, 210, 210, 210, 0, 207, 0, 0, 0, 210, - 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, - 207, 207, 207, 0, 207, 207, 207, 207, 114, 302, - 0, 114, 0, 210, 302, 302, 302, 302, 302, 302, - 302, 302, 302, 302, 302, 0, 0, 0, 114, 114, - 302, 302, 114, 0, 0, 0, 289, 207, 0, 302, - 0, 0, 0, 0, 302, 0, 0, 0, 0, 302, - 302, 302, 302, 302, 302, 302, 302, 302, 302, 302, - 0, 302, 0, 114, 114, 302, 302, 0, 0, 0, - 302, 289, 112, 0, 302, 302, 302, 302, 302, 302, - 302, 302, 302, 302, 302, 302, 0, 0, 0, 112, - 112, 302, 302, 112, 114, 0, 302, 289, 322, 46, - 302, 0, 0, 0, 58, 59, 60, 61, 62, 63, - 64, 65, 66, 67, 68, 8, 9, 0, 10, 69, - 70, 71, 302, 46, 112, 112, 0, 0, 58, 59, - 60, 61, 62, 63, 64, 65, 66, 67, 68, 8, - 9, 0, 10, 69, 70, 71, 0, 0, 0, 0, - 0, 73, 0, 0, 0, 112, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 72, 0, 0, 0, - 0, 46, 0, 0, 0, 73, 58, 59, 60, 61, - 62, 63, 64, 65, 66, 67, 68, 8, 9, 240, - 10, 69, 70, 71, 240, 240, 240, 240, 240, 240, - 240, 240, 240, 240, 240, 240, 240, 46, 240, 240, - 240, 240, 58, 59, 60, 61, 62, 63, 64, 65, - 66, 67, 68, 73, 0, 46, 0, 69, 70, 71, - 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, - 68, 240, 0, 0, 0, 0, 70, 71, 0, 0, - 0, 0, 0, 0, 0, 282, 0, 46, 0, 73, - 0, 0, 58, 59, 60, 61, 62, 63, 64, 65, - 66, 67, 68, 0, 0, 46, 0, 73, 70, 71, - 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, - 0, 0, 0, 0, 0, 0, 70, 71, 3, 0, - 4, 5, 6, 7, 0, 0, 0, 0, 0, 73, - 0, 0, 0, 0, 0, 8, 9, 0, 10, 0, - 0, 224, 11, 4, 0, 0, 7, 73, 0, 0, - 0, 0, 0, 0, 0, 12, 13, 14, 8, 9, - 0, 10, 0, 15, 0, 11, 0, 224, 225, 4, - 226, 227, 7, 0, 0, 0, 0, 0, 12, 0, - 0, 237, 238, 239, 8, 9, 0, 10, 0, 0, - 0, 11, 0, 0, 225, 0, 226, 227, 0, 0, - 0, 0, 0, 0, 12, +#define TAO_YYTABLESIZE 944 +short tao_yytable[] = { 49, + 88, 77, 48, 110, 111, 18, 114, 115, 116, 119, + 331, 55, 24, 310, 26, 17, 112, 133, 133, 88, + 122, 133, 133, 133, 371, 133, 27, 133, 121, 36, + 124, 125, 126, 127, 47, 255, 47, 19, 133, 133, + 6, 186, 133, 131, 218, 219, 158, 87, 189, 16, + 87, 189, 274, 59, 293, 203, 186, 94, 200, 186, + 201, 158, 120, 141, 158, 351, 189, 274, 86, 189, + 274, 86, 203, 133, 133, 122, 55, 261, 122, 262, + 122, 142, 122, 128, 84, 130, 75, 76, 119, 283, + 418, 119, 283, 6, 132, 122, 122, 109, 123, 122, + 95, 123, 279, 123, 133, 123, 96, 283, 119, 119, + 143, 163, 119, 120, 55, 59, 120, 279, 123, 123, + 279, 36, 123, 135, 133, 121, 136, 167, 121, 87, + 122, 122, 144, 120, 120, 16, 145, 120, 55, 58, + 174, 202, 181, 119, 119, 121, 121, 217, 146, 121, + 86, 349, 124, 123, 123, 124, 216, 124, 147, 124, + 293, 122, 117, 411, 36, 117, 84, 88, 120, 120, + 36, 148, 124, 124, 119, 443, 124, 137, 138, 55, + 121, 121, 117, 117, 123, 149, 117, 150, 412, 413, + 18, 18, 453, 151, 352, 112, 152, 288, 290, 120, + 17, 17, 182, 55, 265, 182, 36, 124, 124, 263, + 292, 121, 112, 112, 264, 160, 112, 117, 117, 113, + 182, 165, 19, 19, 259, 260, 293, 395, 396, 397, + 166, 18, 170, 412, 413, 183, 113, 113, 124, 175, + 113, 17, 182, 331, 313, 314, 315, 112, 117, 252, + 253, 254, 281, 55, 186, 88, 184, 436, 185, 158, + 312, 312, 312, 19, 189, 274, 311, 312, 309, 310, + 250, 113, 47, 18, 50, 52, 53, 54, 88, 88, + 24, 347, 26, 17, 345, 346, 256, 257, 269, 47, + 258, 133, 133, 271, 27, 272, 275, 362, 363, 364, + 365, 297, 113, 288, 290, 19, 87, 361, 181, 279, + 280, 283, 294, 298, 303, 279, 292, 305, 191, 192, + 193, 194, 195, 196, 197, 76, 206, 86, 198, 199, + 316, 336, 317, 359, 318, 191, 192, 193, 194, 195, + 196, 197, 76, 84, 181, 198, 199, 337, 122, 122, + 207, 340, 341, 342, 343, 344, 55, 350, 354, 355, + 366, 119, 119, 367, 369, 49, 368, 370, 386, 288, + 290, 123, 123, 373, 379, 211, 381, 135, 383, 387, + 55, 393, 292, 394, 401, 403, 120, 120, 406, 419, + 420, 435, 421, 446, 437, 450, 441, 49, 121, 121, + 423, 452, 27, 454, 88, 438, 455, 458, 459, 47, + 163, 461, 110, 1, 358, 62, 63, 172, 181, 66, + 67, 68, 69, 57, 56, 124, 124, 21, 10, 324, + 45, 259, 214, 214, 186, 181, 235, 178, 214, 214, + 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, + 214, 314, 214, 214, 214, 214, 335, 214, 214, 49, + 336, 374, 76, 214, 214, 214, 214, 214, 214, 214, + 214, 214, 214, 214, 214, 214, 236, 214, 214, 214, + 214, 251, 214, 51, 445, 306, 214, 214, 214, 214, + 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, + 307, 214, 214, 214, 214, 308, 353, 211, 270, 440, + 117, 214, 211, 211, 211, 211, 211, 211, 211, 211, + 211, 211, 211, 211, 211, 118, 211, 211, 211, 211, + 118, 55, 228, 118, 306, 214, 248, 277, 442, 306, + 306, 306, 306, 306, 306, 306, 306, 306, 306, 306, + 118, 118, 326, 382, 118, 306, 306, 444, 0, 0, + 211, 293, 306, 0, 306, 0, 0, 306, 306, 306, + 306, 306, 306, 306, 306, 306, 306, 306, 0, 0, + 0, 0, 0, 306, 306, 118, 118, 306, 0, 293, + 115, 306, 306, 0, 0, 0, 306, 306, 306, 306, + 306, 306, 306, 306, 306, 306, 306, 115, 115, 116, + 0, 115, 306, 306, 114, 306, 118, 0, 293, 0, + 0, 306, 0, 0, 0, 0, 116, 116, 0, 0, + 116, 114, 114, 0, 0, 114, 0, 0, 0, 0, + 0, 0, 115, 115, 306, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 116, 116, 0, 0, 0, 114, 0, 327, 47, + 0, 0, 0, 115, 61, 62, 63, 64, 65, 66, + 67, 68, 69, 70, 71, 8, 9, 0, 10, 72, + 73, 74, 116, 47, 0, 0, 0, 114, 61, 62, + 63, 64, 65, 66, 67, 68, 69, 70, 71, 8, + 9, 0, 10, 72, 73, 74, 0, 0, 0, 47, + 0, 0, 76, 0, 61, 62, 63, 64, 65, 66, + 67, 68, 69, 70, 71, 8, 9, 75, 10, 72, + 73, 74, 244, 0, 0, 0, 76, 244, 244, 244, + 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, + 0, 244, 244, 244, 244, 0, 0, 0, 47, 0, + 0, 0, 76, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 0, 0, 0, 0, 72, 73, + 74, 0, 47, 0, 0, 244, 0, 61, 62, 63, + 64, 65, 66, 67, 68, 69, 70, 71, 0, 0, + 0, 0, 0, 73, 74, 0, 0, 0, 47, 0, + 0, 76, 287, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 0, 0, 0, 0, 0, 73, + 74, 47, 0, 0, 0, 76, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 229, 0, 4, 0, + 0, 7, 73, 74, 3, 0, 4, 5, 6, 7, + 0, 76, 0, 8, 9, 0, 10, 0, 0, 0, + 11, 8, 9, 230, 10, 231, 232, 0, 11, 0, + 0, 0, 0, 12, 76, 0, 0, 242, 243, 244, + 0, 12, 13, 14, 15, 0, 229, 0, 4, 0, + 16, 7, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 8, 9, 0, 10, 0, 0, 0, + 11, 0, 0, 230, 0, 231, 232, 0, 0, 0, + 0, 0, 0, 12, }; short tao_yycheck[] = { 12, - 22, 22, 12, 38, 38, 2, 38, 38, 38, 38, - 2, 59, 123, 41, 2, 228, 2, 38, 2, 41, - 41, 2, 58, 59, 44, 257, 198, 40, 334, 42, - 43, 44, 45, 37, 38, 262, 263, 41, 42, 43, - 53, 45, 62, 47, 38, 316, 301, 41, 59, 43, - 58, 45, 41, 59, 58, 59, 262, 40, 62, 265, - 43, 43, 45, 45, 58, 59, 167, 168, 62, 40, - 257, 38, 257, 58, 41, 300, 43, 38, 45, 123, - 41, 123, 43, 38, 45, 38, 41, 123, 41, 93, - 94, 58, 59, 41, 400, 62, 44, 58, 59, 93, - 94, 62, 309, 58, 59, 58, 59, 62, 129, 62, - 41, 58, 59, 44, 60, 123, 60, 123, 310, 311, - 124, 334, 135, 59, 309, 38, 93, 94, 41, 59, - 124, 59, 93, 94, 123, 148, 256, 150, 93, 94, - 93, 94, 314, 126, 165, 58, 59, 281, 282, 62, - 41, 164, 59, 44, 59, 426, 41, 124, 59, 44, - 37, 281, 282, 124, 185, 42, 254, 255, 59, 124, - 47, 124, 443, 123, 59, 123, 123, 62, 256, 257, - 93, 94, 262, 44, 60, 182, 183, 400, 299, 299, - 182, 183, 123, 228, 228, 44, 182, 183, 59, 44, - 91, 62, 41, 44, 13, 14, 41, 228, 123, 44, - 59, 124, 123, 62, 59, 41, 317, 62, 59, 58, - 59, 62, 275, 62, 59, 123, 223, 123, 41, 296, - 297, 223, 58, 59, 44, 124, 62, 223, 288, 289, - 290, 258, 259, 260, 292, 58, 59, 94, 420, 62, - 38, 44, 273, 61, 93, 94, 195, 196, 197, 91, - 288, 289, 290, 299, 40, 256, 256, 93, 265, 284, - 257, 125, 125, 265, 257, 296, 297, 265, 299, 265, - 93, 265, 41, 62, 265, 124, 257, 62, 62, 125, - 59, 299, 59, 325, 325, 325, 325, 125, 124, 334, - 334, 59, 59, 316, 325, 59, 310, 311, 59, 125, - 299, 124, 59, 334, 125, 44, 310, 311, 125, 302, - 303, 304, 305, 306, 307, 308, 309, 125, 325, 312, - 313, 302, 303, 304, 305, 306, 307, 308, 309, 352, - 59, 312, 313, 310, 311, 125, 59, 257, 262, 310, - 311, 299, 299, 93, 41, 310, 311, 310, 311, 41, - 373, 40, 59, 373, 41, 400, 400, 38, 299, 125, - 41, 123, 257, 291, 44, 41, 58, 59, 40, 400, - 62, 44, 58, 292, 59, 40, 125, 58, 59, 41, - 58, 62, 405, 125, 59, 405, 257, 310, 311, 41, - 422, 422, 304, 44, 304, 0, 257, 428, 257, 123, - 59, 93, 257, 426, 257, 125, 257, 125, 123, 262, - 263, 264, 93, 94, 267, 268, 269, 270, 256, 257, - 443, 125, 257, 276, 262, 263, 264, 265, 266, 267, - 268, 269, 270, 271, 272, 273, 274, 59, 276, 277, - 278, 279, 125, 124, 41, 41, 41, 59, 125, 41, - 185, 96, 428, 13, 352, 251, 309, 252, 318, 253, - 38, 423, 38, 216, 181, 14, 256, 257, 125, 183, - 272, 309, 262, 263, 264, 265, 266, 267, 268, 269, - 270, 271, 272, 273, 274, 219, 276, 277, 278, 279, - 425, 257, 371, 427, -1, -1, 262, 263, 264, 265, - 266, 267, 268, 269, 270, 271, 272, 273, 274, -1, - 276, 277, 278, 279, -1, 257, -1, -1, -1, 309, - 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, - 272, 273, 274, -1, 276, 277, 278, 279, 38, 257, - -1, 41, -1, 309, 262, 263, 264, 265, 266, 267, - 268, 269, 270, 271, 272, -1, -1, -1, 58, 59, - 278, 279, 62, -1, -1, -1, 284, 309, -1, 287, - -1, -1, -1, -1, 257, -1, -1, -1, -1, 262, + 23, 23, 12, 39, 39, 2, 39, 39, 39, 39, + 59, 58, 2, 41, 2, 2, 39, 37, 38, 42, + 42, 41, 42, 43, 339, 45, 2, 47, 41, 123, + 43, 44, 45, 46, 257, 203, 257, 2, 58, 59, + 260, 44, 62, 56, 172, 173, 44, 41, 41, 302, + 44, 44, 44, 58, 233, 40, 59, 59, 43, 62, + 45, 59, 257, 44, 62, 321, 59, 59, 41, 62, + 62, 44, 40, 93, 94, 38, 123, 43, 41, 45, + 43, 62, 45, 50, 41, 52, 301, 310, 38, 41, + 405, 41, 44, 260, 123, 58, 59, 59, 38, 62, + 59, 41, 44, 43, 124, 45, 59, 59, 58, 59, + 310, 134, 62, 38, 58, 59, 41, 59, 58, 59, + 62, 123, 62, 262, 123, 38, 265, 140, 41, 123, + 93, 94, 99, 58, 59, 302, 60, 62, 58, 59, + 153, 126, 155, 93, 94, 58, 59, 170, 60, 62, + 123, 319, 38, 93, 94, 41, 169, 43, 59, 45, + 339, 124, 38, 256, 123, 41, 123, 190, 93, 94, + 123, 59, 58, 59, 124, 431, 62, 262, 263, 123, + 93, 94, 58, 59, 124, 59, 62, 59, 281, 282, + 187, 188, 448, 59, 322, 41, 59, 233, 233, 124, + 187, 188, 41, 123, 37, 44, 300, 93, 94, 42, + 233, 124, 58, 59, 47, 123, 62, 93, 94, 41, + 59, 262, 187, 188, 311, 312, 405, 288, 289, 290, + 60, 228, 300, 281, 282, 275, 58, 59, 124, 123, + 62, 228, 123, 292, 263, 264, 265, 93, 124, 200, + 201, 202, 91, 300, 257, 278, 123, 425, 123, 257, + 288, 289, 290, 228, 257, 257, 261, 262, 259, 260, + 44, 93, 257, 270, 13, 14, 14, 15, 301, 302, + 270, 304, 270, 270, 301, 302, 124, 94, 61, 257, + 38, 311, 312, 44, 270, 91, 256, 330, 330, 330, + 330, 125, 124, 339, 339, 270, 300, 330, 321, 40, + 257, 256, 284, 125, 125, 257, 339, 41, 303, 304, + 305, 306, 307, 308, 309, 310, 125, 300, 313, 314, + 62, 125, 62, 330, 62, 303, 304, 305, 306, 307, + 308, 309, 310, 300, 357, 313, 314, 59, 311, 312, + 125, 59, 59, 59, 59, 59, 300, 125, 59, 125, + 125, 311, 312, 44, 125, 378, 59, 257, 378, 405, + 405, 311, 312, 59, 93, 125, 41, 262, 40, 59, + 300, 123, 405, 41, 291, 44, 311, 312, 41, 44, + 40, 59, 292, 40, 58, 41, 125, 410, 311, 312, + 410, 58, 125, 59, 427, 427, 305, 41, 44, 257, + 433, 305, 257, 0, 262, 263, 264, 59, 431, 267, + 268, 269, 270, 123, 123, 311, 312, 125, 276, 257, + 125, 125, 256, 257, 41, 448, 41, 59, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, + 274, 41, 276, 277, 278, 279, 59, 256, 257, 125, + 41, 357, 310, 262, 263, 264, 265, 266, 267, 268, + 269, 270, 271, 272, 273, 274, 125, 276, 277, 278, + 279, 190, 257, 14, 433, 256, 310, 262, 263, 264, + 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, + 257, 276, 277, 278, 279, 258, 323, 257, 221, 428, + 39, 310, 262, 263, 264, 265, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 39, 276, 277, 278, 279, + 38, 15, 186, 41, 257, 310, 188, 224, 430, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, - -1, 309, -1, 93, 94, 278, 279, -1, -1, -1, - 257, 284, 41, -1, 287, 262, 263, 264, 265, 266, - 267, 268, 269, 270, 271, 272, -1, -1, -1, 58, - 59, 278, 279, 62, 124, -1, 309, 284, 256, 257, - 287, -1, -1, -1, 262, 263, 264, 265, 266, 267, + 58, 59, 277, 376, 62, 278, 279, 432, -1, -1, + 310, 284, 257, -1, 287, -1, -1, 262, 263, 264, + 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, + -1, -1, -1, 278, 279, 93, 94, 310, -1, 284, + 41, 257, 287, -1, -1, -1, 262, 263, 264, 265, + 266, 267, 268, 269, 270, 271, 272, 58, 59, 41, + -1, 62, 278, 279, 41, 310, 124, -1, 284, -1, + -1, 287, -1, -1, -1, -1, 58, 59, -1, -1, + 62, 58, 59, -1, -1, 62, -1, -1, -1, -1, + -1, -1, 93, 94, 310, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 93, 94, -1, -1, -1, 93, -1, 256, 257, + -1, -1, -1, 124, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, -1, 276, 277, - 278, 279, 309, 257, 93, 94, -1, -1, 262, 263, + 278, 279, 124, 257, -1, -1, -1, 124, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, - 274, -1, 276, 277, 278, 279, -1, -1, -1, -1, - -1, 309, -1, -1, -1, 124, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 300, -1, -1, -1, - -1, 257, -1, -1, -1, 309, 262, 263, 264, 265, - 266, 267, 268, 269, 270, 271, 272, 273, 274, 257, - 276, 277, 278, 279, 262, 263, 264, 265, 266, 267, - 268, 269, 270, 271, 272, 273, 274, 257, 276, 277, - 278, 279, 262, 263, 264, 265, 266, 267, 268, 269, - 270, 271, 272, 309, -1, 257, -1, 277, 278, 279, - 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, - 272, 309, -1, -1, -1, -1, 278, 279, -1, -1, - -1, -1, -1, -1, -1, 287, -1, 257, -1, 309, - -1, -1, 262, 263, 264, 265, 266, 267, 268, 269, - 270, 271, 272, -1, -1, 257, -1, 309, 278, 279, - 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, - -1, -1, -1, -1, -1, -1, 278, 279, 256, -1, - 258, 259, 260, 261, -1, -1, -1, -1, -1, 309, - -1, -1, -1, -1, -1, 273, 274, -1, 276, -1, - -1, 256, 280, 258, -1, -1, 261, 309, -1, -1, - -1, -1, -1, -1, -1, 293, 294, 295, 273, 274, - -1, 276, -1, 301, -1, 280, -1, 256, 283, 258, - 285, 286, 261, -1, -1, -1, -1, -1, 293, -1, - -1, 296, 297, 298, 273, 274, -1, 276, -1, -1, - -1, 280, -1, -1, 283, -1, 285, 286, -1, -1, - -1, -1, -1, -1, 293, + 274, -1, 276, 277, 278, 279, -1, -1, -1, 257, + -1, -1, 310, -1, 262, 263, 264, 265, 266, 267, + 268, 269, 270, 271, 272, 273, 274, 301, 276, 277, + 278, 279, 257, -1, -1, -1, 310, 262, 263, 264, + 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, + -1, 276, 277, 278, 279, -1, -1, -1, 257, -1, + -1, -1, 310, 262, 263, 264, 265, 266, 267, 268, + 269, 270, 271, 272, -1, -1, -1, -1, 277, 278, + 279, -1, 257, -1, -1, 310, -1, 262, 263, 264, + 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, + -1, -1, -1, 278, 279, -1, -1, -1, 257, -1, + -1, 310, 287, 262, 263, 264, 265, 266, 267, 268, + 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, + 279, 257, -1, -1, -1, 310, 262, 263, 264, 265, + 266, 267, 268, 269, 270, 271, 256, -1, 258, -1, + -1, 261, 278, 279, 256, -1, 258, 259, 260, 261, + -1, 310, -1, 273, 274, -1, 276, -1, -1, -1, + 280, 273, 274, 283, 276, 285, 286, -1, 280, -1, + -1, -1, -1, 293, 310, -1, -1, 297, 298, 299, + -1, 293, 294, 295, 296, -1, 256, -1, 258, -1, + 302, 261, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 273, 274, -1, 276, -1, -1, -1, + 280, -1, -1, 283, -1, 285, 286, -1, -1, -1, + -1, -1, -1, 293, }; #define TAO_YYFINAL 1 #ifndef TAO_YYDEBUG #define TAO_YYDEBUG 0 #endif -#define TAO_YYMAXTOKEN 313 +#define TAO_YYMAXTOKEN 314 #if TAO_YYDEBUG const char *tao_yyname[] = { "end-of-file",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, @@ -587,11 +595,12 @@ const char *tao_yyname[] = { "IDL_ENUM","IDL_SEQUENCE","IDL_STRING","IDL_WSTRING","IDL_EXCEPTION","IDL_CASE", "IDL_DEFAULT","IDL_READONLY","IDL_ATTRIBUTE","IDL_ONEWAY","IDL_IDEMPOTENT", "IDL_VOID","IDL_IN","IDL_OUT","IDL_INOUT","IDL_RAISES","IDL_CONTEXT", -"IDL_NATIVE","IDL_ABSTRACT","IDL_CUSTOM","IDL_INIT","IDL_PRIVATE","IDL_PUBLIC", -"IDL_SUPPORTS","IDL_TRUNCATABLE","IDL_VALUETYPE","IDL_INTEGER_LITERAL", -"IDL_UINTEGER_LITERAL","IDL_STRING_LITERAL","IDL_CHARACTER_LITERAL", -"IDL_FLOATING_PT_LITERAL","IDL_TRUETOK","IDL_FALSETOK","IDL_SCOPE_DELIMITOR", -"IDL_LEFT_SHIFT","IDL_RIGHT_SHIFT","IDL_WCHAR_LITERAL","IDL_WSTRING_LITERAL", +"IDL_NATIVE","IDL_LOCAL","IDL_ABSTRACT","IDL_CUSTOM","IDL_INIT","IDL_PRIVATE", +"IDL_PUBLIC","IDL_SUPPORTS","IDL_TRUNCATABLE","IDL_VALUETYPE", +"IDL_INTEGER_LITERAL","IDL_UINTEGER_LITERAL","IDL_STRING_LITERAL", +"IDL_CHARACTER_LITERAL","IDL_FLOATING_PT_LITERAL","IDL_TRUETOK","IDL_FALSETOK", +"IDL_SCOPE_DELIMITOR","IDL_LEFT_SHIFT","IDL_RIGHT_SHIFT","IDL_WCHAR_LITERAL", +"IDL_WSTRING_LITERAL", }; const char *tao_yyrule[] = { "$accept : start", @@ -626,6 +635,8 @@ const char *tao_yyrule[] = { "$$15 :", "interface_decl : IDL_INTERFACE $$15 id", "interface_header : interface_decl inheritance_spec", +"interface_header : IDL_LOCAL interface_decl inheritance_spec", +"interface_header : IDL_ABSTRACT interface_decl inheritance_spec", "$$16 :", "inheritance_spec : ':' $$16 at_least_one_scoped_name", "inheritance_spec :", @@ -687,6 +698,8 @@ const char *tao_yyrule[] = { "scoped_name : scoped_name IDL_SCOPE_DELIMITOR $$34 id", "id : IDENTIFIER", "forward : interface_decl", +"forward : IDL_LOCAL interface_decl", +"forward : IDL_ABSTRACT interface_decl", "$$35 :", "$$36 :", "$$37 :", @@ -952,7 +965,7 @@ TAO_YYSTYPE tao_yylval; #define tao_yystacksize TAO_YYSTACKSIZE short tao_yyss[TAO_YYSTACKSIZE]; TAO_YYSTYPE tao_yyvs[TAO_YYSTACKSIZE]; -#line 2605 "fe/idl.tao_yy" +#line 2676 "fe/idl.tao_yy" /* programs */ /* @@ -974,7 +987,7 @@ tao_yyerror(const char *msg) "%s\n", msg)); } -#line 977 "y.tab.cpp" +#line 990 "y.tab.cpp" #define TAO_YYABORT goto tao_yyabort #define TAO_YYACCEPT goto tao_yyaccept #define TAO_YYERROR goto tao_yyerrlab @@ -1280,98 +1293,98 @@ tao_yyreduce: switch (tao_yyn) { case 4: -#line 259 "fe/idl.tao_yy" +#line 260 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_TypeDeclSeen); } break; case 5: -#line 263 "fe/idl.tao_yy" +#line 264 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_NoState); } break; case 6: -#line 267 "fe/idl.tao_yy" +#line 268 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_ConstDeclSeen); } break; case 7: -#line 271 "fe/idl.tao_yy" +#line 272 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_NoState); } break; case 8: -#line 275 "fe/idl.tao_yy" +#line 276 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_ExceptDeclSeen); } break; case 9: -#line 279 "fe/idl.tao_yy" +#line 280 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_NoState); } break; case 10: -#line 283 "fe/idl.tao_yy" +#line 284 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_InterfaceDeclSeen); } break; case 11: -#line 287 "fe/idl.tao_yy" +#line 288 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_NoState); } break; case 12: -#line 291 "fe/idl.tao_yy" +#line 292 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_ModuleDeclSeen); } break; case 13: -#line 295 "fe/idl.tao_yy" +#line 296 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_NoState); } break; case 14: -#line 299 "fe/idl.tao_yy" +#line 300 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_ValuetypeDeclSeen); } break; case 15: -#line 303 "fe/idl.tao_yy" +#line 304 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_NoState); } break; case 16: -#line 307 "fe/idl.tao_yy" +#line 308 "fe/idl.tao_yy" { idl_global->err()->syntax_error(idl_global->parse_state()); } break; case 17: -#line 311 "fe/idl.tao_yy" +#line 312 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_NoState); tao_yyerrok; } break; case 18: -#line 318 "fe/idl.tao_yy" +#line 319 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_ModuleSeen); } break; case 19: -#line 322 "fe/idl.tao_yy" +#line 323 "fe/idl.tao_yy" { UTL_ScopedName *n = new UTL_ScopedName(new Identifier(tao_yyvsp[0].strval, 1, 0, I_FALSE), NULL); @@ -1394,19 +1407,19 @@ case 19: } break; case 20: -#line 343 "fe/idl.tao_yy" +#line 344 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_ModuleSqSeen); } break; case 21: -#line 347 "fe/idl.tao_yy" +#line 348 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_ModuleBodySeen); } break; case 22: -#line 351 "fe/idl.tao_yy" +#line 352 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_ModuleQsSeen); /* @@ -1422,7 +1435,7 @@ case 22: } break; case 25: -#line 373 "fe/idl.tao_yy" +#line 374 "fe/idl.tao_yy" { UTL_Scope *s = idl_global->scopes ()->top_non_null (); AST_Interface *i = NULL; @@ -1440,7 +1453,9 @@ case 25: tao_yyvsp[0].ihval->n_inherits (), tao_yyvsp[0].ihval->inherits_flat (), tao_yyvsp[0].ihval->n_inherits_flat (), - p + p, + tao_yyvsp[0].ihval->is_local (), + tao_yyvsp[0].ihval->is_abstract () ); AST_Interface::fwd_redefinition_helper (i,s,p); /* @@ -1455,19 +1470,19 @@ case 25: } break; case 26: -#line 404 "fe/idl.tao_yy" +#line 407 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_InterfaceSqSeen); } break; case 27: -#line 408 "fe/idl.tao_yy" +#line 411 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_InterfaceBodySeen); } break; case 28: -#line 412 "fe/idl.tao_yy" +#line 415 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_InterfaceQsSeen); /* @@ -1489,20 +1504,20 @@ case 28: } break; case 29: -#line 435 "fe/idl.tao_yy" +#line 438 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_InterfaceSeen); } break; case 30: -#line 439 "fe/idl.tao_yy" +#line 442 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_InterfaceIDSeen); tao_yyval.idval = tao_yyvsp[0].idval; } break; case 31: -#line 447 "fe/idl.tao_yy" +#line 450 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_InheritSpecSeen); /* @@ -1515,25 +1530,57 @@ case 31: } break; case 32: -#line 461 "fe/idl.tao_yy" +#line 462 "fe/idl.tao_yy" +{ + idl_global->set_parse_state(IDL_GlobalData::PS_InheritSpecSeen); + /* + * Create an AST representation of the information in the header + * part of an interface - this representation contains a computed + * list of all interfaces which this interface inherits from, + * recursively + */ + tao_yyval.ihval = new FE_Local_InterfaceHeader(new UTL_ScopedName(tao_yyvsp[-1].idval, NULL), tao_yyvsp[0].nlval); + } +break; +case 33: +#line 474 "fe/idl.tao_yy" +{ + cerr << "error in " << idl_global->filename()->get_string() + << " line " << idl_global->lineno() << ":\n" ; + cerr << "Sorry, I (TAO_IDL) can't handle abstract interface yet\n"; + /* (if not truncatable) */ +#if 0 + idl_global->set_parse_state(IDL_GlobalData::PS_InheritSpecSeen); + /* + * Create an AST representation of the information in the header + * part of an interface - this representation contains a computed + * list of all interfaces which this interface inherits from, + * recursively + */ + tao_yyval.ihval = new FE_Abstract_InterfaceHeader(new UTL_ScopedName(tao_yyvsp[-1].idval, NULL), tao_yyvsp[0].nlval); +#endif + } +break; +case 34: +#line 494 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_InheritColonSeen); } break; -case 33: -#line 465 "fe/idl.tao_yy" +case 35: +#line 498 "fe/idl.tao_yy" { tao_yyval.nlval = tao_yyvsp[0].nlval; } break; -case 34: -#line 469 "fe/idl.tao_yy" +case 36: +#line 502 "fe/idl.tao_yy" { tao_yyval.nlval = NULL; } break; -case 39: -#line 483 "fe/idl.tao_yy" +case 41: +#line 516 "fe/idl.tao_yy" { cerr << "error in " << idl_global->filename()->get_string() << " line " << idl_global->lineno() << ":\n" ; @@ -1541,8 +1588,8 @@ case 39: /* set custom (if not truncatable) */ } break; -case 41: -#line 494 "fe/idl.tao_yy" +case 43: +#line 527 "fe/idl.tao_yy" { UTL_Scope *s = idl_global->scopes()->top_non_null(); AST_Interface *i = NULL; @@ -1565,20 +1612,20 @@ case 41: idl_global->scopes()->push(i); } break; -case 42: -#line 516 "fe/idl.tao_yy" +case 44: +#line 549 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_InterfaceSqSeen); } break; -case 43: -#line 520 "fe/idl.tao_yy" +case 45: +#line 553 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_InterfaceBodySeen); } break; -case 44: -#line 524 "fe/idl.tao_yy" +case 46: +#line 557 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_InterfaceQsSeen); /* @@ -1593,8 +1640,8 @@ case 44: idl_global->scopes()->pop(); } break; -case 45: -#line 542 "fe/idl.tao_yy" +case 47: +#line 575 "fe/idl.tao_yy" { UTL_Scope *s = idl_global->scopes()->top_non_null(); AST_Interface *i = NULL; @@ -1623,20 +1670,20 @@ case 45: idl_global->scopes()->push(i); } break; -case 46: -#line 570 "fe/idl.tao_yy" +case 48: +#line 603 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_InterfaceSqSeen); } break; -case 47: -#line 574 "fe/idl.tao_yy" +case 49: +#line 607 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_InterfaceBodySeen); } break; -case 48: -#line 578 "fe/idl.tao_yy" +case 50: +#line 611 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_InterfaceQsSeen); /* @@ -1651,27 +1698,27 @@ case 48: idl_global->scopes()->pop(); } break; -case 49: -#line 599 "fe/idl.tao_yy" +case 51: +#line 632 "fe/idl.tao_yy" { tao_yyval.vhval = new FE_obv_header (new UTL_ScopedName (tao_yyvsp[-3].idval, NULL), tao_yyvsp[-1].nlval, tao_yyvsp[0].nlval); } break; -case 50: -#line 606 "fe/idl.tao_yy" +case 52: +#line 639 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_ValuetypeSeen); } break; -case 51: -#line 610 "fe/idl.tao_yy" +case 53: +#line 643 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_ValuetypeIDSeen); tao_yyval.idval = tao_yyvsp[0].idval; } break; -case 52: -#line 618 "fe/idl.tao_yy" +case 54: +#line 651 "fe/idl.tao_yy" { cerr << "warning in " << idl_global->filename()->get_string() << " line " << idl_global->lineno() << ":\n" ; @@ -1680,26 +1727,26 @@ case 52: /* $$ = I_TRUE; */ } break; -case 53: -#line 626 "fe/idl.tao_yy" +case 55: +#line 659 "fe/idl.tao_yy" { tao_yyval.bval = I_FALSE; } break; -case 54: -#line 634 "fe/idl.tao_yy" -{ - tao_yyval.nlval = new UTL_NameList(tao_yyvsp[0].idlist, NULL); +case 56: +#line 667 "fe/idl.tao_yy" +{ + tao_yyval.nlval = new UTL_NameList(tao_yyvsp[0].idlist, NULL); } break; -case 55: -#line 638 "fe/idl.tao_yy" -{ - tao_yyval.nlval = NULL; +case 57: +#line 671 "fe/idl.tao_yy" +{ + tao_yyval.nlval = NULL; } break; -case 56: -#line 646 "fe/idl.tao_yy" +case 58: +#line 679 "fe/idl.tao_yy" { UTL_Scope *s = idl_global->scopes()->top_non_null(); UTL_ScopedName *n = new UTL_ScopedName(tao_yyvsp[0].idval, NULL); @@ -1720,8 +1767,8 @@ case 56: idl_global->set_pragmas (p); } break; -case 57: -#line 667 "fe/idl.tao_yy" +case 59: +#line 700 "fe/idl.tao_yy" { UTL_Scope *s = idl_global->scopes()->top_non_null(); UTL_ScopedName *n = new UTL_ScopedName(tao_yyvsp[0].idval, NULL); @@ -1740,115 +1787,115 @@ case 57: idl_global->set_pragmas (p); } break; -case 58: -#line 689 "fe/idl.tao_yy" +case 60: +#line 722 "fe/idl.tao_yy" { cerr << "error in " << idl_global->filename()->get_string() << " line " << idl_global->lineno() << ":\n" ; cerr << "Sorry, I (TAO_IDL) can't handle boxes yet\n"; } break; -case 64: -#line 709 "fe/idl.tao_yy" +case 66: +#line 742 "fe/idl.tao_yy" { /* is $0 to member_i */ tao_yyval.vival = AST_Field::vis_PUBLIC; } break; -case 66: -#line 715 "fe/idl.tao_yy" +case 68: +#line 748 "fe/idl.tao_yy" { /* is $0 to member_i */ tao_yyval.vival = AST_Field::vis_PRIVATE; } break; -case 70: -#line 729 "fe/idl.tao_yy" +case 72: +#line 762 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_TypeDeclSeen); } break; -case 71: -#line 733 "fe/idl.tao_yy" +case 73: +#line 766 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_NoState); } break; -case 72: -#line 737 "fe/idl.tao_yy" +case 74: +#line 770 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_ConstDeclSeen); } break; -case 73: -#line 741 "fe/idl.tao_yy" +case 75: +#line 774 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_NoState); } break; -case 74: -#line 745 "fe/idl.tao_yy" +case 76: +#line 778 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_ExceptDeclSeen); } break; -case 75: -#line 749 "fe/idl.tao_yy" +case 77: +#line 782 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_NoState); } break; -case 76: -#line 753 "fe/idl.tao_yy" +case 78: +#line 786 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_AttrDeclSeen); } break; -case 77: -#line 757 "fe/idl.tao_yy" +case 79: +#line 790 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_NoState); } break; -case 78: -#line 761 "fe/idl.tao_yy" +case 80: +#line 794 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_OpDeclSeen); } break; -case 79: -#line 765 "fe/idl.tao_yy" +case 81: +#line 798 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_NoState); } break; -case 80: -#line 769 "fe/idl.tao_yy" +case 82: +#line 802 "fe/idl.tao_yy" { idl_global->err()->syntax_error(idl_global->parse_state()); } break; -case 81: -#line 773 "fe/idl.tao_yy" +case 83: +#line 806 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_NoState); tao_yyerrok; } break; -case 82: -#line 781 "fe/idl.tao_yy" +case 84: +#line 814 "fe/idl.tao_yy" { tao_yyval.nlval = new UTL_NameList(tao_yyvsp[-1].idlist, tao_yyvsp[0].nlval); } break; -case 83: -#line 789 "fe/idl.tao_yy" +case 85: +#line 822 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_SNListCommaSeen); } break; -case 84: -#line 793 "fe/idl.tao_yy" +case 86: +#line 826 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_ScopedNameSeen); @@ -1860,28 +1907,28 @@ case 84: } } break; -case 85: -#line 804 "fe/idl.tao_yy" +case 87: +#line 837 "fe/idl.tao_yy" { tao_yyval.nlval = NULL; } break; -case 86: -#line 811 "fe/idl.tao_yy" +case 88: +#line 844 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_SN_IDSeen); tao_yyval.idlist = new UTL_IdList(tao_yyvsp[0].idval, NULL); } break; -case 87: -#line 817 "fe/idl.tao_yy" +case 89: +#line 850 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_ScopeDelimSeen); } break; -case 88: -#line 821 "fe/idl.tao_yy" +case 90: +#line 854 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_SN_IDSeen); @@ -1889,14 +1936,14 @@ case 88: new UTL_IdList(tao_yyvsp[0].idval, NULL)); } break; -case 89: -#line 829 "fe/idl.tao_yy" +case 91: +#line 862 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_ScopeDelimSeen); } break; -case 90: -#line 833 "fe/idl.tao_yy" +case 92: +#line 866 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_SN_IDSeen); @@ -1904,14 +1951,14 @@ case 90: tao_yyval.idlist = tao_yyvsp[-3].idlist; } break; -case 91: -#line 842 "fe/idl.tao_yy" +case 93: +#line 875 "fe/idl.tao_yy" { tao_yyval.idval = new Identifier(tao_yyvsp[0].strval, 1, 0, I_FALSE); } break; -case 92: -#line 849 "fe/idl.tao_yy" +case 94: +#line 882 "fe/idl.tao_yy" { UTL_Scope *s = idl_global->scopes()->top_non_null(); UTL_ScopedName *n = new UTL_ScopedName(tao_yyvsp[0].idval, NULL); @@ -1924,38 +1971,78 @@ case 92: * interface. Store it in the enclosing scope */ if (s != NULL) { - f = idl_global->gen()->create_interface_fwd(n, p); + f = idl_global->gen()->create_interface_fwd(n, p, 0, 0); (void) s->fe_add_interface_fwd(f); } idl_global->set_pragmas (p); } break; -case 93: -#line 870 "fe/idl.tao_yy" +case 95: +#line 901 "fe/idl.tao_yy" +{ + UTL_Scope *s = idl_global->scopes()->top_non_null(); + UTL_ScopedName *n = new UTL_ScopedName(tao_yyvsp[0].idval, NULL); + AST_InterfaceFwd *f = NULL; + UTL_StrList *p = idl_global->pragmas(); + + idl_global->set_parse_state(IDL_GlobalData::PS_ForwardDeclSeen); + /* + * Create a node representing a forward declaration of an + * interface. Store it in the enclosing scope + */ + if (s != NULL) { + f = idl_global->gen()->create_interface_fwd(n, p, 1, 0); + (void) s->fe_add_interface_fwd(f); + } + idl_global->set_pragmas (p); + } +break; +case 96: +#line 920 "fe/idl.tao_yy" +{ + UTL_Scope *s = idl_global->scopes()->top_non_null(); + UTL_ScopedName *n = new UTL_ScopedName(tao_yyvsp[0].idval, NULL); + AST_InterfaceFwd *f = NULL; + UTL_StrList *p = idl_global->pragmas(); + + idl_global->set_parse_state(IDL_GlobalData::PS_ForwardDeclSeen); + /* + * Create a node representing a forward declaration of an + * interface. Store it in the enclosing scope + */ + if (s != NULL) { + f = idl_global->gen()->create_interface_fwd(n, p, 0, 1); + (void) s->fe_add_interface_fwd(f); + } + idl_global->set_pragmas (p); + } +break; +case 97: +#line 941 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_ConstSeen); } break; -case 94: -#line 874 "fe/idl.tao_yy" +case 98: +#line 945 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_ConstTypeSeen); } break; -case 95: -#line 878 "fe/idl.tao_yy" +case 99: +#line 949 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_ConstIDSeen); } break; -case 96: -#line 882 "fe/idl.tao_yy" +case 100: +#line 953 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_ConstAssignSeen); } break; -case 97: -#line 886 "fe/idl.tao_yy" +case 101: +#line 957 "fe/idl.tao_yy" { UTL_ScopedName *n = new UTL_ScopedName(tao_yyvsp[-4].idval, NULL); UTL_Scope *s = idl_global->scopes()->top_non_null(); @@ -1982,20 +2069,20 @@ case 97: idl_global->set_pragmas (p); } break; -case 104: -#line 921 "fe/idl.tao_yy" +case 108: +#line 992 "fe/idl.tao_yy" { tao_yyval.etval = AST_Expression::EV_string; } break; -case 105: -#line 925 "fe/idl.tao_yy" +case 109: +#line 996 "fe/idl.tao_yy" { tao_yyval.etval = AST_Expression::EV_wstring; } break; -case 106: -#line 929 "fe/idl.tao_yy" +case 110: +#line 1000 "fe/idl.tao_yy" { UTL_Scope *s = idl_global->scopes()->top_non_null(); AST_Decl *d = NULL; @@ -2029,98 +2116,98 @@ case 106: tao_yyval.etval = AST_Expression::EV_string; } else if (d->node_type () == AST_Decl::NT_wstring) { tao_yyval.etval = AST_Expression::EV_wstring; - } else + } else tao_yyval.etval = AST_Expression::EV_any; } else tao_yyval.etval = AST_Expression::EV_any; } break; -case 110: -#line 975 "fe/idl.tao_yy" +case 114: +#line 1046 "fe/idl.tao_yy" { tao_yyval.exval = idl_global->gen()->create_expr(AST_Expression::EC_or, tao_yyvsp[-2].exval, tao_yyvsp[0].exval); } break; -case 112: -#line 983 "fe/idl.tao_yy" +case 116: +#line 1054 "fe/idl.tao_yy" { tao_yyval.exval = idl_global->gen()->create_expr(AST_Expression::EC_xor, tao_yyvsp[-2].exval, tao_yyvsp[0].exval); } break; -case 114: -#line 991 "fe/idl.tao_yy" +case 118: +#line 1062 "fe/idl.tao_yy" { tao_yyval.exval = idl_global->gen()->create_expr(AST_Expression::EC_and, tao_yyvsp[-2].exval, tao_yyvsp[0].exval); } break; -case 116: -#line 999 "fe/idl.tao_yy" +case 120: +#line 1070 "fe/idl.tao_yy" { tao_yyval.exval = idl_global->gen()->create_expr(AST_Expression::EC_left,tao_yyvsp[-2].exval,tao_yyvsp[0].exval); } break; -case 117: -#line 1003 "fe/idl.tao_yy" +case 121: +#line 1074 "fe/idl.tao_yy" { tao_yyval.exval = idl_global->gen()->create_expr(AST_Expression::EC_right,tao_yyvsp[-2].exval,tao_yyvsp[0].exval); } break; -case 119: -#line 1011 "fe/idl.tao_yy" +case 123: +#line 1082 "fe/idl.tao_yy" { tao_yyval.exval = idl_global->gen()->create_expr(AST_Expression::EC_add, tao_yyvsp[-2].exval, tao_yyvsp[0].exval); } break; -case 120: -#line 1015 "fe/idl.tao_yy" +case 124: +#line 1086 "fe/idl.tao_yy" { tao_yyval.exval = idl_global->gen()->create_expr(AST_Expression::EC_minus,tao_yyvsp[-2].exval,tao_yyvsp[0].exval); } break; -case 122: -#line 1023 "fe/idl.tao_yy" +case 126: +#line 1094 "fe/idl.tao_yy" { tao_yyval.exval = idl_global->gen()->create_expr(AST_Expression::EC_mul, tao_yyvsp[-2].exval, tao_yyvsp[0].exval); } break; -case 123: -#line 1027 "fe/idl.tao_yy" +case 127: +#line 1098 "fe/idl.tao_yy" { tao_yyval.exval = idl_global->gen()->create_expr(AST_Expression::EC_div, tao_yyvsp[-2].exval, tao_yyvsp[0].exval); } break; -case 124: -#line 1031 "fe/idl.tao_yy" +case 128: +#line 1102 "fe/idl.tao_yy" { tao_yyval.exval = idl_global->gen()->create_expr(AST_Expression::EC_mod, tao_yyvsp[-2].exval, tao_yyvsp[0].exval); } break; -case 126: -#line 1039 "fe/idl.tao_yy" +case 130: +#line 1110 "fe/idl.tao_yy" { tao_yyval.exval = idl_global->gen()->create_expr(AST_Expression::EC_u_plus, tao_yyvsp[0].exval, NULL); } break; -case 127: -#line 1045 "fe/idl.tao_yy" +case 131: +#line 1116 "fe/idl.tao_yy" { tao_yyval.exval = idl_global->gen()->create_expr(AST_Expression::EC_u_minus, tao_yyvsp[0].exval, NULL); } break; -case 128: -#line 1051 "fe/idl.tao_yy" +case 132: +#line 1122 "fe/idl.tao_yy" { tao_yyval.exval = idl_global->gen()->create_expr(AST_Expression::EC_bit_neg, tao_yyvsp[0].exval, NULL); } break; -case 129: -#line 1060 "fe/idl.tao_yy" +case 133: +#line 1131 "fe/idl.tao_yy" { /* * An expression which is a scoped name is not resolved now, @@ -2130,100 +2217,100 @@ case 129: tao_yyval.exval = idl_global->gen()->create_expr(tao_yyvsp[0].idlist); } break; -case 131: -#line 1070 "fe/idl.tao_yy" +case 135: +#line 1141 "fe/idl.tao_yy" { tao_yyval.exval = tao_yyvsp[-1].exval; } break; -case 132: -#line 1077 "fe/idl.tao_yy" +case 136: +#line 1148 "fe/idl.tao_yy" { tao_yyval.exval = idl_global->gen()->create_expr(tao_yyvsp[0].ival); } break; -case 133: -#line 1081 "fe/idl.tao_yy" +case 137: +#line 1152 "fe/idl.tao_yy" { tao_yyval.exval = idl_global->gen()->create_expr(tao_yyvsp[0].uival); } break; -case 134: -#line 1085 "fe/idl.tao_yy" +case 138: +#line 1156 "fe/idl.tao_yy" { tao_yyval.exval = idl_global->gen()->create_expr(tao_yyvsp[0].sval); } break; -case 135: -#line 1089 "fe/idl.tao_yy" +case 139: +#line 1160 "fe/idl.tao_yy" { tao_yyval.exval = idl_global->gen()->create_expr(tao_yyvsp[0].wsval); } break; -case 136: -#line 1093 "fe/idl.tao_yy" +case 140: +#line 1164 "fe/idl.tao_yy" { tao_yyval.exval = idl_global->gen()->create_expr(tao_yyvsp[0].cval); } break; -case 137: -#line 1097 "fe/idl.tao_yy" +case 141: +#line 1168 "fe/idl.tao_yy" { ACE_OutputCDR::from_wchar wc (tao_yyvsp[0].wcval); tao_yyval.exval = idl_global->gen()->create_expr(wc); } break; -case 138: -#line 1102 "fe/idl.tao_yy" +case 142: +#line 1173 "fe/idl.tao_yy" { tao_yyval.exval = idl_global->gen()->create_expr(tao_yyvsp[0].dval); } break; -case 139: -#line 1106 "fe/idl.tao_yy" +case 143: +#line 1177 "fe/idl.tao_yy" { tao_yyval.exval = idl_global->gen()->create_expr((idl_bool) I_TRUE, AST_Expression::EV_bool); } break; -case 140: -#line 1111 "fe/idl.tao_yy" +case 144: +#line 1182 "fe/idl.tao_yy" { tao_yyval.exval = idl_global->gen()->create_expr((idl_bool) I_FALSE, AST_Expression::EV_bool); } break; -case 141: -#line 1119 "fe/idl.tao_yy" +case 145: +#line 1190 "fe/idl.tao_yy" { tao_yyvsp[0].exval->evaluate(AST_Expression::EK_const); tao_yyval.exval = idl_global->gen()->create_expr(tao_yyvsp[0].exval, AST_Expression::EV_ulong); } break; -case 142: -#line 1127 "fe/idl.tao_yy" +case 146: +#line 1198 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_TypedefSeen); } break; -case 143: -#line 1130 "fe/idl.tao_yy" +case 147: +#line 1201 "fe/idl.tao_yy" {tao_yyval.ival = 0;} break; -case 144: -#line 1131 "fe/idl.tao_yy" +case 148: +#line 1202 "fe/idl.tao_yy" { tao_yyval.ival = 0;} break; -case 145: -#line 1132 "fe/idl.tao_yy" +case 149: +#line 1203 "fe/idl.tao_yy" { tao_yyval.ival = 0;} break; -case 146: -#line 1133 "fe/idl.tao_yy" +case 150: +#line 1204 "fe/idl.tao_yy" { tao_yyval.ival = 0;} break; -case 147: -#line 1135 "fe/idl.tao_yy" +case 151: +#line 1206 "fe/idl.tao_yy" { UTL_Scope *s = idl_global->scopes()->top_non_null(); AST_Native *node = NULL; @@ -2247,14 +2334,14 @@ case 147: idl_global->set_pragmas (p); } break; -case 148: -#line 1161 "fe/idl.tao_yy" +case 152: +#line 1232 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_TypeSpecSeen); } break; -case 149: -#line 1165 "fe/idl.tao_yy" +case 153: +#line 1236 "fe/idl.tao_yy" { UTL_Scope *s = idl_global->scopes()->top_non_null(); UTL_DecllistActiveIterator *l; @@ -2287,14 +2374,14 @@ case 149: idl_global->set_pragmas (p); } break; -case 152: -#line 1205 "fe/idl.tao_yy" +case 156: +#line 1276 "fe/idl.tao_yy" { tao_yyval.dcval = idl_global->scopes()->bottom()->lookup_primitive_type(tao_yyvsp[0].etval); } break; -case 154: -#line 1210 "fe/idl.tao_yy" +case 158: +#line 1281 "fe/idl.tao_yy" { UTL_Scope *s = idl_global->scopes()->top_non_null(); AST_Decl *d = NULL; @@ -2306,20 +2393,20 @@ case 154: tao_yyval.dcval = d; } break; -case 168: -#line 1246 "fe/idl.tao_yy" +case 172: +#line 1317 "fe/idl.tao_yy" { tao_yyval.dlval = new UTL_DeclList(tao_yyvsp[-1].deval, tao_yyvsp[0].dlval); } break; -case 169: -#line 1254 "fe/idl.tao_yy" +case 173: +#line 1325 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_DeclsCommaSeen); } break; -case 170: -#line 1258 "fe/idl.tao_yy" +case 174: +#line 1329 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_DeclsDeclSeen); @@ -2331,26 +2418,26 @@ case 170: } } break; -case 171: -#line 1269 "fe/idl.tao_yy" +case 175: +#line 1340 "fe/idl.tao_yy" { tao_yyval.dlval = NULL; } break; -case 174: -#line 1281 "fe/idl.tao_yy" +case 178: +#line 1352 "fe/idl.tao_yy" { tao_yyval.dlval = new UTL_DeclList(tao_yyvsp[-1].deval, tao_yyvsp[0].dlval); } break; -case 175: -#line 1289 "fe/idl.tao_yy" +case 179: +#line 1360 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_DeclsCommaSeen); } break; -case 176: -#line 1293 "fe/idl.tao_yy" +case 180: +#line 1364 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_DeclsDeclSeen); @@ -2362,127 +2449,127 @@ case 176: } } break; -case 177: -#line 1304 "fe/idl.tao_yy" +case 181: +#line 1375 "fe/idl.tao_yy" { tao_yyval.dlval = NULL; } break; -case 178: -#line 1311 "fe/idl.tao_yy" +case 182: +#line 1382 "fe/idl.tao_yy" { tao_yyval.deval = new FE_Declarator(new UTL_ScopedName(tao_yyvsp[0].idval, NULL), FE_Declarator::FD_simple, NULL); } break; -case 179: -#line 1319 "fe/idl.tao_yy" +case 183: +#line 1390 "fe/idl.tao_yy" { tao_yyval.deval = new FE_Declarator(new UTL_ScopedName(tao_yyvsp[0].dcval->local_name(), NULL), FE_Declarator::FD_complex, tao_yyvsp[0].dcval); } break; -case 182: -#line 1333 "fe/idl.tao_yy" +case 186: +#line 1404 "fe/idl.tao_yy" { tao_yyval.etval = AST_Expression::EV_long; } break; -case 183: -#line 1337 "fe/idl.tao_yy" +case 187: +#line 1408 "fe/idl.tao_yy" { tao_yyval.etval = AST_Expression::EV_longlong; } break; -case 184: -#line 1341 "fe/idl.tao_yy" +case 188: +#line 1412 "fe/idl.tao_yy" { tao_yyval.etval = AST_Expression::EV_short; } break; -case 185: -#line 1348 "fe/idl.tao_yy" +case 189: +#line 1419 "fe/idl.tao_yy" { tao_yyval.etval = AST_Expression::EV_ulong; } break; -case 186: -#line 1352 "fe/idl.tao_yy" +case 190: +#line 1423 "fe/idl.tao_yy" { tao_yyval.etval = AST_Expression::EV_ulonglong; } break; -case 187: -#line 1356 "fe/idl.tao_yy" +case 191: +#line 1427 "fe/idl.tao_yy" { tao_yyval.etval = AST_Expression::EV_ushort; } break; -case 188: -#line 1363 "fe/idl.tao_yy" +case 192: +#line 1434 "fe/idl.tao_yy" { tao_yyval.etval = AST_Expression::EV_double; } break; -case 189: -#line 1367 "fe/idl.tao_yy" +case 193: +#line 1438 "fe/idl.tao_yy" { tao_yyval.etval = AST_Expression::EV_float; } break; -case 190: -#line 1371 "fe/idl.tao_yy" +case 194: +#line 1442 "fe/idl.tao_yy" { tao_yyval.etval = AST_Expression::EV_longdouble; } break; -case 191: -#line 1378 "fe/idl.tao_yy" -{ +case 195: +#line 1449 "fe/idl.tao_yy" +{ cerr << "error in " << idl_global->filename()->get_string() << " line " << idl_global->lineno() << ":\n" ; cerr << "Sorry, I (TAO_IDL) can't handle fixed types yet\n"; } break; -case 192: -#line 1387 "fe/idl.tao_yy" +case 196: +#line 1458 "fe/idl.tao_yy" { tao_yyval.etval = AST_Expression::EV_char; } break; -case 193: -#line 1391 "fe/idl.tao_yy" +case 197: +#line 1462 "fe/idl.tao_yy" { tao_yyval.etval = AST_Expression::EV_wchar; } break; -case 194: -#line 1398 "fe/idl.tao_yy" +case 198: +#line 1469 "fe/idl.tao_yy" { tao_yyval.etval = AST_Expression::EV_octet; } break; -case 195: -#line 1405 "fe/idl.tao_yy" +case 199: +#line 1476 "fe/idl.tao_yy" { tao_yyval.etval = AST_Expression::EV_bool; } break; -case 196: -#line 1412 "fe/idl.tao_yy" +case 200: +#line 1483 "fe/idl.tao_yy" { tao_yyval.etval = AST_Expression::EV_any; } break; -case 197: -#line 1419 "fe/idl.tao_yy" +case 201: +#line 1490 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_StructSeen); } break; -case 198: -#line 1423 "fe/idl.tao_yy" +case 202: +#line 1494 "fe/idl.tao_yy" { UTL_Scope *s = idl_global->scopes()->top_non_null(); UTL_ScopedName *n = new UTL_ScopedName(tao_yyvsp[0].idval, NULL); @@ -2507,20 +2594,20 @@ case 198: idl_global->scopes()->push(d); } break; -case 199: -#line 1447 "fe/idl.tao_yy" +case 203: +#line 1518 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_StructSqSeen); } break; -case 200: -#line 1451 "fe/idl.tao_yy" +case 204: +#line 1522 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_StructBodySeen); } break; -case 201: -#line 1455 "fe/idl.tao_yy" +case 205: +#line 1526 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_StructQsSeen); /* @@ -2536,61 +2623,61 @@ case 201: idl_global->scopes()->pop(); } break; -case 203: -#line 1474 "fe/idl.tao_yy" +case 207: +#line 1545 "fe/idl.tao_yy" { idl_global->err()->syntax_error(idl_global->parse_state()); idl_global->set_parse_state(IDL_GlobalData::PS_NoState); tao_yyerrok; } break; -case 204: -#line 1480 "fe/idl.tao_yy" +case 208: +#line 1551 "fe/idl.tao_yy" { idl_global->err()->syntax_error(idl_global->parse_state()); } break; -case 205: -#line 1484 "fe/idl.tao_yy" +case 209: +#line 1555 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_NoState); tao_yyerrok; } break; -case 208: -#line 1494 "fe/idl.tao_yy" +case 212: +#line 1565 "fe/idl.tao_yy" { idl_global->err()->syntax_error(idl_global->parse_state()); } break; -case 209: -#line 1498 "fe/idl.tao_yy" +case 213: +#line 1569 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_NoState); tao_yyerrok; } break; -case 210: -#line 1505 "fe/idl.tao_yy" -{ +case 214: +#line 1576 "fe/idl.tao_yy" +{ /* is $0 to member_i */ tao_yyval.vival = AST_Field::vis_NA; } break; -case 212: -#line 1514 "fe/idl.tao_yy" +case 216: +#line 1585 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_MemberTypeSeen); } break; -case 213: -#line 1518 "fe/idl.tao_yy" +case 217: +#line 1589 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_MemberDeclsSeen); } break; -case 214: -#line 1522 "fe/idl.tao_yy" +case 218: +#line 1593 "fe/idl.tao_yy" { UTL_Scope *s = idl_global->scopes()->top_non_null(); UTL_DecllistActiveIterator *l = NULL; @@ -2625,51 +2712,51 @@ case 214: } } break; -case 215: -#line 1556 "fe/idl.tao_yy" +case 219: +#line 1627 "fe/idl.tao_yy" { idl_global->err()->syntax_error(idl_global->parse_state()); } break; -case 216: -#line 1560 "fe/idl.tao_yy" +case 220: +#line 1631 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_NoState); tao_yyerrok; } break; -case 217: -#line 1568 "fe/idl.tao_yy" +case 221: +#line 1639 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_UnionSeen); } break; -case 218: -#line 1572 "fe/idl.tao_yy" +case 222: +#line 1643 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_UnionIDSeen); } break; -case 219: -#line 1576 "fe/idl.tao_yy" +case 223: +#line 1647 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_SwitchSeen); } break; -case 220: -#line 1580 "fe/idl.tao_yy" +case 224: +#line 1651 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_SwitchOpenParSeen); } break; -case 221: -#line 1584 "fe/idl.tao_yy" +case 225: +#line 1655 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_SwitchTypeSeen); } break; -case 222: -#line 1588 "fe/idl.tao_yy" +case 226: +#line 1659 "fe/idl.tao_yy" { UTL_Scope *s = idl_global->scopes()->top_non_null(); UTL_ScopedName *n = new UTL_ScopedName(tao_yyvsp[-8].idval, NULL); @@ -2699,20 +2786,20 @@ case 222: idl_global->scopes()->push(u); } break; -case 223: -#line 1617 "fe/idl.tao_yy" +case 227: +#line 1688 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_UnionSqSeen); } break; -case 224: -#line 1621 "fe/idl.tao_yy" +case 228: +#line 1692 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_UnionBodySeen); } break; -case 225: -#line 1625 "fe/idl.tao_yy" +case 229: +#line 1696 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_UnionQsSeen); /* @@ -2732,34 +2819,34 @@ case 225: } } break; -case 226: -#line 1647 "fe/idl.tao_yy" +case 230: +#line 1718 "fe/idl.tao_yy" { tao_yyval.dcval = idl_global->scopes()->bottom()->lookup_primitive_type(tao_yyvsp[0].etval); } break; -case 227: -#line 1651 "fe/idl.tao_yy" +case 231: +#line 1722 "fe/idl.tao_yy" { tao_yyval.dcval = idl_global->scopes()->bottom()->lookup_primitive_type(tao_yyvsp[0].etval); } break; -case 228: -#line 1655 "fe/idl.tao_yy" +case 232: +#line 1726 "fe/idl.tao_yy" { /* octets are not allowed*/ idl_global->err ()->error0 (UTL_Error::EIDL_DISC_TYPE); tao_yyval.dcval = idl_global->scopes()->bottom()->lookup_primitive_type(tao_yyvsp[0].etval); } break; -case 229: -#line 1661 "fe/idl.tao_yy" +case 233: +#line 1732 "fe/idl.tao_yy" { tao_yyval.dcval = idl_global->scopes()->bottom()->lookup_primitive_type(tao_yyvsp[0].etval); } break; -case 231: -#line 1666 "fe/idl.tao_yy" +case 235: +#line 1737 "fe/idl.tao_yy" { UTL_Scope *s = idl_global->scopes()->top_non_null(); AST_Decl *d = NULL; @@ -2829,20 +2916,20 @@ case 231: idl_global->err()->lookup_error(tao_yyvsp[0].idlist); } break; -case 235: -#line 1745 "fe/idl.tao_yy" +case 239: +#line 1816 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_UnionLabelSeen); } break; -case 236: -#line 1749 "fe/idl.tao_yy" +case 240: +#line 1820 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_UnionElemSeen); } break; -case 237: -#line 1753 "fe/idl.tao_yy" +case 241: +#line 1824 "fe/idl.tao_yy" { UTL_Scope *s = idl_global->scopes()->top_non_null(); UTL_LabellistActiveIterator *l = NULL; @@ -2867,27 +2954,27 @@ case 237: } } break; -case 238: -#line 1777 "fe/idl.tao_yy" +case 242: +#line 1848 "fe/idl.tao_yy" { idl_global->err()->syntax_error(idl_global->parse_state()); } break; -case 239: -#line 1782 "fe/idl.tao_yy" +case 243: +#line 1853 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_NoState); tao_yyerrok; } break; -case 240: -#line 1790 "fe/idl.tao_yy" +case 244: +#line 1861 "fe/idl.tao_yy" { tao_yyval.llval = new UTL_LabelList(tao_yyvsp[-1].ulval, tao_yyvsp[0].llval); } break; -case 241: -#line 1797 "fe/idl.tao_yy" +case 245: +#line 1868 "fe/idl.tao_yy" { if (tao_yyvsp[-1].llval == NULL) tao_yyval.llval = new UTL_LabelList(tao_yyvsp[0].ulval, NULL); @@ -2897,20 +2984,20 @@ case 241: } } break; -case 242: -#line 1806 "fe/idl.tao_yy" +case 246: +#line 1877 "fe/idl.tao_yy" { tao_yyval.llval = NULL; } break; -case 243: -#line 1813 "fe/idl.tao_yy" +case 247: +#line 1884 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_DefaultSeen); } break; -case 244: -#line 1817 "fe/idl.tao_yy" +case 248: +#line 1888 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_LabelColonSeen); @@ -2919,20 +3006,20 @@ case 244: NULL); } break; -case 245: -#line 1825 "fe/idl.tao_yy" +case 249: +#line 1896 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_CaseSeen); } break; -case 246: -#line 1829 "fe/idl.tao_yy" +case 250: +#line 1900 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_LabelExprSeen); } break; -case 247: -#line 1833 "fe/idl.tao_yy" +case 251: +#line 1904 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_LabelColonSeen); @@ -2940,14 +3027,14 @@ case 247: tao_yyvsp[-2].exval); } break; -case 248: -#line 1843 "fe/idl.tao_yy" +case 252: +#line 1914 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_UnionElemTypeSeen); } break; -case 249: -#line 1847 "fe/idl.tao_yy" +case 253: +#line 1918 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_UnionElemDeclSeen); /* @@ -2971,14 +3058,14 @@ case 249: } } break; -case 250: -#line 1873 "fe/idl.tao_yy" +case 254: +#line 1944 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_EnumSeen); } break; -case 251: -#line 1877 "fe/idl.tao_yy" +case 255: +#line 1948 "fe/idl.tao_yy" { UTL_Scope *s = idl_global->scopes()->top_non_null(); UTL_ScopedName *n = new UTL_ScopedName(tao_yyvsp[0].idval, NULL); @@ -3006,20 +3093,20 @@ case 251: idl_global->scopes()->push(e); } break; -case 252: -#line 1904 "fe/idl.tao_yy" +case 256: +#line 1975 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_EnumSqSeen); } break; -case 253: -#line 1908 "fe/idl.tao_yy" +case 257: +#line 1979 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_EnumBodySeen); } break; -case 254: -#line 1912 "fe/idl.tao_yy" +case 258: +#line 1983 "fe/idl.tao_yy" { UTL_StrList *p = 0; idl_global->set_parse_state(IDL_GlobalData::PS_EnumQsSeen); @@ -3036,14 +3123,14 @@ case 254: idl_global->set_pragmas (p); } break; -case 256: -#line 1934 "fe/idl.tao_yy" +case 260: +#line 2005 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_EnumCommaSeen); } break; -case 259: -#line 1943 "fe/idl.tao_yy" +case 263: +#line 2014 "fe/idl.tao_yy" { UTL_Scope *s = idl_global->scopes()->top_non_null(); UTL_ScopedName *n = @@ -3064,20 +3151,20 @@ case 259: } } break; -case 260: -#line 1967 "fe/idl.tao_yy" +case 264: +#line 2038 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_SequenceCommaSeen); } break; -case 261: -#line 1971 "fe/idl.tao_yy" +case 265: +#line 2042 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_SequenceExprSeen); } break; -case 262: -#line 1975 "fe/idl.tao_yy" +case 266: +#line 2046 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_SequenceQsSeen); /* @@ -3108,8 +3195,8 @@ case 262: } } break; -case 263: -#line 2006 "fe/idl.tao_yy" +case 267: +#line 2077 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_SequenceQsSeen); /* @@ -3140,8 +3227,8 @@ case 263: } } break; -case 264: -#line 2039 "fe/idl.tao_yy" +case 268: +#line 2110 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_SequenceSeen); /* @@ -3150,33 +3237,33 @@ case 264: idl_global->scopes()->push(NULL); } break; -case 265: -#line 2047 "fe/idl.tao_yy" +case 269: +#line 2118 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_SequenceSqSeen); } break; -case 266: -#line 2051 "fe/idl.tao_yy" +case 270: +#line 2122 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_SequenceTypeSeen); tao_yyval.dcval = tao_yyvsp[0].dcval; } break; -case 267: -#line 2060 "fe/idl.tao_yy" +case 271: +#line 2131 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_StringSqSeen); } break; -case 268: -#line 2064 "fe/idl.tao_yy" +case 272: +#line 2135 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_StringExprSeen); } break; -case 269: -#line 2068 "fe/idl.tao_yy" +case 273: +#line 2139 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_StringQsSeen); /* @@ -3195,8 +3282,8 @@ case 269: } } break; -case 270: -#line 2086 "fe/idl.tao_yy" +case 274: +#line 2157 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_StringCompleted); /* @@ -3212,26 +3299,26 @@ case 270: ->fe_add_string(AST_String::narrow_from_decl(tao_yyval.dcval)); } break; -case 271: -#line 2104 "fe/idl.tao_yy" +case 275: +#line 2175 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_StringSeen); } break; -case 272: -#line 2112 "fe/idl.tao_yy" +case 276: +#line 2183 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_StringSqSeen); } break; -case 273: -#line 2116 "fe/idl.tao_yy" +case 277: +#line 2187 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_StringExprSeen); } break; -case 274: -#line 2120 "fe/idl.tao_yy" +case 278: +#line 2191 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_StringQsSeen); /* @@ -3250,8 +3337,8 @@ case 274: } } break; -case 275: -#line 2138 "fe/idl.tao_yy" +case 279: +#line 2209 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_StringCompleted); /* @@ -3267,20 +3354,20 @@ case 275: ->fe_add_string(AST_String::narrow_from_decl(tao_yyval.dcval)); } break; -case 276: -#line 2156 "fe/idl.tao_yy" +case 280: +#line 2227 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_StringSeen); } break; -case 277: -#line 2163 "fe/idl.tao_yy" +case 281: +#line 2234 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_ArrayIDSeen); } break; -case 278: -#line 2167 "fe/idl.tao_yy" +case 282: +#line 2238 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_ArrayCompleted); /* @@ -3292,14 +3379,14 @@ case 278: } } break; -case 279: -#line 2181 "fe/idl.tao_yy" +case 283: +#line 2252 "fe/idl.tao_yy" { tao_yyval.elval = new UTL_ExprList(tao_yyvsp[-1].exval, tao_yyvsp[0].elval); } break; -case 280: -#line 2188 "fe/idl.tao_yy" +case 284: +#line 2259 "fe/idl.tao_yy" { if (tao_yyvsp[-1].elval == NULL) tao_yyval.elval = new UTL_ExprList(tao_yyvsp[0].exval, NULL); @@ -3309,26 +3396,26 @@ case 280: } } break; -case 281: -#line 2197 "fe/idl.tao_yy" +case 285: +#line 2268 "fe/idl.tao_yy" { tao_yyval.elval = NULL; } break; -case 282: -#line 2204 "fe/idl.tao_yy" +case 286: +#line 2275 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_DimSqSeen); } break; -case 283: -#line 2208 "fe/idl.tao_yy" +case 287: +#line 2279 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_DimExprSeen); } break; -case 284: -#line 2212 "fe/idl.tao_yy" +case 288: +#line 2283 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_DimQsSeen); /* @@ -3342,20 +3429,20 @@ case 284: tao_yyval.exval = tao_yyvsp[-2].exval; } break; -case 285: -#line 2229 "fe/idl.tao_yy" +case 289: +#line 2300 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_AttrSeen); } break; -case 286: -#line 2233 "fe/idl.tao_yy" +case 290: +#line 2304 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_AttrTypeSeen); } break; -case 287: -#line 2237 "fe/idl.tao_yy" +case 291: +#line 2308 "fe/idl.tao_yy" { UTL_Scope *s = idl_global->scopes()->top_non_null(); UTL_DecllistActiveIterator *l = NULL; @@ -3388,27 +3475,27 @@ case 287: idl_global->set_pragmas (p); } break; -case 288: -#line 2272 "fe/idl.tao_yy" +case 292: +#line 2343 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_AttrROSeen); tao_yyval.bval = I_TRUE; } break; -case 289: -#line 2277 "fe/idl.tao_yy" +case 293: +#line 2348 "fe/idl.tao_yy" { tao_yyval.bval = I_FALSE; } break; -case 290: -#line 2284 "fe/idl.tao_yy" +case 294: +#line 2355 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_ExceptSeen); } break; -case 291: -#line 2288 "fe/idl.tao_yy" +case 295: +#line 2359 "fe/idl.tao_yy" { UTL_Scope *s = idl_global->scopes()->top_non_null(); UTL_ScopedName *n = new UTL_ScopedName(tao_yyvsp[0].idval, NULL); @@ -3433,40 +3520,40 @@ case 291: idl_global->scopes()->push(e); } break; -case 292: -#line 2312 "fe/idl.tao_yy" +case 296: +#line 2383 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_ExceptSqSeen); } break; -case 293: -#line 2316 "fe/idl.tao_yy" +case 297: +#line 2387 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_ExceptBodySeen); } break; -case 294: -#line 2320 "fe/idl.tao_yy" +case 298: +#line 2391 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_ExceptQsSeen); /* * Done with this exception. Pop its scope from the scope stack */ - AST_Exception *ex = + AST_Exception *ex = AST_Exception::narrow_from_scope (idl_global->scopes ()->top_non_null ()); UTL_StrList *p = ex->pragmas (); idl_global->scopes()->pop(); idl_global->set_pragmas (p); } break; -case 295: -#line 2336 "fe/idl.tao_yy" +case 299: +#line 2407 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_OpTypeSeen); } break; -case 296: -#line 2340 "fe/idl.tao_yy" +case 300: +#line 2411 "fe/idl.tao_yy" { UTL_Scope *s = idl_global->scopes()->top_non_null(); UTL_ScopedName *n = @@ -3496,20 +3583,20 @@ case 296: idl_global->scopes()->push(o); } break; -case 297: -#line 2369 "fe/idl.tao_yy" +case 301: +#line 2440 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_OpParsCompleted); } break; -case 298: -#line 2373 "fe/idl.tao_yy" +case 302: +#line 2444 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_OpRaiseCompleted); } break; -case 299: -#line 2377 "fe/idl.tao_yy" +case 303: +#line 2448 "fe/idl.tao_yy" { UTL_Scope *s = idl_global->scopes()->top_non_null(); AST_Operation *o = NULL; @@ -3532,86 +3619,86 @@ case 299: idl_global->scopes()->pop(); } break; -case 300: -#line 2402 "fe/idl.tao_yy" +case 304: +#line 2473 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_OpAttrSeen); tao_yyval.ofval = AST_Operation::OP_oneway; } break; -case 301: -#line 2407 "fe/idl.tao_yy" +case 305: +#line 2478 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_OpAttrSeen); tao_yyval.ofval = AST_Operation::OP_idempotent; } break; -case 302: -#line 2412 "fe/idl.tao_yy" +case 306: +#line 2483 "fe/idl.tao_yy" { tao_yyval.ofval = AST_Operation::OP_noflags; } break; -case 304: -#line 2420 "fe/idl.tao_yy" +case 308: +#line 2491 "fe/idl.tao_yy" { tao_yyval.dcval = idl_global->scopes()->bottom() ->lookup_primitive_type(AST_Expression::EV_void); } break; -case 305: -#line 2429 "fe/idl.tao_yy" +case 309: +#line 2500 "fe/idl.tao_yy" { cerr << "error in " << idl_global->filename()->get_string() << " line " << idl_global->lineno() << ":\n" ; cerr << "Sorry, I (TAO_IDL) can't handle init yet\n"; } break; -case 306: -#line 2439 "fe/idl.tao_yy" +case 310: +#line 2510 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_OpSqSeen); } break; -case 307: -#line 2443 "fe/idl.tao_yy" +case 311: +#line 2514 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_OpQsSeen); } break; -case 308: -#line 2447 "fe/idl.tao_yy" +case 312: +#line 2518 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_OpSqSeen); } break; -case 309: -#line 2452 "fe/idl.tao_yy" +case 313: +#line 2523 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_OpQsSeen); } break; -case 311: -#line 2462 "fe/idl.tao_yy" +case 315: +#line 2533 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_OpParCommaSeen); } break; -case 314: -#line 2471 "fe/idl.tao_yy" +case 318: +#line 2542 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_OpParDirSeen); } break; -case 315: -#line 2475 "fe/idl.tao_yy" +case 319: +#line 2546 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_OpParTypeSeen); } break; -case 316: -#line 2479 "fe/idl.tao_yy" +case 320: +#line 2550 "fe/idl.tao_yy" { UTL_Scope *s = idl_global->scopes()->top_non_null(); AST_Argument *a = NULL; @@ -3631,14 +3718,14 @@ case 316: } } break; -case 317: -#line 2501 "fe/idl.tao_yy" +case 321: +#line 2572 "fe/idl.tao_yy" { tao_yyval.dcval = idl_global->scopes()->bottom()->lookup_primitive_type(tao_yyvsp[0].etval); } break; -case 320: -#line 2507 "fe/idl.tao_yy" +case 324: +#line 2578 "fe/idl.tao_yy" { UTL_Scope *s = idl_global->scopes()->top_non_null(); AST_Decl *d = NULL; @@ -3650,88 +3737,88 @@ case 320: tao_yyval.dcval = d; } break; -case 321: -#line 2521 "fe/idl.tao_yy" +case 325: +#line 2592 "fe/idl.tao_yy" { tao_yyval.dival = AST_Argument::dir_IN; } break; -case 322: -#line 2525 "fe/idl.tao_yy" +case 326: +#line 2596 "fe/idl.tao_yy" { tao_yyval.dival = AST_Argument::dir_OUT; } break; -case 323: -#line 2529 "fe/idl.tao_yy" +case 327: +#line 2600 "fe/idl.tao_yy" { tao_yyval.dival = AST_Argument::dir_INOUT; } break; -case 324: -#line 2536 "fe/idl.tao_yy" +case 328: +#line 2607 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_OpRaiseSeen); } break; -case 325: -#line 2540 "fe/idl.tao_yy" +case 329: +#line 2611 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_OpRaiseSqSeen); } break; -case 326: -#line 2545 "fe/idl.tao_yy" +case 330: +#line 2616 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_OpRaiseQsSeen); tao_yyval.nlval = tao_yyvsp[-1].nlval; } break; -case 327: -#line 2550 "fe/idl.tao_yy" +case 331: +#line 2621 "fe/idl.tao_yy" { tao_yyval.nlval = NULL; } break; -case 328: -#line 2557 "fe/idl.tao_yy" +case 332: +#line 2628 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_OpContextSeen); } break; -case 329: -#line 2561 "fe/idl.tao_yy" +case 333: +#line 2632 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_OpContextSqSeen); } break; -case 330: -#line 2566 "fe/idl.tao_yy" +case 334: +#line 2637 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_OpContextQsSeen); tao_yyval.slval = tao_yyvsp[-1].slval; } break; -case 331: -#line 2571 "fe/idl.tao_yy" +case 335: +#line 2642 "fe/idl.tao_yy" { tao_yyval.slval = NULL; } break; -case 332: -#line 2578 "fe/idl.tao_yy" +case 336: +#line 2649 "fe/idl.tao_yy" { tao_yyval.slval = new UTL_StrList(tao_yyvsp[-1].sval, tao_yyvsp[0].slval); } break; -case 333: -#line 2586 "fe/idl.tao_yy" +case 337: +#line 2657 "fe/idl.tao_yy" { idl_global->set_parse_state(IDL_GlobalData::PS_OpContextCommaSeen); } break; -case 334: -#line 2590 "fe/idl.tao_yy" +case 338: +#line 2661 "fe/idl.tao_yy" { if (tao_yyvsp[-3].slval == NULL) tao_yyval.slval = new UTL_StrList(tao_yyvsp[0].sval, NULL); @@ -3741,13 +3828,13 @@ case 334: } } break; -case 335: -#line 2599 "fe/idl.tao_yy" +case 339: +#line 2670 "fe/idl.tao_yy" { tao_yyval.slval = NULL; } break; -#line 3750 "y.tab.cpp" +#line 3837 "y.tab.cpp" } tao_yyssp -= tao_yym; tao_yystate = *tao_yyssp; diff --git a/TAO/TAO_IDL/fe/y.tab.h b/TAO/TAO_IDL/fe/y.tab.h index e60f5d13d89..75392deda13 100644 --- a/TAO/TAO_IDL/fe/y.tab.h +++ b/TAO/TAO_IDL/fe/y.tab.h @@ -36,26 +36,27 @@ #define IDL_RAISES 291 #define IDL_CONTEXT 292 #define IDL_NATIVE 293 -#define IDL_ABSTRACT 294 -#define IDL_CUSTOM 295 -#define IDL_INIT 296 -#define IDL_PRIVATE 297 -#define IDL_PUBLIC 298 -#define IDL_SUPPORTS 299 -#define IDL_TRUNCATABLE 300 -#define IDL_VALUETYPE 301 -#define IDL_INTEGER_LITERAL 302 -#define IDL_UINTEGER_LITERAL 303 -#define IDL_STRING_LITERAL 304 -#define IDL_CHARACTER_LITERAL 305 -#define IDL_FLOATING_PT_LITERAL 306 -#define IDL_TRUETOK 307 -#define IDL_FALSETOK 308 -#define IDL_SCOPE_DELIMITOR 309 -#define IDL_LEFT_SHIFT 310 -#define IDL_RIGHT_SHIFT 311 -#define IDL_WCHAR_LITERAL 312 -#define IDL_WSTRING_LITERAL 313 +#define IDL_LOCAL 294 +#define IDL_ABSTRACT 295 +#define IDL_CUSTOM 296 +#define IDL_INIT 297 +#define IDL_PRIVATE 298 +#define IDL_PUBLIC 299 +#define IDL_SUPPORTS 300 +#define IDL_TRUNCATABLE 301 +#define IDL_VALUETYPE 302 +#define IDL_INTEGER_LITERAL 303 +#define IDL_UINTEGER_LITERAL 304 +#define IDL_STRING_LITERAL 305 +#define IDL_CHARACTER_LITERAL 306 +#define IDL_FLOATING_PT_LITERAL 307 +#define IDL_TRUETOK 308 +#define IDL_FALSETOK 309 +#define IDL_SCOPE_DELIMITOR 310 +#define IDL_LEFT_SHIFT 311 +#define IDL_RIGHT_SHIFT 312 +#define IDL_WCHAR_LITERAL 313 +#define IDL_WSTRING_LITERAL 314 typedef union { AST_Decl *dcval; /* Decl value */ UTL_StrList *slval; /* String list */ diff --git a/TAO/TAO_IDL/include/ast_generator.h b/TAO/TAO_IDL/include/ast_generator.h index b6d2755ea76..e5fc838c511 100644 --- a/TAO/TAO_IDL/include/ast_generator.h +++ b/TAO/TAO_IDL/include/ast_generator.h @@ -110,11 +110,15 @@ public: long nih, AST_Interface **ih_flat, long nih_flat, - UTL_StrList *p); + 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); + UTL_StrList *p, + idl_bool local, + idl_bool abstract); // Create a node representing an valuetype virtual AST_Interface *create_valuetype(UTL_ScopedName *n, diff --git a/TAO/TAO_IDL/include/ast_interface.h b/TAO/TAO_IDL/include/ast_interface.h index 042aeaea2f9..1e86232b138 100644 --- a/TAO/TAO_IDL/include/ast_interface.h +++ b/TAO/TAO_IDL/include/ast_interface.h @@ -104,10 +104,10 @@ public: // Data Accessors static void fwd_redefinition_helper (AST_Interface *&i, - UTL_Scope *s, + UTL_Scope *s, UTL_StrList *p); - virtual void redefine (AST_Interface *from, + virtual void redefine (AST_Interface *from, UTL_StrList *p); AST_Interface **inherits (void); @@ -133,6 +133,7 @@ public: } virtual idl_bool is_abstract_interface (void); + virtual idl_bool is_local_interface (void); virtual idl_bool is_valuetype (void); virtual idl_bool is_abstract_valuetype (void); virtual void set_abstract_valuetype (void); diff --git a/TAO/TAO_IDL/include/ast_interface_fwd.h b/TAO/TAO_IDL/include/ast_interface_fwd.h index fb78aefbd6e..ade8a2b4259 100644 --- a/TAO/TAO_IDL/include/ast_interface_fwd.h +++ b/TAO/TAO_IDL/include/ast_interface_fwd.h @@ -83,8 +83,8 @@ public: // Constructor(s) AST_InterfaceFwd (); - AST_InterfaceFwd (AST_Interface *dummy, - UTL_ScopedName *n, + AST_InterfaceFwd (AST_Interface *dummy, + UTL_ScopedName *n, UTL_StrList *p); virtual ~AST_InterfaceFwd (void); @@ -94,6 +94,7 @@ public: void set_full_definition(AST_Interface *nfd); virtual idl_bool is_abstract_interface (); + virtual idl_bool is_local_interface (); virtual idl_bool is_valuetype (); virtual idl_bool is_abstract_valuetype (); virtual void set_abstract_valuetype (); diff --git a/TAO/TAO_IDL/include/fe_interface_header.h b/TAO/TAO_IDL/include/fe_interface_header.h index 73fe02fbf9b..7cdef57a3a2 100644 --- a/TAO/TAO_IDL/include/fe_interface_header.h +++ b/TAO/TAO_IDL/include/fe_interface_header.h @@ -88,7 +88,7 @@ public: // Operations // Constructor(s) - FE_InterfaceHeader (UTL_ScopedName *n, + FE_InterfaceHeader (UTL_ScopedName *n, UTL_NameList *l, UTL_NameList *supports = 0, idl_bool compile_now = 1); @@ -102,6 +102,12 @@ public: AST_Interface **inherits_flat (void); long n_inherits_flat (void); + virtual idl_bool is_local (void); + // See if we are a local interface. + + virtual idl_bool is_abstract (void); + // See if we are an abstract interface. + // Data protected: UTL_ScopedName *pd_interface_name; // Interface name @@ -131,7 +137,29 @@ private: }; -class FE_obv_header; +class FE_Local_InterfaceHeader : public FE_InterfaceHeader +{ +public: + FE_Local_InterfaceHeader (UTL_ScopedName *n, + UTL_NameList *l, + UTL_NameList *supports = 0, + idl_bool compile_now = 1); + + virtual idl_bool is_local (void); + // See if we are a local interface. +}; + +class FE_Abstract_InterfaceHeader : public FE_InterfaceHeader +{ +public: + FE_Abstract_InterfaceHeader (UTL_ScopedName *n, + UTL_NameList *l, + UTL_NameList *supports = 0, + idl_bool compile_now = 1); + + virtual idl_bool is_abstract (void); + // See if we are a local interface. +}; // #ifdef IDL_HAS_VALUETYPE |