Пример #1
0
        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);
        }
Пример #2
0
 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);
     }
 }