[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Is IDL case un-sensitive ?

Hi all,
I am currently playing with xmlBlaster by testing a client in c++ and other CORBA implementations than MICO. I tested ORBACUS 4.0b2 and ran into an error when running the IDL to c++ compiler. I got a clashing error on "MessageUnit messageUnit" and MessageUnitArr with messageUnitArr. I looked into ORBACUS mailing list and saw they had discussed that earlier, and a short exert from their list:

...The OB4 IDL translator is correct, the IDL is illegal. "Switch" clashes with the keyword "switch", and the type "InterfaceType" with the declarator "interfaceType". Case does not matter, IDL is case-insensitive when detecting name clashes...

I talked with Marcel who forwarded it to jacORB. They answered

Today, Marcel Ruff wrote in an email addressed to 'JacORB':
> is the IDL usually case insensitiv or not?

IDL is a mixed bag, it is both case sensitive and case insensitive. This
was done to allow simple mappings to both kinds of programing languages,
those that are and those that are not case sensitive.

The first rule is that in a given scope an identifier must always be
spelled in exactly the same way including case. This is the case sensitive
aspect of IDL.

The second rule is that it is illegal for two identifiers in the same
scope to differ only in case. This is the case insensitive aspect of
IDL: For the purpose of detecting name clashes case does not matter.

>    doSomething(MyStruct myStruct)
> is this allowed?

No, this is illegal.

> JacORB and MICO take it without problems,
> Orbacus claims this is wrong:
> Who is right?

Orbacus is right.


joachim at kraut.bc.ca   (http://www.kraut.bc.ca)
joachim at mercury.bc.ca (http://www.mercury.bc.ca)

This means that the messageUnit and messageUnitArr are not legal names in IDL and even jacORB and MICO who are erroneously accepting them today might complain tomorrow.


Michele Laghi
Av. Benavides 163 dpto. 301
tel. +51 1 4463956
e-mail: michele.laghi at attglobal.net