|
Name |
|
Date |
Size |
#Lines |
LOC |
| .. | | 03-May-2022 | - |
| include/ | H | 03-May-2022 | - | 2,833 | 2,382 |
| AUTHORS | H A D | 31-Aug-2009 | 266 | 9 | 6 |
| BUGS | H A D | 18-Apr-2009 | 243 | 6 | 4 |
| COPYING | H A D | 18-Apr-2009 | 24.7 KiB | 482 | 399 |
| ChangeLog | H A D | 30-Mar-2010 | 140.4 KiB | 6,385 | 4,330 |
| HACKING | H A D | 18-Apr-2009 | 499 | 18 | 11 |
| INSTALL | H A D | 23-Apr-2009 | 9.3 KiB | 238 | 179 |
| MAINTAINERS | H A D | 18-Apr-2009 | 271 | 15 | 10 |
| Makefile.am | H A D | 30-Mar-2010 | 1.7 KiB | 69 | 46 |
| Makefile.in | H A D | 03-May-2022 | 47.3 KiB | 1,294 | 1,168 |
| Makefile.msc | H A D | 30-Mar-2010 | 2.1 KiB | 74 | 44 |
| Makefile.msc.in | H A D | 30-Mar-2010 | 2.1 KiB | 74 | 57 |
| NEWS | H A D | 30-Mar-2010 | 7.1 KiB | 241 | 155 |
| README | H A D | 18-Apr-2009 | 3.7 KiB | 76 | 64 |
| README.win32 | H A D | 18-Apr-2009 | 1.9 KiB | 45 | 36 |
| acinclude.m4 | H A D | 30-Mar-2010 | 895 | 40 | 37 |
| aclocal.m4 | H A D | 30-Mar-2010 | 317 KiB | 9,143 | 8,191 |
| config.guess | H A D | 30-Mar-2010 | 45.2 KiB | 1,562 | 1,344 |
| config.sub | H A D | 30-Mar-2010 | 33.2 KiB | 1,687 | 1,542 |
| configure | H A D | 30-Mar-2010 | 470.3 KiB | 16,595 | 13,284 |
| configure.in | H A D | 30-Mar-2010 | 4.5 KiB | 181 | 155 |
| depcomp | H A D | 30-Mar-2010 | 18.2 KiB | 631 | 407 |
| install-sh | H A D | 30-Mar-2010 | 13.3 KiB | 521 | 344 |
| lexer.l | H A D | 18-Apr-2009 | 10.8 KiB | 465 | 373 |
| libIDL-2.0-uninstalled.pc.in | H A D | 18-Apr-2009 | 275 | 13 | 10 |
| libIDL-2.0.pc.in | H A D | 18-Apr-2009 | 236 | 13 | 10 |
| libIDL-config-2.in | H A D | 18-Apr-2009 | 1.9 KiB | 108 | 92 |
| libIDL-zip.in | H A D | 18-Apr-2009 | 389 | 25 | 16 |
| libIDL.def | H A D | 18-Apr-2009 | 2.1 KiB | 103 | 102 |
| libIDL.m4.in | H A D | 18-Apr-2009 | 8.2 KiB | 191 | 182 |
| libIDL.spec.in | H A D | 18-Apr-2009 | 2 KiB | 84 | 69 |
| libIDL2.texi | H A D | 18-Apr-2009 | 10.2 KiB | 360 | 277 |
| ltmain.sh | H A D | 30-Mar-2010 | 237.6 KiB | 8,407 | 6,475 |
| missing | H A D | 30-Mar-2010 | 11.2 KiB | 377 | 281 |
| ns.c | H A D | 18-Apr-2009 | 14.2 KiB | 562 | 391 |
| parser.y | H A D | 18-Apr-2009 | 49.6 KiB | 2,167 | 1,805 |
| rename.h | H A D | 18-Apr-2009 | 1.4 KiB | 51 | 48 |
| texinfo.tex | H A D | 30-Mar-2010 | 288.2 KiB | 9,292 | 8,559 |
| tstidl.c | H A D | 18-Apr-2009 | 6.5 KiB | 267 | 197 |
| util.c | H A D | 18-Apr-2009 | 86.9 KiB | 3,684 | 2,935 |
| util.h | H A D | 18-Apr-2009 | 4 KiB | 115 | 79 |
README
1 libIDL README
2 ~~~~~~~~~~~~~
3
4Introduction
5~~~~~~~~~~~~
6
7libIDL is a library licensed under the GNU LGPL for creating trees of
8CORBA Interface Definition Language (IDL) files, which is a
9specification for defining portable interfaces. libIDL was initially
10written for ORBit (the ORB from the GNOME project, and the primary
11means of libIDL distribution). However, the functionality was
12designed to be as reusable and portable as possible.
13
14It is written in C, and the aim is to retain the ability to compile it
15on a system with a standard C compiler. Preprocessed parser files are
16included so you are not forced to rebuild the parser, however an
17effort is made to keep the parser and lexer compatible with standard
18Unix yacc. Currently, flex is required to generate the lexical
19scanner.
20
21With libIDL, you can parse an IDL file which will be automatically run
22through the C preprocessor (on systems with one available), and have
23detailed error and warning messages displayed. On a compilation
24without errors, the tree is returned to the custom application.
25libIDL performs compilation phases from lexical analysis to nearly
26full semantic analysis with some optimizations, and will attempt to
27generate meaningful errors and warnings for invalid or deprecated IDL.
28
29libIDL exports functionality used to generate detailed conforming
30error and warning messages in gcc-like format, and also comes with a
31default backend to generate IDL into a file or string (useful for
32customized messages or comments in the output). The IDL backend is
33complete enough that most generated IDL can be reparsed by libIDL
34without errors. libIDL returns separate syntax and namespace trees,
35and includes functionality to hide syntactical information from the
36primary tree, while keeping it accessible through the namespace for
37type information and name lookup.
38
39Optional extensions to standard IDL can be enabled using parse flags.
40These include node properties, embedded code fragments, and XPIDL.
41Nodes can also have declarations tags which assign particular
42attributions to certain IDL constructs to further facilitate custom
43applications.
44
45If you are upgrading to a new version, please see the NEWS file for
46any changes which may affect code.
47
48
49Emacs Syntax Highlighting for IDL Code
50~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
51
52If you are using Emacs 20.x and do not have decent syntax highlighting
53in your IDL mode, you can use the following Emacs lisp to add
54IDL-specific highlighting using font-lock mode:
55
56(font-lock-add-keywords
57 'idl-mode
58 `(("^#[ ]*error[ ]+\\(.+\\)" 1 'font-lock-warning-face prepend)
59 ("^#[ ]*\\(include\\)[ ]+\\(<[^>\"\n]*>?\\)" 2 'font-lock-string-face)
60 ("^#[ ]*define[ ]+\\(\\sw+\\)(" 1 'font-lock-function-name-face)
61 ("^#[ ]*\\(elif\\|if\\)\\>"
62 ("\\<\\(defined\\)\\>[ ]*(?\\(\\sw+\\)?" nil nil
63 (1 'font-lock-reference-face)
64 (2 'font-lock-variable-name-face nil t)))
65 ("\\(__declspec\\)[ ]*(\\([^)]+\\))"
66 (1 'font-lock-reference-face)
67 (2 'font-lock-variable-name-face))
68 ("^#[ ]*\\(\\sw+\\)\\>[ ]*\\(\\sw+\\)?"
69 (1 'font-lock-reference-face)
70 (2 'font-lock-variable-name-face nil t))
71 ("\\<\\(raises\\)\\>" 1 'font-lock-keyword-face)
72 ("[ ]*\\([A-Za-z][A-Za-z0-9_]*\\)[ ]*(" 1 'font-lock-function-name-face)
73 ("\\<\\(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)
74 ("\\<\\(attribute\\|case\\|context\\|default\\|exception\\|FALSE\\|in\\|inout\\|oneway\\|out\\|readonly\\|switch\\|TRUE\\|typedef\\)\\>" 1 'font-lock-keyword-face)) 'set)
75(add-hook 'idl-mode-hook '(lambda () (font-lock-mode 1)))
76
README.win32
1Using libIDL for Win32
2~~~~~~~~~~~~~~~~~~~~~~
3
4Win32 libIDL support is mostly here, but currently requires the use of
5IDL_parse_filename_with_input, since there is no C preprocessor
6generally available under Windows. To compile this, you will also need
7to obtain GLib and pkg-config for Windows, which you should be able to
8obtain from http://www.gtk.org/download-windows.html
9
10Building
11~~~~~~~~
12
13You can build either with the GNU toolchain (mingw) or one of
14Microsoft's compiler (any recent version should work). With mingw you
15use the normal configure script and make. pkg-config is used in the
16normal way to find out the compiler command-line options.
17
18With Microsoft's compiler you run nmake -f Makefile.msc. Also the
19Makefile.msc uses pkg-config to find out the compiler flags. The
20commands to use pkg-config output in the Makefile.msc are somewhat
21convoluted, but nothing simpler seems to work, given the lack of
22backticks in cmd.exe or something similar in nmake. If you use an
23older Microsoft compiler you will have to edit out the
24manifest-related commands from Makefile.msc.
25
26When built with gcc libIDL will also use gcc as a preprocessor (it
27will run "gcc -E -P"), and when built with Microsoft's compiler it
28will correspondingly use the Microsoft compiler as preprocessort (it
29will run "cl -EP"). Thus users of libIDL, especially users of the
30ORBit2 IDL compiler orbit-idl-2, need to make sure that they have the
31necessary folders in PATH so that gcc or cl are found when orbit-idl-2
32is run.
33
34Using the Library
35~~~~~~~~~~~~~~~~~
36
37After building, all you need are the files IDL.h and the DLL and
38related import library. Place the header in a place where it can be
39found with libIDL/IDL.h, the DLL somewhere in PATH, and the import
40library somewhere where your compiler will find it.
41
42--
43Andrew T. Veliath <andrewtv@usa.net>
44Tor Lillqvist <tml@iki.fi>
45