_t = __t676;
_t = __t680;
	public final void case_expression(AST _t) throws RecognitionException {				AST case_expression_AST_in = (_t == ASTNULL) ? null : (AST)_t;				boolean synPredMatched675 = false;		if (_t==null) _t=ASTNULL;		if (((_t.getType()==OR))) {			AST __t675 = _t;			synPredMatched675 = true;			inputState.guessing++;			try {				{				AST __t674 = _t;				AST tmp2099_AST_in = (AST)_t;				match(_t,OR);				_t = _t.getFirstChild();				AST tmp2100_AST_in = (AST)_t;				if ( _t==null ) throw new MismatchedTokenException();				_t = _t.getNextSibling();				_t = __t674;				_t = _t.getNextSibling();				}			}			catch (RecognitionException pe) {				synPredMatched675 = false;			}			_t = __t675;inputState.guessing--;		}		if ( synPredMatched675 ) {			AST __t676 = _t;			AST tmp2101_AST_in = (AST)_t;			match(_t,OR);			_t = _t.getFirstChild();			case_expression(_t);			_t = _retTree;			case_expression(_t);			_t = _retTree;			_t = __t676;			_t = _t.getNextSibling();		}		else if ((_t.getType()==WHEN)) {			AST __t677 = _t;			AST tmp2102_AST_in = (AST)_t;			match(_t,WHEN);			_t = _t.getFirstChild();			expression(_t);			_t = _retTree;			_t = __t677;			_t = _t.getNextSibling();		}		else if ((_tokenSet_3.member(_t.getType()))) {			expression(_t);			_t = _retTree;		}		else {			throw new NoViableAltException(_t);		}				_retTree = _t;	}