code: public void rebuild() {
  		Map<N, L> oldNodes = new IdentityHashMap<N, L>();
  		gatherAndRemoveChildren(oldNodes);
  		
  		L newNode = getAst().buildTree(get(), kind);
  		
  		getAst().setChanged();
  		
  		getAst().replaceNewWithExistingOld(oldNodes, newNode);
  	}
docs: Reparses the AST node represented by this node. Any existing nodes that occupy a different space in the AST are rehomed, any
  nodes that no longer exist are removed, and new nodes are created.
  
  Careful - the node you call this on must not itself have been removed or rehomed - it rebuilds <i>all children</i>.