1
A
L
;
xo
r
L
J
C
J
L
(
L
J
)
45
<
78
J
an
d
(
false
L
)
J
C
74
>=
34
Lo primero:
vamos a
desarrollar el
árbol.
2
A
L
;
xo
r
L
A continuación
vamos a ver como
funciona DDS. Para
ello empezamos
desde abajo.
J
C
J
L
(
L
J
Vamos a subir
los valores de
los número y la
expresión para
ver la expresión
booleana
)
45
<
78
J
an
d
(
false
L
)
J
C n1>=n2 {C.valor = n1.valex
>=.valex n2.valex; }
En este caso C.valor = TRUE
C
74
>=
34
3
A
L
;
xo
r
L
Seguimos con el
siguiente paso, que
es pasar al padre el
valor obtenido por el
hijo.
J
C
J
L
(
L
J
)
45
<
78
J
an
d
(
false
L
)
J
C
74
>=
34
JC.valor {J.valor = C.valor}
En este caso subimos el valor de
C que era TRUE
4
A
L
;
xo
r
L
Seguimos con el
siguiente paso, que
es pasar al padre el
valor obtenido por el
hijo.
J
C
J
L
(
L
J
)
45
J
an
d
(
false
L
)
<
78
J(L.valor {J.valor = L.valor; })
En este caso subimos el valor de L
que era TRUE
J
C
74
>=
34
5
A
L
;
xo
r
L
Seguimos con el
siguiente paso, que
es pasar al padre el
valor obtenido por el
hijo.
J
C
J
L
(
En este caso
simplemente
tenemos que
subir el valor
que nos ha
dado el
analizador
léxico.
L
J
)
45
<
78
J
an
d
(
false
L
)
J
C
74
>=
34
6
A
L
;
xo
r
L
J
C
J
En este
punto L y J
tienen que
tener valor.
L
(
L
J
L  L1.valor and J.valor {L.valor =
L1.valor && J.valor}
45
<
78
En nuestro
caso
L = false and true 
FALSE
)
J
an
d
(
false
L
)
J
C
74
>=
34
7
A
L
L tiene el valor
propagado
desde abajo.
L
J.Valor =
L.valor.
J
En nuestro
caso FALSE
xo
r
L
J
J
C
L
(
;
)
45
<
78
J
an
d
(
false
L
)
J
C
74
>=
34
8
A
L todavía no se puede
procesar porque le falta
valores.
L
;
xo
r
L
J
C
J
L
(
L
J
)
45
<
78
J
an
d
(
false
L
)
J
C
74
>=
34
9
A
Como ya tenemos
los valores.
Podemos hacer la
operación.
LL1.valor xor
J.valor {L.valor =
L1.valor xor J.valor}
En nuestro caso es
TRUE
Ya tenemos el valor de J por tanto
L
; puedo aplicar esta producción.
xo
r
L
J
C
J
L
(
L
J
)
45
<
78
J
an
d
(
false
L
)
J
C
74
>=
34
10
A
Se imprime el
valor.
L
;
xo
r
L
J
C
J
L
(
L
J
)
45
<
78
J
an
d
(
false
L
)
J
C
74
>=
34
11
Descargar

DDS_010