AST tmp2018_AST_in = (AST)_t;
AST tmp2017_AST_in = (AST)_t;
	public final void case_expression(AST _t) throws RecognitionException {				AST case_expression_AST_in = (_t == ASTNULL) ? null : (AST)_t;				boolean synPredMatched500 = false;		if (_t==null) _t=ASTNULL;		if (((_t.getType()==OR))) {			AST __t500 = _t;			synPredMatched500 = true;			inputState.guessing++;			try {				{				AST __t499 = _t;				AST tmp2016_AST_in = (AST)_t;				match(_t,OR);				_t = _t.getFirstChild();				AST tmp2017_AST_in = (AST)_t;				if ( _t==null ) throw new MismatchedTokenException();				_t = _t.getNextSibling();				_t = __t499;				_t = _t.getNextSibling();				}			}			catch (RecognitionException pe) {				synPredMatched500 = false;			}			_t = __t500;inputState.guessing--;		}		if ( synPredMatched500 ) {			AST __t501 = _t;			AST tmp2018_AST_in = (AST)_t;			match(_t,OR);			_t = _t.getFirstChild();			case_expression(_t);			_t = _retTree;			case_expression(_t);			_t = _retTree;			_t = __t501;			_t = _t.getNextSibling();		}		else if ((_t.getType()==WHEN)) {			AST __t502 = _t;			AST tmp2019_AST_in = (AST)_t;			match(_t,WHEN);			_t = _t.getFirstChild();			expression(_t);			_t = _retTree;			_t = __t502;			_t = _t.getNextSibling();		}		else if ((_tokenSet_4.member(_t.getType()))) {			expression(_t);			_t = _retTree;		}		else {			throw new NoViableAltException(_t);		}				_retTree = _t;	}