I may be wrong, but I feel it might be useful for a naive outsider to enter this discussion, even if it does mean I get burnt to a crisp. I'm neither a Wine nor a parser developer (though I do have 14 years C/++ experience) and fully accept that I may be flamed to a tiny cinder for my comments, but from what I can ascertain, cond.y is a composite file, containing C and bison code. As far as I can tell (not quite brave enough to say AFAICT) the file is first read by the bison processor, which reads the bison parser rules and C code and generates compilable files for the C compiler. Having read what bison is (I think) supposed to do, the tokens declared DO look is if they might be wrong [having looked up 'tilde' and MSI on Google, it looks as though COND_I* actually relates to strings, as it seems that the tilde means 'case insensitive', but I wonder if it has been inadvertently used on integer comparisons by some installers]. It also looks as if the tests in compare_int() for COND_LE and COND_ILE may be wrong, unless there is some kind of (uncommented) logic inversion somewhere. However, uppermost in my mind is Mike McCormack's statement that 'Unfortunately cond.y has nothing to do with SQL.'. If this is indeed the case then everything I have said amounts to nought because I have assumed (very likely incorrectly) that the parser code in cond.y, being part of the MSI dll, relates to the parsing of SQL statements in MSI. If this is the case I fully expect to burn in newbie-land, and apologise for my presumption.
Torch me if you want. Just trying to help, and open the discussion :)
On Mon, 2006-06-05 at 09:02 -0500, EA Durbin wrote:
Then what are the conditional statements in cond.y used for? Though they may not be SQL errors, if IGE and ILEmeans IS Greater than or equal to, or Is Less than or Equal to then it's still and error, even if it doesn't pertain to SQL.
Do these not mean IS Greater than or equal to, or Is Less than or Equal to ?
From: Mike McCormack mike@codeweavers.com To: wine-devel@winehq.org CC: ead1234@hotmail.com Subject: Re: msi patch submission - cond.y Date: Mon, 05 Jun 2006 22:43:09 +0900
EA Durbin wrote:
fixed various SQL errors in COND_GetOperator() and compare_int()
Unfortunately cond.y has nothing to do with SQL.
Mike