SDL-News: Re: possible extension to SDL


Subject: SDL-News: Re: possible extension to SDL
From: Rick Reed TSE (rickreed#tseng.co.uk)
Date: Wed Nov 26 2003 - 11:57:00 GMT


Become an SDL Forum Society member <http://www.sdl-forum.org/Society/members.htm>
The originator of this message is responsible for its content.
-----From Rick Reed TSE <rickreed#tseng.co.uk> to sdlnews -----

William H. Skelton at W.Skelton#SOLINET.com wrote on 26/11/2003 01:18:

> 2) In the draft specification we have discussed that the definition of
> signals used in a signal list should be declared within the signal list,
> i.e. as belonging to that signal list. Something we tighten up in the subset.
>
> Unfortunately it seems the syntax doesn't allow this. There was a glimmer
> of hope that the new INTERFACE syntax of SDL-2000 would allow signals to be
> declared within the INTERFACE, but on checking the SDL-2000 specification
> it seems it also doesn't allow it either.

Dear All,

The syntax for interfaces DOES allow signals to be defined in interfaces.

NOTE: the syntax in this email is best viewed with a fixed width font.

The full syntax in the SDL-2000 language definition is:

<interface definition> ::=
      {<package use clause>}*
      [<virtuality>] <interface heading>
      [<interface specialization>] <end>
   | {<package use clause>}*
      [<virtuality>] <interface heading>
      [<interface specialization>] [ <comment body> ] <left curly bracket>
      <entity in interface>* [<interface use list>]
      <right curly bracket>

<interface heading> ::=
      interface <interface name>
      [<formal context parameters>] [<virtuality constraint>]

<entity in interface> ::=
      <signal definition>
   | <interface variable definition>
   | <interface procedure definition>
   | <exception definition>

The difference between the two alternatives of <interface definition> are
better seen by rewriting the syntax as:

<interface definition> ::=
      {<package use clause>}*
      [<virtuality>] <interface heading>
      [<interface specialization>]
   { <end>
      | [ <comment body> ] <left curly bracket>
         <entity in interface>* [<interface use list>]
         <right curly bracket>
   }

Ignoring package use, virtuality, specialization and the comment before the
left curly bracket this becomes:

<interface definition> ::=
    <interface heading>
   { <end>
      | <left curly bracket>
            <entity in interface>* [<interface use list>]
         <right curly bracket>
   }

The <interface heading> would normally be just the keyword INTERFACE
followed by the defining occurrence of the interface name, such as:

INTERFACE LineOut

One of the alternatives of <entity in interface> is <signal definition>, so
to define a LineOut interface with signals Establish(Path),
Send(DataPacket), Release(Path) can be written:

INTERFACE LineOut { SIGNAL Establish(Path),
                           Send(DataPacket),
                           Release(Path);
                  }

where Path and DataPacket are data types defined somewhere.

William: Which version of Z.100 did you use?

--
Rick Reed - rickreed#tseng.co.uk
Tel:+44 15394 88462 Mob.:+44 7970 50 96 50

--End text from Rick Reed TSE <rickreed#tseng.co.uk> to sdlnews --- For extra SDL Forum Society benefits join at <http://www.sdl-forum.org/Society/members.htm>



This archive was generated by hypermail 2a23 : Thu May 09 2013 - 16:05:50 GMT