def notOp()

in src/google/appengine/api/search/QueryParser.py [0:0]


    def notOp(self, ):

        retval = self.notOp_return()
        retval.start = self.input.LT(1)

        root_0 = None

        char_literal44 = None
        NOT45 = None
        WS46 = None

        char_literal44_tree = None
        NOT45_tree = None
        WS46_tree = None

        try:
            try:

                alt27 = 2
                LA27_0 = self.input.LA(1)

                if (LA27_0 == MINUS) :
                    alt27 = 1
                elif (LA27_0 == NOT) :
                    alt27 = 2
                else:
                    nvae = NoViableAltException("", 27, 0, self.input)

                    raise nvae

                if alt27 == 1:

                    pass
                    root_0 = self._adaptor.nil()

                    char_literal44=self.match(self.input, MINUS, self.FOLLOW_MINUS_in_notOp766)

                    char_literal44_tree = self._adaptor.createWithPayload(char_literal44)
                    self._adaptor.addChild(root_0, char_literal44_tree)



                elif alt27 == 2:

                    pass
                    root_0 = self._adaptor.nil()

                    NOT45=self.match(self.input, NOT, self.FOLLOW_NOT_in_notOp772)

                    NOT45_tree = self._adaptor.createWithPayload(NOT45)
                    self._adaptor.addChild(root_0, NOT45_tree)


                    cnt26 = 0
                    while True:
                        alt26 = 2
                        LA26_0 = self.input.LA(1)

                        if (LA26_0 == WS) :
                            alt26 = 1


                        if alt26 == 1:

                            pass
                            WS46=self.match(self.input, WS, self.FOLLOW_WS_in_notOp774)

                            WS46_tree = self._adaptor.createWithPayload(WS46)
                            self._adaptor.addChild(root_0, WS46_tree)



                        else:
                            if cnt26 >= 1:
                                break

                            eee = EarlyExitException(26, self.input)
                            raise eee

                        cnt26 += 1




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


                retval.tree = self._adaptor.rulePostProcessing(root_0)
                self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop)


            except RecognitionException as re:
                self.reportError(re)
                self.recover(self.input, re)
                retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re)
        finally:

            pass

        return retval