public ArmadaSymbolTable(Program i_prog, ArmadaStructs i_structs) { prog = i_prog; globalVariables = new ArmadaGlobalVariableSymbolTable(); localVariables = new ArmadaMethodLocalVariableSymbolTable(); defaultClass = null; if (i_structs == null) { structs = new ArmadaStructs(null); } else { structs = i_structs; } threadRoutines = new HashSet <string> { "main" }; functionNames = new List <string> { }; nextRoutines = new List <NextRoutine>(); nextRoutineConstructors = new List <NextRoutineConstructor>(); allMethodsInfo = new AllMethodsInfo(prog); tauNextRoutineConstructor = null; methodAndLabelToPCMap = new Dictionary <string, ArmadaPC>(); pcToLabelMap = new Dictionary <ArmadaPC, string>(); globalInvariants = new Dictionary <string, GlobalInvariantInfo>(); yieldPredicates = new Dictionary <string, YieldPredicateInfo>(); universalStepConstraints = new Dictionary <string, UniversalStepConstraintInfo>(); }
public void AddNextRoutineConstructor(NextRoutineConstructor nrc) { nextRoutineConstructors.Add(nrc); }