summaryrefslogtreecommitdiff
path: root/TAO/TAO_IDL/include/ast_expression.h
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/TAO_IDL/include/ast_expression.h')
-rw-r--r--TAO/TAO_IDL/include/ast_expression.h13
1 files changed, 12 insertions, 1 deletions
diff --git a/TAO/TAO_IDL/include/ast_expression.h b/TAO/TAO_IDL/include/ast_expression.h
index d729cba1188..e208c13237a 100644
--- a/TAO/TAO_IDL/include/ast_expression.h
+++ b/TAO/TAO_IDL/include/ast_expression.h
@@ -136,7 +136,18 @@ public:
, EV_bool // Expression value is boolean.
, EV_string // Expression value is char *.
, EV_wstring // Expression value is wide string.
- , EV_any // Expression value is any of above.
+ , EV_enum // Expression value is from an enum.
+
+ // CORBA::Any and CORBA::Object are constructed in the parser first as
+ // expression values, then looked up by name to get the
+ // AST_PredefinedType entry. This is so the grammar non-terminals
+ // integer_type, float_type, bool_type, etc. can also be expression
+ // values in order to serve double duty -- as productions of const_type
+ // and also (along with object_type) as productions of base_type_spec,
+ // as found in the OMG IDL grammar specification.
+ , EV_any // Used for CORBA::Any operation parameters
+ , EV_object // Used for CORBA::Object parameters
+
, EV_void // Expression value is void (absent).
, EV_none // Expression value is missing.
};