File size: 713 Bytes
119e586 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | (ns snapkitty.lisp.bridge.reader
"Read LISP code and convert to Clojure forms"
(:require [cljs.reader :as reader]))
(defn read-lisp [code]
"Parse LISP code string into Clojure forms"
(try
(reader/read-string (str "(" code ")"))
(catch :default e
(throw (ex-info "LISP parse error" {:code code :error (str e)})))))
(defn read-lisp-file [path]
"Read LISP file and parse"
(let [fs (js/require "fs")]
(read-lisp (.readFileSync fs path "utf-8"))))
(defn lisp->knowledge [lisp-form]
"Convert LISP form to knowledge graph representation"
{:form lisp-form
:type (if (list? lisp-form) :list :atom)
:value (if (list? lisp-form) (first lisp-form) lisp-form)})
|