// Generated from main.y - manual changes will be lost
ifdef::sidebartoc[]
include::_Sidebar.adoc[]
endif::[]



































































































































































Elements of a description file
------------------------------

A `dot gen` specification consists of one or more statements. Statements are
either _data types_ definitions, via IDL statements, or specific _genom_
statements. `cpp` directives (see
link:preprocessing{outfilesuffix}[Preprocessing]) are handled at the lexical
level and do not appear in the grammar.

****
[horizontal]
(1) `*specification         ::=*` ::
   `{` <<grammar#dotgen-rule-statement,`statement`>> `}`
(2) `*statement             ::=*` ::
   <<grammar#dotgen-rule-idl-statement,`idl-statement`>> +
                              `|` <<grammar#dotgen-rule-component,`component`>> +
                              `|` <<grammar#dotgen-rule-interface,`interface`>>

(4) `*idl-statement         ::=*` ::
   <<grammar#dotgen-rule-module,`module`>> +
                              `|` <<grammar#dotgen-rule-const-dcl,`const-dcl`>> +
                              `|` <<grammar#dotgen-rule-type-dcl,`type-dcl`>>
****

IDL statements define link:typedef{outfilesuffix}[types],
link:typedef{outfilesuffix}[constants] or link:module{outfilesuffix}[IDL
modules] containing types and constants.  The syntax follows closely the
subset the 'OMG IDL' specification corresponding to type and constants
definitions (see Chapter 7 of the CORBA specification, Object Management
Group, version 3.1. Part I: CORBA interfaces).  Note that this subset of the
dogten grammar is not in any manner tied to OMG IDL and may diverge from
future OMG specifications.

A `genom` statement defines link:component{outfilesuffix}[components] or
link:interface{outfilesuffix}[interfaces].

=== See also
* link:idltype{outfilesuffix}[Data type description]
* link:component{outfilesuffix}[Component declaration]
* link:interface{outfilesuffix}[Interface declaration]































































































































// eof
