Introduction ~~~~~~~~~~~~ libIDL is a small library for creating parse trees of CORBA v2.2 compliant Interface Definition Language (IDL) files, which is a specification for defining portable interfaces. See the file NEWS for the most recent changes, which may require code updates. What it Does ~~~~~~~~~~~~~ By calling IDL_parse_filename, libIDL performs compilation phases from lexical analysis to nearly full semantic analysis and some optimization, and will attempt to generate meaningful errors and warnings for invalid or deprecated features, which can be redirected using callbacks. libIDL supports some extensions to standard IDL, including declarations spec tags which can assign attributions to certain IDL constructs. Emacs Syntax Highlighting for IDL Code ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ If you are using Emacs 20.x and do not have decent syntax highlighting in your IDL mode, you can use the following Emacs lisp to add IDL-specific highlighting using font-lock mode: (font-lock-add-keywords 'idl-mode `(("^#[ ]*error[ ]+\\(.+\\)" 1 'font-lock-warning-face prepend) ("^#[ ]*\\(include\\)[ ]+\\(<[^>\"\n]*>?\\)" 2 'font-lock-string-face) ("^#[ ]*define[ ]+\\(\\sw+\\)(" 1 'font-lock-function-name-face) ("^#[ ]*\\(elif\\|if\\)\\>" ("\\<\\(defined\\)\\>[ ]*(?\\(\\sw+\\)?" nil nil (1 'font-lock-reference-face) (2 'font-lock-variable-name-face nil t))) ("\\(__declspec\\)[ ]*(\\([^)]+\\))" (1 'font-lock-reference-face) (2 'font-lock-variable-name-face)) ("^#[ ]*\\(\\sw+\\)\\>[ ]*\\(\\sw+\\)?" (1 'font-lock-reference-face) (2 'font-lock-variable-name-face nil t)) ("\\<\\(raises\\)\\>" 1 'font-lock-keyword-face) ("[ ]*\\([A-Za-z][A-Za-z0-9_]*\\)[ ]*(" 1 'font-lock-function-name-face) ("\\<\\(any\\|boolean\\|char\\|const\\|double\\|enum\\|fixed\\|float\\|interface\\|long\\|module\\|native\\|octet\\|Object\\|sequence\\|short\\|string\\|struct\\|unsigned\\|union\\|void\\|wchar\\|wstring\\)\\>" 1 'font-lock-type-face) ("\\<\\(attribute\\|case\\|context\\|default\\|exception\\|FALSE\\|in\\|inout\\|oneway\\|out\\|readonly\\|switch\\|TRUE\\|typedef\\)\\>" 1 'font-lock-keyword-face)) 'set) (add-hook 'idl-mode-hook '(lambda () (font-lock-mode 1)))