www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1998/05/16/22:02:06

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
To: djgpp AT delorie DOT com
DJ-Gateway: from newsgroup comp.os.msdos.djgpp

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.

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019