25 lines
15 KiB
HTML
25 lines
15 KiB
HTML
<!DOCTYPE html PUBLIC ""
|
||
"">
|
||
<html><head><meta charset="UTF-8" /><title>mw-parser.core documentation</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">Mw-parser</span> <span class="project-version">0.2.0-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to mw-parser</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>mw-parser</span></div></div></li><li class="depth-2 branch"><a href="mw-parser.bulk.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>bulk</span></div></a></li><li class="depth-2 branch current"><a href="mw-parser.core.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>core</span></div></a></li><li class="depth-2 branch"><a href="mw-parser.declarative.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>declarative</span></div></a></li><li class="depth-2 branch"><a href="mw-parser.errors.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>errors</span></div></a></li><li class="depth-2 branch"><a href="mw-parser.flow.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>flow</span></div></a></li><li class="depth-2 branch"><a href="mw-parser.generate.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>generate</span></div></a></li><li class="depth-2 branch"><a href="mw-parser.simplify.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simplify</span></div></a></li><li class="depth-2"><a href="mw-parser.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li></ul></div><div class="sidebar secondary"><h3><a href="#top"><span class="inner">Public Vars</span></a></h3><ul><li class="depth-1"><a href="mw-parser.core.html#var-bad-parse-error"><div class="inner"><span>bad-parse-error</span></div></a></li><li class="depth-1"><a href="mw-parser.core.html#var-compile-rule"><div class="inner"><span>compile-rule</span></div></a></li><li class="depth-1"><a href="mw-parser.core.html#var-gen-token-value"><div class="inner"><span>gen-token-value</span></div></a></li><li class="depth-1"><a href="mw-parser.core.html#var-parse-comparator-neighbours-condition"><div class="inner"><span>parse-comparator-neighbours-condition</span></div></a></li><li class="depth-1"><a href="mw-parser.core.html#var-parse-disjunct-value"><div class="inner"><span>parse-disjunct-value</span></div></a></li><li class="depth-1"><a href="mw-parser.core.html#var-parse-member-condition"><div class="inner"><span>parse-member-condition</span></div></a></li><li class="depth-1"><a href="mw-parser.core.html#var-parse-neighbours-condition"><div class="inner"><span>parse-neighbours-condition</span></div></a></li><li class="depth-1"><a href="mw-parser.core.html#var-parse-numeric-value"><div class="inner"><span>parse-numeric-value</span></div></a></li><li class="depth-1"><a href="mw-parser.core.html#var-parse-property-int"><div class="inner"><span>parse-property-int</span></div></a></li><li class="depth-1"><a href="mw-parser.core.html#var-parse-property-value"><div class="inner"><span>parse-property-value</span></div></a></li><li class="depth-1"><a href="mw-parser.core.html#var-parse-rule"><div class="inner"><span>parse-rule</span></div></a></li><li class="depth-1"><a href="mw-parser.core.html#var-parse-simple-condition"><div class="inner"><span>parse-simple-condition</span></div></a></li><li class="depth-1"><a href="mw-parser.core.html#var-parse-simple-neighbours-condition"><div class="inner"><span>parse-simple-neighbours-condition</span></div></a></li><li class="depth-1"><a href="mw-parser.core.html#var-parse-simple-value"><div class="inner"><span>parse-simple-value</span></div></a></li><li class="depth-1"><a href="mw-parser.core.html#var-parse-some-neighbours-condition"><div class="inner"><span>parse-some-neighbours-condition</span></div></a></li><li class="depth-1"><a href="mw-parser.core.html#var-parse-token-value"><div class="inner"><span>parse-token-value</span></div></a></li><li class="depth-1"><a href="mw-parser.core.html#var-parse-value"><div class="inner"><span>parse-value</span></div></a></li><li class="depth-1"><a href="mw-parser.core.html#var-re-number"><div class="inner"><span>re-number</span></div></a></li><li class="depth-1"><a href="mw-parser.core.html#var-reserved-properties-error"><div class="inner"><span>reserved-properties-error</span></div></a></li></ul></div><div class="namespace-docs" id="content"><h1 class="anchor" id="top">mw-parser.core</h1><div class="doc"><div class="markdown"><p>A very simple parser which parses production rules.</p>
|
||
</div></div><div class="public anchor" id="var-bad-parse-error"><h3>bad-parse-error</h3><div class="usage"></div><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p>
|
||
</div></div><div class="src-link"><a href="https://github.com/simon-brooke/mw-parser/blob/master/src/mw_parser/core.clj#L72">view source</a></div></div><div class="public anchor" id="var-compile-rule"><h3>compile-rule</h3><div class="usage"><code>(compile-rule rule-text return-tuple?)</code><code>(compile-rule rule-text)</code></div><div class="doc"><div class="markdown"><p>Parse this <code>rule-text</code>, a string conforming to the grammar of MicroWorld rules, into Clojure source, and then compile it into an anonymous function object, getting round the problem of binding mw-engine.utils in the compiling environment. If <code>return-tuple?</code> is present and true, return a list comprising the anonymous function compiled, and the function from which it was compiled.</p>
|
||
<p>Throws an exception if parsing fails.</p>
|
||
</div></div><div class="src-link"><a href="https://github.com/simon-brooke/mw-parser/blob/master/src/mw_parser/core.clj#L434">view source</a></div></div><div class="public anchor" id="var-gen-token-value"><h3>gen-token-value</h3><div class="usage"><code>(gen-token-value token expect-int)</code></div><div class="doc"><div class="markdown"><p>Parse a single value from this single token and return just the generated code, not a pair.</p>
|
||
</div></div><div class="src-link"><a href="https://github.com/simon-brooke/mw-parser/blob/master/src/mw_parser/core.clj#L127">view source</a></div></div><div class="public anchor" id="var-parse-comparator-neighbours-condition"><h3>parse-comparator-neighbours-condition</h3><div class="usage"><code>(parse-comparator-neighbours-condition [MORE THAN n NEIGHBOURS WITHIN distance have-or-are & rest])</code></div><div class="doc"><div class="markdown"><p>Parse conditions of the form ‘…more than 6 neighbours are <a href="condition">condition</a>’</p>
|
||
</div></div><div class="src-link"><a href="https://github.com/simon-brooke/mw-parser/blob/master/src/mw_parser/core.clj#L220">view source</a></div></div><div class="public anchor" id="var-parse-disjunct-value"><h3>parse-disjunct-value</h3><div class="usage"><code>(parse-disjunct-value [OR token & tokens] expect-int)</code></div><div class="doc"><div class="markdown"><p>Parse a list of values from among these <code>tokens</code>. If <code>expect-int</code> is true, return integers or things which will evaluate to integers.</p>
|
||
</div></div><div class="src-link"><a href="https://github.com/simon-brooke/mw-parser/blob/master/src/mw_parser/core.clj#L133">view source</a></div></div><div class="public anchor" id="var-parse-member-condition"><h3>parse-member-condition</h3><div class="usage"><code>(parse-member-condition [property IS IN & rest])</code></div><div class="doc"><div class="markdown"><p>Parses a condition of the form ‘<a href="property">property</a> in <a href="value">value</a> or <a href="value">value</a>…’</p>
|
||
</div></div><div class="src-link"><a href="https://github.com/simon-brooke/mw-parser/blob/master/src/mw_parser/core.clj#L156">view source</a></div></div><div class="public anchor" id="var-parse-neighbours-condition"><h3>parse-neighbours-condition</h3><div class="usage"><code>(parse-neighbours-condition tokens)</code></div><div class="doc"><div class="markdown"><p>Parse conditions referring to neighbours</p>
|
||
</div></div><div class="src-link"><a href="https://github.com/simon-brooke/mw-parser/blob/master/src/mw_parser/core.clj#L295">view source</a></div></div><div class="public anchor" id="var-parse-numeric-value"><h3>parse-numeric-value</h3><div class="usage"><code>(parse-numeric-value [value & remainder])</code></div><div class="doc"><div class="markdown"><p>Parse a number.</p>
|
||
</div></div><div class="src-link"><a href="https://github.com/simon-brooke/mw-parser/blob/master/src/mw_parser/core.clj#L94">view source</a></div></div><div class="public anchor" id="var-parse-property-int"><h3>parse-property-int</h3><div class="usage"><code>(parse-property-int [value & remainder])</code></div><div class="doc"><div class="markdown"><p>Parse a token assumed to be the name of a property of the current cell, whose value is assumed to be an integer.</p>
|
||
</div></div><div class="src-link"><a href="https://github.com/simon-brooke/mw-parser/blob/master/src/mw_parser/core.clj#L99">view source</a></div></div><div class="public anchor" id="var-parse-property-value"><h3>parse-property-value</h3><div class="usage"><code>(parse-property-value [value & remainder])</code></div><div class="doc"><div class="markdown"><p>Parse a token assumed to be the name of a property of the current cell.</p>
|
||
</div></div><div class="src-link"><a href="https://github.com/simon-brooke/mw-parser/blob/master/src/mw_parser/core.clj#L105">view source</a></div></div><div class="public anchor" id="var-parse-rule"><h3>parse-rule</h3><div class="usage"><code>(parse-rule line)</code></div><div class="doc"><div class="markdown"><p>Parse a complete rule from this <code>line</code>, expected to be either a string or a sequence of string tokens. Return the rule in the form of an S-expression.</p>
|
||
<p>Throws an exception if parsing fails.</p>
|
||
</div></div><div class="src-link"><a href="https://github.com/simon-brooke/mw-parser/blob/master/src/mw_parser/core.clj#L414">view source</a></div></div><div class="public anchor" id="var-parse-simple-condition"><h3>parse-simple-condition</h3><div class="usage"><code>(parse-simple-condition tokens)</code></div><div class="doc"><div class="markdown"><p>Parse conditions of the form ‘<a href="property">property</a> <a href="comparison">comparison</a> <a href="value">value</a>’.</p>
|
||
</div></div><div class="src-link"><a href="https://github.com/simon-brooke/mw-parser/blob/master/src/mw_parser/core.clj#L304">view source</a></div></div><div class="public anchor" id="var-parse-simple-neighbours-condition"><h3>parse-simple-neighbours-condition</h3><div class="usage"><code>(parse-simple-neighbours-condition [n NEIGHBOURS WITHIN distance have-or-are & rest])</code></div><div class="doc"><div class="markdown"><p>Parse conditions of the form ‘…6 neighbours are <a href="condition">condition</a>’</p>
|
||
</div></div><div class="src-link"><a href="https://github.com/simon-brooke/mw-parser/blob/master/src/mw_parser/core.clj#L263">view source</a></div></div><div class="public anchor" id="var-parse-simple-value"><h3>parse-simple-value</h3><div class="usage"><code>(parse-simple-value tokens expect-int)</code><code>(parse-simple-value tokens)</code></div><div class="doc"><div class="markdown"><p>Parse a value from the first of these <code>tokens</code>. If <code>expect-int</code> is true, return an integer or something which will evaluate to an integer.</p>
|
||
</div></div><div class="src-link"><a href="https://github.com/simon-brooke/mw-parser/blob/master/src/mw_parser/core.clj#L115">view source</a></div></div><div class="public anchor" id="var-parse-some-neighbours-condition"><h3>parse-some-neighbours-condition</h3><div class="usage"><code>(parse-some-neighbours-condition [SOME NEIGHBOURS & rest])</code></div><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p>
|
||
</div></div><div class="src-link"><a href="https://github.com/simon-brooke/mw-parser/blob/master/src/mw_parser/core.clj#L257">view source</a></div></div><div class="public anchor" id="var-parse-token-value"><h3>parse-token-value</h3><div class="usage"><code>(parse-token-value [value & remainder])</code></div><div class="doc"><div class="markdown"><p>Parse a token assumed to be a simple token value.</p>
|
||
</div></div><div class="src-link"><a href="https://github.com/simon-brooke/mw-parser/blob/master/src/mw_parser/core.clj#L110">view source</a></div></div><div class="public anchor" id="var-parse-value"><h3>parse-value</h3><div class="usage"><code>(parse-value tokens expect-int)</code><code>(parse-value tokens)</code></div><div class="doc"><div class="markdown"><p>Parse a value from among these <code>tokens</code>. If <code>expect-int</code> is true, return an integer or something which will evaluate to an integer.</p>
|
||
</div></div><div class="src-link"><a href="https://github.com/simon-brooke/mw-parser/blob/master/src/mw_parser/core.clj#L146">view source</a></div></div><div class="public anchor" id="var-re-number"><h3>re-number</h3><div class="usage"></div><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p>
|
||
</div></div><div class="src-link"><a href="https://github.com/simon-brooke/mw-parser/blob/master/src/mw_parser/core.clj#L66">view source</a></div></div><div class="public anchor" id="var-reserved-properties-error"><h3>reserved-properties-error</h3><div class="usage"></div><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p>
|
||
</div></div><div class="src-link"><a href="https://github.com/simon-brooke/mw-parser/blob/master/src/mw_parser/core.clj#L69">view source</a></div></div></div></body></html> |