blitz-research 9 роки тому
батько
коміт
991b061f2b

+ 877 - 0
docs/Monkey2-quick-reference.html

@@ -0,0 +1,877 @@
+<!DOCTYPE html>
+
+<html>
+
+<head>
+
+<title>Monkey2 Modules Reference</title>
+
+<link rel='stylesheet' href='css/microgram.css'>
+
+<link rel='stylesheet' href='js-treeview/treeview.css' />
+
+</head>
+
+<body style='position:static; width:100%; height:100%; margin:32px;'>
+
+<div class="container"><h3 id="primitive-types">Primitive types</h3>
+
+<table>
+<thead>
+<tr>
+  <th align="left">Name</th>
+  <th align="left">Description</th>
+</tr>
+</thead>
+<tbody><tr>
+  <td align="left"><code>Void</code></td>
+  <td align="left">No type</td>
+</tr>
+<tr>
+  <td align="left"><code>Bool</code></td>
+  <td align="left">Boolean</td>
+</tr>
+<tr>
+  <td align="left"><code>Byte</code></td>
+  <td align="left">8 bit signed integer</td>
+</tr>
+<tr>
+  <td align="left"><code>UByte</code></td>
+  <td align="left">8 bit unsigned integer</td>
+</tr>
+<tr>
+  <td align="left"><code>Short</code></td>
+  <td align="left">16 bit signed integer</td>
+</tr>
+<tr>
+  <td align="left"><code>UShort</code></td>
+  <td align="left">16 bit unsigned integer</td>
+</tr>
+<tr>
+  <td align="left"><code>Int</code></td>
+  <td align="left">32 bit signed integer</td>
+</tr>
+<tr>
+  <td align="left"><code>UInt</code></td>
+  <td align="left">32 bit unsigned integer</td>
+</tr>
+<tr>
+  <td align="left"><code>Long</code></td>
+  <td align="left">64 bit signed integer</td>
+</tr>
+<tr>
+  <td align="left"><code>ULong</code></td>
+  <td align="left">64 bit unsigned integer</td>
+</tr>
+<tr>
+  <td align="left"><code>Float</code></td>
+  <td align="left">32 bit float</td>
+</tr>
+<tr>
+  <td align="left"><code>Double</code></td>
+  <td align="left">64 bit float</td>
+</tr>
+<tr>
+  <td align="left"><code>String</code></td>
+  <td align="left">Character string</td>
+</tr>
+<tr>
+  <td align="left"><code>Object</code></td>
+  <td align="left">Class instance</td>
+</tr>
+</tbody></table>
+
+
+
+
+<h3 id="derived-types">Derived types</h3>
+
+<table>
+<thead>
+<tr>
+  <th align="left">Syntax</th>
+  <th align="left">Derived type</th>
+</tr>
+</thead>
+<tbody><tr>
+  <td align="left">type <code>[ ]</code></td>
+  <td align="left">Array type</td>
+</tr>
+<tr>
+  <td align="left">type <code>(</code> types <code>)</code></td>
+  <td align="left">Function type</td>
+</tr>
+<tr>
+  <td align="left">type <code>&lt;</code> types <code>&gt;</code></td>
+  <td align="left">Generic type instance</td>
+</tr>
+<tr>
+  <td align="left">type <code>Ptr</code></td>
+  <td align="left">Pointer type</td>
+</tr>
+</tbody></table>
+
+
+<h3 id="native-wrapper-types">Native wrapper types</h3>
+
+<table>
+<thead>
+<tr>
+  <th align="left">Name</th>
+  <th align="left">Description</th>
+</tr>
+</thead>
+<tbody><tr>
+  <td align="left"><code>CString</code></td>
+  <td align="left">Null terminated C/C++ <code>const char *</code></td>
+</tr>
+<tr>
+  <td align="left"><code>WString</code></td>
+  <td align="left">Null terminated C/C++ <code>wchar_t *</code></td>
+</tr>
+<tr>
+  <td align="left"><code>Utf8String</code></td>
+  <td align="left">Null terminated C/C++ <code>const unsigned char *</code> in utf8 encoding.</td>
+</tr>
+</tbody></table>
+
+
+<p><code>CString</code>, <code>WString</code> and <code>Utf8String</code> should only be used when declaring parameters for extern functions.</p>
+
+
+
+<h3 id="implicit-conversions">Implicit conversions</h3>
+
+<p>These conversions are performed automatically:</p>
+
+<table>
+<thead>
+<tr>
+  <th align="left">Source type</th>
+  <th align="left">Destination type</th>
+</tr>
+</thead>
+<tbody><tr>
+  <td align="left">Any non-void type</td>
+  <td align="left"><code>Bool</code></td>
+</tr>
+<tr>
+  <td align="left">Any numeric type</td>
+  <td align="left">Any numeric type, <code>String</code></td>
+</tr>
+<tr>
+  <td align="left"><code>String</code></td>
+  <td align="left"><code>CString</code>, <code>WString</code>, <code>Utf8String</code></td>
+</tr>
+<tr>
+  <td align="left">Any pointer type</td>
+  <td align="left"><code>Void Ptr</code></td>
+</tr>
+<tr>
+  <td align="left">Any enum type</td>
+  <td align="left"><code>Int</code></td>
+</tr>
+<tr>
+  <td align="left">Derived class</td>
+  <td align="left">Base class</td>
+</tr>
+</tbody></table>
+
+
+
+
+<h3 id="explicit-conversions">Explicit conversions</h3>
+
+<p>The <code>Cast</code> <code>&lt;</code> <em>dest-type</em> <code>&gt;</code> <code>:</code> <em>dest-type</em> <code>(</code> <em>expression</em> <code>)</code> operator must be used for these conversions:</p>
+
+<table>
+<thead>
+<tr>
+  <th align="left">Source type</th>
+  <th align="left">Destination type</th>
+</tr>
+</thead>
+<tbody><tr>
+  <td align="left"><code>Bool</code></td>
+  <td align="left">Any numeric type</td>
+</tr>
+<tr>
+  <td align="left"><code>String</code></td>
+  <td align="left">Any numeric type</td>
+</tr>
+<tr>
+  <td align="left">Any pointer type</td>
+  <td align="left">Any pointer type</td>
+</tr>
+<tr>
+  <td align="left"><code>Int</code></td>
+  <td align="left">Any enum type</td>
+</tr>
+<tr>
+  <td align="left">Base class</td>
+  <td align="left">Derived class</td>
+</tr>
+</tbody></table>
+
+
+
+
+<h3 id="operators">Operators</h3>
+
+<table>
+<thead>
+<tr>
+  <th align="left">Operator</th>
+  <th align="left">Description</th>
+  <th align="center">Precedence</th>
+</tr>
+</thead>
+<tbody><tr>
+  <td align="left"><code>New</code></td>
+  <td align="left">New object or array</td>
+  <td align="center">1</td>
+</tr>
+<tr>
+  <td align="left"><code>Null</code></td>
+  <td align="left">Null value</td>
+  <td align="center"></td>
+</tr>
+<tr>
+  <td align="left"><code>Self</code></td>
+  <td align="left">Self instance</td>
+  <td align="center"></td>
+</tr>
+<tr>
+  <td align="left"><code>Super</code></td>
+  <td align="left">Super instance</td>
+  <td align="center"></td>
+</tr>
+<tr>
+  <td align="left"><code>True</code></td>
+  <td align="left">Boolean true</td>
+  <td align="center"></td>
+</tr>
+<tr>
+  <td align="left"><code>False</code></td>
+  <td align="left">Boolean false</td>
+  <td align="center"></td>
+</tr>
+<tr>
+  <td align="left"><code>Cast</code></td>
+  <td align="left">Cast operator</td>
+  <td align="center"></td>
+</tr>
+<tr>
+  <td align="left"><code>Lambda</code></td>
+  <td align="left">Lambda function</td>
+  <td align="center"></td>
+</tr>
+<tr>
+  <td align="left"><em>identifier</em></td>
+  <td align="left">Identifier</td>
+  <td align="center"></td>
+</tr>
+<tr>
+  <td align="left"><em>literal</em></td>
+  <td align="left">Literal value</td>
+  <td align="center"></td>
+</tr>
+<tr>
+  <td align="left"></td>
+  <td align="left"></td>
+  <td align="center"></td>
+</tr>
+<tr>
+  <td align="left"><code>.</code></td>
+  <td align="left">Postfix member acccess</td>
+  <td align="center">2</td>
+</tr>
+<tr>
+  <td align="left"><code>( )</code></td>
+  <td align="left">Postfix Invoke</td>
+  <td align="center"></td>
+</tr>
+<tr>
+  <td align="left"><code>[ ]</code></td>
+  <td align="left">Postfix Index</td>
+  <td align="center"></td>
+</tr>
+<tr>
+  <td align="left"><code>&lt; &gt;</code></td>
+  <td align="left">Postfix Generic instance</td>
+  <td align="center"></td>
+</tr>
+<tr>
+  <td align="left"></td>
+  <td align="left"></td>
+  <td align="center"></td>
+</tr>
+<tr>
+  <td align="left"><code>Varptr</code></td>
+  <td align="left">Unary variable address</td>
+  <td align="center">3</td>
+</tr>
+<tr>
+  <td align="left"><code>-</code></td>
+  <td align="left">Unary numeric negate</td>
+  <td align="center"></td>
+</tr>
+<tr>
+  <td align="left"><code>~</code></td>
+  <td align="left">Unary integer complement</td>
+  <td align="center"></td>
+</tr>
+<tr>
+  <td align="left"><code>Not</code></td>
+  <td align="left">Unary boolean invert</td>
+  <td align="center"></td>
+</tr>
+<tr>
+  <td align="left"></td>
+  <td align="left"></td>
+  <td align="center"></td>
+</tr>
+<tr>
+  <td align="left"><code>*</code></td>
+  <td align="left">Numeric multiplication</td>
+  <td align="center">4</td>
+</tr>
+<tr>
+  <td align="left"><code>/</code></td>
+  <td align="left">Numeric division</td>
+  <td align="center"></td>
+</tr>
+<tr>
+  <td align="left"><code>Mod</code></td>
+  <td align="left">Numeric modulo</td>
+  <td align="center"></td>
+</tr>
+<tr>
+  <td align="left"></td>
+  <td align="left"></td>
+  <td align="center"></td>
+</tr>
+<tr>
+  <td align="left"><code>+</code></td>
+  <td align="left">Numeric addition</td>
+  <td align="center">5</td>
+</tr>
+<tr>
+  <td align="left"><code>-</code></td>
+  <td align="left">Numeric subtraction</td>
+  <td align="center"></td>
+</tr>
+<tr>
+  <td align="left"></td>
+  <td align="left"></td>
+  <td align="center"></td>
+</tr>
+<tr>
+  <td align="left"><code>Shl</code></td>
+  <td align="left">Integer shift left</td>
+  <td align="center">6</td>
+</tr>
+<tr>
+  <td align="left"><code>Shr</code></td>
+  <td align="left">Integer shift right</td>
+  <td align="center"></td>
+</tr>
+<tr>
+  <td align="left"></td>
+  <td align="left"></td>
+  <td align="center"></td>
+</tr>
+<tr>
+  <td align="left"><code>&amp;</code></td>
+  <td align="left">Integer and</td>
+  <td align="center">7</td>
+</tr>
+<tr>
+  <td align="left"><code>~</code></td>
+  <td align="left">Integer xor</td>
+  <td align="center"></td>
+</tr>
+<tr>
+  <td align="left"></td>
+  <td align="left"></td>
+  <td align="center"></td>
+</tr>
+<tr>
+  <td align="left"><code>|</code></td>
+  <td align="left">Integer or</td>
+  <td align="center">8</td>
+</tr>
+<tr>
+  <td align="left"></td>
+  <td align="left"></td>
+  <td align="center"></td>
+</tr>
+<tr>
+  <td align="left"><code>&lt;=&gt;</code></td>
+  <td align="left">Compare</td>
+  <td align="center">9</td>
+</tr>
+<tr>
+  <td align="left"></td>
+  <td align="left"></td>
+  <td align="center"></td>
+</tr>
+<tr>
+  <td align="left"><code>&lt;</code></td>
+  <td align="left">Less than</td>
+  <td align="center">10</td>
+</tr>
+<tr>
+  <td align="left"><code>&gt;</code></td>
+  <td align="left">Greater than</td>
+  <td align="center"></td>
+</tr>
+<tr>
+  <td align="left"><code>&lt;=</code></td>
+  <td align="left">Less than or equal</td>
+  <td align="center"></td>
+</tr>
+<tr>
+  <td align="left"><code>&gt;=</code></td>
+  <td align="left">Greater than or equal</td>
+  <td align="center"></td>
+</tr>
+<tr>
+  <td align="left"></td>
+  <td align="left"></td>
+  <td align="center"></td>
+</tr>
+<tr>
+  <td align="left"><code>=</code></td>
+  <td align="left">Equal</td>
+  <td align="center">11</td>
+</tr>
+<tr>
+  <td align="left"><code>&lt;&gt;</code></td>
+  <td align="left">Not equal</td>
+  <td align="center"></td>
+</tr>
+<tr>
+  <td align="left"></td>
+  <td align="left"></td>
+  <td align="center"></td>
+</tr>
+<tr>
+  <td align="left"><code>And</code></td>
+  <td align="left">Boolean and</td>
+  <td align="center">12</td>
+</tr>
+<tr>
+  <td align="left"></td>
+  <td align="left"></td>
+  <td align="center"></td>
+</tr>
+<tr>
+  <td align="left"><code>Or</code></td>
+  <td align="left">Boolean or</td>
+  <td align="center">13</td>
+</tr>
+<tr>
+  <td align="left"></td>
+  <td align="left"></td>
+  <td align="center"></td>
+</tr>
+<tr>
+  <td align="left"><code>?</code> <code>Else</code></td>
+  <td align="left">If-then-else</td>
+  <td align="center">14</td>
+</tr>
+</tbody></table>
+
+
+
+
+<h3 id="string-members">String members</h3>
+
+<table>
+<thead>
+<tr>
+  <th align="left">Member</th>
+</tr>
+</thead>
+<tbody><tr>
+  <td align="left">Property Length:Int</td>
+</tr>
+<tr>
+  <td align="left">Property Utf8Length:Int</td>
+</tr>
+<tr>
+  <td align="left">Method Find:Int( str:String,from:Int=0 )</td>
+</tr>
+<tr>
+  <td align="left">Method FindLast:Int( str:String,from:Int=0 )</td>
+</tr>
+<tr>
+  <td align="left">Method Contains:Bool( str:String )</td>
+</tr>
+<tr>
+  <td align="left">Method StartsWith:Bool( str:String )</td>
+</tr>
+<tr>
+  <td align="left">Method EndsWith:Bool( str:String )</td>
+</tr>
+<tr>
+  <td align="left">Method Slice:String( from:Int )</td>
+</tr>
+<tr>
+  <td align="left">Method Slice:String( from:Int,tail:Int )</td>
+</tr>
+<tr>
+  <td align="left">Method ToUpper:String()</td>
+</tr>
+<tr>
+  <td align="left">Method ToLower:String()</td>
+</tr>
+<tr>
+  <td align="left">Method Capitalize:String()</td>
+</tr>
+<tr>
+  <td align="left">Method Trim:String()</td>
+</tr>
+<tr>
+  <td align="left">Method Replace:String( find:String,replace:String )</td>
+</tr>
+<tr>
+  <td align="left">Method Split:String<a></a></td>
+</tr>
+<tr>
+  <td align="left">Method Join:String( bits:String[] )</td>
+</tr>
+<tr>
+  <td align="left">Method ToUtf8String:Int( buf:Void Ptr,size:Int )</td>
+</tr>
+<tr>
+  <td align="left">Function FromChar:String( chr:Int )</td>
+</tr>
+<tr>
+  <td align="left">Function FromCString:String( data:Void Ptr )</td>
+</tr>
+<tr>
+  <td align="left">Function FromWString:String( data:Void Ptr )</td>
+</tr>
+<tr>
+  <td align="left">Function FromUtf8String:String( data:Void Ptr )</td>
+</tr>
+<tr>
+  <td align="left">Function FromUtf8String:String( data:Void Ptr,size:Int )</td>
+</tr>
+</tbody></table>
+
+
+
+
+<h3 id="array-members">Array members</h3>
+
+<table>
+<thead>
+<tr>
+  <th align="left">Member</th>
+</tr>
+</thead>
+<tbody><tr>
+  <td align="left">Property Length:Int</td>
+</tr>
+</tbody></table>
+
+
+
+
+<h3 id="creating-arrays">Creating arrays</h3>
+
+<ul>
+<li><p><code>New</code> <em>element-type</em> <code>[</code> <em>length-expression</em> <code>]</code></p></li>
+<li><p><code>New</code> <em>element-type</em> <code>[]</code> <code>(</code> <em>element-expressions</em> <code>)</code></p></li>
+</ul>
+
+
+
+<h3 id="local-variables">Local variables</h3>
+
+<ul>
+<li><p><code>Local</code> <em>identifier</em> <code>:</code> <em>type</em> [ <code>=</code> <em>expression</em> ]</p></li>
+<li><p><code>Local</code> <em>identifier</em> <code>:=</code> <em>expression</em></p></li>
+</ul>
+
+
+
+<h3 id="field-variables">Field variables</h3>
+
+<ul>
+<li><p><code>Field</code> <em>identifier</em> <code>:</code> <em>type</em> [ <code>=</code> <em>expression</em> ]</p></li>
+<li><p><code>Field</code> <em>identifier</em> <code>:=</code> <em>expression</em></p></li>
+<li><p><code>Field</code> <em>identifier</em> <code>:</code> <em>type</em> <code>=</code> <em>extern-symbol</em></p></li>
+</ul>
+
+
+
+<h3 id="global-variables">Global variables</h3>
+
+<ul>
+<li><p><code>Global</code> <em>identifier</em> <code>:</code> <em>type</em> [ <code>=</code> <em>expression</em> ]</p></li>
+<li><p><code>Global</code> <em>identifier</em> <code>:=</code> <em>expression</em></p></li>
+<li><p><code>Global</code> <em>identifier</em> <code>:</code> <em>type</em> <code>=</code> <em>extern-symbol</em></p></li>
+</ul>
+
+
+
+<h3 id="constants">Constants</h3>
+
+<ul>
+<li><p><code>Const</code> <em>identifier</em> <code>:</code> <em>type</em> <code>=</code> <em>expression</em></p></li>
+<li><p><code>Const</code> <em>identifier</em> <code>:=</code> <em>expression</em></p></li>
+<li><p><code>Const</code> <em>identifier</em> <code>:</code> <em>type</em> <code>=</code> <em>extern-symbol</em></p></li>
+</ul>
+
+
+
+<h3 id="classes">Classes</h3>
+
+<ul>
+<li><code>Class</code> <em>identifier</em> [ <code>&lt;</code> <em>generic-types</em> <code>&gt;</code> ] [ <code>Extends</code> <em>type</em> ] [ <code>Implements</code> <em>types</em> ] [ <code>Abstract</code> | <code>Virtual</code> | <code>Final</code> ] [ <code>Where</code> <em>where-expression</em> ] [ <code>=</code> extern-symbol ]  <br>
+&nbsp;&nbsp;&nbsp;&nbsp;    <em>class-members</em> <br>
+<code>End</code> | <code>End Class</code></li>
+</ul>
+
+<p>Class methods are final by default and must be declared <code>Virtual</code> or <code>Abstract</code> if they are designed to be overridden, or <code>Override</code> or <code>Override Final</code> if they override a superclass method.</p>
+
+<p>This behavior can be modified by declaring a class <code>Virtual</code>. Classes declared <code>Virtual</code>  or with a superclass declared <code>Virtual</code> behave much like monkey1 or java classes - all methods are virtual by default, and will silently override any existing superclass virtual methods. It is an error to declare methods of such classes either <code>Virtual</code> or <code>Override</code>.</p>
+
+<p>Classes declared <code>Abstract</code> or that contain any abstract methods cannot be instantiated using <code>New</code>.</p>
+
+<p>Classes declared <code>Final</code> cannot be extended.</p>
+
+
+
+<h3 id="interfaces">Interfaces</h3>
+
+<ul>
+<li><code>Interface</code> <em>identifier</em> [ <code>Extends</code> <em>types</em> ] [ <code>=</code> extern-symbol ] <br>
+&nbsp;&nbsp;&nbsp;&nbsp;    <em>interface-members</em> <br>
+<code>End</code> | <code>End Interface</code></li>
+</ul>
+
+
+
+<h3 id="structs">Structs</h3>
+
+<ul>
+<li><code>Struct</code> <em>identifier</em> [ <code>=</code> extern-symbol ] <br>
+&nbsp;&nbsp;&nbsp;&nbsp;    <em>struct-members</em> <br>
+<code>End</code> | <code>End Struct</code></li>
+</ul>
+
+
+
+<h3 id="properties">Properties</h3>
+
+<ul>
+<li><p><code>Property</code> <em>identifier</em> <code>:</code> <em>type</em> <code>()</code> <br>
+&nbsp;&nbsp;&nbsp;&nbsp;    <em>statement-block</em> <br>
+[ <code>Setter</code> <code>(</code> <em>param-decl</em> <code>)</code> <br>
+&nbsp;&nbsp;&nbsp;&nbsp;    <em>statement-block</em> ] <br>
+<code>End</code> | <code>End Property</code></p></li>
+<li><p><code>Property</code> <em>identifier</em> <code>(</code> <em>param-decl</em> <code>)</code> <br>
+&nbsp;&nbsp;&nbsp;&nbsp;    <em>statement-block</em> <br>
+[ <code>Getter</code> <code>:</code> <em>type</em> <code>()</code> <br>
+&nbsp;&nbsp;&nbsp;&nbsp;    <em>statement-block</em> ] <br>
+<code>End</code> | <code>End Property</code></p></li>
+</ul>
+
+
+
+<h3 id="functions">Functions</h3>
+
+<ul>
+<li><code>Function</code> <em>identifier</em> [ <code>&lt;</code> <em>generic-types</em> <code>&gt;</code> ] [ <code>:</code> <em>return-type</em> ] <code>(</code> <em>param-decls</em><code>)</code> [ <code>Where</code> <em>where-expression</em> ] [ <code>=</code><em>extern-symbol</em> ] <br>
+&nbsp;&nbsp;&nbsp;&nbsp;    <em>statement-block</em> <br>
+<code>End</code> | <code>End Function</code></li>
+</ul>
+
+
+
+<h3 id="methods">Methods</h3>
+
+<ul>
+<li><code>Method</code> <em>identifier</em> [ <code>&lt;</code> <em>generic-types</em> <code>&gt;</code> ] [ <code>:</code> <em>return-type</em> ] <code>(</code> <em>param-decls</em> <code>)</code> [ <code>Virtual</code> | <code>Override</code> | <code>Final</code> | <code>Override Final</code> ] [ <code>Where</code> <em>where-expression</em> ] [ <code>=</code><em>extern-symbol</em> ] <br>
+&nbsp;&nbsp;&nbsp;&nbsp;    <em>statement-block</em> <br>
+<code>End</code> | <code>End Method</code></li>
+</ul>
+
+
+
+<h3 id="properties-1">Properties</h3>
+
+<ul>
+<li><p><code>Property</code> <em>identifier</em> <code>:</code> <em>type</em> <code>()</code>  [ <code>Virtual</code> | <code>Override</code> | <code>Final</code> | <code>Override Final</code> ] [ <code>Where</code> <em>where-expression</em> ] [ <code>=</code><em>extern-symbol</em> ] <br>
+&nbsp;&nbsp;&nbsp;&nbsp;    <em>statement-block</em> <br>
+[ <code>Setter</code> <code>(</code> <em>param-decl</em> <code>)</code>  [ <code>Virtual</code> | <code>Override</code> | <code>Final</code> | <code>Override Final</code> ] [ <code>Where</code> <em>where-expression</em> ] [ <code>=</code><em>extern-symbol</em> ] <br>
+&nbsp;&nbsp;&nbsp;&nbsp;    <em>statement-block</em> ] <br>
+<code>End</code> | <code>End Property</code></p></li>
+<li><p><code>Property</code> <em>identifier</em> <code>(</code> <em>param-decl</em> <code>)</code>  [ <code>Virtual</code> | <code>Override</code> | <code>Final</code> | <code>Override Final</code> ] [ <code>Where</code> <em>where-expression</em> ] [ <code>=</code><em>extern-symbol</em> ] <br>
+&nbsp;&nbsp;&nbsp;&nbsp;    <em>statement-block</em> <br>
+[ <code>Getter</code> <code>:</code> <em>type</em> <code>()</code>  [ <code>Virtual</code> | <code>Override</code> | <code>Final</code> | <code>Override Final</code> ] [ <code>Where</code> <em>where-expression</em> ] [ <code>=</code><em>extern-symbol</em> ] <br>
+&nbsp;&nbsp;&nbsp;&nbsp;    <em>statement-block</em> ] <br>
+<code>End</code> | <code>End Property</code></p></li>
+</ul>
+
+<p>Example:</p>
+
+<pre>Struct S
+
+    Private
+
+    'Internal storage for the property
+    Field _seconds:Float
+
+    Public
+
+    'Read/Write 'Seconds' property...
+    Property Seconds:Float()
+
+        Return _seconds
+
+    Setter( seconds:Float )
+
+        _seconds=seconds
+    End
+
+    'Read only 'Minutes' property...
+    Property Minutes:Float()
+
+        Return _seconds/60.0
+    End
+
+End
+</pre>
+
+
+
+<h3 id="if-statement">If statement</h3>
+
+<ul>
+<li><p><code>If</code> <em>expression</em> [ <code>Then</code> ] <em>simple-statements</em> { <code>ElseIf</code> <em>expression</em> [ <code>Then</code> ] <em>simple-statements</em> } [ <code>Else</code> <em>simple-statements</em> ]</p></li>
+<li><p><code>If</code> <em>expression</em> [ <code>Then</code> ] <br>
+&nbsp;&nbsp;&nbsp;&nbsp;    <em>statement-block</em> <br>
+{ <code>ElseIf</code> <em>expression</em> <br>
+&nbsp;&nbsp;&nbsp;&nbsp;    <em>statement-block</em> }  <br>
+[ <code>Else</code>  <br>
+&nbsp;&nbsp;&nbsp;&nbsp;    <em>statement-block</em> ]  <br>
+<code>End</code> | <code>End If</code> | <code>EndIf</code></p></li>
+</ul>
+
+
+
+<h3 id="while-loop">While loop</h3>
+
+<ul>
+<li><code>While</code> <em>expression</em> <br>
+&nbsp;&nbsp;&nbsp;&nbsp;    <em>statement-block</em> <br>
+<code>End</code> | <code>End While</code> | <code>Wend</code></li>
+</ul>
+
+
+
+<h3 id="repeat-loop">Repeat loop</h3>
+
+<ul>
+<li><p><code>Repeat</code> <br>
+&nbsp;&nbsp;&nbsp;&nbsp;    <em>statement-block</em> <br>
+<code>Until</code> <em>expression</em></p></li>
+<li><p><code>Repeat</code> <br>
+&nbsp;&nbsp;&nbsp;&nbsp;    <em>statement-block</em> <br>
+<code>Forever</code></p></li>
+</ul>
+
+
+
+<h3 id="for-loop">For loop</h3>
+
+<ul>
+<li><p><code>For</code> <em>variable-expression</em> <code>=</code> <em>expression</em> <code>To</code> | <code>Until</code> <em>expression</em> [ <code>Step</code> <em>expression</em> ] <br>
+&nbsp;&nbsp;&nbsp;&nbsp;    <em>statement-block</em> <br>
+<code>End</code> | <code>End For</code> | <code>Next</code></p></li>
+<li><p><code>For</code> <em>variable-expression</em> <code>= Eachin</code> <em>expression</em> <br>
+&nbsp;&nbsp;&nbsp;&nbsp;    <em>statement-block</em> <br>
+<code>End</code> | <code>End For</code> | <code>Next</code></p></li>
+<li><p><code>For</code> <em>simple-statement</em> <code>,</code> <em>expression</em> <code>,</code> <em>simple-statement</em> <br>
+&nbsp;&nbsp;&nbsp;&nbsp;    <em>statement-block</em> <br>
+<code>End</code> | <code>End For</code> | <code>Next</code></p></li>
+</ul>
+
+
+
+<h3 id="select-statement">Select statement</h3>
+
+<ul>
+<li><code>Select</code> <em>expression</em> <br>
+{ <code>Case</code> <em>expression</em> { <code>,</code> expression } <br>
+&nbsp;&nbsp;&nbsp;&nbsp;    <em>statement-block</em> } <br>
+[ <code>Default</code> <br>
+&nbsp;&nbsp;&nbsp;&nbsp;    <em>statement-block</em> ] <br>
+<code>End</code> | <code>End Select</code></li>
+</ul>
+
+
+
+<h3 id="try-statement">Try statement</h3>
+
+<ul>
+<li><code>Try</code> <br>
+&nbsp;&nbsp;&nbsp;&nbsp;    <em>statement-block</em> <br>
+<code>Catch</code> ident <code>:</code> type <br>
+&nbsp;&nbsp;&nbsp;&nbsp;    <em>statement-block</em> <br>
+{ <code>Catch</code> ident <code>:</code> type <br>
+&nbsp;&nbsp;&nbsp;&nbsp;    <em>statement-block</em> } <br>
+<code>End</code> | <code>End Try</code></li>
+</ul>
+
+
+
+<h3 id="return-statement">Return statement</h3>
+
+<ul>
+<li><code>Return</code> [ <em>expression</em> ]</li>
+</ul>
+
+
+
+<h3 id="throw-statement">Throw statement</h3>
+
+<ul>
+<li><code>Throw</code> [ <em>expression</em> ]</li>
+</ul>
+
+
+
+<h3 id="continue-statement">Continue statement</h3>
+
+<ul>
+<li><code>Continue</code></li>
+</ul>
+
+
+
+<h3 id="exit-statement">Exit statement</h3>
+
+<ul>
+<li><code>Exit</code></li>
+</ul>
+
+
+
+<h3 id="keywords">Keywords</h3>
+
+<p><code>Namespace Using Import Extern Public Private Protected Void Bool Byte UByte Short UShort Int UInt Long ULong Float Double String Object New Self Super Eachin True False Null Where Alias Const Local Global Field Method Function Property Getter Setter Operator Lambda Enum Class Interface Struct Extends Implements Virtual Override Abstract Final Inline Varptr Ptr Not Mod And Or Shl Shr End If Then Else Elseif Endif While Wend Repeat Until Forever For To Step Next Select Case Default Try Catch Throw Throwable Continue Exit Return Print Cast</code></p>
+
+<p>These keywords are currently unused but reserved for future use:</p>
+
+<p><code>Extension Protocol Delete Var Friend Static</code></p></div>
+
+</body>
+
+</html>

+ 214 - 0
docs/css/microgram.css

@@ -0,0 +1,214 @@
+
+/*! Tweaked version of milligram!
+
+ * Milligram v1.1.0
+ * http://milligram.github.io
+ *
+ * Copyright (c) 2016 CJ Patoilo
+ * Licensed under the MIT license
+
+*/
+
+/* ***** color ***** */
+
+/*
+$color-initial: #fff !default
+$color-primary: #9b4dca !default
+$color-secondary: #606c76 !default
+$color-tertiary: #f4f5f6 !default
+$color-quaternary: #d1d1d1 !default
+*/
+
+/* ***** base ***** */
+
+html{
+	box-sizing: border-box;
+	font-size: 62.5%;
+	width: 100%;
+	height: 100%;
+	padding:0;
+	border:0;
+	margin:0;
+}
+
+body{
+	color: #606c76;	/* $color-secondary */
+	font-family: "Roboto", "Helvetica Neue", "Helvetica", "Arial", sans-serif;
+	font-size: 1.6em; /* currently ems cause chrome bug misinterpreting rems on body element */
+	font-weight: 300;
+	letter-spacing: .01em;
+	line-height: 1.4;
+	padding:0;
+	border:0;
+	margin:0;
+}
+
+*,
+*:after,
+*:before{
+	box-sizing: inherit;
+}
+
+/* ***** code ***** */
+
+code{
+	background: #f4f5f6;	/* $color-tertiary */
+	border-radius: .4rem;
+	font-size: 86%;
+	padding: .2rem .5rem;
+	margin: 0 .2rem;
+	white-space: nowrap;
+}
+
+pre{
+	background: #f4f5f6;	/* $color-tertiary */
+	border-left: .3rem solid #9b4dca;	/* $color-primary */
+	font-family: 'Menlo', 'Consolas', 'Bitstream Vera Sans Mono', 'DejaVu Sans Mono', 'Monaco', monospace;
+}
+pre>code{
+	background: transparent;
+	border-radius: 0;
+	display: block;
+	padding: 1rem 1.5rem;
+	white-space: pre;
+}
+
+/* ***** link ***** */
+
+a{
+	color: #9b4dca;	/* $color-primary */
+	text-decoration: none;
+}
+
+a:hover{
+	color: #606c76;	/* $color-secondary */
+}
+
+/* ***** spacing ***** */
+
+.button,
+button{
+	margin-bottom: 1rem;
+}
+
+input,
+textarea,
+select,
+fieldset{
+	margin-bottom: 1.5rem;
+}
+
+pre,
+blockquote,
+dl,
+figure,
+table,
+p,
+ul,
+ol,
+form{
+	margin-bottom: 2.5rem;
+}
+
+/* ***** table ***** */
+
+table{
+	width: 100%;
+}
+
+th,
+td{
+	border-bottom: .1rem solid #e1e1e1;
+	padding: 0.8rem 1.0rem;
+	text-align: left;
+
+	/*
+	&:first-child
+		padding-left: 0
+
+	&:last-child
+		padding-right: 0
+	*/
+}
+
+/* ***** typography ***** */
+
+p{
+	margin-top: 0;
+}
+
+h1,
+h2,
+h3,
+h4,
+h5,
+h6{
+	font-weight: 300;
+	margin-bottom: 2.0rem;
+	margin-top: 0;
+}
+
+h1{
+	font-size: 4.0rem;
+	letter-spacing: -.1rem;
+	line-height: 1.2;
+}
+
+h2{
+	font-size: 3.6rem;
+	letter-spacing: -.1rem;
+	line-height: 1.25;
+}
+
+h3{
+	font-size: 3.0rem;
+	letter-spacing: -.1rem;
+	line-height: 1.3;
+}
+
+h4{
+	font-size: 2.4rem;
+	letter-spacing: -.08rem;
+	line-height: 1.35;
+}
+
+h5{
+	font-size: 1.8rem;
+	letter-spacing: -.05rem;
+	line-height: 1.5;
+}
+
+h6{
+	font-size: 1.6rem;
+	letter-spacing: 0;
+	line-height: 1.4;
+}
+
+/* Larger than mobile screen */
+
+@media (min-width: 40.0rem){
+
+	h1{
+		font-size: 5.0rem;
+	}
+
+	h2{
+		font-size: 4.2rem;
+	}
+	
+	h3{
+		font-size: 3.6rem;
+	}
+	
+	h4{
+		font-size: 3.0rem;
+	}
+	
+	h5{
+		font-size: 2.4rem;
+	}
+	
+	h6{
+		font-size: 1.5rem;
+	}
+}

