Messages in this thread | | | From | Bodo Eggert <> | Subject | Re: [PATCH] Make checkpatch rant about trailing ; at the end of "if" expr | Date | Mon, 20 Aug 2007 13:52:35 +0200 |
| |
Jan Engelhardt <jengelh@computergmbh.de> wrote: > On Aug 16 2007 10:21, Andy Whitcroft wrote:
>>> + if ($line =~ /\bif\s*\([^\)]*\)\s*\;/) { >> >>Heh, you are the second person to suggest this check today, do I detect >>some ripped out hair due to one of these! >> >>I've taken this idea and expanded it to cover if, for and while which >>can all suffer from this. Using the relative indent to work out which >>are valid combinations: > > But. The above regex does not seem to handle > > if ((a = b)); > oops; > > I have tried to come up with a superduper regex that handles multiple > (), but my regex fu seems to stop above two pairs of ().
This is because you can't do that using finite regular expressions.
Regular expressions are Type-3 grammars, but you'd need a Type-2 grammar to express the Dyck language (and you need to parse a Dyck Language, ignoring the non-dyck-parts). -- Your e-mail has been returned due to insufficient voltage.
Friß, Spammer: xVhgayew@6yAk1Uy.7eggert.dyndns.org G2@7eggert.dyndns.org MVt59@gcEE.7eggert.dyndns.org GBwox2uHv@mb.7eggert.dyndns.org - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |