<html>
 <head>
   <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  <link rel="stylesheet" href="../coverage.css"/>  <title> beowulf/core.clj </title>
 </head>
 <body>
<span class="covered" title="1 out of 1 forms covered">
                001&nbsp;&nbsp;(ns&nbsp;beowulf.core
                </span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
                002&nbsp;&nbsp;&nbsp;&nbsp;&quot;Essentially,&nbsp;the&nbsp;`-main`&nbsp;function&nbsp;and&nbsp;the&nbsp;bootstrap&nbsp;read-eval-print&nbsp;loop.&quot;
                </span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
                003&nbsp;&nbsp;&nbsp;&nbsp;(:require&nbsp;[beowulf.bootstrap&nbsp;:refer&nbsp;[EVAL&nbsp;oblist&nbsp;*options*]]
                </span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
                004&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[beowulf.read&nbsp;:refer&nbsp;[READ]]
                </span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
                005&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[clojure.java.io&nbsp;:as&nbsp;io]
                </span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
                006&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[clojure.pprint&nbsp;:refer&nbsp;[pprint]]
                </span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
                007&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[clojure.tools.cli&nbsp;:refer&nbsp;[parse-opts]]
                </span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
                008&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[environ.core&nbsp;:refer&nbsp;[env]])
                </span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
                009&nbsp;&nbsp;&nbsp;&nbsp;(:gen-class))
                </span><br/>
<span class="blank" title="0 out of 0 forms covered">
                010&nbsp;&nbsp;
                </span><br/>
<span class="covered" title="1 out of 1 forms covered">
                011&nbsp;&nbsp;(def&nbsp;cli-options
                </span><br/>
<span class="covered" title="4 out of 4 forms covered">
                012&nbsp;&nbsp;&nbsp;&nbsp;[[&quot;-h&quot;&nbsp;&quot;--help&quot;]
                </span><br/>
<span class="covered" title="6 out of 6 forms covered">
                013&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&quot;-p&nbsp;PROMPT&quot;&nbsp;&quot;--prompt&nbsp;PROMPT&quot;&nbsp;&quot;Set&nbsp;the&nbsp;REPL&nbsp;prompt&nbsp;to&nbsp;PROMPT&quot;
                </span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
                014&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:default&nbsp;&quot;Sprecan::&quot;]
                </span><br/>
<span class="covered" title="5 out of 5 forms covered">
                015&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&quot;-r&nbsp;INITFILE&quot;&nbsp;&quot;--read&nbsp;INITFILE&quot;&nbsp;&quot;Read&nbsp;Lisp&nbsp;functions&nbsp;from&nbsp;the&nbsp;file&nbsp;INITFILE&quot;
                </span><br/>
<span class="covered" title="8 out of 8 forms covered">
                016&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:validate&nbsp;[#(and
                </span><br/>
<span class="covered" title="1 out of 1 forms covered">
                017&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(.exists&nbsp;(io&#x2F;file&nbsp;%))
                </span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
                018&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(.canRead&nbsp;(io&#x2F;file&nbsp;%)))
                </span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
                019&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;Could&nbsp;not&nbsp;find&nbsp;initfile&quot;]]
                </span><br/>
<span class="covered" title="4 out of 4 forms covered">
                020&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&quot;-s&quot;&nbsp;&quot;--strict&quot;&nbsp;&quot;Strictly&nbsp;interpret&nbsp;the&nbsp;Lisp&nbsp;1.5&nbsp;language,&nbsp;without&nbsp;extensions.&quot;]
                </span><br/>
<span class="covered" title="4 out of 4 forms covered">
                021&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&quot;-t&quot;&nbsp;&quot;--trace&quot;&nbsp;&quot;Trace&nbsp;Lisp&nbsp;evaluation.&quot;]])
                </span><br/>
<span class="blank" title="0 out of 0 forms covered">
                022&nbsp;&nbsp;
                </span><br/>
