Acciones en Medio de una Regla

A veces necesitamos insertar una acción en medio de una regla. Una acción en medio de una regla puede hacer referencia a los atributos de los símbolos que la preceden (usando $n), pero no a los que le siguen.

Cuando se inserta una acción $ \left \{ action_1\right \}$ para su ejecución en medio de una regla $ A \rightarrow \alpha \beta $ :

$ A \rightarrow \alpha \left \{ action_1 \right \} \beta \left \{ action_2\right \}$
yapp crea una variable sintáctica temporal $ T$ e introduce una nueva regla:

  1. $ A \rightarrow \alpha T \beta \left \{ action_2\right \}$
  2. $ T \rightarrow \epsilon \left \{ action_1 \right \}$

Las acciones en mitad de una regla cuentan como un símbolo mas en la parte derecha de la regla. Asi pues, en una acción posterior en la regla, se deberán referenciar los atributos de los símbolos, teniendo en cuenta este hecho.

Las acciones en mitad de la regla pueden tener un atributo. Las acciones posteriores en la regla se referirán a él como $_[n], siendo n su número de orden en la parte derecha.

Casiano Rodríguez León
2013-04-23