+ 21 - 0
docs/css/milligram/license

@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright © 2016 CJ Patoilo <[email protected]>
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.

Різницю між файлами не показано, бо вона завелика
+ 254 - 0
docs/css/milligram/milligram.css


BIN
docs/img/monkey2-logo-63.png


+ 67 - 0
docs/index.html

@@ -0,0 +1,67 @@
+
+<!doctype html>
+
+<head>
+
+<title>Monkey2 Documentation</title>
+
+<link rel='stylesheet' href='css/microgram.css'>
+
+<link rel='stylesheet' href='js-treeview/treeview.css' />
+
+<script type='text/javascript'>
+
+function navto( url ){
+	document.getElementById( 'content' ).src=url;
+	return false;
+}
+
+window.onload=function(){
+	navto( 'modules.html' );
+}
+
+</script>
+
+</head>
+
+<html>
+
+<body style='position:fixed; width:100%; height:100%;'>
+
+<!-- header -->
+<div style='position:absolute; width:100%; top:0; height:63px; border-bottom:1px solid #9b4dca; padding-left:12px; padding-right:16px; line-height:63px; text-align-y:center;'>
+
+<a href='http://monkey2.monkey-x.com' style='float:left;'><img src='img/monkey2-logo-63.png' style='float:left;'></a>
+
+<span style='float:left;'>
+Monkey 2 Documentation
+</span>
+
+<span style='float:right;'>
+
+<a>Manual</a> 
+|
+<a href='javascript:void(0);' onclick="navto( 'modules.html' );">
+Modules
+</a>
+|
+<a href='javascript:void(0);' onclick="navto( 'Monkey2-quick-reference.html' );">
+Language
+</a>
+|
+<a href='http://monkey2.monkey-x.com'>
+Support
+</a>
+
+</span>
+
+</div>
+
+<!-- content -->
+<div style='position:absolute; width:100%; top:64px; bottom:0;'>
+<iframe id='content' name='content' href='Monkey2-quick-reference.html' style='border:0; width:100%; height:100%;'></iframe>
+</div>
+
+</body>
+
+</html>

+ 21 - 0
docs/js-treeview/LICENSE

@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) 2014 Justin Chmura
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.

+ 10 - 0
docs/js-treeview/treeview.css

