La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

T RADUCTORES DDS CON CUP Práctica Optativa 12. CASO DE PRUEBA DDS CON CUP A continuación realizaremos una representación del árbol generado para la siguiente.

Presentaciones similares


Presentación del tema: "T RADUCTORES DDS CON CUP Práctica Optativa 12. CASO DE PRUEBA DDS CON CUP A continuación realizaremos una representación del árbol generado para la siguiente."— Transcripción de la presentación:

1 T RADUCTORES DDS CON CUP Práctica Optativa 12

2 CASO DE PRUEBA DDS CON CUP A continuación realizaremos una representación del árbol generado para la siguiente expresión lógica: (false and (74 >= 34)) xor 45 < 78 ;

3 A Comenzamos por el axioma:

4 A := L

5 L := L xor J

6 J := C

7 C := numero opmenor numero

8 L := J

9 J := apertura_parentesis L cierre_parentesis

10 L := L and J

11 J := apertura_parentesis L cierre_parentesis

12 L := J

13 J := C

14 C := numero opmayori numero

15 L := J

16 J := vfalse

17 {: Simbolo s=new Simbolo(); s.valor=false; RESULT = s; :} Evaluación de la expresión lógica mediante análisis ascendente del árbol sintáctico:

18 L::=J:j {: Simbolo s=new Simbolo(); s.valor=j.valor; RESULT = s; :}

19

20 C::= numero:n1 opmayori numero:n2 {: int v1=Integer.parseInt(n1); int v2=Integer.parseInt(n2); Simbolo s=new Simbolo(); s.valor=(v1 >= v2); RESULT = s; :}

21 J::=C:c {: Simbolo s=new Simbolo(); s.valor=c.valor; RESULT = s; :}

22 L::=J:j {: Simbolo s=new Simbolo(); s.valor=j.valor; RESULT = s; :}

23 J::=apertura_parentesis L:l cierre_parentesis {: Simbolo s=new Simbolo(); s.valor=l.valor; RESULT = s; :}

24

25 L::=L:l opand J:j {: Simbolo s=new Simbolo(); s.valor=(l.valor && j.valor); RESULT = s; :}

26 J::=apertura_parentesis L:l cierre_parentesis {: Simbolo s=new Simbolo(); s.valor=l.valor; RESULT = s; :}

27 L::=J:j {: Simbolo s=new Simbolo(); s.valor=j.valor; RESULT = s; :}

28

29 C::=numero:n1 opmenor numero:n2 {: int v1=Integer.parseInt(n1); int v2=Integer.parseInt(n2); Simbolo s=new Simbolo(); s.valor=(v1 < v2); RESULT = s; :}

30 J ::= C:c {: Simbolo s=new Simbolo(); s.valor=c.valor; RESULT = s; :}

31 L ::= L:l opxor J:j {: Simbolo s=new Simbolo(); s.valor=(l.valor != j.valor); RESULT = s; :}

32

33 A::=L:l semicolon {: System.out.println("\n\nExpresion logica correcta. Valor final: "+ l.valor +"\n\n"); :}; Resultado producido por la expresión: (false and (74 >= 34)) xor 45 < 78 ; APERTURA_PAR [(]FALSE [false] OPAND [and] APERTURA_PAR [(]NUMERO [74] OPMAYORI [>=] NUMERO [34]CIERRE_PAR [)]CIERRE_PAR [)] OPXOR [xor] NUMERO [45] OPMENOR [<] NUMERO [78] SEMICOLON [;] NUMERO [345] Expresión lógica correcta. Valor final: true


Descargar ppt "T RADUCTORES DDS CON CUP Práctica Optativa 12. CASO DE PRUEBA DDS CON CUP A continuación realizaremos una representación del árbol generado para la siguiente."

Presentaciones similares


Anuncios Google