public SemanticEnvironment() { LoopsLabels = new Stack <WhileStat.Labels>(); _returnTypes = new Stack <SymbolType>(); _snapshots = new Stack <EnvironmentSnapshot>(); var environmentSnapshot = new EnvironmentSnapshot(); environmentSnapshot.PushSymbol(new Printf()); _snapshots.Push(environmentSnapshot); }
public void PushSnapshot(EnvironmentSnapshot snapshot) { PushSnapshot(); foreach (var pair in snapshot.SymbolTable.GetData()) { _snapshots.Peek().PushSymbol(pair.Value); } foreach (var pair in snapshot.StructTable.GetData()) { _snapshots.Peek().PushStructType(pair.Value); } }