A CORBA IDL nyelv

Alprogramok, modulok

Alprogramok: Művelet deklaráció

Az OMG IDL művelet deklarációk hasonlítanak a C függvény deklarációkra.

A műveletdeklaráció a következő részekből épül fel:

Szintaxis:

(87) <op_dcl> ::= [ <op_attribute> ] <op_type_spec> <identifier> <parameter_dcls> [ <raises_expr> ] [ <context_expr> ] (88) <op_attribute> ::= “oneway” (89) <op_type_spec> ::= <param_type_spec> | “void” (90) <parameter_dcls> ::= “(” <param_dcl> { “,” <param_dcl> }* “)” | “(” “)” (91) <param_dcl> ::= <param_attribute> <param_type_spec> <simple_declarator> (92) <param_attribute> ::= “in” | “out” | “inout” (93) <raises_expr> ::= “raises” “(” <scoped_name> { “,” <scoped_name> }* “)” (94) <context_expr> ::= “context” “(” <string_literal> { “,” <string_literal> }* “)” (95) <param_type_spec> ::= <base_type_spec> | <string_type> | <wide_string_type> | <scoped_name>

Modulok

Modul deklaráció

A modul-deklarációk arra szolgálnak, hogy az azonosító neveket hatáskörökbe csoportosítsuk. Egy modulon belül elsősorban típus, konstans és kivétel deklarációk, valamint interfészek fordulnak elő.

(3) <module> ::= “module” <identifier> “{“ <definition>+ “}”

Import deklaráció

Az import deklarációk segítségével más név-hatókörök tartalmát be tudjuk emelni az aktuális név-hatókörbe.

(100) <import> ::= “import” <imported_scope> “;” (101) <imported_scope> ::= <scoped_name> | <string_literal>

Előfeldolgozás

Egy interfész-specifikációt egy vagy több forrásfájlban lehet megadni. A forrás fordítása egy vagy több fázisban történik. A fordítás első fázisa az előfeldolgozás. Ez a részfájlok beillesztését és makrók kifejtését jelenti. A forrásfájlban a "#"-kal kezdődő sorok az előfeldolgozónak szólnak. Előfeldolgozás után áll elő a tulajdonképpeni fordítási egység. Az OMG IDL előfeldolgozás megfelel a C++ nyelv 1998-as (ISO/IEC 14882) szabványában rögzített előfeldolgozásának.