![]() |
![]() |
![]() |
![]() |
(..Statement Part..) | Contents | Index | (..Statement Part) |
|
After giving the whole syntax diagram, we will discuss its different parts one
by one. Since we have already learnt something about both the syntax of a single
cell and of sets of cells
Loop, one can
easily think of a syntax used to
describe an assignment to these objects: we just treat them like normal
variables of type CELL (see 'Assignments to Variables')!
But first we combine Cell and Loop to a new class called CellDomain. To let all sites meant by CellDomain have the value CellExpression we simply type
(As in former cases, the semicolon is not part of CellAssignment (compare to VarAssignment; ).
If CellDomain should receive the state of another site Cell, we type
Please notice that every time CellDomain is a Loop set, all expressions on the right side of the equal sign are updated for each cell. This will also be done if the assignment affects only one register of the cell.
As former mentioned, it is possible to assign values only to a single register of the sites of CellDomain. In this case, instead of CellDomain, we use the projection
on an integer register IntRegIdentifier or
on a string register StringRegIdentifier and regard them (syntactically) as integer and string variables respectively. In 'Assignments to Variables' we have already pointed out how to do this.
Notice that there exists no analogue to
for single registers.
Besides this, it is not possible to assign the value of a site to a cell
variable.
That seems to be a restriction, but it is not. We can replace it by doing all
the relevant assignments twice,
to the site itself and
to the cell variable!
But actually we have not seen yet that we are allowed to do so in a RDL program. That is what the last paragraph of this chapter is about.
![]() |
![]() |
![]() |
![]() |
(..Statement Part..) | Contents | Index | (..Statement Part) |