On 1/6/17 4:34 PM, LRN wrote:
> On 06.01.2017 13:12, LRN wrote:
>> Managed to compile and use cecil, wrote a C# program that churns the data
>> produced given by cecil and outputs IDL files. Worked on it until the IDL
>> files
>> it produced started to look legit.
>>
>> Then i fed an IDL file to a fresh (from mingw-w64-tools git) widl, and
>> discovered that widl won't accept it. Fed an IDL file from mingw-w64-headers
>> git to the same widl, and discovered that widl does not accept that one
>> either.
>>
>> What am i doing wrong?
>> The error (for mingw-w64-headers/windows.foundation.idl) is:
>>
>> Windows.Foundation.idl:14: error: syntax error, unexpected aIDENTIFIER,
>> expecting $end
>>
> Poked widl a bit. It seems to be that the parser is broken, as it always bails
> on any mention of "namespace {...}". Yacc source files do contain mentions of
> namespaces, so obviously the parser used to support them somehow.
>
It may be worth trying plain Wine version of widl. I implemented some of
winrt features there, including partial support for namespaces. Sadly,
I'm sure that any complex IDL will hit its limitations. It's at least
good enough to properly handle simple IDLs like [1].
mingw-w64 versions have some changes that were never upstreamed to Wine,
so merging that work may be tricky. We may worry about that once Wine
implementation is more useful.
Jacek
[1]
http://source.winehq.org/git/wine.git/blob/HEAD:/include/windows.foundation.idl
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________
Mingw-w64-public mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public