VDM-10 Language Manual
VDM-10 Language Manual
VDM-10 Language Manual
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
A.9.2<br />
A.9.3<br />
A.9.4<br />
Block and Assignment Statements<br />
block statement = ‘(’, { dcl statement },<br />
statement, { ‘;’, statement }, [ ‘;’ ], ‘)’ ;<br />
dcl statement = ‘dcl’, assignment definition,<br />
{ ‘,’, assignment definition }, ‘;’ ;<br />
assignment definition = identifier, ‘:’, type, [ ‘:=’, expression ] ;<br />
general assign statement = assign statement<br />
| multiple assign statement ;<br />
assign statement = state designator, ‘:=’, expression ;<br />
multiple assign statement = ‘atomic’, ‘(’ assign statement, ‘;’,<br />
assign statement,<br />
[ { ‘;’, assign statement } ], ‘)’ ;<br />
Conditional Statements<br />
if statement = ‘if’, expression, ‘then’, statement,<br />
{ elseif statement },<br />
[ ‘else’, statement ] ;<br />
elseif statement = ‘elseif’, expression, ‘then’, statement ;<br />
cases statement = ‘cases’, expression, ‘:’,<br />
cases statement alternatives,<br />
[ ‘,’, others statement ], ‘end’ ;<br />
cases statement alternatives = cases statement alternative,<br />
{ ‘,’, cases statement alternative } ;<br />
cases statement alternative = pattern list, ‘->’, statement ;<br />
others statement = ‘others’, ‘->’, statement ;<br />
Loop Statements<br />
sequence for loop = ‘for’, pattern bind, ‘in’,<br />
expression, ‘do’, statement ;<br />
set for loop = ‘for’, ‘all’, pattern, ‘in set’, expression,<br />
‘do’, statement ;<br />
index for loop = ‘for’, identifier, ‘=’, expression, ‘to’, expression,<br />
[ ‘by’, expression ],<br />
‘do’, statement ;<br />
while loop = ‘while’, expression, ‘do’, statement ;<br />
<strong>VDM</strong>-<strong>10</strong> <strong>Language</strong> <strong>Manual</strong><br />
194