AST __t655 = _t;
AST __t656 = _t;
	public final void destructorstate(AST _t) throws RecognitionException {				AST destructorstate_AST_in = (_t == ASTNULL) ? null : (AST)_t;		AST d = null;				AST __t655 = _t;		d = _t==ASTNULL ? null :(AST)_t;		match(_t,DESTRUCTOR);		_t = _t.getFirstChild();		if ( inputState.guessing==0 ) {			action.scopeAdd(d);		}		AST tmp1237_AST_in = (AST)_t;		match(_t,PUBLIC);		_t = _t.getNextSibling();		AST tmp1238_AST_in = (AST)_t;		match(_t,TYPE_NAME);		_t = _t.getNextSibling();		AST tmp1239_AST_in = (AST)_t;		match(_t,LEFTPAREN);		_t = _t.getNextSibling();		AST tmp1240_AST_in = (AST)_t;		match(_t,RIGHTPAREN);		_t = _t.getNextSibling();		block_colon(_t);		_t = _retTree;		code_block(_t);		_t = _retTree;		AST __t656 = _t;		AST tmp1241_AST_in = (AST)_t;		match(_t,END);		_t = _t.getFirstChild();		{		if (_t==null) _t=ASTNULL;		switch ( _t.getType()) {		case DESTRUCTOR:		{			AST tmp1242_AST_in = (AST)_t;			match(_t,DESTRUCTOR);			_t = _t.getNextSibling();			break;		}		case 3:		{			break;		}		default:		{			throw new NoViableAltException(_t);		}		}		}		_t = __t656;		_t = _t.getNextSibling();		state_end(_t);		_t = _retTree;		if ( inputState.guessing==0 ) {			action.scopeClose(d);		}		_t = __t655;		_t = _t.getNextSibling();		_retTree = _t;	}