📄 readme
字号:
libIDL README ~~~~~~~~~~~~~Introduction~~~~~~~~~~~~libIDL is a library licensed under the GNU LGPL for creating trees ofCORBA Interface Definition Language (IDL) files, which is aspecification for defining portable interfaces. libIDL was initiallywritten for ORBit (the ORB from the GNOME project, and the primarymeans of libIDL distribution). However, the functionality wasdesigned to be as reusable and portable as possible.It is written in C, and the aim is to retain the ability to compile iton a system with a standard C compiler. Preprocessed parser files areincluded so you are not forced to rebuild the parser, however aneffort is made to keep the parser and lexer compatible with standardUnix yacc. Currently, flex is required to generate the lexicalscanner.With libIDL, you can parse an IDL file which will be automatically runthrough the C preprocessor (on systems with one available), and havedetailed error and warning messages displayed. On a compilationwithout errors, the tree is returned to the custom application.libIDL performs compilation phases from lexical analysis to nearlyfull semantic analysis with some optimizations, and will attempt togenerate meaningful errors and warnings for invalid or deprecated IDL.libIDL exports functionality used to generate detailed conformingerror and warning messages in gcc-like format, and also comes with adefault backend to generate IDL into a file or string (useful forcustomized messages or comments in the output). The IDL backend iscomplete enough that most generated IDL can be reparsed by libIDLwithout errors. libIDL returns separate syntax and namespace trees,and includes functionality to hide syntactical information from theprimary tree, while keeping it accessible through the namespace fortype 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 particularattributions to certain IDL constructs to further facilitate customapplications.If you are upgrading to a new version, please see the NEWS file forany changes which may affect code.Emacs Syntax Highlighting for IDL Code~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~If you are using Emacs 20.x and do not have decent syntax highlightingin your IDL mode, you can use the following Emacs lisp to addIDL-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)))
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -