docs: public final BaseDescr parExpression() throws RecognitionException {
  		BaseDescr result = null;
  
  
  		ParserRuleReturnScope expr =null;
  
  		try {
  			// src/main/resources/org/drools/compiler/lang/DRL5Expressions.g:578:5: ( LEFT_PAREN expr= expression RIGHT_PAREN )
  			// src/main/resources/org/drools/compiler/lang/DRL5Expressions.g:578:7: LEFT_PAREN expr= expression RIGHT_PAREN
  			{
  			match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_parExpression3200); if (state.failed) return result;
  			pushFollow(FOLLOW_expression_in_parExpression3204);
  			expr=expression();
  			state._fsp--;
  			if (state.failed) return result;
  			match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_parExpression3206); if (state.failed) return result;
  			if ( state.backtracking==0 ) {  if( buildDescr  ) {
  			               result = (expr!=null?((DRL5Expressions.expression_return)expr).result:null);
  			               if( result instanceof AtomicExprDescr ) {
  			                   ((AtomicExprDescr)result).setExpression("(" +((AtomicExprDescr)result).getExpression() + ")" );
  			               }
  			           }
  			        }
  			}
  
  		}
  
  		catch (RecognitionException re) {
  		    throw re;
  		}
  
  		finally {
  			// do for sure before leaving
  		}
  		return result;
  	}