gecko-dev/js/js2/java/ControlNode.java
1999-06-11 00:21:26 +00:00

68 lines
1.4 KiB
Java

import java.util.Vector;
class ControlNode {
private static Vector gList = new Vector();
static String printAll()
{
StringBuffer result = new StringBuffer();
for (int i = 0; i < gList.size(); i++) {
result.append(((ControlNode)(gList.elementAt(i))).print());
}
return result.toString();
}
ControlNode(ExpressionNode anExpr)
{
expr = anExpr;
index = gList.size();
gList.addElement(this);
}
ExpressionNode getExpression()
{
return expr;
}
void setNext(ControlNode aNext)
{
next = aNext;
}
ControlNode eval(Environment theEnv)
{
if (expr != null) theEnv.resultValue = expr.eval(theEnv);
return next;
}
String print()
{
StringBuffer result = new StringBuffer(getClass().toString().substring(6));
result.append(" #");
result.append(index);
result.append("\nexpr: \n");
if (expr == null)
result.append("expr = null\n");
else
result.append(expr.print(""));
result.append("next: ");
if (next == null)
result.append("next = null\n");
else
result.append("next->" + next.index + "\n");
return result.toString();
}
protected ExpressionNode expr;
protected ControlNode next;
protected int index;
}