public override void CaseAArrayResizeExp(AArrayResizeExp node) { InAArrayResizeExp(node); if (node.GetArg() != null) { node.GetArg().Apply(this); } if (node.GetBase() != null) { node.GetBase().Apply(this); } if (node.GetToken() != null) { node.GetToken().Apply(this); } OutAArrayResizeExp(node); }
public override void CaseAArrayResizeExp(AArrayResizeExp node) { PType baseType = ((ADynamicArrayType)data.ExpTypes[node.GetBase()]).GetType(); node.GetBase().Apply(this); AMethodDecl method = CreateResizeArrayMethod(node, baseType, data); ASimpleInvokeExp invoke = new ASimpleInvokeExp(new TIdentifier(method.GetName().Text), new ArrayList(){node.GetArg(), nameExp}); node.ReplaceBy(invoke); data.ExpTypes[invoke] = new AVoidType(new TVoid("void")); data.SimpleMethodLinks[invoke] = method; nameExp = null; hadPointer = false; invoke.Apply(this); }