_t = __t526;
_t = __t530;
	public final void classstate(AST _t) throws RecognitionException {				AST classstate_AST_in = (_t == ASTNULL) ? null : (AST)_t;				AST __t518 = _t;		AST tmp317_AST_in = (AST)_t;		match(_t,CLASS);		_t = _t.getFirstChild();		AST tmp318_AST_in = (AST)_t;		match(_t,TYPE_NAME);		_t = _t.getNextSibling();		{		if (_t==null) _t=ASTNULL;		switch ( _t.getType()) {		case INHERITS:		{			AST __t520 = _t;			AST tmp319_AST_in = (AST)_t;			match(_t,INHERITS);			_t = _t.getFirstChild();			AST tmp320_AST_in = (AST)_t;			match(_t,TYPE_NAME);			_t = _t.getNextSibling();			_t = __t520;			_t = _t.getNextSibling();			break;		}		case PERIOD:		case LEXCOLON:		case FINAL:		case IMPLEMENTS:		{			break;		}		default:		{			throw new NoViableAltException(_t);		}		}		}		{		if (_t==null) _t=ASTNULL;		switch ( _t.getType()) {		case IMPLEMENTS:		{			AST __t522 = _t;			AST tmp321_AST_in = (AST)_t;			match(_t,IMPLEMENTS);			_t = _t.getFirstChild();			AST tmp322_AST_in = (AST)_t;			match(_t,TYPE_NAME);			_t = _t.getNextSibling();			{			_loop524:			do {				if (_t==null) _t=ASTNULL;				if ((_t.getType()==COMMA)) {					AST tmp323_AST_in = (AST)_t;					match(_t,COMMA);					_t = _t.getNextSibling();					AST tmp324_AST_in = (AST)_t;					match(_t,TYPE_NAME);					_t = _t.getNextSibling();				}				else {					break _loop524;				}							} while (true);			}			_t = __t522;			_t = _t.getNextSibling();			break;		}		case PERIOD:		case LEXCOLON:		case FINAL:		{			break;		}		default:		{			throw new NoViableAltException(_t);		}		}		}		{		if (_t==null) _t=ASTNULL;		switch ( _t.getType()) {		case FINAL:		{			AST tmp325_AST_in = (AST)_t;			match(_t,FINAL);			_t = _t.getNextSibling();			break;		}		case PERIOD:		case LEXCOLON:		{			break;		}		default:		{			throw new NoViableAltException(_t);		}		}		}		block_colon(_t);		_t = _retTree;		code_block(_t);		_t = _retTree;		AST __t526 = _t;		AST tmp326_AST_in = (AST)_t;		match(_t,END);		_t = _t.getFirstChild();		{		if (_t==null) _t=ASTNULL;		switch ( _t.getType()) {		case CLASS:		{			AST tmp327_AST_in = (AST)_t;			match(_t,CLASS);			_t = _t.getNextSibling();			break;		}		case 3:		{			break;		}		default:		{			throw new NoViableAltException(_t);		}		}		}		_t = __t526;		_t = _t.getNextSibling();		state_end(_t);		_t = _retTree;		_t = __t518;		_t = _t.getNextSibling();		_retTree = _t;	}