public TreePrg CanonPrg(TreePrg prg)
        {
            List <TreeFunction> canonizedFunctions = new List <TreeFunction>();

            foreach (var tfunction in prg)
            {
                canonizedFunctions.Add(CanonFunction(tfunction));
            }
            return(new TreePrg(canonizedFunctions));
        }
        public IMachinePrg CodeGen(TreePrg frag)
        {
            List <I386Function> translatedFunctions = new List <I386Function>();

            foreach (var treef in frag.Functions)
            {
                translatedFunctions.Add(TranslateFunction(treef));
            }

            return(new I386Prg(translatedFunctions));
        }