MuStackEnv.java 1.25 KB
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
package jcircus.complementaryenvs;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Stack;
import java.util.Vector;

import jcircus.environment.NameTypeEnv;
public class MuStackEnv {
private HashMap <String, Stack <NameTypeEnv>> map;
public MuStackEnv () {
this.map = new LinkedHashMap <String, Stack <NameTypeEnv>> ();
}
private Vector <String> keys () {
Vector <String> keys = new Vector <String> ();
Object [] objkeys = this.map.keySet().toArray();
for (int i = 0; i < objkeys.length; i++) {
keys.addElement((String) objkeys [i]);
}
return keys;
}
public void push (String muname, NameTypeEnv nte) {
if (map.containsKey(muname)) {
this.map.get(muname).push(nte);
}
else {
Stack <NameTypeEnv> stack = new Stack <NameTypeEnv> ();
stack.push(nte);
this.map.put(muname, stack);
}
if (muname.equals("XActivateZone")) {
System.out.print ("");
}
}
public void pop (String muname) {
if (map.containsKey(muname)) {
this.map.get(muname).pop();
}
if (muname.equals("XActivateZone")) {
System.out.print ("");
}
}
public NameTypeEnv getCurrentNameTypeEnv (String muname) {
if (this.map.get(muname).size() == 0) {
System.out.print ("");
}
return this.map.get(muname).lastElement();
}
}