Hi Victor,

the same as your previous patch. This one also assumes something which 
is not in spec. Please see following snipped from the "OMG IDL Syntax 
and Semantics 3" -- definitions which applies to both your cases.
You see that in both cases, your value shall inherit from <value_name> 
which is just <scoped_name> and that your value may support one or more 
<interface_name> which is also <scoped_name>.

(11) <interface_name> ::= <scoped_name>
(12) <scoped_name> ::= <identifier>
     | “::” <identifier>
     | <scoped_name> “::” <identifier>
(13) <value> ::= ( <value_dcl> | <value_abs_dcl> |
                    <value_box_dcl> | <value_forward_dcl>)
(14) <value_forward_dcl> ::= [ “abstract” ] “valuetype” <identifier>
(15) <value_box_dcl> ::= “valuetype” <identifier> <type_spec>
(16) <value_abs_dcl> ::= “abstract” “valuetype” <identifier>
                         [ <value_inheritance_spec> ]
                         “{“ <export>* “}”
(17) <value_dcl> ::= <value_header> “{“ < value_element>* “}”
(18) <value_header> ::= [“custom” ] “valuetype” <identifier>
                         [ <value_inheritance_spec> ]
(19)<value_inheritance_spec> ::= [ “:” [ “truncatable” ] <value_name>
                                  { “,” <value_name> }* ]
                                  [ “supports” <interface_name>
                                  { “,” <interface_name> }* ]
(20) <value_name> ::= <scoped_name>


So following this grammar, your myidl2.idl from previous email should be:

#include <myidl.idl>

module scope1 {
module scope3 {
valuetype MyValueType supports scope1::scope2::MyAbstractInterface {
     public boolean value;
};
};
};

and valuetype_basevalue.idl attached to this email should be fixed in 
the same way, i.e.

module scope1 {
module scope2 {
abstract interface MyAbstractInterface {
     string getName();
};
valuetype MyValueType supports MyAbstractInterface {
     public boolean value;
};
};

module scope3 {
valuetype MyExtendedValueType : scope1::scope2::MyValueType {
     public boolean valid;
};
};
};

Anyway, I agree with you that IDL compiler should not segfault, but 
rather emit nice and clear error message in case non-valid IDL. Patch 
for this would be highly appreciated.

Thanks!
Karel

On 06/ 8/11 06:18 PM, Victor Fusco wrote:
> Hi,
>
> On Sunday 05 June 2011 17:51:32 Victor Fusco wrote:
>> I am receiving a segfault when trying to generate code for a
>> valuetype. I think it has something to do with the valuetype
>> supporting an interface that is an alias.
>
> I hit another case of the valuetype alias problem, but this time I got
> an error instead of a segmentation fault. It happens when a valuetype
> extends a valuetype that is an alias.
>
> I've attached the new testcase and a patch that fixes the problem.
>
> Thanks,
>
> Victor Fusco
>
>
>
> "The future is here. It's just not widely distributed yet."
>    William Gibson
>
>
>
> ------------------------------------------------------------------------------
> EditLive Enterprise is the world's most technically advanced content
> authoring tool. Experience the power of Track Changes, Inline Image
> Editing and ensure content is compliant with Accessibility Checking.
> http://p.sf.net/sfu/ephox-dev2dev
>
>
>
> _______________________________________________
> Mico-devel mailing list
> Mico-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/mico-devel


-- 
Karel Gardas                  kgar...@objectsecurity.com
ObjectSecurity Ltd.           http://www.objectsecurity.com

------------------------------------------------------------------------------
EditLive Enterprise is the world's most technically advanced content
authoring tool. Experience the power of Track Changes, Inline Image
Editing and ensure content is compliant with Accessibility Checking.
http://p.sf.net/sfu/ephox-dev2dev
_______________________________________________
Mico-devel mailing list
Mico-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mico-devel

Reply via email to