libIDL is a library licensed under the GNU LGPL for creating trees of
CORBA Interface Definition Language (IDL) files, which is a
specification for defining portable interfaces.  libIDL was initially
written for ORBit (the ORB from the GNOME project, and the primary
means of libIDL distribution).  However, the functionality was
designed to be as reusable and portable as possible.

It is written in C, and the aim is to retain the ability to compile it
on a system with a standard C compiler.  Preprocessed parser files are
included so you are not forced to rebuild the parser, however an
effort is made to keep the parser and lexer compatible with standard
Unix yacc.  Currently, flex is required to generate the lexical
scanner.

With libIDL, you can parse an IDL file which will be automatically run
through the C preprocessor (on systems with one available), and have
detailed error and warning messages displayed.  On a compilation
without errors, the tree is returned to the custom application.
libIDL performs compilation phases from lexical analysis to nearly
full semantic analysis with some optimizations, and will attempt to
generate meaningful errors and warnings for invalid or deprecated IDL.

Homepage:
https://www.gnome.org/
