@SDL@KERNEL_HEADING_PACKAGE@Kernel Heading $GRAMMAR Z100: 2.4.1.2 ::= 'PACKAGE' @SDL@ADDITIONAL_HEADING_PACKAGE@Additional Heading $GRAMMAR Z100: 2.4.1.2 ::= ';' / $ ::= \',' ::= ( / $ ) := 'SYSTEM' 'TYPE' / 'BLOCK' 'TYPE' / 'PROCESS' 'TYPE' / 'PROCEDURE' / 'REMOTE' / 'SERVICE' 'TYPE' / 'SIGNAL' / 'NEWTYPE' / 'SIGNALLIST' / 'GENERATOR' / 'SYNONYM' @SDL@PACKAGE_REF@Package references $GRAMMAR Z100: 2.4.1.2 Reference in Package Z100: 2.4.2 Reference in System ::= * ::= 'USE' ( '/' ()\',' / $) ';' ::= ( / $ ) := 'SYSTEM' 'TYPE' / 'BLOCK' 'TYPE' / 'PROCESS' 'TYPE' / 'PROCEDURE' / 'REMOTE' / 'SERVICE' 'TYPE' / 'SIGNAL' / 'NEWTYPE' / 'SIGNALLIST' / 'GENERATOR' / 'SYNONYM' $Use1 USE PackageName; $Use2 USE PackageName1; USE PackageName2; $Use1_Select USE PackageName / BLOCK TYPE Name, SIGNAL Name; @SDL@KERNEL_HEADING_SYSTEM@Kernel Heading $GRAMMAR Z100: 2.4.2 System definition z100: 6.1.3.1 System definition based on system type ::= 'SYSTEM' ( ':' / $) $System_Def SYSTEM SystemName $Type_Based_System SYSTEM SystemName : SystemTypeName @SDL@ADDITIONAL_HEADING_SYSTEM@Additional Heading $GRAMMAR ::= $ @SDL@SYSTEM_TYPE_REF@System type symbol $GRAMMAR Z100: 6.1.1.1 ::= 'system' @SDL@KERNEL_HEADING_SYSTEM_TYPE@Kernel Heading $GRAMMAR Z100: 6.1.1.1 System type heading ::= 'SYSTEM' 'TYPE' @SDL@ADDITIONAL_HEADING_SYSTEM_TYPE@Additional Heading $GRAMMAR Z100: 6.1.1.1 System type heading Z100: 6.3 Specialization Z100: 6.3.1 Inherits Z100: 6.2 Actual context parameters Z100: 6.2 Formal context parameters Z100: 6.2.1 - 6.2.9 Formal context parameters ::= ( / $) ::= ( / $) ( / $) ';' ::= 'INHERITS' ( / $) ('ADDING' / $) ::= '<' ( / $)\',' '>' ::= '<' \';' '>' ::= ( 'PROCESS' ( ('ATLEAST'/$) / / $ ) / 'PROCEDURE' ( 'ATLEAST' / ) / 'REMOTE' 'PROCEDURE' / 'SIGNAL' ( ('ATLEAST' / ) )\',' / 'DCL' ( \',' )\',' / 'REMOTE' ( \',' )\',' / 'TIMER' ( ( '(' <>\',' ')' / $) )\',' / 'SYNONYM' ( )\',' / 'NEWTYPE' ( 'ATLEAST' / / $ ) ) ::= (';'/$) 'FPAR' \',' = ( (';'/$) ( 'FPAR' ( ('IN' / 'IN/OUT' / $) )\',' ( ';' 'RETURNS' / $) / 'RETURNS' / $ ) ) ::= ( '(' \',' ')' / $) ( / $) ::= 'ENDNEWTYPE' (/$) ::= ( / $ ) ( 'OPERATORS' ( ( / 'ORDERING' ) ';' )+ / $ ) ::= 'LITERALS' ( / / ) )\',' (';' / $) ::= ':' \',' '->' $Inherits INHERITS SystemTypeName; @SDL@BLOCK_REF@Block symbol $GRAMMAR Z100: 2.4.2 Block definition Z100: 6.1.3.2 Block def based on block type Z100: 6.1.2 Type expression Z100: 6.2 Actual context parameters ::= / ::= ( / $ ) ':' ::= '(' ')' ::= ( / $) ::= '<' ( / $)\',' '>' $BlockInst BlockName : BlockType $BlockInstSet BlockName(NoOfInst) : BlockType @SDL@KERNEL_HEADING_BLOCK@Kernel Heading $GRAMMAR Z100: 2.4.3 Block definition ::= 'BLOCK' $Block_Def BLOCK BlockName @SDL@ADDITIONAL_HEADING_BLOCK@Additional Heading $GRAMMAR ::= $ @SDL@BLOCK_TYPE_REF@Block type symbol $GRAMMAR Z100: 6.1.1.2 ::= ('VIRTUAL' / 'REDEFINED' / 'FINALIZED' / $) @SDL@KERNEL_HEADING_BLOCK_TYPE@Kernel Heading $GRAMMAR Z100: 6.1.1.2 Block type heading ::= ('VIRTUAL' / 'REDEFINED' / 'FINALIZED' / $) 'BLOCK' 'TYPE' $TypeDef BLOCK TYPE BlockTypeName $VirtualType VIRTUAL BLOCK TYPE BlockTypeName $RedefinedType REDEFINED BLOCK TYPE BlockTypeName $FinalizedType FINALIZED BLOCK TYPE BlockTypeName @SDL@ADDITIONAL_HEADING_BLOCK_TYPE@Additional Heading $GRAMMAR Z100: 6.1.1.2 Block type heading Z100: 6.3 Specialization Z100: 6.3.1 Inherits Z100: 6.3.2 Virtual, Redefined, Finalized Z100: 6.3.2 Virtuality constraint (atleast) Z100: 6.2 Actual context parameters Z100: 6.2 Formal context parameters Z100: 6.2.1 - 6.2.9 Formal context parameters ::= ( / $) ::= ( / $) ( / $) ( / $) ';' ::= 'ATLEAST' ::= 'INHERITS' ( / $) ('ADDING' / $) ::= '<' ( / $)\',' '>' ::= '<' \';' '>' ::= ( 'PROCESS' ( ('ATLEAST'/$) / / $ ) / 'PROCEDURE' ( 'ATLEAST' / ) / 'REMOTE' 'PROCEDURE' / 'SIGNAL' ( ('ATLEAST' / ) )\',' / 'DCL' ( \',' )\',' / 'REMOTE' ( \',' )\',' / 'TIMER' ( ( '(' <>\',' ')' / $) )\',' / 'SYNONYM' ( )\',' / 'NEWTYPE' ( 'ATLEAST' / / $ ) ) ::= (';'/$) 'FPAR' \',' = ( (';'/$) ( 'FPAR' ( ('IN' / 'IN/OUT' / $) )\',' ( ';' 'RETURNS' / $) / 'RETURNS' / $ ) ) ::= ( '(' \',' ')' / $) ( / $) ::= 'ENDNEWTYPE' (/$) ::= ( / $ ) ( 'OPERATORS' ( ( / 'ORDERING' ) ';' )+ / $ ) ::= 'LITERALS' ( / / ) )\',' (';' / $) ::= ':' \',' '->' $Inherits INHERITS BlockTypeName; $AtleastInherits ATLEAST BlockTypeName INHERITS BlockTypeName; @SDL@BLOCKSUBSTRUCTURE@Block substructure symbol $GRAMMAR Z100: 3.2.2 ::= / $ @SDL@CHANNELSUBSTRUCTURE@Channel substructure symbol $GRAMMAR Z100: 3.2.3 ::= / $ @SDL@KERNEL_HEADING_SUBSTRUCTURE@Kernel Heading $GRAMMAR Z100: 3.2.2 ::= 'SUBSTRUCTURE' @SDL@ADDITIONAL_HEADING_SUBSTRUCTURE@Additional Heading $GRAMMAR Z100: 3.2.2 ::= $ @SDL@PROCESS_REF@Process symbol $GRAMMAR Z100: 2.4.3 Process definition Z100: 2.4.4 Number of instances Z100: 6.1.3.3 Process def based on process type Z100: 6.1.2 Type expression Z100: 6.2 Actual context parameters ::= ( / $) / ::= '(' ( / $) (',' ( / $) / $) ')' ::= ( / $) ':' $ProcessInst ProcessName : ProcessType $NumberOfInstances (NoOfStatic, MaxDynamic) $(1,1) (1,1) $(0,infinity) (0, ) @SDL@KERNEL_HEADING_PROCESS@Kernel Heading $GRAMMAR Z100: 2.4.4 Process definition ::= 'PROCESS' ( / $ ) ::= '(' ( / $) (',' ( / $) / $) ')' $ProcessKernelHeading PROCESS ProcessName(1,1) $NumberOfInstances (NoOfStatic, MaxDynamic) $(1,1) (1,1) $(0,infinity) (0, ) @SDL@ADDITIONAL_HEADING_PROCESS@Additional heading $GRAMMAR Z100: 2.4.4 Process definition ::= ( / $) ::= ';' ( / $ ) ( / $ ) ( / $ ) ::= 'FPAR' ( \',' )\',' ';' ::= 'SIGNALSET' ( / $ ) ';' ::= ( / / '(' ')' )\',' ::= '/*#PRIO' '*/' Definition of grammar see META_GRAMMAR in a macro call symbol. $Add_Heading ; FPAR FparName SortName, FparName SortName; SIGNALSET SignalName, SignalName; $Add_Heading_PRIO ; /*#PRIO Value */ FPAR FparName SortName, FparName SortName; SIGNALSET SignalName, SignalName; $Fpar FPAR FparName SortName, FparName SortName; $Signalset SIGNALSET SignalName, SignalName; $EmptySignalset SIGNALSET ; $Fpar_Only ; FPAR FparName SortName, FparName SortName; $Signalset_Only ; SIGNALSET SignalName, SignalName; $EmptySignalset_Only ; SIGNALSET ; $PRIO_Directive /*#PRIO Value */ @SDL@ADDITIONAL_HEADING_P_AS_SERVICE@Additional heading $GRAMMAR Z100: 2.4.4 Process definition ::= ( / $) ::= ';' ( / $) ( / $) ::= 'FPAR' ( \',' )\',' ';' ::= 'SIGNALSET' ( / $ ) ';' ::= ( / / '(' ')' )\',' Definition of grammar see META_GRAMMAR in a macro call symbol. $Add_Heading ; FPAR FparName SortName, FparName SortName; SIGNALSET SignalName, SignalName; $Fpar FPAR FparName SortName, FparName SortName; $Signalset SIGNALSET SignalName, SignalName; $EmptySignalset SIGNALSET ; $Fpar_Only ; FPAR FparName SortName, FparName SortName; $Signalset_Only ; SIGNALSET SignalName, SignalName; $EmptySignalset_Only ; SIGNALSET ; @SDL@PROCESS_TYPE_REF@Process type symbol $GRAMMAR Z100: 6.1.1.3 ::= ('VIRTUAL' / 'REDEFINED' / 'FINALIZED' / $) @SDL@KERNEL_HEADING_PROCESS_TYPE@Kernel Heading $GRAMMAR Z100: 6.1.1.3 Process type heading ::= ('VIRTUAL' / 'REDEFINED' / 'FINALIZED' / $) 'PROCESS' 'TYPE' $TypeDef PROCESS TYPE ProcessTypeName $VirtualType VIRTUAL PROCESS TYPE ProcessTypeName $RedefinedType REDEFINED PROCESS TYPE ProcessTypeName $FinalizedType FINALIZED PROCESS TYPE ProcessTypeName @SDL@ADDITIONAL_HEADING_PROCESS_TYPE@Additional heading $GRAMMAR Z100: 6.1.1.3 Process type heading Z100: 2.4.4 Formal parameters, Signalset Z100: 6.3 Specialization Z100: 6.3.1 Inherits Z100: 6.3.2 Virtual, Redefined, Finalized Z100: 6.3.2 Virtuality constraint (atleast) Z100: 6.2 Actual context parameters Z100: 6.2 Formal context parameters Z100: 6.2.1 - 6.2.9 Formal context parameters ::= ( / $) ::= ( / $) ( / $) ( / $) ';' ( / $ ) ( / $ ) ::= 'ATLEAST' ::= 'INHERITS' ( / $) ('ADDING' / $) ::= '<' ( / $)\',' '>' ::= 'FPAR' ( \',' )\',' ';' ::= 'SIGNALSET' ( / $ ) ';' ::= ( / / '(' ')' )\',' ::= '<' \';' '>' ::= ( 'PROCESS' ( ('ATLEAST'/$) / / $ ) / 'PROCEDURE' ( 'ATLEAST' / ) / 'REMOTE' 'PROCEDURE' / 'SIGNAL' ( ('ATLEAST' / ) )\',' / 'DCL' ( \',' )\',' / 'REMOTE' ( \',' )\',' / 'TIMER' ( ( '(' <>\',' ')' / $) )\',' / 'SYNONYM' ( )\',' / 'NEWTYPE' ( 'ATLEAST' / / $ ) ) ::= (';'/$) 'FPAR' \',' = ( (';'/$) ( 'FPAR' ( ('IN' / 'IN/OUT' / $) )\',' ( ';' 'RETURNS' / $) / 'RETURNS' / $ ) ) ::= ( '(' \',' ')' / $) ( / $) ::= 'ENDNEWTYPE' (/$) ::= ( / $ ) ( 'OPERATORS' ( ( / 'ORDERING' ) ';' )+ / $ ) ::= 'LITERALS' ( / / ) )\',' (';' / $) ::= ':' \',' '->' $Add_Heading ATLEAST ProcessTypeName INHERITS ProcessTypeName; FPAR FparName SortName, FparName SortName; SIGNALSET SignalName, SignalName; $Inherits INHERITS ProcessTypeName; $AtleastInherits ATLEAST ProcessTypeName INHERITS ProcessTypeName; $Fpar FPAR FparName SortName, FparName SortName; $Fpar_Only ; FPAR FparName SortName, FparName SortName; $Signalset SIGNALSET SignalName, SignalName; $EmptySignalset SIGNALSET ; $Signalset_Only ; SIGNALSET SignalName, SignalName; $EmptySignalset_Only ; SIGNALSET ; @SDL@PROCEDURE_REF@Procedure symbol $GRAMMAR Z100: 2.4.6 Procedure definition ::= ( / $) ::= ('VIRTUAL' / 'REDEFINED' / 'FINALIZED' / $) ('EXPORTED' ('AS' / $) / $) $Virtual VIRTUAL ProcedureName $Redefined REDEFINED ProcedureName $Finalized FINALIZED ProcedureName $Exported EXPORTED ProcedureName $ExportedAs EXPORTED AS Name ProcedureName @SDL@KERNEL_HEADING_PROCEDURE@Kernel Heading $GRAMMAR Z100: 2.4.6 Procedure definition ::= ('VIRTUAL' / 'REDEFINED' / 'FINALIZED' / $) ('EXPORTED' ('AS' / $) / $) 'PROCEDURE' $PrdDef PROCEDURE ProcedureName $VirtualPrd VIRTUAL PROCEDURE ProcedureName $RedefinedPrd REDEFINED PROCEDURE ProcedureName $FinalizedPrd FINALIZED PROCEDURE ProcedureName $ExportedPrd EXPORTED PROCEDURE ProcedureName @SDL@ADDITIONAL_HEADING_PROCEDURE@Additional heading $GRAMMAR Z100: 2.4.6 Procedure definition Z100: 6.3 Specialization Z100: 6.3.1 Inherits Z100: 6.3.2 Virtual, Redefined, Finalized Z100: 6.3.2 Virtuality constraint (atleast) Z100: 6.2 Actual context parameters Z100: 6.2 Formal context parameters Z100: 6.2.1 - 6.2.9 Formal context parameters ::= ( / $) ::= ( / $) ( / $) ( / $) ';' ( / $ ) ( / $ ) ::= 'ATLEAST' ::= 'INHERITS' ( / $) ('ADDING' / $) ::= '<' ( / $)\',' '>' ::= 'FPAR' ( ('IN' / 'IN/OUT' / $) \',' )\',' ';' ::= 'RETURNS' (/$) ::= '<' \';' '>' ::= ( 'PROCESS' ( ('ATLEAST'/$) / / $ ) / 'PROCEDURE' ( 'ATLEAST' / ) / 'REMOTE' 'PROCEDURE' / 'SIGNAL' ( ('ATLEAST' / ) )\',' / 'DCL' ( \',' )\',' / 'REMOTE' ( \',' )\',' / 'TIMER' ( ( '(' <>\',' ')' / $) )\',' / 'SYNONYM' ( )\',' / 'NEWTYPE' ( 'ATLEAST' / / $ ) ) ::= (';'/$) 'FPAR' \',' = ( (';'/$) ( 'FPAR' ( ('IN' / 'IN/OUT' / $) )\',' ( ';' 'RETURNS' / $) / 'RETURNS' / $ ) ) ::= ( '(' \',' ')' / $) ( / $) ::= 'ENDNEWTYPE' (/$) ::= ( / $ ) ( 'OPERATORS' ( ( / 'ORDERING' ) ';' )+ / $ ) ::= 'LITERALS' ( / / ) )\',' (';' / $) ::= ':' \',' '->' Definition of grammar see META_GRAMMAR in a macro call symbol. $Add_Heading ATLEAST ProcedureName INHERITS ProcedureName; FPAR IN FparName SortName, IN/OUT FparName SortName; $Inherits INHERITS ProcedureName; $AtleastInherits ATLEAST ProcedureName INHERITS ProcedureName; $Fpar FPAR IN FparName SortName, IN/OUT FparName SortName; $In_fpar IN FparName SortName, $InOut_fpar IN/OUT FparName SortName, $Fpar_Only ; FPAR IN FparName SortName, IN/OUT FparName SortName; @SDL@SERVICE_REF@Service symbol $GRAMMAR Z100: 2.4.4 ::= @SDL@KERNEL_HEADING_SERVICE@Kernel Heading $GRAMMAR Z100: 2.4.5 Service definition ::= 'SERVICE' $Service_Def SERVICE ServiceName @SDL@ADDITIONAL_HEADING_SERVICE@Additional heading $GRAMMAR Z100: 2.4.5 Service definition Z100: 2.4.4 Signalset (as for processes) ::= ( / $) ::= ';' 'SIGNALSET' ( / $ ) ';' ::= ( / / '(' ')' )\',' Definition of grammar see META_GRAMMAR in a macro call symbol. $Signalset ; SIGNALSET SignalName, SignalName; $EmptySignalset ; SIGNALSET ; @SDL@SERVICE_TYPE_REF@Service type symbol $GRAMMAR Z100: 6.1.1.4 ::= ('VIRTUAL' / 'REDEFINED' / 'FINALIZED' / $) @SDL@KERNEL_HEADING_SERVICE_TYPE@Kernel Heading $GRAMMAR Z100: 6.1.1.4 Service type heading ::= ('VIRTUAL' / 'REDEFINED' / 'FINALIZED' / $) 'SERVICE' 'TYPE' $TypeDef SERVICE TYPE ServiceTypeName $VirtualType VIRTUAL SERVICE TYPE ServiceTypeName $RedefinedType REDEFINED SERVICE TYPE ServiceTypeName $FinalizedType FINALIZED SERVICE TYPE ServiceTypeName @SDL@ADDITIONAL_HEADING_SERVICE_TYPE@Additional heading $GRAMMAR Z100: 6.1.1.4 Service type heading Z100: 6.3 Specialization Z100: 6.3.1 Inherits Z100: 6.3.2 Virtual, Redefined, Finalized Z100: 6.3.2 Virtuality constraint (atleast) Z100: 6.2 Actual context parameters Z100: 6.2 Formal context parameters Z100: 6.2.1 - 6.2.9 Formal context parameters ::= ( / $) ::= ( / $) ( / $) ( / $) ';' ( / $) ::= 'ATLEAST' ::= 'INHERITS' ( / $) ('ADDING' / $) ::= '<' ( / $)\',' '>' ::= 'SIGNALSET' ( / $ ) ';' ::= ( / / '(' ')' )\',' ::= '<' \';' '>' ::= ( 'PROCESS' ( ('ATLEAST'/$) / / $ ) / 'PROCEDURE' ( 'ATLEAST' / ) / 'REMOTE' 'PROCEDURE' / 'SIGNAL' ( ('ATLEAST' / ) )\',' / 'DCL' ( \',' )\',' / 'REMOTE' ( \',' )\',' / 'TIMER' ( ( '(' <>\',' ')' / $) )\',' / 'SYNONYM' ( )\',' / 'NEWTYPE' ( 'ATLEAST' / / $ ) ) ::= (';'/$) 'FPAR' \',' = ( (';'/$) ( 'FPAR' ( ('IN' / 'IN/OUT' / $) )\',' ( ';' 'RETURNS' / $) / 'RETURNS' / $ ) ) ::= ( '(' \',' ')' / $) ( / $) ::= 'ENDNEWTYPE' (/$) ::= ( / $ ) ( 'OPERATORS' ( ( / 'ORDERING' ) ';' )+ / $ ) ::= 'LITERALS' ( / / ) )\',' (';' / $) ::= ':' \',' '->' $Add_Heading ATLEAST ServiceTypeName INHERITS ServiceTypeName; SIGNALSET SignalName, SignalName; $Inherits INHERITS ProcessTypeName; $AtleastInherits ATLEAST ServiceTypeName INHERITS ServiceTypeName; $Signalset_Only ; SIGNALSET SignalName, SignalName; $EmptySignalset_Only ; SIGNALSET ; ::= @SDL@CHANNEL@Channel symbol $GRAMMAR Z100: 2.5.1 Channel Z100: 2.5.5 Signal list SDL-96 Remote procedure name in signal list ::= ::= ( / / '(' ')' )\',' $SignalList SignalName, SignalName $SignalList2 SignalName, SignalName, (SignalListName) $SignalList3 SignalName, SignalName, PROCEDURE RemotePrdname @SDL@SIGNALROUTE@Signal route symbol $GRAMMAR Z100: 2.5.2 Signal route Z100: 2.5.5 Signal list SDL-96 Remote procedure name in signal list ::= ::= ( / / '(' ')' )\',' $SignalList SignalName, SignalName $SignalList2 SignalName, SignalName, (SignalListName) $SignalList3 SignalName, SignalName, PROCEDURE RemotePrdname @SDL@GATE@Gate symbol $GRAMMAR Z100: 6.1.4 Gate Z100: 6.1.4 Textual endpoint constraint Z100: 2.5.5 Signal list ::= ::= ('ATLEAST'/$) ::= ( / / '(' ')' )\',' $Constraint ATLEAST Name $SignalList SignalName, SignalName $SignalList2 SignalName, SignalName, (SignalListName) $SignalList3 SignalName, SignalName, PROCEDURE RemotePrdname @SDL@CONNECTION_POINT@Connection point symbol $GRAMMAR Z100: 2.5.3 Connection ::= \',' $Connection1 ChannelName $Connection2 ChannelName1, ChannelName2 @SDL@START@Start symbol $GRAMMAR Z100: 2.6.2 Start Z100: 6.3.3 Virtual transition ::= ('VIRTUAL' / 'REDEFINED' / 'FINALIZED' / $) $Virtual VIRTUAL $Redefined REDEFINED $Finalized FINALIZED @SDL@STATE@State symbol, Nextstate symbol $GRAMMAR Z100: 2.6.3 State Z100: 4.4 Asterisk state Z100: 4.5 Multiple appearence of state Z100: 2.6.8.2.1 Nextstate Z100: 4.9 Dash nextstate ::= \',' / '*' ( '(' \',' ')' / $) ::= / '-' Definition of grammar see META_GRAMMAR in a macro call symbol. $StateList StateName, StateName $All_States * $All_States_Except * (StateName, StateName) @SDL@INPUT@Input symbol $GRAMMAR Z100: 2.6.4 Input Z100: 4.6 Asterisk input Z100: 4.14 Remote procedure input Z100: 6.3.3 Virtual transition z100: 5.4.3 Variable z100: 5.4.3.1 Indexed Variable z100: 5.4.3.2 Field Variable SDL-96 Signal and remote procedure in same input ::= ( 'VIRTUAL' / 'REDEFINED' / 'FINALIZED' / $ ) ( \',' / '*' ) ::= ( ( '(' ( / $)\',' ')' / $ ) / ('PROCEDURE'/$) ) ::= ( '(' \',' ')' / '!' \'!' )* Definition of grammar see META_GRAMMAR in a macro call symbol. $Input SignalName $Input_With_Param SignalName (Variable, Variable) $Input_Several SignalName, SignalName $Input_All * $VirtualInput VIRTUAL SignalName $RedefinedInput REDEFINED SignalName $FinalizedInput FINALIZED SignalName $RPC_Input PROCEDURE Name @SDL@PRIORITY_INPUT@Priority input symbol $GRAMMAR Z100: 4.10 Priority input Z100: 2.6.4 Stimulus Z100: 6.3.3 Virtual transition z100: 5.4.3 Variable z100: 5.4.3.1 Indexed Variable z100: 5.4.3.2 Field Variable ::= ( 'VIRTUAL' / 'REDEFINED' / 'FINALIZED' / $ ) \',' ::= ( '(' ( / $)\',' ')' / $ ) ::= ( '(' \',' ')' / '!' \'!' )* ::= ( '(' ( / $)\',' ')' / $ ) @SDL@SAVE@Save symbol $GRAMMAR Z100: 2.6.5 Save Z100: 4.7 Asterisk save Z100: 6.3.3 Virtual save SDL-96 Signal and remote procedure in same save ::= ( 'VIRTUAL' / 'REDEFINED' / 'FINALIZED' / $ ) ( / '*' ) ::= ( / / '(' ')' )\',' $Save SignalName $Save_Several SignalName, SignalName $Save_RemotePrd_Several SignalName, PROCEDURE RemotePrdName, SignalName $Save_All * $VirtualSave VIRTUAL SignalName $RedefinedSave REDEFINED SignalName $FinalizedSave FINALIZED SignalName @SDL@OUTPUT@Output symbol $GRAMMAR Z100: 2.7.4 ::= ( ( / $ ) )\',' ( 'TO' / $ ) ( 'VIA' ('ALL'/$) \',' / $ ) ( / $ ) ( / $ ) ( / $ ) ( / $ ) ::= '(' ( / $ )\',' ')' ::= / / 'THIS' ::= / / ::= '/*#PRIO' '*/' ::= '/*#EXTSIG*/' ::= '/*#ALT*/' ::= '/*#TRANSFER*/' Definition of grammar see META_GRAMMAR in a macro call symbol. $Output SignalName $Output_With_Param SignalName (Expr, Expr) $Output_To SignalName TO PIdExpr $Output_To_This SignalName TO THIS $Output_To_Param SignalName (Expr, Expr) TO PIdExpr $Output_Via SignalName VIA PathName $Output_Via_All SignalName VIA ALL PathName, PathName $Output_To_Via SignalName TO PId_Expr VIA PathName $Sender SENDER $Offspring OFFSPRING $Parent PARENT $PRIO_Directive /*#PRIO Value */ $ALT_Directive /*#ALT*/ $TRANSFER_Directive /*#TRANSFER*/ $EXTSIG_Directive /*#EXTSIG*/ @SDL@DECISION@Decision symbol $GRAMMAR Z100: 2.7.5 Decision Z100: 5.3.1.9.1 Range condition Z100: 2.2.3 Informal text ::= / 'ANY' / ::= $ ::= / 'ELSE' ::= \',' / 'ELSE' ::= ( ('=' / '/=' / '<' / '>' / '<=' / '>=') / ( ':' / $ ) ) ::= Definition of grammar see META_GRAMMAR in a macro call symbol. @SDL@CONNECTOR@In-connector or out-connector symbol $GRAMMAR Z100: 2.6.7 In-connector Z100: 2.6.8.2.2 Out-connector ::= @SDL@TASK@Task, Set, Reset, or Export symbol $GRAMMAR Z100: 2.7.1 Task Z100: 5.4.3 Assignment Z100: 2.8 Set, Reset Z100: 4.13 Export Textual Algorithms ::= / / / ::= ( ( / $) ( / $) ) \',' / ( ( / $) ( / $) ) \',' / ( ( / $) ( / $) ) ::= ':=' ::= ( '(' \',' ')' / '!' \'!' )* ::= ::= ( )* ( )* ::= 'DCL' \',' ';' ::= \',' ( '::=' / $ ) ::= / / / / / / / / / / / ::= '{' '}' ::= ';' ::= ';' / ';' / ';' / ';' / ';' ::= 'RETURN' ( / $ ) ';' ::= ( 'CALL' / $ ) ( 'THIS' / $ ) ( / $ ) ( / $ ) ';' ::= '(' ( / $)\',' ')' ::= ( 'TO' / $ ) ( 'VIA' \',' / $ ) ::= / / 'THIS' ::= / / ::= '(' ')' ::= 'IF' '(' ')' ( 'ELSE' / $ ) ::= 'DECISION' '(' ')' '{' ( '(' ')' ':' )+ ( 'ELSE' ':' / $ ) '}' ::= 'FOR' '(' ( \';' / $ ) ')' ( 'THEN' / $ ) ::= ( / $ ) ( ',' ( / $ ) ( ',' ( / / / $ ) / $ ) / $ ) ::= 'DCL' ':=' / ':=' / ::= ':' ::= 'BREAK' ( / $ ) ';' / 'CONTINUE' ';' ::= ';' ::= '/*#CODE' '*/' ::= 'SET' ( '(' ( ',' / $ ) ( '(' \',' ')' / $ ) ')' )\',' ::= 'RESET' '(' ( ( '(' \',' ')' / $) )\',' ')' ::= 'EXPORT' '(' \',' ')' Definition of grammar see META_GRAMMAR in a macro call symbol. $Assignment Variable := Expr $Assignment2 Variable := Expr, Variable := Expr $CODE_Directive /*#CODE C_code */ $Task_with_CODE_Dir '' /*#CODE C_code */ $Set SET(Now+Expr, TimerName) $Set_No_Time SET(TimerName) $Reset RESET(TimerName) $Export EXPORT(VariableName) $Assignment3 Variable := Expression; $VariableDefinitionStatement DCL VariableName SortName; $VariableDefinitionStatement2 DCL VariableName SortName ::= Expression; $CompoundStatement { statement statement } $ExtendedActionOutput OUTPUT SignalName(Parameters) TO pid VIA RouteName; $ExtendedActionCreate CREATE ProcessName; $ReturnStatement RETURN Expression; $CallStatement ProcedureName(Parameters); $IfStatement IF ( Expression ) Statement ELSE Statement $DecisionStatement DECISION ( Expression ) { ( RangeCondition ): Statement ELSE: Statement } $LoopStatementSimple FOR ( ) Statement $LoopStatementWithLoopVariable FOR (LoopVariable := Expression, LimitExpression, StepExpression) Statement $LoopStatementWithLoopVariable2 FOR (DCL LoopVariable Sort := Expression, LimitExpression, StepExpression) Statement $LoopStatementWithFinal FOR ( ) Statement THEN Statement $LabelledStatement LabelName: Statement $JumpStatementBreak BREAK LabelName; $JumpStatementContinue CONTINUE; @SDL@CALL@Procedure call symbol $GRAMMAR Z100: 2.7.3 Call Z100: 2.7.2 Actual parameters Z100: 4.14 Remote procedure call SDL-96 VIA in remote procedure call ::= / ::= ( 'THIS' / $ ) ( / $ ) ::= '(' ( / $)\',' ')' ::= ( / $ ) ( 'TO' / $ ) ( 'VIA' \',' / $ ) ::= / / 'THIS' ::= / / $Call ProcedureName $Call_with_Param ProcedureName (Expr, Expr) $RPC_TO ProcedureName (Expr, Expr) TO Destination $RPC_VIA ProcedureName (Expr, Expr) VIA PathName @SDL@CREATE@Create request symbol $GRAMMAR Z100: 2.7.2 ::= ( / 'THIS' ) ( / $ ) ::= '(' ( / $)\',' ')' Definition of grammar see META_GRAMMAR in a macro call symbol. @SDL@TRANSITION_OPTION@Transition option symbol $GRAMMAR Z100: 4.3.4 Transition option Z100: 5.3.1.9.1 Range condition ::= ::= \',' / 'ELSE' ::= ( ('=' / '/=' / '<' / '>' / '<=' / '>=') / ( ':' / $ ) ) @SDL@ENABLING_CONDITION@Enabling condition symbol $GRAMMAR Z100: 4.12 ::= @SDL@CONTINUOUS_SIGNAL@Continuous signal symbol $GRAMMAR Z100: 4.11 ::= ( 'VIRTUAL' / 'REDEFINED' / 'FINALIZED' / $ ) ( ';' 'PRIORITY' / $ ) $ContSig_with_Prio BooleanExpr; PRIORITY Value @SDL@STOP@Stop symbol $GRAMMAR Z100: 2.6.8.2.3 ::= $ Definition of grammar see META_GRAMMAR in a macro call symbol. @SDL@PROCEDURE_START@Procedure start symbol $GRAMMAR Z100: 2.4.6 ::= ( 'VIRTUAL' / 'REDEFINED' / 'FINALIZED' / $ ) Definition of grammar see META_GRAMMAR in a macro call symbol. @SDL@RETURN@Return symbol $GRAMMAR Z100: 2.6.8.2.4 ::= ( / $ ) Definition of grammar see META_GRAMMAR in a macro call symbol. @SDL@PRIORITY_OUTPUT@Priority output symbol $GRAMMAR Z100: NOT part of SDL-92 @SDL@TEXTSYMBOL_SYSTEM_PACKAGE_SUBSTR_BLOCK@Text symbol $GRAMMAR Z100: 2.5.4 Signal Z100: 2.5.5 Signal list Z100: 5.2.1 Newtype Z100: 5.3.1.9 Syntype Z100: 5.3.1.13 Synonym Z100: 5.3.1.12.1 Generator Z100: 4.13 Remote variable Z100: 4.14 Remote procedure SDL-96 External procedure Textual Algorithms Textual procedure ::= ( / $ ) ( / $ ) ( ( / / / / / / / / / ) ( / $ ) )* ::= '/*#MAIN' '*/' ::= '/*#CODE' '*/' Definition of grammar see META_GRAMMAR in a macro call symbol. $GRAMMAR_SIGNALDEF Z100: 2.5.4 Signal Z100: 6.3 Specialization Z100: 6.3.1 Inherits Z100: 6.2 Actual context parameters Z100: 6.2 Formal context parameters Z100: 6.2.9 Sort context parameter ::= 'SIGNAL' ( ( / $ ) ( / $ ) ( '(' \',' ')' / $) ( / $) ( / $ ) )\',' ';' ::= 'REFINEMENT' ( ('REVERSE' / $) )+ 'ENDREFINEMENT' ::= '/*#PRIO' '*/' ::= 'INHERITS' ( / $) ('ADDING' / $) ::= '<' ( / $)\',' '>' ::= '<' \';' '>' ::= 'NEWTYPE' ( 'ATLEAST' / / $ ) ::= 'ENDNEWTYPE' (/$) ::= ( / $ ) ( 'OPERATORS' ( ( / 'ORDERING' ) ';' )+ / $ ) ::= 'LITERALS' ( / / ) )\',' (';' / $) ::= ':' \',' '->' $GRAMMAR_SIGNALLIST Z100: 2.5.5 ::= 'SIGNALLIST' '=' ';' ::= ( / / '(' ')' )\',' $GRAMMAR_NEWTYPE Z100: 5.2.1 Newtype Z100: 5.3.1.10 Structure Z100: 5.3.1.12.2 Generator Z100: 5.3.1.11 Inheritance Z100: 5.2.2 Literals Z100: 5.2.2 Operators Z100: 5.3.1.9.1 Range condition Z100: 5.3.2 Operator definitions Z100: 5.4.3.3 Default assignment Z100: 5.4.6 External properties Telelogic Bit field, Initializer, Optional Telelogic Choice ::= 'NEWTYPE' ( / $ ) ( / $ ) ( / $ ) ( / $ ) 'ENDNEWTYPE' ( / $ ) ';' ::= / / / ::= 'STRUCT' ( / ( \',' ( 'OPTIONAL' / / / $ ) ';' ) )+ ('ADDING' / $) ::= ':' ::= ':=' ::= 'CHOICE' ( \',' ( / $) ';')+ ('ADDING' / $) ::= ( (';' / $) ('ADDING' / $) )+ ::= '(' ( / / / / )\',' ')' ::= 'INHERITS' ( / $) ( ('OPERATORS' / $) ('ALL' / '(' \',' ')' ) (';' / $) / $ ) ('ADDING' / $) ::= \',' ( 'NOEQUALITY' / $ ) ::= ( '=' / $) ::= 'LITERALS' ( ( / ) '=' ( / ) )\',' ';' ::= ( / ) ( / $) ::= ( / $ ) ( 'OPERATORS' ( ( / 'ORDERING' / 'NOEQUALITY' ) ';' ( / $ ) )+ / $ ) ::= 'LITERALS' ( ( / / ) ( / $ ) )\',' (';' / $) ::= ':' \',' '->' ::= ( / $ ) ( 'AXIOMS' / $) ( / $) ::= ( / )+ ::= 'OPERATOR' 'REFERENCED' ';' ::= 'DEFAULT' (';' / $) ::= 'CONSTANTS' \',' ::= ( ('=' / '/=' / '<' / '>' / '<=' / '>=') / ( ':' / $ ) ) ::= '<' \';' '>' ::= ( 'SYNONYM' ( )\',' / 'NEWTYPE' ( 'ATLEAST' / / $ ) ) ::= 'ENDNEWTYPE' (/$) ::= 'ALTERNATIVE' (/$) ';' ( 'ENDALTERNATIVE' / $ ) ';' ::= '/*#ADT' '(' ')' ( '#TYPE' / $ ) ( '#HEADING' / $ ) ( '#BODY' / $ ) '*/' ::= '/*#OP' '(' ')' '*/' $GRAMMAR_SYNTYPE Z100: 5.3.1.9 Syntype Z100: 5.3.1.9.1 Range condition Z100: 5.4.3.3 Default assignment ::= 'SYNTYPE' '=' ( / $) ( / $) 'ENDSYNTYPE' ( / $) ';' = 'DEFAULT' (';' / $) ::= 'CONSTANTS' \',' ::= ( ('=' / '/=' / '<' / '>' / '<=' / '>=') / ( ':' / $ ) ) $GRAMMAR_SYNONYM Z100: 5.3.1.13 Synonym Z100: 4.3.1 External synonym ::= 'SYNONYM' ( ( / $) '=' ( / 'EXTERNAL' ) )\',' ';' $GRAMMAR_GENERATOR Z100: 5.3.1.12.1 ::= 'GENERATOR' ( / $) 'ENDGENERATOR' ( / $) ';' ::= '(' ( ('TYPE' / 'LITERAL' / 'OPERATOR' / 'CONSTANT') \',' )\',' ')' see GRAMMAR_NEWTYPE see GRAMMAR_NEWTYPE $GRAMMAR_REMOTE ::= 'REMOTE' ( \',' ( 'NODELAY' / $ ) )\',' ';' ::= 'REMOTE' 'PROCEDURE' ( 'NODELAY' / $ ) ';' ( ';' / $ ) ::= ( 'FPAR' ( ('IN' / 'IN/OUT' / $) )\',' ( ';' 'RETURNS' / $) / 'RETURNS' / $ ) $GRAMMAR_PROCEDURE ::= 'PROCEDURE' ( ';' / $ ) ( ';' / $ ) 'EXTERNAL' ';' ::= 'FPAR' ( ('IN' / 'IN/OUT' / $) \',' )\',' ';' ::= 'RETURNS' (/$) $GRAMMAR_TEXTUAL_PROCEDURE ::= 'PROCEDURE' ( / $ ) ( / $ ) ( / $ ) ( / $ ) ( / $ ) ( / 'ENDPROCEDURE' ( / $ ) ';' ) $MAIN_Directive /*#MAIN C_code */ $CODE_Directive /*#CODE #TYPE C_code #HEADING C_code #BODY C_code */ $SignalDef SIGNAL SignalName, SignalName(SortName), SignalName(SortName, SortName); $PRIO_Directive /*#PRIO Value */ $Signallist SIGNALLIST SignalListName = SignalName, SignalName, (SignalListName); $SignallistRemotePrd SIGNALLIST SignalListName = SignalName, SignalName, PROCEDURE RemotePrdName; $Newtype_Struct NEWTYPE SortName STRUCT ConponentName, ComponentName SortName; ComponentName SortName; ENDNEWTYPE; $Newtype_Struct_Optional NEWTYPE SortName STRUCT ConponentName SortName OPTIONAL; ComponentName SortName; ENDNEWTYPE; $Newtype_Struct_Initializer NEWTYPE SortName STRUCT ConponentName SortName := Value; ComponentName SortName; ENDNEWTYPE; $Newtype_Struct_Bitfield NEWTYPE SortName STRUCT ConponentName Integer : 4; ComponentName UnsignedInt : 1; : 0; ComponentName UnsignedInt : 1; ENDNEWTYPE; $Newtype_Choice NEWTYPE SortName CHOICE ConponentName, ComponentName SortName; ComponentName SortName; ENDNEWTYPE; $Newtype_Array NEWTYPE SortName ARRAY(IndexSortName, ComponentSortName) ENDNEWTYPE; $Newtype_Bag NEWTYPE SortName BAG(ComponentSortName) ENDNEWTYPE; $Newtype_CArray NEWTYPE SortName CARRAY(Length, ComponentSortName) ENDNEWTYPE; $Newtype_Powerset NEWTYPE SortName POWERSET(ComponentSortName) ENDNEWTYPE; $Newtype_Ref NEWTYPE SortName REF(ComponentSortName) ENDNEWTYPE; $Newtype_String NEWTYPE SortName STRING(ComponentSortName, EmptystringLiteralName) ENDNEWTYPE; $Newtype_enum NEWTYPE SortName LITERALS LiteralName, LiteralName; ENDNEWTYPE; $Newtype_Struct_add NEWTYPE SortName STRUCT ConponentName, ComponentName SortName; ComponentName SortName; ADDING LITERALS LiteralName, LiteralName; OPERATORS OperatorName : SortName, SortName -> SortName; DEFAULT (. Value, Value, Value .) ENDNEWTYPE; $Newtype_Array_add NEWTYPE SortName ARRAY(IndexSortName, ComponentSortName) ADDING LITERALS LiteralName, LiteralName; OPERATORS OperatorName : SortName, SortName -> SortName; DEFAULT (. Value .) ENDNEWTYPE; $Newtype_Operator NEWTYPE SortName OPERATORS OperatorName : SortName, SortName -> SortName; OPERATOR OperatorName REFERENCED; ENDNEWTYPE; $Newtype_Operator2 NEWTYPE SortName OPERATORS Add: int, int -> int; OPERATOR Add FPAR a,b int returns int { return a+b; } ENDNEWTYPE; $OperatorSign1 OperatorName : SortName -> SortName; $OperatorSign2 OperatorName : SortName, SortName -> SortName; $OperatorSign3 OperatorName : SortName, SortName, SortName -> SortName; $OperatorSign1_NAME OperatorName /*#NAME 'NameInC'*/ : SortName -> SortName; $OperatorSign2_NAME OperatorName /*#NAME 'NameInC'*/ : SortName, SortName -> SortName; $OperatorSign3_NAME OperatorName /*#NAME 'NameInC'*/ : SortName, SortName, SortName -> SortName; $NAME_Directive /*#NAME 'NameInC'*/ $OP_Directive /*#OP(BP)*/ $ADT_Directive /*#ADT(BP) #TYPE C_code #HEADING C_code #BODY C_code */ $Simple_Syntype SYNTYPE SortName = SortName ENDSYNTYPE; $Syntype SYNTYPE SortName = SortName DEFAULT Value CONSTANTS Value:Value ENDSYNTYPE; $Integer_Syntype SYNTYPE SortName = Integer CONSTANTS Value:Value ENDSYNTYPE; $Synonym SYNONYM SynonymName SortName = Value; $ExternalSynonym SYNONYM SynonymName SortName = EXTERNAL; $ExternalProcedure PROCEDURE ProcedureName; FPAR IN FparName SortName, IN/OUT FparName SortName; EXTERNAL; $ExternalProcedure PROCEDURE ProcedureName; FPAR IN FparName SortName; RETURNS SortName; EXTERNAL; $TextualProcedure PROCEDURE ProcedureName FPAR IN FparName SortName RETURNS SortName { OUTPUT SignalName; RETURN Expression; } $TextualProcedure PROCEDURE ProcedureName; FPAR IN FparName SortName; START; RETURN; ENDPROCEDURE; @SDL@TEXTSYMBOL_PROCESS@Text symbol $GRAMMAR Z100: 2.5.4 Signal Z100: 2.5.5 Signal list Z100: 5.2.1 Newtype Z100: 5.3.1.9 Syntype Z100: 5.3.1.13 Synonym Z100: 5.3.1.12.1 Generator Z100: 2.6.1.1 Variable Z100: 2.6.1.2 View Z100: 2.8 Timer Z100: 4.13 Remote variable Z100: 4.13 Imported variable Z100: 4.14 Remote procedure Z100: 4.14 Imported procedure SDL-96 External procedure Textual Algorithms Textual procedure ::= ( / $ ) ( ( / / / / / / / / / / / / / / ) ) ( / $ ) )* ::= '/*#CODE' '*/' Definition of grammar see META_GRAMMAR in a macro call symbol. $GRAMMAR_SIGNALDEF Z100: 2.5.4 Signal Z100: 6.3 Specialization Z100: 6.3.1 Inherits Z100: 6.2 Actual context parameters Z100: 6.2 Formal context parameters Z100: 6.2.9 Sort context parameter ::= 'SIGNAL' ( ( / $ ) ( / $ ) ( '(' \',' ')' / $) ( / $) ( / $ ) )\',' ';' ::= 'REFINEMENT' ( ('REVERSE' / $) )+ 'ENDREFINEMENT' ::= '/*#PRIO' '*/' ::= 'INHERITS' ( / $) ('ADDING' / $) ::= '<' ( / $)\',' '>' ::= '<' \';' '>' ::= 'NEWTYPE' ( 'ATLEAST' / / $ ) ::= 'ENDNEWTYPE' (/$) ::= ( / $ ) ( 'OPERATORS' ( ( / 'ORDERING' ) ';' )+ / $ ) ::= 'LITERALS' ( / / ) )\',' (';' / $) ::= ':' \',' '->' $GRAMMAR_SIGNALLIST Z100: 2.5.5 ::= 'SIGNALLIST' '=' ';' ::= ( / / '(' ')' )\',' $GRAMMAR_NEWTYPE Z100: 5.2.1 Newtype Z100: 5.3.1.10 Structure Z100: 5.3.1.12.2 Generator Z100: 5.3.1.11 Inheritance Z100: 5.2.2 Literals Z100: 5.2.2 Operators Z100: 5.3.1.9.1 Range condition Z100: 5.3.2 Operator definitions Z100: 5.4.3.3 Default assignment Z100: 5.4.6 External properties Telelogic Bit field, Initializer, Optional Telelogic Choice ::= 'NEWTYPE' ( / $ ) ( / $ ) ( / $ ) ( / $ ) 'ENDNEWTYPE' ( / $ ) ';' ::= / / / ::= 'STRUCT' ( / ( \',' ( 'OPTIONAL' / / / $ ) ';' ) )+ ('ADDING' / $) ::= ':' ::= ':=' ::= 'CHOICE' ( \',' ( / $) ';')+ ('ADDING' / $) ::= ( (';' / $) ('ADDING' / $) )+ ::= '(' ( / / / / )\',' ')' ::= 'INHERITS' ( / $) ( ('OPERATORS' / $) ('ALL' / '(' \',' ')' ) (';' / $) / $ ) ('ADDING' / $) ::= \',' ( 'NOEQUALITY' / $ ) ::= ( '=' / $) ::= 'LITERALS' ( ( / ) '=' ( / ) )\',' ';' ::= ( / ) ( / $) ::= ( / $ ) ( 'OPERATORS' ( ( / 'ORDERING' / 'NOEQUALITY' ) ';' ( / $ ) )+ / $ ) ::= 'LITERALS' ( ( / / ) ( / $ ) )\',' (';' / $) ::= ':' \',' '->' ::= ( / $ ) ( 'AXIOMS' / $) ( / $) ::= ( / )+ ::= 'OPERATOR' 'REFERENCED' ';' ::= 'DEFAULT' (';' / $) ::= 'CONSTANTS' \',' ::= ( ('=' / '/=' / '<' / '>' / '<=' / '>=') / ( ':' / $ ) ) ::= '<' \';' '>' ::= ( 'SYNONYM' ( )\',' / 'NEWTYPE' ( 'ATLEAST' / / $ ) ) ::= 'ENDNEWTYPE' (/$) ::= 'ALTERNATIVE' (/$) ';' ( 'ENDALTERNATIVE' / $ ) ';' ::= '/*#ADT' '(' ')' ( '#TYPE' / $ ) ( '#HEADING' / $ ) ( '#BODY' / $ ) '*/' ::= '/*#OP' '(' ')' '*/' $GRAMMAR_SYNTYPE Z100: 5.3.1.9 Syntype Z100: 5.3.1.9.1 Range condition Z100: 5.4.3.3 Default assignment ::= 'SYNTYPE' '=' ( / $) ( / $) 'ENDSYNTYPE' ( / $) ';' = 'DEFAULT' (';' / $) ::= 'CONSTANTS' \',' ::= ( ('=' / '/=' / '<' / '>' / '<=' / '>=') / ( ':' / $ ) ) $GRAMMAR_SYNONYM Z100: 5.3.1.13 Synonym Z100: 4.3.1 External synonym ::= 'SYNONYM' ( ( / $) '=' ( / 'EXTERNAL' ) )\',' ';' $GRAMMAR_GENERATOR Z100: 5.3.1.12.1 ::= 'GENERATOR' ( / $) 'ENDGENERATOR' ( / $) ';' ::= '(' ( ('TYPE' / 'LITERAL' / 'OPERATOR' / 'CONSTANT') \',' )\',' ')' see GRAMMAR_NEWTYPE see GRAMMAR_NEWTYPE $GRAMMAR_VARIABLE Z100: 2.6.1.1 Variable Z100: 2.3.2 Variable Z100: 4.13 Exported variable Z100: 5.3.3.2 Ground expression Z100: 5.3.3.1 Expression ::= 'DCL' ( 'REVEALED' ('EXPORTED' / $) / 'EXPORTED' ('REVEALED' / $) / $ ) ( ( )\',' ( ':=' / $) )\',' ';' ::= ( 'AS' / $ ) ::= $GRAMMAR_VIEW Z100: 2.6.1.2 ::= 'VIEWED' ( \',' )\',' ';' $GRAMMAR_TIMER Z100: 2.8 ::= 'TIMER' ( ( / $) ( / $ ) )\',' ';' ::= '(' \',' ')' ::= ':=' ::= $GRAMMAR_REMOTE_IMPORT ::= 'REMOTE' ( \',' ( 'NODELAY' / $ ) )\',' ';' ::= 'IMPORTED' ( \',' )\',' ';' ::= 'REMOTE' 'PROCEDURE' ( 'NODELAY' / $ ) ';' ( ';' / $ ) ::= 'IMPORTED' 'PROCEDURE' ';' ( ';' / $ ) ::= ( 'FPAR' ( ('IN' / 'IN/OUT' / $) )\',' ( ';' 'RETURNS' / $) / 'RETURNS' / $ ) $GRAMMAR_PROCEDURE ::= 'PROCEDURE' ( ';' / $ ) ( ';' / $ ) 'EXTERNAL' ';' ::= 'FPAR' ( ('IN' / 'IN/OUT' / $) \',' )\',' ';' ::= 'RETURNS' (/$) $GRAMMAR_TEXTUAL_PROCEDURE ::= 'PROCEDURE' ( / $ ) ( / $ ) ( / $ ) ( / $ ) ( / $ ) ( / 'ENDPROCEDURE' ( / $ ) ';' ) $CODE_Directive /*#CODE #TYPE C_code #HEADING C_code #BODY C_code */ $SignalDef SIGNAL SignalName, SignalName(SortName), SignalName(SortName, SortName); $PRIO_Directive /*#PRIO Value */ $Signallist SIGNALLIST SignalListName = SignalName, SignalName, (SignalListName); $SignallistRemotePrd SIGNALLIST SignalListName = SignalName, SignalName, PROCEDURE RemotePrdName; $Newtype_Struct NEWTYPE SortName STRUCT ConponentName, ComponentName SortName; ComponentName SortName; ENDNEWTYPE; $Newtype_Struct_Optional NEWTYPE SortName STRUCT ConponentName SortName OPTIONAL; ComponentName SortName; ENDNEWTYPE; $Newtype_Struct_Initializer NEWTYPE SortName STRUCT ConponentName SortName := Value; ComponentName SortName; ENDNEWTYPE; $Newtype_Struct_Bitfield NEWTYPE SortName STRUCT ConponentName Integer : 4; ComponentName UnsignedInt : 1; : 0; ComponentName UnsignedInt : 1; ENDNEWTYPE; $Newtype_Choice NEWTYPE SortName CHOICE ConponentName, ComponentName SortName; ComponentName SortName; ENDNEWTYPE; $Newtype_Array NEWTYPE SortName ARRAY(IndexSortName, ComponentSortName) ENDNEWTYPE; $Newtype_Bag NEWTYPE SortName BAG(ComponentSortName) ENDNEWTYPE; $Newtype_CArray NEWTYPE SortName CARRAY(Length, ComponentSortName) ENDNEWTYPE; $Newtype_Powerset NEWTYPE SortName POWERSET(ComponentSortName) ENDNEWTYPE; $Newtype_Ref NEWTYPE SortName REF(ComponentSortName) ENDNEWTYPE; $Newtype_String NEWTYPE SortName STRING(ComponentSortName, EmptystringLiteralName) ENDNEWTYPE; $Newtype_enum NEWTYPE SortName LITERALS LiteralName, LiteralName; ENDNEWTYPE; $Newtype_Struct_add NEWTYPE SortName STRUCT ConponentName, ComponentName SortName; ComponentName SortName; ADDING LITERALS LiteralName, LiteralName; OPERATORS OperatorName : SortName, SortName -> SortName; DEFAULT (. Value, Value, Value .) ENDNEWTYPE; $Newtype_Array_add NEWTYPE SortName ARRAY(IndexSortName, ComponentSortName) ADDING LITERALS LiteralName, LiteralName; OPERATORS OperatorName : SortName, SortName -> SortName; DEFAULT (. Value .) ENDNEWTYPE; $Newtype_Operator NEWTYPE SortName OPERATORS OperatorName : SortName, SortName -> SortName; OPERATOR OperatorName REFERENCED; ENDNEWTYPE; $Newtype_Operator2 NEWTYPE SortName OPERATORS Add: int, int -> int; OPERATOR Add FPAR a,b int returns int { return a+b; } ENDNEWTYPE; $OperatorSign1 OperatorName : SortName -> SortName; $OperatorSign2 OperatorName : SortName, SortName -> SortName; $OperatorSign3 OperatorName : SortName, SortName, SortName -> SortName; $OperatorSign1_NAME OperatorName /*#NAME 'NameInC'*/ : SortName -> SortName; $OperatorSign2_NAME OperatorName /*#NAME 'NameInC'*/ : SortName, SortName -> SortName; $OperatorSign3_NAME OperatorName /*#NAME 'NameInC'*/ : SortName, SortName, SortName -> SortName; $NAME_Directive /*#NAME 'NameInC'*/ $OP_Directive /*#OP(BP)*/ $ADT_Directive /*#ADT(BP) #TYPE C_code #HEADING C_code #BODY C_code */ $Simple_Syntype SYNTYPE SortName = SortName ENDSYNTYPE; $Syntype SYNTYPE SortName = SortName DEFAULT Value CONSTANTS Value:Value ENDSYNTYPE; $Integer_Syntype SYNTYPE SortName = Integer CONSTANTS Value:Value ENDSYNTYPE; $Synonym SYNONYM SynonymName SortName = Value; $ExternalSynonym SYNONYM SynonymName SortName = EXTERNAL; $Dcl DCL VariableName SortName, VariableName SortName; $Dcl_Exported DCL EXPORTED VariableName SortName; $Dcl_Revealed DCL REVEALED VariableName SortName; $Imported_Variable IMPORTED VariableName SortName; $Viewed_Variable VIEWED VariableName SortName; $TimerDef TIMER TimerName, TimerName; $Timer_with_Param TIMER TimerName(SortName, SortName); $ExternalProcedure PROCEDURE ProcedureName; FPAR IN FparName SortName, IN/OUT FparName SortName; EXTERNAL; $ExternalProcedure PROCEDURE ProcedureName; FPAR IN FparName SortName; RETURNS SortName; EXTERNAL; $TextualProcedure PROCEDURE ProcedureName FPAR IN FparName SortName RETURNS SortName { OUTPUT SignalName; RETURN Expression; } $TextualProcedure PROCEDURE ProcedureName; FPAR IN FparName SortName; START; RETURN; ENDPROCEDURE; @SDL@TEXTSYMBOL_PROCEDURE@Text symbol $GRAMMAR Z100: 5.2.1 Newtype Z100: 5.3.1.9 Syntype Z100: 5.3.1.13 Synonym Z100: 5.3.1.12.1 Generator Z100: 2.6.1.1 Variable SDL-96 External procedure Textual Algorithms Textual procedure ::= ( / $ ) ( ( / / / / / / ) ( / $ ) )* ::= '/*#CODE' '*/' Definition of grammar see META_GRAMMAR in a macro call symbol. $GRAMMAR_NEWTYPE Z100: 5.2.1 Newtype Z100: 5.3.1.10 Structure Z100: 5.3.1.12.2 Generator Z100: 5.3.1.11 Inheritance Z100: 5.2.2 Literals Z100: 5.2.2 Operators Z100: 5.3.1.9.1 Range condition Z100: 5.3.2 Operator definitions Z100: 5.4.3.3 Default assignment Z100: 5.4.6 External properties Telelogic Bit field, Initializer, Optional Telelogic Choice ::= 'NEWTYPE' ( / $ ) ( / $ ) ( / $ ) ( / $ ) 'ENDNEWTYPE' ( / $ ) ';' ::= / / / ::= 'STRUCT' ( / ( \',' ( 'OPTIONAL' / / / $ ) ';' ) )+ ('ADDING' / $) ::= ':' ::= ':=' ::= 'CHOICE' ( \',' ( / $) ';')+ ('ADDING' / $) ::= ( (';' / $) ('ADDING' / $) )+ ::= '(' ( / / / / )\',' ')' ::= 'INHERITS' ( / $) ( ('OPERATORS' / $) ('ALL' / '(' \',' ')' ) (';' / $) / $ ) ('ADDING' / $) ::= \',' ( 'NOEQUALITY' / $ ) ::= ( '=' / $) ::= 'LITERALS' ( ( / ) '=' ( / ) )\',' ';' ::= ( / ) ( / $) ::= ( / $ ) ( 'OPERATORS' ( ( / 'ORDERING' / 'NOEQUALITY' ) ';' ( / $ ) )+ / $ ) ::= 'LITERALS' ( ( / / ) ( / $ ) )\',' (';' / $) ::= ':' \',' '->' ::= ( / $ ) ( 'AXIOMS' / $) ( / $) ::= ( / )+ ::= 'OPERATOR' 'REFERENCED' ';' ::= 'DEFAULT' (';' / $) ::= 'CONSTANTS' \',' ::= ( ('=' / '/=' / '<' / '>' / '<=' / '>=') / ( ':' / $ ) ) ::= '<' \';' '>' ::= ( 'SYNONYM' ( )\',' / 'NEWTYPE' ( 'ATLEAST' / / $ ) ) ::= 'ENDNEWTYPE' (/$) ::= 'ALTERNATIVE' (/$) ';' ( 'ENDALTERNATIVE' / $ ) ';' ::= '/*#ADT' '(' ')' ( '#TYPE' / $ ) ( '#HEADING' / $ ) ( '#BODY' / $ ) '*/' ::= '/*#OP' '(' ')' '*/' $GRAMMAR_SYNTYPE Z100: 5.3.1.9 Syntype Z100: 5.3.1.9.1 Range condition Z100: 5.4.3.3 Default assignment ::= 'SYNTYPE' '=' ( / $) ( / $) 'ENDSYNTYPE' ( / $) ';' = 'DEFAULT' (';' / $) ::= 'CONSTANTS' \',' ::= ( ('=' / '/=' / '<' / '>' / '<=' / '>=') / ( ':' / $ ) ) $GRAMMAR_SYNONYM Z100: 5.3.1.13 Synonym Z100: 4.3.1 External synonym ::= 'SYNONYM' ( ( / $) '=' ( / 'EXTERNAL' ) )\',' ';' $GRAMMAR_GENERATOR Z100: 5.3.1.12.1 ::= 'GENERATOR' ( / $) 'ENDGENERATOR' ( / $) ';' ::= '(' ( ('TYPE' / 'LITERAL' / 'OPERATOR' / 'CONSTANT') \',' )\',' ')' see GRAMMAR_NEWTYPE see GRAMMAR_NEWTYPE $GRAMMAR_VARIABLE Z100: 2.6.1.1 Variable Z100: 2.3.2 Variable Z100: 2.6.4 Revealed, exported not allowed Z100: 5.3.3.2 Ground expression Z100: 5.3.3.1 Expression ::= 'DCL' ( \',' ( ':=' / $) )\',' ';' ::= $GRAMMAR_PROCEDURE ::= 'PROCEDURE' ( ';' / $ ) ( ';' / $ ) 'EXTERNAL' ';' ::= 'FPAR' ( ('IN' / 'IN/OUT' / $) \',' )\',' ';' ::= 'RETURNS' (/$) $GRAMMAR_TEXTUAL_PROCEDURE ::= 'PROCEDURE' ( / $ ) ( / $ ) ( / $ ) ( / $ ) ( / $ ) ( / 'ENDPROCEDURE' ( / $ ) ';' ) $CODE_Directive /*#CODE #TYPE C_code #HEADING C_code #BODY C_code */ $Newtype_Struct NEWTYPE SortName STRUCT ConponentName, ComponentName SortName; ComponentName SortName; ENDNEWTYPE; $Newtype_Struct_Optional NEWTYPE SortName STRUCT ConponentName SortName OPTIONAL; ComponentName SortName; ENDNEWTYPE; $Newtype_Struct_Initializer NEWTYPE SortName STRUCT ConponentName SortName := Value; ComponentName SortName; ENDNEWTYPE; $Newtype_Struct_Bitfield NEWTYPE SortName STRUCT ConponentName Integer : 4; ComponentName UnsignedInt : 1; : 0; ComponentName UnsignedInt : 1; ENDNEWTYPE; $Newtype_Choice NEWTYPE SortName CHOICE ConponentName, ComponentName SortName; ComponentName SortName; ENDNEWTYPE; $Newtype_Array NEWTYPE SortName ARRAY(IndexSortName, ComponentSortName) ENDNEWTYPE; $Newtype_Bag NEWTYPE SortName BAG(ComponentSortName) ENDNEWTYPE; $Newtype_CArray NEWTYPE SortName CARRAY(Length, ComponentSortName) ENDNEWTYPE; $Newtype_Powerset NEWTYPE SortName POWERSET(ComponentSortName) ENDNEWTYPE; $Newtype_Ref NEWTYPE SortName REF(ComponentSortName) ENDNEWTYPE; $Newtype_String NEWTYPE SortName STRING(ComponentSortName, EmptystringLiteralName) ENDNEWTYPE; $Newtype_enum NEWTYPE SortName LITERALS LiteralName, LiteralName; ENDNEWTYPE; $Newtype_Struct_add NEWTYPE SortName STRUCT ConponentName, ComponentName SortName; ComponentName SortName; ADDING LITERALS LiteralName, LiteralName; OPERATORS OperatorName : SortName, SortName -> SortName; DEFAULT (. Value, Value, Value .) ENDNEWTYPE; $Newtype_Array_add NEWTYPE SortName ARRAY(IndexSortName, ComponentSortName) ADDING LITERALS LiteralName, LiteralName; OPERATORS OperatorName : SortName, SortName -> SortName; DEFAULT (. Value .) ENDNEWTYPE; $Newtype_Operator NEWTYPE SortName OPERATORS OperatorName : SortName, SortName -> SortName; OPERATOR OperatorName REFERENCED; ENDNEWTYPE; $Newtype_Operator2 NEWTYPE SortName OPERATORS Add: int, int -> int; OPERATOR Add FPAR a,b int returns int { return a+b; } ENDNEWTYPE; $OperatorSign1 OperatorName : SortName -> SortName; $OperatorSign2 OperatorName : SortName, SortName -> SortName; $OperatorSign3 OperatorName : SortName, SortName, SortName -> SortName; $OperatorSign1_NAME OperatorName /*#NAME 'NameInC'*/ : SortName -> SortName; $OperatorSign2_NAME OperatorName /*#NAME 'NameInC'*/ : SortName, SortName -> SortName; $OperatorSign3_NAME OperatorName /*#NAME 'NameInC'*/ : SortName, SortName, SortName -> SortName; $NAME_Directive /*#NAME 'NameInC'*/ $OP_Directive /*#OP(BP)*/ $ADT_Directive /*#ADT(BP) #TYPE C_code #HEADING C_code #BODY C_code */ $Simple_Syntype SYNTYPE SortName = SortName ENDSYNTYPE; $Syntype SYNTYPE SortName = SortName DEFAULT Value CONSTANTS Value:Value ENDSYNTYPE; $Integer_Syntype SYNTYPE SortName = Integer CONSTANTS Value:Value ENDSYNTYPE; $Synonym SYNONYM SynonymName SortName = Value; $ExternalSynonym SYNONYM SynonymName SortName = EXTERNAL; $Dcl DCL VariableName SortName, VariableName SortName; $Dcl_Exported DCL EXPORTED VariableName SortName; $Dcl_Revealed DCL REVEALED VariableName SortName; $ExternalProcedure PROCEDURE ProcedureName; FPAR IN FparName SortName, IN/OUT FparName SortName; EXTERNAL; $ExternalProcedure PROCEDURE ProcedureName; FPAR IN FparName SortName; RETURNS SortName; EXTERNAL; $TextualProcedure PROCEDURE ProcedureName FPAR IN FparName SortName RETURNS SortName { OUTPUT SignalName; RETURN Expression; } $TextualProcedure PROCEDURE ProcedureName; FPAR IN FparName SortName; START; RETURN; ENDPROCEDURE; @SDL@TEXTSYMBOL_SERVICE@Text symbol $GRAMMAR Z100: 5.2.1 Newtype Z100: 5.3.1.9 Syntype Z100: 5.3.1.13 Synonym Z100: 5.3.1.12.1 Generator Z100: 2.6.1.1 Variable Z100: 2.6.1.2 View Z100: 2.8 Timer Z100: 4.13 Imported variable Z100: 4.14 Imported procedure Textual Algorithms Textual procedure ::= ( / / / / / / / / / / ) )* Definition of grammar see META_GRAMMAR in a macro call symbol. $GRAMMAR_NEWTYPE Z100: 5.2.1 Newtype Z100: 5.3.1.10 Structure Z100: 5.3.1.12.2 Generator Z100: 5.3.1.11 Inheritance Z100: 5.2.2 Literals Z100: 5.2.2 Operators Z100: 5.3.1.9.1 Range condition Z100: 5.3.2 Operator definitions Z100: 5.4.3.3 Default assignment Z100: 5.4.6 External properties Telelogic Bit field, Initializer, Optional Telelogic Choice ::= 'NEWTYPE' ( / $ ) ( / $ ) ( / $ ) ( / $ ) 'ENDNEWTYPE' ( / $ ) ';' ::= / / / ::= 'STRUCT' ( / ( \',' ( 'OPTIONAL' / / / $ ) ';' ) )+ ('ADDING' / $) ::= ':' ::= ':=' ::= 'CHOICE' ( \',' ( / $) ';')+ ('ADDING' / $) ::= ( (';' / $) ('ADDING' / $) )+ ::= '(' ( / / / / )\',' ')' ::= 'INHERITS' ( / $) ( ('OPERATORS' / $) ('ALL' / '(' \',' ')' ) (';' / $) / $ ) ('ADDING' / $) ::= \',' ( 'NOEQUALITY' / $ ) ::= ( '=' / $) ::= 'LITERALS' ( ( / ) '=' ( / ) )\',' ';' ::= ( / ) ( / $) ::= ( / $ ) ( 'OPERATORS' ( ( / 'ORDERING' / 'NOEQUALITY' ) ';' ( / $ ) )+ / $ ) ::= 'LITERALS' ( ( / / ) ( / $ ) )\',' (';' / $) ::= ':' \',' '->' ::= ( / $ ) ( 'AXIOMS' / $) ( / $) ::= ( / )+ ::= 'OPERATOR' 'REFERENCED' ';' ::= 'DEFAULT' (';' / $) ::= 'CONSTANTS' \',' ::= ( ('=' / '/=' / '<' / '>' / '<=' / '>=') / ( ':' / $ ) ) ::= '<' \';' '>' ::= ( 'SYNONYM' ( )\',' / 'NEWTYPE' ( 'ATLEAST' / / $ ) ) ::= 'ENDNEWTYPE' (/$) ::= 'ALTERNATIVE' (/$) ';' ( 'ENDALTERNATIVE' / $ ) ';' ::= '/*#ADT' '(' ')' ( '#TYPE' / $ ) ( '#HEADING' / $ ) ( '#BODY' / $ ) '*/' ::= '/*#OP' '(' ')' '*/' $GRAMMAR_SYNTYPE Z100: 5.3.1.9 Syntype Z100: 5.3.1.9.1 Range condition Z100: 5.4.3.3 Default assignment ::= 'SYNTYPE' '=' ( / $) ( / $) 'ENDSYNTYPE' ( / $) ';' = 'DEFAULT' (';' / $) ::= 'CONSTANTS' \',' ::= ( ('=' / '/=' / '<' / '>' / '<=' / '>=') / ( ':' / $ ) ) $GRAMMAR_SYNONYM Z100: 5.3.1.13 Synonym Z100: 4.3.1 External synonym ::= 'SYNONYM' ( ( / $) '=' ( / 'EXTERNAL' ) )\',' ';' $GRAMMAR_GENERATOR Z100: 5.3.1.12.1 ::= 'GENERATOR' ( / $) 'ENDGENERATOR' ( / $) ';' ::= '(' ( ('TYPE' / 'LITERAL' / 'OPERATOR' / 'CONSTANT') \',' )\',' ')' see GRAMMAR_NEWTYPE see GRAMMAR_NEWTYPE $GRAMMAR_VARIABLE Z100: 2.6.1.1 Variable Z100: 2.3.2 Variable Z100: 4.13 Exported variable Z100: 5.3.3.2 Ground expression Z100: 5.3.3.1 Expression ::= 'DCL' ( 'REVEALED' ('EXPORTED' / $) / 'EXPORTED' ('REVEALED' / $) / $ ) ( ( )\',' ( ':=' / $) )\',' ';' ::= ( 'AS' / $ ) ::= $GRAMMAR_VIEW Z100: 2.6.1.2 ::= 'VIEWED' ( \',' )\',' ';' $GRAMMAR_TIMER Z100: 2.8 ::= 'TIMER' ( ( / $) ( / $ ) )\',' ';' ::= '(' \',' ')' ::= ':=' ::= $GRAMMAR_IMPORT ::= 'IMPORTED' ( \',' )\',' ';' ::= 'IMPORTED' 'PROCEDURE' ';' ( ';' / $ ) ::= ( 'FPAR' ( ('IN' / 'IN/OUT' / $) )\',' ( ';' 'RETURNS' / $) / 'RETURNS' / $ ) $GRAMMAR_PROCEDURE ::= 'PROCEDURE' ( ';' / $ ) ( ';' / $ ) 'EXTERNAL' ';' ::= 'FPAR' ( ('IN' / 'IN/OUT' / $) \',' )\',' ';' ::= 'RETURNS' (/$) $GRAMMAR_TEXTUAL_PROCEDURE ::= 'PROCEDURE' ( / $ ) ( / $ ) ( / $ ) ( / $ ) ( / $ ) ( / 'ENDPROCEDURE' ( / $ ) ';' ) $Newtype_Struct NEWTYPE SortName STRUCT ConponentName, ComponentName SortName; ComponentName SortName; ENDNEWTYPE; $Newtype_Struct_Optional NEWTYPE SortName STRUCT ConponentName SortName OPTIONAL; ComponentName SortName; ENDNEWTYPE; $Newtype_Struct_Initializer NEWTYPE SortName STRUCT ConponentName SortName := Value; ComponentName SortName; ENDNEWTYPE; $Newtype_Struct_Bitfield NEWTYPE SortName STRUCT ConponentName Integer : 4; ComponentName UnsignedInt : 1; : 0; ComponentName UnsignedInt : 1; ENDNEWTYPE; $Newtype_Choice NEWTYPE SortName CHOICE ConponentName, ComponentName SortName; ComponentName SortName; ENDNEWTYPE; $Newtype_Array NEWTYPE SortName ARRAY(IndexSortName, ComponentSortName) ENDNEWTYPE; $Newtype_Bag NEWTYPE SortName BAG(ComponentSortName) ENDNEWTYPE; $Newtype_CArray NEWTYPE SortName CARRAY(Length, ComponentSortName) ENDNEWTYPE; $Newtype_Powerset NEWTYPE SortName POWERSET(ComponentSortName) ENDNEWTYPE; $Newtype_Ref NEWTYPE SortName REF(ComponentSortName) ENDNEWTYPE; $Newtype_String NEWTYPE SortName STRING(ComponentSortName, EmptystringLiteralName) ENDNEWTYPE; $Newtype_enum NEWTYPE SortName LITERALS LiteralName, LiteralName; ENDNEWTYPE; $Newtype_Struct_add NEWTYPE SortName STRUCT ConponentName, ComponentName SortName; ComponentName SortName; ADDING LITERALS LiteralName, LiteralName; OPERATORS OperatorName : SortName, SortName -> SortName; DEFAULT (. Value, Value, Value .) ENDNEWTYPE; $Newtype_Array_add NEWTYPE SortName ARRAY(IndexSortName, ComponentSortName) ADDING LITERALS LiteralName, LiteralName; OPERATORS OperatorName : SortName, SortName -> SortName; DEFAULT (. Value .) ENDNEWTYPE; $Newtype_Operator NEWTYPE SortName OPERATORS OperatorName : SortName, SortName -> SortName; OPERATOR OperatorName REFERENCED; ENDNEWTYPE; $Newtype_Operator2 NEWTYPE SortName OPERATORS Add: int, int -> int; OPERATOR Add FPAR a,b int returns int { return a+b; } ENDNEWTYPE; $OperatorSign1 OperatorName : SortName -> SortName; $OperatorSign2 OperatorName : SortName, SortName -> SortName; $OperatorSign3 OperatorName : SortName, SortName, SortName -> SortName; $Simple_Syntype SYNTYPE SortName = SortName ENDSYNTYPE; $Syntype SYNTYPE SortName = SortName DEFAULT Value CONSTANTS Value:Value ENDSYNTYPE; $Integer_Syntype SYNTYPE SortName = Integer CONSTANTS Value:Value ENDSYNTYPE; $Synonym SYNONYM SynonymName SortName = Value; $ExternalSynonym SYNONYM SynonymName SortName = EXTERNAL; $Dcl DCL VariableName SortName, VariableName SortName; $Dcl_Exported DCL EXPORTED VariableName SortName; $Dcl_Revealed DCL REVEALED VariableName SortName; $Imported_Variable IMPORTED VariableName SortName; $Viewed_Variable VIEWED VariableName SortName; $TimerDef TIMER TimerName, TimerName; $Timer_with_Param TIMER TimerName(SortName, SortName); $ExternalProcedure PROCEDURE ProcedureName; FPAR IN FparName SortName, IN/OUT FparName SortName; EXTERNAL; $ExternalProcedure PROCEDURE ProcedureName; FPAR IN FparName SortName; RETURNS SortName; EXTERNAL; $TextualProcedure PROCEDURE ProcedureName FPAR IN FparName SortName RETURNS SortName { OUTPUT SignalName; RETURN Expression; } $TextualProcedure PROCEDURE ProcedureName; FPAR IN FparName SortName; START; RETURN; ENDPROCEDURE; @SDL@KERNEL_HEADING_MACRO@Kernel Heading $GRAMMAR Z100: 4.2.2 ::= 'MACRODEFINITION' $MacroKernelHeading MACRODEFINITION Name @SDL@ADDITIONAL_HEADING_MACRO@Additional Heading $GRAMMAR Z100: 4.2.2 ::= ( 'FPAR' \',' / $ ) @SDL@TEXTSYMBOL_MACRO@Text symbol $GRAMMAR Z100: 4.2.2 No grammar possible @SDL@MACROCALL@Macro call symbol $GRAMMAR Z100: 4.2.3 ::= ( '(' \',' ')' / $ ) ::= * $META_GRAMMAR The grammar used here is extended BNF. ',' terminal symbol non-terminal symbol ::= is defined as $ empty / or ( ) grouping * repeat zero or more times + repeat one or more times \ repeat over terminal \',' is defined as (',' )* Meta grammar: ::= '::=' ::= ( '/' )* ::= + ::= ( '*' / '+' / '\' / $ ) ::= / / '(' ')' / '$' ::= '<' '>' ::= ''' ''' @SDL@PAGENUMBER@Pagenumber $GRAMMAR Z100: 2.2.5 ::= ( ( '(' ')' / $ ) / $ ) @SDL@OPERATOR_REF@Operator symbol $GRAMMAR Operator reference in GR is an SDT extension. Z100: 5.3.2 Referenced operator in SDL-PR ::= 'OPERATOR' @SDL@KERNEL_HEADING_OPERATOR@Kernel Heading $GRAMMAR Z100: 5.3.2 ::= 'OPERATOR' @SDL@ADDITIONAL_HEADING_OPERATOR@Additional Heading $GRAMMAR Z100: 5.3.2 ::= ';' ';' ';' ::= 'FPAR' ( \',' )\',' ::= 'RETURNS' ( / $) $Param ; FPAR Name1 Sort1, Name2 Sort2; RETURNS Sort3; @SDL@TEXTSYMBOL_OPERATOR@Text symbol $GRAMMAR Z100: 5.2.1 Newtype Z100: 5.3.1.9 Syntype Z100: 5.3.1.13 Synonym Z100: 5.3.1.12.1 Generator Z100: 2.6.1.1 Variable ::= ( / $ ) ( ( / / / / ) ( / $ ) )* ::= '/*#CODE' '*/' $GRAMMAR_NEWTYPE Z100: 5.2.1 Newtype Z100: 5.3.1.10 Structure Z100: 5.3.1.12.2 Generator Z100: 5.3.1.11 Inheritance Z100: 5.2.2 Literals Z100: 5.2.2 Operators Z100: 5.3.1.9.1 Range condition Z100: 5.3.2 Operator definitions Z100: 5.4.3.3 Default assignment Z100: 5.4.6 External properties Telelogic Bit field, Initializer, Optional Telelogic Choice ::= 'NEWTYPE' ( / $ ) ( / $ ) ( / $ ) ( / $ ) 'ENDNEWTYPE' ( / $ ) ';' ::= / / / ::= 'STRUCT' ( / ( \',' ( 'OPTIONAL' / / / $ ) ';' ) )+ ('ADDING' / $) ::= ':' ::= ':=' ::= 'CHOICE' ( \',' ( / $) ';')+ ('ADDING' / $) ::= ( (';' / $) ('ADDING' / $) )+ ::= '(' ( / / / / )\',' ')' ::= 'INHERITS' ( / $) ( ('OPERATORS' / $) ('ALL' / '(' \',' ')' ) (';' / $) / $ ) ('ADDING' / $) ::= \',' ( 'NOEQUALITY' / $ ) ::= ( '=' / $) ::= 'LITERALS' ( ( / ) '=' ( / ) )\',' ';' ::= ( / ) ( / $) ::= ( / $ ) ( 'OPERATORS' ( ( / 'ORDERING' / 'NOEQUALITY' ) ';' ( / $ ) )+ / $ ) ::= 'LITERALS' ( ( / / ) ( / $ ) )\',' (';' / $) ::= ':' \',' '->' ::= ( / $ ) ( 'AXIOMS' / $) ( / $) ::= ( / )+ ::= 'OPERATOR' 'REFERENCED' ';' ::= 'DEFAULT' (';' / $) ::= 'CONSTANTS' \',' ::= ( ('=' / '/=' / '<' / '>' / '<=' / '>=') / ( ':' / $ ) ) ::= '<' \';' '>' ::= ( 'SYNONYM' ( )\',' / 'NEWTYPE' ( 'ATLEAST' / / $ ) ) ::= 'ENDNEWTYPE' (/$) ::= 'ALTERNATIVE' (/$) ';' ( 'ENDALTERNATIVE' / $ ) ';' ::= '/*#ADT' '(' ')' ( '#TYPE' / $ ) ( '#HEADING' / $ ) ( '#BODY' / $ ) '*/' ::= '/*#OP' '(' ')' '*/' $GRAMMAR_SYNTYPE Z100: 5.3.1.9 Syntype Z100: 5.3.1.9.1 Range condition Z100: 5.4.3.3 Default assignment ::= 'SYNTYPE' '=' ( / $) ( / $) 'ENDSYNTYPE' ( / $) ';' = 'DEFAULT' (';' / $) ::= 'CONSTANTS' \',' ::= ( ('=' / '/=' / '<' / '>' / '<=' / '>=') / ( ':' / $ ) ) $GRAMMAR_SYNONYM Z100: 5.3.1.13 Synonym Z100: 4.3.1 External synonym ::= 'SYNONYM' ( ( / $) '=' ( / 'EXTERNAL' ) )\',' ';' $GRAMMAR_GENERATOR Z100: 5.3.1.12.1 ::= 'GENERATOR' ( / $) 'ENDGENERATOR' ( / $) ';' ::= '(' ( ('TYPE' / 'LITERAL' / 'OPERATOR' / 'CONSTANT') \',' )\',' ')' see GRAMMAR_NEWTYPE see GRAMMAR_NEWTYPE $GRAMMAR_VARIABLE Z100: 2.6.1.1 Variable Z100: 2.3.2 Variable Z100: 5.3.3.2 Ground expression Z100: 5.3.3.1 Expression ::= 'DCL' ( \',' ( ':=' / $) )\',' ';' ::= $Newtype_Struct NEWTYPE SortName STRUCT ConponentName, ComponentName SortName; ComponentName SortName; ENDNEWTYPE; $Newtype_Struct_Optional NEWTYPE SortName STRUCT ConponentName SortName OPTIONAL; ComponentName SortName; ENDNEWTYPE; $Newtype_Struct_Initializer NEWTYPE SortName STRUCT ConponentName SortName := Value; ComponentName SortName; ENDNEWTYPE; $Newtype_Struct_Bitfield NEWTYPE SortName STRUCT ConponentName Integer : 4; ComponentName UnsignedInt : 1; : 0; ComponentName UnsignedInt : 1; ENDNEWTYPE; $Newtype_Choice NEWTYPE SortName CHOICE ConponentName, ComponentName SortName; ComponentName SortName; ENDNEWTYPE; $Newtype_Array NEWTYPE SortName ARRAY(IndexSortName, ComponentSortName) ENDNEWTYPE; $Newtype_Bag NEWTYPE SortName BAG(ComponentSortName) ENDNEWTYPE; $Newtype_CArray NEWTYPE SortName CARRAY(Length, ComponentSortName) ENDNEWTYPE; $Newtype_Powerset NEWTYPE SortName POWERSET(ComponentSortName) ENDNEWTYPE; $Newtype_Ref NEWTYPE SortName REF(ComponentSortName) ENDNEWTYPE; $Newtype_String NEWTYPE SortName STRING(ComponentSortName, EmptystringLiteralName) ENDNEWTYPE; $Newtype_enum NEWTYPE SortName LITERALS LiteralName, LiteralName; ENDNEWTYPE; $Newtype_Struct_add NEWTYPE SortName STRUCT ConponentName, ComponentName SortName; ComponentName SortName; ADDING LITERALS LiteralName, LiteralName; OPERATORS OperatorName : SortName, SortName -> SortName; DEFAULT (. Value, Value, Value .) ENDNEWTYPE; $Newtype_Array_add NEWTYPE SortName ARRAY(IndexSortName, ComponentSortName) ADDING LITERALS LiteralName, LiteralName; OPERATORS OperatorName : SortName, SortName -> SortName; DEFAULT (. Value .) ENDNEWTYPE; $Newtype_Operator NEWTYPE SortName OPERATORS OperatorName : SortName, SortName -> SortName; OPERATOR OperatorName REFERENCED; ENDNEWTYPE; $Newtype_Operator2 NEWTYPE SortName OPERATORS Add: int, int -> int; OPERATOR Add FPAR a,b int returns int { return a+b; } ENDNEWTYPE; $OperatorSign1 OperatorName : SortName -> SortName; $OperatorSign2 OperatorName : SortName, SortName -> SortName; $OperatorSign3 OperatorName : SortName, SortName, SortName -> SortName; $OperatorSign1_NAME OperatorName /*#NAME 'NameInC'*/ : SortName -> SortName; $OperatorSign2_NAME OperatorName /*#NAME 'NameInC'*/ : SortName, SortName -> SortName; $OperatorSign3_NAME OperatorName /*#NAME 'NameInC'*/ : SortName, SortName, SortName -> SortName; $NAME_Directive /*#NAME 'NameInC'*/ $OP_Directive /*#OP(BP)*/ $ADT_Directive /*#ADT(BP) #TYPE C_code #HEADING C_code #BODY C_code */ $Simple_Syntype SYNTYPE SortName = SortName ENDSYNTYPE; $Syntype SYNTYPE SortName = SortName DEFAULT Value CONSTANTS Value:Value ENDSYNTYPE; $Integer_Syntype SYNTYPE SortName = Integer CONSTANTS Value:Value ENDSYNTYPE; $Synonym SYNONYM SynonymName SortName = Value; $ExternalSynonym SYNONYM SynonymName SortName = EXTERNAL; $Dcl DCL VariableName SortName, VariableName SortName; @SDL@TEXT_REFERENCE@Text Reference $GRAMMAR Used to include PR text files ::= @SDL@CLASS_SYMBOL@Class symbol $GRAMMAR Used to define newtypes ::= ::= ( (':' / $) ';' )* ::= ( ( / $) ( / $) ';' )* ::= '(' ( ('IN' / 'IN/OUT' / $) (':' / $) )\',' ')' ::= (':' / '->') $Attributes attr1 : type1; attr2 type2; $Operators op1; op2(IN par1:type1, IN/OUT par2 type2); op3(par1 type1) : type2; op4 -> type1; @SDL@ASSOCIATION@Association symbol $GRAMMAR ::= any text(not used when defing newtypes) ::= ( / $ ) ( ('{' '}') / $ ) $Examples Assume the association points at the class ABC Rolename struct member generated Role1 Role1 ref_ABC Role1 {oref} Role1 oref_ABC Role1 {own} Role1 own_ABC Role1 {myType} Role1 myType @SDL@AGGREGATION@Aggregation symbol $GRAMMAR ::= any text(not used when defing newtypes) ::= ( / $ ) ( ('{' '}') / $ ) $Examples Assume the association points at the class ABC Rolename struct member generated Role1 Role1 ABC Role1 {oref} Role1 oref_ABC Role1 {own} Role1 own_ABC Role1 {myType} Role1 myType