if (table != null && (flags | F_LOOPHEAD) != 0)
if (table != null && (flags & F_LOOPHEAD) != 0)
	private void patchNext (Recognizer theNext, Hashtable table)	{	    // backpointers must not be repatched or followed	    if ((flags & F_LOOPNEXT) != 0)		return;	    // XXX this table "shouldn't" be needed, right?	    // but some choice nodes looped if it isn't there.	    if (table != null && table.get (this) != null)		return;	    if (table == null)		table = new Hashtable ();	    // NAME/SEQUENCE	    if (name != null) {		if (next == null)		    next = theNext;		else if (next instanceof ChildrenRecognizer) {		    ((ChildrenRecognizer)next).patchNext (theNext, table);		} else if (!(next instanceof EmptyRecognizer))		    throw new RuntimeException ("patchNext");		return;	    }	    // CHOICE	    for (int i = 0; i < components.length; i++) {		if (components [i] == null)		    components [i] = theNext;		else if (components [i] instanceof ChildrenRecognizer) {		    ((ChildrenRecognizer)components [i])			    .patchNext (theNext, table);		} else if (!(components [i] instanceof EmptyRecognizer))		    throw new RuntimeException ("patchNext");	    }	    if (table != null && (flags | F_LOOPHEAD) != 0)		table.put (this, this);	}