SNAPKITTYWEST's picture
push from SNAPKITTYWEST/snapkitty-clojure-lisp-bridge
119e586 verified
Raw History Blame Contribute Delete
713 Bytes
(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)})