Changeset View
Changeset View
Standalone View
Standalone View
swh/web/tests/resources/contents/code/extensions/test.hy
- This file was added.
#!/usr/bin/env hy | |||||
(import os.path) | |||||
(import hy.compiler) | |||||
(import hy.core) | |||||
;; absolute path for Hy core | |||||
(setv *core-path* (os.path.dirname hy.core.--file--)) | |||||
(defn collect-macros [collected-names opened-file] | |||||
(while True | |||||
(try | |||||
(let [data (read opened-file)] | |||||
(if (and (in (first data) | |||||
'(defmacro defmacro/g! defn)) | |||||
(not (.startswith (second data) "_"))) | |||||
(.add collected-names (second data)))) | |||||
(except [e EOFError] (break))))) | |||||
(defmacro core-file [filename] | |||||
`(open (os.path.join *core-path* ~filename))) | |||||
(defmacro contrib-file [filename] | |||||
`(open (os.path.join *core-path* ".." "contrib" ~filename))) | |||||
(defn collect-core-names [] | |||||
(doto (set) | |||||
(.update hy.core.language.*exports*) | |||||
(.update hy.core.shadow.*exports*) | |||||
(collect-macros (core-file "macros.hy")) | |||||
(collect-macros (core-file "bootstrap.hy")))) | |||||
No newline at end of file |