- kvůli tomu, že nejsou deklarace funkcí, tak při jejím zavolání nevíme datový typ návratové hodnoty
(a ani jestli vůbec něco vrací). Takže:- implicitně
undefinedDataType
datový typ, bude potřeba kontrola po naparsování celého programu - možná použít
nil
do té proměnné, i když funkce nic nevrací? - generování DEFVAR bude probíhat na začátku generování jdnoho arraye, při čemž se bude hlídat jedinečnost identifikátoru (aby nenastala redefinice) TODO!!
- implicitně
- při vnitřní tříadresné instrukci jsou argumenty vždy
arg1
aarg2
, kam se má uložit výsledek je pak vdest
- volaná funkce dostane parametry a už definovanou proměnnou na return hodnotu s nastavenou hodnotou nil@nil v TF, sama pak bude pushovat frame jenom když bude volat nějakou další funkci.
- takže volající vytvoří TF, nastaví argumenty a return, zavolá funkci.
- volaná si pracuje v tomto TF, ale když bude volat nějakou funkci, tak ho pushne, a udělá viz bod výše -v
- Nebude stačit procházet jednou.
- datové typy při interním generování nejsme schopní všechny znát