def sfactor(self): sphrase = self.sphrase() f = sphrase while self._peek('"-"', '"&"', '"<"', '">"', '"~"', '"\\""', 'WORD', '"\\\\("', '"\\\\|"', 'END', '"\\\\]\\\\]"', '"\\\\)"') not in [ '"\\\\|"', 'END', '"\\\\]\\\\]"', '"\\\\)"' ]: _token_ = self._peek('"-"', '"&"', '"<"', '">"', '"~"', '"\\""', 'WORD', '"\\\\("') if _token_ == '"&"': sconjop = self.sconjop() sphrase = self.sphrase() f = Search.Conjunction(sconjop, f, sphrase) elif _token_ not in ['"-"', '"\\""', 'WORD', '"\\\\("']: snearop = self.snearop() op = snearop nearness = Search.Conjunction.DEFAULT_NEARNESS _token_ = self._peek('"\\\\["', '"\\""', 'WORD', '"\\\\("') if _token_ == '"\\\\["': self._scan('"\\\\["') INT = self._scan('INT') self._scan('"\\\\]"') nearness = int(INT) else: # in ['"\\""', 'WORD', '"\\\\("'] pass sphrase = self.sphrase() f = Search.Conjunction(op, f, sphrase, nearness) else: # in ['"-"', '"\\""', 'WORD', '"\\\\("'] op = '&' _token_ = self._peek('"-"', '"\\""', 'WORD', '"\\\\("') if _token_ == '"-"': self._scan('"-"') op = '&!' else: # in ['"\\""', 'WORD', '"\\\\("'] pass sphrase = self.sphrase() f = Search.Conjunction(op, f, sphrase) return f