<span class="covered" title="1 out of 1 forms covered">
                023&nbsp;&nbsp;(defn&nbsp;repl
                </span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
                024&nbsp;&nbsp;&nbsp;&nbsp;&quot;Read&#x2F;eval&#x2F;print&nbsp;loop.&quot;
                </span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
                025&nbsp;&nbsp;&nbsp;&nbsp;[prompt]
                </span><br/>
<span class="covered" title="1 out of 1 forms covered">
                026&nbsp;&nbsp;&nbsp;&nbsp;(loop&nbsp;[]
                </span><br/>
<span class="covered" title="3 out of 3 forms covered">
                027&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(print&nbsp;prompt)
                </span><br/>
<span class="covered" title="2 out of 2 forms covered">
                028&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(flush)
                </span><br/>
<span class="covered" title="1 out of 1 forms covered">
                029&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(try
                </span><br/>
<span class="covered" title="3 out of 3 forms covered">
                030&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(let&nbsp;[input&nbsp;(read-line)]
                </span><br/>
<span class="partial" title="2 out of 3 forms covered">
                031&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(cond
                </span><br/>
<span class="covered" title="11 out of 11 forms covered">
                032&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(=&nbsp;input&nbsp;&quot;quit&quot;)&nbsp;(throw&nbsp;(ex-info&nbsp;&quot;\nFærwell!&quot;&nbsp;{:cause&nbsp;:quit}))
                </span><br/>
<span class="covered" title="16 out of 16 forms covered">
                033&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;input&nbsp;(println&nbsp;(str&nbsp;&quot;&gt;&nbsp;&nbsp;&quot;&nbsp;(print-str&nbsp;(EVAL&nbsp;(READ&nbsp;input)&nbsp;@oblist))))
                </span><br/>
<span class="not-covered" title="0 out of 2 forms covered">
                034&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:else&nbsp;(println)))
                </span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
                035&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(catch
                </span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
                036&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Exception
                </span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
                037&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e
                </span><br/>
<span class="covered" title="4 out of 4 forms covered">
                038&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(let&nbsp;[data&nbsp;(ex-data&nbsp;e)]
                </span><br/>
<span class="covered" title="3 out of 3 forms covered">
                039&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(println&nbsp;(.getMessage&nbsp;e))
                </span><br/>
<span class="covered" title="1 out of 1 forms covered">
                040&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(if
                </span><br/>
<span class="covered" title="1 out of 1 forms covered">
                041&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;data
                </span><br/>
<span class="covered" title="6 out of 6 forms covered">
                042&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(case&nbsp;(:cause&nbsp;data)
                </span><br/>
<span class="not-covered" title="0 out of 5 forms covered">
                043&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:parse-failure&nbsp;(println&nbsp;(:failure&nbsp;data))
                </span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
                044&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:strict&nbsp;nil&nbsp;;;&nbsp;the&nbsp;message,&nbsp;which&nbsp;has&nbsp;already&nbsp;been&nbsp;printed,&nbsp;is&nbsp;enough.
                </span><br/>
<span class="covered" title="2 out of 2 forms covered">
                045&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:quit&nbsp;(throw&nbsp;e)
                </span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
                046&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;;&nbsp;default
                </span><br/>
<span class="not-covered" title="0 out of 3 forms covered">
                047&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(pprint&nbsp;data))))))
                </span><br/>
<span class="covered" title="1 out of 1 forms covered">
                048&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(recur)))
                </span><br/>
<span class="blank" title="0 out of 0 forms covered">
                049&nbsp;&nbsp;
                </span><br/>
