make-symbol and intern
authorDavid Vazquez <davazp@gmail.com>
Mon, 17 Dec 2012 16:58:30 +0000 (16:58 +0000)
committerDavid Vazquez <davazp@gmail.com>
Mon, 17 Dec 2012 16:58:30 +0000 (16:58 +0000)
lispstrack.lisp
test.lisp [deleted file]

index f3f01df..3f85b93 100644 (file)
               (mapcar func (cdr list)))))
 
   (defmacro push (x place)
-    `(setq ,place (cons ,x ,place))))
+    `(setq ,place (cons ,x ,place)))
+
+
+  (defvar *package* (new))
+
+  (defun intern (name)
+    (set *package* name (make-symbol name)))
+
+  (defun find-symbol (name)
+    (get *package* name)))
 
 
 (defun !reduce (func list initial)
 (define-compilation cdr (x)
   (concat "(" (ls-compile x env fenv) ").cdr"))
 
+(define-compilation make-symbol (name)
+  (concat "{name: " (ls-compile name env fenv) "}"))
+
 (define-compilation symbol-name (x)
   (concat "(" (ls-compile x env fenv) ").name"))
 
                 ", ")
           ")"))
 
+(define-compilation new ()
+  "{}")
+
+(define-compilation get (object key)
+  (concat "(" (ls-compile object env fenv) ")[" (ls-compile key env fenv) "]"))
+
+(define-compilation set (object key value)
+  (concat "(" (ls-compile object env fenv) ")[" (ls-compile key env fenv) "]")
+  " = " (ls-compile value env fenv))
+
+
+
 (defun %compile-defvar (name)
   (push (make-var-binding name) *env*)
   (push (concat "var " (lookup-variable name *env*)) *toplevel-compilations*))
diff --git a/test.lisp b/test.lisp
deleted file mode 100644 (file)
index 7635aaa..0000000
--- a/test.lisp
+++ /dev/null
@@ -1 +0,0 @@
-;;; Library