_t = __t1905;
_t = __t1908;
	public final void record_fields(AST _t) throws RecognitionException {				AST record_fields_AST_in = (_t == ASTNULL) ? null : (AST)_t;				if (_t==null) _t=ASTNULL;		switch ( _t.getType()) {		case FIELDS:		{			AST __t1895 = _t;			AST tmp2262_AST_in = (AST)_t;			match(_t,FIELDS);			_t = _t.getFirstChild();			{			if (_t==null) _t=ASTNULL;			switch ( _t.getType()) {			case LEFTPAREN:			{				AST tmp2263_AST_in = (AST)_t;				match(_t,LEFTPAREN);				_t = _t.getNextSibling();				{				_loop1900:				do {					if (_t==null) _t=ASTNULL;					if ((_t.getType()==Field_ref)) {						field(_t);						_t = _retTree;						{						if (_t==null) _t=ASTNULL;						switch ( _t.getType()) {						case WHEN:						{							AST __t1899 = _t;							AST tmp2264_AST_in = (AST)_t;							match(_t,WHEN);							_t = _t.getFirstChild();							expression(_t);							_t = _retTree;							_t = __t1899;							_t = _t.getNextSibling();							break;						}						case RIGHTPAREN:						case Field_ref:						{							break;						}						default:						{							throw new NoViableAltException(_t);						}						}						}					}					else {						break _loop1900;					}									} while (true);				}				AST tmp2265_AST_in = (AST)_t;				match(_t,RIGHTPAREN);				_t = _t.getNextSibling();				break;			}			case 3:			{				break;			}			default:			{				throw new NoViableAltException(_t);			}			}			}			_t = __t1895;			_t = _t.getNextSibling();			break;		}		case EXCEPT:		{			AST __t1901 = _t;			AST tmp2266_AST_in = (AST)_t;			match(_t,EXCEPT);			_t = _t.getFirstChild();			{			if (_t==null) _t=ASTNULL;			switch ( _t.getType()) {			case LEFTPAREN:			{				AST tmp2267_AST_in = (AST)_t;				match(_t,LEFTPAREN);				_t = _t.getNextSibling();				{				_loop1906:				do {					if (_t==null) _t=ASTNULL;					if ((_t.getType()==Field_ref)) {						field(_t);						_t = _retTree;						{						if (_t==null) _t=ASTNULL;						switch ( _t.getType()) {						case WHEN:						{							AST __t1905 = _t;							AST tmp2268_AST_in = (AST)_t;							match(_t,WHEN);							_t = _t.getFirstChild();							expression(_t);							_t = _retTree;							_t = __t1905;							_t = _t.getNextSibling();							break;						}						case RIGHTPAREN:						case Field_ref:						{							break;						}						default:						{							throw new NoViableAltException(_t);						}						}						}					}					else {						break _loop1906;					}									} while (true);				}				AST tmp2269_AST_in = (AST)_t;				match(_t,RIGHTPAREN);				_t = _t.getNextSibling();				break;			}			case 3:			{				break;			}			default:			{				throw new NoViableAltException(_t);			}			}			}			_t = __t1901;			_t = _t.getNextSibling();			break;		}		default:		{			throw new NoViableAltException(_t);		}		}		_retTree = _t;	}