File: default.expect.txt

package info (click to toggle)
highlight.js 10.7.3%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 8,332 kB
  • sloc: javascript: 41,059; makefile: 157; python: 29; sh: 20
file content (37 lines) | stat: -rw-r--r-- 3,352 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<span class="hljs-meta">#!/usr/bin/env hy</span>

(<span class="hljs-name"><span class="hljs-builtin-name">import</span></span> os.path)

(<span class="hljs-name"><span class="hljs-builtin-name">import</span></span> hy.compiler)
(<span class="hljs-name"><span class="hljs-builtin-name">import</span></span> hy.core)


<span class="hljs-comment">;; absolute path for Hy core</span>
(<span class="hljs-name"><span class="hljs-builtin-name">setv</span></span> *core-path* (<span class="hljs-name">os.path.dirname</span> hy.core.--file--))


(<span class="hljs-name"><span class="hljs-builtin-name">defn</span></span> collect-macros [collected-names opened-file]
  (<span class="hljs-name"><span class="hljs-builtin-name">while</span></span> <span class="hljs-literal">True</span>
    (<span class="hljs-name"><span class="hljs-builtin-name">try</span></span>
     (<span class="hljs-name"><span class="hljs-builtin-name">let</span></span> [data (<span class="hljs-name"><span class="hljs-builtin-name">read</span></span> opened-file)]
       (<span class="hljs-name"><span class="hljs-builtin-name">if</span></span> (<span class="hljs-name"><span class="hljs-builtin-name">and</span></span> (<span class="hljs-name"><span class="hljs-builtin-name">in</span></span> (<span class="hljs-name"><span class="hljs-builtin-name">first</span></span> data)
                    &#x27;(<span class="hljs-name"><span class="hljs-builtin-name">defmacro</span></span> defmacro/g! defn))
                (<span class="hljs-name"><span class="hljs-builtin-name">not</span></span> (<span class="hljs-name">.startswith</span> (<span class="hljs-name"><span class="hljs-builtin-name">second</span></span> data) <span class="hljs-string">&quot;_&quot;</span>)))
         (<span class="hljs-name">.add</span> collected-names (<span class="hljs-name"><span class="hljs-builtin-name">second</span></span> data))))
     (<span class="hljs-name"><span class="hljs-builtin-name">except</span></span> [e EOFError] (<span class="hljs-name"><span class="hljs-builtin-name">break</span></span>)))))


(<span class="hljs-name"><span class="hljs-builtin-name">defmacro</span></span> core-file [filename]
  `(<span class="hljs-name"><span class="hljs-builtin-name">open</span></span> (<span class="hljs-name">os.path.join</span> *core-path* ~filename)))


(<span class="hljs-name"><span class="hljs-builtin-name">defmacro</span></span> contrib-file [filename]
  `(<span class="hljs-name"><span class="hljs-builtin-name">open</span></span> (<span class="hljs-name">os.path.join</span> *core-path* <span class="hljs-string">&quot;..&quot;</span> <span class="hljs-string">&quot;contrib&quot;</span> ~filename)))


(<span class="hljs-name"><span class="hljs-builtin-name">defn</span></span> collect-core-names []
  (<span class="hljs-name"><span class="hljs-builtin-name">doto</span></span> (<span class="hljs-name">set</span>)
        (<span class="hljs-name">.update</span> hy.core.language.*exports*)
        (<span class="hljs-name">.update</span> hy.core.shadow.*exports*)
        (<span class="hljs-name">collect-macros</span> (<span class="hljs-name">core-file</span> <span class="hljs-string">&quot;macros.hy&quot;</span>))
        (<span class="hljs-name">collect-macros</span> (<span class="hljs-name">core-file</span> <span class="hljs-string">&quot;bootstrap.hy&quot;</span>))))