_t = __t509;
_t = __t513;
	public final void choosestate(AST _t) throws RecognitionException {				AST choosestate_AST_in = (_t == ASTNULL) ? null : (AST)_t;				AST __t504 = _t;		AST tmp307_AST_in = (AST)_t;		match(_t,CHOOSE);		_t = _t.getFirstChild();		{		if (_t==null) _t=ASTNULL;		switch ( _t.getType()) {		case ROW:		{			AST tmp308_AST_in = (AST)_t;			match(_t,ROW);			_t = _t.getNextSibling();			break;		}		case FIELD:		{			AST tmp309_AST_in = (AST)_t;			match(_t,FIELD);			_t = _t.getNextSibling();			break;		}		default:		{			throw new NoViableAltException(_t);		}		}		}		{		int _cnt510=0;		_loop510:		do {			if (_t==null) _t=ASTNULL;			if ((_t.getType()==Form_item)) {				AST __t507 = _t;				AST tmp310_AST_in = (AST)_t;				match(_t,Form_item);				_t = _t.getFirstChild();				field(_t);				_t = _retTree;				{				if (_t==null) _t=ASTNULL;				switch ( _t.getType()) {				case HELP:				{					AST __t509 = _t;					AST tmp311_AST_in = (AST)_t;					match(_t,HELP);					_t = _t.getFirstChild();					constant(_t);					_t = _retTree;					_t = __t509;					_t = _t.getNextSibling();					break;				}				case 3:				{					break;				}				default:				{					throw new NoViableAltException(_t);				}				}				}				_t = __t507;				_t = _t.getNextSibling();			}			else {				if ( _cnt510>=1 ) { break _loop510; } else {throw new NoViableAltException(_t);}			}						_cnt510++;		} while (true);		}		{		_loop515:		do {			if (_t==null) _t=ASTNULL;			switch ( _t.getType()) {			case AUTORETURN:			{				AST tmp312_AST_in = (AST)_t;				match(_t,AUTORETURN);				_t = _t.getNextSibling();				break;			}			case COLOR:			{				AST __t512 = _t;				AST tmp313_AST_in = (AST)_t;				match(_t,COLOR);				_t = _t.getFirstChild();				anyorvalue(_t);				_t = _retTree;				_t = __t512;				_t = _t.getNextSibling();				break;			}			case GOON:			{				goonphrase(_t);				_t = _retTree;				break;			}			case KEYS:			{				AST __t513 = _t;				AST tmp314_AST_in = (AST)_t;				match(_t,KEYS);				_t = _t.getFirstChild();				field(_t);				_t = _retTree;				_t = __t513;				_t = _t.getNextSibling();				break;			}			case NOERROR_KW:			{				AST tmp315_AST_in = (AST)_t;				match(_t,NOERROR_KW);				_t = _t.getNextSibling();				break;			}			case PAUSE:			{				AST __t514 = _t;				AST tmp316_AST_in = (AST)_t;				match(_t,PAUSE);				_t = _t.getFirstChild();				expression(_t);				_t = _retTree;				_t = __t514;				_t = _t.getNextSibling();				break;			}			default:			{				break _loop515;			}			}		} while (true);		}		{		if (_t==null) _t=ASTNULL;		switch ( _t.getType()) {		case WITH:		{			framephrase(_t);			_t = _retTree;			break;		}		case EOF:		case PERIOD:		{			break;		}		default:		{			throw new NoViableAltException(_t);		}		}		}		state_end(_t);		_t = _retTree;		_t = __t504;		_t = _t.getNextSibling();		_retTree = _t;	}