go-vise

Constrained Size Output Virtual Machine
Info | Log | Files | Refs | README | LICENSE

index.html (17555B)


      1 <!DOCTYPE html>
      2 <html>
      3 <!-- Created by GNU Texinfo 7.1, https://www.gnu.org/software/texinfo/ -->
      4 <head>
      5 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
      6 <!-- Released 2023 under AGPL3 -->
      7 <title>Top (vise)</title>
      8 
      9 <meta name="description" content="Top (vise)">
     10 <meta name="keywords" content="Top (vise)">
     11 <meta name="resource-type" content="document">
     12 <meta name="distribution" content="global">
     13 <meta name="Generator" content="makeinfo">
     14 <meta name="viewport" content="width=device-width,initial-scale=1">
     15 
     16 <link href="#Top" rel="start" title="Top">
     17 <link href="#SEC_Contents" rel="contents" title="Table of Contents">
     18 <link href="overview.html" rel="next" title="overview">
     19 <style type="text/css">
     20 <!--
     21 a.copiable-link {visibility: hidden; text-decoration: none; line-height: 0em}
     22 span:hover a.copiable-link {visibility: visible}
     23 ul.toc-numbered-mark {list-style: none}
     24 -->
     25 </style>
     26 
     27 
     28 </head>
     29 
     30 <body lang="en">
     31 
     32 
     33 
     34 
     35 <div class="top-level-extent" id="Top">
     36 <div class="nav-panel">
     37 <p>
     38 Next: <a href="overview.html" accesskey="n" rel="next">Overview</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>]</p>
     39 </div>
     40 <hr>
     41 <h1 class="top" id="Introduction"><span>Introduction<a class="copiable-link" href="#Introduction"> &para;</a></span></h1>
     42 
     43 <div class="element-contents" id="SEC_Contents">
     44 <h2 class="contents-heading">Table of Contents</h2>
     45 
     46 <div class="contents">
     47 
     48 <ul class="toc-numbered-mark">
     49   <li><a id="toc-Overview" href="overview.html">1 Overview</a>
     50   <ul class="toc-numbered-mark">
     51     <li><a id="toc-Features" href="overview.html#Features">1.1 Features</a></li>
     52   </ul></li>
     53   <li><a id="toc-An-example-vise-implementation" href="sim.html">2 An example vise implementation</a>
     54   <ul class="toc-numbered-mark">
     55     <li><a id="toc-Templates" href="sim.html#Templates">2.1 Templates</a>
     56     <ul class="toc-numbered-mark">
     57       <li><a id="toc-root" href="sim.html#root">2.1.1 root</a></li>
     58       <li><a id="toc-foo" href="sim.html#foo">2.1.2 foo</a></li>
     59       <li><a id="toc-bar" href="sim.html#bar">2.1.3 bar</a></li>
     60       <li><a id="toc-ouch" href="sim.html#ouch">2.1.4 ouch</a></li>
     61     </ul></li>
     62     <li><a id="toc-Scripts" href="sim.html#Scripts">2.2 Scripts</a>
     63     <ul class="toc-numbered-mark">
     64       <li><a id="toc-root-1" href="sim.html#root-1">2.2.1 root</a></li>
     65       <li><a id="toc-foo-1" href="sim.html#foo-1">2.2.2 foo</a></li>
     66       <li><a id="toc-bar-1" href="sim.html#bar-1">2.2.3 bar</a></li>
     67       <li><a id="toc-ouch-1" href="sim.html#ouch-1">2.2.4 ouch</a></li>
     68     </ul></li>
     69     <li><a id="toc-External-code-handlers" href="sim.html#External-code-handlers">2.3 External code handlers</a></li>
     70     <li><a id="toc-Handling-long-values" href="sim.html#Handling-long-values">2.4 Handling long values</a></li>
     71     <li><a id="toc-Working-example" href="sim.html#Working-example">2.5 Working example</a></li>
     72   </ul></li>
     73   <li><a id="toc-Nomenclature" href="nomenclature.html">3 Nomenclature</a>
     74   <ul class="toc-numbered-mark">
     75     <li><a id="toc-Common" href="nomenclature.html#Common">3.1 Common</a></li>
     76     <li><a id="toc-Instructions-and-navigation" href="nomenclature.html#Instructions-and-navigation">3.2 Instructions and navigation</a></li>
     77   </ul></li>
     78   <li><a id="toc-Signal-flags" href="signals.html">4 Signal flags</a>
     79   <ul class="toc-numbered-mark">
     80     <li><a id="toc-Client_002ddefined-signal-flags" href="signals.html#Client_002ddefined-signal-flags">4.1 Client-defined signal flags</a>
     81     <ul class="toc-numbered-mark">
     82       <li><a id="toc-Flow-control" href="signals.html#Flow-control">4.1.1 Flow control</a></li>
     83     </ul></li>
     84     <li><a id="toc-Built_002din-signal-flags" href="signals.html#Built_002din-signal-flags">4.2 Built-in signal flags</a></li>
     85   </ul></li>
     86   <li><a id="toc-Instructions" href="instructions.html">5 Instructions</a>
     87   <ul class="toc-numbered-mark">
     88     <li><a id="toc-Data-types" href="instructions.html#Data-types">5.1 Data types</a>
     89     <ul class="toc-numbered-mark">
     90       <li><a id="toc-node" href="instructions.html#node">5.1.1 node</a>
     91       <ul class="toc-numbered-mark">
     92         <li><a id="toc-Regular-node" href="instructions.html#Regular-node">5.1.1.1 Regular node</a></li>
     93         <li><a id="toc-Special-node" href="instructions.html#Special-node">5.1.1.2 Special node</a></li>
     94       </ul></li>
     95       <li><a id="toc-label" href="instructions.html#label">5.1.2 label</a></li>
     96       <li><a id="toc-size" href="instructions.html#size">5.1.3 size</a></li>
     97       <li><a id="toc-selector" href="instructions.html#selector">5.1.4 selector</a></li>
     98       <li><a id="toc-symbol" href="instructions.html#symbol">5.1.5 symbol</a></li>
     99       <li><a id="toc-signal" href="instructions.html#signal">5.1.6 signal</a></li>
    100       <li><a id="toc-matchmode" href="instructions.html#matchmode">5.1.7 matchmode</a></li>
    101     </ul></li>
    102     <li><a id="toc-Instruction-list" href="instructions.html#Instruction-list">5.2 Instruction list</a>
    103     <ul class="toc-numbered-mark">
    104       <li><a id="toc-CATCH-_003cnode_003e-_003csignal_003e-_003cmatchmode_003e" href="instructions.html#CATCH-_003cnode_003e-_003csignal_003e-_003cmatchmode_003e">5.2.1 CATCH &lt;node&gt; &lt;signal&gt; &lt;matchmode&gt;</a></li>
    105       <li><a id="toc-CROAK-_003csignal_003e-_003cmatchmode_003e" href="instructions.html#CROAK-_003csignal_003e-_003cmatchmode_003e">5.2.2 CROAK &lt;signal&gt; &lt;matchmode&gt;</a></li>
    106       <li><a id="toc-HALT" href="instructions.html#HALT">5.2.3 HALT</a></li>
    107       <li><a id="toc-INCMP-_003cnode_003e-_003cselector_003e" href="instructions.html#INCMP-_003cnode_003e-_003cselector_003e">5.2.4 INCMP &lt;node&gt; &lt;selector&gt;</a></li>
    108       <li><a id="toc-LOAD-_003csymbol_003e-_003csize_003e" href="instructions.html#LOAD-_003csymbol_003e-_003csize_003e">5.2.5 LOAD &lt;symbol&gt; &lt;size&gt;</a></li>
    109       <li><a id="toc-MAP-_003csymbol_003e" href="instructions.html#MAP-_003csymbol_003e">5.2.6 MAP &lt;symbol&gt;</a></li>
    110       <li><a id="toc-MNEXT-_003clabel_003e-_003cselector_003e" href="instructions.html#MNEXT-_003clabel_003e-_003cselector_003e">5.2.7 MNEXT &lt;label&gt; &lt;selector&gt;</a></li>
    111       <li><a id="toc-MOUT-_003clabel_003e-_003cselector_003e" href="instructions.html#MOUT-_003clabel_003e-_003cselector_003e">5.2.8 MOUT &lt;label&gt; &lt;selector&gt;</a></li>
    112       <li><a id="toc-MOVE-_003cnode_003e" href="instructions.html#MOVE-_003cnode_003e">5.2.9 MOVE &lt;node&gt;</a></li>
    113       <li><a id="toc-MPREV-_003clabel_003e-_003cselector_003e" href="instructions.html#MPREV-_003clabel_003e-_003cselector_003e">5.2.10 MPREV &lt;label&gt; &lt;selector&gt;</a></li>
    114       <li><a id="toc-MSINK" href="instructions.html#MSINK">5.2.11 MSINK</a></li>
    115       <li><a id="toc-RELOAD-_003csymbol_003e" href="instructions.html#RELOAD-_003csymbol_003e">5.2.12 RELOAD &lt;symbol&gt;</a></li>
    116     </ul></li>
    117     <li><a id="toc-Batch-instructions" href="instructions.html#Batch-instructions">5.3 Batch instructions</a>
    118     <ul class="toc-numbered-mark">
    119       <li><a id="toc-Batch-menu-expansion" href="instructions.html#Batch-menu-expansion">5.3.1 Batch menu expansion</a></li>
    120     </ul></li>
    121   </ul></li>
    122   <li><a id="toc-Navigation" href="navigation.html">6 Navigation</a>
    123   <ul class="toc-numbered-mark">
    124     <li><a id="toc-Entry-point" href="navigation.html#Entry-point">6.1 Entry point</a></li>
    125     <li><a id="toc-Lateral-navigation" href="navigation.html#Lateral-navigation">6.2 Lateral navigation</a></li>
    126     <li><a id="toc-Node-names" href="navigation.html#Node-names">6.3 Node names</a>
    127     <ul class="toc-numbered-mark">
    128       <li><a id="toc-Special-node-names" href="navigation.html#Special-node-names">6.3.1 Special node names</a></li>
    129       <li><a id="toc-Builtin-node-names" href="navigation.html#Builtin-node-names">6.3.2 Builtin node names</a></li>
    130     </ul></li>
    131     <li><a id="toc-Navigation-stack" href="navigation.html#Navigation-stack">6.4 Navigation stack</a></li>
    132   </ul></li>
    133   <li><a id="toc-External-data" href="cache.html">7 External data</a>
    134   <ul class="toc-numbered-mark">
    135     <li><a id="toc-The-LOAD-handler" href="cache.html#The-LOAD-handler">7.1 The <code class="code">LOAD</code> handler</a></li>
    136     <li><a id="toc-Size-limits" href="cache.html#Size-limits">7.2 Size limits</a>
    137     <ul class="toc-numbered-mark">
    138       <li><a id="toc-_0022Sink_0022-symbols" href="cache.html#g_t_0022Sink_0022-symbols">7.2.1 &quot;Sink&quot; symbols</a></li>
    139     </ul></li>
    140     <li><a id="toc-Scope" href="cache.html#Scope">7.3 Scope</a>
    141     <ul class="toc-numbered-mark">
    142       <li><a id="toc-Duplicate-LOAD" href="cache.html#Duplicate-LOAD">7.3.1 Duplicate <code class="code">LOAD</code></a></li>
    143     </ul></li>
    144     <li><a id="toc-Refreshing-cache-contents" href="cache.html#Refreshing-cache-contents">7.4 Refreshing cache contents</a></li>
    145   </ul></li>
    146   <li><a id="toc-Rendering" href="render.html">8 Rendering</a>
    147   <ul class="toc-numbered-mark">
    148     <li><a id="toc-Dynamic-templates" href="render.html#Dynamic-templates">8.1 Dynamic templates</a>
    149     <ul class="toc-numbered-mark">
    150       <li><a id="toc-Examples" href="render.html#Examples">8.1.1 Examples</a></li>
    151     </ul></li>
    152     <li><a id="toc-Rendering-pipeline" href="render.html#Rendering-pipeline">8.2 Rendering pipeline</a>
    153     <ul class="toc-numbered-mark">
    154       <li><a id="toc-No-sink" href="render.html#No-sink">8.2.1 No sink</a></li>
    155       <li><a id="toc-MAP-sink" href="render.html#MAP-sink">8.2.2 MAP sink</a></li>
    156       <li><a id="toc-Menu-sink" href="render.html#Menu-sink">8.2.3 Menu sink</a></li>
    157     </ul></li>
    158     <li><a id="toc-Multiple_002dpage-rendering" href="render.html#Multiple_002dpage-rendering">8.3 Multiple-page rendering</a>
    159     <ul class="toc-numbered-mark">
    160       <li><a id="toc-Missing-navigation" href="render.html#Missing-navigation">8.3.1 Missing navigation</a></li>
    161       <li><a id="toc-Multi_002dpage-example" href="render.html#Multi_002dpage-example">8.3.2 Multi-page example</a>
    162       <ul class="toc-numbered-mark">
    163         <li><a id="toc-Data-accounting" href="render.html#Data-accounting">8.3.2.1 Data accounting</a></li>
    164         <li><a id="toc-Rendering-logic" href="render.html#Rendering-logic">8.3.2.2 Rendering logic</a></li>
    165       </ul></li>
    166     </ul></li>
    167   </ul></li>
    168   <li><a id="toc-Handling-languages" href="language.html">9 Handling languages</a>
    169   <ul class="toc-numbered-mark">
    170     <li><a id="toc-Defining-language" href="language.html#Defining-language">9.1 Defining language</a></li>
    171   </ul></li>
    172   <li><a id="toc-Exceptional-states" href="exceptions.html">10 Exceptional states</a>
    173   <ul class="toc-numbered-mark">
    174     <li><a id="toc-Ending-execution" href="exceptions.html#Ending-execution">10.1 Ending execution</a>
    175     <ul class="toc-numbered-mark">
    176       <li><a id="toc-Halting" href="exceptions.html#Halting">10.1.1 Halting</a></li>
    177       <li><a id="toc-Termination" href="exceptions.html#Termination">10.1.2 Termination</a></li>
    178       <li><a id="toc-Default-error-case" href="exceptions.html#Default-error-case">10.1.3 Default error case</a></li>
    179       <li><a id="toc-The-CROAK-instruction" href="exceptions.html#The-CROAK-instruction">10.1.4 The <code class="code">CROAK</code> instruction</a></li>
    180     </ul></li>
    181     <li><a id="toc-Resuming-execution" href="exceptions.html#Resuming-execution">10.2 Resuming execution</a>
    182     <ul class="toc-numbered-mark">
    183       <li><a id="toc-Graceful-exit" href="exceptions.html#Graceful-exit">10.2.1 Graceful exit</a></li>
    184       <li><a id="toc-After-termination" href="exceptions.html#After-termination">10.2.2 After termination</a></li>
    185     </ul></li>
    186   </ul></li>
    187   <li><a id="toc-Developing-with-vise" href="dev.html">11 Developing with vise</a>
    188   <ul class="toc-numbered-mark">
    189     <li><a id="toc-Code-repository-structure" href="dev.html#Code-repository-structure">11.1 Code repository structure</a></li>
    190     <li><a id="toc-Interacting-with-vise" href="dev.html#Interacting-with-vise">11.2 Interacting with <code class="code">vise</code></a>
    191     <ul class="toc-numbered-mark">
    192       <li><a id="toc-Modes-of-operation" href="dev.html#Modes-of-operation">11.2.1 Modes of operation</a>
    193       <ul class="toc-numbered-mark">
    194         <li><a id="toc-Manual-operation" href="dev.html#Manual-operation">11.2.1.1 Manual operation</a></li>
    195         <li><a id="toc-Synchronous-loop" href="dev.html#Synchronous-loop">11.2.1.2 Synchronous loop</a></li>
    196         <li><a id="toc-Asynchronous-one_002dshot" href="dev.html#Asynchronous-one_002dshot">11.2.1.3 Asynchronous one-shot</a></li>
    197       </ul></li>
    198       <li><a id="toc-Configuration" href="dev.html#Configuration">11.2.2 Configuration</a></li>
    199       <li><a id="toc-Sessions" href="dev.html#Sessions">11.2.3 Sessions</a></li>
    200       <li><a id="toc-Execution-context" href="dev.html#Execution-context">11.2.4 Execution context</a></li>
    201       <li><a id="toc-Blocking-execution" href="dev.html#Blocking-execution">11.2.5 Blocking execution</a></li>
    202     </ul></li>
    203     <li><a id="toc-Resolving-resources" href="dev.html#Resolving-resources">11.3 Resolving resources</a>
    204     <ul class="toc-numbered-mark">
    205       <li><a id="toc-Memory-resource-implementation" href="dev.html#Memory-resource-implementation">11.3.1 Memory resource implementation</a></li>
    206       <li><a id="toc-Filesystem-resource-implementation" href="dev.html#Filesystem-resource-implementation">11.3.2 Filesystem resource implementation</a>
    207       <ul class="toc-numbered-mark">
    208         <li><a id="toc-Bytecode-_0028resource_002eResource_002eGetCode_0029" href="dev.html#Bytecode-_0028resource_002eResource_002eGetCode_0029">11.3.2.1 Bytecode (<code class="code">resource.Resource.GetCode</code>)</a></li>
    209         <li><a id="toc-Templates-_0028resource_002eResource_002eGetTemplate_0029" href="dev.html#Templates-_0028resource_002eResource_002eGetTemplate_0029">11.3.2.2 Templates (<code class="code">resource.Resource.GetTemplate</code>)</a></li>
    210         <li><a id="toc-Menus-_0028resource_002eResource_002eGetMenu_0029" href="dev.html#Menus-_0028resource_002eResource_002eGetMenu_0029">11.3.2.3 Menus (<code class="code">resource.Resource.GetMenu</code>)</a></li>
    211         <li><a id="toc-External-symbols-_0028resource_002eResource_002eFuncFor_0029" href="dev.html#External-symbols-_0028resource_002eResource_002eFuncFor_0029">11.3.2.4 External symbols (<code class="code">resource.Resource.FuncFor</code>)</a></li>
    212       </ul></li>
    213     </ul></li>
    214     <li><a id="toc-Data-provider" href="dev.html#Data-provider">11.4 Data provider</a>
    215     <ul class="toc-numbered-mark">
    216       <li><a id="toc-Uses" href="dev.html#Uses">11.4.1 Uses</a></li>
    217       <li><a id="toc-Using-data-provider-with-resources" href="dev.html#Using-data-provider-with-resources">11.4.2 Using data provider with resources</a></li>
    218       <li><a id="toc-State-persistence" href="dev.html#State-persistence">11.4.3 State persistence</a></li>
    219     </ul></li>
    220     <li><a id="toc-Logging" href="dev.html#Logging">11.5 Logging</a></li>
    221     <li><a id="toc-Tools" href="dev.html#Tools">11.6 Tools</a>
    222     <ul class="toc-numbered-mark">
    223       <li><a id="toc-Test-data-generation" href="dev.html#Test-data-generation">11.6.1 Test data generation</a></li>
    224       <li><a id="toc-Interactive-runner" href="dev.html#Interactive-runner">11.6.2 Interactive runner</a></li>
    225       <li><a id="toc-Assembler" href="dev.html#Assembler">11.6.3 Assembler</a></li>
    226       <li><a id="toc-Disassembler" href="dev.html#Disassembler">11.6.4 Disassembler</a></li>
    227       <li><a id="toc-Interactive-case-examples" href="dev.html#Interactive-case-examples">11.6.5 Interactive case examples</a></li>
    228     </ul></li>
    229     <li><a id="toc-Assembly-examples" href="dev.html#Assembly-examples">11.7 Assembly examples</a></li>
    230     <li><a id="toc-Bytecode-example" href="dev.html#Bytecode-example">11.8 Bytecode example</a>
    231     <ul class="toc-numbered-mark">
    232       <li><a id="toc-Example" href="dev.html#Example">11.8.1 Example</a></li>
    233     </ul></li>
    234   </ul></li>
    235   <li><a id="toc-Common-patterns" href="cookbook.html">12 Common patterns</a>
    236   <ul class="toc-numbered-mark">
    237     <li><a id="toc-Hello-world" href="cookbook.html#Hello-world">12.1 Hello world</a></li>
    238     <li><a id="toc-Handling-menus-and-inputs" href="cookbook.html#Handling-menus-and-inputs">12.2 Handling menus and inputs</a>
    239     <ul class="toc-numbered-mark">
    240       <li><a id="toc-Menu-batch-version" href="cookbook.html#Menu-batch-version">12.2.1 Menu batch version</a></li>
    241     </ul></li>
    242     <li><a id="toc-Signal-flow-control" href="cookbook.html#Signal-flow-control">12.3 Signal flow control</a></li>
    243     <li><a id="toc-Multiple-pages" href="cookbook.html#Multiple-pages">12.4 Multiple pages</a>
    244     <ul class="toc-numbered-mark">
    245       <li><a id="toc-Menu-batch-version-1" href="cookbook.html#Menu-batch-version-1">12.4.1 Menu batch version</a></li>
    246     </ul></li>
    247     <li><a id="toc-Multi_002dpage-menus" href="cookbook.html#Multi_002dpage-menus">12.5 Multi-page menus</a>
    248     <ul class="toc-numbered-mark">
    249       <li><a id="toc-Menu-batch-version-2" href="cookbook.html#Menu-batch-version-2">12.5.1 Menu batch version</a></li>
    250     </ul></li>
    251     <li><a id="toc-Default-input-handler" href="cookbook.html#Default-input-handler">12.6 Default input handler</a></li>
    252     <li><a id="toc-Graceful-quit" href="cookbook.html#Graceful-quit">12.7 Graceful quit</a></li>
    253   </ul></li>
    254 </ul>
    255 </div>
    256 </div>
    257 </div>
    258 <hr>
    259 <div class="nav-panel">
    260 <p>
    261 Next: <a href="overview.html" accesskey="n" rel="next">Overview</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>]</p>
    262 </div>
    263 
    264 
    265 
    266 </body>
    267 </html>