Exemplo n.º 1
0
            public override void CaseAVoidReturnStm(AVoidReturnStm node)
            {
                ABooleanConstExp trueBool = new ABooleanConstExp(new ATrueBool());
                AValueReturnStm  replacer = new AValueReturnStm(node.GetToken(), trueBool);

                node.ReplaceBy(replacer);
                data.ExpTypes[trueBool] = new ANamedType(new TIdentifier("bool"), null);
            }
            public override void CaseAVoidReturnStm(AVoidReturnStm node)
            {
                ALocalLvalue paramRef    = new ALocalLvalue(new TIdentifier("paramRef"));
                ALvalueExp   paramRefExp = new ALvalueExp(paramRef);

                node.ReplaceBy(new AValueReturnStm(node.GetToken(), paramRefExp));
                data.LocalLinks[paramRef]  = param;
                data.LvalueTypes[paramRef] = data.ExpTypes[paramRefExp] = param.GetType();
            }