public static void Parse(AAProgram ast, FinalTransformations finalTrans) { /* * Should be done in Pointers phase * foo == null > foo == "" || !DataTableExists(foo); * | foo == -1 || !inUse[foo] || GetIdentifier(foo) != foo->identifier * * * delete foo > delete foo; * foo = null; * * foo = null > foo = "" * | foo = -1 * * * This phase: * Add identifier to all structs and classes that are ever dynamically created * At any (*foo), analyze if foo can be null, and if so, create null check. * * Phase 1: Generate SafeVariablesData for all methods. * */ }
public OptimizePhase(FinalTransformations finalTrans, string prefix) { this.prefix = prefix; this.finalTrans = finalTrans; }