@ -1900,35 +1900,10 @@
;
;
; nil
; nil
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
( defn flistar [ ilevel t nxt ]
;TODO
( cond
;(defn listar
( string? t ) ( format "\"%s\" " t )
;
( = t ( symbol "{" ) ) ( clojure.string/join
;)
( cons "\n{\n" ( repeat ( * ilevel 2 ) " " ) )
)
( = t ( symbol "}" ) ) "\n}"
( and ( not= nxt ( symbol "{" ) ) ( not= nxt ( symbol "}" ) ) ) ( format "%s " t )
:else ( format "%s" t )
)
)
( defn listar [ l ]
( let [ contadores ( hash-map ( symbol "{" ) 1 , ( symbol "}" ) -1 ) ,
ident_levels ( reductions + ( map # ( get contadores %1 0 ) l ) ) ,
]
( dorun
(
map
print
( map
# ( apply flistar ( cons %1 %2 ) )
ident_levels
( partition 2 1 ( concat l ' ( nil ) ) )
)
)
)
)
)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; AGREGAR-PTOCOMA: Recibe una lista con los tokens de un programa en Rust y la devuelve con un token ; insertado a continuacion de ciertas } (llaves de cierre, pero no a continuacion de todas ellas).
; AGREGAR-PTOCOMA: Recibe una lista con los tokens de un programa en Rust y la devuelve con un token ; insertado a continuacion de ciertas } (llaves de cierre, pero no a continuacion de todas ellas).
@ -2071,18 +2046,10 @@
; user=> (ya-declarado-localmente? 'Write [[0 2] [['io ['lib '()] 0] ['Write ['lib '()] 0] ['entero_a_hexa ['fn [(list ['n (symbol ":") 'i64]) 'String]] 2]]])
; user=> (ya-declarado-localmente? 'Write [[0 2] [['io ['lib '()] 0] ['Write ['lib '()] 0] ['entero_a_hexa ['fn [(list ['n (symbol ":") 'i64]) 'String]] 2]]])
; false
; false
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
( defn in?
;TODO
"true if coll contains elm"
;(defn ya-declarado-localmente?
[ coll elm ]
;
( boolean ( some # ( = elm % ) coll ) )
;)
)
( defn ya-declarado-localmente? [ ident ctx ]
( let [ inicio_scope_local ( last ( get ctx 0 ) ) ,
scope_local ( subvec ( get ctx 1 ) inicio_scope_local ) ,
identificadores_scope_local ( map first scope_local )
] ( in? identificadores_scope_local ident ) )
)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; CARGAR-CONST-EN-TABLA: Recibe un ambiente
; CARGAR-CONST-EN-TABLA: Recibe un ambiente