File size: 687 Bytes
119e586 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | (ns snapkitty.lisp.bridge.compiler
"Compile LISP → knowledge graph"
(:require [snapkitty.lisp.bridge.reader :as reader]))
(defn compile-form [form]
"Compile a LISP form into structured knowledge"
(cond
(symbol? form) {:type :symbol :name (str form)}
(number? form) {:type :number :value form}
(string? form) {:type :string :value form}
(list? form) {:type :sexpr
:head (first form)
:args (mapv compile-form (rest form))}
:else {:type :unknown :value form}))
(defn compile-lisp [code]
"Compile LISP code to knowledge structure"
(let [forms (reader/read-lisp code)]
(mapv compile-form forms)))
|