algml+elemek+kódja

Az egyes algml elemekhez rendelt előfordított virtuális gépi kódok.

Deklarációk
code format="xml"      precode='goto -e-#-skipfunc' postcode='gtfp; entry -e-#-skipfunc' >
 * 1) .   precode='goto -e-#-skipout; entry -e-#-output' postcode='goto -e-#-retout; entry -e-#-skipout' >   precode='goto -e-#-skipinit; entry -e-#-init' postcode='goto -e-#-start; entry -e-#-skipinit' >  precode='entry -f-#; goto -e-#-prepare; entry -e-#-start' postcode='goto -e-#-output; entry -e-#-retout' >
 * 1) .    precode='goto -e-#-exit'   precode='goto -e-#-skip' > 
 * 1) .   

precode='reg -e-#-val access' postcode='del -e-#-val' >  precode='set -e-#-val $name' >  precode='set $name -e-#-val' >
 * 1) .  precode= 'reg -e-#-val $type;' 'set -e-#-val $name;' 'reg -e-#-ptr access;' 'pnt -e-#-ptr $name;' >  precode= 'set -e-#-ptr $name;' 'set $name -e-#-val;' > code
 * 1) .  precode='goto -e-#-skipcond; entry -e-#-cond' postcode= 'set -e-#-condv -out;' 'goto -e-#-cond-ret;' 'entry -e-#-skipcond;' >  precode='entry -e-#-then' postcode='goto -e-#-exit' >  precode='entry -e-#-else' postcode='goto -e-#-exit' >
 * 1) .<if><cond
 * 1) .<if><then
 * 1) .<if><else

precode='reg -e-#-expv $type' postcode='entry -e-#-exit' >  precode='set -e-#-expv -out' >  precode='eq -e-#-match $name -e-#-expv' >  precode='gotou -e-#-match -e-#-case-##-skip' postcode='entry -e-#-case-##-skip' > <do >
 * 1) .<switch
 * 1) . <swexp
 * 1) . <var
 * 1) . ##. <do

precode='entry -e-#-start' postcode= 'entry -e-#-skip;' 'goto -e-#-start;' 'entry -e-#-exit;' >
 * 1) .<loop

precode= 'reg -e-#-condv bool;' 'entry -e-#-loopstart' postcode= 'entry -e-#-skip;' 'goto -e-#-cond;' 'entry -e-#-cond-ret;' 'gotou $condv -e-#-loopstart;' 'entry -e-#-exit;' 'del -e-#-condv;' >  precode= 'goto -e-#-skipcond;' postcode= 'entry -e-#-cond;' 'set -e-#-condv -out;' 'goto -e-#-cond-ret;' 'entry -e-#-skipcond;' >
 * 1) .<dowhile
 * 1) . <cond

precode= 'reg -e-#-condv;' 'entry -e-#-loopstart;' 'goto -e-#-cond;' 'entry -e-#-cond-ret;' 'gotou -e-#-condv -e-#-exit;' postcode= 'entry -e-#-skip;' 'goto -e-#-loopstart;' 'entry -e-#-exit;' 'del $condv;' >  precode= 'goto -e-#-skipcond;' postcode= 'entry -e-#-cond;' 'set -e-#-condv -out;' 'goto -e-#-cond-ret;' 'entry -e-#-skipcond;' >
 * 1) .<while
 * 1) . <cond

precode= 'reg -e-#-condv bool;' 'reg -e-#-ind $ind-type;' 'goto -e-#-init;' 'entry -e-#-init-ret;' 'entry -e-#-loopstart;' 'goto -e-#-cond;' 'entry -e-#-cond-ret;' 'gotou -e-#-condv -e-#-exit;' postcode= 'nwsf;' 'par -e-#-ind;' 'entsf $loopinc;' 'entry -e-#-skip;' 'goto -e-#-loopstart;' 'entry -e-#-exit;' 'del -e-#-condvar;' 'del -e-#-ind;' >
 * 1) .<for

precode='goto -e-#-skiprange; entry -e-#-cond' postcode='goto -e-#-cond-ret; entry -e-#-skiprange' >
 * 1) . <range

postcode= 'goto -e-#-noinit;' 'entry -e-#-init;' 'set -e-#-ind -out;' 'goto -e-#-init-ret;' 'entry -e-#-noinit;' 'gt -e-#-condv -e-#-condv -out;' >
 * 1) . 1.<var

2.<var postcode='mul -e-#-condv -out' >  precode= 'reg -e-#-condv bool;' 'reg -e-#-ind $ind-type;' 'reg -e-#-elem $elem-type;' 'goto -e-#-init;' 'entry -e-#-init-ret;' 'entry -e-#-loopstart;' 'goto -e-#-cond;' 'entry -e-#-cond-ret;' 'gotou -e-#-condv -e-#-exit;' postcode= 'newsf;' 'par -e-#-ind;' 'entsf $loopnext;' 'entry -e-#-skip;' 'goto -e-#-loopstart;' 'entry -e-#-exit;' 'del -e-#-condvar;' 'del -e-#-ind;' 'del -e-#-elem;' >
 * 1) .<foreach

precode='goto -e-#-skiprange; entry -e-#-cond' postcode='goto -e-#-cond-ret; entry -e-#-skiprange' >  postcode= 'goto -e-#-noinit;' 'entry -e-#-init;' 'set -e-#-ind -out;' 'newsf;' 'par arr;' 'par -e-#-ind;' 'entsf $indexing-operator-num;' 'set -e-#-elem -out;' 'goto -e-#-init-ret;' 'entry -e-#-noinit;' 'gt -e-#-condv -e-#-condv -out;' > code
 * 1) . <range
 * 1) . <var