AST tmp1822_AST_in = (AST)_t;
AST tmp1821_AST_in = (AST)_t;
	public final void casestate(AST _t) throws RecognitionException {				AST casestate_AST_in = (_t == ASTNULL) ? null : (AST)_t;				AST __t1669 = _t;		AST tmp1815_AST_in = (AST)_t;		match(_t,CASE);		_t = _t.getFirstChild();		expression(_t);		_t = _retTree;		block_colon(_t);		_t = _retTree;		AST __t1670 = _t;		AST tmp1816_AST_in = (AST)_t;		match(_t,Code_block);		_t = _t.getFirstChild();		{		_loop1673:		do {			if (_t==null) _t=ASTNULL;			if ((_t.getType()==WHEN)) {				AST __t1672 = _t;				AST tmp1817_AST_in = (AST)_t;				match(_t,WHEN);				_t = _t.getFirstChild();				case_expression(_t);				_t = _retTree;				AST tmp1818_AST_in = (AST)_t;				match(_t,THEN);				_t = _t.getNextSibling();				blockorstate(_t);				_t = _retTree;				_t = __t1672;				_t = _t.getNextSibling();			}			else {				break _loop1673;			}					} while (true);		}		_t = __t1670;		_t = _t.getNextSibling();		{		if (_t==null) _t=ASTNULL;		switch ( _t.getType()) {		case OTHERWISE:		{			AST __t1675 = _t;			AST tmp1819_AST_in = (AST)_t;			match(_t,OTHERWISE);			_t = _t.getFirstChild();			blockorstate(_t);			_t = _retTree;			_t = __t1675;			_t = _t.getNextSibling();			break;		}		case EOF:		case END:		{			break;		}		default:		{			throw new NoViableAltException(_t);		}		}		}		{		if (_t==null) _t=ASTNULL;		switch ( _t.getType()) {		case EOF:		{			AST tmp1820_AST_in = (AST)_t;			match(_t,Token.EOF_TYPE);			_t = _t.getNextSibling();			break;		}		case END:		{			AST __t1677 = _t;			AST tmp1821_AST_in = (AST)_t;			match(_t,END);			_t = _t.getFirstChild();			{			if (_t==null) _t=ASTNULL;			switch ( _t.getType()) {			case CASE:			{				AST tmp1822_AST_in = (AST)_t;				match(_t,CASE);				_t = _t.getNextSibling();				break;			}			case 3:			{				break;			}			default:			{				throw new NoViableAltException(_t);			}			}			}			_t = __t1677;			_t = _t.getNextSibling();			state_end(_t);			_t = _retTree;			break;		}		default:		{			throw new NoViableAltException(_t);		}		}		}		_t = __t1669;		_t = _t.getNextSibling();		_retTree = _t;	}