

%item proporciona un acceso indexado en los símbolos
a los correspondientes atributos.
Así, si tenemos la regla A : B C D, el elemento $item{B} hace alusión
al atributo de B e $item{C} hace alusión al atributo de C.
Los símbolos correspondientes a cadenas, expresiones regulares, directivas y
acciones se guardan respectivamente bajo una clave de la forma
__STRINGn__, __PATTERNn__, __DIRECTIVEn__, __ACTIONn__,
donde n indica la posición ordinal del elemento dentro de los de su tipo
en la regla. Así, __PATTERN2__ hace alusión a la segunda expresión regular
en la parte derecha de la regla.
El elemento especial $item{__RULE__} contiene el nombre
de la regla actual.
La ventaja de usar %item en vez de @items
es que evita los errores cometidos al introducir o
eliminar elementos en la parte derecha de una producción.
Cuando esto ocurre, el programador debe cambiar los números
de los índices en la acción.
Una limitación del hash %item es que, cuando hay varias apariciones
de una variable sintáctica sólo guarda el valor de la última aparición.
Por ejemplo:
range: '(' number '..' number )' { $return = $item{number} }
retorna en $item{number} el valor correspondiente
a la segunda aparición de la variable sintáctica number.

