Interstage Application Server アプリケーション作成ガイド (CORBAサービス編) |
目次
索引
![]() ![]() |
付録A IDL定義 |
IDLの書式のフォーマットを以下に示します。::= は、以下のように定義されます。
| または <文字> 非終端文字 "文字" リテラル * 記号の前にある構文の要素を0回以上繰り返すことができます。 + 記号の前にある構文の要素を1回以上繰り返すことができます。 {} { }で括られた構文の要素は1つの要素として取り扱われます。 [] [ ]で括られた構文の要素はオプションで、0回以上現れます。
IDL仕様 <specification> ::=<definition>+
IDLの定義 <definition> ::=<type_dcl>";" | <const_dcl>";" | <except_dcl>";" | <interface>";" | <module>";"
モジュール宣言 <module> ::="module"<identifier>"{"<definition>"+}"
インタフェース宣言 <interface> ::=<interface_dcl> | <forward_dcl> <interface_dcl> ::=<interface_header>"{"<interface_body>"}" <forward_dcl> ::="interface"<identifier> <interface_header> ::="interface"<identifier>[<inheritance_spec>] <interface_body> ::=<export>* <export> ::=<type_dcl>";" | <const_dcl>";" | <except_dcl>";" | <attr_dcl>";" | <op_dcl>";"
継承の仕様 <inheritance_spec> ::="":"<scoped name>{","<scoped name>}* <scoped_name> ::=<identifier> | "::"<identifier> | <scoped_name>"::"<identifier>
定数宣言 <const_dcl> ::="const"<const_type><identifier>"="<const_exp> <const_type> ::=<integer_type> | <char_type> | <boolean_type> | <floating_pt_type> | <string_type> | <scoped_name>
定数式 <const_exp> ::=<or_expr> <or_expr> ::=<xor_expr> | <or_expr>"|"<xor_expr> <xor_expr> ::=<and_expr> | <xor_expr>"^"<and_expr> <and_expr> ::=<shift_expr> | <add_expr>"&"<shift_expr> <shift_expr> ::=<add_expr> | <shift_expr>">>"<add_expr> | <shift_expr>"<<"<add_expr> <add_expr> ::=<mult_expr> | <add_expr>"+"<mult_expr> | <add_expr>"-"<mult_expr> <mult_expr> ::=<unary_expr> | <mult_expr>"*"<unary_expr> | <mult_expr>"/"<unary_expr> | <mult_expr>"%"<unary_expr> <unary_expr> ::=<unary_operator><primary_expr> | <primary_expr> <unary_operator> ::="-" | "+" | "〜" <primary_expr> ::=<scoped_name> | <literal> | "("<const_exp>")" <literal> ::=<integer_literal> | <string_literal> | <character_literal> | <floating_literal> | <boolean_literal> <boolean_literal> ::="TRUE" | "FALSE" <positive_int_const> ::=<const_exp>
型宣言 <type_dcl> ::="typedef"<type_declarator> | <struct_type> | <union_type> | <enum_type> <type_declarator> ::=<type_spec><declarators> <type_spec> ::=<simple_type_spec> | <constr_type_spec> <simple_type_spec> ::=<base_type_spec> | <template_type_spec> | <scoped_name> <base_type_spec> ::=<floating_pt_type> | <integer_type> | <char_type> | <wide_char_type> | <boolean_type> | <octet_type> | <any_type> | <object_type> <template_type_spec> ::=<sequence_type> | <string_type> | <wide_string_type> | <fixed_pt_type> <constr_type_spec> ::=<struct_type> | <union_type> | <enum_type> <declarators> ::=<declarator>{","<declarator>}* <declarator> ::=<simple_declarator> | <complex_declarator> <simple_declarator> ::=<identifier> <complex_declarator> ::=<array_declarator>
データ型 <floating_pt_type> ::="float" | "double" | "long" "double" <integer_type> ::=<signed_int> | <unsigned_int> <signed_int> ::=<signed_long_int> | <signed_short_int> | <signed_longlong_int> <signed_long_int> ::="long" <signed_short_int> ::="short" <signed_longlong_int> ::="long""long" <unsigned_int> ::=<unsigned_long_int> | <unsigned_short_int> <unsigned_long_int> ::="unsigned""long" <unsigned_short_int> ::="unsigned""short" <char_type> ::="char" <wide_char_type> ::="wchar" <boolean_type> ::="boolean" <octet_type> ::="octet" <struct_type> ::="struct"<identifier>"{"<member_list>"}" <member_list> ::=<member>+ <member> ::=<type_spec><declarator>";" <union_type> ::="union"<identifier>"switch" "("<switch_type_spec>")" "{"<switch_body>"}" <switch_type_spec> ::=<integer_type> | <char_type> | <boolean_type> | <enum_type> | <scoped_name> <switch_body> ::=<case>+ <case> ::=<case_label>+<element_spec>";" <case_label> ::="case"<const_exp>";" | "default"";" <element_spec> ::=<type_spec><declarators> <sequence_type> ::="sequence""<"<simple_type_spec>"," <positive_int_const>">" | "sequence""<"<simple_type_spec>>"," <string_type> ::="string""<"<positive_int_const>">" | "string" <wide_string_type> ::="wstring""<"<positive_int_const>">" | "wstring" <fixed_pt_type> ::="fixed""<"<positive_int_const>","<integer_literal>">" <array_declarator> ::=<indentifier><fixed_array_size>+ <fixed_array_size> ::="["<positive_int_const>"]" <attr_dcl> ::=["readonly"]"attribute"<param_type_spec> <simple_declarator>{"."<simple_declarator>}*
例外宣言 <except_dcl> ::="exception"<identifier>"{"<member>*"}"
オペレーション宣言 <op_dcl> ::=[<op_attribute>]<op_type_spec><identifier> <parameter_dcls>[<raises_expr>][<context_expr>] <op_attribute> ::="oneway" <op_type_spec> ::=<param_type_spec> | "void" <parameter_dcls> ::="("<param_dcl>{","<param_dcl>}*")" | "("")" <param_dcl> ::=<param_attribute><param_type_spec> <simple_declarator> <param_attribute> ::="in" | "out" | "inout" <raises_expr> ::="raises""("<scoped_name>{","<scoped_name>}*")" <context_expr> ::="context""("<string_literal>{","<string_literal>}*")" <param_type_spec> ::=<base_type_spec> | <string_type> | <wide_string_type> | <fixed_pt_type> | <scoped_name>
目次
索引
![]() ![]() |