AST __t445 = _t;
AST __t449 = _t;
	public final void buffercomparestate(AST _t) throws RecognitionException {				AST buffercomparestate_AST_in = (_t == ASTNULL) ? null : (AST)_t;				AST __t443 = _t;		AST tmp268_AST_in = (AST)_t;		match(_t,BUFFERCOMPARE);		_t = _t.getFirstChild();		AST tmp269_AST_in = (AST)_t;		match(_t,RECORD_NAME);		_t = _t.getNextSibling();		{		if (_t==null) _t=ASTNULL;		switch ( _t.getType()) {		case EXCEPT:		{			AST __t445 = _t;			AST tmp270_AST_in = (AST)_t;			match(_t,EXCEPT);			_t = _t.getFirstChild();			{			_loop447:			do {				if (_t==null) _t=ASTNULL;				if ((_t.getType()==Field_ref)) {					field(_t);					_t = _retTree;				}				else {					break _loop447;				}							} while (true);			}			_t = __t445;			_t = _t.getNextSibling();			break;		}		case USING:		{			AST __t448 = _t;			AST tmp271_AST_in = (AST)_t;			match(_t,USING);			_t = _t.getFirstChild();			{			int _cnt450=0;			_loop450:			do {				if (_t==null) _t=ASTNULL;				if ((_t.getType()==Field_ref)) {					field(_t);					_t = _retTree;				}				else {					if ( _cnt450>=1 ) { break _loop450; } else {throw new NoViableAltException(_t);}				}								_cnt450++;			} while (true);			}			_t = __t448;			_t = _t.getNextSibling();			break;		}		case TO:		{			break;		}		default:		{			throw new NoViableAltException(_t);		}		}		}		AST tmp272_AST_in = (AST)_t;		match(_t,TO);		_t = _t.getNextSibling();		AST tmp273_AST_in = (AST)_t;		match(_t,RECORD_NAME);		_t = _t.getNextSibling();		{		if (_t==null) _t=ASTNULL;		switch ( _t.getType()) {		case CASESENSITIVE:		{			AST tmp274_AST_in = (AST)_t;			match(_t,CASESENSITIVE);			_t = _t.getNextSibling();			break;		}		case BINARY:		{			AST tmp275_AST_in = (AST)_t;			match(_t,BINARY);			_t = _t.getNextSibling();			break;		}		case EOF:		case PERIOD:		case COMPARES:		case EXPLICIT:		case NOERROR_KW:		case SAVE:		case NOLOBS:		{			break;		}		default:		{			throw new NoViableAltException(_t);		}		}		}		{		if (_t==null) _t=ASTNULL;		switch ( _t.getType()) {		case SAVE:		{			AST __t453 = _t;			AST tmp276_AST_in = (AST)_t;			match(_t,SAVE);			_t = _t.getFirstChild();			{			if (_t==null) _t=ASTNULL;			switch ( _t.getType()) {			case RESULT:			{				AST __t455 = _t;				AST tmp277_AST_in = (AST)_t;				match(_t,RESULT);				_t = _t.getFirstChild();				AST tmp278_AST_in = (AST)_t;				match(_t,IN_KW);				_t = _t.getNextSibling();				_t = __t455;				_t = _t.getNextSibling();				break;			}			case Field_ref:			{				break;			}			default:			{				throw new NoViableAltException(_t);			}			}			}			field(_t);			_t = _retTree;			_t = __t453;			_t = _t.getNextSibling();			break;		}		case EOF:		case PERIOD:		case COMPARES:		case EXPLICIT:		case NOERROR_KW:		case NOLOBS:		{			break;		}		default:		{			throw new NoViableAltException(_t);		}		}		}		{		if (_t==null) _t=ASTNULL;		switch ( _t.getType()) {		case EXPLICIT:		{			AST tmp279_AST_in = (AST)_t;			match(_t,EXPLICIT);			_t = _t.getNextSibling();			break;		}		case EOF:		case PERIOD:		case COMPARES:		case NOERROR_KW:		case NOLOBS:		{			break;		}		default:		{			throw new NoViableAltException(_t);		}		}		}		{		if (_t==null) _t=ASTNULL;		switch ( _t.getType()) {		case COMPARES:		{			AST tmp280_AST_in = (AST)_t;			match(_t,COMPARES);			_t = _t.getNextSibling();			{			if (_t==null) _t=ASTNULL;			switch ( _t.getType()) {			case NOERROR_KW:			{				AST tmp281_AST_in = (AST)_t;				match(_t,NOERROR_KW);				_t = _t.getNextSibling();				break;			}			case PERIOD:			case LEXCOLON:			{				break;			}			default:			{				throw new NoViableAltException(_t);			}			}			}			block_colon(_t);			_t = _retTree;			AST __t459 = _t;			AST tmp282_AST_in = (AST)_t;			match(_t,Code_block);			_t = _t.getFirstChild();			{			_loop462:			do {				if (_t==null) _t=ASTNULL;				if ((_t.getType()==WHEN)) {					AST __t461 = _t;					AST tmp283_AST_in = (AST)_t;					match(_t,WHEN);					_t = _t.getFirstChild();					expression(_t);					_t = _retTree;					AST tmp284_AST_in = (AST)_t;					match(_t,THEN);					_t = _t.getNextSibling();					blockorstate(_t);					_t = _retTree;					_t = __t461;					_t = _t.getNextSibling();				}				else {					break _loop462;				}							} while (true);			}			_t = __t459;			_t = _t.getNextSibling();			AST __t463 = _t;			AST tmp285_AST_in = (AST)_t;			match(_t,END);			_t = _t.getFirstChild();			{			if (_t==null) _t=ASTNULL;			switch ( _t.getType()) {			case COMPARES:			{				AST tmp286_AST_in = (AST)_t;				match(_t,COMPARES);				_t = _t.getNextSibling();				break;			}			case 3:			{				break;			}			default:			{				throw new NoViableAltException(_t);			}			}			}			_t = __t463;			_t = _t.getNextSibling();			break;		}		case EOF:		case PERIOD:		case NOERROR_KW:		case NOLOBS:		{			break;		}		default:		{			throw new NoViableAltException(_t);		}		}		}		{		if (_t==null) _t=ASTNULL;		switch ( _t.getType()) {		case NOLOBS:		{			AST tmp287_AST_in = (AST)_t;			match(_t,NOLOBS);			_t = _t.getNextSibling();			break;		}		case EOF:		case PERIOD:		case NOERROR_KW:		{			break;		}		default:		{			throw new NoViableAltException(_t);		}		}		}		{		if (_t==null) _t=ASTNULL;		switch ( _t.getType()) {		case NOERROR_KW:		{			AST tmp288_AST_in = (AST)_t;			match(_t,NOERROR_KW);			_t = _t.getNextSibling();			break;		}		case EOF:		case PERIOD:		{			break;		}		default:		{			throw new NoViableAltException(_t);		}		}		}		state_end(_t);		_t = _retTree;		_t = __t443;		_t = _t.getNextSibling();		_retTree = _t;	}