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


























Interface declaration
---------------------

An interface declaration is basically the same as a
link:component{outfilesuffix}[component declaration] but is meant to be
shared between several components. Although any object can be defined in an
interface, it will typically only declare service prototypes and ports that
are to be `provided` or `used` by components.

****
[horizontal]
(14) `*interface             ::=*` ::
   `"interface"` <<grammar#dotgen-rule-interface-scope,`interface-scope`>> <<grammar#dotgen-rule-component-body,`component-body`>> `";"`
(15) `*interface-scope       ::=*` ::
   <<grammar#dotgen-rule-identifier,`identifier`>>

(17) `*interface-property    ::=*` ::
   `"extends"` <<grammar#dotgen-rule-interface-list,`interface-list`>> `";"`
****





































In addition to regular component properties, an interface can also define
the following properties:

+extends+::
A list of interfaces that are imported as-is into the current one. All
objects from the extended interfaces appear as if they had been defined in
the extending interface.





























// eof
