public void initialize(String string) {
		dehighlight();
		ArrayList nodes = new ArrayList();
		tree = parseTree(string, pane.grammar, pane.table, nodes);
		pane.treeDrawer.setModel(tree);
		pane.treeDrawer.hideAll();
		pane.treePanel.repaint();
		pane.stepAction.setEnabled(true);
		pane.derivationModel.setRowCount(0);
		// Initialize those global structures! :)
		NODES = (TreeNode[]) nodes.toArray(new TreeNode[0]);
		STRING = string + "$";
		STACK = new Stack();
		P = 0;
		NODECOUNT = 0;
		stepMode = INITIALIZE;
		updateStatus();
		pane.statusDisplay.setText("Press step to begin.");
	}