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