@Part(05, Root="ada.mss") @Comment{$Date: 2019/02/09 03:46:54 $} @LabeledSection{Statements} @Comment{$Source: e:\\cvsroot/ARM/Source/05.mss,v $} @Comment{$Revision: 1.76 $} @begin{Intro} @Redundant[A @nt{statement} defines an action to be performed upon its execution.] @ChgRef{Version=[2],Kind=[Revised],ARef=[AI95-00318-02]} @ChgRef{Version=[3],Kind=[Revised],ARef=[AI05-0299-1]} @Redundant[This @Chg{Version=[3],New=[clause],Old=[section]} describes the general rules applicable to all @nt{statement}s. Some @nt{statement}s are discussed in later @Chg{Version=[3],New=[clauses],Old=[sections]}: @nt{Procedure_@!call_@!statement}s and @Chg{Version=[2],New=[return statements],Old=[@nt{return_@!statement}s]} are described in @RefSec{Subprograms}. @nt{Entry_@!call_@!statement}s, @nt{requeue_@!statement}s, @nt{delay_@!statement}s, @nt{accept_@!statement}s, @nt{select_@!statement}s, and @nt{abort_@!statement}s are described in @RefSec{Tasks and Synchronization}. @nt{Raise_@!statement}s are described in @RefSec{Exceptions}, and @nt{code_@!statement}s in @RefSecNum{Representation Issues}. The remaining forms of @nt{statement}s are presented in this @Chg{Version=[3],New=[clause],Old=[section]}.] @end{Intro} @begin{DiffWord83} @ChgRef{Version=[2],Kind=[Revised],ARef=[AI95-00318-02]} The description of @Chg{Version=[2],New=[return statements],Old=[@nt{return_@!statement}s]} has been moved to @RefSec{Return Statements}, so that it is closer to the description of subprograms. @end{DiffWord83} @LabeledClause{Simple and Compound Statements - Sequences of Statements} @begin{Intro} @ChgRef{Version=[5],Kind=[Revised],ARef=[AI12-0119-1]} @Redundant[A @nt is either simple or compound. A @nt encloses no other @nt. A @nt can enclose @nts and other @nts.]@Chg{Version=[5],New=[ A @i@Defn{parallel construct}@Defn2{Term=[construct],Sec=[parallel]} is a construct that introduces additional logical threads of control (see clause @RefSecNum{Tasks and Synchronization}) without creating a new task. Parallel loops (see @RefSecNum{Loop Statements}) and @nt{parallel_block_statement}s (see @RefSecNum{Parallel Block Statements}) are parallel constructs.@IndexSee{Term=[parallel processing],See=(parallel construct)} @IndexSee{Term=[concurrent processing],See=(parallel construct)}],Old=[]} @end{Intro} @begin{Syntax} @ChgRef{Version=[3],Kind=[Revised],ARef=[AI05-0179-1]} @Syn{lhs=,rhs="@Syn2{statement} {@Syn2{statement}}@Chg{Version=[3],New=[ {@Syn2{label}}],Old=[]}"} @Syn{lhs=,rhs=" {@Syn2{label}} @Syn2{simple_statement} | {@Syn2{label}} @Syn2{compound_statement}"} @ChgRef{Version=[2],Kind=[Revised],ARef=[AI95-00318-02]} @Syn{tabs=[P31], lhs=,rhs="@Syn2{null_statement} | @Syn2{assignment_statement}@\| @Syn2{exit_statement} | @Syn2{goto_statement}@\| @Syn2{procedure_call_statement} | @Chg{Version=[2],New=[@Syn2{simple_return_statement}],Old=[@Syn2{return_statement}]}@\| @Syn2{entry_call_statement} | @Syn2{requeue_statement}@\| @Syn2{delay_statement} | @Syn2{abort_statement}@\| @Syn2{raise_statement} | @Syn2{code_statement}"} @ChgRef{Version=[2],Kind=[Revised],ARef=[AI95-00318-02]} @ChgRef{Version=[5],Kind=[Revised],ARef=[AI12-0119-1]} @Syn{tabs=[P31], lhs=,rhs=" @Syn2{if_statement}@\| @Syn2{case_statement} | @Syn2{loop_statement}@\| @Syn2{block_statement}@Chg{Version=[2],New=[ | @Syn2{extended_return_statement}],Old=[]}@Chg{Version=[5],New=[ | @Syn2{parallel_block_statement}],Old=[]} | @Syn2{accept_statement}@\| @Syn2{select_statement}"} @Syn{lhs=,rhs="@key{null};"} @Syn{lhs=