25.07.2014 Views

VDM-10 Language Manual

VDM-10 Language Manual

VDM-10 Language Manual

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!