/// <summary> /// Fill permanent state information, which will be common across all tactics /// </summary> /// <param name="program">fresh Dafny program</param> private void FillStaticState(Program program) { Contract.Requires <ArgumentNullException>(program != null); foreach (var item in program.DefaultModuleDef.TopLevelDecls) { var curDecl = item as ClassDecl; if (curDecl != null) { var temp = new TopLevelClassDeclaration(curDecl.Name); foreach (var member in curDecl.Members) { var tac = member as ITactic; if (tac != null) { temp.Tactics.Add(tac.Name, tac); } else { temp.Members.Add(member.Name, member); } } _topLevelClasses.Add(temp); } else { var dd = item as DatatypeDecl; if (dd != null) { Datatypes.Add(dd.Name, dd); } } } }
/// <summary> /// Fill permanent state information, which will be common across all tactics /// </summary> /// <param name="program">fresh Dafny program</param> private void FillStaticState(Program program) { Contract.Requires<ArgumentNullException>(program != null); foreach (var item in program.DefaultModuleDef.TopLevelDecls) { var curDecl = item as ClassDecl; if (curDecl != null) { var temp = new TopLevelClassDeclaration(curDecl.Name); foreach (var member in curDecl.Members) { var tac = member as ITactic; if (tac != null) temp.Tactics.Add(tac.Name, tac); else { temp.Members.Add(member.Name, member); } } _topLevelClasses.Add(temp); } else { var dd = item as DatatypeDecl; if (dd != null) Datatypes.Add(dd.Name, dd); } } }
/// <summary> /// Set active the enclosing TopLevelClass /// </summary> /// <param name="name"></param> public void SetTopLevelClass(string name) { ActiveClass = _topLevelClasses.FirstOrDefault(x => x.Name == name); }
/// <summary> /// Set active the enclosing TopLevelClass /// </summary> /// <param name="name"></param> public void SetTopLevelClass(string name) { ActiveClass = _topLevelClasses.FirstOrDefault(x => x.Name == name); }