8.5 Variable assignment

...
ENTITY e IS
    ...
BEGIN
    ...
END e ;

...
ARCHITECTURE a OF e IS
    ...
BEGIN
    ...
END a ;

...
CONFIGURATION c
        OF e IS
    ...
    ...
    ...
END

...
PACKAGE pkg IS
    ...
    ...
    ...
END pkg ;


variable_assignment_statement ::=

    [ label : ] target := expression ;

..
PACKAGE BODY pck
        IS
    ...
    ...
    ...
END pck ;

...
b: BLOCK IS
    ...
BEGIN
    ...
END BLOCK b ;

FUNCTION f (...)
    RETURN r IS
    ...
BEGIN
    ...
END f ;

PROCEDURE p (...) IS
    ...
BEGIN
    ...
END p ;

p : PROCESS
    ...
BEGIN
    ...
END PROCESS p ;

8.5.1 Further definitions

label ::= identifier

target ::=
    name
    | aggregate

expression ::=
    relation { and relation }
    | relation { or relation }
    | relation { xor relation }
    | relation [ nand relation ]
    | relation [ nor relation ]

8.5.2 Examples

var := 0;

var receives the value 0 .

a := b;

a receives the current value of b .

a := my_function ( data, 4 );

a receives the result of the function my_function as a new value.

str_a := "Mein Name ist "
        & get_name & ", und Ihrer ?";

str_a is assigned a string which consists of three interlinked parts.

var_int := my_function( data, 4 )
+ 4 * a_function(var_int) - 2 ** data;

var_int receives the result of the right equation as its value.