

| 2 |
|
|
| 4 |
|
|
| 5 |
|
|
| 6 |
|
Los nodos declaration son un hash con una clave TYPE la cual
apunta a la estructura de datos/objeto
describiendo el tipo. La otra clave del hash IDLIST apunta a una
lista de identificadores. Los elementos de esta lista son simples
identificadores (identificados en la gramática árbol anterior
como
y no como objetos
).
La parte de la gramática implicada en las declaraciones es:
| declaration
|
| idlist
|
Así pues, el código construye un nodo de la clase
INT o STRING según sea el caso.
sub declaration() {
my ($t, $class, @il);
if (($lookahead eq 'INT') or ($lookahead eq 'STRING')) {
$class = $lookahead;
$t = &type();
@il = &idlist();
return $class->new(TYPE => $t, IDLIST => \@il);
}
else {
Error::fatal('Se esperaba un tipo');
}
}
Observe la llamada $class->new(TYPE => $t, IDLIST => \@il)
en la cual la clase se usa a través de una referencia simbólica.

