home *** CD-ROM | disk | FTP | other *** search
- package com.netscape.javascript;
-
- import java.util.Hashtable;
- import java.util.Vector;
-
- public class VariableTable {
- protected Vector itsVariables = new Vector();
- protected Hashtable itsVariableNames = new Hashtable(11);
- protected int varStart;
-
- public void establishIndices() {
- for(int var1 = 0; var1 < this.itsVariables.size(); ++var1) {
- LocalVariable var2 = (LocalVariable)this.itsVariables.elementAt(var1);
- var2.setIndex(var1);
- }
-
- }
-
- public LocalVariable get(int var1) {
- return (LocalVariable)this.itsVariables.elementAt(var1);
- }
-
- public LocalVariable get(String var1) {
- Integer var2 = (Integer)this.itsVariableNames.get(var1);
- return var2 != null ? (LocalVariable)this.itsVariables.elementAt(var2) : null;
- }
-
- public void addParameter(String var1) {
- Integer var2 = (Integer)this.itsVariableNames.get(var1);
- if (var2 != null) {
- LocalVariable var3 = (LocalVariable)this.itsVariables.elementAt(var2);
- if (var3.isParameter()) {
- Object[] var4 = new Object[]{var1};
- String var5 = Context.getMessage("msg.dup.parms", var4);
- Context.reportWarning(var5, (String)null, 0, (String)null, 0);
- } else {
- this.itsVariables.removeElementAt(var2);
- }
- }
-
- int var6 = this.varStart++;
- LocalVariable var7 = this.createLocalVariable(var1, true);
- this.itsVariables.insertElementAt(var7, var6);
- this.itsVariableNames.put(var1, new Integer(var6));
- }
-
- public int size() {
- return this.itsVariables.size();
- }
-
- public int getParameterCount() {
- return this.varStart;
- }
-
- public String getName(int var1) {
- return ((LocalVariable)this.itsVariables.elementAt(var1)).getName();
- }
-
- public int getOrdinal(String var1) {
- Integer var2 = (Integer)this.itsVariableNames.get(var1);
- return var2 != null ? var2 : -1;
- }
-
- public void addLocal(String var1) {
- Integer var2 = (Integer)this.itsVariableNames.get(var1);
- if (var2 != null) {
- LocalVariable var3 = (LocalVariable)this.itsVariables.elementAt(var2);
- if (!var3.isParameter()) {
- return;
- }
- }
-
- int var5 = this.itsVariables.size();
- LocalVariable var4 = this.createLocalVariable(var1, false);
- this.itsVariables.addElement(var4);
- this.itsVariableNames.put(var1, new Integer(var5));
- }
-
- public LocalVariable createLocalVariable(String var1, boolean var2) {
- return new LocalVariable(var1, var2);
- }
- }
-