summaryrefslogtreecommitdiff
path: root/TAO/TAO_IDL/fe/idl.yy
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/TAO_IDL/fe/idl.yy')
-rw-r--r--TAO/TAO_IDL/fe/idl.yy23
1 files changed, 19 insertions, 4 deletions
diff --git a/TAO/TAO_IDL/fe/idl.yy b/TAO/TAO_IDL/fe/idl.yy
index 900d662f963..f55c9ecfe1b 100644
--- a/TAO/TAO_IDL/fe/idl.yy
+++ b/TAO/TAO_IDL/fe/idl.yy
@@ -708,7 +708,8 @@ value_concrete_decl :
$1->n_supports (),
$1->supports_concrete (),
I_FALSE,
- $1->truncatable ()
+ $1->truncatable (),
+ I_FALSE
);
i = AST_Interface::narrow_from_decl (v);
AST_Interface::fwd_redefinition_helper (i,
@@ -770,6 +771,7 @@ value_abs_decl :
$2->n_supports (),
$2->supports_concrete (),
I_TRUE,
+ I_FALSE,
I_FALSE
);
i = AST_Interface::narrow_from_decl (v);
@@ -3675,9 +3677,20 @@ init_decl
init_parameter_list
{
// init_parameter_list
- /* TODO: replace parameter_list with rule that accepts only IN args */
-
idl_global->set_parse_state (IDL_GlobalData::PS_OpParsCompleted);
+ }
+ opt_raises
+ {
+// opt_raises
+ idl_global->set_parse_state (IDL_GlobalData::PS_OpRaiseCompleted);
+
+ if ($7 != 0)
+ {
+ UTL_Scope *s = idl_global->scopes ().top_non_null ();
+ AST_Factory *f = AST_Factory::narrow_from_scope (s);
+ (void) f->fe_add_exceptions ($7);
+ }
+
idl_global->scopes ().pop ();
}
;
@@ -4965,6 +4978,7 @@ event_abs_decl :
$2->n_supports (),
$2->supports_concrete (),
I_TRUE,
+ I_FALSE,
I_FALSE
);
i = AST_Interface::narrow_from_decl (e);
@@ -5090,7 +5104,8 @@ event_decl :
$2->n_supports (),
$2->supports_concrete (),
I_FALSE,
- $2->truncatable ()
+ $2->truncatable (),
+ I_FALSE
);
i = AST_Interface::narrow_from_decl (e);
AST_Interface::fwd_redefinition_helper (i,