Skip to main content

Block

rascal-0.34.0

Synopsis

Group statements into a block.

Syntax

{ 
Statement₁
...
Statementₙ
}

Description

A block consists of a sequence of statements. Some statements end in semi-colons (;) while some don't. The general rule is that every statement that does not end in a } should end in a ;.

Since a block is itself a statement, it may be used in all places where a statement is required. A block also introduces a new scope and variables that are declared in the block are local to that block. The value produced by a block is the value produced by its last statement (if any).

Examples

Here is a contrived block of three expressions (be aware of the last semi-colon):

rascal>{1;2;3;}
int: 3

its value is 3.

The effect of a local variable declared in a block can be seen as follows:

rascal>{int x = 3; x*x;}
int: 9

After the block we cannot refer to x:

rascal>x;
|prompt:///|(0,1,<1,0>,<1,1>): Undeclared variable: x
Advice: |https://www.rascal-mpl.org/docs/Rascal/Errors/CompileTimeErrors/UndeclaredVariable|
ok