Declarations

When we encounter declarations, we need to lay out storage for the declared variables.

For every local name in a procedure, we create a ST(Symbol Table) entry containing:

  1. The type of the name
  2. How much storage the name requires

The production:

1.      D →    integer, id  

2.         D  →   real, id  

3.         D  →   D1, id  

A suitable transition scheme for declarations would be:

Production rule

Semantic action

D → integer, id

ENTER (id.PLACE, integer)
  D.ATTR = integer

D → real, id

ENTER (id.PLACE, real)
  D.ATTR = real

D → D1, id

ENTER (id.PLACE, D1.ATTR)
  D.ATTR = D1.ATTR

ENTER is used to make the entry into symbol table and ATTR is used to trace the data type.