master
CrossNox 3 years ago
parent caba5c6fbe
commit 6f8b9235ec
  1. 15
      src/rustint/core.clj

@ -2214,10 +2214,23 @@
; [) (; println! ( "{}" , v ) ; }) [fn inc ( v : & mut i64 ) { * v += 1 ; } fn main ( ) { let mut v : i64 = 5 ; inc ( & mut v] :sin-errores [[0 2] [[inc [fn [([v : & mut i64]) ()]] 2] [main [fn [() ()]] 6] [v [var-mut i64] 0]]] 1 [[CAL 6] HLT [POPARG 0] [PUSHFI 1] [POPADDREF 0] RETN [PUSHFI 5] [POP 0] [PUSHADDR 0]] [[2 [i64 nil]] [6 [i64 nil]]]]
; ^ ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defn get-val-ult-var [ult-var ctx]
(let [
matches (filter #(= ult-var (get %1 0)) (get ctx 1)),
last_match (last matches)
] (get last_match 2)
)
)
(defn generar-ref [amb]
(cond
(not= (estado amb) :sin-errores) amb
:else (generar amb 'PUSHADDR 0)
:else (let [
ult-var (last (simb-ya-parseados amb)),
val-ult-var (get-val-ult-var ult-var (contexto amb))
]
(generar amb 'PUSHADDR val-ult-var)
)
)
)

Loading…
Cancel
Save