public final HiveParser_IdentifiersParser.precedenceNotExpression_return precedenceNotExpression() throws RecognitionException {
		HiveParser_IdentifiersParser.precedenceNotExpression_return retval = new HiveParser_IdentifiersParser.precedenceNotExpression_return();
		retval.start = input.LT(1);

		CommonTree root_0 = null;

		ParserRuleReturnScope precedenceNotOperator211 =null;
		ParserRuleReturnScope precedenceEqualExpression212 =null;


		try {
			// IdentifiersParser.g:405:5: ( ( precedenceNotOperator ^)* precedenceEqualExpression )
			// IdentifiersParser.g:406:5: ( precedenceNotOperator ^)* precedenceEqualExpression
			{
			root_0 = (CommonTree)adaptor.nil();


			// IdentifiersParser.g:406:5: ( precedenceNotOperator ^)*
			loop47:
			while (true) {
				int alt47=2;
				int LA47_0 = input.LA(1);
				if ( (LA47_0==KW_NOT) ) {
					alt47=1;
				}

				switch (alt47) {
				case 1 :
					// IdentifiersParser.g:406:6: precedenceNotOperator ^
					{
					pushFollow(FOLLOW_precedenceNotOperator_in_precedenceNotExpression2718);
					precedenceNotOperator211=precedenceNotOperator();
					state._fsp--;
					if (state.failed) return retval;
					if ( state.backtracking==0 ) root_0 = (CommonTree)adaptor.becomeRoot(precedenceNotOperator211.getTree(), root_0);
					}
					break;

				default :
					break loop47;
				}
			}

			pushFollow(FOLLOW_precedenceEqualExpression_in_precedenceNotExpression2723);
			precedenceEqualExpression212=precedenceEqualExpression();
			state._fsp--;
			if (state.failed) return retval;
			if ( state.backtracking==0 ) adaptor.addChild(root_0, precedenceEqualExpression212.getTree());

			}

			retval.stop = input.LT(-1);

			if ( state.backtracking==0 ) {
			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
			}
		}

		catch (RecognitionException e) {
		  throw e;
		}

		finally {
			// do for sure before leaving
		}
		return retval;
	}