Scope.java
上传用户:afrynkmhm
上传日期:2007-01-06
资源大小:1262k
文件大小:1k
源码类别:

编译器/解释器

开发平台:

Others

  1. package tinybasic;
  2. import java.util.*;
  3. public class Scope {
  4. protected Scope prev;
  5. protected Scope global;
  6. Hashtable symbolTable;
  7. protected Scope(Scope prev){
  8. this.prev=prev;
  9. symbolTable = new Hashtable();
  10. }
  11. public Scope cloneScope(Scope prev){
  12. Scope newScope = new Scope(prev);
  13. return newScope;
  14. }
  15. void insertVariable(String v,DTDataType t){
  16.     symbolTable.put(v.toLowerCase(),t);
  17. }
  18. public DTDataType  getVariable(String v){
  19. DTDataType t=(DTDataType)symbolTable.get(v.toLowerCase());
  20. return t;
  21. }
  22. public int getVariableDimension(String v){
  23.     DTDataType t=getVariable(v);
  24.     
  25.     if(t!=null){
  26. return t.getDimension();
  27.     } else {
  28. return 0;
  29.     }
  30. }
  31. public int getVariableType(String v){
  32.     DTDataType t=getVariable(v);
  33.     
  34.     if(t!=null){
  35. return t.getType();
  36.     } else {
  37. return 0;
  38.     }
  39. }
  40. public boolean isArrayVariable(String s){
  41.     return (getVariableDimension(s) > 0);
  42. }
  43. public Scope getPrev(){
  44. return prev;
  45. }
  46. }