diff options
Diffstat (limited to 'lib/ic/doc/src/ch_basic_idl.xml')
-rw-r--r-- | lib/ic/doc/src/ch_basic_idl.xml | 164 |
1 files changed, 0 insertions, 164 deletions
diff --git a/lib/ic/doc/src/ch_basic_idl.xml b/lib/ic/doc/src/ch_basic_idl.xml deleted file mode 100644 index 485a0c44e5..0000000000 --- a/lib/ic/doc/src/ch_basic_idl.xml +++ /dev/null @@ -1,164 +0,0 @@ -<?xml version="1.0" encoding="utf-8" ?> -<!DOCTYPE chapter SYSTEM "chapter.dtd"> - -<chapter> - <header> - <copyright> - <year>2002</year><year>2016</year> - <holder>Ericsson AB. All Rights Reserved.</holder> - </copyright> - <legalnotice> - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - - </legalnotice> - - <title>OMG IDL</title> - <prepared></prepared> - <docno></docno> - <date>2002-07-15</date> - <rev></rev> - <file>ch_basic_idl.xml</file> - </header> - - <section> - <title>OMG IDL - Overview</title> - <p>The purpose of OMG IDL, <em>Interface Definition Language</em>, mapping - is to act as translator between platforms and languages. An IDL - specification is supposed to describe data types, object types etc.</p> - <p>Since the <c>C</c> and <c>Java</c> IC backends only supports a subset of the - IDL types supported by the other backends, the mapping is divided into - different parts. For more information about IDL to Erlang mapping, - i.e., <c>CORBA</c>, plain Erlang and generic Erlang Server, see the Orber - User's Guide. How to use the plain Erlang and generic Erlang Server is - found in this User's Guide.</p> - - <section> - <title>Reserved Compiler Names and Keywords</title> - <p>The use of some names is strongly discouraged due to - ambiguities. However, the use of some names is prohibited - when using the Erlang mapping , as they are strictly reserved for IC.</p> - <p>IC reserves all identifiers starting with <c>OE_</c> and <c>oe_</c> - for internal use.</p> - <p>Note also, that an identifier in IDL can contain alphabetic, - digits and underscore characters, but the first character - <em>must</em> be alphabetic. - </p> - <p>Using underscores in IDL names can lead to ambiguities - due to the name mapping described above. It is advisable to - avoid the use of underscores in identifiers.</p> - <p>The OMG defines a set of reserved words, shown below, for use as keywords. - These may <em>not</em> be used as, for example, identifiers.</p> - <table> - <row> - <cell align="left" valign="middle">abstract</cell> - <cell align="left" valign="middle">double</cell> - <cell align="left" valign="middle">local</cell> - <cell align="left" valign="middle">raises</cell> - <cell align="left" valign="middle">typedef</cell> - </row> - <row> - <cell align="left" valign="middle">any</cell> - <cell align="left" valign="middle">exception</cell> - <cell align="left" valign="middle">long</cell> - <cell align="left" valign="middle">readonly</cell> - <cell align="left" valign="middle">unsigned</cell> - </row> - <row> - <cell align="left" valign="middle">attribute</cell> - <cell align="left" valign="middle">enum</cell> - <cell align="left" valign="middle">module</cell> - <cell align="left" valign="middle">sequence</cell> - <cell align="left" valign="middle">union</cell> - </row> - <row> - <cell align="left" valign="middle">boolean</cell> - <cell align="left" valign="middle">factory</cell> - <cell align="left" valign="middle">native</cell> - <cell align="left" valign="middle">short</cell> - <cell align="left" valign="middle">ValueBase</cell> - </row> - <row> - <cell align="left" valign="middle">case</cell> - <cell align="left" valign="middle">FALSE</cell> - <cell align="left" valign="middle">Object</cell> - <cell align="left" valign="middle">string</cell> - <cell align="left" valign="middle">valuetype</cell> - </row> - <row> - <cell align="left" valign="middle">char</cell> - <cell align="left" valign="middle">fixed</cell> - <cell align="left" valign="middle">octet</cell> - <cell align="left" valign="middle">struct</cell> - <cell align="left" valign="middle">void</cell> - </row> - <row> - <cell align="left" valign="middle">const</cell> - <cell align="left" valign="middle">float</cell> - <cell align="left" valign="middle">oneway</cell> - <cell align="left" valign="middle">supports</cell> - <cell align="left" valign="middle">wchar</cell> - </row> - <row> - <cell align="left" valign="middle">context</cell> - <cell align="left" valign="middle">in</cell> - <cell align="left" valign="middle">out</cell> - <cell align="left" valign="middle">switch</cell> - <cell align="left" valign="middle">wstring</cell> - </row> - <row> - <cell align="left" valign="middle">custom</cell> - <cell align="left" valign="middle">inout</cell> - <cell align="left" valign="middle">private</cell> - <cell align="left" valign="middle">TRUE</cell> - <cell align="left" valign="middle"></cell> - </row> - <row> - <cell align="left" valign="middle">default</cell> - <cell align="left" valign="middle">interface</cell> - <cell align="left" valign="middle">public</cell> - <cell align="left" valign="middle">truncatable</cell> - <cell align="left" valign="middle"></cell> - </row> - <tcaption>OMG IDL keywords</tcaption> - </table> - <p>The keywords listed above must be written exactly as shown. Any usage - of identifiers that collide with a keyword is illegal. For example, - <em>long</em> is a valid keyword; <em>Long</em> and <em>LONG</em> are - illegal as keywords and identifiers. But, since the OMG must be able - to expand the IDL grammar, it is possible to use <em>Escaped Identifiers</em>. For example, it is not unlikely that <c>native</c> - have been used in IDL-specifications as identifiers. One option is to - change all occurrences to <c>myNative</c>. Usually, it is necessary - to change programming language code that depends upon that IDL as well. - Since Escaped Identifiers just disable type checking (i.e. if it is a reserved - word or not) and leaves everything else unchanged, it is only necessary to - update the IDL-specification. To escape an identifier, simply prefix it - with <c>_</c>. The following IDL-code is illegal:</p> - <code type="none"> -typedef string native; -interface i { - void foo(in native Arg); - }; -}; - </code> - <p>With Escaped Identifiers the code will look like:</p> - <code type="none"> -typedef string _native; -interface i { - void foo(in _native Arg); - }; -}; - </code> - </section> - </section> -</chapter> - |