{  skipWhitespace (); if (tryRead (')')) {  if (readBuffer != saved) handler.verror ("Illegal Group/PE nesting");  dataBufferAppend (")*"); tryRead ('*'); return; }   skipWhitespace (); while (!tryRead (")")) { require ('|'); dataBufferAppend ('|'); skipWhitespace (); dataBufferAppend (readNmtoken (true)); skipWhitespace (); }   if (readBuffer != saved) handler.verror ("Illegal Group/PE nesting");  require ('*'); dataBufferAppend (")*"); }
{  skipWhitespace(); if (tryRead(')')) {  if (readBuffer != saved) { handler.verror("Illegal Group/PE nesting"); }  dataBufferAppend(")*"); tryRead('*'); return; }   skipWhitespace(); while (!tryRead(")")) { require('|'); dataBufferAppend('|'); skipWhitespace(); dataBufferAppend(readNmtoken(true)); skipWhitespace(); }   if (readBuffer != saved) { handler.verror("Illegal Group/PE nesting"); }  require('*'); dataBufferAppend(")*"); }
    private void parseMixed (char saved [])    throws Exception    {	// Check for PCDATA alone.	skipWhitespace ();	if (tryRead (')')) {	    // VC: Proper Group/PE Nesting	    if (readBuffer != saved)		handler.verror ("Illegal Group/PE nesting");	    dataBufferAppend (")*");	    tryRead ('*');	    return;	}	// Parse mixed content.	skipWhitespace ();	while (!tryRead (")")) {	    require ('|');	    dataBufferAppend ('|');	    skipWhitespace ();	    dataBufferAppend (readNmtoken (true));	    skipWhitespace ();	}	// VC: Proper Group/PE Nesting	if (readBuffer != saved)	    handler.verror ("Illegal Group/PE nesting");	require ('*');	dataBufferAppend (")*");    }