if ( synPredMatched322 ) {
if ( synPredMatched350 ) {
	protected final void mXML_PI(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {		int _ttype; Token _token=null; int _begin=text.length();		_ttype = XML_PI;		int _saveIndex;				_saveIndex=text.length();		mXML_PI_START(false);		text.setLength(_saveIndex);		mNCNAME(false);		match(' ');		{		int _cnt323=0;		_loop323:		do {			if ((_tokenSet_10.member(LA(1)))) {				{				match(_tokenSet_10);				}			}			else {				boolean synPredMatched322 = false;				if (((LA(1)=='?'))) {					int _m322 = mark();					synPredMatched322 = true;					inputState.guessing++;					try {						{						match('?');						{						match(_tokenSet_11);						}						}					}					catch (RecognitionException pe) {						synPredMatched322 = false;					}					rewind(_m322);					inputState.guessing--;				}				if ( synPredMatched322 ) {					match('?');				}				else {					if ( _cnt323>=1 ) { break _loop323; } else {throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());}				}				}				_cnt323++;			} while (true);			}			if ( _createToken && _token==null && _ttype!=Token.SKIP ) {				_token = makeToken(_ttype);				_token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));			}			_returnToken = _token;		}