fear1 / libidl Goto Github PK
View Code? Open in Web Editor NEWThis project forked from distrotech/libidl
Mirror of git://git.gnome.org/libIDL
License: Other
This project forked from distrotech/libidl
Mirror of git://git.gnome.org/libIDL
License: Other
libIDL README ~~~~~~~~~~~~~ Introduction ~~~~~~~~~~~~ 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. libIDL exports functionality used to generate detailed conforming error and warning messages in gcc-like format, and also comes with a default backend to generate IDL into a file or string (useful for customized messages or comments in the output). The IDL backend is complete enough that most generated IDL can be reparsed by libIDL without errors. libIDL returns separate syntax and namespace trees, and includes functionality to hide syntactical information from the primary tree, while keeping it accessible through the namespace for type information and name lookup. Optional extensions to standard IDL can be enabled using parse flags. These include node properties, embedded code fragments, and XPIDL. Nodes can also have declarations tags which assign particular attributions to certain IDL constructs to further facilitate custom applications. If you are upgrading to a new version, please see the NEWS file for any changes which may affect code. 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)))
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.