<span class="covered" title="1 out of 1 forms covered">
                050&nbsp;&nbsp;(defn&nbsp;-main
                </span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
                051&nbsp;&nbsp;&nbsp;&nbsp;&quot;Parse&nbsp;options,&nbsp;print&nbsp;the&nbsp;banner,&nbsp;read&nbsp;the&nbsp;init&nbsp;file&nbsp;if&nbsp;any,&nbsp;and&nbsp;enter&nbsp;the
                </span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
                052&nbsp;&nbsp;&nbsp;&nbsp;read&#x2F;eval&#x2F;print&nbsp;loop.&quot;
                </span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
                053&nbsp;&nbsp;&nbsp;&nbsp;[&amp;&nbsp;opts]
                </span><br/>
<span class="covered" title="5 out of 5 forms covered">
                054&nbsp;&nbsp;&nbsp;&nbsp;(let&nbsp;[args&nbsp;(parse-opts&nbsp;opts&nbsp;cli-options)]
                </span><br/>
<span class="covered" title="2 out of 2 forms covered">
                055&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(println
                </span><br/>
<span class="covered" title="4 out of 4 forms covered">
                056&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(str
                </span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
                057&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;\nHider&nbsp;wilcuman.&nbsp;Béowulf&nbsp;is&nbsp;mín&nbsp;nama.\n&quot;
                </span><br/>
<span class="covered" title="1 out of 1 forms covered">
                058&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(if
                </span><br/>
<span class="covered" title="2 out of 2 forms covered">
                059&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(System&#x2F;getProperty&nbsp;&quot;beowulf.version&quot;)
                </span><br/>
<span class="covered" title="6 out of 6 forms covered">
                060&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(str&nbsp;&quot;Síðe&nbsp;&quot;&nbsp;(System&#x2F;getProperty&nbsp;&quot;beowulf.version&quot;)&nbsp;&quot;\n&quot;))
                </span><br/>
<span class="covered" title="1 out of 1 forms covered">
                061&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(if
                </span><br/>
<span class="covered" title="5 out of 5 forms covered">
                062&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(:help&nbsp;(:options&nbsp;args))
                </span><br/>
<span class="covered" title="3 out of 3 forms covered">
                063&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(:summary&nbsp;args))
                </span><br/>
<span class="covered" title="4 out of 4 forms covered">
                064&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(if&nbsp;(:errors&nbsp;args)
                </span><br/>
<span class="covered" title="9 out of 9 forms covered">
                065&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(apply&nbsp;str&nbsp;(interpose&nbsp;&quot;;&nbsp;&quot;&nbsp;(:errors&nbsp;args))))
                </span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
                066&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;\nSprecan&nbsp;&#x27;quit&#x27;&nbsp;tó&nbsp;laéfan\n&quot;))
                </span><br/>
<span class="covered" title="12 out of 12 forms covered">
                067&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(binding&nbsp;[*options*&nbsp;(:options&nbsp;args)]
                </span><br/>
<span class="covered" title="1 out of 1 forms covered">
                068&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(try
                </span><br/>
<span class="covered" title="10 out of 10 forms covered">
                069&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(repl&nbsp;(str&nbsp;(:prompt&nbsp;(:options&nbsp;args))&nbsp;&quot;&nbsp;&quot;))
                </span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
                070&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(catch
                </span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
                071&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Exception
                </span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
                072&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e
                </span><br/>
<span class="covered" title="4 out of 4 forms covered">
                073&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(let&nbsp;[data&nbsp;(ex-data&nbsp;e)]
                </span><br/>
<span class="covered" title="1 out of 1 forms covered">
                074&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(if
                </span><br/>
<span class="covered" title="1 out of 1 forms covered">
                075&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;data
                </span><br/>
<span class="covered" title="6 out of 6 forms covered">
                076&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(case&nbsp;(:cause&nbsp;data)
                </span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
                077&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:quit&nbsp;nil
                </span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
                078&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;;&nbsp;default
                </span><br/>
<span class="not-covered" title="0 out of 3 forms covered">
                079&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(pprint&nbsp;data))
                </span><br/>
<span class="not-covered" title="0 out of 3 forms covered">
                080&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(println&nbsp;e))))))))
                </span><br/>
 </body>
</html>