|
|
|
@ -228,7 +228,7 @@ |
|
|
|
35 "SE ESPERABA UNA DE LAS PALABRAS RESERVADAS as_str O trim" |
|
|
|
35 "SE ESPERABA UNA DE LAS PALABRAS RESERVADAS as_str O trim" |
|
|
|
36 "SE ESPERABA UNA DE LAS PALABRAS RESERVADAS to_string O parse" |
|
|
|
36 "SE ESPERABA UNA DE LAS PALABRAS RESERVADAS to_string O parse" |
|
|
|
37 "SE ESPERABA UN TIPO NUMERICO: i64, f64 O usize" |
|
|
|
37 "SE ESPERABA UN TIPO NUMERICO: i64, f64 O usize" |
|
|
|
38 "SE ESPERABA UNA FUNCION MATEMATICA: sqrt, sin, atan O abs" |
|
|
|
38 "SE ESPERABA UNA FUNCION MATEMATICA: sqrt, cbrt ,sin, atan O abs" |
|
|
|
39 "SE ESPERABA UN NUMERO" |
|
|
|
39 "SE ESPERABA UN NUMERO" |
|
|
|
40 "SE ESPERABA LA PALABRA RESERVADA fn" |
|
|
|
40 "SE ESPERABA LA PALABRA RESERVADA fn" |
|
|
|
41 "DECLARACION DUPLICADA DE IDENTIFICADOR DE BIBLIOTECA, CONSTANTE O FUNCION" |
|
|
|
41 "DECLARACION DUPLICADA DE IDENTIFICADOR DE BIBLIOTECA, CONSTANTE O FUNCION" |
|
|
|
@ -697,7 +697,7 @@ |
|
|
|
) |
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
(defn hace-push-implicito? [instr] |
|
|
|
(defn hace-push-implicito? [instr] |
|
|
|
(contains? #{'ADD 'SUB 'MUL 'DIV 'MOD 'OR 'AND 'EQ 'NEQ 'GT 'GTE 'LT 'LTE 'NEG 'NOT 'SQRT 'SIN 'ATAN 'ABS 'TOI 'TOF} instr) |
|
|
|
(contains? #{'ADD 'SUB 'MUL 'DIV 'MOD 'OR 'AND 'EQ 'NEQ 'GT 'GTE 'LT 'LTE 'NEG 'NOT 'SQRT 'CBRT 'SIN 'ATAN 'ABS 'TOI 'TOF} instr) |
|
|
|
) |
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
(defn confirmar-retorno [amb] |
|
|
|
(defn confirmar-retorno [amb] |
|
|
|
@ -1086,7 +1086,13 @@ |
|
|
|
(expresion) |
|
|
|
(expresion) |
|
|
|
(procesar-terminal ,,, (symbol ")") 12) |
|
|
|
(procesar-terminal ,,, (symbol ")") 12) |
|
|
|
(generar ,,, 'SQRT)) |
|
|
|
(generar ,,, 'SQRT)) |
|
|
|
sin (-> amb |
|
|
|
cbrt (-> amb |
|
|
|
|
|
|
|
(escanear) |
|
|
|
|
|
|
|
(procesar-terminal ,,, (symbol "(") 11) |
|
|
|
|
|
|
|
(expresion) |
|
|
|
|
|
|
|
(procesar-terminal ,,, (symbol ")") 12) |
|
|
|
|
|
|
|
(generar ,,, 'CBRT)) |
|
|
|
|
|
|
|
sin (-> amb |
|
|
|
(escanear) |
|
|
|
(escanear) |
|
|
|
(procesar-terminal ,,, (symbol "(") 11) |
|
|
|
(procesar-terminal ,,, (symbol "(") 11) |
|
|
|
(expresion) |
|
|
|
(expresion) |
|
|
|
@ -2026,7 +2032,7 @@ |
|
|
|
AND (let [res (aplicar-operador-diadico and-diadico pila)] |
|
|
|
AND (let [res (aplicar-operador-diadico and-diadico pila)] |
|
|
|
(if (nil? res) res (recur cod regs-de-act (inc cont-prg) res mapa-regs))) |
|
|
|
(if (nil? res) res (recur cod regs-de-act (inc cont-prg) res mapa-regs))) |
|
|
|
|
|
|
|
|
|
|
|
; SQRT: Incrementa cont-prg en 1, quita de la pila un elemento numerico, calcula su raiz cuadrada y la coloca al final de la pila. |
|
|
|
; sqrt: incrementa cont-prg en 1, quita de la pila un elemento numerico, calcula su raiz cuadrada y la coloca al final de la pila. |
|
|
|
SQRT (let [ |
|
|
|
SQRT (let [ |
|
|
|
res (Math/sqrt (last pila)), |
|
|
|
res (Math/sqrt (last pila)), |
|
|
|
nueva_pila (assoc pila (- (count pila) 1) res) |
|
|
|
nueva_pila (assoc pila (- (count pila) 1) res) |
|
|
|
@ -2034,6 +2040,14 @@ |
|
|
|
(recur cod regs-de-act (inc cont-prg) nueva_pila mapa-regs) |
|
|
|
(recur cod regs-de-act (inc cont-prg) nueva_pila mapa-regs) |
|
|
|
) |
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
; cbrt: incrementa cont-prg en 1, quita de la pila un elemento numerico, calcula su raiz cúbica y la coloca al final de la pila. |
|
|
|
|
|
|
|
CBRT (let [ |
|
|
|
|
|
|
|
res (Math/cbrt (last pila)), |
|
|
|
|
|
|
|
nueva_pila (assoc pila (- (count pila) 1) res) |
|
|
|
|
|
|
|
] |
|
|
|
|
|
|
|
(recur cod regs-de-act (inc cont-prg) nueva_pila mapa-regs) |
|
|
|
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
; SIN: Incrementa cont-prg en 1, quita de la pila un elemento numerico, calcula su seno y lo coloca al final de la pila. |
|
|
|
; SIN: Incrementa cont-prg en 1, quita de la pila un elemento numerico, calcula su seno y lo coloca al final de la pila. |
|
|
|
SIN (let [ |
|
|
|
SIN (let [ |
|
|
|
res (Math/sin (last pila)), |
|
|
|
res (Math/sin (last pila)), |
|
|
|
@ -2260,6 +2274,7 @@ |
|
|
|
'return, |
|
|
|
'return, |
|
|
|
'sin, |
|
|
|
'sin, |
|
|
|
'sqrt, |
|
|
|
'sqrt, |
|
|
|
|
|
|
|
'cbrt, |
|
|
|
'std, |
|
|
|
'std, |
|
|
|
'stdin, |
|
|
|
'stdin, |
|
|
|
'stdout, |
|
|
|
'stdout, |
|
|
|
|