Widl: Conditionals, Dotted Versions, Handles

Robert Shearman R.J.Shearman at warwick.ac.uk
Wed Apr 21 10:02:49 CDT 2004


>>> Ove Kaaven <ovek at arcticnet.no> 04/19/04 22:50 PM >>>
man, 19.04.2004 kl. 17.03 skrev Robert Shearman:
> > > Doesn't the "version" rule already handle this?
> > 
> > It would appear not. The 'version' type is declared > as a number further up
> 
> It's declared that the rule *returns* a number, you mean. The actual
> rule is defined as
> 
> version:
>           aNUM                                  { $$ = MAKELONG($1, 0); }
>         | aNUM '.' aNUM                         { $$ = MAKELONG($1, $3); }
>         ;
> 
> Now if this somehow returns 0, then you need to fix that rule, not add
> another rule which makes a version of e.g. "1.2.3.4"   valid syntax (but
> still return a wrong result).

Ok, I missed that before. I suspect it doesn't work properly because it correctly matches aNUM and
attempts to convert it to a number and succeeds
(but returning 0).
We should re-arrange that rule so that the dotted 
version matches first and falls back to the second 
version if there is no '.'.
However, I doubt I will have the time to resend that
patch for a while.

Rob




More information about the wine-devel mailing list