First working object tests!
This commit is contained in:
23
bf.kp
23
bf.kp
@@ -73,6 +73,18 @@
|
|||||||
(def! to_be_saved (with-meta [1] [2]))
|
(def! to_be_saved (with-meta [1] [2]))
|
||||||
(def! to_be_saved_s "asdfasdf")
|
(def! to_be_saved_s "asdfasdf")
|
||||||
|
|
||||||
|
(let* ( a [0]
|
||||||
|
b (with-meta a (fn* () (set-nth! b 0 (+ 1 (nth b 0))))))
|
||||||
|
(do
|
||||||
|
(println "testing meta stuff!")
|
||||||
|
(println b)
|
||||||
|
((meta b))
|
||||||
|
(println b)
|
||||||
|
((meta b))
|
||||||
|
(println b)))
|
||||||
|
|
||||||
|
(def! our_obj (with-meta [0] (fn* () (set-nth! our_obj 0 (+ 1 (nth our_obj 0))))))
|
||||||
|
|
||||||
(def! main (fn* () (let* ( a 7
|
(def! main (fn* () (let* ( a 7
|
||||||
b [1]
|
b [1]
|
||||||
c (with-meta b "yolo") )
|
c (with-meta b "yolo") )
|
||||||
@@ -88,6 +100,12 @@
|
|||||||
(println to_be_saved)
|
(println to_be_saved)
|
||||||
(println (meta to_be_saved))
|
(println (meta to_be_saved))
|
||||||
(println to_be_saved_s)
|
(println to_be_saved_s)
|
||||||
|
(println "Here in main testing our_obj")
|
||||||
|
(println our_obj)
|
||||||
|
((meta our_obj))
|
||||||
|
(println our_obj)
|
||||||
|
((meta our_obj))
|
||||||
|
(println our_obj)
|
||||||
a)))
|
a)))
|
||||||
)))))
|
)))))
|
||||||
(do
|
(do
|
||||||
@@ -98,8 +116,3 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
10
k_prime.krak
10
k_prime.krak
@@ -1594,8 +1594,10 @@ fun find_closed_vars(defined: set<str>, env: *Env, ast: MalValue): set<str> {
|
|||||||
MalValue_int::Symbol(s) {
|
MalValue_int::Symbol(s) {
|
||||||
if !defined.contains(s) {
|
if !defined.contains(s) {
|
||||||
var scope = env->find(s)
|
var scope = env->find(s)
|
||||||
|
// null scope should mean top level var
|
||||||
if scope == null<Env>() {
|
if scope == null<Env>() {
|
||||||
error("Can't find " + s + " in env when trying to find closed_vars\n" + env->to_string())
|
/*error("Can't find " + s + " in env when trying to find closed_vars\n" + env->to_string())*/
|
||||||
|
return set<str>()
|
||||||
}
|
}
|
||||||
// don't do for top level vars
|
// don't do for top level vars
|
||||||
if scope->outer != null<Env>() {
|
if scope->outer != null<Env>() {
|
||||||
@@ -1645,9 +1647,9 @@ fun compile_value(top_decs: *str, top_defs: *str, main_init: *str, defs: *str, e
|
|||||||
return str("0x1F")
|
return str("0x1F")
|
||||||
}
|
}
|
||||||
MalValue_int::Function(f) {
|
MalValue_int::Function(f) {
|
||||||
if quoted {
|
/*if quoted {*/
|
||||||
error("cannot compile quoted function - does this even make sense?")
|
/*error("cannot compile quoted function - does this even make sense?")*/
|
||||||
}
|
/*}*/
|
||||||
|
|
||||||
var fun_name = "fun_" + new_tmp()
|
var fun_name = "fun_" + new_tmp()
|
||||||
*top_decs += "size_t " + fun_name + "(size_t*, size_t, size_t*);\n"
|
*top_decs += "size_t " + fun_name + "(size_t*, size_t, size_t*);\n"
|
||||||
|
|||||||
Reference in New Issue
Block a user