@@ -0,0 +1,10 @@
+.tree-leaf { position: relative; padding: 2px; }
+.tree-leaf .tree-child-leaves { display: block; margin-left: 15px; }
+.tree-leaf .hidden { display: none; }
+.tree-leaf .tree-expando { background: #ddd; border-radius: 2px; cursor: pointer; float: left; position: relative; text-align: center; width:12px; }
+.tree-leaf .hidden { visibility: hidden; }
+.tree-leaf .tree-expando:hover { background: #aaa; }
+.tree-leaf .tree-leaf-text { cursor: pointer; float: left; margin-left: 5px; }
+.tree-leaf .tree-leaf-text:hover { color: blue; }
+.tree-leaf .tree-leaf-content:before, .tree-leaf .tree-leaf-content:after { content: " "; display: table; }
+.tree-leaf .tree-leaf-content:after { clear: both; }

+ 209 - 0
docs/js-treeview/treeview.js

@@ -0,0 +1,209 @@
+(function (define) {
+  'use strict';
+  
+  (function (root, factory) {
+    if (typeof define === 'function' && define.amd) {
+      define(factory);
+    } else if (typeof exports === 'object') {
+      module.exports = factory();
+    } else {
+      root.TreeView = factory();
+    }
+  }(window, function () {
+    return (function () {
+
+      /** List of events supported by the tree view */
+      var events = ['expand', 'collapse', 'select'];
+
+      /**
+       * @constructor
+       * @property {object} handlers The attached event handlers
+       * @property {object} data The JSON object that represents the tree structure
+       * @property {DOMElement} node The DOM element to render the tree in
+       */
+      function TreeView(data, node) {
+        this.handlers = {};
+        this.node = node;
+        this.data = data;
+        render(this);
+      }
+
+      /**
+       * A forEach that will work with a NodeList and generic Arrays
+       * @param {array|NodeList} arr The array to iterate over
+       * @param {function} callback Function that executes for each element. First parameter is element, second is index
+       * @param {object} The context to execute callback with
+       */
+      function forEach(arr, callback, scope) {
+        var i, len = arr.length;
+        for (i = 0; i < len; i += 1) {
+          callback.call(scope, arr[i], i);
+        }
+      }
+
+      /**
+       * Renders the tree view in the DOM
+       */
+      function render(self) {
+        var container = document.getElementById(self.node);
+        var leaves = [], click;
+        var renderLeaf = function (item) {
+          var leaf = document.createElement('div');
+          var content = document.createElement('div');
+          var text = document.createElement('div');
+          var expando = document.createElement('div');
+
+          leaf.setAttribute('class', 'tree-leaf');
+          content.setAttribute('class', 'tree-leaf-content');
+          content.setAttribute('data-item', JSON.stringify(item));
+          text.setAttribute('class', 'tree-leaf-text');
+          text.textContent = item.name;
+          expando.setAttribute('class', 'tree-expando expanded');
+          expando.textContent = '-';
+          content.appendChild(expando);
+          content.appendChild(text);
+          leaf.appendChild(content);
+          if (item.children.length > 0) {
+            var children = document.createElement('div');
+            children.setAttribute('class', 'tree-child-leaves');
+            forEach(item.children, function (child) {
+              var childLeaf = renderLeaf(child);
+              children.appendChild(childLeaf);
+            });
+            leaf.appendChild(children);
+            
+            children.classList.add('hidden');
+            expando.textContent = '+';
+        
+          } else {
+            expando.classList.add('hidden');
+          }
+          return leaf;
+        };
+
+        forEach(self.data, function (item) {
+          leaves.push(renderLeaf.call(self, item));
+        });
+        container.innerHTML = leaves.map(function (leaf) {
+          return leaf.outerHTML;
+        }).join('');
+
+        click = function (e) {
+          var parent = (e.target || e.currentTarget).parentNode;
+          var data = JSON.parse(parent.getAttribute('data-item'));
+          var leaves = parent.parentNode.querySelector('.tree-child-leaves');
+          if (leaves) {
+            if (leaves.classList.contains('hidden')) {
+              self.expand(parent, leaves);
+            } else {
+              self.collapse(parent, leaves);
+            }
+          } else {
+            emit(self, 'select', {
+              target: e,
+              data: data
+            });
+          }
+        };
+
+        forEach(container.querySelectorAll('.tree-leaf-text'), function (node) {
+          node.onclick = click;
+        });
+        forEach(container.querySelectorAll('.tree-expando'), function (node) {
+          node.onclick = click;
+        });
+      }
+
+      /**
+       * Emit an event from the tree view
+       * @param {string} name The name of the event to emit
+       */
+      function emit(instance, name) {
+        var args = [].slice.call(arguments, 2);
+        if (events.indexOf(name) > -1) {
+          if (instance.handlers[name] && instance.handlers[name] instanceof Array) {
+            forEach(instance.handlers[name], function (handle) {
+              window.setTimeout(function () {
+                handle.callback.apply(handle.context, args);
+              }, 0);
+            });
+          }
+        } else {
+          throw new Error(name + ' event cannot be found on TreeView.');
+        }
+      }
+
+      /**
+       * Expands a leaflet by the expando or the leaf text
+       * @param {DOMElement} node The parent node that contains the leaves
+       * @param {DOMElement} leaves The leaves wrapper element
+       */
+      TreeView.prototype.expand = function (node, leaves) {
+        var expando = node.querySelector('.tree-expando');
+        expando.textContent = '-';
+        leaves.classList.remove('hidden');
+        emit(this, 'expand', {
+          target: node,
+          leaves: leaves
+        });
+      };
+
+      /**
+       * Collapses a leaflet by the expando or the leaf text
+       * @param {DOMElement} node The parent node that contains the leaves
+       * @param {DOMElement} leaves The leaves wrapper element
+       */
+      TreeView.prototype.collapse = function (node, leaves) {
+        var expando = node.querySelector('.tree-expando');
+        expando.textContent = '+';
+        leaves.classList.add('hidden');
+        emit(this, 'collapse', {
+          target: node,
+          leaves: leaves
+        });
+      };
+
+      /**
+       * Attach an event handler to the tree view
+       * @param {string} name Name of the event to attach
+       * @param {function} callback The callback to execute on the event
+       * @param {object} scope The context to call the callback with
+       */
+      TreeView.prototype.on = function (name, callback, scope) {
+        if (events.indexOf(name) > -1) {
+          if (!this.handlers[name]) {
+            this.handlers[name] = [];
+          }
+          this.handlers[name].push({
+            callback: callback,
+            context: scope
+          });
+        } else {
+          throw new Error(name + ' is not supported by TreeView.');
+        }
+      };
+
+      /**
+       * Deattach an event handler from the tree view
+       * @param {string} name Name of the event to deattach
+       * @param {function} callback The function to deattach
+       */
+      TreeView.prototype.off = function (name, callback) {
+        var index, found = false;
+        if (this.handlers[name] instanceof Array) {
+          this.handlers[name].forEach(function (handle, i) {
+            index = i;
+            if (handle.callback === callback && !found) {
+              found = true;
+            }
+          });
+          if (found) {
+            this.handlers[name].splice(index, 1);
+          }
+        }
+      };
+
+      return TreeView;
+    }());
+  }));
+}(window.define));

+ 910 - 0
docs/modules.html

@@ -0,0 +1,910 @@
+<!doctype html>
+
+<html>
+
+<head>
+
+<title>Monkey2 Modules Reference</title>
+
+<link rel='stylesheet' href='css/microgram.css'>
+
+<link rel='stylesheet' href='js-treeview/treeview.css' />
+
+</head>
+
+<body style='position:fixed; width:100%; height:100%;'>
+
+<div style='position:absolute; left:0; width:249px; height:100%; overflow:auto; padding:8px; border-right:1px solid #d1d1d1;'>
+<div id='tree' style='border:0; width:100%; height:100%;'></div>
+</div>
+
+<div style='position:absolute; left:250px; right:0; height:100%; padding:0;'>
+<iframe id='page' style='border:0; width:100%; height:100%;'></iframe>
+</div>
+
+<!--
+<div style='position:absolute; left:250px; right:0; height:100%; margin:0;'>
+<iframe id='page' style='padding:0; border:0; margin:0; width:100%; height:100%;'></iframe>
+</div>
+-->
+
+<script type='text/javascript' src='js-treeview/treeview.js'></script>
+
+<script type='text/javascript'>
+
+	var tree = [ { name:'<monkey>',module:'monkey',children:[
+  { name:'monkey.debug',module:'monkey',page:'monkey_debug.html',children:[
+    { name:'Functions',module:'monkey',children:[
+      { name:'Assert',module:'monkey',page:'monkey_debug_f_Assert.html',children:[] }
+      ,{ name:'DebugAssert',module:'monkey',page:'monkey_debug_f_DebugAssert.html',children:[] }
+      ,{ name:'DebugStack',module:'monkey',page:'monkey_debug_f_DebugStack.html',children:[] }
+      ,{ name:'DebugStop',module:'monkey',page:'monkey_debug_f_DebugStop.html',children:[] }
+    ] }
+  ] }
+  ,{ name:'monkey.math',module:'monkey',page:'monkey_math.html',children:[
+    { name:'Constants',module:'monkey',children:[
+      { name:'Pi',module:'monkey',page:'monkey_math_c_Pi.html',children:[] }
+    ] }
+    ,{ name:'Functions',module:'monkey',children:[
+      { name:'ACos',module:'monkey',page:'monkey_math_f_ACos.html',children:[] }
+      ,{ name:'ASin',module:'monkey',page:'monkey_math_f_ASin.html',children:[] }
+      ,{ name:'ATan',module:'monkey',page:'monkey_math_f_ATan.html',children:[] }
+      ,{ name:'ATan2',module:'monkey',page:'monkey_math_f_ATan2.html',children:[] }
+      ,{ name:'Abs',module:'monkey',page:'monkey_math_f_Abs.html',children:[] }
+      ,{ name:'Ceil',module:'monkey',page:'monkey_math_f_Ceil.html',children:[] }
+      ,{ name:'Clamp',module:'monkey',page:'monkey_math_f_Clamp.html',children:[] }
+      ,{ name:'Cos',module:'monkey',page:'monkey_math_f_Cos.html',children:[] }
+      ,{ name:'Floor',module:'monkey',page:'monkey_math_f_Floor.html',children:[] }
+      ,{ name:'Max',module:'monkey',page:'monkey_math_f_Max.html',children:[] }
+      ,{ name:'Min',module:'monkey',page:'monkey_math_f_Min.html',children:[] }
+      ,{ name:'Round',module:'monkey',page:'monkey_math_f_Round.html',children:[] }
+      ,{ name:'Sgn',module:'monkey',page:'monkey_math_f_Sgn.html',children:[] }
+      ,{ name:'Sin',module:'monkey',page:'monkey_math_f_Sin.html',children:[] }
+      ,{ name:'Sqrt',module:'monkey',page:'monkey_math_f_Sqrt.html',children:[] }
+      ,{ name:'Tan',module:'monkey',page:'monkey_math_f_Tan.html',children:[] }
+    ] }
+  ] }
+  ,{ name:'monkey.types',module:'monkey',page:'monkey_types.html',children:[
+    { name:'Aliases',module:'monkey',children:[
+      { name:'Exception',module:'monkey',children:[] }
+    ] }
+    ,{ name:'Structs',module:'monkey',children:[
+      { name:'Array',module:'monkey',page:'monkey_types_s__6Array.html',children:[
+        { name:'Properties',module:'monkey',children:[
+          { name:'Data',module:'monkey',page:'Array_1T_4_2_p_Data.html',children:[] }
+          ,{ name:'Length',module:'monkey',page:'Array_1T_4_2_p_Length.html',children:[] }
+        ] }
+        ,{ name:'Methods',module:'monkey',children:[
+          { name:'CopyTo',module:'monkey',page:'Array_1T_4_2_m_CopyTo.html',children:[] }
+          ,{ name:'Slice',module:'monkey',page:'Array_1T_4_2_m_Slice.html',children:[] }
+        ] }
+      ] }
+      ,{ name:'Bool',module:'monkey',page:'monkey_types_s__6bool.html',children:[
+      ] }
+      ,{ name:'Byte',module:'monkey',page:'monkey_types_s__6byte.html',children:[
+      ] }
+      ,{ name:'Double',module:'monkey',page:'monkey_types_s__6double.html',children:[
+      ] }
+      ,{ name:'Float',module:'monkey',page:'monkey_types_s__6float.html',children:[
+      ] }
+      ,{ name:'Int',module:'monkey',page:'monkey_types_s__6int.html',children:[
+      ] }
+      ,{ name:'Long',module:'monkey',page:'monkey_types_s__6long.html',children:[
+      ] }
+      ,{ name:'Short',module:'monkey',page:'monkey_types_s__6short.html',children:[
+      ] }
+      ,{ name:'String',module:'monkey',page:'monkey_types_s__6string.html',children:[
+        { name:'Properties',module:'monkey',children:[
+          { name:'Length',module:'monkey',page:'String_p_Length.html',children:[] }
+          ,{ name:'Utf8Length',module:'monkey',page:'String_p_Utf8Length.html',children:[] }
+        ] }
+        ,{ name:'Methods',module:'monkey',children:[
+          { name:'Capitalize',module:'monkey',page:'String_m_Capitalize.html',children:[] }
+          ,{ name:'Contains',module:'monkey',page:'String_m_Contains.html',children:[] }
+          ,{ name:'EndsWith',module:'monkey',page:'String_m_EndsWith.html',children:[] }
+          ,{ name:'Find',module:'monkey',page:'String_m_Find.html',children:[] }
+          ,{ name:'FindLast',module:'monkey',page:'String_m_FindLast.html',children:[] }
+          ,{ name:'Join',module:'monkey',page:'String_m_Join.html',children:[] }
+          ,{ name:'Left',module:'monkey',page:'String_m_Left.html',children:[] }
+          ,{ name:'Mid',module:'monkey',page:'String_m_Mid.html',children:[] }
+          ,{ name:'Replace',module:'monkey',page:'String_m_Replace.html',children:[] }
+          ,{ name:'Right',module:'monkey',page:'String_m_Right.html',children:[] }
+          ,{ name:'Slice',module:'monkey',page:'String_m_Slice.html',children:[] }
+          ,{ name:'Split',module:'monkey',page:'String_m_Split.html',children:[] }
+          ,{ name:'StartsWith',module:'monkey',page:'String_m_StartsWith.html',children:[] }
+          ,{ name:'ToCString',module:'monkey',page:'String_m_ToCString.html',children:[] }
+          ,{ name:'ToLower',module:'monkey',page:'String_m_ToLower.html',children:[] }
+          ,{ name:'ToUpper',module:'monkey',page:'String_m_ToUpper.html',children:[] }
+          ,{ name:'ToUtf8',module:'monkey',page:'String_m_ToUtf8.html',children:[] }
+          ,{ name:'Trim',module:'monkey',page:'String_m_Trim.html',children:[] }
+        ] }
+        ,{ name:'Functions',module:'monkey',children:[
+          { name:'FromCString',module:'monkey',page:'String_f_FromCString.html',children:[] }
+          ,{ name:'FromChar',module:'monkey',page:'String_f_FromChar.html',children:[] }
+          ,{ name:'FromUtf8',module:'monkey',page:'String_f_FromUtf8.html',children:[] }
+          ,{ name:'FromUtf8String',module:'monkey',page:'String_f_FromUtf8String.html',children:[] }
+          ,{ name:'FromWString',module:'monkey',page:'String_f_FromWString.html',children:[] }
+        ] }
+      ] }
+      ,{ name:'Ubyte',module:'monkey',page:'monkey_types_s__6ubyte.html',children:[
+      ] }
+      ,{ name:'Uint',module:'monkey',page:'monkey_types_s__6uint.html',children:[
+      ] }
+      ,{ name:'Ulong',module:'monkey',page:'monkey_types_s__6ulong.html',children:[
+      ] }
+      ,{ name:'Ushort',module:'monkey',page:'monkey_types_s__6ushort.html',children:[
+      ] }
+      ,{ name:'CString',module:'monkey',page:'monkey_types_s_CString.html',children:[
+      ] }
+      ,{ name:'Utf8String',module:'monkey',page:'monkey_types_s_Utf8String.html',children:[
+      ] }
+      ,{ name:'WString',module:'monkey',page:'monkey_types_s_WString.html',children:[
+      ] }
+    ] }
+    ,{ name:'Classes',module:'monkey',children:[
+      { name:'Exception',module:'monkey',page:'monkey_types_c__6Exception.html',children:[
+        { name:'Contructors',module:'monkey',children:[
+          { name:'New',module:'monkey',page:'Exception_m_new.html',children:[] }
+        ] }
+        ,{ name:'Properties',module:'monkey',children:[
+          { name:'DebugStack',module:'monkey',page:'Exception_p_DebugStack.html',children:[] }
+          ,{ name:'Message',module:'monkey',page:'Exception_p_Message.html',children:[] }
+        ] }
+      ] }
+      ,{ name:'Object',module:'monkey',page:'monkey_types_c__6object.html',children:[
+      ] }
+      ,{ name:'Throwable',module:'monkey',page:'monkey_types_c__6throwable.html',children:[
+      ] }
+    ] }
+    ,{ name:'Interfaces',module:'monkey',children:[
+      { name:'IIntegral',module:'monkey',page:'monkey_types_i_IIntegral.html',children:[
+      ] }
+      ,{ name:'INumeric',module:'monkey',page:'monkey_types_i_INumeric.html',children:[
+      ] }
+      ,{ name:'IReal',module:'monkey',page:'monkey_types_i_IReal.html',children:[
+      ] }
+    ] }
+  ] }
+] },{ name:'<libc>',module:'libc',children:[
+  { name:'libc',module:'libc',page:'libc.html',children:[
+    { name:'Enums',module:'libc',children:[
+      { name:'mode\_t',module:'libc',page:'libc_e_mode_0t.html',children:[] }
+    ] }
+    ,{ name:'Structs',module:'libc',children:[
+      { name:'DIR',module:'libc',page:'libc_s_DIR.html',children:[
+      ] }
+      ,{ name:'FILE',module:'libc',page:'libc_s_FILE.html',children:[
+      ] }
+      ,{ name:'char\_t',module:'libc',page:'libc_s_char_0t.html',children:[
+      ] }
+      ,{ name:'dirent',module:'libc',page:'libc_s_dirent.html',children:[
+        { name:'Fields',module:'libc',children:[
+          { name:'d\_name',module:'libc',page:'libc_dirent_f_d_0name.html',children:[] }
+        ] }
+      ] }
+      ,{ name:'schar\_t',module:'libc',page:'libc_s_schar_0t.html',children:[
+      ] }
+      ,{ name:'size\_t',module:'libc',page:'libc_s_size_0t.html',children:[
+      ] }
+      ,{ name:'stat\_t',module:'libc',page:'libc_s_stat_0t.html',children:[
+        { name:'Fields',module:'libc',children:[
+          { name:'st\_atime',module:'libc',page:'libc_stat_0t_f_st_0atime.html',children:[] }
+          ,{ name:'st\_ctime',module:'libc',page:'libc_stat_0t_f_st_0ctime.html',children:[] }
+          ,{ name:'st\_mode',module:'libc',page:'libc_stat_0t_f_st_0mode.html',children:[] }
+          ,{ name:'st\_mtime',module:'libc',page:'libc_stat_0t_f_st_0mtime.html',children:[] }
+        ] }
+      ] }
+      ,{ name:'time\_t',module:'libc',page:'libc_s_time_0t.html',children:[
+      ] }
+      ,{ name:'tm\_t',module:'libc',page:'libc_s_tm_0t.html',children:[
+        { name:'Fields',module:'libc',children:[
+          { name:'tm\_hour',module:'libc',page:'libc_tm_0t_f_tm_0hour.html',children:[] }
+          ,{ name:'tm\_isdst',module:'libc',page:'libc_tm_0t_f_tm_0isdst.html',children:[] }
+          ,{ name:'tm\_mday',module:'libc',page:'libc_tm_0t_f_tm_0mday.html',children:[] }
+          ,{ name:'tm\_min',module:'libc',page:'libc_tm_0t_f_tm_0min.html',children:[] }
+          ,{ name:'tm\_mon',module:'libc',page:'libc_tm_0t_f_tm_0mon.html',children:[] }
+          ,{ name:'tm\_sec',module:'libc',page:'libc_tm_0t_f_tm_0sec.html',children:[] }
+          ,{ name:'tm\_wday',module:'libc',page:'libc_tm_0t_f_tm_0wday.html',children:[] }
+          ,{ name:'tm\_yday',module:'libc',page:'libc_tm_0t_f_tm_0yday.html',children:[] }
+          ,{ name:'tm\_year',module:'libc',page:'libc_tm_0t_f_tm_0year.html',children:[] }
+        ] }
+      ] }
+      ,{ name:'uchar\_t',module:'libc',page:'libc_s_uchar_0t.html',children:[
+      ] }
+      ,{ name:'wchar\_t',module:'libc',page:'libc_s_wchar_0t.html',children:[
+      ] }
+    ] }
+    ,{ name:'Constants',module:'libc',children:[
+      { name:'CLOCKS\_PER\_SEC',module:'libc',page:'libc_c_CLOCKS_0PER_0SEC.html',children:[] }
+      ,{ name:'SEEK\_CUR',module:'libc',page:'libc_c_SEEK_0CUR.html',children:[] }
+      ,{ name:'SEEK\_END',module:'libc',page:'libc_c_SEEK_0END.html',children:[] }
+      ,{ name:'SEEK\_SET',module:'libc',page:'libc_c_SEEK_0SET.html',children:[] }
+      ,{ name:'S\_IFBLK',module:'libc',page:'libc_c_S_0IFBLK.html',children:[] }
+      ,{ name:'S\_IFCHR',module:'libc',page:'libc_c_S_0IFCHR.html',children:[] }
+      ,{ name:'S\_IFDIR',module:'libc',page:'libc_c_S_0IFDIR.html',children:[] }
+      ,{ name:'S\_IFIFO',module:'libc',page:'libc_c_S_0IFIFO.html',children:[] }
+      ,{ name:'S\_IFMT',module:'libc',page:'libc_c_S_0IFMT.html',children:[] }
+      ,{ name:'S\_IFREG',module:'libc',page:'libc_c_S_0IFREG.html',children:[] }
+    ] }
+    ,{ name:'Functions',module:'libc',children:[
+      { name:'abort',module:'libc',page:'libc_f_abort.html',children:[] }
+      ,{ name:'chdir',module:'libc',page:'libc_f_chdir.html',children:[] }
+      ,{ name:'clock',module:'libc',page:'libc_f_clock.html',children:[] }
+      ,{ name:'closedir',module:'libc',page:'libc_f_closedir.html',children:[] }
+      ,{ name:'difftime',module:'libc',page:'libc_f_difftime.html',children:[] }
+      ,{ name:'exit\_',module:'libc',page:'libc_f_exit_0.html',children:[] }
+      ,{ name:'fclose',module:'libc',page:'libc_f_fclose.html',children:[] }
+      ,{ name:'fopen',module:'libc',page:'libc_f_fopen.html',children:[] }
+      ,{ name:'fread',module:'libc',page:'libc_f_fread.html',children:[] }
+      ,{ name:'free',module:'libc',page:'libc_f_free.html',children:[] }
+      ,{ name:'fseek',module:'libc',page:'libc_f_fseek.html',children:[] }
+      ,{ name:'ftell',module:'libc',page:'libc_f_ftell.html',children:[] }
+      ,{ name:'fwrite',module:'libc',page:'libc_f_fwrite.html',children:[] }
+      ,{ name:'getcwd',module:'libc',page:'libc_f_getcwd.html',children:[] }
+      ,{ name:'getenv',module:'libc',page:'libc_f_getenv.html',children:[] }
+      ,{ name:'gmtime',module:'libc',page:'libc_f_gmtime.html',children:[] }
+      ,{ name:'localtime',module:'libc',page:'libc_f_localtime.html',children:[] }
+      ,{ name:'malloc',module:'libc',page:'libc_f_malloc.html',children:[] }
+      ,{ name:'memcpy',module:'libc',page:'libc_f_memcpy.html',children:[] }
+      ,{ name:'memmove',module:'libc',page:'libc_f_memmove.html',children:[] }
+      ,{ name:'memset',module:'libc',page:'libc_f_memset.html',children:[] }
+      ,{ name:'mkdir',module:'libc',page:'libc_f_mkdir.html',children:[] }
+      ,{ name:'opendir',module:'libc',page:'libc_f_opendir.html',children:[] }
+      ,{ name:'readdir',module:'libc',page:'libc_f_readdir.html',children:[] }
+      ,{ name:'remove',module:'libc',page:'libc_f_remove.html',children:[] }
+      ,{ name:'rewind',module:'libc',page:'libc_f_rewind.html',children:[] }
+      ,{ name:'rmdir',module:'libc',page:'libc_f_rmdir.html',children:[] }
+      ,{ name:'setenv',module:'libc',page:'libc_f_setenv.html',children:[] }
+      ,{ name:'sizeof',module:'libc',page:'libc_f_sizeof.html',children:[] }
+      ,{ name:'stat',module:'libc',page:'libc_f_stat.html',children:[] }
+      ,{ name:'strlen',module:'libc',page:'libc_f_strlen.html',children:[] }
+      ,{ name:'system',module:'libc',page:'libc_f_system.html',children:[] }
+      ,{ name:'time',module:'libc',page:'libc_f_time.html',children:[] }
+      ,{ name:'tolong',module:'libc',page:'libc_f_tolong.html',children:[] }
+    ] }
+  ] }
+] },{ name:'<std>',module:'std',children:[
+  { name:'std.chartype',module:'std',page:'std_chartype.html',children:[
+    { name:'Functions',module:'std',children:[
+      { name:'IsAlpha',module:'std',page:'std_chartype_f_IsAlpha.html',children:[] }
+      ,{ name:'IsDigit',module:'std',page:'std_chartype_f_IsDigit.html',children:[] }
+      ,{ name:'IsHexDigit',module:'std',page:'std_chartype_f_IsHexDigit.html',children:[] }
+      ,{ name:'IsIdent',module:'std',page:'std_chartype_f_IsIdent.html',children:[] }
+      ,{ name:'IsSpace',module:'std',page:'std_chartype_f_IsSpace.html',children:[] }
+    ] }
+  ] }
+  ,{ name:'std.collections',module:'std',page:'std_collections.html',children:[
+    { name:'Aliases',module:'std',children:[
+      { name:'FloatList',module:'std',children:[] }
+      ,{ name:'FloatStack',module:'std',children:[] }
+      ,{ name:'IntList',module:'std',children:[] }
+      ,{ name:'IntStack',module:'std',children:[] }
+      ,{ name:'StringList',module:'std',children:[] }
+      ,{ name:'StringStack',module:'std',children:[] }
+    ] }
+    ,{ name:'Classes',module:'std',children:[
+      { name:'FloatMap',module:'std',page:'std_collections_c_FloatMap.html',children:[
+      ] }
+      ,{ name:'IntMap',module:'std',page:'std_collections_c_IntMap.html',children:[
+      ] }
+      ,{ name:'List',module:'std',page:'std_collections_c_List.html',children:[
+        { name:'Structs',module:'std',children:[
+          { name:'Iterator',module:'std',page:'std_collections_List_1T_4_2_s_Iterator.html',children:[
+            { name:'Contructors',module:'std',children:[
+              { name:'New',module:'std',page:'std_collections_List_1T_4_2_Iterator_m_new.html',children:[] }
+            ] }
+            ,{ name:'Properties',module:'std',children:[
+              { name:'AtEnd',module:'std',page:'std_collections_List_1T_4_2_Iterator_p_AtEnd.html',children:[] }
+              ,{ name:'Current',module:'std',page:'std_collections_List_1T_4_2_Iterator_p_Current.html',children:[] }
+            ] }
+            ,{ name:'Methods',module:'std',children:[
+              { name:'Bump',module:'std',page:'std_collections_List_1T_4_2_Iterator_m_Bump.html',children:[] }
+              ,{ name:'Erase',module:'std',page:'std_collections_List_1T_4_2_Iterator_m_Erase.html',children:[] }
+              ,{ name:'Insert',module:'std',page:'std_collections_List_1T_4_2_Iterator_m_Insert.html',children:[] }
+            ] }
+          ] }
+        ] }
+        ,{ name:'Contructors',module:'std',children:[
+          { name:'New',module:'std',page:'std_collections_List_1T_4_2_m_new.html',children:[] }
+        ] }
+        ,{ name:'Properties',module:'std',children:[
+          { name:'Empty',module:'std',page:'std_collections_List_1T_4_2_p_Empty.html',children:[] }
+          ,{ name:'First',module:'std',page:'std_collections_List_1T_4_2_p_First.html',children:[] }
+          ,{ name:'Last',module:'std',page:'std_collections_List_1T_4_2_p_Last.html',children:[] }
+          ,{ name:'Length',module:'std',page:'std_collections_List_1T_4_2_p_Length.html',children:[] }
+        ] }
+        ,{ name:'Methods',module:'std',children:[
+          { name:'Add',module:'std',page:'std_collections_List_1T_4_2_m_Add.html',children:[] }
+          ,{ name:'AddAll',module:'std',page:'std_collections_List_1T_4_2_m_AddAll.html',children:[] }
+          ,{ name:'AddFirst',module:'std',page:'std_collections_List_1T_4_2_m_AddFirst.html',children:[] }
+          ,{ name:'AddLast',module:'std',page:'std_collections_List_1T_4_2_m_AddLast.html',children:[] }
+          ,{ name:'Clear',module:'std',page:'std_collections_List_1T_4_2_m_Clear.html',children:[] }
+          ,{ name:'Index',module:'std',page:'std_collections_List_1T_4_2_m_Index.html',children:[] }
+          ,{ name:'Join',module:'std',page:'std_collections_List_1T_4_2_m_Join.html',children:[] }
+          ,{ name:'Remove',module:'std',page:'std_collections_List_1T_4_2_m_Remove.html',children:[] }
+          ,{ name:'RemoveEach',module:'std',page:'std_collections_List_1T_4_2_m_RemoveEach.html',children:[] }
+          ,{ name:'RemoveFirst',module:'std',page:'std_collections_List_1T_4_2_m_RemoveFirst.html',children:[] }
+          ,{ name:'RemoveLast',module:'std',page:'std_collections_List_1T_4_2_m_RemoveLast.html',children:[] }
+          ,{ name:'Sort',module:'std',page:'std_collections_List_1T_4_2_m_Sort.html',children:[] }
+          ,{ name:'ToArray',module:'std',page:'std_collections_List_1T_4_2_m_ToArray.html',children:[] }
+        ] }
+      ] }
+      ,{ name:'Map',module:'std',page:'std_collections_c_Map.html',children:[
+        { name:'Structs',module:'std',children:[
+          { name:'Iterator',module:'std',page:'std_collections_Map_1K_4_3V_4_2_s_Iterator.html',children:[
+            { name:'Properties',module:'std',children:[
+              { name:'Current',module:'std',page:'std_collections_Map_1K_4_3V_4_2_Iterator_p_Current.html',children:[] }
+              ,{ name:'Valid',module:'std',page:'std_collections_Map_1K_4_3V_4_2_Iterator_p_Valid.html',children:[] }
+            ] }
+            ,{ name:'Methods',module:'std',children:[
+              { name:'Bump',module:'std',page:'std_collections_Map_1K_4_3V_4_2_Iterator_m_Bump.html',children:[] }
+            ] }
+          ] }
+          ,{ name:'KeyIterator',module:'std',page:'std_collections_Map_1K_4_3V_4_2_s_KeyIterator.html',children:[
+            { name:'Properties',module:'std',children:[
+              { name:'Current',module:'std',page:'std_collections_Map_1K_4_3V_4_2_KeyIterator_p_Current.html',children:[] }
+              ,{ name:'Valid',module:'std',page:'std_collections_Map_1K_4_3V_4_2_KeyIterator_p_Valid.html',children:[] }
+            ] }
+            ,{ name:'Methods',module:'std',children:[
+              { name:'Bump',module:'std',page:'std_collections_Map_1K_4_3V_4_2_KeyIterator_m_Bump.html',children:[] }
+            ] }
+          ] }
+          ,{ name:'MapKeys',module:'std',page:'std_collections_Map_1K_4_3V_4_2_s_MapKeys.html',children:[
+            { name:'Methods',module:'std',children:[
+              { name:'All',module:'std',page:'std_collections_Map_1K_4_3V_4_2_MapKeys_m_All.html',children:[] }
+            ] }
+          ] }
+          ,{ name:'MapValues',module:'std',page:'std_collections_Map_1K_4_3V_4_2_s_MapValues.html',children:[
+            { name:'Methods',module:'std',children:[
+              { name:'All',module:'std',page:'std_collections_Map_1K_4_3V_4_2_MapValues_m_All.html',children:[] }
+            ] }
+          ] }
+          ,{ name:'ValueIterator',module:'std',page:'std_collections_Map_1K_4_3V_4_2_s_ValueIterator.html',children:[
+            { name:'Properties',module:'std',children:[
+              { name:'Current',module:'std',page:'std_collections_Map_1K_4_3V_4_2_ValueIterator_p_Current.html',children:[] }
+              ,{ name:'Valid',module:'std',page:'std_collections_Map_1K_4_3V_4_2_ValueIterator_p_Valid.html',children:[] }
+            ] }
+            ,{ name:'Methods',module:'std',children:[
+              { name:'Bump',module:'std',page:'std_collections_Map_1K_4_3V_4_2_ValueIterator_m_Bump.html',children:[] }
+            ] }
+          ] }
+        ] }
+        ,{ name:'Classes',module:'std',children:[
+          { name:'Node',module:'std',page:'std_collections_Map_1K_4_3V_4_2_c_Node.html',children:[
+            { name:'Properties',module:'std',children:[
+              { name:'Key',module:'std',page:'std_collections_Map_1K_4_3V_4_2_Node_p_Key.html',children:[] }
+              ,{ name:'Value',module:'std',page:'std_collections_Map_1K_4_3V_4_2_Node_p_Value.html',children:[] }
+            ] }
+          ] }
+        ] }
+        ,{ name:'Contructors',module:'std',children:[
+          { name:'New',module:'std',page:'std_collections_Map_1K_4_3V_4_2_m_new.html',children:[] }
+        ] }
+        ,{ name:'Properties',module:'std',children:[
+          { name:'Empty',module:'std',page:'std_collections_Map_1K_4_3V_4_2_p_Empty.html',children:[] }
+          ,{ name:'Keys',module:'std',page:'std_collections_Map_1K_4_3V_4_2_p_Keys.html',children:[] }
+          ,{ name:'Values',module:'std',page:'std_collections_Map_1K_4_3V_4_2_p_Values.html',children:[] }
+        ] }
+        ,{ name:'Operators',module:'std',children:[
+          { name:'Operator []',module:'std',page:'std_collections_Map_1K_4_3V_4_2_m_[].html',children:[] }
+          ,{ name:'Operator []=',module:'std',page:'std_collections_Map_1K_4_3V_4_2_m_[]=.html',children:[] }
+        ] }
+        ,{ name:'Methods',module:'std',children:[
+          { name:'Add',module:'std',page:'std_collections_Map_1K_4_3V_4_2_m_Add.html',children:[] }
+          ,{ name:'All',module:'std',page:'std_collections_Map_1K_4_3V_4_2_m_All.html',children:[] }
+          ,{ name:'Clear',module:'std',page:'std_collections_Map_1K_4_3V_4_2_m_Clear.html',children:[] }
+          ,{ name:'Contains',module:'std',page:'std_collections_Map_1K_4_3V_4_2_m_Contains.html',children:[] }
+          ,{ name:'Count',module:'std',page:'std_collections_Map_1K_4_3V_4_2_m_Count.html',children:[] }
+          ,{ name:'Get',module:'std',page:'std_collections_Map_1K_4_3V_4_2_m_Get.html',children:[] }
+          ,{ name:'Remove',module:'std',page:'std_collections_Map_1K_4_3V_4_2_m_Remove.html',children:[] }
+          ,{ name:'Set',module:'std',page:'std_collections_Map_1K_4_3V_4_2_m_Set.html',children:[] }
+          ,{ name:'Update',module:'std',page:'std_collections_Map_1K_4_3V_4_2_m_Update.html',children:[] }
+        ] }
+      ] }
+      ,{ name:'Stack',module:'std',page:'std_collections_c_Stack.html',children:[
+        { name:'Structs',module:'std',children:[
+          { name:'Iterator',module:'std',page:'std_collections_Stack_1T_4_2_s_Iterator.html',children:[
+            { name:'Contructors',module:'std',children:[
+              { name:'New',module:'std',page:'std_collections_Stack_1T_4_2_Iterator_m_new.html',children:[] }
+            ] }
+            ,{ name:'Properties',module:'std',children:[
+              { name:'AtEnd',module:'std',page:'std_collections_Stack_1T_4_2_Iterator_p_AtEnd.html',children:[] }
+              ,{ name:'Current',module:'std',page:'std_collections_Stack_1T_4_2_Iterator_p_Current.html',children:[] }
+            ] }
+            ,{ name:'Methods',module:'std',children:[
+              { name:'Bump',module:'std',page:'std_collections_Stack_1T_4_2_Iterator_m_Bump.html',children:[] }
+              ,{ name:'Erase',module:'std',page:'std_collections_Stack_1T_4_2_Iterator_m_Erase.html',children:[] }
+              ,{ name:'Insert',module:'std',page:'std_collections_Stack_1T_4_2_Iterator_m_Insert.html',children:[] }
+            ] }
+          ] }
+        ] }
+        ,{ name:'Contructors',module:'std',children:[
+          { name:'New',module:'std',page:'std_collections_Stack_1T_4_2_m_new.html',children:[] }
+        ] }
+        ,{ name:'Properties',module:'std',children:[
+          { name:'Capacity',module:'std',page:'std_collections_Stack_1T_4_2_p_Capacity.html',children:[] }
+          ,{ name:'Data',module:'std',page:'std_collections_Stack_1T_4_2_p_Data.html',children:[] }
+          ,{ name:'Empty',module:'std',page:'std_collections_Stack_1T_4_2_p_Empty.html',children:[] }
+          ,{ name:'Length',module:'std',page:'std_collections_Stack_1T_4_2_p_Length.html',children:[] }
+          ,{ name:'Top',module:'std',page:'std_collections_Stack_1T_4_2_p_Top.html',children:[] }
+        ] }
+        ,{ name:'Operators',module:'std',children:[
+          { name:'Operator []',module:'std',page:'std_collections_Stack_1T_4_2_m_[].html',children:[] }
+          ,{ name:'Operator []=',module:'std',page:'std_collections_Stack_1T_4_2_m_[]=.html',children:[] }
+        ] }
+        ,{ name:'Methods',module:'std',children:[
+          { name:'Add',module:'std',page:'std_collections_Stack_1T_4_2_m_Add.html',children:[] }
+          ,{ name:'AddAll',module:'std',page:'std_collections_Stack_1T_4_2_m_AddAll.html',children:[] }
+          ,{ name:'Append',module:'std',page:'std_collections_Stack_1T_4_2_m_Append.html',children:[] }
+          ,{ name:'Clear',module:'std',page:'std_collections_Stack_1T_4_2_m_Clear.html',children:[] }
+          ,{ name:'Contains',module:'std',page:'std_collections_Stack_1T_4_2_m_Contains.html',children:[] }
+          ,{ name:'Erase',module:'std',page:'std_collections_Stack_1T_4_2_m_Erase.html',children:[] }
+          ,{ name:'FindIndex',module:'std',page:'std_collections_Stack_1T_4_2_m_FindIndex.html',children:[] }
+          ,{ name:'FindLastIndex',module:'std',page:'std_collections_Stack_1T_4_2_m_FindLastIndex.html',children:[] }
+          ,{ name:'Get',module:'std',page:'std_collections_Stack_1T_4_2_m_Get.html',children:[] }
+          ,{ name:'Insert',module:'std',page:'std_collections_Stack_1T_4_2_m_Insert.html',children:[] }
+          ,{ name:'Join',module:'std',page:'std_collections_Stack_1T_4_2_m_Join.html',children:[] }
+          ,{ name:'Pop',module:'std',page:'std_collections_Stack_1T_4_2_m_Pop.html',children:[] }
+          ,{ name:'Push',module:'std',page:'std_collections_Stack_1T_4_2_m_Push.html',children:[] }
+          ,{ name:'Remove',module:'std',page:'std_collections_Stack_1T_4_2_m_Remove.html',children:[] }
+          ,{ name:'RemoveEach',module:'std',page:'std_collections_Stack_1T_4_2_m_RemoveEach.html',children:[] }
+          ,{ name:'RemoveLast',module:'std',page:'std_collections_Stack_1T_4_2_m_RemoveLast.html',children:[] }
+          ,{ name:'Reserve',module:'std',page:'std_collections_Stack_1T_4_2_m_Reserve.html',children:[] }
+          ,{ name:'Resize',module:'std',page:'std_collections_Stack_1T_4_2_m_Resize.html',children:[] }
+          ,{ name:'Set',module:'std',page:'std_collections_Stack_1T_4_2_m_Set.html',children:[] }
+          ,{ name:'Slice',module:'std',page:'std_collections_Stack_1T_4_2_m_Slice.html',children:[] }
+          ,{ name:'Sort',module:'std',page:'std_collections_Stack_1T_4_2_m_Sort.html',children:[] }
+          ,{ name:'Swap',module:'std',page:'std_collections_Stack_1T_4_2_m_Swap.html',children:[] }
+          ,{ name:'ToArray',module:'std',page:'std_collections_Stack_1T_4_2_m_ToArray.html',children:[] }
+        ] }
+      ] }
+      ,{ name:'StringMap',module:'std',page:'std_collections_c_StringMap.html',children:[
+      ] }
+    ] }
+    ,{ name:'Interfaces',module:'std',children:[
+      { name:'IContainer',module:'std',page:'std_collections_i_IContainer.html',children:[
+      ] }
+      ,{ name:'IIterator',module:'std',page:'std_collections_i_IIterator.html',children:[
+      ] }
+    ] }
+  ] }
+  ,{ name:'std.fiber',module:'std',page:'std_fiber.html',children:[
+    { name:'Classes',module:'std',children:[
+      { name:'Future',module:'std',page:'std_fiber_c_Future.html',children:[
+        { name:'Fields',module:'std',children:[
+          { name:'\_fiber',module:'std',page:'std_fiber_Future_1T_4_2_f__0fiber.html',children:[] }
+          ,{ name:'\_value',module:'std',page:'std_fiber_Future_1T_4_2_f__0value.html',children:[] }
+        ] }
+        ,{ name:'Contructors',module:'std',children:[
+          { name:'New',module:'std',page:'std_fiber_Future_1T_4_2_m_new.html',children:[] }
+        ] }
+        ,{ name:'Methods',module:'std',children:[
+          { name:'Get',module:'std',page:'std_fiber_Future_1T_4_2_m_Get.html',children:[] }
+          ,{ name:'Set',module:'std',page:'std_fiber_Future_1T_4_2_m_Set.html',children:[] }
+        ] }
+      ] }
+      ,{ name:'Generator',module:'std',page:'std_fiber_c_Generator.html',children:[
+        { name:'Properties',module:'std',children:[
+          { name:'HasNext',module:'std',page:'std_fiber_Generator_1T_4_2_p_HasNext.html',children:[] }
+        ] }
+        ,{ name:'Methods',module:'std',children:[
+          { name:'GetNext',module:'std',page:'std_fiber_Generator_1T_4_2_m_GetNext.html',children:[] }
+          ,{ name:'Start',module:'std',page:'std_fiber_Generator_1T_4_2_m_Start.html',children:[] }
+          ,{ name:'Yield',module:'std',page:'std_fiber_Generator_1T_4_2_m_Yield.html',children:[] }
+        ] }
+      ] }
+    ] }
+    ,{ name:'Functions',module:'std',children:[
+      { name:'Await',module:'std',page:'std_fiber_f_Await.html',children:[] }
+      ,{ name:'CreateFiber',module:'std',page:'std_fiber_f_CreateFiber.html',children:[] }
+      ,{ name:'GetCurrentFiber',module:'std',page:'std_fiber_f_GetCurrentFiber.html',children:[] }
+      ,{ name:'ResumeFiber',module:'std',page:'std_fiber_f_ResumeFiber.html',children:[] }
+      ,{ name:'StartFiber',module:'std',page:'std_fiber_f_StartFiber.html',children:[] }
+      ,{ name:'SuspendCurrentFiber',module:'std',page:'std_fiber_f_SuspendCurrentFiber.html',children:[] }
+      ,{ name:'TerminateFiber',module:'std',page:'std_fiber_f_TerminateFiber.html',children:[] }
+    ] }
+  ] }
+  ,{ name:'std.filesystem',module:'std',page:'std_filesystem.html',children:[
+    { name:'Enums',module:'std',children:[
+      { name:'FileType',module:'std',page:'std_filesystem_e_FileType.html',children:[] }
+    ] }
+    ,{ name:'Functions',module:'std',children:[
+      { name:'AppArgs',module:'std',page:'std_filesystem_f_AppArgs.html',children:[] }
+      ,{ name:'AppDir',module:'std',page:'std_filesystem_f_AppDir.html',children:[] }
+      ,{ name:'AppPath',module:'std',page:'std_filesystem_f_AppPath.html',children:[] }
+      ,{ name:'AssetsDir',module:'std',page:'std_filesystem_f_AssetsDir.html',children:[] }
+      ,{ name:'ChangeDir',module:'std',page:'std_filesystem_f_ChangeDir.html',children:[] }
+      ,{ name:'CopyFile',module:'std',page:'std_filesystem_f_CopyFile.html',children:[] }
+      ,{ name:'CreateDir',module:'std',page:'std_filesystem_f_CreateDir.html',children:[] }
+      ,{ name:'CurrentDir',module:'std',page:'std_filesystem_f_CurrentDir.html',children:[] }
+      ,{ name:'DeleteDir',module:'std',page:'std_filesystem_f_DeleteDir.html',children:[] }
+      ,{ name:'DeleteFile',module:'std',page:'std_filesystem_f_DeleteFile.html',children:[] }
+      ,{ name:'ExtractDir',module:'std',page:'std_filesystem_f_ExtractDir.html',children:[] }
+      ,{ name:'ExtractExt',module:'std',page:'std_filesystem_f_ExtractExt.html',children:[] }
+      ,{ name:'ExtractRootDir',module:'std',page:'std_filesystem_f_ExtractRootDir.html',children:[] }
+      ,{ name:'GetFileTime',module:'std',page:'std_filesystem_f_GetFileTime.html',children:[] }
+      ,{ name:'GetFileType',module:'std',page:'std_filesystem_f_GetFileType.html',children:[] }
+      ,{ name:'IsRootDir',module:'std',page:'std_filesystem_f_IsRootDir.html',children:[] }
+      ,{ name:'LoadDir',module:'std',page:'std_filesystem_f_LoadDir.html',children:[] }
+      ,{ name:'RealPath',module:'std',page:'std_filesystem_f_RealPath.html',children:[] }
+      ,{ name:'StripDir',module:'std',page:'std_filesystem_f_StripDir.html',children:[] }
+      ,{ name:'StripExt',module:'std',page:'std_filesystem_f_StripExt.html',children:[] }
+      ,{ name:'StripSlashes',module:'std',page:'std_filesystem_f_StripSlashes.html',children:[] }
+    ] }
+  ] }
+  ,{ name:'std.graphics',module:'std',page:'std_graphics.html',children:[
+    { name:'Aliases',module:'std',children:[
+      { name:'Mat4f',module:'std',children:[] }
+      ,{ name:'Rectf',module:'std',children:[] }
+      ,{ name:'Recti',module:'std',children:[] }
+      ,{ name:'Vec2f',module:'std',children:[] }
+      ,{ name:'Vec2i',module:'std',children:[] }
+      ,{ name:'Vec3f',module:'std',children:[] }
+      ,{ name:'Vec3i',module:'std',children:[] }
+      ,{ name:'Vec4f',module:'std',children:[] }
+      ,{ name:'Vec4i',module:'std',children:[] }
+    ] }
+    ,{ name:'Enums',module:'std',children:[
+      { name:'PixelFormat',module:'std',page:'std_graphics_e_PixelFormat.html',children:[] }
+    ] }
+    ,{ name:'Structs',module:'std',children:[
+      { name:'Color',module:'std',page:'std_graphics_s_Color.html',children:[
+        { name:'Constants',module:'std',children:[
+          { name:'Black',module:'std',page:'std_graphics_Color_c_Black.html',children:[] }
+          ,{ name:'Blue',module:'std',page:'std_graphics_Color_c_Blue.html',children:[] }
+          ,{ name:'Cyan',module:'std',page:'std_graphics_Color_c_Cyan.html',children:[] }
+          ,{ name:'DarkGrey',module:'std',page:'std_graphics_Color_c_DarkGrey.html',children:[] }
+          ,{ name:'Green',module:'std',page:'std_graphics_Color_c_Green.html',children:[] }
+          ,{ name:'Grey',module:'std',page:'std_graphics_Color_c_Grey.html',children:[] }
+          ,{ name:'LightGrey',module:'std',page:'std_graphics_Color_c_LightGrey.html',children:[] }
+          ,{ name:'Magenta',module:'std',page:'std_graphics_Color_c_Magenta.html',children:[] }
+          ,{ name:'None',module:'std',page:'std_graphics_Color_c_None.html',children:[] }
+          ,{ name:'Red',module:'std',page:'std_graphics_Color_c_Red.html',children:[] }
+          ,{ name:'White',module:'std',page:'std_graphics_Color_c_White.html',children:[] }
+          ,{ name:'Yellow',module:'std',page:'std_graphics_Color_c_Yellow.html',children:[] }
+        ] }
+        ,{ name:'Fields',module:'std',children:[
+          { name:'a',module:'std',page:'std_graphics_Color_f_a.html',children:[] }
+          ,{ name:'b',module:'std',page:'std_graphics_Color_f_b.html',children:[] }
+          ,{ name:'g',module:'std',page:'std_graphics_Color_f_g.html',children:[] }
+          ,{ name:'r',module:'std',page:'std_graphics_Color_f_r.html',children:[] }
+        ] }
+        ,{ name:'Contructors',module:'std',children:[
+          { name:'New',module:'std',page:'std_graphics_Color_m_new.html',children:[] }
+        ] }
+        ,{ name:'Properties',module:'std',children:[
+          { name:'A',module:'std',page:'std_graphics_Color_p_A.html',children:[] }
+          ,{ name:'B',module:'std',page:'std_graphics_Color_p_B.html',children:[] }
+          ,{ name:'G',module:'std',page:'std_graphics_Color_p_G.html',children:[] }
+          ,{ name:'R',module:'std',page:'std_graphics_Color_p_R.html',children:[] }
+        ] }
+        ,{ name:'Methods',module:'std',children:[
+          { name:'ToARGB',module:'std',page:'std_graphics_Color_m_ToARGB.html',children:[] }
+        ] }
+        ,{ name:'Functions',module:'std',children:[
+          { name:'FromARGB',module:'std',page:'std_graphics_Color_f_FromARGB.html',children:[] }
+          ,{ name:'FromHSV',module:'std',page:'std_graphics_Color_f_FromHSV.html',children:[] }
+        ] }
+      ] }
+    ] }
+    ,{ name:'Classes',module:'std',children:[
+      { name:'Pixmap',module:'std',page:'std_graphics_c_Pixmap.html',children:[
+        { name:'Contructors',module:'std',children:[
+          { name:'New',module:'std',page:'std_graphics_Pixmap_m_new.html',children:[] }
+        ] }
+        ,{ name:'Properties',module:'std',children:[
+          { name:'Data',module:'std',page:'std_graphics_Pixmap_p_Data.html',children:[] }
+          ,{ name:'Depth',module:'std',page:'std_graphics_Pixmap_p_Depth.html',children:[] }
+          ,{ name:'Format',module:'std',page:'std_graphics_Pixmap_p_Format.html',children:[] }
+          ,{ name:'Height',module:'std',page:'std_graphics_Pixmap_p_Height.html',children:[] }
+          ,{ name:'Pitch',module:'std',page:'std_graphics_Pixmap_p_Pitch.html',children:[] }
+          ,{ name:'Width',module:'std',page:'std_graphics_Pixmap_p_Width.html',children:[] }
+        ] }
+        ,{ name:'Methods',module:'std',children:[
+          { name:'Clear',module:'std',page:'std_graphics_Pixmap_m_Clear.html',children:[] }
+          ,{ name:'Convert',module:'std',page:'std_graphics_Pixmap_m_Convert.html',children:[] }
+          ,{ name:'Copy',module:'std',page:'std_graphics_Pixmap_m_Copy.html',children:[] }
+          ,{ name:'Discard',module:'std',page:'std_graphics_Pixmap_m_Discard.html',children:[] }
+          ,{ name:'GetPixel',module:'std',page:'std_graphics_Pixmap_m_GetPixel.html',children:[] }
+          ,{ name:'GetPixelARGB',module:'std',page:'std_graphics_Pixmap_m_GetPixelARGB.html',children:[] }
+          ,{ name:'PasteTo',module:'std',page:'std_graphics_Pixmap_m_PasteTo.html',children:[] }
+          ,{ name:'PixelPtr',module:'std',page:'std_graphics_Pixmap_m_PixelPtr.html',children:[] }
+          ,{ name:'PremultiplyAlpha',module:'std',page:'std_graphics_Pixmap_m_PremultiplyAlpha.html',children:[] }
+          ,{ name:'SetPixel',module:'std',page:'std_graphics_Pixmap_m_SetPixel.html',children:[] }
+          ,{ name:'SetPixelARGB',module:'std',page:'std_graphics_Pixmap_m_SetPixelARGB.html',children:[] }
+          ,{ name:'Window',module:'std',page:'std_graphics_Pixmap_m_Window.html',children:[] }
+        ] }
+        ,{ name:'Functions',module:'std',children:[
+          { name:'LoadPixmap',module:'std',page:'std_graphics_Pixmap_f_LoadPixmap.html',children:[] }
+        ] }
+      ] }
+    ] }
+    ,{ name:'Functions',module:'std',children:[
+      { name:'PixelFormatDepth',module:'std',page:'std_graphics_f_PixelFormatDepth.html',children:[] }
+    ] }
+  ] }
+  ,{ name:'std.json',module:'std',page:'std_json.html',children:[
+    { name:'Classes',module:'std',children:[
+      { name:'JsonArray',module:'std',page:'std_json_c_JsonArray.html',children:[
+        { name:'Contructors',module:'std',children:[
+          { name:'New',module:'std',page:'std_json_JsonArray_m_new.html',children:[] }
+        ] }
+        ,{ name:'Properties',module:'std',children:[
+          { name:'Data',module:'std',page:'std_json_JsonArray_p_Data.html',children:[] }
+        ] }
+        ,{ name:'Operators',module:'std',children:[
+          { name:'Operator []',module:'std',page:'std_json_JsonArray_m_[].html',children:[] }
+          ,{ name:'Operator []=',module:'std',page:'std_json_JsonArray_m_[]=.html',children:[] }
+        ] }
+      ] }
+      ,{ name:'JsonBool',module:'std',page:'std_json_c_JsonBool.html',children:[
+        { name:'Constants',module:'std',children:[
+          { name:'FalseValue',module:'std',page:'std_json_JsonBool_c_FalseValue.html',children:[] }
+          ,{ name:'TrueValue',module:'std',page:'std_json_JsonBool_c_TrueValue.html',children:[] }
+        ] }
+        ,{ name:'Contructors',module:'std',children:[
+          { name:'New',module:'std',page:'std_json_JsonBool_m_new.html',children:[] }
+        ] }
+        ,{ name:'Properties',module:'std',children:[
+          { name:'Data',module:'std',page:'std_json_JsonBool_p_Data.html',children:[] }
+        ] }
+        ,{ name:'Methods',module:'std',children:[
+          { name:'ToBool',module:'std',page:'std_json_JsonBool_m_ToBool.html',children:[] }
+          ,{ name:'ToJson',module:'std',page:'std_json_JsonBool_m_ToJson.html',children:[] }
+          ,{ name:'ToNumber',module:'std',page:'std_json_JsonBool_m_ToNumber.html',children:[] }
+          ,{ name:'ToString',module:'std',page:'std_json_JsonBool_m_ToString.html',children:[] }
+        ] }
+      ] }
+      ,{ name:'JsonError',module:'std',page:'std_json_c_JsonError.html',children:[
+      ] }
+      ,{ name:'JsonNumber',module:'std',page:'std_json_c_JsonNumber.html',children:[
+        { name:'Contructors',module:'std',children:[
+          { name:'New',module:'std',page:'std_json_JsonNumber_m_new.html',children:[] }
+        ] }
+        ,{ name:'Properties',module:'std',children:[
+          { name:'Data',module:'std',page:'std_json_JsonNumber_p_Data.html',children:[] }
+        ] }
+        ,{ name:'Methods',module:'std',children:[
+          { name:'ToBool',module:'std',page:'std_json_JsonNumber_m_ToBool.html',children:[] }
+          ,{ name:'ToJson',module:'std',page:'std_json_JsonNumber_m_ToJson.html',children:[] }
+          ,{ name:'ToNumber',module:'std',page:'std_json_JsonNumber_m_ToNumber.html',children:[] }
+          ,{ name:'ToString',module:'std',page:'std_json_JsonNumber_m_ToString.html',children:[] }
+        ] }
+      ] }
+      ,{ name:'JsonObject',module:'std',page:'std_json_c_JsonObject.html',children:[
+        { name:'Contructors',module:'std',children:[
+          { name:'New',module:'std',page:'std_json_JsonObject_m_new.html',children:[] }
+        ] }
+        ,{ name:'Properties',module:'std',children:[
+          { name:'Data',module:'std',page:'std_json_JsonObject_p_Data.html',children:[] }
+        ] }
+        ,{ name:'Operators',module:'std',children:[
+          { name:'Operator []',module:'std',page:'std_json_JsonObject_m_[].html',children:[] }
+          ,{ name:'Operator []=',module:'std',page:'std_json_JsonObject_m_[]=.html',children:[] }
+        ] }
+      ] }
+      ,{ name:'JsonParser',module:'std',page:'std_json_c_JsonParser.html',children:[
+        { name:'Contructors',module:'std',children:[
+          { name:'New',module:'std',page:'std_json_JsonParser_m_new.html',children:[] }
+        ] }
+        ,{ name:'Methods',module:'std',children:[
+          { name:'ParseJson',module:'std',page:'std_json_JsonParser_m_ParseJson.html',children:[] }
+        ] }
+      ] }
+      ,{ name:'JsonString',module:'std',page:'std_json_c_JsonString.html',children:[
+        { name:'Contructors',module:'std',children:[
+          { name:'New',module:'std',page:'std_json_JsonString_m_new.html',children:[] }
+        ] }
+        ,{ name:'Properties',module:'std',children:[
+          { name:'Data',module:'std',page:'std_json_JsonString_p_Data.html',children:[] }
+        ] }
+        ,{ name:'Methods',module:'std',children:[
+          { name:'ToBool',module:'std',page:'std_json_JsonString_m_ToBool.html',children:[] }
+          ,{ name:'ToJson',module:'std',page:'std_json_JsonString_m_ToJson.html',children:[] }
+          ,{ name:'ToNumber',module:'std',page:'std_json_JsonString_m_ToNumber.html',children:[] }
+          ,{ name:'ToString',module:'std',page:'std_json_JsonString_m_ToString.html',children:[] }
+        ] }
+      ] }
+      ,{ name:'JsonValue',module:'std',page:'std_json_c_JsonValue.html',children:[
+        { name:'Operators',module:'std',children:[
+          { name:'Operator []',module:'std',page:'std_json_JsonValue_m_[].html',children:[] }
+          ,{ name:'Operator []=',module:'std',page:'std_json_JsonValue_m_[]=.html',children:[] }
+        ] }
+        ,{ name:'Methods',module:'std',children:[
+          { name:'ToBool',module:'std',page:'std_json_JsonValue_m_ToBool.html',children:[] }
+          ,{ name:'ToDouble',module:'std',page:'std_json_JsonValue_m_ToDouble.html',children:[] }
+          ,{ name:'ToFloat',module:'std',page:'std_json_JsonValue_m_ToFloat.html',children:[] }
+          ,{ name:'ToInt',module:'std',page:'std_json_JsonValue_m_ToInt.html',children:[] }
+          ,{ name:'ToJson',module:'std',page:'std_json_JsonValue_m_ToJson.html',children:[] }
+          ,{ name:'ToLong',module:'std',page:'std_json_JsonValue_m_ToLong.html',children:[] }
+          ,{ name:'ToNumber',module:'std',page:'std_json_JsonValue_m_ToNumber.html',children:[] }
+          ,{ name:'ToString',module:'std',page:'std_json_JsonValue_m_ToString.html',children:[] }
+        ] }
+      ] }
+    ] }
+  ] }
+  ,{ name:'std.markdown',module:'std',page:'std_markdown.html',children:[
+    { name:'Functions',module:'std',children:[
+      { name:'MarkdownToHtml',module:'std',page:'std_markdown_f_MarkdownToHtml.html',children:[] }
+    ] }
+  ] }
+  ,{ name:'std.memory',module:'std',page:'std_memory.html',children:[
+    { name:'Enums',module:'std',children:[
+      { name:'ByteOrder',module:'std',page:'std_memory_e_ByteOrder.html',children:[] }
+    ] }
+    ,{ name:'Classes',module:'std',children:[
+      { name:'DataBuffer',module:'std',page:'std_memory_c_DataBuffer.html',children:[
+        { name:'Contructors',module:'std',children:[
+          { name:'New',module:'std',page:'std_memory_DataBuffer_m_new.html',children:[] }
+        ] }
+        ,{ name:'Properties',module:'std',children:[
+          { name:'ByteOrder',module:'std',page:'std_memory_DataBuffer_p_ByteOrder.html',children:[] }
+          ,{ name:'Data',module:'std',page:'std_memory_DataBuffer_p_Data.html',children:[] }
+          ,{ name:'Length',module:'std',page:'std_memory_DataBuffer_p_Length.html',children:[] }
+        ] }
+        ,{ name:'Methods',module:'std',children:[
+          { name:'CopyTo',module:'std',page:'std_memory_DataBuffer_m_CopyTo.html',children:[] }
+          ,{ name:'Discard',module:'std',page:'std_memory_DataBuffer_m_Discard.html',children:[] }
+          ,{ name:'PeekByte',module:'std',page:'std_memory_DataBuffer_m_PeekByte.html',children:[] }
+          ,{ name:'PeekDouble',module:'std',page:'std_memory_DataBuffer_m_PeekDouble.html',children:[] }
+          ,{ name:'PeekFloat',module:'std',page:'std_memory_DataBuffer_m_PeekFloat.html',children:[] }
+          ,{ name:'PeekInt',module:'std',page:'std_memory_DataBuffer_m_PeekInt.html',children:[] }
+          ,{ name:'PeekLong',module:'std',page:'std_memory_DataBuffer_m_PeekLong.html',children:[] }
+          ,{ name:'PeekShort',module:'std',page:'std_memory_DataBuffer_m_PeekShort.html',children:[] }
+          ,{ name:'PeekUByte',module:'std',page:'std_memory_DataBuffer_m_PeekUByte.html',children:[] }
+          ,{ name:'PeekUInt',module:'std',page:'std_memory_DataBuffer_m_PeekUInt.html',children:[] }
+          ,{ name:'PeekULong',module:'std',page:'std_memory_DataBuffer_m_PeekULong.html',children:[] }
+          ,{ name:'PeekUShort',module:'std',page:'std_memory_DataBuffer_m_PeekUShort.html',children:[] }
+          ,{ name:'PokeByte',module:'std',page:'std_memory_DataBuffer_m_PokeByte.html',children:[] }
+          ,{ name:'PokeDouble',module:'std',page:'std_memory_DataBuffer_m_PokeDouble.html',children:[] }
+          ,{ name:'PokeFloat',module:'std',page:'std_memory_DataBuffer_m_PokeFloat.html',children:[] }
+          ,{ name:'PokeInt',module:'std',page:'std_memory_DataBuffer_m_PokeInt.html',children:[] }
+          ,{ name:'PokeLong',module:'std',page:'std_memory_DataBuffer_m_PokeLong.html',children:[] }
+          ,{ name:'PokeShort',module:'std',page:'std_memory_DataBuffer_m_PokeShort.html',children:[] }
+          ,{ name:'PokeUByte',module:'std',page:'std_memory_DataBuffer_m_PokeUByte.html',children:[] }
+          ,{ name:'PokeUInt',module:'std',page:'std_memory_DataBuffer_m_PokeUInt.html',children:[] }
+          ,{ name:'PokeULong',module:'std',page:'std_memory_DataBuffer_m_PokeULong.html',children:[] }
+          ,{ name:'PokeUShort',module:'std',page:'std_memory_DataBuffer_m_PokeUShort.html',children:[] }
+          ,{ name:'Resize',module:'std',page:'std_memory_DataBuffer_m_Resize.html',children:[] }
+          ,{ name:'Save',module:'std',page:'std_memory_DataBuffer_m_Save.html',children:[] }
+        ] }
+        ,{ name:'Functions',module:'std',children:[
+          { name:'Load',module:'std',page:'std_memory_DataBuffer_f_Load.html',children:[] }
+        ] }
+      ] }
+    ] }
+  ] }
+  ,{ name:'std.random',module:'std',page:'std_random.html',children:[
+    { name:'Functions',module:'std',children:[
+      { name:'Rnd',module:'std',page:'std_random_f_Rnd.html',children:[] }
+      ,{ name:'RndULong',module:'std',page:'std_random_f_RndULong.html',children:[] }
+      ,{ name:'SeedRnd',module:'std',page:'std_random_f_SeedRnd.html',children:[] }
+    ] }
+  ] }
+  ,{ name:'std.stream',module:'std',page:'std_stream.html',children:[
+    { name:'Classes',module:'std',children:[
+      { name:'DataStream',module:'std',page:'std_stream_c_DataStream.html',children:[
+        { name:'Contructors',module:'std',children:[
+          { name:'New',module:'std',page:'std_stream_DataStream_m_new.html',children:[] }
+        ] }
+        ,{ name:'Properties',module:'std',children:[
+          { name:'Eof',module:'std',page:'std_stream_DataStream_p_Eof.html',children:[] }
+          ,{ name:'Length',module:'std',page:'std_stream_DataStream_p_Length.html',children:[] }
+          ,{ name:'Position',module:'std',page:'std_stream_DataStream_p_Position.html',children:[] }
+        ] }
+        ,{ name:'Methods',module:'std',children:[
+          { name:'Close',module:'std',page:'std_stream_DataStream_m_Close.html',children:[] }
+          ,{ name:'Read',module:'std',page:'std_stream_DataStream_m_Read.html',children:[] }
+          ,{ name:'Seek',module:'std',page:'std_stream_DataStream_m_Seek.html',children:[] }
+          ,{ name:'Write',module:'std',page:'std_stream_DataStream_m_Write.html',children:[] }
+        ] }
+      ] }
+      ,{ name:'FileStream',module:'std',page:'std_stream_c_FileStream.html',children:[
+        { name:'Properties',module:'std',children:[
+          { name:'Eof',module:'std',page:'std_stream_FileStream_p_Eof.html',children:[] }
+          ,{ name:'Length',module:'std',page:'std_stream_FileStream_p_Length.html',children:[] }
+          ,{ name:'Position',module:'std',page:'std_stream_FileStream_p_Position.html',children:[] }
+        ] }
+        ,{ name:'Methods',module:'std',children:[
+          { name:'Close',module:'std',page:'std_stream_FileStream_m_Close.html',children:[] }
+          ,{ name:'Read',module:'std',page:'std_stream_FileStream_m_Read.html',children:[] }
+          ,{ name:'Seek',module:'std',page:'std_stream_FileStream_m_Seek.html',children:[] }
+          ,{ name:'Write',module:'std',page:'std_stream_FileStream_m_Write.html',children:[] }
+        ] }
+        ,{ name:'Functions',module:'std',children:[
+          { name:'Open',module:'std',page:'std_stream_FileStream_f_Open.html',children:[] }
+        ] }
+      ] }
+      ,{ name:'Stream',module:'std',page:'std_stream_c_Stream.html',children:[
+        { name:'Aliases',module:'std',children:[
+          { name:'OpenFunc',module:'std',children:[] }
+        ] }
+        ,{ name:'Properties',module:'std',children:[
+          { name:'ByteOrder',module:'std',page:'std_stream_Stream_p_ByteOrder.html',children:[] }
+          ,{ name:'Eof',module:'std',page:'std_stream_Stream_p_Eof.html',children:[] }
+          ,{ name:'Length',module:'std',page:'std_stream_Stream_p_Length.html',children:[] }
+          ,{ name:'Position',module:'std',page:'std_stream_Stream_p_Position.html',children:[] }
+        ] }
+        ,{ name:'Methods',module:'std',children:[
+          { name:'Close',module:'std',page:'std_stream_Stream_m_Close.html',children:[] }
+          ,{ name:'Read',module:'std',page:'std_stream_Stream_m_Read.html',children:[] }
+          ,{ name:'ReadByte',module:'std',page:'std_stream_Stream_m_ReadByte.html',children:[] }
+          ,{ name:'ReadCString',module:'std',page:'std_stream_Stream_m_ReadCString.html',children:[] }
+          ,{ name:'ReadDouble',module:'std',page:'std_stream_Stream_m_ReadDouble.html',children:[] }
+          ,{ name:'ReadFloat',module:'std',page:'std_stream_Stream_m_ReadFloat.html',children:[] }
+          ,{ name:'ReadInt',module:'std',page:'std_stream_Stream_m_ReadInt.html',children:[] }
+          ,{ name:'ReadLong',module:'std',page:'std_stream_Stream_m_ReadLong.html',children:[] }
+          ,{ name:'ReadShort',module:'std',page:'std_stream_Stream_m_ReadShort.html',children:[] }
+          ,{ name:'ReadUByte',module:'std',page:'std_stream_Stream_m_ReadUByte.html',children:[] }
+          ,{ name:'ReadUInt',module:'std',page:'std_stream_Stream_m_ReadUInt.html',children:[] }
+          ,{ name:'ReadULong',module:'std',page:'std_stream_Stream_m_ReadULong.html',children:[] }
+          ,{ name:'ReadUShort',module:'std',page:'std_stream_Stream_m_ReadUShort.html',children:[] }
+          ,{ name:'Seek',module:'std',page:'std_stream_Stream_m_Seek.html',children:[] }
+          ,{ name:'Write',module:'std',page:'std_stream_Stream_m_Write.html',children:[] }
+          ,{ name:'WriteByte',module:'std',page:'std_stream_Stream_m_WriteByte.html',children:[] }
+          ,{ name:'WriteCString',module:'std',page:'std_stream_Stream_m_WriteCString.html',children:[] }
+          ,{ name:'WriteDouble',module:'std',page:'std_stream_Stream_m_WriteDouble.html',children:[] }
+          ,{ name:'WriteFloat',module:'std',page:'std_stream_Stream_m_WriteFloat.html',children:[] }
+          ,{ name:'WriteInt',module:'std',page:'std_stream_Stream_m_WriteInt.html',children:[] }
+          ,{ name:'WriteLong',module:'std',page:'std_stream_Stream_m_WriteLong.html',children:[] }
+          ,{ name:'WriteShort',module:'std',page:'std_stream_Stream_m_WriteShort.html',children:[] }
+          ,{ name:'WriteUByte',module:'std',page:'std_stream_Stream_m_WriteUByte.html',children:[] }
+          ,{ name:'WriteUInt',module:'std',page:'std_stream_Stream_m_WriteUInt.html',children:[] }
+          ,{ name:'WriteULong',module:'std',page:'std_stream_Stream_m_WriteULong.html',children:[] }
+          ,{ name:'WriteUShort',module:'std',page:'std_stream_Stream_m_WriteUShort.html',children:[] }
+        ] }
+        ,{ name:'Functions',module:'std',children:[
+          { name:'Open',module:'std',page:'std_stream_Stream_f_Open.html',children:[] }
+        ] }
+      ] }
+    ] }
+  ] }
+  ,{ name:'std.stringio',module:'std',page:'std_stringio.html',children:[
+    { name:'Functions',module:'std',children:[
+      { name:'Hex',module:'std',page:'std_stringio_f_Hex.html',children:[] }
+      ,{ name:'LoadString',module:'std',page:'std_stringio_f_LoadString.html',children:[] }
+      ,{ name:'SaveString',module:'std',page:'std_stringio_f_SaveString.html',children:[] }
+    ] }
+  ] }
+] } ];
+
+	var t=new TreeView( tree,'tree' );
+	
+	t.on( 'select',function( args ){
+	
+		var data=args.data;
+		if( !data ) return;
+		
+		var page=data['page'];
+		if( !page ) return;
+		
+		var module=data['module'];
+		
+		page="../modules/"+module+"/docs/__PAGES__/"+page;
+		
+		document.getElementById( 'page' ).src=page;
+		
+	} );
+
+	t.on( 'expand',function( args ){
+	
+		var data=JSON.parse( args.target.getAttribute( 'data-item' ) );
+		if( !data ) return;
+		
+		var page=data['page'];
+		if( !page ) return;
+
+		var module=data['module'];
+		
+		page="../modules/"+module+"/docs/__PAGES__/"+page;
+		
+		document.getElementById( 'page' ).src=page;
+		
+	} );
+	
+	
+</script>
+
+</body>
+
+</html>

+ 42 - 0
docs/modules_page_template.html

@@ -0,0 +1,42 @@
+<!doctype html>
+
+<html>
+
+<head>
+
+<title>Monkey2 Modules Reference</title>
+
+<link rel='stylesheet' href='../../../../docs/css/microgram.css'>
+
+<style>
+
+tr td:first-child{
+	width:20%;
+}
+
+</style>
+
+<script type='text/javascript'>
+
+function gopage( page,module ){
+
+	document.location.href='../../../'+module+'/docs/__PAGES__/'+page;
+	
+	return false;
+}
+
+</script>
+
+</head>
+
+<body>
+
+<div style='padding:16px;'>
+
+${CONTENT}
+
+</div>
+
+</body>
+
+</html>

+ 76 - 0
docs/modules_template.html

@@ -0,0 +1,76 @@
+<!doctype html>
+
+<html>
+
+<head>
+
+<title>Monkey2 Modules Reference</title>
+
+<link rel='stylesheet' href='css/microgram.css'>
+
+<link rel='stylesheet' href='js-treeview/treeview.css' />
+
+</head>
+
+<body style='position:fixed; width:100%; height:100%;'>
+
+<div style='position:absolute; left:0; width:249px; height:100%; overflow:auto; padding:8px; border-right:1px solid #d1d1d1;'>
+<div id='tree' style='border:0; width:100%; height:100%;'></div>
+</div>
+
+<div style='position:absolute; left:250px; right:0; height:100%; padding:0;'>
+<iframe id='page' style='border:0; width:100%; height:100%;'></iframe>
+</div>
+
+<!--
+<div style='position:absolute; left:250px; right:0; height:100%; margin:0;'>
+<iframe id='page' style='padding:0; border:0; margin:0; width:100%; height:100%;'></iframe>
+</div>
+-->
+
+<script type='text/javascript' src='js-treeview/treeview.js'></script>
+
+<script type='text/javascript'>
+
+	var tree = [ ${MX2_API} ];
+
+	var t=new TreeView( tree,'tree' );
+	
+	t.on( 'select',function( args ){
+	
+		var data=args.data;
+		if( !data ) return;
+		
+		var page=data['page'];
+		if( !page ) return;
+		
+		var module=data['module'];
+		
+		page="../modules/"+module+"/docs/__PAGES__/"+page;
+		
+		document.getElementById( 'page' ).src=page;
+		
+	} );
+
+	t.on( 'expand',function( args ){
+	
+		var data=JSON.parse( args.target.getAttribute( 'data-item' ) );
+		if( !data ) return;
+		
+		var page=data['page'];
+		if( !page ) return;
+
+		var module=data['module'];
+		
+		page="../modules/"+module+"/docs/__PAGES__/"+page;
+		
+		document.getElementById( 'page' ).src=page;
+		
+	} );
+	
+	
+</script>
+
+</body>
+
+</html>

Деякі файли не було показано, через те що забагато файлів було змінено