35 lines
731 B
Java
35 lines
731 B
Java
public class Interpreter {
|
|
|
|
|
|
void executeScript(Node node)
|
|
{
|
|
Node child = node.getFirstChild();
|
|
while (child != null) {
|
|
if (child.getType() != TokenStream.FUNCTION)
|
|
executeCode(child);
|
|
child = child.getNextSibling();
|
|
}
|
|
}
|
|
|
|
void executeCode(Node top)
|
|
{
|
|
PostorderNodeIterator ni = new PostorderNodeIterator(top);
|
|
|
|
JSStack theStack = new JSStack();
|
|
|
|
Node n = ni.nextNode();
|
|
while (n != null) {
|
|
ni = n.execute(theStack, ni);
|
|
n = ni.nextNode();
|
|
}
|
|
|
|
while (!theStack.isEmpty()) {
|
|
System.out.println("Stack Slot contains " + theStack.pop());
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
} |