Big changes:
Compiler and VM are now working well enough to support larger programs. A test program is included and executed immediately upon running the executable. A more feature complete read-eval-print loop is planned.
This commit is contained in:
+2
-11
@@ -4,18 +4,9 @@
|
||||
here.
|
||||
*)
|
||||
open Types
|
||||
|
||||
let builtin_print (v : Types.value) =
|
||||
let p = Printf.sprintf in
|
||||
let rec aux_print = function
|
||||
| Int x -> p "%d" x
|
||||
| Double x -> p "%f" x
|
||||
| String x -> p "\"%s\"" x
|
||||
| Nil -> p "'()"
|
||||
| Cons (a, b) -> p "(%s . %s)" (aux_print a) (aux_print b)
|
||||
| Symbol x -> p "'%s" x
|
||||
| Closure (i, _) -> p "<closure %d>" i
|
||||
| Native i -> p "<native %d>" i in
|
||||
print_endline (aux_print v);
|
||||
print_endline (print_value v);
|
||||
Types.Nil
|
||||
|
||||
let table = [|
|
||||
|
||||
Reference in New Issue
Block a user