summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorparsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2009-11-03 17:41:04 +0000
committerparsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2009-11-03 17:41:04 +0000
commit7499af4fb1f326983579905836f1b824f2ab4876 (patch)
tree0fbcfaaee94213bd5a33e6b8b9914a5d787dca52
parent792f7773e5bfa8eefd6b1ae88ab9c41b5c657b0f (diff)
downloadATCD-7499af4fb1f326983579905836f1b824f2ab4876.tar.gz
ChangeLogTag: Tue Nov 3 17:32:03 UTC 2009 Jeff Parsons <j.parsons@vanderbilt.edu>
-rw-r--r--TAO/ChangeLog15
-rw-r--r--TAO/TAO_IDL/fe/fe_init.cpp5
-rw-r--r--TAO/TAO_IDL/fe/idl.yy21
-rw-r--r--TAO/TAO_IDL/fe/y.tab.cpp19
4 files changed, 59 insertions, 1 deletions
diff --git a/TAO/ChangeLog b/TAO/ChangeLog
index 7f1b6869753..e307ef39c0c 100644
--- a/TAO/ChangeLog
+++ b/TAO/ChangeLog
@@ -1,3 +1,18 @@
+Tue Nov 3 17:32:03 UTC 2009 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * TAO_IDL/fe/fe_init.cpp:
+
+ Added IDL3+ keywords to the list used to check for clashes
+ and leading underscore retention.
+
+ * TAO_IDL/fe/y.tab.cpp:
+ * TAO_IDL/fe/idl.yy:
+
+ Added creation of uses multiple-specific struct and sequence
+ nodes in the AST when the uses multiple port
+ appears in an extended port declaration, identically to what
+ is now added for a standalone uses multiple port.
+
Mon Nov 2 22:59:48 UTC 2009 Yan Dai <dai_y@ociweb.com>
* orbsvcs/orbsvcs/Notify/MonitorControl/MonitorManager.h:
diff --git a/TAO/TAO_IDL/fe/fe_init.cpp b/TAO/TAO_IDL/fe/fe_init.cpp
index fd4ae113027..11d2e1c0a3f 100644
--- a/TAO/TAO_IDL/fe/fe_init.cpp
+++ b/TAO/TAO_IDL/fe/fe_init.cpp
@@ -523,12 +523,14 @@ fe_populate_idl_keywords (void)
static const char *keywords[] =
{
"ABSTRACT",
+ "ALIAS",
"ANY",
"ATTRIBUTE",
"BOOLEAN",
"CASE",
"CHAR",
"COMPONENT",
+ "CONNECTOR",
"CONST",
"CONSUMES",
"CONTEXT",
@@ -552,6 +554,7 @@ fe_populate_idl_keywords (void)
"INTERFACE",
"LOCAL",
"LONG",
+ "MIRRORPORT",
"MODULE",
"MULTIPLE",
"NATIVE",
@@ -559,6 +562,8 @@ fe_populate_idl_keywords (void)
"OCTET",
"ONEWAY",
"OUT",
+ "PORT",
+ "PORTTYPE",
"PRIMARYKEY",
"PRIVATE",
"PROVIDES",
diff --git a/TAO/TAO_IDL/fe/idl.yy b/TAO/TAO_IDL/fe/idl.yy
index 84b856e2709..c6f037d0bcc 100644
--- a/TAO/TAO_IDL/fe/idl.yy
+++ b/TAO/TAO_IDL/fe/idl.yy
@@ -6377,7 +6377,7 @@ extended_port_decl
template_port_decl
: IDL_PORT template_inst IDENTIFIER
{
-// extended_port_decl : IDL_PORT template_inst IDENTIFIER
+// template_port_decl : IDL_PORT template_inst IDENTIFIER
idl_global->set_parse_state (IDL_GlobalData::PS_ExtendedPortDeclSeen);
UTL_Scope *s = idl_global->scopes ().top_non_null ();
AST_Decl *d = s->lookup_by_name ($2->name_, true);
@@ -6548,6 +6548,25 @@ non_template_port_decl
0);
(void) s->fe_add_extended_port (ep);
+
+ // Create (in the AST) the struct(s) and sequence(s)
+ // needed for multiplex uses ports, if any.
+ for (UTL_ScopeActiveIterator i (pt, UTL_Scope::IK_decls);
+ !i.is_done ();
+ i.next ())
+ {
+ d = i.item ();
+
+ AST_Uses *u = AST_Uses::narrow_from_decl (d);
+
+ if (u != 0 && u->is_multiple ())
+ {
+ AST_Component *c =
+ AST_Component::narrow_from_scope (s);
+
+ idl_global->create_uses_multiple_stuff (c, u);
+ }
+ }
}
$2->destroy ();
diff --git a/TAO/TAO_IDL/fe/y.tab.cpp b/TAO/TAO_IDL/fe/y.tab.cpp
index bf84b3e81c6..b9517ccbc08 100644
--- a/TAO/TAO_IDL/fe/y.tab.cpp
+++ b/TAO/TAO_IDL/fe/y.tab.cpp
@@ -9453,6 +9453,25 @@ tao_yyreduce:
0);
(void) s->fe_add_extended_port (ep);
+
+ // Create (in the AST) the struct(s) and sequence(s)
+ // needed for multiplex uses ports, if any.
+ for (UTL_ScopeActiveIterator i (pt, UTL_Scope::IK_decls);
+ !i.is_done ();
+ i.next ())
+ {
+ d = i.item ();
+
+ AST_Uses *u = AST_Uses::narrow_from_decl (d);
+
+ if (u != 0 && u->is_multiple ())
+ {
+ AST_Component *c =
+ AST_Component::narrow_from_scope (s);
+
+ idl_global->create_uses_multiple_stuff (c, u);
+ }
+ }
}
(tao_yyvsp[(2) - (3)].idlist)->destroy ();