@Override
 protected void fireRemoveUpdate(DocumentEvent e) {
   parse();
   super.fireRemoveUpdate(e);
 }
 /** Perform a redo action, if possible. */
 public void doRedo() {
   if (undo.canRedo()) {
     undo.redo();
     parse();
   }
 }
 @Override
 protected void fireChangedUpdate(DocumentEvent e) {
   parse();
   super.fireChangedUpdate(e);
 }
 /** Perform an undo action, if possible */
 public void doUndo() {
   if (undo.canUndo()) {
     undo.undo();
     parse();
   }
 }