TRADUCTORES DDS CON CUP
Ejemplo de prueba (false and (74 >= 34)) xor 45 < 78 ;
A
ALAL A::=L
(false and (74 >= 34)) xor 45 < 78 ; A L L xor J L::=L xor J
(false and (74 >= 34)) xor 45 < 78 ; A L L xor J J C L::=J J::=C
(false and (74 >= 34)) xor 45 < 78 ; A L L xor J J C ( L ) n1 < n2 J::=( L ) C::=n1<n2
(false and (74 >= 34)) xor 45 < 78 ; A L L xor J J C ( L ) n1 < n2 L and J L::=L and J
(false and (74 >= 34)) xor 45 < 78 ; A L L xor J J C ( L ) n1 < n2 L and J J ( L ) L::=J J::=( L )
(false and (74 >= 34)) xor 45 < 78 ; A L L xor J J C ( L ) n1 < n2 L and J J ( L ) false J J::=false L::=J
(false and (74 >= 34)) xor 45 < 78 ; A L L xor J J C ( L ) n1 < n2 L and J J ( L ) false J C J::=C
(false and (74 >= 34)) xor 45 < 78 ; A L L xor J J C ( L ) n1 < n2 L and J J ( L ) false J C n1>=n2 C::=n1>=n2
(false and (74 >= 34)) xor 45 < 78 ; A L L xor J J C ( L ) n1 < n2 L and J J ( L ) false J C n1>=n2 J:=vfalse {: Simbolo s=new Simbolo(); s.valor=false; RESULT = s; :}
(false and (74 >= 34)) xor 45 < 78 ; A L L xor J J C ( L ) n1 < n2 L and J false ( L ) J C n1>=n2 L::=J:eval {: Simbolo s=new Simbolo(); s.valor=eval.valor; RESULT = s; :}
(false and (74 >= 34)) xor 45 < 78 ; A L L xor J J C ( L ) n1 < n2 false and J ( L ) J C n1>=n2
(false and (74 >= 34)) xor 45 < 78 ; A L L xor J J C ( L ) n1 < n2 false and J ( L ) J C n1>=n2
(false and (74 >= 34)) xor 45 < 78 ; A L L xor J J C ( L ) n1 < n2 false and J ( L ) J C 74>=34 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; :}
(false and (74 >= 34)) xor 45 < 78 ; A L L xor J J C ( L ) n1 < n2 false and J ( L ) J C true
(false and (74 >= 34)) xor 45 < 78 ; A L L xor J J C ( L ) n1 < n2 false and J ( L ) J true J::=C:eval {: Simbolo s=new Simbolo(); s.valor=eval.valor; RESULT = s; :}
(false and (74 >= 34)) xor 45 < 78 ; A L L xor J J C ( L ) n1 < n2 false and J ( L ) true L::=J:eval {: Simbolo s=new Simbolo(); s.valor=eval.valor; RESULT = s; :}
(false and (74 >= 34)) xor 45 < 78 ; A L L xor J J C ( L ) n1 < n2 false and J ( true)
(false and (74 >= 34)) xor 45 < 78 ; A L L xor J J C ( L ) n1 < n2 false and J ( true) J::=apertura_parentesis L:eval cierre_parentesis {: Simbolo s=new Simbolo(); s.valor=(eval.valor); RESULT = s; :}
(false and (74 >= 34)) xor 45 < 78 ; A L L xor J J C ( L ) n1 < n2 false and J true
(false and (74 >= 34)) xor 45 < 78 ; A L L xor J J C ( L ) n1 < n2 false and true
(false and (74 >= 34)) xor 45 < 78 ; A L L xor J J C ( L ) n1 < n2 false and true L::=L:ev1 opand J:ev2 {: Simbolo s=new Simbolo(); s.valor=(ev1.valor && ev2.valor); RESULT = s; :}
(false and (74 >= 34)) xor 45 < 78 ; A L L xor J J C ( L ) n1 < n2 false
(false and (74 >= 34)) xor 45 < 78 ; A L L xor J J C ( false ) n1 < n2
(false and (74 >= 34)) xor 45 < 78 ; A L L xor J J C ( false ) n1 < n2 J::=apertura_parentesis L:eval cierre_parentesis {: Simbolo s=new Simbolo(); s.valor=(eval.valor); RESULT = s; :}
(false and (74 >= 34)) xor 45 < 78 ; A L L xor J J C false n1 < n2
(false and (74 >= 34)) xor 45 < 78 ; A L L xor J false C n1 < n2 L::=J:eval {: Simbolo s=new Simbolo(); s.valor=eval.valor; RESULT = s; :}
(false and (74 >= 34)) xor 45 < 78 ; A L false xor J C n1 < n2
(false and (74 >= 34)) xor 45 < 78 ; A L false xor J C n1 < n2
(false and (74 >= 34)) xor 45 < 78 ; A L false xor J C 45 < 78 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; :}
(false and (74 >= 34)) xor 45 < 78 ; A L false xor J C true
(false and (74 >= 34)) xor 45 < 78 ; A L false xor J true J::= C:eval {: Simbolo s=new Simbolo(); s.valor=eval.valor; RESULT = s; :}
(false and (74 >= 34)) xor 45 < 78 ; A L false xor true
(false and (74 >= 34)) xor 45 < 78 ; A L false xor true L::= L:ev1 opxor J:ev2 {: Simbolo s=new Simbolo(); s.valor=(ev1.valor ^ ev2.valor); RESULT = s; :}
(false and (74 >= 34)) xor 45 < 78 ; A L true
(false and (74 >= 34)) xor 45 < 78 ; A true A::=L:eval semicolon {: System.out.println("\n\nExpresion logica correcta. Valor final: "+ eval.valor +"\n\n"); :};
(false and (74 >= 34)) xor 45 < 78 ; RESULTADO 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] Expresion logica correcta. Valor final: true