docs: public final void assignmentOperator() throws RecognitionException {
  		int assignmentOperator_StartIndex = input.index();
  
  		try {
  			if ( state.backtracking>0 && alreadyParsedRule(input, 109) ) { return; }
  
  			// src/main/resources/org/drools/compiler/semantics/java/parser/Java.g:1123:5: ( '=' | '+=' | '-=' | '*=' | '/=' | '&=' | '|=' | '^=' | '%=' | '<' '<' '=' | '>' '>' '=' | '>' '>' '>' '=' )
  			int alt141=12;
  			switch ( input.LA(1) ) {
  			case 54:
  				{
  				alt141=1;
  				}
  				break;
  			case 42:
  				{
  				alt141=2;
  				}
  				break;
  			case 46:
  				{
  				alt141=3;
  				}
  				break;
  			case 39:
  				{
  				alt141=4;
  				}
  				break;
  			case 50:
  				{
  				alt141=5;
  				}
  				break;
  			case 35:
  				{
  				alt141=6;
  				}
  				break;
  			case 123:
  				{
  				alt141=7;
  				}
  				break;
  			case 62:
  				{
  				alt141=8;
  				}
  				break;
  			case 32:
  				{
  				alt141=9;
  				}
  				break;
  			case 53:
  				{
  				alt141=10;
  				}
  				break;
  			case 56:
  				{
  				int LA141_11 = input.LA(2);
  				if ( (LA141_11==56) ) {
  					int LA141_12 = input.LA(3);
  					if ( (synpred212_Java()) ) {
  						alt141=11;
  					}
  					else if ( (true) ) {
  						alt141=12;
  					}
  
  				}
  
  				else {
  					if (state.backtracking>0) {state.failed=true; return;}
  					int nvaeMark = input.mark();
  					try {
  						input.consume();
  						NoViableAltException nvae =
  							new NoViableAltException("", 141, 11, input);
  						throw nvae;
  					} finally {
  						input.rewind(nvaeMark);
  					}
  				}
  
  				}
  				break;
  			default:
  				if (state.backtracking>0) {state.failed=true; return;}
  				NoViableAltException nvae =
  					new NoViableAltException("", 141, 0, input);
  				throw nvae;
  			}
  			switch (alt141) {
  				case 1 :
  					// src/main/resources/org/drools/compiler/semantics/java/parser/Java.g:1123:7: '='
  					{
  					match(input,54,FOLLOW_54_in_assignmentOperator4899); if (state.failed) return;
  					}
  					break;
  				case 2 :
  					// src/main/resources/org/drools/compiler/semantics/java/parser/Java.g:1124:9: '+='
  					{
  					match(input,42,FOLLOW_42_in_assignmentOperator4909); if (state.failed) return;
  					}
  					break;
  				case 3 :
  					// src/main/resources/org/drools/compiler/semantics/java/parser/Java.g:1125:9: '-='
  					{
  					match(input,46,FOLLOW_46_in_assignmentOperator4919); if (state.failed) return;
  					}
  					break;
  				case 4 :
  					// src/main/resources/org/drools/compiler/semantics/java/parser/Java.g:1126:9: '*='
  					{
  					match(input,39,FOLLOW_39_in_assignmentOperator4929); if (state.failed) return;
  					}
  					break;
  				case 5 :
  					// src/main/resources/org/drools/compiler/semantics/java/parser/Java.g:1127:9: '/='
  					{
  					match(input,50,FOLLOW_50_in_assignmentOperator4939); if (state.failed) return;
  					}
  					break;
  				case 6 :
  					// src/main/resources/org/drools/compiler/semantics/java/parser/Java.g:1128:9: '&='
  					{
  					match(input,35,FOLLOW_35_in_assignmentOperator4949); if (state.failed) return;
  					}
  					break;
  				case 7 :
  					// src/main/resources/org/drools/compiler/semantics/java/parser/Java.g:1129:9: '|='
  					{
  					match(input,123,FOLLOW_123_in_assignmentOperator4959); if (state.failed) return;
  					}
  					break;
  				case 8 :
  					// src/main/resources/org/drools/compiler/semantics/java/parser/Java.g:1130:9: '^='
  					{
  					match(input,62,FOLLOW_62_in_assignmentOperator4969); if (state.failed) return;
  					}
  					break;
  				case 9 :
  					// src/main/resources/org/drools/compiler/semantics/java/parser/Java.g:1131:9: '%='
  					{
  					match(input,32,FOLLOW_32_in_assignmentOperator4979); if (state.failed) return;
  					}
  					break;
  				case 10 :
  					// src/main/resources/org/drools/compiler/semantics/java/parser/Java.g:1132:9: '<' '<' '='
  					{
  					match(input,53,FOLLOW_53_in_assignmentOperator4989); if (state.failed) return;
  					match(input,53,FOLLOW_53_in_assignmentOperator4991); if (state.failed) return;
  					match(input,54,FOLLOW_54_in_assignmentOperator4993); if (state.failed) return;
  					}
  					break;
  				case 11 :
  					// src/main/resources/org/drools/compiler/semantics/java/parser/Java.g:1133:9: '>' '>' '='
  					{
  					match(input,56,FOLLOW_56_in_assignmentOperator5003); if (state.failed) return;
  					match(input,56,FOLLOW_56_in_assignmentOperator5005); if (state.failed) return;
  					match(input,54,FOLLOW_54_in_assignmentOperator5007); if (state.failed) return;
  					}
  					break;
  				case 12 :
  					// src/main/resources/org/drools/compiler/semantics/java/parser/Java.g:1134:9: '>' '>' '>' '='
  					{
  					match(input,56,FOLLOW_56_in_assignmentOperator5017); if (state.failed) return;
  					match(input,56,FOLLOW_56_in_assignmentOperator5019); if (state.failed) return;
  					match(input,56,FOLLOW_56_in_assignmentOperator5021); if (state.failed) return;
  					match(input,54,FOLLOW_54_in_assignmentOperator5023); if (state.failed) return;
  					}
  					break;
  
  			}
  		}
  		catch (RecognitionException re) {
  			reportError(re);
  			recover(input,re);
  		}
  		finally {
  			// do for sure before leaving
  			if ( state.backtracking>0 ) { memoize(input, 109, assignmentOperator_StartIndex); }
  
  		}
  	}