![]() |
![]() |
|
|
Enhancements to the Language
The following are enhancements to the X/OPEN RPC specification. In most cases, the language has been enhanced to more closely follow the C language, simplifying the porting of existing interfaces (converting from ANSI C to IDL prototypes).
|| && ? | & _ == != = << >> <= >= < > + - % ! ~
This means that white space need not follow or precede identifiers or numbers if preceded or followed by one of these tokens. (The IDL specification requires white space, as in 'a = b + 3', instead of allowing 'a=b+3'.) This also seems to be the behavior of the OSF DCE IDL compiler.
nor does it allow for structure or union returns. While this could be considered correct (everything could be hidden in a defined type), the DCE IDL compiler and, of course, C compiler allow a much richer operation return. The supported grammar will be the following. where <declarator> must contain a <function_declarator>. (If a <function_declarator> does not exist, then a variable is declared, which results in an error.) Declaring an array of operations or an operation returning an array (both allowed by this grammar) will be detected and flagged as an error.long *op(void);
[operation_attributes] <type_spec> <declarator>
Enhancements that May Limit Portability
There are four additional BEA Tuxedo enhancements to the X/OPEN RPC specification that, while making the specification more C-like, are not supported in the OSF DCE IDL compiler and thus have the effect of limiting portability of the IDL file:
const char *str = "abc" "def";
is treated the same as
const char *str = "abcdef";
const char *str = "abc\
def";
is treated the same as
const char *str = "abcdef";
![]() |
![]() |
![]() |
|
Copyright © 2000 BEA Systems, Inc. All rights reserved.
|