From: sparhawk AT eunet DOT at (Gerhard Gruber) Newsgroups: comp.os.msdos.djgpp Subject: Re: Q: How to call a function like search(sentence for string1 AND (string2 OR string3)) Date: Sat, 16 May 1998 20:09:49 GMT Organization: Customer of EUnet Austria Lines: 29 Message-ID: <35656c7c.3096331@news.Austria.EU.net> References: <355c8df9 DOT 92989021 AT news> NNTP-Posting-Host: e160.dynamic.vienna.at.eu.net Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Precedence: bulk Destination: random AT NO-FREAKIN'-SPAM.visi.net (Michael Bosley) From: Gruber Gerhard Group: comp.os.msdos.djgpp Date: Fri, 15 May 1998 18:53:21 GMT: >This would equate to something like: >int result = search("This is a test sentence", "test AND (this OR >This)") > >But the problem with that is parsing out all of the extraneous data... The AND is quite easy. Simply go from left to right and check the expression. If one of them is false then the entire expression is false and you can return. With the OR statemant you might construct a list of all values that belong to a particular or and treat it as a list. Then you loop over the list and check if one of the values is true. On the first true you encounter the (sub)expression is also true and you can return. The only problem is that you might have to do a little parsing grouping all ANDs and ORs together (depending also on brackets). -- Bye, Gerhard email: sparhawk AT eunet DOT at g DOT gruber AT sis DOT co DOT at Spelling corrections are appreciated.