docs: public final void retractStatement() throws RecognitionException {
  		int retractStatement_StartIndex = input.index();
  
  		Token s=null;
  		Token c=null;
  		ParserRuleReturnScope expression9 =null;
  
  		try {
  			if ( state.backtracking>0 && alreadyParsedRule(input, 91) ) { return; }
  
  			// src/main/resources/org/drools/compiler/semantics/java/parser/Java.g:951:5: (s= 'retract' '(' expression c= ')' )
  			// src/main/resources/org/drools/compiler/semantics/java/parser/Java.g:951:7: s= 'retract' '(' expression c= ')'
  			{
  			s=(Token)match(input,103,FOLLOW_103_in_retractStatement4097); if (state.failed) return;
  			match(input,36,FOLLOW_36_in_retractStatement4099); if (state.failed) return;
  			pushFollow(FOLLOW_expression_in_retractStatement4105);
  			expression9=expression();
  			state._fsp--;
  			if (state.failed) return;
  			c=(Token)match(input,37,FOLLOW_37_in_retractStatement4115); if (state.failed) return;
  			if ( state.backtracking==0 ) {	
  			        JavaStatementBlockDescr d = new JavaStatementBlockDescr( (expression9!=null?input.toString(expression9.start,expression9.stop):null), JavaBlockDescr.BlockType.DELETE );
  			        d.setStart( ((CommonToken)s).getStartIndex() );
  			        this.addBlockDescr( d );
  			        d.setEnd( ((CommonToken)c).getStopIndex() );
  			    }
  			}
  
  		}
  		catch (RecognitionException re) {
  			reportError(re);
  			recover(input,re);
  		}
  		finally {
  			// do for sure before leaving
  			if ( state.backtracking>0 ) { memoize(input, 91, retractStatement_StartIndex); }
  
  		}
  	}