def query()

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


    def query(self, ):

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

        root_0 = None

        WS1 = None
        EOF2 = None
        WS3 = None
        WS5 = None
        EOF6 = None
        expression4 = None


        WS1_tree = None
        EOF2_tree = None
        WS3_tree = None
        WS5_tree = None
        EOF6_tree = None
        stream_WS = RewriteRuleTokenStream(self._adaptor, "token WS")
        stream_EOF = RewriteRuleTokenStream(self._adaptor, "token EOF")
        stream_expression = RewriteRuleSubtreeStream(self._adaptor, "rule expression")
        try:
            try:

                alt4 = 2
                alt4 = self.dfa4.predict(self.input)
                if alt4 == 1:

                    pass

                    while True:
                        alt1 = 2
                        LA1_0 = self.input.LA(1)

                        if (LA1_0 == WS) :
                            alt1 = 1


                        if alt1 == 1:

                            pass
                            WS1=self.match(self.input, WS, self.FOLLOW_WS_in_query122)
                            stream_WS.add(WS1)


                        else:
                            break


                    EOF2=self.match(self.input, EOF, self.FOLLOW_EOF_in_query125)
                    stream_EOF.add(EOF2)








                    retval.tree = root_0

                    if retval is not None:
                        stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", retval.tree)
                    else:
                        stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None)


                    root_0 = self._adaptor.nil()


                    root_1 = self._adaptor.nil()
                    root_1 = self._adaptor.becomeRoot(self._adaptor.createFromType(EMPTY, "EMPTY"), root_1)

                    self._adaptor.addChild(root_0, root_1)



                    retval.tree = root_0


                elif alt4 == 2:

                    pass

                    while True:
                        alt2 = 2
                        LA2_0 = self.input.LA(1)

                        if (LA2_0 == WS) :
                            alt2 = 1


                        if alt2 == 1:

                            pass
                            WS3=self.match(self.input, WS, self.FOLLOW_WS_in_query154)
                            stream_WS.add(WS3)


                        else:
                            break


                    self._state.following.append(self.FOLLOW_expression_in_query157)
                    expression4 = self.expression()

                    self._state.following.pop()
                    stream_expression.add(expression4.tree)

                    while True:
                        alt3 = 2
                        LA3_0 = self.input.LA(1)

                        if (LA3_0 == WS) :
                            alt3 = 1


                        if alt3 == 1:

                            pass
                            WS5=self.match(self.input, WS, self.FOLLOW_WS_in_query159)
                            stream_WS.add(WS5)


                        else:
                            break


                    EOF6=self.match(self.input, EOF, self.FOLLOW_EOF_in_query162)
                    stream_EOF.add(EOF6)








                    retval.tree = root_0

                    if retval is not None:
                        stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", retval.tree)
                    else:
                        stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None)


                    root_0 = self._adaptor.nil()

                    self._adaptor.addChild(root_0, stream_expression.nextTree())



                    retval.tree = root_0


                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